diff --git a/bun.lockb b/bun.lockb index 44b1ac601..4fec91c2c 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal b/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal index ec208c6c7..a4402aa04 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 0 10000000000 1 1000 +bytecblock 0x 0x61 0x62 0x67 0x70 0x72 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -54,17 +56,17 @@ doCreatePoolToken: // configAssetReserve: this.app.address, // }); itxn_begin - int acfg + pushint 3 // acfg itxn_field TypeEnum // examples/amm/amm.algo.ts:27 // configAssetName: 'DPT-' + aAsset.unitName + '-' + bAsset.unitName - byte 0x4450542d // "DPT-" + pushbytes 0x4450542d // "DPT-" frame_dig -1 // aAsset: AssetID asset_params_get AssetUnitName pop concat - byte 0x2d // "-" + pushbytes 0x2d // "-" concat frame_dig -2 // bAsset: AssetID asset_params_get AssetUnitName @@ -74,7 +76,7 @@ doCreatePoolToken: // examples/amm/amm.algo.ts:28 // configAssetUnitName: 'dpt' - byte 0x647074 // "dpt" + pushbytes 0x647074 // "dpt" itxn_field ConfigAssetUnitName // examples/amm/amm.algo.ts:29 @@ -84,7 +86,7 @@ doCreatePoolToken: // examples/amm/amm.algo.ts:30 // configAssetDecimals: 3 - int 3 + pushint 3 itxn_field ConfigAssetDecimals // examples/amm/amm.algo.ts:31 @@ -117,7 +119,7 @@ doAxfer: // assetAmount: amount, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/amm/amm.algo.ts:38 @@ -309,7 +311,7 @@ tokensToSwap: // examples/amm/amm.algo.ts:73 // factor = SCALE - FEE - int 995 + pushint 995 frame_bury 0 // factor: uint64 // examples/amm/amm.algo.ts:74 @@ -353,7 +355,7 @@ tokensToSwap: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 0 (governor) for set_governor must be a address @@ -389,7 +391,7 @@ set_governor: // bootstrap(pay,uint64,uint64)uint64 *abi_route_bootstrap: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // bAsset: uint64 txna ApplicationArgs 2 @@ -405,7 +407,7 @@ set_governor: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 2 (seed) for bootstrap must be a pay transaction @@ -437,7 +439,7 @@ bootstrap: // examples/amm/amm.algo.ts:85 // assert(globals.groupSize === 2) global GroupSize - int 2 + pushint 2 == assert @@ -455,7 +457,7 @@ bootstrap: // verify amount frame_dig -1 // seed: PayTxn gtxns Amount - int 300_000 + pushint 300_000 >= // transaction verification failed: {"txn":"seed","field":"amount","condition":"greaterThanEqualTo","expected":">=300_000"} @@ -524,7 +526,7 @@ bootstrap: - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 3 (bXfer) for mint must be a axfer transaction @@ -532,11 +534,11 @@ bootstrap: // aXfer: axfer txn GroupIndex - int 2 + pushint 2 - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 4 (aXfer) for mint must be a axfer transaction @@ -775,7 +777,7 @@ mint: - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 3 (poolXfer) for burn must be a axfer transaction @@ -937,7 +939,7 @@ burn: - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 2 (swapXfer) for swap must be a axfer transaction @@ -1087,7 +1089,7 @@ swap: retsub *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -1095,11 +1097,11 @@ swap: err *call_NoOp: - method "set_governor(address)void" - method "bootstrap(pay,uint64,uint64)uint64" - method "mint(axfer,axfer,uint64,uint64,uint64)void" - method "burn(axfer,uint64,uint64,uint64)void" - method "swap(axfer,uint64,uint64)void" + pushbytes 0xddc4cb4a // method "set_governor(address)void" + pushbytes 0x25e6c376 // method "bootstrap(pay,uint64,uint64)uint64" + pushbytes 0x10045c79 // method "mint(axfer,axfer,uint64,uint64,uint64)void" + pushbytes 0x028e37c1 // method "burn(axfer,uint64,uint64,uint64)void" + pushbytes 0x632aaed8 // method "swap(axfer,uint64,uint64)void" txna ApplicationArgs 0 match *abi_route_set_governor *abi_route_bootstrap *abi_route_mint *abi_route_burn *abi_route_swap diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json b/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json index 845d761a0..fb5d2f778 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.arc32.json @@ -80,7 +80,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyMAoJLy8gdGhpcy5nb3Zlcm5vci52YWx1ZSA9IHRoaXMudHhuLnNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJdHhuIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZG9DcmVhdGVQb29sVG9rZW4oYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiBBc3NldElECmRvQ3JlYXRlUG9vbFRva2VuOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI2CgkvLyByZXR1cm4gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgY29uZmlnQXNzZXROYW1lOiAnRFBULScgKyBhQXNzZXQudW5pdE5hbWUgKyAnLScgKyBiQXNzZXQudW5pdE5hbWUsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiAnZHB0JywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyNwoJLy8gY29uZmlnQXNzZXROYW1lOiAnRFBULScgKyBhQXNzZXQudW5pdE5hbWUgKyAnLScgKyBiQXNzZXQudW5pdE5hbWUKCWJ5dGUgMHg0NDUwNTQyZCAvLyAiRFBULSIKCWZyYW1lX2RpZyAtMSAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRVbml0TmFtZQoJcG9wCgljb25jYXQKCWJ5dGUgMHgyZCAvLyAiLSIKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIGJBc3NldDogQXNzZXRJRAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglwb3AKCWNvbmNhdAoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjgKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnCglieXRlIDB4NjQ3MDc0IC8vICJkcHQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWQoJaW50IDEwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzAKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMKCWludCAzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gZG9BeGZlcihyZWNlaXZlcjogQWRkcmVzcywgYXNzZXQ6IEFzc2V0SUQsIGFtb3VudDogdWludDY0KTogdm9pZApkb0F4ZmVyOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzgKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozOQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0MAoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBkb09wdEluKGFzc2V0OiBBc3NldElEKTogdm9pZApkb09wdEluOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjQ1CgkvLyB0aGlzLmRvQXhmZXIodGhpcy5hcHAuYWRkcmVzcywgYXNzZXQsIDApCglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCi8vIHRva2Vuc1RvTWludEludGlhbChhQW1vdW50OiB1aW50NjQsIGJBbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb01pbnRJbnRpYWw6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDkKCS8vIHJldHVybiBzcXJ0KGFBbW91bnQgKiBiQW1vdW50KTsKCWZyYW1lX2RpZyAtMSAvLyBhQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiQW1vdW50OiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gdG9rZW5zVG9NaW50KGlzc3VlZDogdWludDY0LCBhU3VwcGx5OiB1aW50NjQsIGJTdXBwbHk6IHVpbnQ2NCwgYUFtb3VudDogdWludDY0LCBiQW1vdW50OiB1aW50NjQpOiB1aW50NjQKdG9rZW5zVG9NaW50OgoJcHJvdG8gNSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1MwoJLy8gYVJhdGlvID0gd2lkZVJhdGlvKFthQW1vdW50LCBTQ0FMRV0sIFthU3VwcGx5XSkKCWZyYW1lX2RpZyAtNCAvLyBhQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGFTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBhUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NAoJLy8gYlJhdGlvID0gd2lkZVJhdGlvKFtiQW1vdW50LCBTQ0FMRV0sIFtiU3VwcGx5XSkKCWZyYW1lX2RpZyAtNSAvLyBiQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIGJTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAwIC8vIGFSYXRpbzogdWludDY0CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoJPAoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgMCAvLyBhUmF0aW86IHVpbnQ2NAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyByYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtyYXRpbywgaXNzdWVkXSwgW1NDQUxFXSk7CglmcmFtZV9kaWcgMiAvLyByYXRpbzogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCW11bHcKCWludCAwCglpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGNvbXB1dGVSYXRpbygpOiB1aW50NjQKY29tcHV0ZVJhdGlvOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjYyCgkvLyByZXR1cm4gd2lkZVJhdGlvKAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRBLnZhbHVlKSwgU0NBTEVdLAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRCLnZhbHVlKV0KCS8vICAgICApOwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJaW50IDEwMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJcmV0c3ViCgovLyB0b2tlbnNUb0J1cm4oaXNzdWVkOiB1aW50NjQsIHN1cHBseTogdWludDY0LCBhbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb0J1cm46Cglwcm90byAzIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjkKCS8vIHJldHVybiB3aWRlUmF0aW8oW3N1cHBseSwgYW1vdW50XSwgW2lzc3VlZF0pOwoJZnJhbWVfZGlnIC0yIC8vIHN1cHBseTogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRva2Vuc1RvU3dhcChpbkFtb3VudDogdWludDY0LCBpblN1cHBseTogdWludDY0LCBvdXRTdXBwbHk6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb1N3YXA6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3MwoJLy8gZmFjdG9yID0gU0NBTEUgLSBGRUUKCWludCA5OTUKCWZyYW1lX2J1cnkgMCAvLyBmYWN0b3I6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3NAoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbaW5BbW91bnQsIGZhY3Rvciwgb3V0U3VwcGx5XSwgW2luU3VwcGx5ICogU0NBTEUgKyBpbkFtb3VudCAqIGZhY3Rvcl0pOwoJZnJhbWVfZGlnIC0xIC8vIGluQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGZhY3RvcjogdWludDY0CgltdWx3CglmcmFtZV9kaWcgLTMgLy8gb3V0U3VwcGx5OiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gaW5TdXBwbHk6IHVpbnQ2NAoJaW50IDEwMDAKCSoKCWZyYW1lX2RpZyAtMSAvLyBpbkFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBmYWN0b3I6IHVpbnQ2NAoJKgoJKwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gc2V0X2dvdmVybm9yKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3NldF9nb3Zlcm5vcjoKCS8vIGdvdmVybm9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGdvdmVybm9yKSBmb3Igc2V0X2dvdmVybm9yIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHNldF9nb3Zlcm5vcihhZGRyZXNzKXZvaWQKCWNhbGxzdWIgc2V0X2dvdmVybm9yCglpbnQgMQoJcmV0dXJuCgovLyBzZXRfZ292ZXJub3IoZ292ZXJub3I6IEFkZHJlc3MpOiB2b2lkCnNldF9nb3Zlcm5vcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3OAoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5nb3Zlcm5vci52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzkKCS8vIHRoaXMuZ292ZXJub3IudmFsdWUgPSBnb3Zlcm5vcgoJYnl0ZSAweDY3IC8vICJnIgoJZnJhbWVfZGlnIC0xIC8vIGdvdmVybm9yOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBib290c3RyYXAocGF5LHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYm9vdHN0cmFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGFBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gc2VlZDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc2VlZCkgZm9yIGJvb3RzdHJhcCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGJvb3RzdHJhcChwYXksdWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYm9vdHN0cmFwCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vdHN0cmFwKHNlZWQ6IFBheVR4biwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiBBc3NldElECmJvb3RzdHJhcDoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4MwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5nb3Zlcm5vci52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODUKCS8vIGFzc2VydChnbG9iYWxzLmdyb3VwU2l6ZSA9PT0gMikKCWdsb2JhbCBHcm91cFNpemUKCWludCAyCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg3CgkvLyB2ZXJpZnlQYXlUeG4oc2VlZCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiB7IGdyZWF0ZXJUaGFuRXF1YWxUbzogMzAwXzAwMCB9IH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzZWVkOiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNlZWQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzZWVkOiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaW50IDMwMF8wMDAKCT49CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzZWVkIiwiZmllbGQiOiJhbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbkVxdWFsVG8iLCJleHBlY3RlZCI6Ij49MzAwXzAwMCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODgKCS8vIGFzc2VydChhQXNzZXQgPCBiQXNzZXQpCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECgk8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTAKCS8vIHRoaXMuYXNzZXRBLnZhbHVlID0gYUFzc2V0CglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MQoJLy8gdGhpcy5hc3NldEIudmFsdWUgPSBiQXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkyCgkvLyB0aGlzLnBvb2xUb2tlbi52YWx1ZSA9IHRoaXMuZG9DcmVhdGVQb29sVG9rZW4oYUFzc2V0LCBiQXNzZXQpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgljYWxsc3ViIGRvQ3JlYXRlUG9vbFRva2VuCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NAoJLy8gdGhpcy5kb09wdEluKGFBc3NldCkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NQoJLy8gdGhpcy5kb09wdEluKGJBc3NldCkKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NwoJLy8gcmV0dXJuIHRoaXMucG9vbFRva2VuLnZhbHVlOwoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gbWludChheGZlcixheGZlcix1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfbWludDoKCS8vIGJBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYUFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwb29sQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGJYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMyAoYlhmZXIpIGZvciBtaW50IG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYVhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDIKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCA0IChhWGZlcikgZm9yIG1pbnQgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYXhmZXIsYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBiWGZlcjogQXNzZXRUcmFuc2ZlclR4biwgcG9vbEFzc2V0OiBBc3NldElELCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKbWludDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gd2VsbCBmb3JtZWQgbWludAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDMKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQocG9vbEFzc2V0ID09PSB0aGlzLnBvb2xUb2tlbi52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgYXNzZXQgQSBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNwoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihhWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYUFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6ImFBc3NldCJ9Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBCIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTE1CgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKGJYZmVyLCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBiQXNzZXQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy50eG4uc2VuZGVyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldEFtb3VudCIsImNvbmRpdGlvbiI6ImdyZWF0ZXJUaGFuIiwiZXhwZWN0ZWQiOiI+MCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldFJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBBc3NldElECgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InhmZXJBc3NldCIsImV4cGVjdGVkIjoiYkFzc2V0In0KCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTIzCgkvLyB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShhQXNzZXQpID09PSBhWGZlci5hc3NldEFtb3VudCAmJgoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSA9PT0gYlhmZXIuYXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJJiYKCipza2lwX2FuZDA6CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjYKCS8vIHRoaXMudG9rZW5zVG9NaW50SW50aWFsKGFYZmVyLmFzc2V0QW1vdW50LCBiWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9NaW50SW50aWFsCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCWludCAxMDAwMDAwMDAwMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAwIC8vIHRvTWludDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzNgoJLy8gYXNzZXJ0KHRvTWludCA+IDApCglmcmFtZV9kaWcgMCAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIDAgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIGJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2J1cm46CgkvLyBiQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBwb29sWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHBvb2xYZmVyKSBmb3IgYnVybiBtdXN0IGJlIGEgYXhmZXIgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYnVybihheGZlcix1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJ1cm4KCWludCAxCglyZXR1cm4KCi8vIGJ1cm4ocG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4sIHBvb2xBc3NldDogQXNzZXRJRCwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiB2b2lkCmJ1cm46Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gd2VsbCBmb3JtZWQgYnVybgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldElECglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDUKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgcG9vbCBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0OQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihwb29sWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogcG9vbEFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6InBvb2xBc3NldCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTU2CgkvLyBpc3N1ZWQgPSBUT1RBTF9TVVBQTFkgLSAodGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSAtIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJaW50IDEwMDAwMDAwMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCS0KCWZyYW1lX2J1cnkgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTgKCS8vIGFBbXQgPSB0aGlzLnRva2Vuc1RvQnVybihpc3N1ZWQsIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCksIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgMSAvLyBhQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYwCgkvLyBiQW10ID0gdGhpcy50b2tlbnNUb0J1cm4oaXNzdWVkLCB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpLCBwb29sWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDAgLy8gaXNzdWVkOiB1aW50NjQKCWNhbGxzdWIgdG9rZW5zVG9CdXJuCglmcmFtZV9idXJ5IDIgLy8gYkFtdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MgoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgYUFzc2V0LCBhQW10KQoJZnJhbWVfZGlnIDEgLy8gYUFtdDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBBc3NldElECgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYzCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBiQXNzZXQsIGJBbXQpCglmcmFtZV9kaWcgMiAvLyBiQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjUKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zd2FwOgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3dhcFhmZXIpIGZvciBzd2FwIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzd2FwKGF4ZmVyLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgovLyBzd2FwKHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKc3dhcDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB3ZWxsIGZvcm1lZCBzd2FwCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MQoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzMKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oc3dhcFhmZXIsIHsKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IHsgaW5jbHVkZWRJbjogW2FBc3NldCwgYkFzc2V0XSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN3YXBYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECgk9PQoJfHwKCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0Ijoic3dhcFhmZXIifSwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbYUFzc2V0LCBiQXNzZXRdIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODAKCS8vIG91dElkID0gc3dhcFhmZXIueGZlckFzc2V0ID09PSBhQXNzZXQgPyBhQXNzZXQgOiBiQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgk9PQoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDAgLy8gb3V0SWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODIKCS8vIGluSWQgPSBzd2FwWGZlci54ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9idXJ5IDEgLy8gaW5JZDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE4NAoJLy8gdG9Td2FwID0gdGhpcy50b2tlbnNUb1N3YXAoCgkvLyAgICAgICBzd2FwWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGluSWQpIC0gc3dhcFhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShvdXRJZCkKCS8vICAgICApCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBpbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgljYWxsc3ViIHRva2Vuc1RvU3dhcAoJZnJhbWVfYnVyeSAyIC8vIHRvU3dhcDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KHRvU3dhcCA+IDApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIG91dElkLCB0b1N3YXApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5yYXRpby52YWx1ZSA9IHRoaXMuY29tcHV0ZVJhdGlvKCkKCWJ5dGUgMHg3MiAvLyAiciIKCWNhbGxzdWIgY29tcHV0ZVJhdGlvCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzZXRfZ292ZXJub3IoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJib290c3RyYXAocGF5LHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJtaW50KGF4ZmVyLGF4ZmVyLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAic3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NldF9nb3Zlcm5vciAqYWJpX3JvdXRlX2Jvb3RzdHJhcCAqYWJpX3JvdXRlX21pbnQgKmFiaV9yb3V0ZV9idXJuICphYmlfcm91dGVfc3dhcAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEwMDAwMDAwMDAwIDEgMTAwMApieXRlY2Jsb2NrIDB4IDB4NjEgMHg2MiAweDY3IDB4NzAgMHg3MgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjIwCgkvLyB0aGlzLmdvdmVybm9yLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4NjcgLy8gImciCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBkb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IEFzc2V0SUQKZG9DcmVhdGVQb29sVG9rZW46Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjYKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6ICdEUFQtJyArIGFBc3NldC51bml0TmFtZSArICctJyArIGJBc3NldC51bml0TmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogVE9UQUxfU1VQUExZLAoJLy8gICAgICAgY29uZmlnQXNzZXREZWNpbWFsczogMywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCXB1c2hpbnQgMyAvLyBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI3CgkvLyBjb25maWdBc3NldE5hbWU6ICdEUFQtJyArIGFBc3NldC51bml0TmFtZSArICctJyArIGJBc3NldC51bml0TmFtZQoJcHVzaGJ5dGVzIDB4NDQ1MDU0MmQgLy8gIkRQVC0iCglmcmFtZV9kaWcgLTEgLy8gYUFzc2V0OiBBc3NldElECglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKCXBvcAoJY29uY2F0CglwdXNoYnl0ZXMgMHgyZCAvLyAiLSIKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIGJBc3NldDogQXNzZXRJRAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglwb3AKCWNvbmNhdAoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjgKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnCglwdXNoYnl0ZXMgMHg2NDcwNzQgLy8gImRwdCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyOQoJLy8gY29uZmlnQXNzZXRUb3RhbDogVE9UQUxfU1VQUExZCglpbnQgMTAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozMAoJLy8gY29uZmlnQXNzZXREZWNpbWFsczogMwoJcHVzaGludCAzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gZG9BeGZlcihyZWNlaXZlcjogQWRkcmVzcywgYXNzZXQ6IEFzc2V0SUQsIGFtb3VudDogdWludDY0KTogdm9pZApkb0F4ZmVyOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDQgLy8gYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzgKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozOQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0MAoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBkb09wdEluKGFzc2V0OiBBc3NldElEKTogdm9pZApkb09wdEluOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjQ1CgkvLyB0aGlzLmRvQXhmZXIodGhpcy5hcHAuYWRkcmVzcywgYXNzZXQsIDApCglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCi8vIHRva2Vuc1RvTWludEludGlhbChhQW1vdW50OiB1aW50NjQsIGJBbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb01pbnRJbnRpYWw6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDkKCS8vIHJldHVybiBzcXJ0KGFBbW91bnQgKiBiQW1vdW50KTsKCWZyYW1lX2RpZyAtMSAvLyBhQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiQW1vdW50OiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gdG9rZW5zVG9NaW50KGlzc3VlZDogdWludDY0LCBhU3VwcGx5OiB1aW50NjQsIGJTdXBwbHk6IHVpbnQ2NCwgYUFtb3VudDogdWludDY0LCBiQW1vdW50OiB1aW50NjQpOiB1aW50NjQKdG9rZW5zVG9NaW50OgoJcHJvdG8gNSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1MwoJLy8gYVJhdGlvID0gd2lkZVJhdGlvKFthQW1vdW50LCBTQ0FMRV0sIFthU3VwcGx5XSkKCWZyYW1lX2RpZyAtNCAvLyBhQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGFTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBhUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NAoJLy8gYlJhdGlvID0gd2lkZVJhdGlvKFtiQW1vdW50LCBTQ0FMRV0sIFtiU3VwcGx5XSkKCWZyYW1lX2RpZyAtNSAvLyBiQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIGJTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAwIC8vIGFSYXRpbzogdWludDY0CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoJPAoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgMCAvLyBhUmF0aW86IHVpbnQ2NAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyByYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtyYXRpbywgaXNzdWVkXSwgW1NDQUxFXSk7CglmcmFtZV9kaWcgMiAvLyByYXRpbzogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCW11bHcKCWludCAwCglpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGNvbXB1dGVSYXRpbygpOiB1aW50NjQKY29tcHV0ZVJhdGlvOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjYyCgkvLyByZXR1cm4gd2lkZVJhdGlvKAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRBLnZhbHVlKSwgU0NBTEVdLAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRCLnZhbHVlKV0KCS8vICAgICApOwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJaW50IDEwMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJcmV0c3ViCgovLyB0b2tlbnNUb0J1cm4oaXNzdWVkOiB1aW50NjQsIHN1cHBseTogdWludDY0LCBhbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb0J1cm46Cglwcm90byAzIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjkKCS8vIHJldHVybiB3aWRlUmF0aW8oW3N1cHBseSwgYW1vdW50XSwgW2lzc3VlZF0pOwoJZnJhbWVfZGlnIC0yIC8vIHN1cHBseTogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRva2Vuc1RvU3dhcChpbkFtb3VudDogdWludDY0LCBpblN1cHBseTogdWludDY0LCBvdXRTdXBwbHk6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb1N3YXA6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3MwoJLy8gZmFjdG9yID0gU0NBTEUgLSBGRUUKCXB1c2hpbnQgOTk1CglmcmFtZV9idXJ5IDAgLy8gZmFjdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzQKCS8vIHJldHVybiB3aWRlUmF0aW8oW2luQW1vdW50LCBmYWN0b3IsIG91dFN1cHBseV0sIFtpblN1cHBseSAqIFNDQUxFICsgaW5BbW91bnQgKiBmYWN0b3JdKTsKCWZyYW1lX2RpZyAtMSAvLyBpbkFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBmYWN0b3I6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIC0zIC8vIG91dFN1cHBseTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGluU3VwcGx5OiB1aW50NjQKCWludCAxMDAwCgkqCglmcmFtZV9kaWcgLTEgLy8gaW5BbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yOiB1aW50NjQKCSoKCSsKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHNldF9nb3Zlcm5vcihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9zZXRfZ292ZXJub3I6CgkvLyBnb3Zlcm5vcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoZ292ZXJub3IpIGZvciBzZXRfZ292ZXJub3IgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc2V0X2dvdmVybm9yKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBzZXRfZ292ZXJub3IKCWludCAxCglyZXR1cm4KCi8vIHNldF9nb3Zlcm5vcihnb3Zlcm5vcjogQWRkcmVzcyk6IHZvaWQKc2V0X2dvdmVybm9yOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc4CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5nb3Zlcm5vci52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmdvdmVybm9yLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3OQoJLy8gdGhpcy5nb3Zlcm5vci52YWx1ZSA9IGdvdmVybm9yCglieXRlIDB4NjcgLy8gImciCglmcmFtZV9kaWcgLTEgLy8gZ292ZXJub3I6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGJvb3RzdHJhcChwYXksdWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9ib290c3RyYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHNlZWQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc2VlZCkgZm9yIGJvb3RzdHJhcCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGJvb3RzdHJhcChwYXksdWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYm9vdHN0cmFwCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vdHN0cmFwKHNlZWQ6IFBheVR4biwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiBBc3NldElECmJvb3RzdHJhcDoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4MwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5nb3Zlcm5vci52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODUKCS8vIGFzc2VydChnbG9iYWxzLmdyb3VwU2l6ZSA9PT0gMikKCWdsb2JhbCBHcm91cFNpemUKCXB1c2hpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4NwoJLy8gdmVyaWZ5UGF5VHhuKHNlZWQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogeyBncmVhdGVyVGhhbkVxdWFsVG86IDMwMF8wMDAgfSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc2VlZDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzZWVkIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc2VlZDogUGF5VHhuCglndHhucyBBbW91bnQKCXB1c2hpbnQgMzAwXzAwMAoJPj0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNlZWQiLCJmaWVsZCI6ImFtb3VudCIsImNvbmRpdGlvbiI6ImdyZWF0ZXJUaGFuRXF1YWxUbyIsImV4cGVjdGVkIjoiPj0zMDBfMDAwIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4OAoJLy8gYXNzZXJ0KGFBc3NldCA8IGJBc3NldCkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCTwKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MAoJLy8gdGhpcy5hc3NldEEudmFsdWUgPSBhQXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkxCgkvLyB0aGlzLmFzc2V0Qi52YWx1ZSA9IGJBc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogQXNzZXRJRAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTIKCS8vIHRoaXMucG9vbFRva2VuLnZhbHVlID0gdGhpcy5kb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQsIGJBc3NldCkKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWNhbGxzdWIgZG9DcmVhdGVQb29sVG9rZW4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk0CgkvLyB0aGlzLmRvT3B0SW4oYUFzc2V0KQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXRJRAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk1CgkvLyB0aGlzLmRvT3B0SW4oYkFzc2V0KQoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogQXNzZXRJRAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk3CgkvLyByZXR1cm4gdGhpcy5wb29sVG9rZW4udmFsdWU7CglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBtaW50KGF4ZmVyLGF4ZmVyLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9taW50OgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHBvb2xBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gYlhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCXB1c2hpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCAzIChiWGZlcikgZm9yIG1pbnQgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBhWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglwdXNoaW50IDIKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCXB1c2hpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCA0IChhWGZlcikgZm9yIG1pbnQgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYXhmZXIsYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBiWGZlcjogQXNzZXRUcmFuc2ZlclR4biwgcG9vbEFzc2V0OiBBc3NldElELCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKbWludDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gd2VsbCBmb3JtZWQgbWludAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDMKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQocG9vbEFzc2V0ID09PSB0aGlzLnBvb2xUb2tlbi52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgYXNzZXQgQSBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNwoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihhWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYUFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6ImFBc3NldCJ9Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBCIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTE1CgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKGJYZmVyLCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBiQXNzZXQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy50eG4uc2VuZGVyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldEFtb3VudCIsImNvbmRpdGlvbiI6ImdyZWF0ZXJUaGFuIiwiZXhwZWN0ZWQiOiI+MCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldFJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBBc3NldElECgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InhmZXJBc3NldCIsImV4cGVjdGVkIjoiYkFzc2V0In0KCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTIzCgkvLyB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShhQXNzZXQpID09PSBhWGZlci5hc3NldEFtb3VudCAmJgoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSA9PT0gYlhmZXIuYXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJJiYKCipza2lwX2FuZDA6CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjYKCS8vIHRoaXMudG9rZW5zVG9NaW50SW50aWFsKGFYZmVyLmFzc2V0QW1vdW50LCBiWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9NaW50SW50aWFsCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCWludCAxMDAwMDAwMDAwMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAwIC8vIHRvTWludDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzNgoJLy8gYXNzZXJ0KHRvTWludCA+IDApCglmcmFtZV9kaWcgMCAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIDAgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIGJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2J1cm46CgkvLyBiQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBwb29sWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCA0IC8vIGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHBvb2xYZmVyKSBmb3IgYnVybiBtdXN0IGJlIGEgYXhmZXIgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYnVybihheGZlcix1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJ1cm4KCWludCAxCglyZXR1cm4KCi8vIGJ1cm4ocG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4sIHBvb2xBc3NldDogQXNzZXRJRCwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiB2b2lkCmJ1cm46Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gd2VsbCBmb3JtZWQgYnVybgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldElECglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDUKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgcG9vbCBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0OQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihwb29sWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogcG9vbEFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6InBvb2xBc3NldCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTU2CgkvLyBpc3N1ZWQgPSBUT1RBTF9TVVBQTFkgLSAodGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSAtIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJaW50IDEwMDAwMDAwMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCS0KCWZyYW1lX2J1cnkgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTgKCS8vIGFBbXQgPSB0aGlzLnRva2Vuc1RvQnVybihpc3N1ZWQsIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCksIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgMSAvLyBhQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYwCgkvLyBiQW10ID0gdGhpcy50b2tlbnNUb0J1cm4oaXNzdWVkLCB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpLCBwb29sWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDAgLy8gaXNzdWVkOiB1aW50NjQKCWNhbGxzdWIgdG9rZW5zVG9CdXJuCglmcmFtZV9idXJ5IDIgLy8gYkFtdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MgoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgYUFzc2V0LCBhQW10KQoJZnJhbWVfZGlnIDEgLy8gYUFtdDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBBc3NldElECgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYzCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBiQXNzZXQsIGJBbXQpCglmcmFtZV9kaWcgMiAvLyBiQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjUKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zd2FwOgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDQgLy8gYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3dhcFhmZXIpIGZvciBzd2FwIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzd2FwKGF4ZmVyLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgovLyBzd2FwKHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKc3dhcDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB3ZWxsIGZvcm1lZCBzd2FwCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MQoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzMKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oc3dhcFhmZXIsIHsKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IHsgaW5jbHVkZWRJbjogW2FBc3NldCwgYkFzc2V0XSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN3YXBYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECgk9PQoJfHwKCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0Ijoic3dhcFhmZXIifSwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbYUFzc2V0LCBiQXNzZXRdIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODAKCS8vIG91dElkID0gc3dhcFhmZXIueGZlckFzc2V0ID09PSBhQXNzZXQgPyBhQXNzZXQgOiBiQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgk9PQoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDAgLy8gb3V0SWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODIKCS8vIGluSWQgPSBzd2FwWGZlci54ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9idXJ5IDEgLy8gaW5JZDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE4NAoJLy8gdG9Td2FwID0gdGhpcy50b2tlbnNUb1N3YXAoCgkvLyAgICAgICBzd2FwWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGluSWQpIC0gc3dhcFhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShvdXRJZCkKCS8vICAgICApCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBpbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgljYWxsc3ViIHRva2Vuc1RvU3dhcAoJZnJhbWVfYnVyeSAyIC8vIHRvU3dhcDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KHRvU3dhcCA+IDApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIG91dElkLCB0b1N3YXApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5yYXRpby52YWx1ZSA9IHRoaXMuY29tcHV0ZVJhdGlvKCkKCWJ5dGUgMHg3MiAvLyAiciIKCWNhbGxzdWIgY29tcHV0ZVJhdGlvCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZGRjNGNiNGEgLy8gbWV0aG9kICJzZXRfZ292ZXJub3IoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MjVlNmMzNzYgLy8gbWV0aG9kICJib290c3RyYXAocGF5LHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4MTAwNDVjNzkgLy8gbWV0aG9kICJtaW50KGF4ZmVyLGF4ZmVyLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgwMjhlMzdjMSAvLyBtZXRob2QgImJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDYzMmFhZWQ4IC8vIG1ldGhvZCAic3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NldF9nb3Zlcm5vciAqYWJpX3JvdXRlX2Jvb3RzdHJhcCAqYWJpX3JvdXRlX21pbnQgKmFiaV9yb3V0ZV9idXJuICphYmlfcm91dGVfc3dhcAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.arc56_draft.json b/examples/amm/tealscript_artifacts/ConstantProductAMM.arc56_draft.json index bec331f6e..c3df12d34 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.arc56_draft.json +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.arc56_draft.json @@ -208,4791 +208,232 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 8, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27 - ] - }, - { - "teal": 13, - "source": 8, - "pc": [ - 28, - 29 - ] - }, - { - "teal": 14, - "source": 8, - "pc": [ - 30 - ] - }, - { - "teal": 15, - "source": 8, - "pc": [ - 31, - 32 - ] - }, - { - "teal": 16, - "source": 8, - "pc": [ - 33 - ] - }, - { - "teal": 17, - "source": 8, - "pc": [ - 34, - 35 - ] - }, - { - "teal": 18, - "source": 8, - "pc": [ - 36 - ] - }, - { - "teal": 19, - "source": 8, - "pc": [ - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 23, - "source": 8, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 63 - ] - }, - { - "teal": 28, - "source": 19, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 29, - "source": 19, - "pc": [ - 67 - ] - }, - { - "teal": 30, - "source": 19, - "pc": [ - 68 - ] - }, - { - "teal": 34, - "source": 19, - "pc": [ - 69, - 70, - 71 - ] - }, - { - "teal": 38, - "source": 20, - "pc": [ - 72 - ] - }, - { - "teal": 39, - "source": 20, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 40, - "source": 20, - "pc": [ - 75 - ] - }, - { - "teal": 41, - "source": 19, - "pc": [ - 76 - ] - }, - { - "teal": 45, - "source": 23, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 56, - "source": 26, - "pc": [ - 80 - ] - }, - { - "teal": 57, - "source": 26, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 58, - "source": 26, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 62, - "source": 27, - "pc": [ - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 63, - "source": 27, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 64, - "source": 27, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 65, - "source": 27, - "pc": [ - 95 - ] - }, - { - "teal": 66, - "source": 27, - "pc": [ - 96 - ] - }, - { - "teal": 67, - "source": 27, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 68, - "source": 27, - "pc": [ - 100 - ] - }, - { - "teal": 69, - "source": 27, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 70, - "source": 27, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 71, - "source": 27, - "pc": [ - 105 - ] - }, - { - "teal": 72, - "source": 27, - "pc": [ - 106 - ] - }, - { - "teal": 73, - "source": 27, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 77, - "source": 28, - "pc": [ - 109, - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 78, - "source": 28, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 82, - "source": 29, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 83, - "source": 29, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 87, - "source": 30, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 88, - "source": 30, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 92, - "source": 31, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 93, - "source": 31, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 97, - "source": 32, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 98, - "source": 32, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 101, - "source": 26, - "pc": [ - 132 - ] - }, - { - "teal": 102, - "source": 26, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 105, - "source": 26, - "pc": [ - 135 - ] - }, - { - "teal": 106, - "source": 26, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 107, - "source": 23, - "pc": [ - 138 - ] - }, - { - "teal": 111, - "source": 36, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 119, - "source": 37, - "pc": [ - 142 - ] - }, - { - "teal": 120, - "source": 37, - "pc": [ - 143 - ] - }, - { - "teal": 121, - "source": 37, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 125, - "source": 38, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 126, - "source": 38, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 130, - "source": 39, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 131, - "source": 39, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 135, - "source": 40, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 136, - "source": 40, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 139, - "source": 37, - "pc": [ - 158 - ] - }, - { - "teal": 140, - "source": 37, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 143, - "source": 37, - "pc": [ - 161 - ] - }, - { - "teal": 144, - "source": 36, - "pc": [ - 162 - ] - }, - { - "teal": 148, - "source": 44, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 152, - "source": 45, - "pc": [ - 166 - ] - }, - { - "teal": 153, - "source": 45, - "pc": [ - 167, - 168 - ] - }, - { - "teal": 154, - "source": 45, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 155, - "source": 45, - "pc": [ - 171, - 172, - 173 - ] - }, - { - "teal": 156, - "source": 44, - "pc": [ - 174 - ] - }, - { - "teal": 160, - "source": 48, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 164, - "source": 49, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 165, - "source": 49, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 166, - "source": 49, - "pc": [ - 182 - ] - }, - { - "teal": 167, - "source": 49, - "pc": [ - 183 - ] - }, - { - "teal": 168, - "source": 48, - "pc": [ - 184 - ] - }, - { - "teal": 172, - "source": 52, - "pc": [ - 185, - 186, - 187 - ] - }, - { - "teal": 175, - "source": 52, - "pc": [ - 188 - ] - }, - { - "teal": 176, - "source": 52, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 180, - "source": 53, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 181, - "source": 53, - "pc": [ - 193 - ] - }, - { - "teal": 182, - "source": 53, - "pc": [ - 194 - ] - }, - { - "teal": 183, - "source": 53, - "pc": [ - 195 - ] - }, - { - "teal": 184, - "source": 53, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 185, - "source": 53, - "pc": [ - 198 - ] - }, - { - "teal": 186, - "source": 53, - "pc": [ - 199 - ] - }, - { - "teal": 187, - "source": 53, - "pc": [ - 200 - ] - }, - { - "teal": 188, - "source": 53, - "pc": [ - 201 - ] - }, - { - "teal": 189, - "source": 53, - "pc": [ - 202 - ] - }, - { - "teal": 192, - "source": 53, - "errorMessage": "wideRatio failed", - "pc": [ - 203 - ] - }, - { - "teal": 193, - "source": 53, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 197, - "source": 54, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 198, - "source": 54, - "pc": [ - 208 - ] - }, - { - "teal": 199, - "source": 54, - "pc": [ - 209 - ] - }, - { - "teal": 200, - "source": 54, - "pc": [ - 210 - ] - }, - { - "teal": 201, - "source": 54, - "pc": [ - 211, - 212 - ] - }, - { - "teal": 202, - "source": 54, - "pc": [ - 213 - ] - }, - { - "teal": 203, - "source": 54, - "pc": [ - 214 - ] - }, - { - "teal": 204, - "source": 54, - "pc": [ - 215 - ] - }, - { - "teal": 205, - "source": 54, - "pc": [ - 216 - ] - }, - { - "teal": 206, - "source": 54, - "pc": [ - 217 - ] - }, - { - "teal": 209, - "source": 54, - "errorMessage": "wideRatio failed", - "pc": [ - 218 - ] - }, - { - "teal": 210, - "source": 54, - "pc": [ - 219, - 220 - ] - }, - { - "teal": 214, - "source": 56, - "pc": [ - 221, - 222 - ] - }, - { - "teal": 215, - "source": 56, - "pc": [ - 223, - 224 - ] - }, - { - "teal": 216, - "source": 56, - "pc": [ - 225 - ] - }, - { - "teal": 217, - "source": 56, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 218, - "source": 56, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 219, - "source": 56, - "pc": [ - 231, - 232, - 233 - ] - }, - { - "teal": 222, - "source": 56, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 225, - "source": 56, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 229, - "source": 58, - "pc": [ - 238, - 239 - ] - }, - { - "teal": 230, - "source": 58, - "pc": [ - 240, - 241 - ] - }, - { - "teal": 231, - "source": 58, - "pc": [ - 242 - ] - }, - { - "teal": 232, - "source": 58, - "pc": [ - 243 - ] - }, - { - "teal": 233, - "source": 58, - "pc": [ - 244 - ] - }, - { - "teal": 234, - "source": 58, - "pc": [ - 245 - ] - }, - { - "teal": 235, - "source": 58, - "pc": [ - 246 - ] - }, - { - "teal": 236, - "source": 58, - "pc": [ - 247 - ] - }, - { - "teal": 237, - "source": 58, - "pc": [ - 248 - ] - }, - { - "teal": 238, - "source": 58, - "pc": [ - 249 - ] - }, - { - "teal": 241, - "source": 58, - "errorMessage": "wideRatio failed", - "pc": [ - 250 - ] - }, - { - "teal": 244, - "source": 52, - "pc": [ - 251, - 252 - ] - }, - { - "teal": 247, - "source": 52, - "pc": [ - 253, - 254 - ] - }, - { - "teal": 248, - "source": 52, - "pc": [ - 255 - ] - }, - { - "teal": 252, - "source": 61, - "pc": [ - 256, - 257, - 258 - ] - }, - { - "teal": 259, - "source": 63, - "pc": [ - 259, - 260 - ] - }, - { - "teal": 260, - "source": 63, - "pc": [ - 261 - ] - }, - { - "teal": 261, - "source": 63, - "pc": [ - 262 - ] - }, - { - "teal": 262, - "source": 63, - "pc": [ - 263, - 264 - ] - }, - { - "teal": 263, - "source": 63, - "pc": [ - 265 - ] - }, - { - "teal": 264, - "source": 63, - "pc": [ - 266 - ] - }, - { - "teal": 265, - "source": 62, - "pc": [ - 267 - ] - }, - { - "teal": 266, - "source": 62, - "pc": [ - 268 - ] - }, - { - "teal": 267, - "source": 64, - "pc": [ - 269, - 270 - ] - }, - { - "teal": 268, - "source": 64, - "pc": [ - 271 - ] - }, - { - "teal": 269, - "source": 64, - "pc": [ - 272 - ] - }, - { - "teal": 270, - "source": 64, - "pc": [ - 273, - 274 - ] - }, - { - "teal": 271, - "source": 64, - "pc": [ - 275 - ] - }, - { - "teal": 272, - "source": 62, - "pc": [ - 276 - ] - }, - { - "teal": 273, - "source": 62, - "pc": [ - 277 - ] - }, - { - "teal": 274, - "source": 62, - "pc": [ - 278 - ] - }, - { - "teal": 275, - "source": 62, - "pc": [ - 279 - ] - }, - { - "teal": 276, - "source": 62, - "pc": [ - 280 - ] - }, - { - "teal": 279, - "source": 62, - "errorMessage": "wideRatio failed", - "pc": [ - 281 - ] - }, - { - "teal": 280, - "source": 61, - "pc": [ - 282 - ] - }, - { - "teal": 284, - "source": 68, - "pc": [ - 283, - 284, - 285 - ] - }, - { - "teal": 288, - "source": 69, - "pc": [ - 286, - 287 - ] - }, - { - "teal": 289, - "source": 69, - "pc": [ - 288, - 289 - ] - }, - { - "teal": 290, - "source": 69, - "pc": [ - 290 - ] - }, - { - "teal": 291, - "source": 69, - "pc": [ - 291 - ] - }, - { - "teal": 292, - "source": 69, - "pc": [ - 292, - 293 - ] - }, - { - "teal": 293, - "source": 69, - "pc": [ - 294 - ] - }, - { - "teal": 294, - "source": 69, - "pc": [ - 295 - ] - }, - { - "teal": 295, - "source": 69, - "pc": [ - 296 - ] - }, - { - "teal": 296, - "source": 69, - "pc": [ - 297 - ] - }, - { - "teal": 297, - "source": 69, - "pc": [ - 298 - ] - }, - { - "teal": 300, - "source": 69, - "errorMessage": "wideRatio failed", - "pc": [ - 299 - ] - }, - { - "teal": 301, - "source": 68, - "pc": [ - 300 - ] - }, - { - "teal": 305, - "source": 72, - "pc": [ - 301, - 302, - 303 - ] - }, - { - "teal": 308, - "source": 72, - "pc": [ - 304 - ] - }, - { - "teal": 312, - "source": 73, - "pc": [ - 305, - 306, - 307 - ] - }, - { - "teal": 313, - "source": 73, - "pc": [ - 308, - 309 - ] - }, - { - "teal": 317, - "source": 74, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 318, - "source": 74, - "pc": [ - 312, - 313 - ] - }, - { - "teal": 319, - "source": 74, - "pc": [ - 314 - ] - }, - { - "teal": 320, - "source": 74, - "pc": [ - 315, - 316 - ] - }, - { - "teal": 321, - "source": 74, - "pc": [ - 317, - 318 - ] - }, - { - "teal": 322, - "source": 74, - "pc": [ - 319, - 320 - ] - }, - { - "teal": 323, - "source": 74, - "pc": [ - 321 - ] - }, - { - "teal": 324, - "source": 74, - "pc": [ - 322, - 323 - ] - }, - { - "teal": 325, - "source": 74, - "pc": [ - 324 - ] - }, - { - "teal": 326, - "source": 74, - "pc": [ - 325, - 326 - ] - }, - { - "teal": 327, - "source": 74, - "pc": [ - 327 - ] - }, - { - "teal": 328, - "source": 74, - "pc": [ - 328 - ] - }, - { - "teal": 329, - "source": 74, - "pc": [ - 329 - ] - }, - { - "teal": 330, - "source": 74, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 331, - "source": 74, - "pc": [ - 332 - ] - }, - { - "teal": 332, - "source": 74, - "pc": [ - 333 - ] - }, - { - "teal": 333, - "source": 74, - "pc": [ - 334, - 335 - ] - }, - { - "teal": 334, - "source": 74, - "pc": [ - 336, - 337 - ] - }, - { - "teal": 335, - "source": 74, - "pc": [ - 338 - ] - }, - { - "teal": 336, - "source": 74, - "pc": [ - 339 - ] - }, - { - "teal": 337, - "source": 74, - "pc": [ - 340 - ] - }, - { - "teal": 338, - "source": 74, - "pc": [ - 341 - ] - }, - { - "teal": 339, - "source": 74, - "pc": [ - 342 - ] - }, - { - "teal": 340, - "source": 74, - "pc": [ - 343 - ] - }, - { - "teal": 341, - "source": 74, - "pc": [ - 344 - ] - }, - { - "teal": 344, - "source": 74, - "errorMessage": "wideRatio failed", - "pc": [ - 345 - ] - }, - { - "teal": 347, - "source": 72, - "pc": [ - 346, - 347 - ] - }, - { - "teal": 348, - "source": 72, - "pc": [ - 348 - ] - }, - { - "teal": 353, - "source": 77, - "pc": [ - 349, - 350, - 351 - ] - }, - { - "teal": 354, - "source": 77, - "pc": [ - 352 - ] - }, - { - "teal": 355, - "source": 77, - "pc": [ - 353 - ] - }, - { - "teal": 356, - "source": 77, - "pc": [ - 354, - 355 - ] - }, - { - "teal": 357, - "source": 77, - "pc": [ - 356 - ] - }, - { - "teal": 360, - "source": 77, - "errorMessage": "argument 0 (governor) for set_governor must be a address", - "pc": [ - 357 - ] - }, - { - "teal": 363, - "source": 77, - "pc": [ - 358, - 359, - 360 - ] - }, - { - "teal": 364, - "source": 77, - "pc": [ - 361 - ] - }, - { - "teal": 365, - "source": 77, - "pc": [ - 362 - ] - }, - { - "teal": 369, - "source": 77, - "pc": [ - 363, - 364, - 365 - ] - }, - { - "teal": 374, - "source": 78, - "pc": [ - 366, - 367 - ] - }, - { - "teal": 375, - "source": 78, - "pc": [ - 368 - ] - }, - { - "teal": 376, - "source": 78, - "pc": [ - 369 - ] - }, - { - "teal": 377, - "source": 78, - "pc": [ - 370 - ] - }, - { - "teal": 380, - "source": 78, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}", - "pc": [ - 371 - ] - }, - { - "teal": 384, - "source": 79, - "pc": [ - 372 - ] - }, - { - "teal": 385, - "source": 79, - "pc": [ - 373, - 374 - ] - }, - { - "teal": 386, - "source": 79, - "pc": [ - 375 - ] - }, - { - "teal": 387, - "source": 77, - "pc": [ - 376 - ] - }, - { - "teal": 392, - "source": 82, - "pc": [ - 377, - 378, - 379, - 380, - 381, - 382 - ] - }, - { - "teal": 395, - "source": 82, - "pc": [ - 383, - 384, - 385 - ] - }, - { - "teal": 396, - "source": 82, - "pc": [ - 386 - ] - }, - { - "teal": 399, - "source": 82, - "pc": [ - 387, - 388, - 389 - ] - }, - { - "teal": 400, - "source": 82, - "pc": [ - 390 - ] - }, - { - "teal": 403, - "source": 82, - "pc": [ - 391, - 392 - ] - }, - { - "teal": 404, - "source": 82, - "pc": [ - 393 - ] - }, - { - "teal": 405, - "source": 82, - "pc": [ - 394 - ] - }, - { - "teal": 406, - "source": 82, - "pc": [ - 395 - ] - }, - { - "teal": 407, - "source": 82, - "pc": [ - 396, - 397 - ] - }, - { - "teal": 408, - "source": 82, - "pc": [ - 398 - ] - }, - { - "teal": 409, - "source": 82, - "pc": [ - 399 - ] - }, - { - "teal": 412, - "source": 82, - "errorMessage": "argument 2 (seed) for bootstrap must be a pay transaction", - "pc": [ - 400 - ] - }, - { - "teal": 415, - "source": 82, - "pc": [ - 401, - 402, - 403 - ] - }, - { - "teal": 416, - "source": 82, - "pc": [ - 404 - ] - }, - { - "teal": 417, - "source": 82, - "pc": [ - 405 - ] - }, - { - "teal": 418, - "source": 82, - "pc": [ - 406 - ] - }, - { - "teal": 419, - "source": 82, - "pc": [ - 407 - ] - }, - { - "teal": 420, - "source": 82, - "pc": [ - 408 - ] - }, - { - "teal": 424, - "source": 82, - "pc": [ - 409, - 410, - 411 - ] - }, - { - "teal": 429, - "source": 83, - "pc": [ - 412, - 413 - ] - }, - { - "teal": 430, - "source": 83, - "pc": [ - 414 - ] - }, - { - "teal": 431, - "source": 83, - "pc": [ - 415 - ] - }, - { - "teal": 432, - "source": 83, - "pc": [ - 416 - ] - }, - { - "teal": 435, - "source": 83, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}", - "pc": [ - 417 - ] - }, - { - "teal": 439, - "source": 85, - "pc": [ - 418, - 419 - ] - }, - { - "teal": 440, - "source": 85, - "pc": [ - 420, - 421 - ] - }, - { - "teal": 441, - "source": 85, - "pc": [ - 422 - ] - }, - { - "teal": 442, - "source": 85, - "pc": [ - 423 - ] - }, - { - "teal": 447, - "source": 87, - "pc": [ - 424, - 425 - ] - }, - { - "teal": 448, - "source": 87, - "pc": [ - 426, - 427 - ] - }, - { - "teal": 449, - "source": 87, - "pc": [ - 428, - 429 - ] - }, - { - "teal": 450, - "source": 87, - "pc": [ - 430 - ] - }, - { - "teal": 453, - "source": 87, - "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 431 - ] - }, - { - "teal": 456, - "source": 87, - "pc": [ - 432, - 433 - ] - }, - { - "teal": 457, - "source": 87, - "pc": [ - 434, - 435 - ] - }, - { - "teal": 458, - "source": 87, - "pc": [ - 436, - 437, - 438, - 439 - ] - }, - { - "teal": 459, - "source": 87, - "pc": [ - 440 - ] - }, - { - "teal": 462, - "source": 87, - "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"amount\",\"condition\":\"greaterThanEqualTo\",\"expected\":\">=300_000\"}", - "pc": [ - 441 - ] - }, - { - "teal": 466, - "source": 88, - "pc": [ - 442, - 443 - ] - }, - { - "teal": 467, - "source": 88, - "pc": [ - 444, - 445 - ] - }, - { - "teal": 468, - "source": 88, - "pc": [ - 446 - ] - }, - { - "teal": 469, - "source": 88, - "pc": [ - 447 - ] - }, - { - "teal": 473, - "source": 90, - "pc": [ - 448 - ] - }, - { - "teal": 474, - "source": 90, - "pc": [ - 449, - 450 - ] - }, - { - "teal": 475, - "source": 90, - "pc": [ - 451 - ] - }, - { - "teal": 479, - "source": 91, - "pc": [ - 452 - ] - }, - { - "teal": 480, - "source": 91, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 481, - "source": 91, - "pc": [ - 455 - ] - }, - { - "teal": 485, - "source": 92, - "pc": [ - 456, - 457 - ] - }, - { - "teal": 486, - "source": 92, - "pc": [ - 458, - 459 - ] - }, - { - "teal": 487, - "source": 92, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 488, - "source": 92, - "pc": [ - 462, - 463, - 464 - ] - }, - { - "teal": 489, - "source": 92, - "pc": [ - 465 - ] - }, - { - "teal": 493, - "source": 94, - "pc": [ - 466, - 467 - ] - }, - { - "teal": 494, - "source": 94, - "pc": [ - 468, - 469, - 470 - ] - }, - { - "teal": 498, - "source": 95, - "pc": [ - 471, - 472 - ] - }, - { - "teal": 499, - "source": 95, - "pc": [ - 473, - 474, - 475 - ] - }, - { - "teal": 503, - "source": 97, - "pc": [ - 476, - 477 - ] - }, - { - "teal": 504, - "source": 97, - "pc": [ - 478 - ] - }, - { - "teal": 505, - "source": 82, - "pc": [ - 479 - ] - }, - { - "teal": 510, - "source": 100, - "pc": [ - 480, - 481, - 482 - ] - }, - { - "teal": 511, - "source": 100, - "pc": [ - 483 - ] - }, - { - "teal": 514, - "source": 100, - "pc": [ - 484, - 485, - 486 - ] - }, - { - "teal": 515, - "source": 100, - "pc": [ - 487 - ] - }, - { - "teal": 518, - "source": 100, - "pc": [ - 488, - 489, - 490 - ] - }, - { - "teal": 519, - "source": 100, - "pc": [ - 491 - ] - }, - { - "teal": 522, - "source": 100, - "pc": [ - 492, - 493 - ] - }, - { - "teal": 523, - "source": 100, - "pc": [ - 494 - ] - }, - { - "teal": 524, - "source": 100, - "pc": [ - 495 - ] - }, - { - "teal": 525, - "source": 100, - "pc": [ - 496 - ] - }, - { - "teal": 526, - "source": 100, - "pc": [ - 497, - 498 - ] - }, - { - "teal": 527, - "source": 100, - "pc": [ - 499 - ] - }, - { - "teal": 528, - "source": 100, - "pc": [ - 500 - ] - }, - { - "teal": 531, - "source": 100, - "errorMessage": "argument 3 (bXfer) for mint must be a axfer transaction", - "pc": [ - 501 - ] - }, - { - "teal": 534, - "source": 100, - "pc": [ - 502, - 503 - ] - }, - { - "teal": 535, - "source": 100, - "pc": [ - 504, - 505 - ] - }, - { - "teal": 536, - "source": 100, - "pc": [ - 506 - ] - }, - { - "teal": 537, - "source": 100, - "pc": [ - 507 - ] - }, - { - "teal": 538, - "source": 100, - "pc": [ - 508, - 509 - ] - }, - { - "teal": 539, - "source": 100, - "pc": [ - 510 - ] - }, - { - "teal": 540, - "source": 100, - "pc": [ - 511 - ] - }, - { - "teal": 543, - "source": 100, - "errorMessage": "argument 4 (aXfer) for mint must be a axfer transaction", - "pc": [ - 512 - ] - }, - { - "teal": 546, - "source": 100, - "pc": [ - 513, - 514, - 515 - ] - }, - { - "teal": 547, - "source": 100, - "pc": [ - 516 - ] - }, - { - "teal": 548, - "source": 100, - "pc": [ - 517 - ] - }, - { - "teal": 552, - "source": 100, - "pc": [ - 518, - 519, - 520 - ] - }, - { - "teal": 555, - "source": 100, - "pc": [ - 521 - ] - }, - { - "teal": 560, - "source": 102, - "pc": [ - 522, - 523 - ] - }, - { - "teal": 561, - "source": 102, - "pc": [ - 524 - ] - }, - { - "teal": 562, - "source": 102, - "pc": [ - 525 - ] - }, - { - "teal": 563, - "source": 102, - "pc": [ - 526 - ] - }, - { - "teal": 564, - "source": 102, - "pc": [ - 527 - ] - }, - { - "teal": 568, - "source": 103, - "pc": [ - 528, - 529 - ] - }, - { - "teal": 569, - "source": 103, - "pc": [ - 530 - ] - }, - { - "teal": 570, - "source": 103, - "pc": [ - 531 - ] - }, - { - "teal": 571, - "source": 103, - "pc": [ - 532 - ] - }, - { - "teal": 572, - "source": 103, - "pc": [ - 533 - ] - }, - { - "teal": 576, - "source": 104, - "pc": [ - 534, - 535 - ] - }, - { - "teal": 577, - "source": 104, - "pc": [ - 536, - 537 - ] - }, - { - "teal": 578, - "source": 104, - "pc": [ - 538 - ] - }, - { - "teal": 579, - "source": 104, - "pc": [ - 539 - ] - }, - { - "teal": 580, - "source": 104, - "pc": [ - 540 - ] - }, - { - "teal": 591, - "source": 107, - "pc": [ - 541, - 542 - ] - }, - { - "teal": 592, - "source": 108, - "pc": [ - 543, - 544 - ] - }, - { - "teal": 593, - "source": 108, - "pc": [ - 545, - 546 - ] - }, - { - "teal": 594, - "source": 108, - "pc": [ - 547 - ] - }, - { - "teal": 597, - "source": 108, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", - "pc": [ - 548 - ] - }, - { - "teal": 600, - "source": 107, - "pc": [ - 549, - 550 - ] - }, - { - "teal": 601, - "source": 109, - "pc": [ - 551, - 552 - ] - }, - { - "teal": 602, - "source": 109, - "pc": [ - 553 - ] - }, - { - "teal": 603, - "source": 109, - "pc": [ - 554 - ] - }, - { - "teal": 606, - "source": 109, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", - "pc": [ - 555 - ] - }, - { - "teal": 609, - "source": 107, - "pc": [ - 556, - 557 - ] - }, - { - "teal": 610, - "source": 110, - "pc": [ - 558, - 559 - ] - }, - { - "teal": 611, - "source": 110, - "pc": [ - 560, - 561 - ] - }, - { - "teal": 612, - "source": 110, - "pc": [ - 562 - ] - }, - { - "teal": 615, - "source": 110, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 563 - ] - }, - { - "teal": 618, - "source": 107, - "pc": [ - 564, - 565 - ] - }, - { - "teal": 619, - "source": 111, - "pc": [ - 566, - 567 - ] - }, - { - "teal": 620, - "source": 111, - "pc": [ - 568, - 569 - ] - }, - { - "teal": 621, - "source": 111, - "pc": [ - 570 - ] - }, - { - "teal": 624, - "source": 111, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"xferAsset\",\"expected\":\"aAsset\"}", - "pc": [ - 571 - ] - }, - { - "teal": 635, - "source": 115, - "pc": [ - 572, - 573 - ] - }, - { - "teal": 636, - "source": 116, - "pc": [ - 574, - 575 - ] - }, - { - "teal": 637, - "source": 116, - "pc": [ - 576, - 577 - ] - }, - { - "teal": 638, - "source": 116, - "pc": [ - 578 - ] - }, - { - "teal": 641, - "source": 116, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", - "pc": [ - 579 - ] - }, - { - "teal": 644, - "source": 115, - "pc": [ - 580, - 581 - ] - }, - { - "teal": 645, - "source": 117, - "pc": [ - 582, - 583 - ] - }, - { - "teal": 646, - "source": 117, - "pc": [ - 584 - ] - }, - { - "teal": 647, - "source": 117, - "pc": [ - 585 - ] - }, - { - "teal": 650, - "source": 117, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", - "pc": [ - 586 - ] - }, - { - "teal": 653, - "source": 115, - "pc": [ - 587, - 588 - ] - }, - { - "teal": 654, - "source": 118, - "pc": [ - 589, - 590 - ] - }, - { - "teal": 655, - "source": 118, - "pc": [ - 591, - 592 - ] - }, - { - "teal": 656, - "source": 118, - "pc": [ - 593 - ] - }, - { - "teal": 659, - "source": 118, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 594 - ] - }, - { - "teal": 662, - "source": 115, - "pc": [ - 595, - 596 - ] - }, - { - "teal": 663, - "source": 119, - "pc": [ - 597, - 598 - ] - }, - { - "teal": 664, - "source": 119, - "pc": [ - 599, - 600 - ] - }, - { - "teal": 665, - "source": 119, - "pc": [ - 601 - ] - }, - { - "teal": 668, - "source": 119, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"xferAsset\",\"expected\":\"bAsset\"}", - "pc": [ - 602 - ] - }, - { - "teal": 674, - "source": 123, - "pc": [ - 603, - 604 - ] - }, - { - "teal": 675, - "source": 123, - "pc": [ - 605, - 606 - ] - }, - { - "teal": 676, - "source": 123, - "pc": [ - 607, - 608 - ] - }, - { - "teal": 677, - "source": 123, - "pc": [ - 609 - ] - }, - { - "teal": 678, - "source": 123, - "pc": [ - 610, - 611 - ] - }, - { - "teal": 679, - "source": 123, - "pc": [ - 612, - 613 - ] - }, - { - "teal": 680, - "source": 123, - "pc": [ - 614 - ] - }, - { - "teal": 681, - "source": 123, - "pc": [ - 615 - ] - }, - { - "teal": 682, - "source": 123, - "pc": [ - 616, - 617, - 618 - ] - }, - { - "teal": 683, - "source": 124, - "pc": [ - 619, - 620 - ] - }, - { - "teal": 684, - "source": 124, - "pc": [ - 621, - 622 - ] - }, - { - "teal": 685, - "source": 124, - "pc": [ - 623, - 624 - ] - }, - { - "teal": 686, - "source": 124, - "pc": [ - 625 - ] - }, - { - "teal": 687, - "source": 124, - "pc": [ - 626, - 627 - ] - }, - { - "teal": 688, - "source": 124, - "pc": [ - 628, - 629 - ] - }, - { - "teal": 689, - "source": 124, - "pc": [ - 630 - ] - }, - { - "teal": 690, - "source": 123, - "pc": [ - 631 - ] - }, - { - "teal": 693, - "source": 122, - "pc": [ - 632, - 633, - 634 - ] - }, - { - "teal": 698, - "source": 126, - "pc": [ - 635, - 636 - ] - }, - { - "teal": 699, - "source": 126, - "pc": [ - 637, - 638 - ] - }, - { - "teal": 700, - "source": 126, - "pc": [ - 639, - 640 - ] - }, - { - "teal": 701, - "source": 126, - "pc": [ - 641, - 642 - ] - }, - { - "teal": 702, - "source": 126, - "pc": [ - 643, - 644, - 645 - ] - }, - { - "teal": 703, - "source": 122, - "pc": [ - 646, - 647, - 648 - ] - }, - { - "teal": 714, - "source": 133, - "pc": [ - 649, - 650 - ] - }, - { - "teal": 715, - "source": 133, - "pc": [ - 651, - 652 - ] - }, - { - "teal": 716, - "source": 132, - "pc": [ - 653, - 654 - ] - }, - { - "teal": 717, - "source": 132, - "pc": [ - 655, - 656 - ] - }, - { - "teal": 718, - "source": 131, - "pc": [ - 657, - 658 - ] - }, - { - "teal": 719, - "source": 131, - "pc": [ - 659, - 660 - ] - }, - { - "teal": 720, - "source": 131, - "pc": [ - 661, - 662 - ] - }, - { - "teal": 721, - "source": 131, - "pc": [ - 663 - ] - }, - { - "teal": 722, - "source": 131, - "pc": [ - 664, - 665 - ] - }, - { - "teal": 723, - "source": 131, - "pc": [ - 666, - 667 - ] - }, - { - "teal": 724, - "source": 131, - "pc": [ - 668 - ] - }, - { - "teal": 725, - "source": 130, - "pc": [ - 669, - 670 - ] - }, - { - "teal": 726, - "source": 130, - "pc": [ - 671, - 672 - ] - }, - { - "teal": 727, - "source": 130, - "pc": [ - 673, - 674 - ] - }, - { - "teal": 728, - "source": 130, - "pc": [ - 675 - ] - }, - { - "teal": 729, - "source": 130, - "pc": [ - 676, - 677 - ] - }, - { - "teal": 730, - "source": 130, - "pc": [ - 678, - 679 - ] - }, - { - "teal": 731, - "source": 130, - "pc": [ - 680 - ] - }, - { - "teal": 732, - "source": 129, - "pc": [ - 681, - 682 - ] - }, - { - "teal": 733, - "source": 129, - "pc": [ - 683, - 684 - ] - }, - { - "teal": 734, - "source": 129, - "pc": [ - 685, - 686 - ] - }, - { - "teal": 735, - "source": 129, - "pc": [ - 687, - 688 - ] - }, - { - "teal": 736, - "source": 129, - "pc": [ - 689 - ] - }, - { - "teal": 737, - "source": 129, - "pc": [ - 690 - ] - }, - { - "teal": 738, - "source": 128, - "pc": [ - 691, - 692, - 693 - ] - }, - { - "teal": 739, - "source": 128, - "pc": [ - 694, - 695 - ] - }, - { - "teal": 743, - "source": 136, - "pc": [ - 696, - 697 - ] - }, - { - "teal": 744, - "source": 136, - "pc": [ - 698 - ] - }, - { - "teal": 745, - "source": 136, - "pc": [ - 699 - ] - }, - { - "teal": 746, - "source": 136, - "pc": [ - 700 - ] - }, - { - "teal": 750, - "source": 138, - "pc": [ - 701, - 702 - ] - }, - { - "teal": 751, - "source": 138, - "pc": [ - 703, - 704 - ] - }, - { - "teal": 752, - "source": 138, - "pc": [ - 705, - 706 - ] - }, - { - "teal": 753, - "source": 138, - "pc": [ - 707, - 708, - 709 - ] - }, - { - "teal": 756, - "source": 100, - "pc": [ - 710 - ] - }, - { - "teal": 761, - "source": 142, - "pc": [ - 711, - 712, - 713 - ] - }, - { - "teal": 762, - "source": 142, - "pc": [ - 714 - ] - }, - { - "teal": 765, - "source": 142, - "pc": [ - 715, - 716, - 717 - ] - }, - { - "teal": 766, - "source": 142, - "pc": [ - 718 - ] - }, - { - "teal": 769, - "source": 142, - "pc": [ - 719, - 720, - 721 - ] - }, - { - "teal": 770, - "source": 142, - "pc": [ - 722 - ] - }, - { - "teal": 773, - "source": 142, - "pc": [ - 723, - 724 - ] - }, - { - "teal": 774, - "source": 142, - "pc": [ - 725 - ] - }, - { - "teal": 775, - "source": 142, - "pc": [ - 726 - ] - }, - { - "teal": 776, - "source": 142, - "pc": [ - 727 - ] - }, - { - "teal": 777, - "source": 142, - "pc": [ - 728, - 729 - ] - }, - { - "teal": 778, - "source": 142, - "pc": [ - 730 - ] - }, - { - "teal": 779, - "source": 142, - "pc": [ - 731 - ] - }, - { - "teal": 782, - "source": 142, - "errorMessage": "argument 3 (poolXfer) for burn must be a axfer transaction", - "pc": [ - 732 - ] - }, - { - "teal": 785, - "source": 142, - "pc": [ - 733, - 734, - 735 - ] - }, - { - "teal": 786, - "source": 142, - "pc": [ - 736 - ] - }, - { - "teal": 787, - "source": 142, - "pc": [ - 737 - ] - }, - { - "teal": 791, - "source": 142, - "pc": [ - 738, - 739, - 740 - ] - }, - { - "teal": 794, - "source": 142, - "pc": [ - 741 - ] - }, - { - "teal": 795, - "source": 142, - "pc": [ - 742, - 743 - ] - }, - { - "teal": 800, - "source": 144, - "pc": [ - 744, - 745 - ] - }, - { - "teal": 801, - "source": 144, - "pc": [ - 746, - 747 - ] - }, - { - "teal": 802, - "source": 144, - "pc": [ - 748 - ] - }, - { - "teal": 803, - "source": 144, - "pc": [ - 749 - ] - }, - { - "teal": 804, - "source": 144, - "pc": [ - 750 - ] - }, - { - "teal": 808, - "source": 145, - "pc": [ - 751, - 752 - ] - }, - { - "teal": 809, - "source": 145, - "pc": [ - 753 - ] - }, - { - "teal": 810, - "source": 145, - "pc": [ - 754 - ] - }, - { - "teal": 811, - "source": 145, - "pc": [ - 755 - ] - }, - { - "teal": 812, - "source": 145, - "pc": [ - 756 - ] - }, - { - "teal": 816, - "source": 146, - "pc": [ - 757, - 758 - ] - }, - { - "teal": 817, - "source": 146, - "pc": [ - 759 - ] - }, - { - "teal": 818, - "source": 146, - "pc": [ - 760 - ] - }, - { - "teal": 819, - "source": 146, - "pc": [ - 761 - ] - }, - { - "teal": 820, - "source": 146, - "pc": [ - 762 - ] - }, - { - "teal": 831, - "source": 149, - "pc": [ - 763, - 764 - ] - }, - { - "teal": 832, - "source": 150, - "pc": [ - 765, - 766 - ] - }, - { - "teal": 833, - "source": 150, - "pc": [ - 767, - 768 - ] - }, - { - "teal": 834, - "source": 150, - "pc": [ - 769 - ] - }, - { - "teal": 837, - "source": 150, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", - "pc": [ - 770 - ] - }, - { - "teal": 840, - "source": 149, - "pc": [ - 771, - 772 - ] - }, - { - "teal": 841, - "source": 151, - "pc": [ - 773, - 774 - ] - }, - { - "teal": 842, - "source": 151, - "pc": [ - 775 - ] - }, - { - "teal": 843, - "source": 151, - "pc": [ - 776 - ] - }, - { - "teal": 846, - "source": 151, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", - "pc": [ - 777 - ] - }, - { - "teal": 849, - "source": 149, - "pc": [ - 778, - 779 - ] - }, - { - "teal": 850, - "source": 152, - "pc": [ - 780, - 781 - ] - }, - { - "teal": 851, - "source": 152, - "pc": [ - 782, - 783 - ] - }, - { - "teal": 852, - "source": 152, - "pc": [ - 784 - ] - }, - { - "teal": 855, - "source": 152, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 785 - ] - }, - { - "teal": 858, - "source": 149, - "pc": [ - 786, - 787 - ] - }, - { - "teal": 859, - "source": 153, - "pc": [ - 788, - 789 - ] - }, - { - "teal": 860, - "source": 153, - "pc": [ - 790, - 791 - ] - }, - { - "teal": 861, - "source": 153, - "pc": [ - 792 - ] - }, - { - "teal": 864, - "source": 153, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"xferAsset\",\"expected\":\"poolAsset\"}", - "pc": [ - 793 - ] - }, - { - "teal": 868, - "source": 156, - "pc": [ - 794, - 795 - ] - }, - { - "teal": 869, - "source": 156, - "pc": [ - 796, - 797 - ] - }, - { - "teal": 870, - "source": 156, - "pc": [ - 798, - 799 - ] - }, - { - "teal": 871, - "source": 156, - "pc": [ - 800, - 801 - ] - }, - { - "teal": 872, - "source": 156, - "pc": [ - 802 - ] - }, - { - "teal": 873, - "source": 156, - "pc": [ - 803, - 804 - ] - }, - { - "teal": 874, - "source": 156, - "pc": [ - 805, - 806 - ] - }, - { - "teal": 875, - "source": 156, - "pc": [ - 807 - ] - }, - { - "teal": 876, - "source": 156, - "pc": [ - 808 - ] - }, - { - "teal": 877, - "source": 156, - "pc": [ - 809, - 810 - ] - }, - { - "teal": 881, - "source": 158, - "pc": [ - 811, - 812 - ] - }, - { - "teal": 882, - "source": 158, - "pc": [ - 813, - 814 - ] - }, - { - "teal": 883, - "source": 158, - "pc": [ - 815, - 816 - ] - }, - { - "teal": 884, - "source": 158, - "pc": [ - 817, - 818 - ] - }, - { - "teal": 885, - "source": 158, - "pc": [ - 819, - 820 - ] - }, - { - "teal": 886, - "source": 158, - "pc": [ - 821 - ] - }, - { - "teal": 887, - "source": 158, - "pc": [ - 822, - 823 - ] - }, - { - "teal": 888, - "source": 158, - "pc": [ - 824, - 825, - 826 - ] - }, - { - "teal": 889, - "source": 158, - "pc": [ - 827, - 828 - ] - }, - { - "teal": 893, - "source": 160, - "pc": [ - 829, - 830 - ] - }, - { - "teal": 894, - "source": 160, - "pc": [ - 831, - 832 - ] - }, - { - "teal": 895, - "source": 160, - "pc": [ - 833, - 834 - ] - }, - { - "teal": 896, - "source": 160, - "pc": [ - 835, - 836 - ] - }, - { - "teal": 897, - "source": 160, - "pc": [ - 837, - 838 - ] - }, - { - "teal": 898, - "source": 160, - "pc": [ - 839 - ] - }, - { - "teal": 899, - "source": 160, - "pc": [ - 840, - 841 - ] - }, - { - "teal": 900, - "source": 160, - "pc": [ - 842, - 843, - 844 - ] - }, - { - "teal": 901, - "source": 160, - "pc": [ - 845, - 846 - ] - }, - { - "teal": 905, - "source": 162, - "pc": [ - 847, - 848 - ] - }, - { - "teal": 906, - "source": 162, - "pc": [ - 849, - 850 - ] - }, - { - "teal": 907, - "source": 162, - "pc": [ - 851, - 852 - ] - }, - { - "teal": 908, - "source": 162, - "pc": [ - 853, - 854, - 855 - ] - }, - { - "teal": 912, - "source": 163, - "pc": [ - 856, - 857 - ] - }, - { - "teal": 913, - "source": 163, - "pc": [ - 858, - 859 - ] - }, - { - "teal": 914, - "source": 163, - "pc": [ - 860, - 861 - ] - }, - { - "teal": 915, - "source": 163, - "pc": [ - 862, - 863, - 864 - ] - }, - { - "teal": 919, - "source": 165, - "pc": [ - 865, - 866 - ] - }, - { - "teal": 920, - "source": 165, - "pc": [ - 867, - 868, - 869 - ] - }, - { - "teal": 921, - "source": 165, - "pc": [ - 870 - ] - }, - { - "teal": 922, - "source": 142, - "pc": [ - 871 - ] - }, - { - "teal": 927, - "source": 168, - "pc": [ - 872, - 873, - 874 - ] - }, - { - "teal": 928, - "source": 168, - "pc": [ - 875 - ] - }, - { - "teal": 931, - "source": 168, - "pc": [ - 876, - 877, - 878 - ] - }, - { - "teal": 932, - "source": 168, - "pc": [ - 879 - ] - }, - { - "teal": 935, - "source": 168, - "pc": [ - 880, - 881 - ] - }, - { - "teal": 936, - "source": 168, - "pc": [ - 882 - ] - }, - { - "teal": 937, - "source": 168, - "pc": [ - 883 - ] - }, - { - "teal": 938, - "source": 168, - "pc": [ - 884 - ] - }, - { - "teal": 939, - "source": 168, - "pc": [ - 885, - 886 - ] - }, - { - "teal": 940, - "source": 168, - "pc": [ - 887 - ] - }, - { - "teal": 941, - "source": 168, - "pc": [ - 888 - ] - }, - { - "teal": 944, - "source": 168, - "errorMessage": "argument 2 (swapXfer) for swap must be a axfer transaction", - "pc": [ - 889 - ] - }, - { - "teal": 947, - "source": 168, - "pc": [ - 890, - 891, - 892 - ] - }, - { - "teal": 948, - "source": 168, - "pc": [ - 893 - ] - }, - { - "teal": 949, - "source": 168, - "pc": [ - 894 - ] - }, - { - "teal": 953, - "source": 168, - "pc": [ - 895, - 896, - 897 - ] - }, - { - "teal": 956, - "source": 168, - "pc": [ - 898 - ] - }, - { - "teal": 957, - "source": 168, - "pc": [ - 899, - 900 - ] - }, - { - "teal": 962, - "source": 170, - "pc": [ - 901, - 902 - ] - }, - { - "teal": 963, - "source": 170, - "pc": [ - 903 - ] - }, - { - "teal": 964, - "source": 170, - "pc": [ - 904 - ] - }, - { - "teal": 965, - "source": 170, - "pc": [ - 905 - ] - }, - { - "teal": 966, - "source": 170, - "pc": [ - 906 - ] - }, - { - "teal": 970, - "source": 171, - "pc": [ - 907, - 908 - ] - }, - { - "teal": 971, - "source": 171, - "pc": [ - 909 - ] - }, - { - "teal": 972, - "source": 171, - "pc": [ - 910 - ] - }, - { - "teal": 973, - "source": 171, - "pc": [ - 911 - ] - }, - { - "teal": 974, - "source": 171, - "pc": [ - 912 - ] - }, - { - "teal": 984, - "source": 173, - "pc": [ - 913, - 914 - ] - }, - { - "teal": 985, - "source": 174, - "pc": [ - 915, - 916 - ] - }, - { - "teal": 986, - "source": 174, - "pc": [ - 917 - ] - }, - { - "teal": 987, - "source": 174, - "pc": [ - 918 - ] - }, - { - "teal": 990, - "source": 174, - "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", - "pc": [ - 919 - ] - }, - { - "teal": 993, - "source": 173, - "pc": [ - 920, - 921 - ] - }, - { - "teal": 994, - "source": 175, - "pc": [ - 922, - 923 - ] - }, - { - "teal": 995, - "source": 175, - "pc": [ - 924, - 925 - ] - }, - { - "teal": 996, - "source": 175, - "pc": [ - 926 - ] - }, - { - "teal": 999, - "source": 175, - "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 927 - ] - }, - { - "teal": 1002, - "source": 173, - "pc": [ - 928, - 929 - ] - }, - { - "teal": 1003, - "source": 176, - "pc": [ - 930, - 931 - ] - }, - { - "teal": 1004, - "source": 176, - "pc": [ - 932, - 933 - ] - }, - { - "teal": 1005, - "source": 176, - "pc": [ - 934 - ] - }, - { - "teal": 1008, - "source": 176, - "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", - "pc": [ - 935 - ] - }, - { - "teal": 1011, - "source": 173, - "pc": [ - 936, - 937 - ] - }, - { - "teal": 1012, - "source": 177, - "pc": [ - 938, - 939 - ] - }, - { - "teal": 1013, - "source": 177, - "pc": [ - 940, - 941 - ] - }, - { - "teal": 1014, - "source": 177, - "pc": [ - 942 - ] - }, - { - "teal": 1015, - "source": 173, - "pc": [ - 943, - 944 - ] - }, - { - "teal": 1016, - "source": 177, - "pc": [ - 945, - 946 - ] - }, - { - "teal": 1017, - "source": 177, - "pc": [ - 947, - 948 - ] - }, - { - "teal": 1018, - "source": 177, - "pc": [ - 949 - ] - }, - { - "teal": 1019, - "source": 177, - "pc": [ - 950 - ] - }, - { - "teal": 1022, - "source": 177, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"swapXfer\"},\"field\":\"xferAsset\",\"condition\":\"includedIn\",\"expected\":\"[aAsset, bAsset]\"}", - "pc": [ - 951 - ] - }, - { - "teal": 1026, - "source": 180, - "pc": [ - 952, - 953 - ] - }, - { - "teal": 1027, - "source": 180, - "pc": [ - 954, - 955 - ] - }, - { - "teal": 1028, - "source": 180, - "pc": [ - 956, - 957 - ] - }, - { - "teal": 1029, - "source": 180, - "pc": [ - 958 - ] - }, - { - "teal": 1030, - "source": 180, - "pc": [ - 959, - 960, - 961 - ] - }, - { - "teal": 1031, - "source": 180, - "pc": [ - 962, - 963 - ] - }, - { - "teal": 1032, - "source": 180, - "pc": [ - 964, - 965, - 966 - ] - }, - { - "teal": 1035, - "source": 180, - "pc": [ - 967, - 968 - ] - }, - { - "teal": 1038, - "source": 180, - "pc": [ - 969, - 970 - ] - }, - { - "teal": 1042, - "source": 182, - "pc": [ - 971, - 972 - ] - }, - { - "teal": 1043, - "source": 182, - "pc": [ - 973, - 974 - ] - }, - { - "teal": 1044, - "source": 182, - "pc": [ - 975, - 976 - ] - }, - { - "teal": 1052, - "source": 187, - "pc": [ - 977, - 978 - ] - }, - { - "teal": 1053, - "source": 187, - "pc": [ - 979, - 980 - ] - }, - { - "teal": 1054, - "source": 187, - "pc": [ - 981, - 982 - ] - }, - { - "teal": 1055, - "source": 187, - "pc": [ - 983 - ] - }, - { - "teal": 1056, - "source": 186, - "pc": [ - 984, - 985 - ] - }, - { - "teal": 1057, - "source": 186, - "pc": [ - 986, - 987 - ] - }, - { - "teal": 1058, - "source": 186, - "pc": [ - 988, - 989 - ] - }, - { - "teal": 1059, - "source": 186, - "pc": [ - 990 - ] - }, - { - "teal": 1060, - "source": 186, - "pc": [ - 991, - 992 - ] - }, - { - "teal": 1061, - "source": 186, - "pc": [ - 993, - 994 - ] - }, - { - "teal": 1062, - "source": 186, - "pc": [ - 995 - ] - }, - { - "teal": 1063, - "source": 185, - "pc": [ - 996, - 997 - ] - }, - { - "teal": 1064, - "source": 185, - "pc": [ - 998, - 999 - ] - }, - { - "teal": 1065, - "source": 184, - "pc": [ - 1000, - 1001, - 1002 - ] - }, - { - "teal": 1066, - "source": 184, - "pc": [ - 1003, - 1004 - ] - }, - { - "teal": 1070, - "source": 190, - "pc": [ - 1005, - 1006 - ] - }, - { - "teal": 1071, - "source": 190, - "pc": [ - 1007 - ] - }, - { - "teal": 1072, - "source": 190, - "pc": [ - 1008 - ] - }, - { - "teal": 1073, - "source": 190, - "pc": [ - 1009 - ] - }, - { - "teal": 1077, - "source": 192, - "pc": [ - 1010, - 1011 - ] - }, - { - "teal": 1078, - "source": 192, - "pc": [ - 1012, - 1013 - ] - }, - { - "teal": 1079, - "source": 192, - "pc": [ - 1014, - 1015 - ] - }, - { - "teal": 1080, - "source": 192, - "pc": [ - 1016, - 1017, - 1018 - ] - }, - { - "teal": 1084, - "source": 194, - "pc": [ - 1019, - 1020 - ] - }, - { - "teal": 1085, - "source": 194, - "pc": [ - 1021, - 1022, - 1023 - ] - }, - { - "teal": 1086, - "source": 194, - "pc": [ - 1024 - ] - }, - { - "teal": 1087, - "source": 168, - "pc": [ - 1025 - ] - }, - { - "teal": 1090, - "source": 8, - "pc": [ - 1026, - 1027, - 1028, - 1029, - 1030, - 1031 - ] - }, - { - "teal": 1091, - "source": 8, - "pc": [ - 1032, - 1033, - 1034 - ] - }, - { - "teal": 1092, - "source": 8, - "pc": [ - 1035, - 1036, - 1037, - 1038 - ] - }, - { - "teal": 1095, - "source": 8, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 1039 - ] - }, - { - "teal": 1098, - "source": 8, - "pc": [ - 1040, - 1041, - 1042, - 1043, - 1044, - 1045 - ] - }, - { - "teal": 1099, - "source": 8, - "pc": [ - 1046, - 1047, - 1048, - 1049, - 1050, - 1051 - ] - }, - { - "teal": 1100, - "source": 8, - "pc": [ - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ] - }, - { - "teal": 1101, - "source": 8, - "pc": [ - 1058, - 1059, - 1060, - 1061, - 1062, - 1063 - ] - }, - { - "teal": 1102, - "source": 8, - "pc": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069 - ] - }, - { - "teal": 1103, - "source": 8, - "pc": [ - 1070, - 1071, - 1072 - ] - }, - { - "teal": 1104, - "source": 8, - "pc": [ - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084 - ] - }, - { - "teal": 1107, - "source": 8, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 1085 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 60 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 215 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 233 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 268 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 306 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 325 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 375 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 387 + ], + "errorMessage": "argument 0 (governor) for set_governor must be a address" + }, + { + "pc": [ + 404 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}" + }, + { + "pc": [ + 437 + ], + "errorMessage": "argument 2 (seed) for bootstrap must be a pay transaction" + }, + { + "pc": [ + 457 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}" + }, + { + "pc": [ + 471 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 481 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"amount\",\"condition\":\"greaterThanEqualTo\",\"expected\":\">=300_000\"}" + }, + { + "pc": [ + 549 + ], + "errorMessage": "argument 3 (bXfer) for mint must be a axfer transaction" + }, + { + "pc": [ + 561 + ], + "errorMessage": "argument 4 (aXfer) for mint must be a axfer transaction" + }, + { + "pc": [ + 604 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}" + }, + { + "pc": [ + 612 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}" + }, + { + "pc": [ + 620 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 628 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"xferAsset\",\"expected\":\"aAsset\"}" + }, + { + "pc": [ + 636 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}" + }, + { + "pc": [ + 644 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}" + }, + { + "pc": [ + 652 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 660 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"xferAsset\",\"expected\":\"bAsset\"}" + }, + { + "pc": [ + 797 + ], + "errorMessage": "argument 3 (poolXfer) for burn must be a axfer transaction" + }, + { + "pc": [ + 842 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}" + }, + { + "pc": [ + 850 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}" + }, + { + "pc": [ + 858 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 866 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"xferAsset\",\"expected\":\"poolAsset\"}" + }, + { + "pc": [ + 969 + ], + "errorMessage": "argument 2 (swapXfer) for swap must be a axfer transaction" + }, + { + "pc": [ + 1006 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}" + }, + { + "pc": [ + 1014 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 1022 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}" + }, + { + "pc": [ + 1038 + ], + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"swapXfer\"},\"field\":\"xferAsset\",\"condition\":\"includedIn\",\"expected\":\"[aAsset, bAsset]\"}" + }, + { + "pc": [ + 1128 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 1174 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyMAoJLy8gdGhpcy5nb3Zlcm5vci52YWx1ZSA9IHRoaXMudHhuLnNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJdHhuIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZG9DcmVhdGVQb29sVG9rZW4oYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiBBc3NldElECmRvQ3JlYXRlUG9vbFRva2VuOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI2CgkvLyByZXR1cm4gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgY29uZmlnQXNzZXROYW1lOiAnRFBULScgKyBhQXNzZXQudW5pdE5hbWUgKyAnLScgKyBiQXNzZXQudW5pdE5hbWUsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiAnZHB0JywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyNwoJLy8gY29uZmlnQXNzZXROYW1lOiAnRFBULScgKyBhQXNzZXQudW5pdE5hbWUgKyAnLScgKyBiQXNzZXQudW5pdE5hbWUKCWJ5dGUgMHg0NDUwNTQyZCAvLyAiRFBULSIKCWZyYW1lX2RpZyAtMSAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRVbml0TmFtZQoJcG9wCgljb25jYXQKCWJ5dGUgMHgyZCAvLyAiLSIKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIGJBc3NldDogQXNzZXRJRAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglwb3AKCWNvbmNhdAoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjgKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnCglieXRlIDB4NjQ3MDc0IC8vICJkcHQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWQoJaW50IDEwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzAKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMKCWludCAzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gZG9BeGZlcihyZWNlaXZlcjogQWRkcmVzcywgYXNzZXQ6IEFzc2V0SUQsIGFtb3VudDogdWludDY0KTogdm9pZApkb0F4ZmVyOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzgKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozOQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0MAoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBkb09wdEluKGFzc2V0OiBBc3NldElEKTogdm9pZApkb09wdEluOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjQ1CgkvLyB0aGlzLmRvQXhmZXIodGhpcy5hcHAuYWRkcmVzcywgYXNzZXQsIDApCglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCi8vIHRva2Vuc1RvTWludEludGlhbChhQW1vdW50OiB1aW50NjQsIGJBbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb01pbnRJbnRpYWw6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDkKCS8vIHJldHVybiBzcXJ0KGFBbW91bnQgKiBiQW1vdW50KTsKCWZyYW1lX2RpZyAtMSAvLyBhQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiQW1vdW50OiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gdG9rZW5zVG9NaW50KGlzc3VlZDogdWludDY0LCBhU3VwcGx5OiB1aW50NjQsIGJTdXBwbHk6IHVpbnQ2NCwgYUFtb3VudDogdWludDY0LCBiQW1vdW50OiB1aW50NjQpOiB1aW50NjQKdG9rZW5zVG9NaW50OgoJcHJvdG8gNSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1MwoJLy8gYVJhdGlvID0gd2lkZVJhdGlvKFthQW1vdW50LCBTQ0FMRV0sIFthU3VwcGx5XSkKCWZyYW1lX2RpZyAtNCAvLyBhQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGFTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBhUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NAoJLy8gYlJhdGlvID0gd2lkZVJhdGlvKFtiQW1vdW50LCBTQ0FMRV0sIFtiU3VwcGx5XSkKCWZyYW1lX2RpZyAtNSAvLyBiQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIGJTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAwIC8vIGFSYXRpbzogdWludDY0CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoJPAoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgMCAvLyBhUmF0aW86IHVpbnQ2NAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyByYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtyYXRpbywgaXNzdWVkXSwgW1NDQUxFXSk7CglmcmFtZV9kaWcgMiAvLyByYXRpbzogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCW11bHcKCWludCAwCglpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGNvbXB1dGVSYXRpbygpOiB1aW50NjQKY29tcHV0ZVJhdGlvOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjYyCgkvLyByZXR1cm4gd2lkZVJhdGlvKAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRBLnZhbHVlKSwgU0NBTEVdLAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRCLnZhbHVlKV0KCS8vICAgICApOwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJaW50IDEwMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJcmV0c3ViCgovLyB0b2tlbnNUb0J1cm4oaXNzdWVkOiB1aW50NjQsIHN1cHBseTogdWludDY0LCBhbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb0J1cm46Cglwcm90byAzIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjkKCS8vIHJldHVybiB3aWRlUmF0aW8oW3N1cHBseSwgYW1vdW50XSwgW2lzc3VlZF0pOwoJZnJhbWVfZGlnIC0yIC8vIHN1cHBseTogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRva2Vuc1RvU3dhcChpbkFtb3VudDogdWludDY0LCBpblN1cHBseTogdWludDY0LCBvdXRTdXBwbHk6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb1N3YXA6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3MwoJLy8gZmFjdG9yID0gU0NBTEUgLSBGRUUKCWludCA5OTUKCWZyYW1lX2J1cnkgMCAvLyBmYWN0b3I6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3NAoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbaW5BbW91bnQsIGZhY3Rvciwgb3V0U3VwcGx5XSwgW2luU3VwcGx5ICogU0NBTEUgKyBpbkFtb3VudCAqIGZhY3Rvcl0pOwoJZnJhbWVfZGlnIC0xIC8vIGluQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGZhY3RvcjogdWludDY0CgltdWx3CglmcmFtZV9kaWcgLTMgLy8gb3V0U3VwcGx5OiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gaW5TdXBwbHk6IHVpbnQ2NAoJaW50IDEwMDAKCSoKCWZyYW1lX2RpZyAtMSAvLyBpbkFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBmYWN0b3I6IHVpbnQ2NAoJKgoJKwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gc2V0X2dvdmVybm9yKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3NldF9nb3Zlcm5vcjoKCS8vIGdvdmVybm9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGdvdmVybm9yKSBmb3Igc2V0X2dvdmVybm9yIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHNldF9nb3Zlcm5vcihhZGRyZXNzKXZvaWQKCWNhbGxzdWIgc2V0X2dvdmVybm9yCglpbnQgMQoJcmV0dXJuCgovLyBzZXRfZ292ZXJub3IoZ292ZXJub3I6IEFkZHJlc3MpOiB2b2lkCnNldF9nb3Zlcm5vcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3OAoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5nb3Zlcm5vci52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzkKCS8vIHRoaXMuZ292ZXJub3IudmFsdWUgPSBnb3Zlcm5vcgoJYnl0ZSAweDY3IC8vICJnIgoJZnJhbWVfZGlnIC0xIC8vIGdvdmVybm9yOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBib290c3RyYXAocGF5LHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYm9vdHN0cmFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGFBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gc2VlZDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc2VlZCkgZm9yIGJvb3RzdHJhcCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGJvb3RzdHJhcChwYXksdWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYm9vdHN0cmFwCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vdHN0cmFwKHNlZWQ6IFBheVR4biwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiBBc3NldElECmJvb3RzdHJhcDoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4MwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5nb3Zlcm5vci52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODUKCS8vIGFzc2VydChnbG9iYWxzLmdyb3VwU2l6ZSA9PT0gMikKCWdsb2JhbCBHcm91cFNpemUKCWludCAyCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg3CgkvLyB2ZXJpZnlQYXlUeG4oc2VlZCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiB7IGdyZWF0ZXJUaGFuRXF1YWxUbzogMzAwXzAwMCB9IH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzZWVkOiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNlZWQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzZWVkOiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaW50IDMwMF8wMDAKCT49CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzZWVkIiwiZmllbGQiOiJhbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbkVxdWFsVG8iLCJleHBlY3RlZCI6Ij49MzAwXzAwMCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODgKCS8vIGFzc2VydChhQXNzZXQgPCBiQXNzZXQpCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECgk8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTAKCS8vIHRoaXMuYXNzZXRBLnZhbHVlID0gYUFzc2V0CglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MQoJLy8gdGhpcy5hc3NldEIudmFsdWUgPSBiQXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkyCgkvLyB0aGlzLnBvb2xUb2tlbi52YWx1ZSA9IHRoaXMuZG9DcmVhdGVQb29sVG9rZW4oYUFzc2V0LCBiQXNzZXQpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgljYWxsc3ViIGRvQ3JlYXRlUG9vbFRva2VuCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NAoJLy8gdGhpcy5kb09wdEluKGFBc3NldCkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NQoJLy8gdGhpcy5kb09wdEluKGJBc3NldCkKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NwoJLy8gcmV0dXJuIHRoaXMucG9vbFRva2VuLnZhbHVlOwoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gbWludChheGZlcixheGZlcix1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfbWludDoKCS8vIGJBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYUFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwb29sQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGJYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMyAoYlhmZXIpIGZvciBtaW50IG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYVhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDIKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCA0IChhWGZlcikgZm9yIG1pbnQgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYXhmZXIsYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBiWGZlcjogQXNzZXRUcmFuc2ZlclR4biwgcG9vbEFzc2V0OiBBc3NldElELCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKbWludDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gd2VsbCBmb3JtZWQgbWludAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDMKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQocG9vbEFzc2V0ID09PSB0aGlzLnBvb2xUb2tlbi52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgYXNzZXQgQSBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNwoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihhWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYUFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6ImFBc3NldCJ9Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBCIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTE1CgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKGJYZmVyLCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBiQXNzZXQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy50eG4uc2VuZGVyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldEFtb3VudCIsImNvbmRpdGlvbiI6ImdyZWF0ZXJUaGFuIiwiZXhwZWN0ZWQiOiI+MCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldFJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBBc3NldElECgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InhmZXJBc3NldCIsImV4cGVjdGVkIjoiYkFzc2V0In0KCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTIzCgkvLyB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShhQXNzZXQpID09PSBhWGZlci5hc3NldEFtb3VudCAmJgoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSA9PT0gYlhmZXIuYXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJJiYKCipza2lwX2FuZDA6CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjYKCS8vIHRoaXMudG9rZW5zVG9NaW50SW50aWFsKGFYZmVyLmFzc2V0QW1vdW50LCBiWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9NaW50SW50aWFsCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCWludCAxMDAwMDAwMDAwMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAwIC8vIHRvTWludDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzNgoJLy8gYXNzZXJ0KHRvTWludCA+IDApCglmcmFtZV9kaWcgMCAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIDAgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIGJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2J1cm46CgkvLyBiQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBwb29sWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHBvb2xYZmVyKSBmb3IgYnVybiBtdXN0IGJlIGEgYXhmZXIgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYnVybihheGZlcix1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJ1cm4KCWludCAxCglyZXR1cm4KCi8vIGJ1cm4ocG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4sIHBvb2xBc3NldDogQXNzZXRJRCwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiB2b2lkCmJ1cm46Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gd2VsbCBmb3JtZWQgYnVybgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldElECglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDUKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgcG9vbCBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0OQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihwb29sWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogcG9vbEFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6InBvb2xBc3NldCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTU2CgkvLyBpc3N1ZWQgPSBUT1RBTF9TVVBQTFkgLSAodGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSAtIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJaW50IDEwMDAwMDAwMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCS0KCWZyYW1lX2J1cnkgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTgKCS8vIGFBbXQgPSB0aGlzLnRva2Vuc1RvQnVybihpc3N1ZWQsIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCksIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgMSAvLyBhQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYwCgkvLyBiQW10ID0gdGhpcy50b2tlbnNUb0J1cm4oaXNzdWVkLCB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpLCBwb29sWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDAgLy8gaXNzdWVkOiB1aW50NjQKCWNhbGxzdWIgdG9rZW5zVG9CdXJuCglmcmFtZV9idXJ5IDIgLy8gYkFtdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MgoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgYUFzc2V0LCBhQW10KQoJZnJhbWVfZGlnIDEgLy8gYUFtdDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBBc3NldElECgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYzCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBiQXNzZXQsIGJBbXQpCglmcmFtZV9kaWcgMiAvLyBiQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjUKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zd2FwOgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3dhcFhmZXIpIGZvciBzd2FwIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzd2FwKGF4ZmVyLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgovLyBzd2FwKHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKc3dhcDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB3ZWxsIGZvcm1lZCBzd2FwCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MQoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzMKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oc3dhcFhmZXIsIHsKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IHsgaW5jbHVkZWRJbjogW2FBc3NldCwgYkFzc2V0XSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN3YXBYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECgk9PQoJfHwKCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0Ijoic3dhcFhmZXIifSwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbYUFzc2V0LCBiQXNzZXRdIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODAKCS8vIG91dElkID0gc3dhcFhmZXIueGZlckFzc2V0ID09PSBhQXNzZXQgPyBhQXNzZXQgOiBiQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgk9PQoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDAgLy8gb3V0SWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODIKCS8vIGluSWQgPSBzd2FwWGZlci54ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9idXJ5IDEgLy8gaW5JZDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE4NAoJLy8gdG9Td2FwID0gdGhpcy50b2tlbnNUb1N3YXAoCgkvLyAgICAgICBzd2FwWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGluSWQpIC0gc3dhcFhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShvdXRJZCkKCS8vICAgICApCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBpbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgljYWxsc3ViIHRva2Vuc1RvU3dhcAoJZnJhbWVfYnVyeSAyIC8vIHRvU3dhcDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KHRvU3dhcCA+IDApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIG91dElkLCB0b1N3YXApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5yYXRpby52YWx1ZSA9IHRoaXMuY29tcHV0ZVJhdGlvKCkKCWJ5dGUgMHg3MiAvLyAiciIKCWNhbGxzdWIgY29tcHV0ZVJhdGlvCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzZXRfZ292ZXJub3IoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJib290c3RyYXAocGF5LHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJtaW50KGF4ZmVyLGF4ZmVyLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAic3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NldF9nb3Zlcm5vciAqYWJpX3JvdXRlX2Jvb3RzdHJhcCAqYWJpX3JvdXRlX21pbnQgKmFiaV9yb3V0ZV9idXJuICphYmlfcm91dGVfc3dhcAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwIDEwMDAwMDAwMDAwIDEgMTAwMApieXRlY2Jsb2NrIDB4IDB4NjEgMHg2MiAweDY3IDB4NzAgMHg3MgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjIwCgkvLyB0aGlzLmdvdmVybm9yLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4NjcgLy8gImciCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBkb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IEFzc2V0SUQKZG9DcmVhdGVQb29sVG9rZW46Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjYKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6ICdEUFQtJyArIGFBc3NldC51bml0TmFtZSArICctJyArIGJBc3NldC51bml0TmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogVE9UQUxfU1VQUExZLAoJLy8gICAgICAgY29uZmlnQXNzZXREZWNpbWFsczogMywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCXB1c2hpbnQgMyAvLyBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjI3CgkvLyBjb25maWdBc3NldE5hbWU6ICdEUFQtJyArIGFBc3NldC51bml0TmFtZSArICctJyArIGJBc3NldC51bml0TmFtZQoJcHVzaGJ5dGVzIDB4NDQ1MDU0MmQgLy8gIkRQVC0iCglmcmFtZV9kaWcgLTEgLy8gYUFzc2V0OiBBc3NldElECglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKCXBvcAoJY29uY2F0CglwdXNoYnl0ZXMgMHgyZCAvLyAiLSIKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIGJBc3NldDogQXNzZXRJRAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglwb3AKCWNvbmNhdAoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjgKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnCglwdXNoYnl0ZXMgMHg2NDcwNzQgLy8gImRwdCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyOQoJLy8gY29uZmlnQXNzZXRUb3RhbDogVE9UQUxfU1VQUExZCglpbnQgMTAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozMAoJLy8gY29uZmlnQXNzZXREZWNpbWFsczogMwoJcHVzaGludCAzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gZG9BeGZlcihyZWNlaXZlcjogQWRkcmVzcywgYXNzZXQ6IEFzc2V0SUQsIGFtb3VudDogdWludDY0KTogdm9pZApkb0F4ZmVyOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiByZWNlaXZlciwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDQgLy8gYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzgKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozOQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0MAoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBkb09wdEluKGFzc2V0OiBBc3NldElEKTogdm9pZApkb09wdEluOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjQ1CgkvLyB0aGlzLmRvQXhmZXIodGhpcy5hcHAuYWRkcmVzcywgYXNzZXQsIDApCglpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCi8vIHRva2Vuc1RvTWludEludGlhbChhQW1vdW50OiB1aW50NjQsIGJBbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb01pbnRJbnRpYWw6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDkKCS8vIHJldHVybiBzcXJ0KGFBbW91bnQgKiBiQW1vdW50KTsKCWZyYW1lX2RpZyAtMSAvLyBhQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiQW1vdW50OiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gdG9rZW5zVG9NaW50KGlzc3VlZDogdWludDY0LCBhU3VwcGx5OiB1aW50NjQsIGJTdXBwbHk6IHVpbnQ2NCwgYUFtb3VudDogdWludDY0LCBiQW1vdW50OiB1aW50NjQpOiB1aW50NjQKdG9rZW5zVG9NaW50OgoJcHJvdG8gNSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1MwoJLy8gYVJhdGlvID0gd2lkZVJhdGlvKFthQW1vdW50LCBTQ0FMRV0sIFthU3VwcGx5XSkKCWZyYW1lX2RpZyAtNCAvLyBhQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGFTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMCAvLyBhUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NAoJLy8gYlJhdGlvID0gd2lkZVJhdGlvKFtiQW1vdW50LCBTQ0FMRV0sIFtiU3VwcGx5XSkKCWZyYW1lX2RpZyAtNSAvLyBiQW1vdW50OiB1aW50NjQKCWludCAxMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIGJTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAwIC8vIGFSYXRpbzogdWludDY0CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoJPAoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgMCAvLyBhUmF0aW86IHVpbnQ2NAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgMSAvLyBiUmF0aW86IHVpbnQ2NAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyByYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtyYXRpbywgaXNzdWVkXSwgW1NDQUxFXSk7CglmcmFtZV9kaWcgMiAvLyByYXRpbzogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCW11bHcKCWludCAwCglpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGNvbXB1dGVSYXRpbygpOiB1aW50NjQKY29tcHV0ZVJhdGlvOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjYyCgkvLyByZXR1cm4gd2lkZVJhdGlvKAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRBLnZhbHVlKSwgU0NBTEVdLAoJLy8gICAgICAgW3RoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKHRoaXMuYXNzZXRCLnZhbHVlKV0KCS8vICAgICApOwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJaW50IDEwMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJcmV0c3ViCgovLyB0b2tlbnNUb0J1cm4oaXNzdWVkOiB1aW50NjQsIHN1cHBseTogdWludDY0LCBhbW91bnQ6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb0J1cm46Cglwcm90byAzIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjkKCS8vIHJldHVybiB3aWRlUmF0aW8oW3N1cHBseSwgYW1vdW50XSwgW2lzc3VlZF0pOwoJZnJhbWVfZGlnIC0yIC8vIHN1cHBseTogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gaXNzdWVkOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRva2Vuc1RvU3dhcChpbkFtb3VudDogdWludDY0LCBpblN1cHBseTogdWludDY0LCBvdXRTdXBwbHk6IHVpbnQ2NCk6IHVpbnQ2NAp0b2tlbnNUb1N3YXA6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3MwoJLy8gZmFjdG9yID0gU0NBTEUgLSBGRUUKCXB1c2hpbnQgOTk1CglmcmFtZV9idXJ5IDAgLy8gZmFjdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzQKCS8vIHJldHVybiB3aWRlUmF0aW8oW2luQW1vdW50LCBmYWN0b3IsIG91dFN1cHBseV0sIFtpblN1cHBseSAqIFNDQUxFICsgaW5BbW91bnQgKiBmYWN0b3JdKTsKCWZyYW1lX2RpZyAtMSAvLyBpbkFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBmYWN0b3I6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIC0zIC8vIG91dFN1cHBseTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGluU3VwcGx5OiB1aW50NjQKCWludCAxMDAwCgkqCglmcmFtZV9kaWcgLTEgLy8gaW5BbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yOiB1aW50NjQKCSoKCSsKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHNldF9nb3Zlcm5vcihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9zZXRfZ292ZXJub3I6CgkvLyBnb3Zlcm5vcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoZ292ZXJub3IpIGZvciBzZXRfZ292ZXJub3IgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc2V0X2dvdmVybm9yKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBzZXRfZ292ZXJub3IKCWludCAxCglyZXR1cm4KCi8vIHNldF9nb3Zlcm5vcihnb3Zlcm5vcjogQWRkcmVzcyk6IHZvaWQKc2V0X2dvdmVybm9yOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc4CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5nb3Zlcm5vci52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmdvdmVybm9yLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3OQoJLy8gdGhpcy5nb3Zlcm5vci52YWx1ZSA9IGdvdmVybm9yCglieXRlIDB4NjcgLy8gImciCglmcmFtZV9kaWcgLTEgLy8gZ292ZXJub3I6IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGJvb3RzdHJhcChwYXksdWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9ib290c3RyYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHNlZWQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc2VlZCkgZm9yIGJvb3RzdHJhcCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGJvb3RzdHJhcChwYXksdWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYm9vdHN0cmFwCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm9vdHN0cmFwKHNlZWQ6IFBheVR4biwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiBBc3NldElECmJvb3RzdHJhcDoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4MwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5nb3Zlcm5vci52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODUKCS8vIGFzc2VydChnbG9iYWxzLmdyb3VwU2l6ZSA9PT0gMikKCWdsb2JhbCBHcm91cFNpemUKCXB1c2hpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4NwoJLy8gdmVyaWZ5UGF5VHhuKHNlZWQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogeyBncmVhdGVyVGhhbkVxdWFsVG86IDMwMF8wMDAgfSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc2VlZDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzZWVkIiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc2VlZDogUGF5VHhuCglndHhucyBBbW91bnQKCXB1c2hpbnQgMzAwXzAwMAoJPj0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNlZWQiLCJmaWVsZCI6ImFtb3VudCIsImNvbmRpdGlvbiI6ImdyZWF0ZXJUaGFuRXF1YWxUbyIsImV4cGVjdGVkIjoiPj0zMDBfMDAwIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4OAoJLy8gYXNzZXJ0KGFBc3NldCA8IGJBc3NldCkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCTwKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MAoJLy8gdGhpcy5hc3NldEEudmFsdWUgPSBhQXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjkxCgkvLyB0aGlzLmFzc2V0Qi52YWx1ZSA9IGJBc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogQXNzZXRJRAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTIKCS8vIHRoaXMucG9vbFRva2VuLnZhbHVlID0gdGhpcy5kb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQsIGJBc3NldCkKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWNhbGxzdWIgZG9DcmVhdGVQb29sVG9rZW4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk0CgkvLyB0aGlzLmRvT3B0SW4oYUFzc2V0KQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXRJRAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk1CgkvLyB0aGlzLmRvT3B0SW4oYkFzc2V0KQoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogQXNzZXRJRAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk3CgkvLyByZXR1cm4gdGhpcy5wb29sVG9rZW4udmFsdWU7CglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBtaW50KGF4ZmVyLGF4ZmVyLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9taW50OgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHBvb2xBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gYlhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCXB1c2hpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCAzIChiWGZlcikgZm9yIG1pbnQgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBhWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglwdXNoaW50IDIKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCXB1c2hpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCA0IChhWGZlcikgZm9yIG1pbnQgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYXhmZXIsYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtaW50CglpbnQgMQoJcmV0dXJuCgovLyBtaW50KGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBiWGZlcjogQXNzZXRUcmFuc2ZlclR4biwgcG9vbEFzc2V0OiBBc3NldElELCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKbWludDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gd2VsbCBmb3JtZWQgbWludAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDMKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQocG9vbEFzc2V0ID09PSB0aGlzLnBvb2xUb2tlbi52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgYXNzZXQgQSBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNwoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihhWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYUFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJhWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImFYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6ImFBc3NldCJ9Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBCIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTE1CgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKGJYZmVyLCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBiQXNzZXQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy50eG4uc2VuZGVyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldEFtb3VudCIsImNvbmRpdGlvbiI6ImdyZWF0ZXJUaGFuIiwiZXhwZWN0ZWQiOiI+MCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6ImJYZmVyIiwiZmllbGQiOiJhc3NldFJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBBc3NldElECgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoiYlhmZXIiLCJmaWVsZCI6InhmZXJBc3NldCIsImV4cGVjdGVkIjoiYkFzc2V0In0KCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTIzCgkvLyB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShhQXNzZXQpID09PSBhWGZlci5hc3NldEFtb3VudCAmJgoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSA9PT0gYlhmZXIuYXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJJiYKCipza2lwX2FuZDA6CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjYKCS8vIHRoaXMudG9rZW5zVG9NaW50SW50aWFsKGFYZmVyLmFzc2V0QW1vdW50LCBiWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9NaW50SW50aWFsCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCWludCAxMDAwMDAwMDAwMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAwIC8vIHRvTWludDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzNgoJLy8gYXNzZXJ0KHRvTWludCA+IDApCglmcmFtZV9kaWcgMCAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIDAgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIGJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2J1cm46CgkvLyBiQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFBc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBwb29sWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCA0IC8vIGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHBvb2xYZmVyKSBmb3IgYnVybiBtdXN0IGJlIGEgYXhmZXIgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYnVybihheGZlcix1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJ1cm4KCWludCAxCglyZXR1cm4KCi8vIGJ1cm4ocG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4sIHBvb2xBc3NldDogQXNzZXRJRCwgYUFzc2V0OiBBc3NldElELCBiQXNzZXQ6IEFzc2V0SUQpOiB2b2lkCmJ1cm46Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gd2VsbCBmb3JtZWQgYnVybgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBBc3NldElECglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDUKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogQXNzZXRJRAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gdmFsaWQgcG9vbCBheGZlcgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0OQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bihwb29sWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogcG9vbEFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwb29sWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBvb2xYZmVyIiwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJleHBlY3RlZCI6InBvb2xBc3NldCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTU2CgkvLyBpc3N1ZWQgPSBUT1RBTF9TVVBQTFkgLSAodGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSAtIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJaW50IDEwMDAwMDAwMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCS0KCWZyYW1lX2J1cnkgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTgKCS8vIGFBbXQgPSB0aGlzLnRva2Vuc1RvQnVybihpc3N1ZWQsIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCksIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgMSAvLyBhQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYwCgkvLyBiQW10ID0gdGhpcy50b2tlbnNUb0J1cm4oaXNzdWVkLCB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpLCBwb29sWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBBc3NldElECglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDAgLy8gaXNzdWVkOiB1aW50NjQKCWNhbGxzdWIgdG9rZW5zVG9CdXJuCglmcmFtZV9idXJ5IDIgLy8gYkFtdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MgoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgYUFzc2V0LCBhQW10KQoJZnJhbWVfZGlnIDEgLy8gYUFtdDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBBc3NldElECgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYzCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBiQXNzZXQsIGJBbXQpCglmcmFtZV9kaWcgMiAvLyBiQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IEFzc2V0SUQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjUKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zd2FwOgoJLy8gYkFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhQXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDQgLy8gYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3dhcFhmZXIpIGZvciBzd2FwIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzd2FwKGF4ZmVyLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgovLyBzd2FwKHN3YXBYZmVyOiBBc3NldFRyYW5zZmVyVHhuLCBhQXNzZXQ6IEFzc2V0SUQsIGJBc3NldDogQXNzZXRJRCk6IHZvaWQKc3dhcDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB3ZWxsIGZvcm1lZCBzd2FwCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IEFzc2V0SUQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MQoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzMKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oc3dhcFhmZXIsIHsKCS8vICAgICAgIGFzc2V0QW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IHsgaW5jbHVkZWRJbjogW2FBc3NldCwgYkFzc2V0XSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRBbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzd2FwWGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN3YXBYZmVyIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogQXNzZXRJRAoJPT0KCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBBc3NldElECgk9PQoJfHwKCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0Ijoic3dhcFhmZXIifSwiZmllbGQiOiJ4ZmVyQXNzZXQiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbYUFzc2V0LCBiQXNzZXRdIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODAKCS8vIG91dElkID0gc3dhcFhmZXIueGZlckFzc2V0ID09PSBhQXNzZXQgPyBhQXNzZXQgOiBiQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgk9PQoJYnogKnRlcm5hcnkxX2ZhbHNlCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBBc3NldElECgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IEFzc2V0SUQKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDAgLy8gb3V0SWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODIKCS8vIGluSWQgPSBzd2FwWGZlci54ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9idXJ5IDEgLy8gaW5JZDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE4NAoJLy8gdG9Td2FwID0gdGhpcy50b2tlbnNUb1N3YXAoCgkvLyAgICAgICBzd2FwWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGluSWQpIC0gc3dhcFhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShvdXRJZCkKCS8vICAgICApCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBpbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgktCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIEFzc2V0QW1vdW50CgljYWxsc3ViIHRva2Vuc1RvU3dhcAoJZnJhbWVfYnVyeSAyIC8vIHRvU3dhcDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KHRvU3dhcCA+IDApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIG91dElkLCB0b1N3YXApCglmcmFtZV9kaWcgMiAvLyB0b1N3YXA6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gb3V0SWQ6IHVpbnQ2NAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5yYXRpby52YWx1ZSA9IHRoaXMuY29tcHV0ZVJhdGlvKCkKCWJ5dGUgMHg3MiAvLyAiciIKCWNhbGxzdWIgY29tcHV0ZVJhdGlvCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZGRjNGNiNGEgLy8gbWV0aG9kICJzZXRfZ292ZXJub3IoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MjVlNmMzNzYgLy8gbWV0aG9kICJib290c3RyYXAocGF5LHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4MTAwNDVjNzkgLy8gbWV0aG9kICJtaW50KGF4ZmVyLGF4ZmVyLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgwMjhlMzdjMSAvLyBtZXRob2QgImJ1cm4oYXhmZXIsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDYzMmFhZWQ4IC8vIG1ldGhvZCAic3dhcChheGZlcix1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NldF9nb3Zlcm5vciAqYWJpX3JvdXRlX2Jvb3RzdHJhcCAqYWJpX3JvdXRlX21pbnQgKmFiaV9yb3V0ZV9idXJuICphYmlfcm91dGVfc3dhcAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAHAAEE6AeAyK+gJQMCJgYAAWEBYgFnAXABcjEYFIEGCzEZCI0MA9EAAAAAAAAAAAAAA8MAAAAAAAAAAAAAAIgAAiNDigAAKzEAZ4mKAgGxIQWyEIAERFBULYv/cQNIUIABLVCL/nEDSFCyJoADZHB0siUhBLIiIQWyIzIKsikyCrIqIrIBs7Q8iYoDALEkshCL/7IUi/6yEYv9shIisgGziYoBACKL/zIKiP/diYoCAYv/i/4LkomKBQEoRwKL/CUdIov+H0hITBREjACL+yUdIov9H0hITBREjAGLAIsBDEEABYsAQgACiwGMAosCi/8dIiUfSEhMFESMAEYCiYoAATIKKWRwAEglHSIyCipkcABIH0hITBREiYoDAYv+i/0dIov/H0hITBREiYoDASiB4weMAIv/iwAdi/1PAksBC04CHU4CCEwii/4lC4v/iwALCB9ISEwURIwAiTYaAUkVgSASRIgAAiNDigEAMQArZBJEK4v/Z4mABBUffHU2GgIXNhoBFzEWIwlJOBAjEkSIAAUWULAjQ4oDATEAK2QSRDIEIQYSRIv/OAcyChJEi/84CIHgpxIPRIv+i/0MRCmL/mcqi/1nJwSL/Yv+iP58Z4v+iP7Mi/2I/scnBGSJNhoDFzYaAhc2GgEXMRYjCUk4ECQSRDEWIQYJSTgQJBJEiAACI0OKBQAoi/wpZBJEi/sqZBJEi/0nBGQSRIv/OAAxABJEi/84EiINRIv/OBQyChJEi/84EYv8EkSL/jgAMQASRIv+OBIiDUSL/jgUMgoSRIv+OBGL+xJEMgqL/HAASIv/OBISSUEADTIKi/twAEiL/jgSEhBBAA6L/jgSi/84Eoj+KUIAPYv+OBKL/zgSMgqL+3AASIv+OBIJMgqL/HAASIv/OBIJIQQyCov9cABICYj+A4wAiwAiDUSLAIv9MQCI/cWJNhoDFzYaAhc2GgEXMRYjCUk4ECQSRIgAAiNDigQAKEcCi/4nBGQSRIv9KWQSRIv8KmQSRIv/OAAxABJEi/84EiINRIv/OBQyChJEi/84EYv+EkQhBDIKi/5wAEiL/zgSCQmMAIv/OBIyCov9cABIiwCI/eCMAYv/OBIyCov8cABIiwCI/c6MAosBi/0xAIj9M4sCi/wxAIj9KicFiP2aZ4k2GgIXNhoBFzEWIwlJOBAkEkSIAAIjQ4oDAChHAov+KWQSRIv9KmQSRIv/OBIiDUSL/zgUMgoSRIv/OAAxABJEi/84EYv+Eov/OBGL/RIRRIv/OBGL/hJBAAWL/kIAAov9jACL/zgRjAEyCosAcABIMgqLAXAASIv/OBIJi/84Eoj9QowCiwIiDUSLAosAMQCI/JAnBYj9AGeJgAS4RHs2NhoAjgH8MQCABN3Ey0qABCXmw3aABBAEXHmABAKON8GABGMqrtg2GgCOBf0g/Tz9o/6K/ysA", + "approval": "CiAEAIDIr6AlAegHJgYAAWEBYgFnAXABcjEYFIEGCzEZCI0MBC0AAAAAAAAAAAAABB8AAAAAAAAAAAAAAIgAA4EBQ4oAAIABZzEAZ4mKAgGxgQOyEIAERFBULYv/cQNIUIABLVCL/nEDSFCyJoADZHB0siWBgMivoCWyIoEDsiMyCrIpMgqyKoEAsgGztDyJigMAsYEEshCL/7IUi/6yEYv9shKBALIBs4mKAQCBAIv/MgqI/9qJigIBi/+L/guSiYoFAYAARwKL/IHoBx2BAIv+H0hITBREjACL+4HoBx2BAIv9H0hITBREjAGLAIsBDEEABYsAQgACiwGMAosCi/8dgQCB6AcfSEhMFESMAEYCiYoAATIKgAFhZHAASIHoBx2BADIKgAFiZHAASB9ISEwURImKAwGL/ov9HYEAi/8fSEhMFESJigMBgACB4weMAIv/iwAdi/1PAksBC04CHU4CCEyBAIv+gegHC4v/iwALCB9ISEwURIwAiTYaAUkVgSASRIgAA4EBQ4oBADEAgAFnZBJEgAFni/9niYAEFR98dTYaAhc2GgEXMRaBAQlJOBCBARJEiAAGFlCwgQFDigMBMQCAAWdkEkQyBIECEkSL/zgHMgoSRIv/OAiB4KcSD0SL/ov9DESAAWGL/meAAWKL/WeAAXCL/Yv+iP5PZ4v+iP6mi/2I/qGAAXBkiTYaAxc2GgIXNhoBFzEWgQEJSTgQgQQSRDEWgQIJSTgQgQQSRIgAA4EBQ4oFAIAAi/yAAWFkEkSL+4ABYmQSRIv9gAFwZBJEi/84ADEAEkSL/zgSgQANRIv/OBQyChJEi/84EYv8EkSL/jgAMQASRIv+OBKBAA1Ei/44FDIKEkSL/jgRi/sSRDIKi/xwAEiL/zgSEklBAA0yCov7cABIi/44EhIQQQAOi/44Eov/OBKI/fdCAEKL/jgSi/84EjIKi/twAEiL/jgSCTIKi/xwAEiL/zgSCYGAyK+gJTIKi/1wAEgJiP3NjACLAIEADUSLAIv9MQCI/YuJNhoDFzYaAhc2GgEXMRaBAQlJOBCBBBJEiAADgQFDigQAgABHAov+gAFwZBJEi/2AAWFkEkSL/IABYmQSRIv/OAAxABJEi/84EoEADUSL/zgUMgoSRIv/OBGL/hJEgYDIr6AlMgqL/nAASIv/OBIJCYwAi/84EjIKi/1wAEiLAIj9rIwBi/84EjIKi/xwAEiLAIj9mowCiwGL/TEAiPzriwKL/DEAiPzigAFyiP1eZ4k2GgIXNhoBFzEWgQEJSTgQgQQSRIgAA4EBQ4oDAIAARwKL/oABYWQSRIv9gAFiZBJEi/84EoEADUSL/zgUMgoSRIv/OAAxABJEi/84EYv+Eov/OBGL/RIRRIv/OBGL/hJBAAWL/kIAAov9jACL/zgRjAEyCosAcABIMgqLAXAASIv/OBIJi/84Eoj9BYwCiwKBAA1EiwKLADEAiPw9gAFyiPy5Z4mABLhEezY2GgCOAfvVAIAE3cTLSoAEJebDdoAEEARceYAEAo43wYAEYyqu2DYaAI4F/OX9Bv14/nD/IAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json b/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json index ef6b7bb9d..f1e58710e 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json @@ -1,9 +1,15 @@ [ { "teal": 1, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 0, 1, 2, 3, @@ -14,7 +20,13 @@ 8, 9, 10, - 11, + 11 + ] + }, + { + "teal": 3, + "source": "examples/amm/amm.algo.ts:8", + "pc": [ 12, 13, 14, @@ -27,61 +39,61 @@ 21, 22, 23, - 24, + 24 + ] + }, + { + "teal": 15, + "source": "examples/amm/amm.algo.ts:8", + "pc": [ 25, - 26, + 26 + ] + }, + { + "teal": 16, + "source": "examples/amm/amm.algo.ts:8", + "pc": [ 27 ] }, { - "teal": 13, - "source": 8, + "teal": 17, + "source": "examples/amm/amm.algo.ts:8", "pc": [ 28, 29 ] }, { - "teal": 14, - "source": 8, + "teal": 18, + "source": "examples/amm/amm.algo.ts:8", "pc": [ 30 ] }, { - "teal": 15, - "source": 8, + "teal": 19, + "source": "examples/amm/amm.algo.ts:8", "pc": [ 31, 32 ] }, { - "teal": 16, - "source": 8, + "teal": 20, + "source": "examples/amm/amm.algo.ts:8", "pc": [ 33 ] }, { - "teal": 17, - "source": 8, + "teal": 21, + "source": "examples/amm/amm.algo.ts:8", "pc": [ 34, - 35 - ] - }, - { - "teal": 18, - "source": 8, - "pc": [ - 36 - ] - }, - { - "teal": 19, - "source": 8, - "pc": [ + 35, + 36, 37, 38, 39, @@ -104,84 +116,84 @@ 56, 57, 58, - 59, - 60, - 61, - 62 + 59 ] }, { - "teal": 23, - "source": 8, + "teal": 25, + "source": "examples/amm/amm.algo.ts:8", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 63 + 60 ] }, { - "teal": 28, - "source": 19, + "teal": 30, + "source": "examples/amm/amm.algo.ts:19", "pc": [ - 64, - 65, - 66 + 61, + 62, + 63 ] }, { - "teal": 29, - "source": 19, + "teal": 31, + "source": "examples/amm/amm.algo.ts:19", "pc": [ - 67 + 64, + 65 ] }, { - "teal": 30, - "source": 19, + "teal": 32, + "source": "examples/amm/amm.algo.ts:19", "pc": [ - 68 + 66 ] }, { - "teal": 34, - "source": 19, + "teal": 36, + "source": "examples/amm/amm.algo.ts:19", "pc": [ - 69, - 70, - 71 + 67, + 68, + 69 ] }, { - "teal": 38, - "source": 20, + "teal": 40, + "source": "examples/amm/amm.algo.ts:20", "pc": [ + 70, + 71, 72 ] }, { - "teal": 39, - "source": 20, + "teal": 41, + "source": "examples/amm/amm.algo.ts:20", "pc": [ 73, 74 ] }, { - "teal": 40, - "source": 20, + "teal": 42, + "source": "examples/amm/amm.algo.ts:20", "pc": [ 75 ] }, { - "teal": 41, - "source": 19, + "teal": 43, + "source": "examples/amm/amm.algo.ts:19", "pc": [ 76 ] }, { - "teal": 45, - "source": 23, + "teal": 47, + "source": "examples/amm/amm.algo.ts:23", "pc": [ 77, 78, @@ -189,31 +201,31 @@ ] }, { - "teal": 56, - "source": 26, + "teal": 58, + "source": "examples/amm/amm.algo.ts:26", "pc": [ 80 ] }, { - "teal": 57, - "source": 26, + "teal": 59, + "source": "examples/amm/amm.algo.ts:26", "pc": [ 81, 82 ] }, { - "teal": 58, - "source": 26, + "teal": 60, + "source": "examples/amm/amm.algo.ts:26", "pc": [ 83, 84 ] }, { - "teal": 62, - "source": 27, + "teal": 64, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 85, 86, @@ -224,38 +236,38 @@ ] }, { - "teal": 63, - "source": 27, + "teal": 65, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 91, 92 ] }, { - "teal": 64, - "source": 27, + "teal": 66, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 93, 94 ] }, { - "teal": 65, - "source": 27, + "teal": 67, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 95 ] }, { - "teal": 66, - "source": 27, + "teal": 68, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 96 ] }, { - "teal": 67, - "source": 27, + "teal": 69, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 97, 98, @@ -263,53 +275,53 @@ ] }, { - "teal": 68, - "source": 27, + "teal": 70, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 100 ] }, { - "teal": 69, - "source": 27, + "teal": 71, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 101, 102 ] }, { - "teal": 70, - "source": 27, + "teal": 72, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 103, 104 ] }, { - "teal": 71, - "source": 27, + "teal": 73, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 105 ] }, { - "teal": 72, - "source": 27, + "teal": 74, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 106 ] }, { - "teal": 73, - "source": 27, + "teal": 75, + "source": "examples/amm/amm.algo.ts:27", "pc": [ 107, 108 ] }, { - "teal": 77, - "source": 28, + "teal": 79, + "source": "examples/amm/amm.algo.ts:28", "pc": [ 109, 110, @@ -319,4459 +331,4548 @@ ] }, { - "teal": 78, - "source": 28, + "teal": 80, + "source": "examples/amm/amm.algo.ts:28", "pc": [ 114, 115 ] }, { - "teal": 82, - "source": 29, + "teal": 84, + "source": "examples/amm/amm.algo.ts:29", "pc": [ 116, - 117 - ] - }, - { - "teal": 83, - "source": 29, - "pc": [ + 117, 118, - 119 - ] - }, - { - "teal": 87, - "source": 30, - "pc": [ + 119, 120, 121 ] }, { - "teal": 88, - "source": 30, + "teal": 85, + "source": "examples/amm/amm.algo.ts:29", "pc": [ 122, 123 ] }, { - "teal": 92, - "source": 31, + "teal": 89, + "source": "examples/amm/amm.algo.ts:30", "pc": [ 124, 125 ] }, { - "teal": 93, - "source": 31, + "teal": 90, + "source": "examples/amm/amm.algo.ts:30", "pc": [ 126, 127 ] }, { - "teal": 97, - "source": 32, + "teal": 94, + "source": "examples/amm/amm.algo.ts:31", "pc": [ 128, 129 ] }, { - "teal": 98, - "source": 32, + "teal": 95, + "source": "examples/amm/amm.algo.ts:31", "pc": [ 130, 131 ] }, { - "teal": 101, - "source": 26, + "teal": 99, + "source": "examples/amm/amm.algo.ts:32", "pc": [ - 132 + 132, + 133 ] }, { - "teal": 102, - "source": 26, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 105, - "source": 26, + "teal": 100, + "source": "examples/amm/amm.algo.ts:32", "pc": [ + 134, 135 ] }, { - "teal": 106, - "source": 26, + "teal": 103, + "source": "examples/amm/amm.algo.ts:26", "pc": [ 136, 137 ] }, { - "teal": 107, - "source": 23, + "teal": 104, + "source": "examples/amm/amm.algo.ts:26", "pc": [ - 138 + 138, + 139 ] }, { - "teal": 111, - "source": 36, + "teal": 107, + "source": "examples/amm/amm.algo.ts:26", "pc": [ - 139, - 140, - 141 + 140 ] }, { - "teal": 119, - "source": 37, + "teal": 108, + "source": "examples/amm/amm.algo.ts:26", "pc": [ + 141, 142 ] }, { - "teal": 120, - "source": 37, + "teal": 109, + "source": "examples/amm/amm.algo.ts:23", "pc": [ 143 ] }, { - "teal": 121, - "source": 37, + "teal": 113, + "source": "examples/amm/amm.algo.ts:36", "pc": [ 144, - 145 + 145, + 146 ] }, { - "teal": 125, - "source": 38, + "teal": 121, + "source": "examples/amm/amm.algo.ts:37", "pc": [ - 146, 147 ] }, { - "teal": 126, - "source": 38, + "teal": 122, + "source": "examples/amm/amm.algo.ts:37", "pc": [ 148, 149 ] }, { - "teal": 130, - "source": 39, + "teal": 123, + "source": "examples/amm/amm.algo.ts:37", "pc": [ 150, 151 ] }, { - "teal": 131, - "source": 39, + "teal": 127, + "source": "examples/amm/amm.algo.ts:38", "pc": [ 152, 153 ] }, { - "teal": 135, - "source": 40, + "teal": 128, + "source": "examples/amm/amm.algo.ts:38", "pc": [ 154, 155 ] }, { - "teal": 136, - "source": 40, + "teal": 132, + "source": "examples/amm/amm.algo.ts:39", "pc": [ 156, 157 ] }, { - "teal": 139, - "source": 37, + "teal": 133, + "source": "examples/amm/amm.algo.ts:39", "pc": [ - 158 + 158, + 159 ] }, { - "teal": 140, - "source": 37, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 143, - "source": 37, + "teal": 137, + "source": "examples/amm/amm.algo.ts:40", "pc": [ + 160, 161 ] }, { - "teal": 144, - "source": 36, + "teal": 138, + "source": "examples/amm/amm.algo.ts:40", "pc": [ - 162 + 162, + 163 ] }, { - "teal": 148, - "source": 44, + "teal": 141, + "source": "examples/amm/amm.algo.ts:37", "pc": [ - 163, 164, 165 ] }, { - "teal": 152, - "source": 45, + "teal": 142, + "source": "examples/amm/amm.algo.ts:37", "pc": [ - 166 + 166, + 167 ] }, { - "teal": 153, - "source": 45, + "teal": 145, + "source": "examples/amm/amm.algo.ts:37", "pc": [ - 167, 168 ] }, { - "teal": 154, - "source": 45, + "teal": 146, + "source": "examples/amm/amm.algo.ts:36", "pc": [ - 169, - 170 + 169 ] }, { - "teal": 155, - "source": 45, + "teal": 150, + "source": "examples/amm/amm.algo.ts:44", "pc": [ + 170, 171, - 172, - 173 + 172 ] }, { - "teal": 156, - "source": 44, + "teal": 154, + "source": "examples/amm/amm.algo.ts:45", "pc": [ + 173, 174 ] }, { - "teal": 160, - "source": 48, + "teal": 155, + "source": "examples/amm/amm.algo.ts:45", "pc": [ 175, - 176, - 177 + 176 ] }, { - "teal": 164, - "source": 49, + "teal": 156, + "source": "examples/amm/amm.algo.ts:45", "pc": [ - 178, - 179 + 177, + 178 ] }, { - "teal": 165, - "source": 49, + "teal": 157, + "source": "examples/amm/amm.algo.ts:45", "pc": [ + 179, 180, 181 ] }, { - "teal": 166, - "source": 49, + "teal": 158, + "source": "examples/amm/amm.algo.ts:44", "pc": [ 182 ] }, + { + "teal": 162, + "source": "examples/amm/amm.algo.ts:48", + "pc": [ + 183, + 184, + 185 + ] + }, + { + "teal": 166, + "source": "examples/amm/amm.algo.ts:49", + "pc": [ + 186, + 187 + ] + }, { "teal": 167, - "source": 49, + "source": "examples/amm/amm.algo.ts:49", "pc": [ - 183 + 188, + 189 ] }, { "teal": 168, - "source": 48, + "source": "examples/amm/amm.algo.ts:49", "pc": [ - 184 + 190 ] }, { - "teal": 172, - "source": 52, + "teal": 169, + "source": "examples/amm/amm.algo.ts:49", "pc": [ - 185, - 186, - 187 + 191 ] }, { - "teal": 175, - "source": 52, + "teal": 170, + "source": "examples/amm/amm.algo.ts:48", "pc": [ - 188 + 192 ] }, { - "teal": 176, - "source": 52, + "teal": 174, + "source": "examples/amm/amm.algo.ts:52", "pc": [ - 189, - 190 + 193, + 194, + 195 ] }, { - "teal": 180, - "source": 53, + "teal": 177, + "source": "examples/amm/amm.algo.ts:52", "pc": [ - 191, - 192 + 196, + 197 ] }, { - "teal": 181, - "source": 53, + "teal": 178, + "source": "examples/amm/amm.algo.ts:52", "pc": [ - 193 + 198, + 199 ] }, { "teal": 182, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 194 + 200, + 201 ] }, { "teal": 183, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 195 + 202, + 203, + 204 ] }, { "teal": 184, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 196, - 197 + 205 ] }, { "teal": 185, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 198 + 206, + 207 ] }, { "teal": 186, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 199 + 208, + 209 ] }, { "teal": 187, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 200 + 210 ] }, { "teal": 188, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 201 + 211 ] }, { "teal": 189, - "source": 53, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 202 + 212 ] }, { - "teal": 192, - "source": 53, - "errorMessage": "wideRatio failed", + "teal": 190, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 203 + 213 ] }, { - "teal": 193, - "source": 53, + "teal": 191, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 204, - 205 + 214 ] }, { - "teal": 197, - "source": 54, + "teal": 194, + "source": "examples/amm/amm.algo.ts:53", + "errorMessage": "wideRatio failed", "pc": [ - 206, - 207 + 215 ] }, { - "teal": 198, - "source": 54, + "teal": 195, + "source": "examples/amm/amm.algo.ts:53", "pc": [ - 208 + 216, + 217 ] }, { "teal": 199, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 209 + 218, + 219 ] }, { "teal": 200, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 210 + 220, + 221, + 222 ] }, { "teal": 201, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 211, - 212 + 223 ] }, { "teal": 202, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 213 + 224, + 225 ] }, { "teal": 203, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 214 + 226, + 227 ] }, { "teal": 204, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 215 + 228 ] }, { "teal": 205, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 216 + 229 ] }, { "teal": 206, - "source": 54, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 217 + 230 ] }, { - "teal": 209, - "source": 54, - "errorMessage": "wideRatio failed", + "teal": 207, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 218 + 231 ] }, { - "teal": 210, - "source": 54, + "teal": 208, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 219, - 220 + 232 ] }, { - "teal": 214, - "source": 56, + "teal": 211, + "source": "examples/amm/amm.algo.ts:54", + "errorMessage": "wideRatio failed", "pc": [ - 221, - 222 + 233 ] }, { - "teal": 215, - "source": 56, + "teal": 212, + "source": "examples/amm/amm.algo.ts:54", "pc": [ - 223, - 224 + 234, + 235 ] }, { "teal": 216, - "source": 56, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 225 + 236, + 237 ] }, { "teal": 217, - "source": 56, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 226, - 227, - 228 + 238, + 239 ] }, { "teal": 218, - "source": 56, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 229, - 230 + 240 ] }, { "teal": 219, - "source": 56, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 231, - 232, - 233 + 241, + 242, + 243 ] }, { - "teal": 222, - "source": 56, + "teal": 220, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 234, - 235 + 244, + 245 ] }, { - "teal": 225, - "source": 56, + "teal": 221, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 236, - 237 + 246, + 247, + 248 ] }, { - "teal": 229, - "source": 58, + "teal": 224, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 238, - 239 + 249, + 250 ] }, { - "teal": 230, - "source": 58, + "teal": 227, + "source": "examples/amm/amm.algo.ts:56", "pc": [ - 240, - 241 + 251, + 252 ] }, { "teal": 231, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 242 + 253, + 254 ] }, { "teal": 232, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 243 + 255, + 256 ] }, { "teal": 233, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 244 + 257 ] }, { "teal": 234, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 245 + 258, + 259 ] }, { "teal": 235, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 246 + 260, + 261, + 262 ] }, { "teal": 236, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 247 + 263 ] }, { "teal": 237, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 248 + 264 ] }, { "teal": 238, - "source": 58, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 249 + 265 ] }, { - "teal": 241, - "source": 58, - "errorMessage": "wideRatio failed", + "teal": 239, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 250 + 266 ] }, { - "teal": 244, - "source": 52, + "teal": 240, + "source": "examples/amm/amm.algo.ts:58", "pc": [ - 251, - 252 + 267 ] }, { - "teal": 247, - "source": 52, + "teal": 243, + "source": "examples/amm/amm.algo.ts:58", + "errorMessage": "wideRatio failed", "pc": [ - 253, - 254 + 268 ] }, { - "teal": 248, - "source": 52, + "teal": 246, + "source": "examples/amm/amm.algo.ts:52", "pc": [ - 255 + 269, + 270 ] }, { - "teal": 252, - "source": 61, + "teal": 249, + "source": "examples/amm/amm.algo.ts:52", "pc": [ - 256, - 257, - 258 + 271, + 272 ] }, { - "teal": 259, - "source": 63, + "teal": 250, + "source": "examples/amm/amm.algo.ts:52", "pc": [ - 259, - 260 + 273 ] }, { - "teal": 260, - "source": 63, + "teal": 254, + "source": "examples/amm/amm.algo.ts:61", "pc": [ - 261 + 274, + 275, + 276 ] }, { "teal": 261, - "source": 63, + "source": "examples/amm/amm.algo.ts:63", "pc": [ - 262 + 277, + 278 ] }, { "teal": 262, - "source": 63, + "source": "examples/amm/amm.algo.ts:63", "pc": [ - 263, - 264 + 279, + 280, + 281 ] }, { "teal": 263, - "source": 63, + "source": "examples/amm/amm.algo.ts:63", "pc": [ - 265 + 282 ] }, { "teal": 264, - "source": 63, + "source": "examples/amm/amm.algo.ts:63", "pc": [ - 266 + 283, + 284 ] }, { "teal": 265, - "source": 62, + "source": "examples/amm/amm.algo.ts:63", "pc": [ - 267 + 285 ] }, { "teal": 266, - "source": 62, + "source": "examples/amm/amm.algo.ts:63", "pc": [ - 268 + 286, + 287, + 288 ] }, { "teal": 267, - "source": 64, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 269, - 270 + 289 ] }, { "teal": 268, - "source": 64, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 271 + 290, + 291 ] }, { "teal": 269, - "source": 64, + "source": "examples/amm/amm.algo.ts:64", "pc": [ - 272 + 292, + 293 ] }, { "teal": 270, - "source": 64, + "source": "examples/amm/amm.algo.ts:64", "pc": [ - 273, - 274 + 294, + 295, + 296 ] }, { "teal": 271, - "source": 64, + "source": "examples/amm/amm.algo.ts:64", "pc": [ - 275 + 297 ] }, { "teal": 272, - "source": 62, + "source": "examples/amm/amm.algo.ts:64", "pc": [ - 276 + 298, + 299 ] }, { "teal": 273, - "source": 62, + "source": "examples/amm/amm.algo.ts:64", "pc": [ - 277 + 300 ] }, { "teal": 274, - "source": 62, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 278 + 301 ] }, { "teal": 275, - "source": 62, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 279 + 302 ] }, { "teal": 276, - "source": 62, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 280 + 303 ] }, { - "teal": 279, - "source": 62, - "errorMessage": "wideRatio failed", + "teal": 277, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 281 + 304 ] }, { - "teal": 280, - "source": 61, + "teal": 278, + "source": "examples/amm/amm.algo.ts:62", "pc": [ - 282 + 305 ] }, { - "teal": 284, - "source": 68, + "teal": 281, + "source": "examples/amm/amm.algo.ts:62", + "errorMessage": "wideRatio failed", "pc": [ - 283, - 284, - 285 + 306 ] }, { - "teal": 288, - "source": 69, + "teal": 282, + "source": "examples/amm/amm.algo.ts:61", "pc": [ - 286, - 287 + 307 ] }, { - "teal": 289, - "source": 69, + "teal": 286, + "source": "examples/amm/amm.algo.ts:68", "pc": [ - 288, - 289 + 308, + 309, + 310 ] }, { "teal": 290, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 290 + 311, + 312 ] }, { "teal": 291, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 291 + 313, + 314 ] }, { "teal": 292, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 292, - 293 + 315 ] }, { "teal": 293, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 294 + 316, + 317 ] }, { "teal": 294, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 295 + 318, + 319 ] }, { "teal": 295, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 296 + 320 ] }, { "teal": 296, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 297 + 321 ] }, { "teal": 297, - "source": 69, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 298 + 322 ] }, { - "teal": 300, - "source": 69, - "errorMessage": "wideRatio failed", + "teal": 298, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 299 + 323 ] }, { - "teal": 301, - "source": 68, + "teal": 299, + "source": "examples/amm/amm.algo.ts:69", "pc": [ - 300 + 324 ] }, { - "teal": 305, - "source": 72, + "teal": 302, + "source": "examples/amm/amm.algo.ts:69", + "errorMessage": "wideRatio failed", "pc": [ - 301, - 302, - 303 + 325 ] }, { - "teal": 308, - "source": 72, + "teal": 303, + "source": "examples/amm/amm.algo.ts:68", "pc": [ - 304 + 326 ] }, { - "teal": 312, - "source": 73, + "teal": 307, + "source": "examples/amm/amm.algo.ts:72", "pc": [ - 305, - 306, - 307 + 327, + 328, + 329 ] }, { - "teal": 313, - "source": 73, + "teal": 310, + "source": "examples/amm/amm.algo.ts:72", "pc": [ - 308, - 309 + 330, + 331 ] }, { - "teal": 317, - "source": 74, + "teal": 314, + "source": "examples/amm/amm.algo.ts:73", "pc": [ - 310, - 311 + 332, + 333, + 334 ] }, { - "teal": 318, - "source": 74, + "teal": 315, + "source": "examples/amm/amm.algo.ts:73", "pc": [ - 312, - 313 + 335, + 336 ] }, { "teal": 319, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 314 + 337, + 338 ] }, { "teal": 320, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 315, - 316 + 339, + 340 ] }, { "teal": 321, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 317, - 318 + 341 ] }, { "teal": 322, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 319, - 320 + 342, + 343 ] }, { "teal": 323, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 321 + 344, + 345 ] }, { "teal": 324, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 322, - 323 + 346, + 347 ] }, { "teal": 325, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 324 + 348 ] }, { "teal": 326, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 325, - 326 + 349, + 350 ] }, { "teal": 327, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 327 + 351 ] }, { "teal": 328, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 328 + 352, + 353 ] }, { "teal": 329, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 329 + 354 ] }, { "teal": 330, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 330, - 331 + 355 ] }, { "teal": 331, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 332 + 356, + 357 ] }, { "teal": 332, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 333 + 358, + 359 ] }, { "teal": 333, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 334, - 335 + 360, + 361, + 362 ] }, { "teal": 334, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 336, - 337 + 363 ] }, { "teal": 335, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 338 + 364, + 365 ] }, { "teal": 336, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 339 + 366, + 367 ] }, { "teal": 337, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 340 + 368 ] }, { "teal": 338, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 341 + 369 ] }, { "teal": 339, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 342 + 370 ] }, { "teal": 340, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 343 + 371 ] }, { "teal": 341, - "source": 74, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 344 + 372 ] }, { - "teal": 344, - "source": 74, - "errorMessage": "wideRatio failed", + "teal": 342, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 345 + 373 ] }, { - "teal": 347, - "source": 72, + "teal": 343, + "source": "examples/amm/amm.algo.ts:74", "pc": [ - 346, - 347 + 374 ] }, { - "teal": 348, - "source": 72, + "teal": 346, + "source": "examples/amm/amm.algo.ts:74", + "errorMessage": "wideRatio failed", "pc": [ - 348 + 375 ] }, { - "teal": 353, - "source": 77, + "teal": 349, + "source": "examples/amm/amm.algo.ts:72", "pc": [ - 349, - 350, - 351 + 376, + 377 ] }, { - "teal": 354, - "source": 77, + "teal": 350, + "source": "examples/amm/amm.algo.ts:72", "pc": [ - 352 + 378 ] }, { "teal": 355, - "source": 77, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 353 + 379, + 380, + 381 ] }, { "teal": 356, - "source": 77, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 354, - 355 + 382 ] }, { "teal": 357, - "source": 77, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 356 + 383 ] }, { - "teal": 360, - "source": 77, - "errorMessage": "argument 0 (governor) for set_governor must be a address", + "teal": 358, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 357 + 384, + 385 ] }, { - "teal": 363, - "source": 77, + "teal": 359, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 358, - 359, - 360 + 386 ] }, { - "teal": 364, - "source": 77, + "teal": 362, + "source": "examples/amm/amm.algo.ts:77", + "errorMessage": "argument 0 (governor) for set_governor must be a address", "pc": [ - 361 + 387 ] }, { "teal": 365, - "source": 77, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 362 + 388, + 389, + 390 ] }, { - "teal": 369, - "source": 77, + "teal": 366, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 363, - 364, - 365 + 391, + 392 ] }, { - "teal": 374, - "source": 78, + "teal": 367, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 366, - 367 + 393 ] }, { - "teal": 375, - "source": 78, + "teal": 371, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 368 + 394, + 395, + 396 ] }, { "teal": 376, - "source": 78, + "source": "examples/amm/amm.algo.ts:78", "pc": [ - 369 + 397, + 398 ] }, { "teal": 377, - "source": 78, + "source": "examples/amm/amm.algo.ts:78", "pc": [ - 370 + 399, + 400, + 401 ] }, { - "teal": 380, - "source": 78, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}", + "teal": 378, + "source": "examples/amm/amm.algo.ts:78", "pc": [ - 371 + 402 ] }, { - "teal": 384, - "source": 79, + "teal": 379, + "source": "examples/amm/amm.algo.ts:78", "pc": [ - 372 + 403 ] }, { - "teal": 385, - "source": 79, + "teal": 382, + "source": "examples/amm/amm.algo.ts:78", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}", "pc": [ - 373, - 374 + 404 ] }, { "teal": 386, - "source": 79, + "source": "examples/amm/amm.algo.ts:79", "pc": [ - 375 + 405, + 406, + 407 ] }, { "teal": 387, - "source": 77, + "source": "examples/amm/amm.algo.ts:79", "pc": [ - 376 + 408, + 409 ] }, { - "teal": 392, - "source": 82, + "teal": 388, + "source": "examples/amm/amm.algo.ts:79", "pc": [ - 377, - 378, - 379, - 380, - 381, - 382 + 410 ] }, { - "teal": 395, - "source": 82, + "teal": 389, + "source": "examples/amm/amm.algo.ts:77", "pc": [ - 383, - 384, - 385 + 411 ] }, { - "teal": 396, - "source": 82, + "teal": 394, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 386 + 412, + 413, + 414, + 415, + 416, + 417 ] }, { - "teal": 399, - "source": 82, + "teal": 397, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 387, - 388, - 389 + 418, + 419, + 420 ] }, { - "teal": 400, - "source": 82, + "teal": 398, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 390 + 421 ] }, { - "teal": 403, - "source": 82, + "teal": 401, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 391, - 392 + 422, + 423, + 424 ] }, { - "teal": 404, - "source": 82, + "teal": 402, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 393 + 425 ] }, { "teal": 405, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 394 + 426, + 427 ] }, { "teal": 406, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 395 + 428, + 429 ] }, { "teal": 407, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 396, - 397 + 430 ] }, { "teal": 408, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 398 + 431 ] }, { "teal": 409, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 399 + 432, + 433 ] }, { - "teal": 412, - "source": 82, - "errorMessage": "argument 2 (seed) for bootstrap must be a pay transaction", + "teal": 410, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 400 + 434, + 435 ] }, { - "teal": 415, - "source": 82, + "teal": 411, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 401, - 402, - 403 + 436 ] }, { - "teal": 416, - "source": 82, + "teal": 414, + "source": "examples/amm/amm.algo.ts:82", + "errorMessage": "argument 2 (seed) for bootstrap must be a pay transaction", "pc": [ - 404 + 437 ] }, { "teal": 417, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 405 + 438, + 439, + 440 ] }, { "teal": 418, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 406 + 441 ] }, { "teal": 419, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 407 + 442 ] }, { "teal": 420, - "source": 82, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 408 + 443 ] }, { - "teal": 424, - "source": 82, + "teal": 421, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 409, - 410, - 411 + 444, + 445 ] }, { - "teal": 429, - "source": 83, + "teal": 422, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 412, - 413 + 446 ] }, { - "teal": 430, - "source": 83, + "teal": 426, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 414 + 447, + 448, + 449 ] }, { "teal": 431, - "source": 83, + "source": "examples/amm/amm.algo.ts:83", "pc": [ - 415 + 450, + 451 ] }, { "teal": 432, - "source": 83, + "source": "examples/amm/amm.algo.ts:83", "pc": [ - 416 + 452, + 453, + 454 ] }, { - "teal": 435, - "source": 83, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}", + "teal": 433, + "source": "examples/amm/amm.algo.ts:83", "pc": [ - 417 + 455 ] }, { - "teal": 439, - "source": 85, + "teal": 434, + "source": "examples/amm/amm.algo.ts:83", "pc": [ - 418, - 419 + 456 ] }, { - "teal": 440, - "source": 85, + "teal": 437, + "source": "examples/amm/amm.algo.ts:83", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.governor.value\"}", "pc": [ - 420, - 421 + 457 ] }, { "teal": 441, - "source": 85, + "source": "examples/amm/amm.algo.ts:85", "pc": [ - 422 + 458, + 459 ] }, { "teal": 442, - "source": 85, + "source": "examples/amm/amm.algo.ts:85", "pc": [ - 423 + 460, + 461 ] }, { - "teal": 447, - "source": 87, + "teal": 443, + "source": "examples/amm/amm.algo.ts:85", "pc": [ - 424, - 425 + 462 ] }, { - "teal": 448, - "source": 87, + "teal": 444, + "source": "examples/amm/amm.algo.ts:85", "pc": [ - 426, - 427 + 463 ] }, { "teal": 449, - "source": 87, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 428, - 429 + 464, + 465 ] }, { "teal": 450, - "source": 87, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 430 + 466, + 467 ] }, { - "teal": 453, - "source": 87, - "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 451, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 431 + 468, + 469 ] }, { - "teal": 456, - "source": 87, + "teal": 452, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 432, - 433 + 470 ] }, { - "teal": 457, - "source": 87, + "teal": 455, + "source": "examples/amm/amm.algo.ts:87", + "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 434, - 435 + 471 ] }, { "teal": 458, - "source": 87, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 436, - 437, - 438, - 439 + 472, + 473 ] }, { "teal": 459, - "source": 87, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 440 + 474, + 475 ] }, { - "teal": 462, - "source": 87, - "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"amount\",\"condition\":\"greaterThanEqualTo\",\"expected\":\">=300_000\"}", + "teal": 460, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 441 + 476, + 477, + 478, + 479 ] }, { - "teal": 466, - "source": 88, + "teal": 461, + "source": "examples/amm/amm.algo.ts:87", "pc": [ - 442, - 443 + 480 ] }, { - "teal": 467, - "source": 88, + "teal": 464, + "source": "examples/amm/amm.algo.ts:87", + "errorMessage": "transaction verification failed: {\"txn\":\"seed\",\"field\":\"amount\",\"condition\":\"greaterThanEqualTo\",\"expected\":\">=300_000\"}", "pc": [ - 444, - 445 + 481 ] }, { "teal": 468, - "source": 88, + "source": "examples/amm/amm.algo.ts:88", "pc": [ - 446 + 482, + 483 ] }, { "teal": 469, - "source": 88, + "source": "examples/amm/amm.algo.ts:88", "pc": [ - 447 + 484, + 485 ] }, { - "teal": 473, - "source": 90, + "teal": 470, + "source": "examples/amm/amm.algo.ts:88", "pc": [ - 448 + 486 ] }, { - "teal": 474, - "source": 90, + "teal": 471, + "source": "examples/amm/amm.algo.ts:88", "pc": [ - 449, - 450 + 487 ] }, { "teal": 475, - "source": 90, + "source": "examples/amm/amm.algo.ts:90", "pc": [ - 451 + 488, + 489, + 490 ] }, { - "teal": 479, - "source": 91, + "teal": 476, + "source": "examples/amm/amm.algo.ts:90", "pc": [ - 452 + 491, + 492 ] }, { - "teal": 480, - "source": 91, + "teal": 477, + "source": "examples/amm/amm.algo.ts:90", "pc": [ - 453, - 454 + 493 ] }, { "teal": 481, - "source": 91, + "source": "examples/amm/amm.algo.ts:91", "pc": [ - 455 + 494, + 495, + 496 ] }, { - "teal": 485, - "source": 92, + "teal": 482, + "source": "examples/amm/amm.algo.ts:91", "pc": [ - 456, - 457 + 497, + 498 ] }, { - "teal": 486, - "source": 92, + "teal": 483, + "source": "examples/amm/amm.algo.ts:91", "pc": [ - 458, - 459 + 499 ] }, { "teal": 487, - "source": 92, + "source": "examples/amm/amm.algo.ts:92", "pc": [ - 460, - 461 + 500, + 501, + 502 ] }, { "teal": 488, - "source": 92, + "source": "examples/amm/amm.algo.ts:92", "pc": [ - 462, - 463, - 464 + 503, + 504 ] }, { "teal": 489, - "source": 92, + "source": "examples/amm/amm.algo.ts:92", "pc": [ - 465 + 505, + 506 ] }, { - "teal": 493, - "source": 94, + "teal": 490, + "source": "examples/amm/amm.algo.ts:92", "pc": [ - 466, - 467 + 507, + 508, + 509 ] }, { - "teal": 494, - "source": 94, + "teal": 491, + "source": "examples/amm/amm.algo.ts:92", "pc": [ - 468, - 469, - 470 + 510 ] }, { - "teal": 498, - "source": 95, + "teal": 495, + "source": "examples/amm/amm.algo.ts:94", "pc": [ - 471, - 472 + 511, + 512 ] }, { - "teal": 499, - "source": 95, + "teal": 496, + "source": "examples/amm/amm.algo.ts:94", "pc": [ - 473, - 474, - 475 + 513, + 514, + 515 ] }, { - "teal": 503, - "source": 97, + "teal": 500, + "source": "examples/amm/amm.algo.ts:95", "pc": [ - 476, - 477 + 516, + 517 ] }, { - "teal": 504, - "source": 97, + "teal": 501, + "source": "examples/amm/amm.algo.ts:95", "pc": [ - 478 + 518, + 519, + 520 ] }, { "teal": 505, - "source": 82, + "source": "examples/amm/amm.algo.ts:97", "pc": [ - 479 + 521, + 522, + 523 ] }, { - "teal": 510, - "source": 100, + "teal": 506, + "source": "examples/amm/amm.algo.ts:97", "pc": [ - 480, - 481, - 482 + 524 ] }, { - "teal": 511, - "source": 100, + "teal": 507, + "source": "examples/amm/amm.algo.ts:82", "pc": [ - 483 + 525 ] }, { - "teal": 514, - "source": 100, + "teal": 512, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 484, - 485, - 486 + 526, + 527, + 528 ] }, { - "teal": 515, - "source": 100, + "teal": 513, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 487 + 529 ] }, { - "teal": 518, - "source": 100, + "teal": 516, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 488, - 489, - 490 + 530, + 531, + 532 ] }, { - "teal": 519, - "source": 100, + "teal": 517, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 491 + 533 ] }, { - "teal": 522, - "source": 100, + "teal": 520, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 492, - 493 + 534, + 535, + 536 ] }, { - "teal": 523, - "source": 100, + "teal": 521, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 494 + 537 ] }, { "teal": 524, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 495 + 538, + 539 ] }, { "teal": 525, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 496 + 540, + 541 ] }, { "teal": 526, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 497, - 498 + 542 ] }, { "teal": 527, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 499 + 543 ] }, { "teal": 528, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 500 + 544, + 545 ] }, { - "teal": 531, - "source": 100, - "errorMessage": "argument 3 (bXfer) for mint must be a axfer transaction", + "teal": 529, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 501 + 546, + 547 ] }, { - "teal": 534, - "source": 100, + "teal": 530, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 502, - 503 + 548 ] }, { - "teal": 535, - "source": 100, + "teal": 533, + "source": "examples/amm/amm.algo.ts:100", + "errorMessage": "argument 3 (bXfer) for mint must be a axfer transaction", "pc": [ - 504, - 505 + 549 ] }, { "teal": 536, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 506 + 550, + 551 ] }, { "teal": 537, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 507 + 552, + 553 ] }, { "teal": 538, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 508, - 509 + 554 ] }, { "teal": 539, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 510 + 555 ] }, { "teal": 540, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 511 + 556, + 557 ] }, { - "teal": 543, - "source": 100, - "errorMessage": "argument 4 (aXfer) for mint must be a axfer transaction", + "teal": 541, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 512 + 558, + 559 ] }, { - "teal": 546, - "source": 100, + "teal": 542, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 513, - 514, - 515 + 560 ] }, { - "teal": 547, - "source": 100, + "teal": 545, + "source": "examples/amm/amm.algo.ts:100", + "errorMessage": "argument 4 (aXfer) for mint must be a axfer transaction", "pc": [ - 516 + 561 ] }, { "teal": 548, - "source": 100, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 517 + 562, + 563, + 564 ] }, { - "teal": 552, - "source": 100, + "teal": 549, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 518, - 519, - 520 + 565, + 566 ] }, { - "teal": 555, - "source": 100, + "teal": 550, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 521 + 567 ] }, { - "teal": 560, - "source": 102, + "teal": 554, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 522, - 523 + 568, + 569, + 570 ] }, { - "teal": 561, - "source": 102, + "teal": 557, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 524 + 571, + 572 ] }, { "teal": 562, - "source": 102, + "source": "examples/amm/amm.algo.ts:102", "pc": [ - 525 + 573, + 574 ] }, { "teal": 563, - "source": 102, + "source": "examples/amm/amm.algo.ts:102", "pc": [ - 526 + 575, + 576, + 577 ] }, { "teal": 564, - "source": 102, + "source": "examples/amm/amm.algo.ts:102", "pc": [ - 527 + 578 ] }, { - "teal": 568, - "source": 103, + "teal": 565, + "source": "examples/amm/amm.algo.ts:102", "pc": [ - 528, - 529 + 579 ] }, { - "teal": 569, - "source": 103, + "teal": 566, + "source": "examples/amm/amm.algo.ts:102", "pc": [ - 530 + 580 ] }, { "teal": 570, - "source": 103, + "source": "examples/amm/amm.algo.ts:103", "pc": [ - 531 + 581, + 582 ] }, { "teal": 571, - "source": 103, + "source": "examples/amm/amm.algo.ts:103", "pc": [ - 532 + 583, + 584, + 585 ] }, { "teal": 572, - "source": 103, + "source": "examples/amm/amm.algo.ts:103", "pc": [ - 533 + 586 ] }, { - "teal": 576, - "source": 104, + "teal": 573, + "source": "examples/amm/amm.algo.ts:103", "pc": [ - 534, - 535 + 587 ] }, { - "teal": 577, - "source": 104, + "teal": 574, + "source": "examples/amm/amm.algo.ts:103", "pc": [ - 536, - 537 + 588 ] }, { "teal": 578, - "source": 104, + "source": "examples/amm/amm.algo.ts:104", "pc": [ - 538 + 589, + 590 ] }, { "teal": 579, - "source": 104, + "source": "examples/amm/amm.algo.ts:104", "pc": [ - 539 + 591, + 592, + 593 ] }, { "teal": 580, - "source": 104, + "source": "examples/amm/amm.algo.ts:104", "pc": [ - 540 + 594 ] }, { - "teal": 591, - "source": 107, + "teal": 581, + "source": "examples/amm/amm.algo.ts:104", "pc": [ - 541, - 542 + 595 ] }, { - "teal": 592, - "source": 108, + "teal": 582, + "source": "examples/amm/amm.algo.ts:104", "pc": [ - 543, - 544 + 596 ] }, { "teal": 593, - "source": 108, + "source": "examples/amm/amm.algo.ts:107", "pc": [ - 545, - 546 + 597, + 598 ] }, { "teal": 594, - "source": 108, + "source": "examples/amm/amm.algo.ts:108", "pc": [ - 547 + 599, + 600 ] }, { - "teal": 597, - "source": 108, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", + "teal": 595, + "source": "examples/amm/amm.algo.ts:108", "pc": [ - 548 + 601, + 602 ] }, { - "teal": 600, - "source": 107, + "teal": 596, + "source": "examples/amm/amm.algo.ts:108", "pc": [ - 549, - 550 + 603 ] }, { - "teal": 601, - "source": 109, + "teal": 599, + "source": "examples/amm/amm.algo.ts:108", + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", "pc": [ - 551, - 552 + 604 ] }, { "teal": 602, - "source": 109, + "source": "examples/amm/amm.algo.ts:107", "pc": [ - 553 + 605, + 606 ] }, { "teal": 603, - "source": 109, + "source": "examples/amm/amm.algo.ts:109", "pc": [ - 554 + 607, + 608 ] }, { - "teal": 606, - "source": 109, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", + "teal": 604, + "source": "examples/amm/amm.algo.ts:109", "pc": [ - 555 + 609, + 610 ] }, { - "teal": 609, - "source": 107, + "teal": 605, + "source": "examples/amm/amm.algo.ts:109", "pc": [ - 556, - 557 + 611 ] }, { - "teal": 610, - "source": 110, + "teal": 608, + "source": "examples/amm/amm.algo.ts:109", + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", "pc": [ - 558, - 559 + 612 ] }, { "teal": 611, - "source": 110, + "source": "examples/amm/amm.algo.ts:107", "pc": [ - 560, - 561 + 613, + 614 ] }, { "teal": 612, - "source": 110, + "source": "examples/amm/amm.algo.ts:110", "pc": [ - 562 + 615, + 616 ] }, { - "teal": 615, - "source": 110, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", + "teal": 613, + "source": "examples/amm/amm.algo.ts:110", "pc": [ - 563 + 617, + 618 ] }, { - "teal": 618, - "source": 107, + "teal": 614, + "source": "examples/amm/amm.algo.ts:110", "pc": [ - 564, - 565 + 619 ] }, { - "teal": 619, - "source": 111, + "teal": 617, + "source": "examples/amm/amm.algo.ts:110", + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", "pc": [ - 566, - 567 + 620 ] }, { "teal": 620, - "source": 111, + "source": "examples/amm/amm.algo.ts:107", "pc": [ - 568, - 569 + 621, + 622 ] }, { "teal": 621, - "source": 111, + "source": "examples/amm/amm.algo.ts:111", "pc": [ - 570 + 623, + 624 ] }, { - "teal": 624, - "source": 111, - "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"xferAsset\",\"expected\":\"aAsset\"}", + "teal": 622, + "source": "examples/amm/amm.algo.ts:111", "pc": [ - 571 + 625, + 626 ] }, { - "teal": 635, - "source": 115, + "teal": 623, + "source": "examples/amm/amm.algo.ts:111", "pc": [ - 572, - 573 + 627 ] }, { - "teal": 636, - "source": 116, + "teal": 626, + "source": "examples/amm/amm.algo.ts:111", + "errorMessage": "transaction verification failed: {\"txn\":\"aXfer\",\"field\":\"xferAsset\",\"expected\":\"aAsset\"}", "pc": [ - 574, - 575 + 628 ] }, { "teal": 637, - "source": 116, + "source": "examples/amm/amm.algo.ts:115", "pc": [ - 576, - 577 + 629, + 630 ] }, { "teal": 638, - "source": 116, + "source": "examples/amm/amm.algo.ts:116", "pc": [ - 578 + 631, + 632 ] }, { - "teal": 641, - "source": 116, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", + "teal": 639, + "source": "examples/amm/amm.algo.ts:116", "pc": [ - 579 + 633, + 634 ] }, { - "teal": 644, - "source": 115, + "teal": 640, + "source": "examples/amm/amm.algo.ts:116", "pc": [ - 580, - 581 + 635 ] }, { - "teal": 645, - "source": 117, + "teal": 643, + "source": "examples/amm/amm.algo.ts:116", + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", "pc": [ - 582, - 583 + 636 ] }, { "teal": 646, - "source": 117, + "source": "examples/amm/amm.algo.ts:115", "pc": [ - 584 + 637, + 638 ] }, { "teal": 647, - "source": 117, + "source": "examples/amm/amm.algo.ts:117", "pc": [ - 585 + 639, + 640 ] }, { - "teal": 650, - "source": 117, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", + "teal": 648, + "source": "examples/amm/amm.algo.ts:117", "pc": [ - 586 + 641, + 642 ] }, { - "teal": 653, - "source": 115, + "teal": 649, + "source": "examples/amm/amm.algo.ts:117", "pc": [ - 587, - 588 + 643 ] }, { - "teal": 654, - "source": 118, + "teal": 652, + "source": "examples/amm/amm.algo.ts:117", + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", "pc": [ - 589, - 590 + 644 ] }, { "teal": 655, - "source": 118, + "source": "examples/amm/amm.algo.ts:115", "pc": [ - 591, - 592 + 645, + 646 ] }, { "teal": 656, - "source": 118, + "source": "examples/amm/amm.algo.ts:118", "pc": [ - 593 + 647, + 648 ] }, { - "teal": 659, - "source": 118, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", + "teal": 657, + "source": "examples/amm/amm.algo.ts:118", "pc": [ - 594 + 649, + 650 ] }, { - "teal": 662, - "source": 115, + "teal": 658, + "source": "examples/amm/amm.algo.ts:118", "pc": [ - 595, - 596 + 651 ] }, { - "teal": 663, - "source": 119, + "teal": 661, + "source": "examples/amm/amm.algo.ts:118", + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", "pc": [ - 597, - 598 + 652 ] }, { "teal": 664, - "source": 119, + "source": "examples/amm/amm.algo.ts:115", "pc": [ - 599, - 600 + 653, + 654 ] }, { "teal": 665, - "source": 119, + "source": "examples/amm/amm.algo.ts:119", "pc": [ - 601 + 655, + 656 ] }, { - "teal": 668, - "source": 119, - "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"xferAsset\",\"expected\":\"bAsset\"}", + "teal": 666, + "source": "examples/amm/amm.algo.ts:119", "pc": [ - 602 + 657, + 658 ] }, { - "teal": 674, - "source": 123, + "teal": 667, + "source": "examples/amm/amm.algo.ts:119", "pc": [ - 603, - 604 + 659 ] }, { - "teal": 675, - "source": 123, + "teal": 670, + "source": "examples/amm/amm.algo.ts:119", + "errorMessage": "transaction verification failed: {\"txn\":\"bXfer\",\"field\":\"xferAsset\",\"expected\":\"bAsset\"}", "pc": [ - 605, - 606 + 660 ] }, { "teal": 676, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 607, - 608 + 661, + 662 ] }, { "teal": 677, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 609 + 663, + 664 ] }, { "teal": 678, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 610, - 611 + 665, + 666 ] }, { "teal": 679, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 612, - 613 + 667 ] }, { "teal": 680, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 614 + 668, + 669 ] }, { "teal": 681, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 615 + 670, + 671 ] }, { "teal": 682, - "source": 123, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 616, - 617, - 618 + 672 ] }, { "teal": 683, - "source": 124, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 619, - 620 + 673 ] }, { "teal": 684, - "source": 124, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 621, - 622 + 674, + 675, + 676 ] }, { "teal": 685, - "source": 124, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 623, - 624 + 677, + 678 ] }, { "teal": 686, - "source": 124, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 625 + 679, + 680 ] }, { "teal": 687, - "source": 124, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 626, - 627 + 681, + 682 ] }, { "teal": 688, - "source": 124, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 628, - 629 + 683 ] }, { "teal": 689, - "source": 124, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 630 + 684, + 685 ] }, { "teal": 690, - "source": 123, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 631 + 686, + 687 ] }, { - "teal": 693, - "source": 122, + "teal": 691, + "source": "examples/amm/amm.algo.ts:124", "pc": [ - 632, - 633, - 634 + 688 ] }, { - "teal": 698, - "source": 126, + "teal": 692, + "source": "examples/amm/amm.algo.ts:123", "pc": [ - 635, - 636 + 689 ] }, { - "teal": 699, - "source": 126, + "teal": 695, + "source": "examples/amm/amm.algo.ts:122", "pc": [ - 637, - 638 + 690, + 691, + 692 ] }, { "teal": 700, - "source": 126, + "source": "examples/amm/amm.algo.ts:126", "pc": [ - 639, - 640 + 693, + 694 ] }, { "teal": 701, - "source": 126, + "source": "examples/amm/amm.algo.ts:126", "pc": [ - 641, - 642 + 695, + 696 ] }, { "teal": 702, - "source": 126, + "source": "examples/amm/amm.algo.ts:126", "pc": [ - 643, - 644, - 645 + 697, + 698 ] }, { "teal": 703, - "source": 122, + "source": "examples/amm/amm.algo.ts:126", "pc": [ - 646, - 647, - 648 + 699, + 700 ] }, { - "teal": 714, - "source": 133, + "teal": 704, + "source": "examples/amm/amm.algo.ts:126", "pc": [ - 649, - 650 + 701, + 702, + 703 ] }, { - "teal": 715, - "source": 133, + "teal": 705, + "source": "examples/amm/amm.algo.ts:122", "pc": [ - 651, - 652 + 704, + 705, + 706 ] }, { "teal": 716, - "source": 132, + "source": "examples/amm/amm.algo.ts:133", "pc": [ - 653, - 654 + 707, + 708 ] }, { "teal": 717, - "source": 132, + "source": "examples/amm/amm.algo.ts:133", "pc": [ - 655, - 656 + 709, + 710 ] }, { "teal": 718, - "source": 131, + "source": "examples/amm/amm.algo.ts:132", "pc": [ - 657, - 658 + 711, + 712 ] }, { "teal": 719, - "source": 131, + "source": "examples/amm/amm.algo.ts:132", "pc": [ - 659, - 660 + 713, + 714 ] }, { "teal": 720, - "source": 131, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 661, - 662 + 715, + 716 ] }, { "teal": 721, - "source": 131, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 663 + 717, + 718 ] }, { "teal": 722, - "source": 131, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 664, - 665 + 719, + 720 ] }, { "teal": 723, - "source": 131, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 666, - 667 + 721 ] }, { "teal": 724, - "source": 131, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 668 + 722, + 723 ] }, { "teal": 725, - "source": 130, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 669, - 670 + 724, + 725 ] }, { "teal": 726, - "source": 130, + "source": "examples/amm/amm.algo.ts:131", "pc": [ - 671, - 672 + 726 ] }, { "teal": 727, - "source": 130, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 673, - 674 + 727, + 728 ] }, { "teal": 728, - "source": 130, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 675 + 729, + 730 ] }, { "teal": 729, - "source": 130, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 676, - 677 + 731, + 732 ] }, { "teal": 730, - "source": 130, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 678, - 679 + 733 ] }, { "teal": 731, - "source": 130, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 680 + 734, + 735 ] }, { "teal": 732, - "source": 129, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 681, - 682 + 736, + 737 ] }, { "teal": 733, - "source": 129, + "source": "examples/amm/amm.algo.ts:130", "pc": [ - 683, - 684 + 738 ] }, { "teal": 734, - "source": 129, + "source": "examples/amm/amm.algo.ts:129", "pc": [ - 685, - 686 + 739, + 740, + 741, + 742, + 743, + 744 ] }, { "teal": 735, - "source": 129, + "source": "examples/amm/amm.algo.ts:129", "pc": [ - 687, - 688 + 745, + 746 ] }, { "teal": 736, - "source": 129, + "source": "examples/amm/amm.algo.ts:129", "pc": [ - 689 + 747, + 748 ] }, { "teal": 737, - "source": 129, + "source": "examples/amm/amm.algo.ts:129", "pc": [ - 690 + 749, + 750 ] }, { "teal": 738, - "source": 128, + "source": "examples/amm/amm.algo.ts:129", "pc": [ - 691, - 692, - 693 + 751 ] }, { "teal": 739, - "source": 128, + "source": "examples/amm/amm.algo.ts:129", "pc": [ - 694, - 695 + 752 ] }, { - "teal": 743, - "source": 136, + "teal": 740, + "source": "examples/amm/amm.algo.ts:128", "pc": [ - 696, - 697 + 753, + 754, + 755 ] }, { - "teal": 744, - "source": 136, + "teal": 741, + "source": "examples/amm/amm.algo.ts:128", "pc": [ - 698 + 756, + 757 ] }, { "teal": 745, - "source": 136, + "source": "examples/amm/amm.algo.ts:136", "pc": [ - 699 + 758, + 759 ] }, { "teal": 746, - "source": 136, + "source": "examples/amm/amm.algo.ts:136", "pc": [ - 700 + 760, + 761 ] }, { - "teal": 750, - "source": 138, + "teal": 747, + "source": "examples/amm/amm.algo.ts:136", "pc": [ - 701, - 702 + 762 ] }, { - "teal": 751, - "source": 138, + "teal": 748, + "source": "examples/amm/amm.algo.ts:136", "pc": [ - 703, - 704 + 763 ] }, { "teal": 752, - "source": 138, + "source": "examples/amm/amm.algo.ts:138", "pc": [ - 705, - 706 + 764, + 765 ] }, { "teal": 753, - "source": 138, + "source": "examples/amm/amm.algo.ts:138", "pc": [ - 707, - 708, - 709 + 766, + 767 ] }, { - "teal": 756, - "source": 100, + "teal": 754, + "source": "examples/amm/amm.algo.ts:138", "pc": [ - 710 + 768, + 769 ] }, { - "teal": 761, - "source": 142, + "teal": 755, + "source": "examples/amm/amm.algo.ts:138", "pc": [ - 711, - 712, - 713 + 770, + 771, + 772 ] }, { - "teal": 762, - "source": 142, + "teal": 758, + "source": "examples/amm/amm.algo.ts:100", "pc": [ - 714 + 773 ] }, { - "teal": 765, - "source": 142, + "teal": 763, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 715, - 716, - 717 + 774, + 775, + 776 ] }, { - "teal": 766, - "source": 142, + "teal": 764, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 718 + 777 ] }, { - "teal": 769, - "source": 142, + "teal": 767, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 719, - 720, - 721 + 778, + 779, + 780 ] }, { - "teal": 770, - "source": 142, + "teal": 768, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 722 + 781 ] }, { - "teal": 773, - "source": 142, + "teal": 771, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 723, - 724 + 782, + 783, + 784 ] }, { - "teal": 774, - "source": 142, + "teal": 772, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 725 + 785 ] }, { "teal": 775, - "source": 142, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 726 + 786, + 787 ] }, { "teal": 776, - "source": 142, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 727 + 788, + 789 ] }, { "teal": 777, - "source": 142, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 728, - 729 + 790 ] }, { "teal": 778, - "source": 142, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 730 + 791 ] }, { "teal": 779, - "source": 142, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 731 + 792, + 793 ] }, { - "teal": 782, - "source": 142, - "errorMessage": "argument 3 (poolXfer) for burn must be a axfer transaction", + "teal": 780, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 732 + 794, + 795 ] }, { - "teal": 785, - "source": 142, + "teal": 781, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 733, - 734, - 735 + 796 ] }, { - "teal": 786, - "source": 142, + "teal": 784, + "source": "examples/amm/amm.algo.ts:142", + "errorMessage": "argument 3 (poolXfer) for burn must be a axfer transaction", "pc": [ - 736 + 797 ] }, { "teal": 787, - "source": 142, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 737 + 798, + 799, + 800 ] }, { - "teal": 791, - "source": 142, + "teal": 788, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 738, - 739, - 740 + 801, + 802 ] }, { - "teal": 794, - "source": 142, + "teal": 789, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 741 + 803 ] }, { - "teal": 795, - "source": 142, + "teal": 793, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 742, - 743 + 804, + 805, + 806 ] }, { - "teal": 800, - "source": 144, + "teal": 796, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 744, - 745 + 807, + 808 ] }, { - "teal": 801, - "source": 144, + "teal": 797, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 746, - 747 + 809, + 810 ] }, { "teal": 802, - "source": 144, + "source": "examples/amm/amm.algo.ts:144", "pc": [ - 748 + 811, + 812 ] }, { "teal": 803, - "source": 144, + "source": "examples/amm/amm.algo.ts:144", "pc": [ - 749 + 813, + 814, + 815 ] }, { "teal": 804, - "source": 144, + "source": "examples/amm/amm.algo.ts:144", "pc": [ - 750 + 816 ] }, { - "teal": 808, - "source": 145, + "teal": 805, + "source": "examples/amm/amm.algo.ts:144", "pc": [ - 751, - 752 + 817 ] }, { - "teal": 809, - "source": 145, + "teal": 806, + "source": "examples/amm/amm.algo.ts:144", "pc": [ - 753 + 818 ] }, { "teal": 810, - "source": 145, + "source": "examples/amm/amm.algo.ts:145", "pc": [ - 754 + 819, + 820 ] }, { "teal": 811, - "source": 145, + "source": "examples/amm/amm.algo.ts:145", "pc": [ - 755 + 821, + 822, + 823 ] }, { "teal": 812, - "source": 145, + "source": "examples/amm/amm.algo.ts:145", "pc": [ - 756 + 824 ] }, { - "teal": 816, - "source": 146, + "teal": 813, + "source": "examples/amm/amm.algo.ts:145", "pc": [ - 757, - 758 + 825 ] }, { - "teal": 817, - "source": 146, + "teal": 814, + "source": "examples/amm/amm.algo.ts:145", "pc": [ - 759 + 826 ] }, { "teal": 818, - "source": 146, + "source": "examples/amm/amm.algo.ts:146", "pc": [ - 760 + 827, + 828 ] }, { "teal": 819, - "source": 146, + "source": "examples/amm/amm.algo.ts:146", "pc": [ - 761 + 829, + 830, + 831 ] }, { "teal": 820, - "source": 146, + "source": "examples/amm/amm.algo.ts:146", "pc": [ - 762 + 832 ] }, { - "teal": 831, - "source": 149, + "teal": 821, + "source": "examples/amm/amm.algo.ts:146", "pc": [ - 763, - 764 + 833 ] }, { - "teal": 832, - "source": 150, + "teal": 822, + "source": "examples/amm/amm.algo.ts:146", "pc": [ - 765, - 766 + 834 ] }, { "teal": 833, - "source": 150, + "source": "examples/amm/amm.algo.ts:149", "pc": [ - 767, - 768 + 835, + 836 ] }, { "teal": 834, - "source": 150, + "source": "examples/amm/amm.algo.ts:150", "pc": [ - 769 + 837, + 838 ] }, { - "teal": 837, - "source": 150, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", + "teal": 835, + "source": "examples/amm/amm.algo.ts:150", "pc": [ - 770 + 839, + 840 ] }, { - "teal": 840, - "source": 149, + "teal": 836, + "source": "examples/amm/amm.algo.ts:150", "pc": [ - 771, - 772 + 841 ] }, { - "teal": 841, - "source": 151, + "teal": 839, + "source": "examples/amm/amm.algo.ts:150", + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", "pc": [ - 773, - 774 + 842 ] }, { "teal": 842, - "source": 151, + "source": "examples/amm/amm.algo.ts:149", "pc": [ - 775 + 843, + 844 ] }, { "teal": 843, - "source": 151, + "source": "examples/amm/amm.algo.ts:151", "pc": [ - 776 + 845, + 846 ] }, { - "teal": 846, - "source": 151, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", + "teal": 844, + "source": "examples/amm/amm.algo.ts:151", "pc": [ - 777 + 847, + 848 ] }, { - "teal": 849, - "source": 149, + "teal": 845, + "source": "examples/amm/amm.algo.ts:151", "pc": [ - 778, - 779 + 849 ] }, { - "teal": 850, - "source": 152, + "teal": 848, + "source": "examples/amm/amm.algo.ts:151", + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", "pc": [ - 780, - 781 + 850 ] }, { "teal": 851, - "source": 152, + "source": "examples/amm/amm.algo.ts:149", "pc": [ - 782, - 783 + 851, + 852 ] }, { "teal": 852, - "source": 152, + "source": "examples/amm/amm.algo.ts:152", "pc": [ - 784 + 853, + 854 ] }, { - "teal": 855, - "source": 152, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", + "teal": 853, + "source": "examples/amm/amm.algo.ts:152", "pc": [ - 785 + 855, + 856 ] }, { - "teal": 858, - "source": 149, + "teal": 854, + "source": "examples/amm/amm.algo.ts:152", "pc": [ - 786, - 787 + 857 ] }, { - "teal": 859, - "source": 153, + "teal": 857, + "source": "examples/amm/amm.algo.ts:152", + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", "pc": [ - 788, - 789 + 858 ] }, { "teal": 860, - "source": 153, + "source": "examples/amm/amm.algo.ts:149", "pc": [ - 790, - 791 + 859, + 860 ] }, { "teal": 861, - "source": 153, + "source": "examples/amm/amm.algo.ts:153", "pc": [ - 792 + 861, + 862 ] }, { - "teal": 864, - "source": 153, - "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"xferAsset\",\"expected\":\"poolAsset\"}", + "teal": 862, + "source": "examples/amm/amm.algo.ts:153", "pc": [ - 793 + 863, + 864 ] }, { - "teal": 868, - "source": 156, + "teal": 863, + "source": "examples/amm/amm.algo.ts:153", "pc": [ - 794, - 795 + 865 ] }, { - "teal": 869, - "source": 156, + "teal": 866, + "source": "examples/amm/amm.algo.ts:153", + "errorMessage": "transaction verification failed: {\"txn\":\"poolXfer\",\"field\":\"xferAsset\",\"expected\":\"poolAsset\"}", "pc": [ - 796, - 797 + 866 ] }, { "teal": 870, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 798, - 799 + 867, + 868, + 869, + 870, + 871, + 872 ] }, { "teal": 871, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 800, - 801 + 873, + 874 ] }, { "teal": 872, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 802 + 875, + 876 ] }, { "teal": 873, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 803, - 804 + 877, + 878 ] }, { "teal": 874, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 805, - 806 + 879 ] }, { "teal": 875, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 807 + 880, + 881 ] }, { "teal": 876, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 808 + 882, + 883 ] }, { "teal": 877, - "source": 156, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 809, - 810 + 884 ] }, { - "teal": 881, - "source": 158, + "teal": 878, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 811, - 812 + 885 ] }, { - "teal": 882, - "source": 158, + "teal": 879, + "source": "examples/amm/amm.algo.ts:156", "pc": [ - 813, - 814 + 886, + 887 ] }, { "teal": 883, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 815, - 816 + 888, + 889 ] }, { "teal": 884, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 817, - 818 + 890, + 891 ] }, { "teal": 885, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 819, - 820 + 892, + 893 ] }, { "teal": 886, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 821 + 894, + 895 ] }, { "teal": 887, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 822, - 823 + 896, + 897 ] }, { "teal": 888, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 824, - 825, - 826 + 898 ] }, { "teal": 889, - "source": 158, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 827, - 828 + 899, + 900 ] }, { - "teal": 893, - "source": 160, + "teal": 890, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 829, - 830 + 901, + 902, + 903 ] }, { - "teal": 894, - "source": 160, + "teal": 891, + "source": "examples/amm/amm.algo.ts:158", "pc": [ - 831, - 832 + 904, + 905 ] }, { "teal": 895, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 833, - 834 + 906, + 907 ] }, { "teal": 896, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 835, - 836 + 908, + 909 ] }, { "teal": 897, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 837, - 838 + 910, + 911 ] }, { "teal": 898, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 839 + 912, + 913 ] }, { "teal": 899, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 840, - 841 + 914, + 915 ] }, { "teal": 900, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 842, - 843, - 844 + 916 ] }, { "teal": 901, - "source": 160, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 845, - 846 + 917, + 918 ] }, { - "teal": 905, - "source": 162, + "teal": 902, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 847, - 848 + 919, + 920, + 921 ] }, { - "teal": 906, - "source": 162, + "teal": 903, + "source": "examples/amm/amm.algo.ts:160", "pc": [ - 849, - 850 + 922, + 923 ] }, { "teal": 907, - "source": 162, + "source": "examples/amm/amm.algo.ts:162", "pc": [ - 851, - 852 + 924, + 925 ] }, { "teal": 908, - "source": 162, + "source": "examples/amm/amm.algo.ts:162", "pc": [ - 853, - 854, - 855 + 926, + 927 ] }, { - "teal": 912, - "source": 163, + "teal": 909, + "source": "examples/amm/amm.algo.ts:162", "pc": [ - 856, - 857 + 928, + 929 ] }, { - "teal": 913, - "source": 163, + "teal": 910, + "source": "examples/amm/amm.algo.ts:162", "pc": [ - 858, - 859 + 930, + 931, + 932 ] }, { "teal": 914, - "source": 163, + "source": "examples/amm/amm.algo.ts:163", "pc": [ - 860, - 861 + 933, + 934 ] }, { "teal": 915, - "source": 163, + "source": "examples/amm/amm.algo.ts:163", "pc": [ - 862, - 863, - 864 + 935, + 936 ] }, { - "teal": 919, - "source": 165, + "teal": 916, + "source": "examples/amm/amm.algo.ts:163", "pc": [ - 865, - 866 + 937, + 938 ] }, { - "teal": 920, - "source": 165, + "teal": 917, + "source": "examples/amm/amm.algo.ts:163", "pc": [ - 867, - 868, - 869 + 939, + 940, + 941 ] }, { "teal": 921, - "source": 165, + "source": "examples/amm/amm.algo.ts:165", "pc": [ - 870 + 942, + 943, + 944 ] }, { "teal": 922, - "source": 142, + "source": "examples/amm/amm.algo.ts:165", "pc": [ - 871 + 945, + 946, + 947 ] }, { - "teal": 927, - "source": 168, + "teal": 923, + "source": "examples/amm/amm.algo.ts:165", "pc": [ - 872, - 873, - 874 + 948 ] }, { - "teal": 928, - "source": 168, + "teal": 924, + "source": "examples/amm/amm.algo.ts:142", "pc": [ - 875 + 949 ] }, { - "teal": 931, - "source": 168, + "teal": 929, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 876, - 877, - 878 + 950, + 951, + 952 ] }, { - "teal": 932, - "source": 168, + "teal": 930, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 879 + 953 ] }, { - "teal": 935, - "source": 168, + "teal": 933, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 880, - 881 + 954, + 955, + 956 ] }, { - "teal": 936, - "source": 168, + "teal": 934, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 882 + 957 ] }, { "teal": 937, - "source": 168, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 883 + 958, + 959 ] }, { "teal": 938, - "source": 168, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 884 + 960, + 961 ] }, { "teal": 939, - "source": 168, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 885, - 886 + 962 ] }, { "teal": 940, - "source": 168, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 887 + 963 ] }, { "teal": 941, - "source": 168, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 888 + 964, + 965 ] }, { - "teal": 944, - "source": 168, - "errorMessage": "argument 2 (swapXfer) for swap must be a axfer transaction", + "teal": 942, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 889 + 966, + 967 ] }, { - "teal": 947, - "source": 168, + "teal": 943, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 890, - 891, - 892 + 968 ] }, { - "teal": 948, - "source": 168, + "teal": 946, + "source": "examples/amm/amm.algo.ts:168", + "errorMessage": "argument 2 (swapXfer) for swap must be a axfer transaction", "pc": [ - 893 + 969 ] }, { "teal": 949, - "source": 168, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 894 + 970, + 971, + 972 ] }, { - "teal": 953, - "source": 168, + "teal": 950, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 895, - 896, - 897 + 973, + 974 ] }, { - "teal": 956, - "source": 168, + "teal": 951, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 898 + 975 ] }, { - "teal": 957, - "source": 168, + "teal": 955, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 899, - 900 + 976, + 977, + 978 ] }, { - "teal": 962, - "source": 170, + "teal": 958, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 901, - 902 + 979, + 980 ] }, { - "teal": 963, - "source": 170, + "teal": 959, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 903 + 981, + 982 ] }, { "teal": 964, - "source": 170, + "source": "examples/amm/amm.algo.ts:170", "pc": [ - 904 + 983, + 984 ] }, { "teal": 965, - "source": 170, + "source": "examples/amm/amm.algo.ts:170", "pc": [ - 905 + 985, + 986, + 987 ] }, { "teal": 966, - "source": 170, + "source": "examples/amm/amm.algo.ts:170", "pc": [ - 906 + 988 ] }, { - "teal": 970, - "source": 171, + "teal": 967, + "source": "examples/amm/amm.algo.ts:170", "pc": [ - 907, - 908 + 989 ] }, { - "teal": 971, - "source": 171, + "teal": 968, + "source": "examples/amm/amm.algo.ts:170", "pc": [ - 909 + 990 ] }, { "teal": 972, - "source": 171, + "source": "examples/amm/amm.algo.ts:171", "pc": [ - 910 + 991, + 992 ] }, { "teal": 973, - "source": 171, + "source": "examples/amm/amm.algo.ts:171", "pc": [ - 911 + 993, + 994, + 995 ] }, { "teal": 974, - "source": 171, + "source": "examples/amm/amm.algo.ts:171", "pc": [ - 912 + 996 ] }, { - "teal": 984, - "source": 173, + "teal": 975, + "source": "examples/amm/amm.algo.ts:171", "pc": [ - 913, - 914 + 997 ] }, { - "teal": 985, - "source": 174, + "teal": 976, + "source": "examples/amm/amm.algo.ts:171", "pc": [ - 915, - 916 + 998 ] }, { "teal": 986, - "source": 174, + "source": "examples/amm/amm.algo.ts:173", "pc": [ - 917 + 999, + 1000 ] }, { "teal": 987, - "source": 174, + "source": "examples/amm/amm.algo.ts:174", "pc": [ - 918 + 1001, + 1002 ] }, { - "teal": 990, - "source": 174, - "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", + "teal": 988, + "source": "examples/amm/amm.algo.ts:174", "pc": [ - 919 + 1003, + 1004 ] }, { - "teal": 993, - "source": 173, + "teal": 989, + "source": "examples/amm/amm.algo.ts:174", "pc": [ - 920, - 921 + 1005 ] }, { - "teal": 994, - "source": 175, + "teal": 992, + "source": "examples/amm/amm.algo.ts:174", + "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetAmount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", "pc": [ - 922, - 923 + 1006 ] }, { "teal": 995, - "source": 175, + "source": "examples/amm/amm.algo.ts:173", "pc": [ - 924, - 925 + 1007, + 1008 ] }, { "teal": 996, - "source": 175, + "source": "examples/amm/amm.algo.ts:175", "pc": [ - 926 + 1009, + 1010 ] }, { - "teal": 999, - "source": 175, - "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", + "teal": 997, + "source": "examples/amm/amm.algo.ts:175", "pc": [ - 927 + 1011, + 1012 ] }, { - "teal": 1002, - "source": 173, + "teal": 998, + "source": "examples/amm/amm.algo.ts:175", "pc": [ - 928, - 929 + 1013 ] }, { - "teal": 1003, - "source": 176, + "teal": 1001, + "source": "examples/amm/amm.algo.ts:175", + "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", "pc": [ - 930, - 931 + 1014 ] }, { "teal": 1004, - "source": 176, + "source": "examples/amm/amm.algo.ts:173", "pc": [ - 932, - 933 + 1015, + 1016 ] }, { "teal": 1005, - "source": 176, + "source": "examples/amm/amm.algo.ts:176", "pc": [ - 934 + 1017, + 1018 ] }, { - "teal": 1008, - "source": 176, - "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", + "teal": 1006, + "source": "examples/amm/amm.algo.ts:176", "pc": [ - 935 + 1019, + 1020 ] }, { - "teal": 1011, - "source": 173, + "teal": 1007, + "source": "examples/amm/amm.algo.ts:176", "pc": [ - 936, - 937 + 1021 ] }, { - "teal": 1012, - "source": 177, + "teal": 1010, + "source": "examples/amm/amm.algo.ts:176", + "errorMessage": "transaction verification failed: {\"txn\":\"swapXfer\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", "pc": [ - 938, - 939 + 1022 ] }, { "teal": 1013, - "source": 177, + "source": "examples/amm/amm.algo.ts:173", "pc": [ - 940, - 941 + 1023, + 1024 ] }, { "teal": 1014, - "source": 177, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 942 + 1025, + 1026 ] }, { "teal": 1015, - "source": 173, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 943, - 944 + 1027, + 1028 ] }, { "teal": 1016, - "source": 177, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 945, - 946 + 1029 ] }, { "teal": 1017, - "source": 177, + "source": "examples/amm/amm.algo.ts:173", "pc": [ - 947, - 948 + 1030, + 1031 ] }, { "teal": 1018, - "source": 177, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 949 + 1032, + 1033 ] }, { "teal": 1019, - "source": 177, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 950 + 1034, + 1035 ] }, { - "teal": 1022, - "source": 177, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"swapXfer\"},\"field\":\"xferAsset\",\"condition\":\"includedIn\",\"expected\":\"[aAsset, bAsset]\"}", + "teal": 1020, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 951 + 1036 ] }, { - "teal": 1026, - "source": 180, + "teal": 1021, + "source": "examples/amm/amm.algo.ts:177", "pc": [ - 952, - 953 + 1037 ] }, { - "teal": 1027, - "source": 180, + "teal": 1024, + "source": "examples/amm/amm.algo.ts:177", + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"swapXfer\"},\"field\":\"xferAsset\",\"condition\":\"includedIn\",\"expected\":\"[aAsset, bAsset]\"}", "pc": [ - 954, - 955 + 1038 ] }, { "teal": 1028, - "source": 180, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 956, - 957 + 1039, + 1040 ] }, { "teal": 1029, - "source": 180, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 958 + 1041, + 1042 ] }, { "teal": 1030, - "source": 180, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 959, - 960, - 961 + 1043, + 1044 ] }, { "teal": 1031, - "source": 180, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 962, - 963 + 1045 ] }, { "teal": 1032, - "source": 180, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 964, - 965, - 966 + 1046, + 1047, + 1048 ] }, { - "teal": 1035, - "source": 180, + "teal": 1033, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 967, - 968 + 1049, + 1050 ] }, { - "teal": 1038, - "source": 180, + "teal": 1034, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 969, - 970 + 1051, + 1052, + 1053 ] }, { - "teal": 1042, - "source": 182, + "teal": 1037, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 971, - 972 + 1054, + 1055 ] }, { - "teal": 1043, - "source": 182, + "teal": 1040, + "source": "examples/amm/amm.algo.ts:180", "pc": [ - 973, - 974 + 1056, + 1057 ] }, { "teal": 1044, - "source": 182, + "source": "examples/amm/amm.algo.ts:182", "pc": [ - 975, - 976 + 1058, + 1059 ] }, { - "teal": 1052, - "source": 187, + "teal": 1045, + "source": "examples/amm/amm.algo.ts:182", "pc": [ - 977, - 978 + 1060, + 1061 ] }, { - "teal": 1053, - "source": 187, + "teal": 1046, + "source": "examples/amm/amm.algo.ts:182", "pc": [ - 979, - 980 + 1062, + 1063 ] }, { "teal": 1054, - "source": 187, + "source": "examples/amm/amm.algo.ts:187", "pc": [ - 981, - 982 + 1064, + 1065 ] }, { "teal": 1055, - "source": 187, + "source": "examples/amm/amm.algo.ts:187", "pc": [ - 983 + 1066, + 1067 ] }, { "teal": 1056, - "source": 186, + "source": "examples/amm/amm.algo.ts:187", "pc": [ - 984, - 985 + 1068, + 1069 ] }, { "teal": 1057, - "source": 186, + "source": "examples/amm/amm.algo.ts:187", "pc": [ - 986, - 987 + 1070 ] }, { "teal": 1058, - "source": 186, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 988, - 989 + 1071, + 1072 ] }, { "teal": 1059, - "source": 186, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 990 + 1073, + 1074 ] }, { "teal": 1060, - "source": 186, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 991, - 992 + 1075, + 1076 ] }, { "teal": 1061, - "source": 186, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 993, - 994 + 1077 ] }, { "teal": 1062, - "source": 186, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 995 + 1078, + 1079 ] }, { "teal": 1063, - "source": 185, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 996, - 997 + 1080, + 1081 ] }, { "teal": 1064, - "source": 185, + "source": "examples/amm/amm.algo.ts:186", "pc": [ - 998, - 999 + 1082 ] }, { "teal": 1065, - "source": 184, + "source": "examples/amm/amm.algo.ts:185", "pc": [ - 1000, - 1001, - 1002 + 1083, + 1084 ] }, { "teal": 1066, - "source": 184, + "source": "examples/amm/amm.algo.ts:185", "pc": [ - 1003, - 1004 + 1085, + 1086 ] }, { - "teal": 1070, - "source": 190, + "teal": 1067, + "source": "examples/amm/amm.algo.ts:184", "pc": [ - 1005, - 1006 + 1087, + 1088, + 1089 ] }, { - "teal": 1071, - "source": 190, + "teal": 1068, + "source": "examples/amm/amm.algo.ts:184", "pc": [ - 1007 + 1090, + 1091 ] }, { "teal": 1072, - "source": 190, + "source": "examples/amm/amm.algo.ts:190", "pc": [ - 1008 + 1092, + 1093 ] }, { "teal": 1073, - "source": 190, + "source": "examples/amm/amm.algo.ts:190", "pc": [ - 1009 + 1094, + 1095 ] }, { - "teal": 1077, - "source": 192, + "teal": 1074, + "source": "examples/amm/amm.algo.ts:190", "pc": [ - 1010, - 1011 + 1096 ] }, { - "teal": 1078, - "source": 192, + "teal": 1075, + "source": "examples/amm/amm.algo.ts:190", "pc": [ - 1012, - 1013 + 1097 ] }, { "teal": 1079, - "source": 192, + "source": "examples/amm/amm.algo.ts:192", "pc": [ - 1014, - 1015 + 1098, + 1099 ] }, { "teal": 1080, - "source": 192, + "source": "examples/amm/amm.algo.ts:192", "pc": [ - 1016, - 1017, - 1018 + 1100, + 1101 ] }, { - "teal": 1084, - "source": 194, + "teal": 1081, + "source": "examples/amm/amm.algo.ts:192", "pc": [ - 1019, - 1020 + 1102, + 1103 ] }, { - "teal": 1085, - "source": 194, + "teal": 1082, + "source": "examples/amm/amm.algo.ts:192", "pc": [ - 1021, - 1022, - 1023 + 1104, + 1105, + 1106 ] }, { "teal": 1086, - "source": 194, + "source": "examples/amm/amm.algo.ts:194", "pc": [ - 1024 + 1107, + 1108, + 1109 ] }, { "teal": 1087, - "source": 168, + "source": "examples/amm/amm.algo.ts:194", "pc": [ - 1025 + 1110, + 1111, + 1112 ] }, { - "teal": 1090, - "source": 8, + "teal": 1088, + "source": "examples/amm/amm.algo.ts:194", "pc": [ - 1026, - 1027, - 1028, - 1029, - 1030, - 1031 + 1113 ] }, { - "teal": 1091, - "source": 8, + "teal": 1089, + "source": "examples/amm/amm.algo.ts:168", "pc": [ - 1032, - 1033, - 1034 + 1114 ] }, { "teal": 1092, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1035, - 1036, - 1037, - 1038 + 1115, + 1116, + 1117, + 1118, + 1119, + 1120 ] }, { - "teal": 1095, - "source": 8, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 1093, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1039 + 1121, + 1122, + 1123 ] }, { - "teal": 1098, - "source": 8, + "teal": 1094, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1040, - 1041, - 1042, - 1043, - 1044, - 1045 + 1124, + 1125, + 1126, + 1127 ] }, { - "teal": 1099, - "source": 8, + "teal": 1097, + "source": "examples/amm/amm.algo.ts:8", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 1046, - 1047, - 1048, - 1049, - 1050, - 1051 + 1128 ] }, { "teal": 1100, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 + 1129, + 1130, + 1131, + 1132, + 1133, + 1134 ] }, { "teal": 1101, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1058, - 1059, - 1060, - 1061, - 1062, - 1063 + 1135, + 1136, + 1137, + 1138, + 1139, + 1140 ] }, { "teal": 1102, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1064, - 1065, - 1066, - 1067, - 1068, - 1069 + 1141, + 1142, + 1143, + 1144, + 1145, + 1146 ] }, { "teal": 1103, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1070, - 1071, - 1072 + 1147, + 1148, + 1149, + 1150, + 1151, + 1152 ] }, { "teal": 1104, - "source": 8, + "source": "examples/amm/amm.algo.ts:8", "pc": [ - 1073, - 1074, - 1075, - 1076, - 1077, - 1078, - 1079, - 1080, - 1081, - 1082, - 1083, - 1084 + 1153, + 1154, + 1155, + 1156, + 1157, + 1158 + ] + }, + { + "teal": 1105, + "source": "examples/amm/amm.algo.ts:8", + "pc": [ + 1159, + 1160, + 1161 + ] + }, + { + "teal": 1106, + "source": "examples/amm/amm.algo.ts:8", + "pc": [ + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173 ] }, { - "teal": 1107, - "source": 8, + "teal": 1109, + "source": "examples/amm/amm.algo.ts:8", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 1085 + 1174 ] } ] \ No newline at end of file diff --git a/examples/arc58/artifacts/AbstractedAccount.approval.teal b/examples/arc58/artifacts/AbstractedAccount.approval.teal index b83b1a385..d1fb6e38a 100644 --- a/examples/arc58/artifacts/AbstractedAccount.approval.teal +++ b/examples/arc58/artifacts/AbstractedAccount.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 0 32 +bytecblock 0x70 0x61 0x63 0x0000000000000000 0x 0x0f885493 0x6e 0x00 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -91,7 +93,7 @@ verifyRekeyToAbstractedAccount: // txn.applicationArgs[0] === method('arc58_verifyAuthAddr()void') frame_dig 2 // txn: txn gtxns TypeEnum - int appl + pushint 6 // appl == dup bz *skip_and1 @@ -115,7 +117,7 @@ verifyRekeyToAbstractedAccount: bz *skip_and3 frame_dig 2 // txn: txn gtxns ApplicationArgs 0 - method "arc58_verifyAuthAddr()void" + byte 0x0f885493 // method "arc58_verifyAuthAddr()void" == && @@ -396,7 +398,7 @@ arc58_pluginChangeAdmin: assert store 255 // full array load 255 // full array - int 192 + pushint 192 getbit && @@ -414,7 +416,7 @@ arc58_pluginChangeAdmin: // arc58_getAdmin()address *abi_route_arc58_getAdmin: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arc58_getAdmin()address callsub arc58_getAdmin @@ -517,7 +519,7 @@ arc58_rekeyTo: // note: 'rekeying abstracted account', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/arc58/arc58.algo.ts:153 @@ -538,7 +540,7 @@ arc58_rekeyTo: // examples/arc58/arc58.algo.ts:156 // note: 'rekeying abstracted account' - byte 0x72656b6579696e672061627374726163746564206163636f756e74 // "rekeying abstracted account" + pushbytes 0x72656b6579696e672061627374726163746564206163636f756e74 // "rekeying abstracted account" itxn_field Note // Fee field not set, defaulting to 0 @@ -696,7 +698,7 @@ arc58_rekeyToPlugin: // note: 'rekeying to plugin app', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/arc58/arc58.algo.ts:184 @@ -720,7 +722,7 @@ arc58_rekeyToPlugin: // examples/arc58/arc58.algo.ts:187 // note: 'rekeying to plugin app' - byte 0x72656b6579696e6720746f20706c7567696e20617070 // "rekeying to plugin app" + pushbytes 0x72656b6579696e6720746f20706c7567696e20617070 // "rekeying to plugin app" itxn_field Note // Fee field not set, defaulting to 0 @@ -755,7 +757,7 @@ arc58_rekeyToPlugin: assert store 255 // full array load 255 // full array - int 16 + pushint 16 global Round itob byte 0x70 // "p" @@ -802,7 +804,7 @@ arc58_rekeyToNamedPlugin: // examples/arc58/arc58.algo.ts:204 // this.arc58_rekeyToPlugin(this.namedPlugins(name).value.application) int 0 - int 8 + pushint 8 byte 0x6e // "n" frame_dig -1 // name: string concat @@ -1157,7 +1159,7 @@ arc58_removeNamedPlugin: retsub *create_NoOp: - method "createApplication(address,address)void" + pushbytes 0xb4c77d71 // method "createApplication(address,address)void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -1165,17 +1167,17 @@ arc58_removeNamedPlugin: err *call_NoOp: - method "arc58_changeAdmin(address)void" - method "arc58_pluginChangeAdmin(uint64,address,address)void" - method "arc58_getAdmin()address" - method "arc58_verifyAuthAddr()void" - method "arc58_rekeyTo(address,bool)void" - method "arc58_rekeyToPlugin(uint64)void" - method "arc58_rekeyToNamedPlugin(string)void" - method "arc58_addPlugin(uint64,address,uint64,uint64,bool)void" - method "arc58_removePlugin(uint64,address)void" - method "arc58_addNamedPlugin(string,uint64,address,uint64,uint64,bool)void" - method "arc58_removeNamedPlugin(string)void" + pushbytes 0xd24b7556 // method "arc58_changeAdmin(address)void" + pushbytes 0x5fa449c6 // method "arc58_pluginChangeAdmin(uint64,address,address)void" + pushbytes 0x13bc44e4 // method "arc58_getAdmin()address" + byte 0x0f885493 // method "arc58_verifyAuthAddr()void" + pushbytes 0xc95a5d3d // method "arc58_rekeyTo(address,bool)void" + pushbytes 0x7c766ddc // method "arc58_rekeyToPlugin(uint64)void" + pushbytes 0x56f28b58 // method "arc58_rekeyToNamedPlugin(string)void" + pushbytes 0xd12dcb61 // method "arc58_addPlugin(uint64,address,uint64,uint64,bool)void" + pushbytes 0x4d372355 // method "arc58_removePlugin(uint64,address)void" + pushbytes 0x8a72a750 // method "arc58_addNamedPlugin(string,uint64,address,uint64,uint64,bool)void" + pushbytes 0xe350b9d4 // method "arc58_removeNamedPlugin(string)void" txna ApplicationArgs 0 match *abi_route_arc58_changeAdmin *abi_route_arc58_pluginChangeAdmin *abi_route_arc58_getAdmin *abi_route_arc58_verifyAuthAddr *abi_route_arc58_rekeyTo *abi_route_arc58_rekeyToPlugin *abi_route_arc58_rekeyToNamedPlugin *abi_route_arc58_addPlugin *abi_route_arc58_removePlugin *abi_route_arc58_addNamedPlugin *abi_route_arc58_removeNamedPlugin diff --git a/examples/arc58/artifacts/AbstractedAccount.arc32.json b/examples/arc58/artifacts/AbstractedAccount.arc32.json index 15d64621a..c1e84f205 100644 --- a/examples/arc58/artifacts/AbstractedAccount.arc32.json +++ b/examples/arc58/artifacts/AbstractedAccount.arc32.json @@ -98,7 +98,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKTogdm9pZAovLwovLyBFbnN1cmUgdGhhdCBieSB0aGUgZW5kIG9mIHRoZSBncm91cCB0aGUgYWJzdHJhY3RlZCBhY2NvdW50IGhhcyBjb250cm9sIG9mIGl0cyBhZGRyZXNzCnZlcmlmeVJla2V5VG9BYnN0cmFjdGVkQWNjb3VudDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjQ1CgkvLyByZWtleWVkQmFjayA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHJla2V5ZWRCYWNrOiBib29sCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0NwoJLy8gZm9yIChsZXQgaSA9IHRoaXMudHhuLmdyb3VwSW5kZXg7IGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aDsgaSArPSAxKQoJdHhuIEdyb3VwSW5kZXgKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NDcKCS8vIGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglnbG9iYWwgR3JvdXBTaXplCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0OAoJLy8gdHhuID0gdGhpcy50eG5Hcm91cFtpXQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gdHhuOiB0eG4KCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo1MQoJLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJiB0eG4ucmVrZXlUbyA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFNlbmRlcgoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBSZWtleVRvCglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NTIKCS8vIHJla2V5ZWRCYWNrID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyByZWtleWVkQmFjazogYm9vbAoJYiAqZm9yXzBfZW5kCgoqaWYwX2VuZDoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjU4CgkvLyB0eG4udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwgJiYKCS8vICAgICAgICAgdHhuLmFwcGxpY2F0aW9uSUQgPT09IHRoaXMuYXBwICYmCgkvLyAgICAgICAgIHR4bi5udW1BcHBBcmdzID09PSAxICYmCgkvLyAgICAgICAgIHR4bi5hcHBsaWNhdGlvbkFyZ3NbMF0gPT09IG1ldGhvZCgnYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQnKQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIEFwcGxpY2F0aW9uSUQKCXR4bmEgQXBwbGljYXRpb25zIDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWR1cAoJYnogKnNraXBfYW5kMgoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIE51bUFwcEFyZ3MKCWludCAxCgk9PQoJJiYKCipza2lwX2FuZDI6CglkdXAKCWJ6ICpza2lwX2FuZDMKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJbWV0aG9kICJhcmM1OF92ZXJpZnlBdXRoQWRkcigpdm9pZCIKCT09CgkmJgoKKnNraXBfYW5kMzoKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjYzCgkvLyByZWtleWVkQmFjayA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gcmVrZXllZEJhY2s6IGJvb2wKCWIgKmZvcl8wX2VuZAoKKmlmMV9lbmQ6CgoqZm9yXzBfY29udGludWU6CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjQ3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo2OAoJLy8gYXNzZXJ0KHJla2V5ZWRCYWNrKQoJZnJhbWVfZGlnIDAgLy8gcmVrZXllZEJhY2s6IGJvb2wKCWFzc2VydAoJcmV0c3ViCgovLyBnZXRBdXRoQWRkcigpOiBBZGRyZXNzCi8vCi8vIFdoYXQgdGhlIHZhbHVlIG9mIHRoaXMuYWRkcmVzcy52YWx1ZS5hdXRoQWRkciBzaG91bGQgYmUgd2hlbiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzCi8vIGlzIGFibGUgdG8gYmUgY29udHJvbGxlZCBieSB0aGlzIGFwcC4gSXQgd2lsbCBlaXRoZXIgYmUgdGhpcy5hcHAuYWRkcmVzcyBvciB6ZXJvQWRkcmVzcwpnZXRBdXRoQWRkcjoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NzYKCS8vIHJldHVybiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSB0aGlzLmFwcC5hZGRyZXNzID8gQWRkcmVzcy56ZXJvQWRkcmVzcyA6IHRoaXMuYXBwLmFkZHJlc3M7CglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CglieiAqdGVybmFyeTBfZmFsc2UKCWdsb2JhbCBaZXJvQWRkcmVzcwoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoKKnRlcm5hcnkwX2VuZDoKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oYWRkcmVzcyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGFkbWluOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkbWluKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGNvbnRyb2xsZWRBZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGNvbnRyb2xsZWRBZGRyZXNzKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oYWRkcmVzcyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzLCBhZG1pbjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ3JlYXRlIGFuIGFic3RyYWN0ZWQgYWNjb3VudCBhcHBsaWNhdGlvbi4KLy8gVGhpcyBpcyBub3QgcGFydCBvZiBBUkM1OCBhbmQgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMuCi8vCi8vIEBwYXJhbSBjb250cm9sbGVkQWRkcmVzcyBUaGUgYWRkcmVzcyBvZiB0aGUgYWJzdHJhY3RlZCBhY2NvdW50LiBJZiB6ZXJvQWRkcmVzcywgdGhlbiB0aGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgYWNjb3VudCB3aWxsIGJlIHVzZWQKLy8gQHBhcmFtIGFkbWluIFRoZSBhZG1pbiBmb3IgdGhpcyBhcHAKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjg3CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgaW5jbHVkZWRJbjogW2NvbnRyb2xsZWRBZGRyZXNzLCBhZG1pbl0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzCgk9PQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIGFkbWluOiBBZGRyZXNzCgk9PQoJfHwKCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0IjoidGhpcy50eG4ifSwiZmllbGQiOiJzZW5kZXIiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbY29udHJvbGxlZEFkZHJlc3MsIGFkbWluXSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjkxCgkvLyBhc3NlcnQoYWRtaW4gIT09IGNvbnRyb2xsZWRBZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkbWluOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gY29udHJvbGxlZEFkZHJlc3M6IEFkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjkzCgkvLyB0aGlzLmFkbWluLnZhbHVlID0gYWRtaW4KCWJ5dGUgMHg2MSAvLyAiYSIKCWZyYW1lX2RpZyAtMiAvLyBhZG1pbjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjk0CgkvLyB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID0gY29udHJvbGxlZEFkZHJlc3MgPT09IEFkZHJlc3MuemVyb0FkZHJlc3MgPyB0aGlzLmFwcC5hZGRyZXNzIDogY29udHJvbGxlZEFkZHJlc3MKCWJ5dGUgMHg2MyAvLyAiYyIKCWZyYW1lX2RpZyAtMSAvLyBjb250cm9sbGVkQWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJYnogKnRlcm5hcnkxX2ZhbHNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglmcmFtZV9kaWcgLTEgLy8gY29udHJvbGxlZEFkZHJlc3M6IEFkZHJlc3MKCip0ZXJuYXJ5MV9lbmQ6CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9jaGFuZ2VBZG1pbjoKCS8vIG5ld0FkbWluOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKG5ld0FkbWluKSBmb3IgYXJjNThfY2hhbmdlQWRtaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNThfY2hhbmdlQWRtaW4oYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFyYzU4X2NoYW5nZUFkbWluCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQXR0ZW1wdCB0byBjaGFuZ2UgdGhlIGFkbWluIGZvciB0aGlzIGFwcC4gU29tZSBpbXBsZW1lbnRhdGlvbnMgTUFZIG5vdCBzdXBwb3J0IHRoaXMuCi8vCi8vIEBwYXJhbSBuZXdBZG1pbiBUaGUgbmV3IGFkbWluCmFyYzU4X2NoYW5nZUFkbWluOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMDMKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuYWRtaW4udmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hZG1pbi52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjEwNAoJLy8gdGhpcy5hZG1pbi52YWx1ZSA9IG5ld0FkbWluCglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTEgLy8gbmV3QWRtaW46IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3BsdWdpbkNoYW5nZUFkbWluOgoJLy8gbmV3QWRtaW46IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAobmV3QWRtaW4pIGZvciBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYWxsb3dlZENhbGxlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhbGxvd2VkQ2FsbGVyKSBmb3IgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHBsdWdpbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbih1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKHBsdWdpbjogQXBwSUQsIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MsIG5ld0FkbWluOiBBZGRyZXNzKTogdm9pZAovLwovLyBBdHRlbXB0IHRvIGNoYW5nZSB0aGUgYWRtaW4gdmlhIHBsdWdpbi4KLy8KLy8gQHBhcmFtIHBsdWdpbiBUaGUgYXBwIGNhbGxpbmcgdGhlIHBsdWdpbgovLyBAcGFyYW0gYWxsb3dlZENhbGxlciBUaGUgYWRkcmVzcyB0aGF0IHRyaWdnZXJlZCB0aGUgcGx1Z2luCi8vIEBwYXJhbSBuZXdBZG1pbiBUaGUgbmV3IGFkbWluCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjExNgoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogcGx1Z2luLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJwbHVnaW4uYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjExNwoJLy8gYXNzZXJ0KHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHIgPT09IHBsdWdpbi5hZGRyZXNzLCAnVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQnKQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJPT0KCgkvLyBUaGlzIHBsdWdpbiBpcyBub3QgaW4gY29udHJvbCBvZiB0aGUgYWNjb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMTkKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IHBsdWdpbiwgYWxsb3dlZENhbGxlcjogYWxsb3dlZENhbGxlciB9CglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTIwCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMgJiYgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuYWRtaW5Qcml2aWxlZ2VzLAoJLy8gICAgICAgJ1RoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcycKCS8vICAgICApCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglkdXAKCWJ6ICpza2lwX2FuZDQKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MgoJZ2V0Yml0CgkmJgoKKnNraXBfYW5kNDoKCS8vIFRoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcwoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMjUKCS8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbgoJYnl0ZSAweDYxIC8vICJhIgoJZnJhbWVfZGlnIC0zIC8vIG5ld0FkbWluOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhcmM1OF9nZXRBZG1pbigpYWRkcmVzcwoqYWJpX3JvdXRlX2FyYzU4X2dldEFkbWluOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFyYzU4X2dldEFkbWluKClhZGRyZXNzCgljYWxsc3ViIGFyYzU4X2dldEFkbWluCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfZ2V0QWRtaW4oKTogQWRkcmVzcwovLwovLyBHZXQgdGhlIGFkbWluIG9mIHRoaXMgYXBwLiBUaGlzIG1ldGhvZCBTSE9VTEQgYWx3YXlzIGJlIHVzZWQgcmF0aGVyIHRoYW4gcmVhZGluZyBkaXJlY3RseSBmcm9tIHN0YXRlCi8vIGJlY2F1c2UgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBtYXkgaGF2ZSBkaWZmZXJlbnQgd2F5cyBvZiBkZXRlcm1pbmluZyB0aGUgYWRtaW4uCmFyYzU4X2dldEFkbWluOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMzMKCS8vIHJldHVybiB0aGlzLmFkbWluLnZhbHVlOwoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF92ZXJpZnlBdXRoQWRkcjoKCS8vIGV4ZWN1dGUgYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQKCWNhbGxzdWIgYXJjNThfdmVyaWZ5QXV0aEFkZHIKCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3ZlcmlmeUF1dGhBZGRyKCk6IHZvaWQKLy8KLy8gVmVyaWZ5IHRoZSBhYnN0cmFjdGVkIGFjY291bnQgaXMgcmVrZXllZCB0byB0aGlzIGFwcAphcmM1OF92ZXJpZnlBdXRoQWRkcjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTQwCgkvLyBhc3NlcnQodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZS5hdXRoQWRkciA9PT0gdGhpcy5nZXRBdXRoQWRkcigpKQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJY2FsbHN1YiBnZXRBdXRoQWRkcgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVrZXlUbzoKCS8vIGZsYXNoOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoZmxhc2gpIGZvciBhcmM1OF9yZWtleVRvIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFkZHIpIGZvciBhcmM1OF9yZWtleVRvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzU4X3Jla2V5VG8oYWRkcmVzcyxib29sKXZvaWQKCWNhbGxzdWIgYXJjNThfcmVrZXlUbwoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVrZXlUbyhhZGRyOiBBZGRyZXNzLCBmbGFzaDogYm9vbGVhbik6IHZvaWQKLy8KLy8gUmVrZXkgdGhlIGFic3RyYWN0ZWQgYWNjb3VudCB0byBhbm90aGVyIGFkZHJlc3MuIFByaW1hcmlseSB1c2VmdWwgZm9yIHJla2V5aW5nIHRvIGFuIEVPQS4KLy8KLy8gQHBhcmFtIGFkZHIgVGhlIGFkZHJlc3MgdG8gcmVrZXkgdG8KLy8gQHBhcmFtIGZsYXNoIFdoZXRoZXIgb3Igbm90IHRoaXMgc2hvdWxkIGJlIGEgZmxhc2ggcmVrZXkuIElmIHRydWUsIHRoZSByZWtleSBiYWNrIHRvIHRoZSBhcHAgYWRkcmVzcyBtdXN0IGRvbmUgaW4gdGhlIHNhbWUgdHhuIGdyb3VwIGFzIHRoaXMgY2FsbAphcmM1OF9yZWtleVRvOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTAKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKCS8vICAgICAgIHJlY2VpdmVyOiBhZGRyLAoJLy8gICAgICAgcmVrZXlUbzogYWRkciwKCS8vICAgICAgIG5vdGU6ICdyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTMKCS8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgU2VuZGVyCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTQKCS8vIHJlY2VpdmVyOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTU1CgkvLyByZWtleVRvOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWtleVRvCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTYKCS8vIG5vdGU6ICdyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQnCglieXRlIDB4NzI2NTZiNjU3OTY5NmU2NzIwNjE2MjczNzQ3MjYxNjM3NDY1NjQyMDYxNjM2MzZmNzU2ZTc0IC8vICJyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTU5CgkvLyBmbGFzaAoJZnJhbWVfZGlnIC0yIC8vIGZsYXNoOiBib29sZWFuCglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTkKCS8vIHRoaXMudmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50KCkKCWNhbGxzdWIgdmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50CgoqaWYyX2VuZDoKCXJldHN1YgoKLy8gcGx1Z2luQ2FsbEFsbG93ZWQoYXBwOiBBcHBJRCwgY2FsbGVyOiBBZGRyZXNzKTogYm9vbGVhbgpwbHVnaW5DYWxsQWxsb3dlZDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNjMKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IGFwcCwgYWxsb3dlZENhbGxlcjogY2FsbGVyIH0KCWZyYW1lX2RpZyAtMSAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTIgLy8gY2FsbGVyOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE2NQoJLy8gcmV0dXJuICgKCS8vICAgICAgIHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cyAmJgoJLy8gICAgICAgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUubGFzdFZhbGlkUm91bmQgPj0gZ2xvYmFscy5yb3VuZCAmJgoJLy8gICAgICAgZ2xvYmFscy5yb3VuZCAtIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLmxhc3RDYWxsZWQgPj0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuY29vbGRvd24KCS8vICAgICApOwoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJZHVwCglieiAqc2tpcF9hbmQ1CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglnbG9iYWwgUm91bmQKCT49CgkmJgoKKnNraXBfYW5kNToKCWR1cAoJYnogKnNraXBfYW5kNgoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJLQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoJPj0KCSYmCgoqc2tpcF9hbmQ2OgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGFyYzU4X3Jla2V5VG9QbHVnaW4odWludDY0KXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9yZWtleVRvUGx1Z2luOgoJLy8gcGx1Z2luOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFyYzU4X3Jla2V5VG9QbHVnaW4odWludDY0KXZvaWQKCWNhbGxzdWIgYXJjNThfcmVrZXlUb1BsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVrZXlUb1BsdWdpbihwbHVnaW46IEFwcElEKTogdm9pZAovLwovLyBUZW1wb3JhcmlseSByZWtleSB0byBhbiBhcHByb3ZlZCBwbHVnaW4gYXBwIGFkZHJlc3MKLy8KLy8gQHBhcmFtIHBsdWdpbiBUaGUgYXBwIHRvIHJla2V5IHRvCmFyYzU4X3Jla2V5VG9QbHVnaW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTc4CgkvLyBnbG9iYWxBbGxvd2VkID0gdGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIEFkZHJlc3MuemVyb0FkZHJlc3MpCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECgljYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCglmcmFtZV9idXJ5IDAgLy8gZ2xvYmFsQWxsb3dlZDogYm9vbAoKCS8vICppZjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4MAoJLy8gIWdsb2JhbEFsbG93ZWQKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCSEKCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4MQoJLy8gYXNzZXJ0KHRoaXMucGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luLCB0aGlzLnR4bi5zZW5kZXIpLCAnVGhpcyBzZW5kZXIgaXMgbm90IGFsbG93ZWQgdG8gdHJpZ2dlciB0aGlzIHBsdWdpbicpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJY2FsbHN1YiBwbHVnaW5DYWxsQWxsb3dlZAoKCS8vIFRoaXMgc2VuZGVyIGlzIG5vdCBhbGxvd2VkIHRvIHRyaWdnZXIgdGhpcyBwbHVnaW4KCWFzc2VydAoKKmlmM19lbmQ6CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4MwoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCgkvLyAgICAgICByZWtleVRvOiBwbHVnaW4uYWRkcmVzcywKCS8vICAgICAgIG5vdGU6ICdyZWtleWluZyB0byBwbHVnaW4gYXBwJywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTg0CgkvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTg1CgkvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NgoJLy8gcmVrZXlUbzogcGx1Z2luLmFkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVrZXlUbwoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTg3CgkvLyBub3RlOiAncmVrZXlpbmcgdG8gcGx1Z2luIGFwcCcKCWJ5dGUgMHg3MjY1NmI2NTc5Njk2ZTY3MjA3NDZmMjA3MDZjNzU2NzY5NmUyMDYxNzA3MCAvLyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE5MAoJLy8gdGhpcy5wbHVnaW5zKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uOiBwbHVnaW4sCgkvLyAgICAgICBhbGxvd2VkQ2FsbGVyOiBnbG9iYWxBbGxvd2VkID8gQWRkcmVzcy56ZXJvQWRkcmVzcyA6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KS52YWx1ZS5sYXN0Q2FsbGVkID0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCWJ6ICp0ZXJuYXJ5M19mYWxzZQoJZ2xvYmFsIFplcm9BZGRyZXNzCgliICp0ZXJuYXJ5M19lbmQKCip0ZXJuYXJ5M19mYWxzZToKCXR4biBTZW5kZXIKCip0ZXJuYXJ5M19lbmQ6Cgljb25jYXQKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKHsgYXBwbGljYXRpb246IHBsdWdpbiwgYWxsb3dlZENhbGxlcjogZ2xvYmFsQWxsb3dlZCA/IEFkZHJlc3MuemVyb0FkZHJlc3MgOiB0aGlzLnR4bi5zZW5kZXIsIH0pLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTYKCWdsb2JhbCBSb3VuZAoJaXRvYgoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCWJ6ICp0ZXJuYXJ5NV9mYWxzZQoJZ2xvYmFsIFplcm9BZGRyZXNzCgliICp0ZXJuYXJ5NV9lbmQKCip0ZXJuYXJ5NV9mYWxzZToKCXR4biBTZW5kZXIKCip0ZXJuYXJ5NV9lbmQ6Cgljb25jYXQKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE5NQoJLy8gdGhpcy52ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKQoJY2FsbHN1YiB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQKCXJldHN1YgoKLy8gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkCgljYWxsc3ViIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKG5hbWU6IHN0cmluZyk6IHZvaWQKLy8KLy8gVGVtcG9yYXJpbHkgcmVrZXkgdG8gYSBuYW1lZCBwbHVnaW4gYXBwIGFkZHJlc3MKLy8KLy8gQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiB0byByZWtleSB0bwphcmM1OF9yZWtleVRvTmFtZWRQbHVnaW46Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjIwNAoJLy8gdGhpcy5hcmM1OF9yZWtleVRvUGx1Z2luKHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLmFwcGxpY2F0aW9uKQoJaW50IDAKCWludCA4CglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgljYWxsc3ViIGFyYzU4X3Jla2V5VG9QbHVnaW4KCXJldHN1YgoKLy8gYXJjNThfYWRkUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNThfYWRkUGx1Z2luOgoJLy8gYWRtaW5Qcml2aWxlZ2VzOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYWRtaW5Qcml2aWxlZ2VzKSBmb3IgYXJjNThfYWRkUGx1Z2luIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBjb29sZG93bjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFsbG93ZWRDYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoYWxsb3dlZENhbGxlcikgZm9yIGFyYzU4X2FkZFBsdWdpbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYXBwOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFyYzU4X2FkZFBsdWdpbih1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBhcmM1OF9hZGRQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X2FkZFBsdWdpbihhcHA6IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzLCBsYXN0VmFsaWRSb3VuZDogdWludDY0LCBjb29sZG93bjogdWludDY0LCBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIEFkZCBhbiBhcHAgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2lucwovLwovLyBAcGFyYW0gYXBwIFRoZSBhcHAgdG8gYWRkCi8vIEBwYXJhbSBhbGxvd2VkQ2FsbGVyIFRoZSBhZGRyZXNzIG9mIHRoYXQncyBhbGxvd2VkIHRvIGNhbGwgdGhlIGFwcAovLyBvciB0aGUgZ2xvYmFsIHplcm8gYWRkcmVzcyBmb3IgYWxsIGFkZHJlc3NlcwovLyBAcGFyYW0gbGFzdFZhbGlkUm91bmQgVGhlIHJvdW5kIHdoZW4gdGhlIHBlcm1pc3Npb24gZXhwaXJlcwovLyBAcGFyYW0gY29vbGRvd24gIFRoZSBudW1iZXIgb2Ygcm91bmRzIHRoYXQgbXVzdCBwYXNzIGJlZm9yZSB0aGUgcGx1Z2luIGNhbiBiZSBjYWxsZWQgYWdhaW4KLy8gQHBhcmFtIGFkbWluUHJpdmlsZWdlcyBXaGV0aGVyIHRoZSBwbHVnaW4gaGFzIHBlcm1pc3Npb25zIHRvIGNoYW5nZSB0aGUgYWRtaW4gYWNjb3VudAphcmM1OF9hZGRQbHVnaW46Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjI0CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMjUKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IGFwcCwgYWxsb3dlZENhbGxlcjogYWxsb3dlZENhbGxlciB9CglmcmFtZV9kaWcgLTEgLy8gYXBwOiBBcHBJRAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjI2CgkvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKCS8vICAgICAgIGxhc3RWYWxpZFJvdW5kOiBsYXN0VmFsaWRSb3VuZCwKCS8vICAgICAgIGNvb2xkb3duOiBjb29sZG93biwKCS8vICAgICAgIGxhc3RDYWxsZWQ6IDAsCgkvLyAgICAgICBhZG1pblByaXZpbGVnZXM6IGFkbWluUHJpdmlsZWdlcywKCS8vICAgICB9CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtNCAvLyBjb29sZG93bjogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAtNSAvLyBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4KCXNldGJpdAoJY29uY2F0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFyYzU4X3JlbW92ZVBsdWdpbih1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVtb3ZlUGx1Z2luOgoJLy8gYWxsb3dlZENhbGxlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhbGxvd2VkQ2FsbGVyKSBmb3IgYXJjNThfcmVtb3ZlUGx1Z2luIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBhcHA6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYXJjNThfcmVtb3ZlUGx1Z2luCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9yZW1vdmVQbHVnaW4oYXBwOiBBcHBJRCwgYWxsb3dlZENhbGxlcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gUmVtb3ZlIGFuIGFwcCBmcm9tIHRoZSBsaXN0IG9mIGFwcHJvdmVkIHBsdWdpbnMKLy8KLy8gQHBhcmFtIGFwcCBUaGUgYXBwIHRvIHJlbW92ZQphcmM1OF9yZW1vdmVQbHVnaW46Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjQwCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNDIKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IGFwcCwgYWxsb3dlZENhbGxlcjogYWxsb3dlZENhbGxlciB9CglmcmFtZV9kaWcgLTEgLy8gYXBwOiBBcHBJRAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjQzCgkvLyB0aGlzLnBsdWdpbnMoa2V5KS5kZWxldGUoKQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9kZWwKCXJldHN1YgoKLy8gYXJjNThfYWRkTmFtZWRQbHVnaW4oc3RyaW5nLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNThfYWRkTmFtZWRQbHVnaW46CgkvLyBhZG1pblByaXZpbGVnZXM6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDYKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhZG1pblByaXZpbGVnZXMpIGZvciBhcmM1OF9hZGROYW1lZFBsdWdpbiBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gY29vbGRvd246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhbGxvd2VkQ2FsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKGFsbG93ZWRDYWxsZXIpIGZvciBhcmM1OF9hZGROYW1lZFBsdWdpbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYXBwOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKCWNhbGxzdWIgYXJjNThfYWRkTmFtZWRQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X2FkZE5hbWVkUGx1Z2luKG5hbWU6IHN0cmluZywgYXBwOiBBcHBJRCwgYWxsb3dlZENhbGxlcjogQWRkcmVzcywgbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NCwgY29vbGRvd246IHVpbnQ2NCwgYWRtaW5Qcml2aWxlZ2VzOiBib29sZWFuKTogdm9pZAovLwovLyBBZGQgYSBuYW1lZCBwbHVnaW4KLy8KLy8gQHBhcmFtIGFwcCBUaGUgcGx1Z2luIGFwcAovLyBAcGFyYW0gbmFtZSBUaGUgcGx1Z2luIG5hbWUKLy8gQHBhcmFtIGFsbG93ZWRDYWxsZXIgVGhlIGFkZHJlc3Mgb2YgdGhhdCdzIGFsbG93ZWQgdG8gY2FsbCB0aGUgYXBwCi8vIG9yIHRoZSBnbG9iYWwgemVybyBhZGRyZXNzIGZvciBhbGwgYWRkcmVzc2VzCi8vIEBwYXJhbSBsYXN0VmFsaWRSb3VuZCBUaGUgcm91bmQgd2hlbiB0aGUgcGVybWlzc2lvbiBleHBpcmVzCi8vIEBwYXJhbSBjb29sZG93biAgVGhlIG51bWJlciBvZiByb3VuZHMgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIHRoZSBwbHVnaW4gY2FuIGJlIGNhbGxlZCBhZ2FpbgovLyBAcGFyYW0gYWRtaW5Qcml2aWxlZ2VzIFdoZXRoZXIgdGhlIHBsdWdpbiBoYXMgcGVybWlzc2lvbnMgdG8gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CmFyYzU4X2FkZE5hbWVkUGx1Z2luOgoJcHJvdG8gNiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI2NQoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hZG1pbi52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFkbWluLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjY2CgkvLyBhc3NlcnQoIXRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmV4aXN0cykKCWJ5dGUgMHg2ZSAvLyAibiIKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI2OAoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBhbGxvd2VkQ2FsbGVyIH0KCWZyYW1lX2RpZyAtMiAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTMgLy8gYWxsb3dlZENhbGxlcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBQbHVnaW5zS2V5CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNjkKCS8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlID0ga2V5CglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjcwCgkvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKCS8vICAgICAgIGxhc3RWYWxpZFJvdW5kOiBsYXN0VmFsaWRSb3VuZCwKCS8vICAgICAgIGNvb2xkb3duOiBjb29sZG93biwKCS8vICAgICAgIGxhc3RDYWxsZWQ6IDAsCgkvLyAgICAgICBhZG1pblByaXZpbGVnZXM6IGFkbWluUHJpdmlsZWdlcywKCS8vICAgICB9CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJZnJhbWVfZGlnIC00IC8vIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtNSAvLyBjb29sZG93bjogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAtNiAvLyBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4KCXNldGJpdAoJY29uY2F0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW46CgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbihzdHJpbmcpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nKTogdm9pZAovLwovLyBSZW1vdmUgYSBuYW1lZCBwbHVnaW4KLy8KLy8gQHBhcmFtIG5hbWUgVGhlIHBsdWdpbiBuYW1lCmFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI4NAoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hZG1pbi52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFkbWluLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6Mjg2CgkvLyBhcHAgPSB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZQoJYnl0ZSAweDZlIC8vICJuIgoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL2FwcAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6Mjg3CgkvLyB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS5kZWxldGUoKQoJYnl0ZSAweDZlIC8vICJuIgoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY29uY2F0Cglib3hfZGVsCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyODgKCS8vIHRoaXMucGx1Z2lucyhhcHApLmRlbGV0ZSgpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vYXBwCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZQoJYXNzZXJ0Cgljb25jYXQKCWJveF9kZWwKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbihhZGRyZXNzLGFkZHJlc3Mpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJjNThfY2hhbmdlQWRtaW4oYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbih1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQiCgltZXRob2QgImFyYzU4X2dldEFkbWluKClhZGRyZXNzIgoJbWV0aG9kICJhcmM1OF92ZXJpZnlBdXRoQWRkcigpdm9pZCIKCW1ldGhvZCAiYXJjNThfcmVrZXlUbyhhZGRyZXNzLGJvb2wpdm9pZCIKCW1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZCIKCW1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCgltZXRob2QgImFyYzU4X3JlbW92ZVBsdWdpbih1aW50NjQsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCgltZXRob2QgImFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcmM1OF9jaGFuZ2VBZG1pbiAqYWJpX3JvdXRlX2FyYzU4X3BsdWdpbkNoYW5nZUFkbWluICphYmlfcm91dGVfYXJjNThfZ2V0QWRtaW4gKmFiaV9yb3V0ZV9hcmM1OF92ZXJpZnlBdXRoQWRkciAqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG8gKmFiaV9yb3V0ZV9hcmM1OF9yZWtleVRvUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVtb3ZlUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkTmFtZWRQbHVnaW4gKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVOYW1lZFBsdWdpbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAgMzIKYnl0ZWNibG9jayAweDcwIDB4NjEgMHg2MyAweDAwMDAwMDAwMDAwMDAwMDAgMHggMHgwZjg4NTQ5MyAweDZlIDB4MDAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKTogdm9pZAovLwovLyBFbnN1cmUgdGhhdCBieSB0aGUgZW5kIG9mIHRoZSBncm91cCB0aGUgYWJzdHJhY3RlZCBhY2NvdW50IGhhcyBjb250cm9sIG9mIGl0cyBhZGRyZXNzCnZlcmlmeVJla2V5VG9BYnN0cmFjdGVkQWNjb3VudDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjQ1CgkvLyByZWtleWVkQmFjayA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHJla2V5ZWRCYWNrOiBib29sCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0NwoJLy8gZm9yIChsZXQgaSA9IHRoaXMudHhuLmdyb3VwSW5kZXg7IGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aDsgaSArPSAxKQoJdHhuIEdyb3VwSW5kZXgKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NDcKCS8vIGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglnbG9iYWwgR3JvdXBTaXplCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0OAoJLy8gdHhuID0gdGhpcy50eG5Hcm91cFtpXQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gdHhuOiB0eG4KCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo1MQoJLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJiB0eG4ucmVrZXlUbyA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFNlbmRlcgoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBSZWtleVRvCglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NTIKCS8vIHJla2V5ZWRCYWNrID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyByZWtleWVkQmFjazogYm9vbAoJYiAqZm9yXzBfZW5kCgoqaWYwX2VuZDoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjU4CgkvLyB0eG4udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwgJiYKCS8vICAgICAgICAgdHhuLmFwcGxpY2F0aW9uSUQgPT09IHRoaXMuYXBwICYmCgkvLyAgICAgICAgIHR4bi5udW1BcHBBcmdzID09PSAxICYmCgkvLyAgICAgICAgIHR4bi5hcHBsaWNhdGlvbkFyZ3NbMF0gPT09IG1ldGhvZCgnYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQnKQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDYgLy8gYXBwbAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIEFwcGxpY2F0aW9uSUQKCXR4bmEgQXBwbGljYXRpb25zIDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWR1cAoJYnogKnNraXBfYW5kMgoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIE51bUFwcEFyZ3MKCWludCAxCgk9PQoJJiYKCipza2lwX2FuZDI6CglkdXAKCWJ6ICpza2lwX2FuZDMKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDBmODg1NDkzIC8vIG1ldGhvZCAiYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQiCgk9PQoJJiYKCipza2lwX2FuZDM6CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo2MwoJLy8gcmVrZXllZEJhY2sgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIHJla2V5ZWRCYWNrOiBib29sCgliICpmb3JfMF9lbmQKCippZjFfZW5kOgoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NjgKCS8vIGFzc2VydChyZWtleWVkQmFjaykKCWZyYW1lX2RpZyAwIC8vIHJla2V5ZWRCYWNrOiBib29sCglhc3NlcnQKCXJldHN1YgoKLy8gZ2V0QXV0aEFkZHIoKTogQWRkcmVzcwovLwovLyBXaGF0IHRoZSB2YWx1ZSBvZiB0aGlzLmFkZHJlc3MudmFsdWUuYXV0aEFkZHIgc2hvdWxkIGJlIHdoZW4gdGhpcy5jb250cm9sbGVkQWRkcmVzcwovLyBpcyBhYmxlIHRvIGJlIGNvbnRyb2xsZWQgYnkgdGhpcyBhcHAuIEl0IHdpbGwgZWl0aGVyIGJlIHRoaXMuYXBwLmFkZHJlc3Mgb3IgemVyb0FkZHJlc3MKZ2V0QXV0aEFkZHI6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjc2CgkvLyByZXR1cm4gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9PT0gdGhpcy5hcHAuYWRkcmVzcyA/IEFkZHJlc3MuemVyb0FkZHJlc3MgOiB0aGlzLmFwcC5hZGRyZXNzOwoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglnbG9iYWwgWmVyb0FkZHJlc3MKCWIgKnRlcm5hcnkwX2VuZAoKKnRlcm5hcnkwX2ZhbHNlOgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKGFkZHJlc3MsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBhZG1pbjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZG1pbikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBjb250cm9sbGVkQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChjb250cm9sbGVkQWRkcmVzcykgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKGFkZHJlc3MsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbihjb250cm9sbGVkQWRkcmVzczogQWRkcmVzcywgYWRtaW46IEFkZHJlc3MpOiB2b2lkCi8vCi8vIENyZWF0ZSBhbiBhYnN0cmFjdGVkIGFjY291bnQgYXBwbGljYXRpb24uCi8vIFRoaXMgaXMgbm90IHBhcnQgb2YgQVJDNTggYW5kIGltcGxlbWVudGF0aW9uIHNwZWNpZmljLgovLwovLyBAcGFyYW0gY29udHJvbGxlZEFkZHJlc3MgVGhlIGFkZHJlc3Mgb2YgdGhlIGFic3RyYWN0ZWQgYWNjb3VudC4gSWYgemVyb0FkZHJlc3MsIHRoZW4gdGhlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IGFjY291bnQgd2lsbCBiZSB1c2VkCi8vIEBwYXJhbSBhZG1pbiBUaGUgYWRtaW4gZm9yIHRoaXMgYXBwCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo4NwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IGluY2x1ZGVkSW46IFtjb250cm9sbGVkQWRkcmVzcywgYWRtaW5dIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBjb250cm9sbGVkQWRkcmVzczogQWRkcmVzcwoJPT0KCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhZG1pbjogQWRkcmVzcwoJPT0KCXx8CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOnsidHhuVGV4dCI6InRoaXMudHhuIn0sImZpZWxkIjoic2VuZGVyIiwiY29uZGl0aW9uIjoiaW5jbHVkZWRJbiIsImV4cGVjdGVkIjoiW2NvbnRyb2xsZWRBZGRyZXNzLCBhZG1pbl0ifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo5MQoJLy8gYXNzZXJ0KGFkbWluICE9PSBjb250cm9sbGVkQWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBhZG1pbjogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo5MwoJLy8gdGhpcy5hZG1pbi52YWx1ZSA9IGFkbWluCglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTIgLy8gYWRtaW46IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo5NAoJLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzID09PSBBZGRyZXNzLnplcm9BZGRyZXNzID8gdGhpcy5hcHAuYWRkcmVzcyA6IGNvbnRyb2xsZWRBZGRyZXNzCglieXRlIDB4NjMgLy8gImMiCglmcmFtZV9kaWcgLTEgLy8gY29udHJvbGxlZEFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWIgKnRlcm5hcnkxX2VuZAoKKnRlcm5hcnkxX2ZhbHNlOgoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzCgoqdGVybmFyeTFfZW5kOgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYXJjNThfY2hhbmdlQWRtaW4oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYXJjNThfY2hhbmdlQWRtaW46CgkvLyBuZXdBZG1pbjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChuZXdBZG1pbikgZm9yIGFyYzU4X2NoYW5nZUFkbWluIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzU4X2NoYW5nZUFkbWluKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhcmM1OF9jaGFuZ2VBZG1pbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfY2hhbmdlQWRtaW4obmV3QWRtaW46IEFkZHJlc3MpOiB2b2lkCi8vCi8vIEF0dGVtcHQgdG8gY2hhbmdlIHRoZSBhZG1pbiBmb3IgdGhpcyBhcHAuIFNvbWUgaW1wbGVtZW50YXRpb25zIE1BWSBub3Qgc3VwcG9ydCB0aGlzLgovLwovLyBAcGFyYW0gbmV3QWRtaW4gVGhlIG5ldyBhZG1pbgphcmM1OF9jaGFuZ2VBZG1pbjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTAzCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMDQKCS8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbgoJYnl0ZSAweDYxIC8vICJhIgoJZnJhbWVfZGlnIC0xIC8vIG5ld0FkbWluOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbih1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKCS8vIG5ld0FkbWluOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKG5ld0FkbWluKSBmb3IgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFsbG93ZWRDYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYWxsb3dlZENhbGxlcikgZm9yIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBwbHVnaW46IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4odWludDY0LGFkZHJlc3MsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbihwbHVnaW46IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzLCBuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQXR0ZW1wdCB0byBjaGFuZ2UgdGhlIGFkbWluIHZpYSBwbHVnaW4uCi8vCi8vIEBwYXJhbSBwbHVnaW4gVGhlIGFwcCBjYWxsaW5nIHRoZSBwbHVnaW4KLy8gQHBhcmFtIGFsbG93ZWRDYWxsZXIgVGhlIGFkZHJlc3MgdGhhdCB0cmlnZ2VyZWQgdGhlIHBsdWdpbgovLyBAcGFyYW0gbmV3QWRtaW4gVGhlIG5ldyBhZG1pbgphcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMTYKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHBsdWdpbi5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoicGx1Z2luLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMTcKCS8vIGFzc2VydCh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyID09PSBwbHVnaW4uYWRkcmVzcywgJ1RoaXMgcGx1Z2luIGlzIG5vdCBpbiBjb250cm9sIG9mIHRoZSBhY2NvdW50JykKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTE5CgkvLyBrZXk6IFBsdWdpbnNLZXkgPSB7IGFwcGxpY2F0aW9uOiBwbHVnaW4sIGFsbG93ZWRDYWxsZXI6IGFsbG93ZWRDYWxsZXIgfQoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAtMiAvLyBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjEyMAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzICYmIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLmFkbWluUHJpdmlsZWdlcywKCS8vICAgICAgICdUaGlzIHBsdWdpbiBkb2VzIG5vdCBoYXZlIGFkbWluIHByaXZpbGVnZXMnCgkvLyAgICAgKQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJZHVwCglieiAqc2tpcF9hbmQ0CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkyCglnZXRiaXQKCSYmCgoqc2tpcF9hbmQ0OgoJLy8gVGhpcyBwbHVnaW4gZG9lcyBub3QgaGF2ZSBhZG1pbiBwcml2aWxlZ2VzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjEyNQoJLy8gdGhpcy5hZG1pbi52YWx1ZSA9IG5ld0FkbWluCglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTMgLy8gbmV3QWRtaW46IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzU4X2dldEFkbWluKClhZGRyZXNzCiphYmlfcm91dGVfYXJjNThfZ2V0QWRtaW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcmM1OF9nZXRBZG1pbigpYWRkcmVzcwoJY2FsbHN1YiBhcmM1OF9nZXRBZG1pbgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X2dldEFkbWluKCk6IEFkZHJlc3MKLy8KLy8gR2V0IHRoZSBhZG1pbiBvZiB0aGlzIGFwcC4gVGhpcyBtZXRob2QgU0hPVUxEIGFsd2F5cyBiZSB1c2VkIHJhdGhlciB0aGFuIHJlYWRpbmcgZGlyZWN0bHkgZnJvbSBzdGF0ZQovLyBiZWNhdXNlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgbWF5IGhhdmUgZGlmZmVyZW50IHdheXMgb2YgZGV0ZXJtaW5pbmcgdGhlIGFkbWluLgphcmM1OF9nZXRBZG1pbjoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTMzCgkvLyByZXR1cm4gdGhpcy5hZG1pbi52YWx1ZTsKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGFyYzU4X3ZlcmlmeUF1dGhBZGRyKCl2b2lkCiphYmlfcm91dGVfYXJjNThfdmVyaWZ5QXV0aEFkZHI6CgkvLyBleGVjdXRlIGFyYzU4X3ZlcmlmeUF1dGhBZGRyKCl2b2lkCgljYWxsc3ViIGFyYzU4X3ZlcmlmeUF1dGhBZGRyCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF92ZXJpZnlBdXRoQWRkcigpOiB2b2lkCi8vCi8vIFZlcmlmeSB0aGUgYWJzdHJhY3RlZCBhY2NvdW50IGlzIHJla2V5ZWQgdG8gdGhpcyBhcHAKYXJjNThfdmVyaWZ5QXV0aEFkZHI6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE0MAoJLy8gYXNzZXJ0KHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHIgPT09IHRoaXMuZ2V0QXV0aEFkZHIoKSkKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCglwb3AKCWNhbGxzdWIgZ2V0QXV0aEFkZHIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXJjNThfcmVrZXlUbyhhZGRyZXNzLGJvb2wpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG86CgkvLyBmbGFzaDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGZsYXNoKSBmb3IgYXJjNThfcmVrZXlUbyBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYWRkcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhZGRyKSBmb3IgYXJjNThfcmVrZXlUbyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkCgljYWxsc3ViIGFyYzU4X3Jla2V5VG8KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3Jla2V5VG8oYWRkcjogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIFJla2V5IHRoZSBhYnN0cmFjdGVkIGFjY291bnQgdG8gYW5vdGhlciBhZGRyZXNzLiBQcmltYXJpbHkgdXNlZnVsIGZvciByZWtleWluZyB0byBhbiBFT0EuCi8vCi8vIEBwYXJhbSBhZGRyIFRoZSBhZGRyZXNzIHRvIHJla2V5IHRvCi8vIEBwYXJhbSBmbGFzaCBXaGV0aGVyIG9yIG5vdCB0aGlzIHNob3VsZCBiZSBhIGZsYXNoIHJla2V5LiBJZiB0cnVlLCB0aGUgcmVrZXkgYmFjayB0byB0aGUgYXBwIGFkZHJlc3MgbXVzdCBkb25lIGluIHRoZSBzYW1lIHR4biBncm91cCBhcyB0aGlzIGNhbGwKYXJjNThfcmVrZXlUbzoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTUwCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hZG1pbi52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFkbWluLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTUyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCgkvLyAgICAgICByZWNlaXZlcjogYWRkciwKCS8vICAgICAgIHJla2V5VG86IGFkZHIsCgkvLyAgICAgICBub3RlOiAncmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50JywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTMKCS8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgU2VuZGVyCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTQKCS8vIHJlY2VpdmVyOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTU1CgkvLyByZWtleVRvOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWtleVRvCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTYKCS8vIG5vdGU6ICdyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQnCglwdXNoYnl0ZXMgMHg3MjY1NmI2NTc5Njk2ZTY3MjA2MTYyNzM3NDcyNjE2Mzc0NjU2NDIwNjE2MzYzNmY3NTZlNzQgLy8gInJla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTkKCS8vIGZsYXNoCglmcmFtZV9kaWcgLTIgLy8gZmxhc2g6IGJvb2xlYW4KCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE1OQoJLy8gdGhpcy52ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKQoJY2FsbHN1YiB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQKCippZjJfZW5kOgoJcmV0c3ViCgovLyBwbHVnaW5DYWxsQWxsb3dlZChhcHA6IEFwcElELCBjYWxsZXI6IEFkZHJlc3MpOiBib29sZWFuCnBsdWdpbkNhbGxBbGxvd2VkOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE2MwoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBjYWxsZXIgfQoJZnJhbWVfZGlnIC0xIC8vIGFwcDogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAtMiAvLyBjYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTY1CgkvLyByZXR1cm4gKAoJLy8gICAgICAgdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzICYmCgkvLyAgICAgICB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5sYXN0VmFsaWRSb3VuZCA+PSBnbG9iYWxzLnJvdW5kICYmCgkvLyAgICAgICBnbG9iYWxzLnJvdW5kIC0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUubGFzdENhbGxlZCA+PSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5jb29sZG93bgoJLy8gICAgICk7CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglkdXAKCWJ6ICpza2lwX2FuZDUKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWdsb2JhbCBSb3VuZAoJPj0KCSYmCgoqc2tpcF9hbmQ1OgoJZHVwCglieiAqc2tpcF9hbmQ2CglnbG9iYWwgUm91bmQKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxNiA4CglidG9pCgktCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgk+PQoJJiYKCipza2lwX2FuZDY6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG9QbHVnaW46CgkvLyBwbHVnaW46IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZWtleVRvUGx1Z2luCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9yZWtleVRvUGx1Z2luKHBsdWdpbjogQXBwSUQpOiB2b2lkCi8vCi8vIFRlbXBvcmFyaWx5IHJla2V5IHRvIGFuIGFwcHJvdmVkIHBsdWdpbiBhcHAgYWRkcmVzcwovLwovLyBAcGFyYW0gcGx1Z2luIFRoZSBhcHAgdG8gcmVrZXkgdG8KYXJjNThfcmVrZXlUb1BsdWdpbjoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNzgKCS8vIGdsb2JhbEFsbG93ZWQgPSB0aGlzLnBsdWdpbkNhbGxBbGxvd2VkKHBsdWdpbiwgQWRkcmVzcy56ZXJvQWRkcmVzcykKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWNhbGxzdWIgcGx1Z2luQ2FsbEFsbG93ZWQKCWZyYW1lX2J1cnkgMCAvLyBnbG9iYWxBbGxvd2VkOiBib29sCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTgwCgkvLyAhZ2xvYmFsQWxsb3dlZAoJZnJhbWVfZGlnIDAgLy8gZ2xvYmFsQWxsb3dlZDogYm9vbAoJIQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTgxCgkvLyBhc3NlcnQodGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIHRoaXMudHhuLnNlbmRlciksICdUaGlzIHNlbmRlciBpcyBub3QgYWxsb3dlZCB0byB0cmlnZ2VyIHRoaXMgcGx1Z2luJykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECgljYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCgoJLy8gVGhpcyBzZW5kZXIgaXMgbm90IGFsbG93ZWQgdG8gdHJpZ2dlciB0aGlzIHBsdWdpbgoJYXNzZXJ0CgoqaWYzX2VuZDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTgzCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKCS8vICAgICAgIHJla2V5VG86IHBsdWdpbi5hZGRyZXNzLAoJLy8gICAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NAoJLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBTZW5kZXIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NQoJLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxODYKCS8vIHJla2V5VG86IHBsdWdpbi5hZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglpdHhuX2ZpZWxkIFJla2V5VG8KCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NwoJLy8gbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCglwdXNoYnl0ZXMgMHg3MjY1NmI2NTc5Njk2ZTY3MjA3NDZmMjA3MDZjNzU2NzY5NmUyMDYxNzA3MCAvLyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE5MAoJLy8gdGhpcy5wbHVnaW5zKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uOiBwbHVnaW4sCgkvLyAgICAgICBhbGxvd2VkQ2FsbGVyOiBnbG9iYWxBbGxvd2VkID8gQWRkcmVzcy56ZXJvQWRkcmVzcyA6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KS52YWx1ZS5sYXN0Q2FsbGVkID0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCWJ6ICp0ZXJuYXJ5M19mYWxzZQoJZ2xvYmFsIFplcm9BZGRyZXNzCgliICp0ZXJuYXJ5M19lbmQKCip0ZXJuYXJ5M19mYWxzZToKCXR4biBTZW5kZXIKCip0ZXJuYXJ5M19lbmQ6Cgljb25jYXQKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKHsgYXBwbGljYXRpb246IHBsdWdpbiwgYWxsb3dlZENhbGxlcjogZ2xvYmFsQWxsb3dlZCA/IEFkZHJlc3MuemVyb0FkZHJlc3MgOiB0aGlzLnR4bi5zZW5kZXIsIH0pLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDE2CglnbG9iYWwgUm91bmQKCWl0b2IKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglpdG9iCglmcmFtZV9kaWcgMCAvLyBnbG9iYWxBbGxvd2VkOiBib29sCglieiAqdGVybmFyeTVfZmFsc2UKCWdsb2JhbCBaZXJvQWRkcmVzcwoJYiAqdGVybmFyeTVfZW5kCgoqdGVybmFyeTVfZmFsc2U6Cgl0eG4gU2VuZGVyCgoqdGVybmFyeTVfZW5kOgoJY29uY2F0Cgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxOTUKCS8vIHRoaXMudmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50KCkKCWNhbGxzdWIgdmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50CglyZXRzdWIKCi8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbjoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbihzdHJpbmcpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZWtleVRvTmFtZWRQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbihuYW1lOiBzdHJpbmcpOiB2b2lkCi8vCi8vIFRlbXBvcmFyaWx5IHJla2V5IHRvIGEgbmFtZWQgcGx1Z2luIGFwcCBhZGRyZXNzCi8vCi8vIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdG8gcmVrZXkgdG8KYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMDQKCS8vIHRoaXMuYXJjNThfcmVrZXlUb1BsdWdpbih0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZS5hcHBsaWNhdGlvbikKCWludCAwCglwdXNoaW50IDgKCWJ5dGUgMHg2ZSAvLyAibiIKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWNhbGxzdWIgYXJjNThfcmVrZXlUb1BsdWdpbgoJcmV0c3ViCgovLyBhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9hZGRQbHVnaW46CgkvLyBhZG1pblByaXZpbGVnZXM6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhZG1pblByaXZpbGVnZXMpIGZvciBhcmM1OF9hZGRQbHVnaW4gbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGNvb2xkb3duOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBsYXN0VmFsaWRSb3VuZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYWxsb3dlZENhbGxlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChhbGxvd2VkQ2FsbGVyKSBmb3IgYXJjNThfYWRkUGx1Z2luIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBhcHA6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfYWRkUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCgljYWxsc3ViIGFyYzU4X2FkZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfYWRkUGx1Z2luKGFwcDogQXBwSUQsIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MsIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQsIGNvb2xkb3duOiB1aW50NjQsIGFkbWluUHJpdmlsZWdlczogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkIGFuIGFwcCB0byB0aGUgbGlzdCBvZiBhcHByb3ZlZCBwbHVnaW5zCi8vCi8vIEBwYXJhbSBhcHAgVGhlIGFwcCB0byBhZGQKLy8gQHBhcmFtIGFsbG93ZWRDYWxsZXIgVGhlIGFkZHJlc3Mgb2YgdGhhdCdzIGFsbG93ZWQgdG8gY2FsbCB0aGUgYXBwCi8vIG9yIHRoZSBnbG9iYWwgemVybyBhZGRyZXNzIGZvciBhbGwgYWRkcmVzc2VzCi8vIEBwYXJhbSBsYXN0VmFsaWRSb3VuZCBUaGUgcm91bmQgd2hlbiB0aGUgcGVybWlzc2lvbiBleHBpcmVzCi8vIEBwYXJhbSBjb29sZG93biAgVGhlIG51bWJlciBvZiByb3VuZHMgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIHRoZSBwbHVnaW4gY2FuIGJlIGNhbGxlZCBhZ2FpbgovLyBAcGFyYW0gYWRtaW5Qcml2aWxlZ2VzIFdoZXRoZXIgdGhlIHBsdWdpbiBoYXMgcGVybWlzc2lvbnMgdG8gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CmFyYzU4X2FkZFBsdWdpbjoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMjQKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuYWRtaW4udmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hZG1pbi52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjIyNQoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBhbGxvd2VkQ2FsbGVyIH0KCWZyYW1lX2RpZyAtMSAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYWxsb3dlZENhbGxlcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBQbHVnaW5zS2V5CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMjYKCS8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewoJLy8gICAgICAgbGFzdFZhbGlkUm91bmQ6IGxhc3RWYWxpZFJvdW5kLAoJLy8gICAgICAgY29vbGRvd246IGNvb2xkb3duLAoJLy8gICAgICAgbGFzdENhbGxlZDogMCwKCS8vICAgICAgIGFkbWluUHJpdmlsZWdlczogYWRtaW5Qcml2aWxlZ2VzLAoJLy8gICAgIH0KCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC00IC8vIGNvb2xkb3duOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIC01IC8vIGFkbWluUHJpdmlsZWdlczogYm9vbGVhbgoJc2V0Yml0Cgljb25jYXQKCWJveF9wdXQKCXJldHN1YgoKLy8gYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVQbHVnaW46CgkvLyBhbGxvd2VkQ2FsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFsbG93ZWRDYWxsZXIpIGZvciBhcmM1OF9yZW1vdmVQbHVnaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFwcDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhcmM1OF9yZW1vdmVQbHVnaW4odWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZW1vdmVQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3JlbW92ZVBsdWdpbihhcHA6IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzKTogdm9pZAovLwovLyBSZW1vdmUgYW4gYXBwIGZyb20gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2lucwovLwovLyBAcGFyYW0gYXBwIFRoZSBhcHAgdG8gcmVtb3ZlCmFyYzU4X3JlbW92ZVBsdWdpbjoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNDAKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuYWRtaW4udmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hZG1pbi52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI0MgoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBhbGxvd2VkQ2FsbGVyIH0KCWZyYW1lX2RpZyAtMSAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYWxsb3dlZENhbGxlcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBQbHVnaW5zS2V5CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNDMKCS8vIHRoaXMucGx1Z2lucyhrZXkpLmRlbGV0ZSgpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2RlbAoJcmV0c3ViCgovLyBhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9hZGROYW1lZFBsdWdpbjoKCS8vIGFkbWluUHJpdmlsZWdlczogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkbWluUHJpdmlsZWdlcykgZm9yIGFyYzU4X2FkZE5hbWVkUGx1Z2luIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBjb29sZG93bjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFsbG93ZWRDYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoYWxsb3dlZENhbGxlcikgZm9yIGFyYzU4X2FkZE5hbWVkUGx1Z2luIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBhcHA6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFyYzU4X2FkZE5hbWVkUGx1Z2luKHN0cmluZyx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBhcmM1OF9hZGROYW1lZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfYWRkTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nLCBhcHA6IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzLCBsYXN0VmFsaWRSb3VuZDogdWludDY0LCBjb29sZG93bjogdWludDY0LCBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIEFkZCBhIG5hbWVkIHBsdWdpbgovLwovLyBAcGFyYW0gYXBwIFRoZSBwbHVnaW4gYXBwCi8vIEBwYXJhbSBuYW1lIFRoZSBwbHVnaW4gbmFtZQovLyBAcGFyYW0gYWxsb3dlZENhbGxlciBUaGUgYWRkcmVzcyBvZiB0aGF0J3MgYWxsb3dlZCB0byBjYWxsIHRoZSBhcHAKLy8gb3IgdGhlIGdsb2JhbCB6ZXJvIGFkZHJlc3MgZm9yIGFsbCBhZGRyZXNzZXMKLy8gQHBhcmFtIGxhc3RWYWxpZFJvdW5kIFRoZSByb3VuZCB3aGVuIHRoZSBwZXJtaXNzaW9uIGV4cGlyZXMKLy8gQHBhcmFtIGNvb2xkb3duICBUaGUgbnVtYmVyIG9mIHJvdW5kcyB0aGF0IG11c3QgcGFzcyBiZWZvcmUgdGhlIHBsdWdpbiBjYW4gYmUgY2FsbGVkIGFnYWluCi8vIEBwYXJhbSBhZG1pblByaXZpbGVnZXMgV2hldGhlciB0aGUgcGx1Z2luIGhhcyBwZXJtaXNzaW9ucyB0byBjaGFuZ2UgdGhlIGFkbWluIGFjY291bnQKYXJjNThfYWRkTmFtZWRQbHVnaW46Cglwcm90byA2IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjY1CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNjYKCS8vIGFzc2VydCghdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZXhpc3RzKQoJYnl0ZSAweDZlIC8vICJuIgoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjY4CgkvLyBrZXk6IFBsdWdpbnNLZXkgPSB7IGFwcGxpY2F0aW9uOiBhcHAsIGFsbG93ZWRDYWxsZXI6IGFsbG93ZWRDYWxsZXIgfQoJZnJhbWVfZGlnIC0yIC8vIGFwcDogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI2OQoJLy8gdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkudmFsdWUgPSBrZXkKCWJ5dGUgMHg2ZSAvLyAibiIKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cglib3hfcHV0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNzAKCS8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewoJLy8gICAgICAgbGFzdFZhbGlkUm91bmQ6IGxhc3RWYWxpZFJvdW5kLAoJLy8gICAgICAgY29vbGRvd246IGNvb2xkb3duLAoJLy8gICAgICAgbGFzdENhbGxlZDogMCwKCS8vICAgICAgIGFkbWluUHJpdmlsZWdlczogYWRtaW5Qcml2aWxlZ2VzLAoJLy8gICAgIH0KCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0CglmcmFtZV9kaWcgLTQgLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC01IC8vIGNvb2xkb3duOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIC02IC8vIGFkbWluUHJpdmlsZWdlczogYm9vbGVhbgoJc2V0Yml0Cgljb25jYXQKCWJveF9wdXQKCXJldHN1YgoKLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4oc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVOYW1lZFBsdWdpbjoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkCgljYWxsc3ViIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbihuYW1lOiBzdHJpbmcpOiB2b2lkCi8vCi8vIFJlbW92ZSBhIG5hbWVkIHBsdWdpbgovLwovLyBAcGFyYW0gbmFtZSBUaGUgcGx1Z2luIG5hbWUKYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6Mjg0CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyODYKCS8vIGFwcCA9IHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlCglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vYXBwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyODcKCS8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmRlbGV0ZSgpCglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI4OAoJLy8gdGhpcy5wbHVnaW5zKGFwcCkuZGVsZXRlKCkKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIHN0b3JhZ2Uga2V5Ly9hcHAKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlCglhc3NlcnQKCWNvbmNhdAoJYm94X2RlbAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiNGM3N2Q3MSAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKGFkZHJlc3MsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDI0Yjc1NTYgLy8gbWV0aG9kICJhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg1ZmE0NDljNiAvLyBtZXRob2QgImFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDEzYmM0NGU0IC8vIG1ldGhvZCAiYXJjNThfZ2V0QWRtaW4oKWFkZHJlc3MiCglieXRlIDB4MGY4ODU0OTMgLy8gbWV0aG9kICJhcmM1OF92ZXJpZnlBdXRoQWRkcigpdm9pZCIKCXB1c2hieXRlcyAweGM5NWE1ZDNkIC8vIG1ldGhvZCAiYXJjNThfcmVrZXlUbyhhZGRyZXNzLGJvb2wpdm9pZCIKCXB1c2hieXRlcyAweDdjNzY2ZGRjIC8vIG1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDU2ZjI4YjU4IC8vIG1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDEyZGNiNjEgLy8gbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHg0ZDM3MjM1NSAvLyBtZXRob2QgImFyYzU4X3JlbW92ZVBsdWdpbih1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4OGE3MmE3NTAgLy8gbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHhlMzUwYjlkNCAvLyBtZXRob2QgImFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcmM1OF9jaGFuZ2VBZG1pbiAqYWJpX3JvdXRlX2FyYzU4X3BsdWdpbkNoYW5nZUFkbWluICphYmlfcm91dGVfYXJjNThfZ2V0QWRtaW4gKmFiaV9yb3V0ZV9hcmM1OF92ZXJpZnlBdXRoQWRkciAqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG8gKmFiaV9yb3V0ZV9hcmM1OF9yZWtleVRvUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVtb3ZlUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkTmFtZWRQbHVnaW4gKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVOYW1lZFBsdWdpbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/arc58/artifacts/AbstractedAccount.arc56_draft.json b/examples/arc58/artifacts/AbstractedAccount.arc56_draft.json index 148b79db1..dc0d69d2f 100644 --- a/examples/arc58/artifacts/AbstractedAccount.arc56_draft.json +++ b/examples/arc58/artifacts/AbstractedAccount.arc56_draft.json @@ -383,4778 +383,214 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 21, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33 - ] - }, - { - "teal": 13, - "source": 21, - "pc": [ - 34, - 35 - ] - }, - { - "teal": 14, - "source": 21, - "pc": [ - 36 - ] - }, - { - "teal": 15, - "source": 21, - "pc": [ - 37 - ] - }, - { - "teal": 16, - "source": 21, - "pc": [ - 38 - ] - }, - { - "teal": 17, - "source": 21, - "pc": [ - 39, - 40 - ] - }, - { - "teal": 18, - "source": 21, - "pc": [ - 41 - ] - }, - { - "teal": 19, - "source": 21, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 23, - "source": 21, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 68 - ] - }, - { - "teal": 29, - "source": 44, - "pc": [ - 69, - 70, - 71 - ] - }, - { - "teal": 32, - "source": 44, - "pc": [ - 72 - ] - }, - { - "teal": 33, - "source": 44, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 37, - "source": 45, - "pc": [ - 75 - ] - }, - { - "teal": 38, - "source": 45, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 42, - "source": 47, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 43, - "source": 47, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 48, - "source": 47, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 49, - "source": 47, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 50, - "source": 47, - "pc": [ - 86 - ] - }, - { - "teal": 51, - "source": 47, - "pc": [ - 87, - 88, - 89 - ] - }, - { - "teal": 55, - "source": 48, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 56, - "source": 48, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 61, - "source": 51, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 62, - "source": 51, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 63, - "source": 51, - "pc": [ - 98 - ] - }, - { - "teal": 64, - "source": 51, - "pc": [ - 99 - ] - }, - { - "teal": 65, - "source": 51, - "pc": [ - 100 - ] - }, - { - "teal": 66, - "source": 51, - "pc": [ - 101 - ] - }, - { - "teal": 67, - "source": 51, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 68, - "source": 51, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 69, - "source": 51, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 70, - "source": 51, - "pc": [ - 109 - ] - }, - { - "teal": 71, - "source": 51, - "pc": [ - 110 - ] - }, - { - "teal": 72, - "source": 51, - "pc": [ - 111 - ] - }, - { - "teal": 73, - "source": 51, - "pc": [ - 112 - ] - }, - { - "teal": 76, - "source": 51, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 81, - "source": 52, - "pc": [ - 116 - ] - }, - { - "teal": 82, - "source": 52, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 83, - "source": 53, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 92, - "source": 58, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 93, - "source": 58, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 94, - "source": 58, - "pc": [ - 126 - ] - }, - { - "teal": 95, - "source": 58, - "pc": [ - 127 - ] - }, - { - "teal": 96, - "source": 58, - "pc": [ - 128 - ] - }, - { - "teal": 97, - "source": 58, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 98, - "source": 59, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 99, - "source": 59, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 100, - "source": 59, - "pc": [ - 136, - 137, - 138 - ] - }, - { - "teal": 101, - "source": 59, - "pc": [ - 139 - ] - }, - { - "teal": 102, - "source": 58, - "pc": [ - 140 - ] - }, - { - "teal": 105, - "source": 59, - "pc": [ - 141 - ] - }, - { - "teal": 106, - "source": 59, - "pc": [ - 142, - 143, - 144 - ] - }, - { - "teal": 107, - "source": 60, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 108, - "source": 60, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 109, - "source": 60, - "pc": [ - 149 - ] - }, - { - "teal": 110, - "source": 60, - "pc": [ - 150 - ] - }, - { - "teal": 111, - "source": 59, - "pc": [ - 151 - ] - }, - { - "teal": 114, - "source": 60, - "pc": [ - 152 - ] - }, - { - "teal": 115, - "source": 60, - "pc": [ - 153, - 154, - 155 - ] - }, - { - "teal": 116, - "source": 61, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 117, - "source": 61, - "pc": [ - 158, - 159, - 160 - ] - }, - { - "teal": 118, - "source": 61, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 119, - "source": 61, - "pc": [ - 163 - ] - }, - { - "teal": 120, - "source": 60, - "pc": [ - 164 - ] - }, - { - "teal": 123, - "source": 57, - "pc": [ - 165, - 166, - 167 - ] - }, - { - "teal": 128, - "source": 63, - "pc": [ - 168 - ] - }, - { - "teal": 129, - "source": 63, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 130, - "source": 64, - "pc": [ - 171, - 172, - 173 - ] - }, - { - "teal": 137, - "source": 47, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 138, - "source": 47, - "pc": [ - 176 - ] - }, - { - "teal": 139, - "source": 47, - "pc": [ - 177 - ] - }, - { - "teal": 140, - "source": 47, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 141, - "source": 47, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 146, - "source": 68, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 147, - "source": 68, - "pc": [ - 185 - ] - }, - { - "teal": 148, - "source": 44, - "pc": [ - 186 - ] - }, - { - "teal": 155, - "source": 75, - "pc": [ - 187, - 188, - 189 - ] - }, - { - "teal": 159, - "source": 76, - "pc": [ - 190 - ] - }, - { - "teal": 160, - "source": 76, - "pc": [ - 191 - ] - }, - { - "teal": 161, - "source": 76, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 162, - "source": 76, - "pc": [ - 194 - ] - }, - { - "teal": 163, - "source": 76, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 164, - "source": 76, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 165, - "source": 76, - "pc": [ - 200, - 201, - 202 - ] - }, - { - "teal": 168, - "source": 76, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 171, - "source": 75, - "pc": [ - 205 - ] - }, - { - "teal": 176, - "source": 86, - "pc": [ - 206, - 207, - 208 - ] - }, - { - "teal": 177, - "source": 86, - "pc": [ - 209 - ] - }, - { - "teal": 178, - "source": 86, - "pc": [ - 210 - ] - }, - { - "teal": 179, - "source": 86, - "pc": [ - 211 - ] - }, - { - "teal": 180, - "source": 86, - "pc": [ - 212 - ] - }, - { - "teal": 183, - "source": 86, - "errorMessage": "argument 0 (admin) for createApplication must be a address", - "pc": [ - 213 - ] - }, - { - "teal": 186, - "source": 86, - "pc": [ - 214, - 215, - 216 - ] - }, - { - "teal": 187, - "source": 86, - "pc": [ - 217 - ] - }, - { - "teal": 188, - "source": 86, - "pc": [ - 218 - ] - }, - { - "teal": 189, - "source": 86, - "pc": [ - 219 - ] - }, - { - "teal": 190, - "source": 86, - "pc": [ - 220 - ] - }, - { - "teal": 193, - "source": 86, - "errorMessage": "argument 1 (controlledAddress) for createApplication must be a address", - "pc": [ - 221 - ] - }, - { - "teal": 196, - "source": 86, - "pc": [ - 222, - 223, - 224 - ] - }, - { - "teal": 197, - "source": 86, - "pc": [ - 225 - ] - }, - { - "teal": 198, - "source": 86, - "pc": [ - 226 - ] - }, - { - "teal": 208, - "source": 86, - "pc": [ - 227, - 228, - 229 - ] - }, - { - "teal": 215, - "source": 88, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 216, - "source": 88, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 217, - "source": 88, - "pc": [ - 234 - ] - }, - { - "teal": 218, - "source": 88, - "pc": [ - 235, - 236 - ] - }, - { - "teal": 219, - "source": 88, - "pc": [ - 237, - 238 - ] - }, - { - "teal": 220, - "source": 88, - "pc": [ - 239 - ] - }, - { - "teal": 221, - "source": 88, - "pc": [ - 240 - ] - }, - { - "teal": 224, - "source": 88, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"includedIn\",\"expected\":\"[controlledAddress, admin]\"}", - "pc": [ - 241 - ] - }, - { - "teal": 228, - "source": 91, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 229, - "source": 91, - "pc": [ - 244, - 245 - ] - }, - { - "teal": 230, - "source": 91, - "pc": [ - 246 - ] - }, - { - "teal": 231, - "source": 91, - "pc": [ - 247 - ] - }, - { - "teal": 235, - "source": 93, - "pc": [ - 248 - ] - }, - { - "teal": 236, - "source": 93, - "pc": [ - 249, - 250 - ] - }, - { - "teal": 237, - "source": 93, - "pc": [ - 251 - ] - }, - { - "teal": 241, - "source": 94, - "pc": [ - 252 - ] - }, - { - "teal": 242, - "source": 94, - "pc": [ - 253, - 254 - ] - }, - { - "teal": 243, - "source": 94, - "pc": [ - 255, - 256 - ] - }, - { - "teal": 244, - "source": 94, - "pc": [ - 257 - ] - }, - { - "teal": 245, - "source": 94, - "pc": [ - 258, - 259, - 260 - ] - }, - { - "teal": 246, - "source": 94, - "pc": [ - 261, - 262 - ] - }, - { - "teal": 247, - "source": 94, - "pc": [ - 263, - 264, - 265 - ] - }, - { - "teal": 250, - "source": 94, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 253, - "source": 94, - "pc": [ - 268 - ] - }, - { - "teal": 254, - "source": 86, - "pc": [ - 269 - ] - }, - { - "teal": 259, - "source": 102, - "pc": [ - 270, - 271, - 272 - ] - }, - { - "teal": 260, - "source": 102, - "pc": [ - 273 - ] - }, - { - "teal": 261, - "source": 102, - "pc": [ - 274 - ] - }, - { - "teal": 262, - "source": 102, - "pc": [ - 275 - ] - }, - { - "teal": 263, - "source": 102, - "pc": [ - 276 - ] - }, - { - "teal": 266, - "source": 102, - "errorMessage": "argument 0 (newAdmin) for arc58_changeAdmin must be a address", - "pc": [ - 277 - ] - }, - { - "teal": 269, - "source": 102, - "pc": [ - 278, - 279, - 280 - ] - }, - { - "teal": 270, - "source": 102, - "pc": [ - 281 - ] - }, - { - "teal": 271, - "source": 102, - "pc": [ - 282 - ] - }, - { - "teal": 279, - "source": 102, - "pc": [ - 283, - 284, - 285 - ] - }, - { - "teal": 284, - "source": 103, - "pc": [ - 286, - 287 - ] - }, - { - "teal": 285, - "source": 103, - "pc": [ - 288 - ] - }, - { - "teal": 286, - "source": 103, - "pc": [ - 289 - ] - }, - { - "teal": 287, - "source": 103, - "pc": [ - 290 - ] - }, - { - "teal": 290, - "source": 103, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", - "pc": [ - 291 - ] - }, - { - "teal": 294, - "source": 104, - "pc": [ - 292 - ] - }, - { - "teal": 295, - "source": 104, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 296, - "source": 104, - "pc": [ - 295 - ] - }, - { - "teal": 297, - "source": 102, - "pc": [ - 296 - ] - }, - { - "teal": 302, - "source": 115, - "pc": [ - 297, - 298, - 299 - ] - }, - { - "teal": 303, - "source": 115, - "pc": [ - 300 - ] - }, - { - "teal": 304, - "source": 115, - "pc": [ - 301 - ] - }, - { - "teal": 305, - "source": 115, - "pc": [ - 302 - ] - }, - { - "teal": 306, - "source": 115, - "pc": [ - 303 - ] - }, - { - "teal": 309, - "source": 115, - "errorMessage": "argument 0 (newAdmin) for arc58_pluginChangeAdmin must be a address", - "pc": [ - 304 - ] - }, - { - "teal": 312, - "source": 115, - "pc": [ - 305, - 306, - 307 - ] - }, - { - "teal": 313, - "source": 115, - "pc": [ - 308 - ] - }, - { - "teal": 314, - "source": 115, - "pc": [ - 309 - ] - }, - { - "teal": 315, - "source": 115, - "pc": [ - 310 - ] - }, - { - "teal": 316, - "source": 115, - "pc": [ - 311 - ] - }, - { - "teal": 319, - "source": 115, - "errorMessage": "argument 1 (allowedCaller) for arc58_pluginChangeAdmin must be a address", - "pc": [ - 312 - ] - }, - { - "teal": 322, - "source": 115, - "pc": [ - 313, - 314, - 315 - ] - }, - { - "teal": 323, - "source": 115, - "pc": [ - 316 - ] - }, - { - "teal": 326, - "source": 115, - "pc": [ - 317, - 318, - 319 - ] - }, - { - "teal": 327, - "source": 115, - "pc": [ - 320 - ] - }, - { - "teal": 328, - "source": 115, - "pc": [ - 321 - ] - }, - { - "teal": 338, - "source": 115, - "pc": [ - 322, - 323, - 324 - ] - }, - { - "teal": 341, - "source": 115, - "pc": [ - 325 - ] - }, - { - "teal": 346, - "source": 116, - "pc": [ - 326, - 327 - ] - }, - { - "teal": 347, - "source": 116, - "pc": [ - 328, - 329 - ] - }, - { - "teal": 348, - "source": 116, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 349, - "source": 116, - "pc": [ - 332 - ] - }, - { - "teal": 350, - "source": 116, - "pc": [ - 333 - ] - }, - { - "teal": 353, - "source": 116, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"plugin.address\"}", - "pc": [ - 334 - ] - }, - { - "teal": 357, - "source": 117, - "pc": [ - 335 - ] - }, - { - "teal": 358, - "source": 117, - "pc": [ - 336 - ] - }, - { - "teal": 359, - "source": 117, - "pc": [ - 337, - 338 - ] - }, - { - "teal": 360, - "source": 117, - "pc": [ - 339 - ] - }, - { - "teal": 361, - "source": 117, - "pc": [ - 340, - 341 - ] - }, - { - "teal": 362, - "source": 117, - "pc": [ - 342, - 343 - ] - }, - { - "teal": 363, - "source": 117, - "pc": [ - 344 - ] - }, - { - "teal": 364, - "source": 117, - "pc": [ - 345 - ] - }, - { - "teal": 367, - "source": 117, - "errorMessage": "This plugin is not in control of the account", - "pc": [ - 346 - ] - }, - { - "teal": 371, - "source": 119, - "pc": [ - 347, - 348 - ] - }, - { - "teal": 372, - "source": 119, - "pc": [ - 349 - ] - }, - { - "teal": 373, - "source": 119, - "pc": [ - 350, - 351 - ] - }, - { - "teal": 374, - "source": 119, - "pc": [ - 352 - ] - }, - { - "teal": 375, - "source": 119, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 382, - "source": 121, - "pc": [ - 355 - ] - }, - { - "teal": 383, - "source": 121, - "pc": [ - 356, - 357 - ] - }, - { - "teal": 384, - "source": 121, - "pc": [ - 358 - ] - }, - { - "teal": 385, - "source": 121, - "pc": [ - 359 - ] - }, - { - "teal": 386, - "source": 121, - "pc": [ - 360 - ] - }, - { - "teal": 387, - "source": 121, - "pc": [ - 361 - ] - }, - { - "teal": 388, - "source": 121, - "pc": [ - 362 - ] - }, - { - "teal": 389, - "source": 121, - "pc": [ - 363, - 364, - 365 - ] - }, - { - "teal": 390, - "source": 121, - "pc": [ - 366 - ] - }, - { - "teal": 391, - "source": 121, - "pc": [ - 367, - 368 - ] - }, - { - "teal": 392, - "source": 121, - "pc": [ - 369 - ] - }, - { - "teal": 393, - "source": 121, - "pc": [ - 370 - ] - }, - { - "teal": 396, - "source": 121, - "errorMessage": "box value does not exist: this.plugins(key).value", - "pc": [ - 371 - ] - }, - { - "teal": 397, - "source": 121, - "pc": [ - 372, - 373 - ] - }, - { - "teal": 398, - "source": 121, - "pc": [ - 374, - 375 - ] - }, - { - "teal": 399, - "source": 121, - "pc": [ - 376, - 377, - 378 - ] - }, - { - "teal": 400, - "source": 121, - "pc": [ - 379 - ] - }, - { - "teal": 401, - "source": 121, - "pc": [ - 380 - ] - }, - { - "teal": 405, - "source": 120, - "errorMessage": "This plugin does not have admin privileges", - "pc": [ - 381 - ] - }, - { - "teal": 409, - "source": 125, - "pc": [ - 382 - ] - }, - { - "teal": 410, - "source": 125, - "pc": [ - 383, - 384 - ] - }, - { - "teal": 411, - "source": 125, - "pc": [ - 385 - ] - }, - { - "teal": 412, - "source": 115, - "pc": [ - 386 - ] - }, - { - "teal": 417, - "source": 132, - "pc": [ - 387, - 388, - 389, - 390, - 391, - 392 - ] - }, - { - "teal": 420, - "source": 132, - "pc": [ - 393, - 394, - 395 - ] - }, - { - "teal": 421, - "source": 132, - "pc": [ - 396 - ] - }, - { - "teal": 422, - "source": 132, - "pc": [ - 397 - ] - }, - { - "teal": 423, - "source": 132, - "pc": [ - 398 - ] - }, - { - "teal": 424, - "source": 132, - "pc": [ - 399 - ] - }, - { - "teal": 431, - "source": 132, - "pc": [ - 400, - 401, - 402 - ] - }, - { - "teal": 435, - "source": 133, - "pc": [ - 403 - ] - }, - { - "teal": 436, - "source": 133, - "pc": [ - 404 - ] - }, - { - "teal": 437, - "source": 132, - "pc": [ - 405 - ] - }, - { - "teal": 442, - "source": 139, - "pc": [ - 406, - 407, - 408 - ] - }, - { - "teal": 443, - "source": 139, - "pc": [ - 409 - ] - }, - { - "teal": 444, - "source": 139, - "pc": [ - 410 - ] - }, - { - "teal": 450, - "source": 139, - "pc": [ - 411, - 412, - 413 - ] - }, - { - "teal": 454, - "source": 140, - "pc": [ - 414 - ] - }, - { - "teal": 455, - "source": 140, - "pc": [ - 415 - ] - }, - { - "teal": 456, - "source": 140, - "pc": [ - 416, - 417 - ] - }, - { - "teal": 457, - "source": 140, - "pc": [ - 418 - ] - }, - { - "teal": 458, - "source": 140, - "pc": [ - 419, - 420, - 421 - ] - }, - { - "teal": 459, - "source": 140, - "pc": [ - 422 - ] - }, - { - "teal": 460, - "source": 140, - "pc": [ - 423 - ] - }, - { - "teal": 461, - "source": 139, - "pc": [ - 424 - ] - }, - { - "teal": 466, - "source": 149, - "pc": [ - 425, - 426, - 427 - ] - }, - { - "teal": 467, - "source": 149, - "pc": [ - 428 - ] - }, - { - "teal": 468, - "source": 149, - "pc": [ - 429 - ] - }, - { - "teal": 469, - "source": 149, - "pc": [ - 430 - ] - }, - { - "teal": 470, - "source": 149, - "pc": [ - 431 - ] - }, - { - "teal": 473, - "source": 149, - "errorMessage": "argument 0 (flash) for arc58_rekeyTo must be a bool", - "pc": [ - 432 - ] - }, - { - "teal": 474, - "source": 149, - "pc": [ - 433 - ] - }, - { - "teal": 475, - "source": 149, - "pc": [ - 434 - ] - }, - { - "teal": 478, - "source": 149, - "pc": [ - 435, - 436, - 437 - ] - }, - { - "teal": 479, - "source": 149, - "pc": [ - 438 - ] - }, - { - "teal": 480, - "source": 149, - "pc": [ - 439 - ] - }, - { - "teal": 481, - "source": 149, - "pc": [ - 440 - ] - }, - { - "teal": 482, - "source": 149, - "pc": [ - 441 - ] - }, - { - "teal": 485, - "source": 149, - "errorMessage": "argument 1 (addr) for arc58_rekeyTo must be a address", - "pc": [ - 442 - ] - }, - { - "teal": 488, - "source": 149, - "pc": [ - 443, - 444, - 445 - ] - }, - { - "teal": 489, - "source": 149, - "pc": [ - 446 - ] - }, - { - "teal": 490, - "source": 149, - "pc": [ - 447 - ] - }, - { - "teal": 499, - "source": 149, - "pc": [ - 448, - 449, - 450 - ] - }, - { - "teal": 504, - "source": 150, - "pc": [ - 451, - 452 - ] - }, - { - "teal": 505, - "source": 150, - "pc": [ - 453 - ] - }, - { - "teal": 506, - "source": 150, - "pc": [ - 454 - ] - }, - { - "teal": 507, - "source": 150, - "pc": [ - 455 - ] - }, - { - "teal": 510, - "source": 150, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", - "pc": [ - 456 - ] - }, - { - "teal": 519, - "source": 152, - "pc": [ - 457 - ] - }, - { - "teal": 520, - "source": 152, - "pc": [ - 458 - ] - }, - { - "teal": 521, - "source": 152, - "pc": [ - 459, - 460 - ] - }, - { - "teal": 525, - "source": 153, - "pc": [ - 461 - ] - }, - { - "teal": 526, - "source": 153, - "pc": [ - 462 - ] - }, - { - "teal": 527, - "source": 153, - "pc": [ - 463, - 464 - ] - }, - { - "teal": 531, - "source": 154, - "pc": [ - 465, - 466 - ] - }, - { - "teal": 532, - "source": 154, - "pc": [ - 467, - 468 - ] - }, - { - "teal": 536, - "source": 155, - "pc": [ - 469, - 470 - ] - }, - { - "teal": 537, - "source": 155, - "pc": [ - 471, - 472 - ] - }, - { - "teal": 541, - "source": 156, - "pc": [ - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501 - ] - }, - { - "teal": 542, - "source": 156, - "pc": [ - 502, - 503 - ] - }, - { - "teal": 545, - "source": 152, - "pc": [ - 504 - ] - }, - { - "teal": 546, - "source": 152, - "pc": [ - 505, - 506 - ] - }, - { - "teal": 549, - "source": 152, - "pc": [ - 507 - ] - }, - { - "teal": 554, - "source": 159, - "pc": [ - 508, - 509 - ] - }, - { - "teal": 555, - "source": 159, - "pc": [ - 510, - 511, - 512 - ] - }, - { - "teal": 560, - "source": 159, - "pc": [ - 513, - 514, - 515 - ] - }, - { - "teal": 563, - "source": 149, - "pc": [ - 516 - ] - }, - { - "teal": 567, - "source": 162, - "pc": [ - 517, - 518, - 519 - ] - }, - { - "teal": 570, - "source": 162, - "pc": [ - 520 - ] - }, - { - "teal": 574, - "source": 163, - "pc": [ - 521, - 522 - ] - }, - { - "teal": 575, - "source": 163, - "pc": [ - 523 - ] - }, - { - "teal": 576, - "source": 163, - "pc": [ - 524, - 525 - ] - }, - { - "teal": 577, - "source": 163, - "pc": [ - 526 - ] - }, - { - "teal": 578, - "source": 163, - "pc": [ - 527, - 528 - ] - }, - { - "teal": 586, - "source": 166, - "pc": [ - 529 - ] - }, - { - "teal": 587, - "source": 166, - "pc": [ - 530, - 531 - ] - }, - { - "teal": 588, - "source": 166, - "pc": [ - 532 - ] - }, - { - "teal": 589, - "source": 166, - "pc": [ - 533 - ] - }, - { - "teal": 590, - "source": 166, - "pc": [ - 534 - ] - }, - { - "teal": 591, - "source": 166, - "pc": [ - 535 - ] - }, - { - "teal": 592, - "source": 166, - "pc": [ - 536 - ] - }, - { - "teal": 593, - "source": 166, - "pc": [ - 537, - 538, - 539 - ] - }, - { - "teal": 594, - "source": 167, - "pc": [ - 540 - ] - }, - { - "teal": 595, - "source": 167, - "pc": [ - 541, - 542 - ] - }, - { - "teal": 596, - "source": 167, - "pc": [ - 543 - ] - }, - { - "teal": 597, - "source": 167, - "pc": [ - 544 - ] - }, - { - "teal": 600, - "source": 167, - "errorMessage": "box value does not exist: this.plugins(key).value", - "pc": [ - 545 - ] - }, - { - "teal": 601, - "source": 167, - "pc": [ - 546, - 547 - ] - }, - { - "teal": 602, - "source": 167, - "pc": [ - 548, - 549 - ] - }, - { - "teal": 603, - "source": 167, - "pc": [ - 550, - 551, - 552 - ] - }, - { - "teal": 604, - "source": 167, - "pc": [ - 553 - ] - }, - { - "teal": 605, - "source": 167, - "pc": [ - 554, - 555 - ] - }, - { - "teal": 606, - "source": 167, - "pc": [ - 556 - ] - }, - { - "teal": 607, - "source": 166, - "pc": [ - 557 - ] - }, - { - "teal": 610, - "source": 167, - "pc": [ - 558 - ] - }, - { - "teal": 611, - "source": 167, - "pc": [ - 559, - 560, - 561 - ] - }, - { - "teal": 612, - "source": 168, - "pc": [ - 562, - 563 - ] - }, - { - "teal": 613, - "source": 168, - "pc": [ - 564 - ] - }, - { - "teal": 614, - "source": 168, - "pc": [ - 565, - 566 - ] - }, - { - "teal": 615, - "source": 168, - "pc": [ - 567 - ] - }, - { - "teal": 616, - "source": 168, - "pc": [ - 568 - ] - }, - { - "teal": 619, - "source": 168, - "errorMessage": "box value does not exist: this.plugins(key).value", - "pc": [ - 569 - ] - }, - { - "teal": 620, - "source": 168, - "pc": [ - 570, - 571 - ] - }, - { - "teal": 621, - "source": 168, - "pc": [ - 572, - 573 - ] - }, - { - "teal": 622, - "source": 168, - "pc": [ - 574, - 575, - 576 - ] - }, - { - "teal": 623, - "source": 168, - "pc": [ - 577 - ] - }, - { - "teal": 624, - "source": 168, - "pc": [ - 578 - ] - }, - { - "teal": 625, - "source": 168, - "pc": [ - 579 - ] - }, - { - "teal": 626, - "source": 168, - "pc": [ - 580, - 581 - ] - }, - { - "teal": 627, - "source": 168, - "pc": [ - 582 - ] - }, - { - "teal": 628, - "source": 168, - "pc": [ - 583 - ] - }, - { - "teal": 631, - "source": 168, - "errorMessage": "box value does not exist: this.plugins(key).value", - "pc": [ - 584 - ] - }, - { - "teal": 632, - "source": 168, - "pc": [ - 585, - 586 - ] - }, - { - "teal": 633, - "source": 168, - "pc": [ - 587, - 588 - ] - }, - { - "teal": 634, - "source": 168, - "pc": [ - 589, - 590, - 591 - ] - }, - { - "teal": 635, - "source": 168, - "pc": [ - 592 - ] - }, - { - "teal": 636, - "source": 168, - "pc": [ - 593 - ] - }, - { - "teal": 637, - "source": 167, - "pc": [ - 594 - ] - }, - { - "teal": 641, - "source": 162, - "pc": [ - 595, - 596 - ] - }, - { - "teal": 642, - "source": 162, - "pc": [ - 597 - ] - }, - { - "teal": 647, - "source": 177, - "pc": [ - 598, - 599, - 600 - ] - }, - { - "teal": 648, - "source": 177, - "pc": [ - 601 - ] - }, - { - "teal": 651, - "source": 177, - "pc": [ - 602, - 603, - 604 - ] - }, - { - "teal": 652, - "source": 177, - "pc": [ - 605 - ] - }, - { - "teal": 653, - "source": 177, - "pc": [ - 606 - ] - }, - { - "teal": 661, - "source": 177, - "pc": [ - 607, - 608, - 609 - ] - }, - { - "teal": 664, - "source": 177, - "pc": [ - 610 - ] - }, - { - "teal": 668, - "source": 178, - "pc": [ - 611, - 612 - ] - }, - { - "teal": 669, - "source": 178, - "pc": [ - 613, - 614 - ] - }, - { - "teal": 670, - "source": 178, - "pc": [ - 615, - 616, - 617 - ] - }, - { - "teal": 671, - "source": 178, - "pc": [ - 618, - 619 - ] - }, - { - "teal": 676, - "source": 180, - "pc": [ - 620, - 621 - ] - }, - { - "teal": 677, - "source": 180, - "pc": [ - 622 - ] - }, - { - "teal": 678, - "source": 180, - "pc": [ - 623, - 624, - 625 - ] - }, - { - "teal": 683, - "source": 181, - "pc": [ - 626, - 627 - ] - }, - { - "teal": 684, - "source": 181, - "pc": [ - 628, - 629 - ] - }, - { - "teal": 685, - "source": 181, - "pc": [ - 630, - 631, - 632 - ] - }, - { - "teal": 688, - "source": 181, - "errorMessage": "This sender is not allowed to trigger this plugin", - "pc": [ - 633 - ] - }, - { - "teal": 698, - "source": 183, - "pc": [ - 634 - ] - }, - { - "teal": 699, - "source": 183, - "pc": [ - 635 - ] - }, - { - "teal": 700, - "source": 183, - "pc": [ - 636, - 637 - ] - }, - { - "teal": 704, - "source": 184, - "pc": [ - 638 - ] - }, - { - "teal": 705, - "source": 184, - "pc": [ - 639 - ] - }, - { - "teal": 706, - "source": 184, - "pc": [ - 640, - 641 - ] - }, - { - "teal": 710, - "source": 185, - "pc": [ - 642 - ] - }, - { - "teal": 711, - "source": 185, - "pc": [ - 643 - ] - }, - { - "teal": 712, - "source": 185, - "pc": [ - 644, - 645 - ] - }, - { - "teal": 716, - "source": 186, - "pc": [ - 646, - 647 - ] - }, - { - "teal": 717, - "source": 186, - "pc": [ - 648, - 649 - ] - }, - { - "teal": 718, - "source": 186, - "pc": [ - 650 - ] - }, - { - "teal": 719, - "source": 186, - "pc": [ - 651, - 652 - ] - }, - { - "teal": 723, - "source": 187, - "pc": [ - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676 - ] - }, - { - "teal": 724, - "source": 187, - "pc": [ - 677, - 678 - ] - }, - { - "teal": 727, - "source": 183, - "pc": [ - 679 - ] - }, - { - "teal": 728, - "source": 183, - "pc": [ - 680, - 681 - ] - }, - { - "teal": 731, - "source": 183, - "pc": [ - 682 - ] - }, - { - "teal": 738, - "source": 190, - "pc": [ - 683 - ] - }, - { - "teal": 739, - "source": 191, - "pc": [ - 684, - 685 - ] - }, - { - "teal": 740, - "source": 191, - "pc": [ - 686 - ] - }, - { - "teal": 741, - "source": 192, - "pc": [ - 687, - 688 - ] - }, - { - "teal": 742, - "source": 192, - "pc": [ - 689, - 690, - 691 - ] - }, - { - "teal": 743, - "source": 192, - "pc": [ - 692, - 693 - ] - }, - { - "teal": 744, - "source": 192, - "pc": [ - 694, - 695, - 696 - ] - }, - { - "teal": 747, - "source": 192, - "pc": [ - 697, - 698 - ] - }, - { - "teal": 750, - "source": 192, - "pc": [ - 699 - ] - }, - { - "teal": 751, - "source": 190, - "pc": [ - 700 - ] - }, - { - "teal": 752, - "source": 190, - "pc": [ - 701 - ] - }, - { - "teal": 755, - "source": 190, - "errorMessage": "box value does not exist: this.plugins({ application: plugin, allowedCaller: globalAllowed ? Address.zeroAddress : this.txn.sender, }).value", - "pc": [ - 702 - ] - }, - { - "teal": 756, - "source": 190, - "pc": [ - 703, - 704 - ] - }, - { - "teal": 757, - "source": 190, - "pc": [ - 705, - 706 - ] - }, - { - "teal": 758, - "source": 190, - "pc": [ - 707, - 708 - ] - }, - { - "teal": 759, - "source": 193, - "pc": [ - 709, - 710 - ] - }, - { - "teal": 760, - "source": 193, - "pc": [ - 711 - ] - }, - { - "teal": 761, - "source": 190, - "pc": [ - 712 - ] - }, - { - "teal": 762, - "source": 191, - "pc": [ - 713, - 714 - ] - }, - { - "teal": 763, - "source": 191, - "pc": [ - 715 - ] - }, - { - "teal": 764, - "source": 192, - "pc": [ - 716, - 717 - ] - }, - { - "teal": 765, - "source": 192, - "pc": [ - 718, - 719, - 720 - ] - }, - { - "teal": 766, - "source": 192, - "pc": [ - 721, - 722 - ] - }, - { - "teal": 767, - "source": 192, - "pc": [ - 723, - 724, - 725 - ] - }, - { - "teal": 770, - "source": 192, - "pc": [ - 726, - 727 - ] - }, - { - "teal": 773, - "source": 192, - "pc": [ - 728 - ] - }, - { - "teal": 774, - "source": 190, - "pc": [ - 729 - ] - }, - { - "teal": 775, - "source": 190, - "pc": [ - 730, - 731 - ] - }, - { - "teal": 776, - "source": 190, - "pc": [ - 732 - ] - }, - { - "teal": 780, - "source": 195, - "pc": [ - 733, - 734, - 735 - ] - }, - { - "teal": 781, - "source": 177, - "pc": [ - 736 - ] - }, - { - "teal": 786, - "source": 203, - "pc": [ - 737, - 738, - 739 - ] - }, - { - "teal": 787, - "source": 203, - "pc": [ - 740, - 741, - 742 - ] - }, - { - "teal": 790, - "source": 203, - "pc": [ - 743, - 744, - 745 - ] - }, - { - "teal": 791, - "source": 203, - "pc": [ - 746 - ] - }, - { - "teal": 792, - "source": 203, - "pc": [ - 747 - ] - }, - { - "teal": 800, - "source": 203, - "pc": [ - 748, - 749, - 750 - ] - }, - { - "teal": 804, - "source": 204, - "pc": [ - 751 - ] - }, - { - "teal": 805, - "source": 204, - "pc": [ - 752, - 753 - ] - }, - { - "teal": 806, - "source": 204, - "pc": [ - 754, - 755 - ] - }, - { - "teal": 807, - "source": 204, - "pc": [ - 756, - 757 - ] - }, - { - "teal": 808, - "source": 204, - "pc": [ - 758 - ] - }, - { - "teal": 809, - "source": 204, - "pc": [ - 759, - 760 - ] - }, - { - "teal": 810, - "source": 204, - "pc": [ - 761 - ] - }, - { - "teal": 811, - "source": 204, - "pc": [ - 762 - ] - }, - { - "teal": 812, - "source": 204, - "pc": [ - 763, - 764, - 765 - ] - }, - { - "teal": 813, - "source": 203, - "pc": [ - 766 - ] - }, - { - "teal": 818, - "source": 222, - "pc": [ - 767, - 768, - 769 - ] - }, - { - "teal": 819, - "source": 222, - "pc": [ - 770 - ] - }, - { - "teal": 820, - "source": 222, - "pc": [ - 771 - ] - }, - { - "teal": 821, - "source": 222, - "pc": [ - 772 - ] - }, - { - "teal": 822, - "source": 222, - "pc": [ - 773 - ] - }, - { - "teal": 825, - "source": 222, - "errorMessage": "argument 0 (adminPrivileges) for arc58_addPlugin must be a bool", - "pc": [ - 774 - ] - }, - { - "teal": 826, - "source": 222, - "pc": [ - 775 - ] - }, - { - "teal": 827, - "source": 222, - "pc": [ - 776 - ] - }, - { - "teal": 830, - "source": 221, - "pc": [ - 777, - 778, - 779 - ] - }, - { - "teal": 831, - "source": 221, - "pc": [ - 780 - ] - }, - { - "teal": 834, - "source": 220, - "pc": [ - 781, - 782, - 783 - ] - }, - { - "teal": 835, - "source": 220, - "pc": [ - 784 - ] - }, - { - "teal": 838, - "source": 219, - "pc": [ - 785, - 786, - 787 - ] - }, - { - "teal": 839, - "source": 219, - "pc": [ - 788 - ] - }, - { - "teal": 840, - "source": 219, - "pc": [ - 789 - ] - }, - { - "teal": 841, - "source": 219, - "pc": [ - 790 - ] - }, - { - "teal": 842, - "source": 219, - "pc": [ - 791 - ] - }, - { - "teal": 845, - "source": 219, - "errorMessage": "argument 3 (allowedCaller) for arc58_addPlugin must be a address", - "pc": [ - 792 - ] - }, - { - "teal": 848, - "source": 218, - "pc": [ - 793, - 794, - 795 - ] - }, - { - "teal": 849, - "source": 218, - "pc": [ - 796 - ] - }, - { - "teal": 852, - "source": 217, - "pc": [ - 797, - 798, - 799 - ] - }, - { - "teal": 853, - "source": 217, - "pc": [ - 800 - ] - }, - { - "teal": 854, - "source": 217, - "pc": [ - 801 - ] - }, - { - "teal": 867, - "source": 217, - "pc": [ - 802, - 803, - 804 - ] - }, - { - "teal": 870, - "source": 217, - "pc": [ - 805 - ] - }, - { - "teal": 875, - "source": 224, - "pc": [ - 806, - 807 - ] - }, - { - "teal": 876, - "source": 224, - "pc": [ - 808 - ] - }, - { - "teal": 877, - "source": 224, - "pc": [ - 809 - ] - }, - { - "teal": 878, - "source": 224, - "pc": [ - 810 - ] - }, - { - "teal": 881, - "source": 224, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", - "pc": [ - 811 - ] - }, - { - "teal": 885, - "source": 225, - "pc": [ - 812, - 813 - ] - }, - { - "teal": 886, - "source": 225, - "pc": [ - 814 - ] - }, - { - "teal": 887, - "source": 225, - "pc": [ - 815, - 816 - ] - }, - { - "teal": 888, - "source": 225, - "pc": [ - 817 - ] - }, - { - "teal": 889, - "source": 225, - "pc": [ - 818, - 819 - ] - }, - { - "teal": 898, - "source": 226, - "pc": [ - 820 - ] - }, - { - "teal": 899, - "source": 226, - "pc": [ - 821, - 822 - ] - }, - { - "teal": 900, - "source": 226, - "pc": [ - 823 - ] - }, - { - "teal": 901, - "source": 227, - "pc": [ - 824, - 825 - ] - }, - { - "teal": 902, - "source": 227, - "pc": [ - 826 - ] - }, - { - "teal": 903, - "source": 228, - "pc": [ - 827, - 828 - ] - }, - { - "teal": 904, - "source": 228, - "pc": [ - 829 - ] - }, - { - "teal": 905, - "source": 228, - "pc": [ - 830 - ] - }, - { - "teal": 906, - "source": 229, - "pc": [ - 831, - 832 - ] - }, - { - "teal": 907, - "source": 229, - "pc": [ - 833 - ] - }, - { - "teal": 908, - "source": 230, - "pc": [ - 834, - 835 - ] - }, - { - "teal": 909, - "source": 230, - "pc": [ - 836 - ] - }, - { - "teal": 910, - "source": 230, - "pc": [ - 837, - 838 - ] - }, - { - "teal": 911, - "source": 230, - "pc": [ - 839 - ] - }, - { - "teal": 912, - "source": 226, - "pc": [ - 840 - ] - }, - { - "teal": 913, - "source": 226, - "pc": [ - 841 - ] - }, - { - "teal": 914, - "source": 217, - "pc": [ - 842 - ] - }, - { - "teal": 919, - "source": 239, - "pc": [ - 843, - 844, - 845 - ] - }, - { - "teal": 920, - "source": 239, - "pc": [ - 846 - ] - }, - { - "teal": 921, - "source": 239, - "pc": [ - 847 - ] - }, - { - "teal": 922, - "source": 239, - "pc": [ - 848 - ] - }, - { - "teal": 923, - "source": 239, - "pc": [ - 849 - ] - }, - { - "teal": 926, - "source": 239, - "errorMessage": "argument 0 (allowedCaller) for arc58_removePlugin must be a address", - "pc": [ - 850 - ] - }, - { - "teal": 929, - "source": 239, - "pc": [ - 851, - 852, - 853 - ] - }, - { - "teal": 930, - "source": 239, - "pc": [ - 854 - ] - }, - { - "teal": 933, - "source": 239, - "pc": [ - 855, - 856, - 857 - ] - }, - { - "teal": 934, - "source": 239, - "pc": [ - 858 - ] - }, - { - "teal": 935, - "source": 239, - "pc": [ - 859 - ] - }, - { - "teal": 943, - "source": 239, - "pc": [ - 860, - 861, - 862 - ] - }, - { - "teal": 946, - "source": 239, - "pc": [ - 863 - ] - }, - { - "teal": 951, - "source": 240, - "pc": [ - 864, - 865 - ] - }, - { - "teal": 952, - "source": 240, - "pc": [ - 866 - ] - }, - { - "teal": 953, - "source": 240, - "pc": [ - 867 - ] - }, - { - "teal": 954, - "source": 240, - "pc": [ - 868 - ] - }, - { - "teal": 957, - "source": 240, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", - "pc": [ - 869 - ] - }, - { - "teal": 961, - "source": 242, - "pc": [ - 870, - 871 - ] - }, - { - "teal": 962, - "source": 242, - "pc": [ - 872 - ] - }, - { - "teal": 963, - "source": 242, - "pc": [ - 873, - 874 - ] - }, - { - "teal": 964, - "source": 242, - "pc": [ - 875 - ] - }, - { - "teal": 965, - "source": 242, - "pc": [ - 876, - 877 - ] - }, - { - "teal": 969, - "source": 243, - "pc": [ - 878 - ] - }, - { - "teal": 970, - "source": 243, - "pc": [ - 879, - 880 - ] - }, - { - "teal": 971, - "source": 243, - "pc": [ - 881 - ] - }, - { - "teal": 972, - "source": 243, - "pc": [ - 882 - ] - }, - { - "teal": 973, - "source": 239, - "pc": [ - 883 - ] - }, - { - "teal": 978, - "source": 263, - "pc": [ - 884, - 885, - 886 - ] - }, - { - "teal": 979, - "source": 263, - "pc": [ - 887 - ] - }, - { - "teal": 980, - "source": 263, - "pc": [ - 888 - ] - }, - { - "teal": 981, - "source": 263, - "pc": [ - 889 - ] - }, - { - "teal": 982, - "source": 263, - "pc": [ - 890 - ] - }, - { - "teal": 985, - "source": 263, - "errorMessage": "argument 0 (adminPrivileges) for arc58_addNamedPlugin must be a bool", - "pc": [ - 891 - ] - }, - { - "teal": 986, - "source": 263, - "pc": [ - 892 - ] - }, - { - "teal": 987, - "source": 263, - "pc": [ - 893 - ] - }, - { - "teal": 990, - "source": 262, - "pc": [ - 894, - 895, - 896 - ] - }, - { - "teal": 991, - "source": 262, - "pc": [ - 897 - ] - }, - { - "teal": 994, - "source": 261, - "pc": [ - 898, - 899, - 900 - ] - }, - { - "teal": 995, - "source": 261, - "pc": [ - 901 - ] - }, - { - "teal": 998, - "source": 260, - "pc": [ - 902, - 903, - 904 - ] - }, - { - "teal": 999, - "source": 260, - "pc": [ - 905 - ] - }, - { - "teal": 1000, - "source": 260, - "pc": [ - 906 - ] - }, - { - "teal": 1001, - "source": 260, - "pc": [ - 907 - ] - }, - { - "teal": 1002, - "source": 260, - "pc": [ - 908 - ] - }, - { - "teal": 1005, - "source": 260, - "errorMessage": "argument 3 (allowedCaller) for arc58_addNamedPlugin must be a address", - "pc": [ - 909 - ] - }, - { - "teal": 1008, - "source": 259, - "pc": [ - 910, - 911, - 912 - ] - }, - { - "teal": 1009, - "source": 259, - "pc": [ - 913 - ] - }, - { - "teal": 1012, - "source": 258, - "pc": [ - 914, - 915, - 916 - ] - }, - { - "teal": 1013, - "source": 258, - "pc": [ - 917, - 918, - 919 - ] - }, - { - "teal": 1016, - "source": 257, - "pc": [ - 920, - 921, - 922 - ] - }, - { - "teal": 1017, - "source": 257, - "pc": [ - 923 - ] - }, - { - "teal": 1018, - "source": 257, - "pc": [ - 924 - ] - }, - { - "teal": 1032, - "source": 257, - "pc": [ - 925, - 926, - 927 - ] - }, - { - "teal": 1035, - "source": 257, - "pc": [ - 928 - ] - }, - { - "teal": 1040, - "source": 265, - "pc": [ - 929, - 930 - ] - }, - { - "teal": 1041, - "source": 265, - "pc": [ - 931 - ] - }, - { - "teal": 1042, - "source": 265, - "pc": [ - 932 - ] - }, - { - "teal": 1043, - "source": 265, - "pc": [ - 933 - ] - }, - { - "teal": 1046, - "source": 265, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", - "pc": [ - 934 - ] - }, - { - "teal": 1050, - "source": 266, - "pc": [ - 935, - 936 - ] - }, - { - "teal": 1051, - "source": 266, - "pc": [ - 937, - 938 - ] - }, - { - "teal": 1052, - "source": 266, - "pc": [ - 939 - ] - }, - { - "teal": 1053, - "source": 266, - "pc": [ - 940 - ] - }, - { - "teal": 1054, - "source": 266, - "pc": [ - 941 - ] - }, - { - "teal": 1055, - "source": 266, - "pc": [ - 942 - ] - }, - { - "teal": 1056, - "source": 266, - "pc": [ - 943 - ] - }, - { - "teal": 1057, - "source": 266, - "pc": [ - 944 - ] - }, - { - "teal": 1061, - "source": 268, - "pc": [ - 945, - 946 - ] - }, - { - "teal": 1062, - "source": 268, - "pc": [ - 947 - ] - }, - { - "teal": 1063, - "source": 268, - "pc": [ - 948, - 949 - ] - }, - { - "teal": 1064, - "source": 268, - "pc": [ - 950 - ] - }, - { - "teal": 1065, - "source": 268, - "pc": [ - 951, - 952 - ] - }, - { - "teal": 1069, - "source": 269, - "pc": [ - 953, - 954 - ] - }, - { - "teal": 1070, - "source": 269, - "pc": [ - 955, - 956 - ] - }, - { - "teal": 1071, - "source": 269, - "pc": [ - 957 - ] - }, - { - "teal": 1072, - "source": 269, - "pc": [ - 958, - 959 - ] - }, - { - "teal": 1073, - "source": 269, - "pc": [ - 960 - ] - }, - { - "teal": 1082, - "source": 270, - "pc": [ - 961 - ] - }, - { - "teal": 1083, - "source": 270, - "pc": [ - 962, - 963 - ] - }, - { - "teal": 1084, - "source": 270, - "pc": [ - 964 - ] - }, - { - "teal": 1085, - "source": 271, - "pc": [ - 965, - 966 - ] - }, - { - "teal": 1086, - "source": 271, - "pc": [ - 967 - ] - }, - { - "teal": 1087, - "source": 272, - "pc": [ - 968, - 969 - ] - }, - { - "teal": 1088, - "source": 272, - "pc": [ - 970 - ] - }, - { - "teal": 1089, - "source": 272, - "pc": [ - 971 - ] - }, - { - "teal": 1090, - "source": 273, - "pc": [ - 972, - 973 - ] - }, - { - "teal": 1091, - "source": 273, - "pc": [ - 974 - ] - }, - { - "teal": 1092, - "source": 274, - "pc": [ - 975, - 976 - ] - }, - { - "teal": 1093, - "source": 274, - "pc": [ - 977 - ] - }, - { - "teal": 1094, - "source": 274, - "pc": [ - 978, - 979 - ] - }, - { - "teal": 1095, - "source": 274, - "pc": [ - 980 - ] - }, - { - "teal": 1096, - "source": 270, - "pc": [ - 981 - ] - }, - { - "teal": 1097, - "source": 270, - "pc": [ - 982 - ] - }, - { - "teal": 1098, - "source": 257, - "pc": [ - 983 - ] - }, - { - "teal": 1103, - "source": 283, - "pc": [ - 984, - 985, - 986 - ] - }, - { - "teal": 1104, - "source": 283, - "pc": [ - 987, - 988, - 989 - ] - }, - { - "teal": 1107, - "source": 283, - "pc": [ - 990, - 991, - 992 - ] - }, - { - "teal": 1108, - "source": 283, - "pc": [ - 993 - ] - }, - { - "teal": 1109, - "source": 283, - "pc": [ - 994 - ] - }, - { - "teal": 1117, - "source": 283, - "pc": [ - 995, - 996, - 997 - ] - }, - { - "teal": 1120, - "source": 283, - "pc": [ - 998 - ] - }, - { - "teal": 1125, - "source": 284, - "pc": [ - 999, - 1000 - ] - }, - { - "teal": 1126, - "source": 284, - "pc": [ - 1001 - ] - }, - { - "teal": 1127, - "source": 284, - "pc": [ - 1002 - ] - }, - { - "teal": 1128, - "source": 284, - "pc": [ - 1003 - ] - }, - { - "teal": 1131, - "source": 284, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", - "pc": [ - 1004 - ] - }, - { - "teal": 1135, - "source": 286, - "pc": [ - 1005, - 1006 - ] - }, - { - "teal": 1136, - "source": 286, - "pc": [ - 1007, - 1008 - ] - }, - { - "teal": 1137, - "source": 286, - "pc": [ - 1009 - ] - }, - { - "teal": 1138, - "source": 286, - "pc": [ - 1010, - 1011 - ] - }, - { - "teal": 1142, - "source": 287, - "pc": [ - 1012, - 1013 - ] - }, - { - "teal": 1143, - "source": 287, - "pc": [ - 1014, - 1015 - ] - }, - { - "teal": 1144, - "source": 287, - "pc": [ - 1016 - ] - }, - { - "teal": 1145, - "source": 287, - "pc": [ - 1017 - ] - }, - { - "teal": 1149, - "source": 288, - "pc": [ - 1018 - ] - }, - { - "teal": 1150, - "source": 286, - "pc": [ - 1019, - 1020 - ] - }, - { - "teal": 1151, - "source": 286, - "pc": [ - 1021 - ] - }, - { - "teal": 1154, - "source": 286, - "errorMessage": "box value does not exist: this.namedPlugins(name).value", - "pc": [ - 1022 - ] - }, - { - "teal": 1155, - "source": 288, - "pc": [ - 1023 - ] - }, - { - "teal": 1156, - "source": 288, - "pc": [ - 1024 - ] - }, - { - "teal": 1157, - "source": 283, - "pc": [ - 1025 - ] - }, - { - "teal": 1160, - "source": 21, - "pc": [ - 1026, - 1027, - 1028, - 1029, - 1030, - 1031 - ] - }, - { - "teal": 1161, - "source": 21, - "pc": [ - 1032, - 1033, - 1034 - ] - }, - { - "teal": 1162, - "source": 21, - "pc": [ - 1035, - 1036, - 1037, - 1038 - ] - }, - { - "teal": 1165, - "source": 21, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 1039 - ] - }, - { - "teal": 1168, - "source": 21, - "pc": [ - 1040, - 1041, - 1042, - 1043, - 1044, - 1045 - ] - }, - { - "teal": 1169, - "source": 21, - "pc": [ - 1046, - 1047, - 1048, - 1049, - 1050, - 1051 - ] - }, - { - "teal": 1170, - "source": 21, - "pc": [ - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 - ] - }, - { - "teal": 1171, - "source": 21, - "pc": [ - 1058, - 1059 - ] - }, - { - "teal": 1172, - "source": 21, - "pc": [ - 1060, - 1061, - 1062, - 1063, - 1064, - 1065 - ] - }, - { - "teal": 1173, - "source": 21, - "pc": [ - 1066, - 1067, - 1068, - 1069, - 1070, - 1071 - ] - }, - { - "teal": 1174, - "source": 21, - "pc": [ - 1072, - 1073, - 1074, - 1075, - 1076, - 1077 - ] - }, - { - "teal": 1175, - "source": 21, - "pc": [ - 1078, - 1079, - 1080, - 1081, - 1082, - 1083 - ] - }, - { - "teal": 1176, - "source": 21, - "pc": [ - 1084, - 1085, - 1086, - 1087, - 1088, - 1089 - ] - }, - { - "teal": 1177, - "source": 21, - "pc": [ - 1090, - 1091, - 1092, - 1093, - 1094, - 1095 - ] - }, - { - "teal": 1178, - "source": 21, - "pc": [ - 1096, - 1097, - 1098, - 1099, - 1100, - 1101 - ] - }, - { - "teal": 1179, - "source": 21, - "pc": [ - 1102, - 1103, - 1104 - ] - }, - { - "teal": 1180, - "source": 21, - "pc": [ - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128 - ] - }, - { - "teal": 1183, - "source": 21, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 1129 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 68 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 231 + ], + "errorMessage": "argument 0 (admin) for createApplication must be a address" + }, + { + "pc": [ + 240 + ], + "errorMessage": "argument 1 (controlledAddress) for createApplication must be a address" + }, + { + "pc": [ + 261 + ], + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"includedIn\",\"expected\":\"[controlledAddress, admin]\"}" + }, + { + "pc": [ + 302 + ], + "errorMessage": "argument 0 (newAdmin) for arc58_changeAdmin must be a address" + }, + { + "pc": [ + 319 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}" + }, + { + "pc": [ + 335 + ], + "errorMessage": "argument 0 (newAdmin) for arc58_pluginChangeAdmin must be a address" + }, + { + "pc": [ + 344 + ], + "errorMessage": "argument 1 (allowedCaller) for arc58_pluginChangeAdmin must be a address" + }, + { + "pc": [ + 368 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"plugin.address\"}" + }, + { + "pc": [ + 382 + ], + "errorMessage": "This plugin is not in control of the account" + }, + { + "pc": [ + 411 + ], + "errorMessage": "box value does not exist: this.plugins(key).value" + }, + { + "pc": [ + 421 + ], + "errorMessage": "This plugin does not have admin privileges" + }, + { + "pc": [ + 481 + ], + "errorMessage": "argument 0 (flash) for arc58_rekeyTo must be a bool" + }, + { + "pc": [ + 493 + ], + "errorMessage": "argument 1 (addr) for arc58_rekeyTo must be a address" + }, + { + "pc": [ + 510 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}" + }, + { + "pc": [ + 608 + ], + "errorMessage": "box value does not exist: this.plugins(key).value" + }, + { + "pc": [ + 634 + ], + "errorMessage": "box value does not exist: this.plugins(key).value" + }, + { + "pc": [ + 651 + ], + "errorMessage": "box value does not exist: this.plugins(key).value" + }, + { + "pc": [ + 702 + ], + "errorMessage": "This sender is not allowed to trigger this plugin" + }, + { + "pc": [ + 779 + ], + "errorMessage": "box value does not exist: this.plugins({ application: plugin, allowedCaller: globalAllowed ? Address.zeroAddress : this.txn.sender, }).value" + }, + { + "pc": [ + 857 + ], + "errorMessage": "argument 0 (adminPrivileges) for arc58_addPlugin must be a bool" + }, + { + "pc": [ + 877 + ], + "errorMessage": "argument 3 (allowedCaller) for arc58_addPlugin must be a address" + }, + { + "pc": [ + 900 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}" + }, + { + "pc": [ + 952 + ], + "errorMessage": "argument 0 (allowedCaller) for arc58_removePlugin must be a address" + }, + { + "pc": [ + 975 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}" + }, + { + "pc": [ + 1000 + ], + "errorMessage": "argument 0 (adminPrivileges) for arc58_addNamedPlugin must be a bool" + }, + { + "pc": [ + 1020 + ], + "errorMessage": "argument 3 (allowedCaller) for arc58_addNamedPlugin must be a address" + }, + { + "pc": [ + 1049 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}" + }, + { + "pc": [ + 1137 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}" + }, + { + "pc": [ + 1159 + ], + "errorMessage": "box value does not exist: this.namedPlugins(name).value" + }, + { + "pc": [ + 1176 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 1270 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKTogdm9pZAovLwovLyBFbnN1cmUgdGhhdCBieSB0aGUgZW5kIG9mIHRoZSBncm91cCB0aGUgYWJzdHJhY3RlZCBhY2NvdW50IGhhcyBjb250cm9sIG9mIGl0cyBhZGRyZXNzCnZlcmlmeVJla2V5VG9BYnN0cmFjdGVkQWNjb3VudDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjQ1CgkvLyByZWtleWVkQmFjayA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHJla2V5ZWRCYWNrOiBib29sCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0NwoJLy8gZm9yIChsZXQgaSA9IHRoaXMudHhuLmdyb3VwSW5kZXg7IGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aDsgaSArPSAxKQoJdHhuIEdyb3VwSW5kZXgKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NDcKCS8vIGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglnbG9iYWwgR3JvdXBTaXplCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0OAoJLy8gdHhuID0gdGhpcy50eG5Hcm91cFtpXQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gdHhuOiB0eG4KCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo1MQoJLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJiB0eG4ucmVrZXlUbyA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFNlbmRlcgoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBSZWtleVRvCglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NTIKCS8vIHJla2V5ZWRCYWNrID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyByZWtleWVkQmFjazogYm9vbAoJYiAqZm9yXzBfZW5kCgoqaWYwX2VuZDoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjU4CgkvLyB0eG4udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwgJiYKCS8vICAgICAgICAgdHhuLmFwcGxpY2F0aW9uSUQgPT09IHRoaXMuYXBwICYmCgkvLyAgICAgICAgIHR4bi5udW1BcHBBcmdzID09PSAxICYmCgkvLyAgICAgICAgIHR4bi5hcHBsaWNhdGlvbkFyZ3NbMF0gPT09IG1ldGhvZCgnYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQnKQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIEFwcGxpY2F0aW9uSUQKCXR4bmEgQXBwbGljYXRpb25zIDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWR1cAoJYnogKnNraXBfYW5kMgoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIE51bUFwcEFyZ3MKCWludCAxCgk9PQoJJiYKCipza2lwX2FuZDI6CglkdXAKCWJ6ICpza2lwX2FuZDMKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJbWV0aG9kICJhcmM1OF92ZXJpZnlBdXRoQWRkcigpdm9pZCIKCT09CgkmJgoKKnNraXBfYW5kMzoKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjYzCgkvLyByZWtleWVkQmFjayA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gcmVrZXllZEJhY2s6IGJvb2wKCWIgKmZvcl8wX2VuZAoKKmlmMV9lbmQ6CgoqZm9yXzBfY29udGludWU6CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjQ3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo2OAoJLy8gYXNzZXJ0KHJla2V5ZWRCYWNrKQoJZnJhbWVfZGlnIDAgLy8gcmVrZXllZEJhY2s6IGJvb2wKCWFzc2VydAoJcmV0c3ViCgovLyBnZXRBdXRoQWRkcigpOiBBZGRyZXNzCi8vCi8vIFdoYXQgdGhlIHZhbHVlIG9mIHRoaXMuYWRkcmVzcy52YWx1ZS5hdXRoQWRkciBzaG91bGQgYmUgd2hlbiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzCi8vIGlzIGFibGUgdG8gYmUgY29udHJvbGxlZCBieSB0aGlzIGFwcC4gSXQgd2lsbCBlaXRoZXIgYmUgdGhpcy5hcHAuYWRkcmVzcyBvciB6ZXJvQWRkcmVzcwpnZXRBdXRoQWRkcjoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NzYKCS8vIHJldHVybiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSB0aGlzLmFwcC5hZGRyZXNzID8gQWRkcmVzcy56ZXJvQWRkcmVzcyA6IHRoaXMuYXBwLmFkZHJlc3M7CglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CglieiAqdGVybmFyeTBfZmFsc2UKCWdsb2JhbCBaZXJvQWRkcmVzcwoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoKKnRlcm5hcnkwX2VuZDoKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oYWRkcmVzcyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGFkbWluOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkbWluKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGNvbnRyb2xsZWRBZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGNvbnRyb2xsZWRBZGRyZXNzKSBmb3IgY3JlYXRlQXBwbGljYXRpb24gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oYWRkcmVzcyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzLCBhZG1pbjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ3JlYXRlIGFuIGFic3RyYWN0ZWQgYWNjb3VudCBhcHBsaWNhdGlvbi4KLy8gVGhpcyBpcyBub3QgcGFydCBvZiBBUkM1OCBhbmQgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMuCi8vCi8vIEBwYXJhbSBjb250cm9sbGVkQWRkcmVzcyBUaGUgYWRkcmVzcyBvZiB0aGUgYWJzdHJhY3RlZCBhY2NvdW50LiBJZiB6ZXJvQWRkcmVzcywgdGhlbiB0aGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgYWNjb3VudCB3aWxsIGJlIHVzZWQKLy8gQHBhcmFtIGFkbWluIFRoZSBhZG1pbiBmb3IgdGhpcyBhcHAKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjg3CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgaW5jbHVkZWRJbjogW2NvbnRyb2xsZWRBZGRyZXNzLCBhZG1pbl0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzCgk9PQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIGFkbWluOiBBZGRyZXNzCgk9PQoJfHwKCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0IjoidGhpcy50eG4ifSwiZmllbGQiOiJzZW5kZXIiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbY29udHJvbGxlZEFkZHJlc3MsIGFkbWluXSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjkxCgkvLyBhc3NlcnQoYWRtaW4gIT09IGNvbnRyb2xsZWRBZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIGFkbWluOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gY29udHJvbGxlZEFkZHJlc3M6IEFkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjkzCgkvLyB0aGlzLmFkbWluLnZhbHVlID0gYWRtaW4KCWJ5dGUgMHg2MSAvLyAiYSIKCWZyYW1lX2RpZyAtMiAvLyBhZG1pbjogQWRkcmVzcwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjk0CgkvLyB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID0gY29udHJvbGxlZEFkZHJlc3MgPT09IEFkZHJlc3MuemVyb0FkZHJlc3MgPyB0aGlzLmFwcC5hZGRyZXNzIDogY29udHJvbGxlZEFkZHJlc3MKCWJ5dGUgMHg2MyAvLyAiYyIKCWZyYW1lX2RpZyAtMSAvLyBjb250cm9sbGVkQWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJYnogKnRlcm5hcnkxX2ZhbHNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglmcmFtZV9kaWcgLTEgLy8gY29udHJvbGxlZEFkZHJlc3M6IEFkZHJlc3MKCip0ZXJuYXJ5MV9lbmQ6CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9jaGFuZ2VBZG1pbjoKCS8vIG5ld0FkbWluOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKG5ld0FkbWluKSBmb3IgYXJjNThfY2hhbmdlQWRtaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNThfY2hhbmdlQWRtaW4oYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFyYzU4X2NoYW5nZUFkbWluCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQXR0ZW1wdCB0byBjaGFuZ2UgdGhlIGFkbWluIGZvciB0aGlzIGFwcC4gU29tZSBpbXBsZW1lbnRhdGlvbnMgTUFZIG5vdCBzdXBwb3J0IHRoaXMuCi8vCi8vIEBwYXJhbSBuZXdBZG1pbiBUaGUgbmV3IGFkbWluCmFyYzU4X2NoYW5nZUFkbWluOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMDMKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuYWRtaW4udmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hZG1pbi52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjEwNAoJLy8gdGhpcy5hZG1pbi52YWx1ZSA9IG5ld0FkbWluCglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTEgLy8gbmV3QWRtaW46IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3BsdWdpbkNoYW5nZUFkbWluOgoJLy8gbmV3QWRtaW46IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAobmV3QWRtaW4pIGZvciBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYWxsb3dlZENhbGxlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhbGxvd2VkQ2FsbGVyKSBmb3IgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHBsdWdpbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbih1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKHBsdWdpbjogQXBwSUQsIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MsIG5ld0FkbWluOiBBZGRyZXNzKTogdm9pZAovLwovLyBBdHRlbXB0IHRvIGNoYW5nZSB0aGUgYWRtaW4gdmlhIHBsdWdpbi4KLy8KLy8gQHBhcmFtIHBsdWdpbiBUaGUgYXBwIGNhbGxpbmcgdGhlIHBsdWdpbgovLyBAcGFyYW0gYWxsb3dlZENhbGxlciBUaGUgYWRkcmVzcyB0aGF0IHRyaWdnZXJlZCB0aGUgcGx1Z2luCi8vIEBwYXJhbSBuZXdBZG1pbiBUaGUgbmV3IGFkbWluCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjExNgoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogcGx1Z2luLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJwbHVnaW4uYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjExNwoJLy8gYXNzZXJ0KHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHIgPT09IHBsdWdpbi5hZGRyZXNzLCAnVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQnKQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJPT0KCgkvLyBUaGlzIHBsdWdpbiBpcyBub3QgaW4gY29udHJvbCBvZiB0aGUgYWNjb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMTkKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IHBsdWdpbiwgYWxsb3dlZENhbGxlcjogYWxsb3dlZENhbGxlciB9CglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTIwCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMgJiYgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuYWRtaW5Qcml2aWxlZ2VzLAoJLy8gICAgICAgJ1RoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcycKCS8vICAgICApCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglkdXAKCWJ6ICpza2lwX2FuZDQKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MgoJZ2V0Yml0CgkmJgoKKnNraXBfYW5kNDoKCS8vIFRoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcwoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMjUKCS8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbgoJYnl0ZSAweDYxIC8vICJhIgoJZnJhbWVfZGlnIC0zIC8vIG5ld0FkbWluOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhcmM1OF9nZXRBZG1pbigpYWRkcmVzcwoqYWJpX3JvdXRlX2FyYzU4X2dldEFkbWluOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFyYzU4X2dldEFkbWluKClhZGRyZXNzCgljYWxsc3ViIGFyYzU4X2dldEFkbWluCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfZ2V0QWRtaW4oKTogQWRkcmVzcwovLwovLyBHZXQgdGhlIGFkbWluIG9mIHRoaXMgYXBwLiBUaGlzIG1ldGhvZCBTSE9VTEQgYWx3YXlzIGJlIHVzZWQgcmF0aGVyIHRoYW4gcmVhZGluZyBkaXJlY3RseSBmcm9tIHN0YXRlCi8vIGJlY2F1c2UgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBtYXkgaGF2ZSBkaWZmZXJlbnQgd2F5cyBvZiBkZXRlcm1pbmluZyB0aGUgYWRtaW4uCmFyYzU4X2dldEFkbWluOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMzMKCS8vIHJldHVybiB0aGlzLmFkbWluLnZhbHVlOwoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF92ZXJpZnlBdXRoQWRkcjoKCS8vIGV4ZWN1dGUgYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQKCWNhbGxzdWIgYXJjNThfdmVyaWZ5QXV0aEFkZHIKCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3ZlcmlmeUF1dGhBZGRyKCk6IHZvaWQKLy8KLy8gVmVyaWZ5IHRoZSBhYnN0cmFjdGVkIGFjY291bnQgaXMgcmVrZXllZCB0byB0aGlzIGFwcAphcmM1OF92ZXJpZnlBdXRoQWRkcjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTQwCgkvLyBhc3NlcnQodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZS5hdXRoQWRkciA9PT0gdGhpcy5nZXRBdXRoQWRkcigpKQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJY2FsbHN1YiBnZXRBdXRoQWRkcgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVrZXlUbzoKCS8vIGZsYXNoOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoZmxhc2gpIGZvciBhcmM1OF9yZWtleVRvIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFkZHIpIGZvciBhcmM1OF9yZWtleVRvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzU4X3Jla2V5VG8oYWRkcmVzcyxib29sKXZvaWQKCWNhbGxzdWIgYXJjNThfcmVrZXlUbwoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVrZXlUbyhhZGRyOiBBZGRyZXNzLCBmbGFzaDogYm9vbGVhbik6IHZvaWQKLy8KLy8gUmVrZXkgdGhlIGFic3RyYWN0ZWQgYWNjb3VudCB0byBhbm90aGVyIGFkZHJlc3MuIFByaW1hcmlseSB1c2VmdWwgZm9yIHJla2V5aW5nIHRvIGFuIEVPQS4KLy8KLy8gQHBhcmFtIGFkZHIgVGhlIGFkZHJlc3MgdG8gcmVrZXkgdG8KLy8gQHBhcmFtIGZsYXNoIFdoZXRoZXIgb3Igbm90IHRoaXMgc2hvdWxkIGJlIGEgZmxhc2ggcmVrZXkuIElmIHRydWUsIHRoZSByZWtleSBiYWNrIHRvIHRoZSBhcHAgYWRkcmVzcyBtdXN0IGRvbmUgaW4gdGhlIHNhbWUgdHhuIGdyb3VwIGFzIHRoaXMgY2FsbAphcmM1OF9yZWtleVRvOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTAKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKCS8vICAgICAgIHJlY2VpdmVyOiBhZGRyLAoJLy8gICAgICAgcmVrZXlUbzogYWRkciwKCS8vICAgICAgIG5vdGU6ICdyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTMKCS8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgU2VuZGVyCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTQKCS8vIHJlY2VpdmVyOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTU1CgkvLyByZWtleVRvOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWtleVRvCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTYKCS8vIG5vdGU6ICdyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQnCglieXRlIDB4NzI2NTZiNjU3OTY5NmU2NzIwNjE2MjczNzQ3MjYxNjM3NDY1NjQyMDYxNjM2MzZmNzU2ZTc0IC8vICJyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTU5CgkvLyBmbGFzaAoJZnJhbWVfZGlnIC0yIC8vIGZsYXNoOiBib29sZWFuCglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTkKCS8vIHRoaXMudmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50KCkKCWNhbGxzdWIgdmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50CgoqaWYyX2VuZDoKCXJldHN1YgoKLy8gcGx1Z2luQ2FsbEFsbG93ZWQoYXBwOiBBcHBJRCwgY2FsbGVyOiBBZGRyZXNzKTogYm9vbGVhbgpwbHVnaW5DYWxsQWxsb3dlZDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNjMKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IGFwcCwgYWxsb3dlZENhbGxlcjogY2FsbGVyIH0KCWZyYW1lX2RpZyAtMSAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTIgLy8gY2FsbGVyOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE2NQoJLy8gcmV0dXJuICgKCS8vICAgICAgIHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cyAmJgoJLy8gICAgICAgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUubGFzdFZhbGlkUm91bmQgPj0gZ2xvYmFscy5yb3VuZCAmJgoJLy8gICAgICAgZ2xvYmFscy5yb3VuZCAtIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLmxhc3RDYWxsZWQgPj0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuY29vbGRvd24KCS8vICAgICApOwoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJZHVwCglieiAqc2tpcF9hbmQ1CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglnbG9iYWwgUm91bmQKCT49CgkmJgoKKnNraXBfYW5kNToKCWR1cAoJYnogKnNraXBfYW5kNgoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJLQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoJPj0KCSYmCgoqc2tpcF9hbmQ2OgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGFyYzU4X3Jla2V5VG9QbHVnaW4odWludDY0KXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9yZWtleVRvUGx1Z2luOgoJLy8gcGx1Z2luOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFyYzU4X3Jla2V5VG9QbHVnaW4odWludDY0KXZvaWQKCWNhbGxzdWIgYXJjNThfcmVrZXlUb1BsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVrZXlUb1BsdWdpbihwbHVnaW46IEFwcElEKTogdm9pZAovLwovLyBUZW1wb3JhcmlseSByZWtleSB0byBhbiBhcHByb3ZlZCBwbHVnaW4gYXBwIGFkZHJlc3MKLy8KLy8gQHBhcmFtIHBsdWdpbiBUaGUgYXBwIHRvIHJla2V5IHRvCmFyYzU4X3Jla2V5VG9QbHVnaW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTc4CgkvLyBnbG9iYWxBbGxvd2VkID0gdGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIEFkZHJlc3MuemVyb0FkZHJlc3MpCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECgljYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCglmcmFtZV9idXJ5IDAgLy8gZ2xvYmFsQWxsb3dlZDogYm9vbAoKCS8vICppZjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4MAoJLy8gIWdsb2JhbEFsbG93ZWQKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCSEKCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4MQoJLy8gYXNzZXJ0KHRoaXMucGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luLCB0aGlzLnR4bi5zZW5kZXIpLCAnVGhpcyBzZW5kZXIgaXMgbm90IGFsbG93ZWQgdG8gdHJpZ2dlciB0aGlzIHBsdWdpbicpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJY2FsbHN1YiBwbHVnaW5DYWxsQWxsb3dlZAoKCS8vIFRoaXMgc2VuZGVyIGlzIG5vdCBhbGxvd2VkIHRvIHRyaWdnZXIgdGhpcyBwbHVnaW4KCWFzc2VydAoKKmlmM19lbmQ6CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4MwoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCgkvLyAgICAgICByZWtleVRvOiBwbHVnaW4uYWRkcmVzcywKCS8vICAgICAgIG5vdGU6ICdyZWtleWluZyB0byBwbHVnaW4gYXBwJywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTg0CgkvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTg1CgkvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NgoJLy8gcmVrZXlUbzogcGx1Z2luLmFkZHJlc3MKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVrZXlUbwoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTg3CgkvLyBub3RlOiAncmVrZXlpbmcgdG8gcGx1Z2luIGFwcCcKCWJ5dGUgMHg3MjY1NmI2NTc5Njk2ZTY3MjA3NDZmMjA3MDZjNzU2NzY5NmUyMDYxNzA3MCAvLyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE5MAoJLy8gdGhpcy5wbHVnaW5zKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uOiBwbHVnaW4sCgkvLyAgICAgICBhbGxvd2VkQ2FsbGVyOiBnbG9iYWxBbGxvd2VkID8gQWRkcmVzcy56ZXJvQWRkcmVzcyA6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KS52YWx1ZS5sYXN0Q2FsbGVkID0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCWJ6ICp0ZXJuYXJ5M19mYWxzZQoJZ2xvYmFsIFplcm9BZGRyZXNzCgliICp0ZXJuYXJ5M19lbmQKCip0ZXJuYXJ5M19mYWxzZToKCXR4biBTZW5kZXIKCip0ZXJuYXJ5M19lbmQ6Cgljb25jYXQKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKHsgYXBwbGljYXRpb246IHBsdWdpbiwgYWxsb3dlZENhbGxlcjogZ2xvYmFsQWxsb3dlZCA/IEFkZHJlc3MuemVyb0FkZHJlc3MgOiB0aGlzLnR4bi5zZW5kZXIsIH0pLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTYKCWdsb2JhbCBSb3VuZAoJaXRvYgoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCWJ6ICp0ZXJuYXJ5NV9mYWxzZQoJZ2xvYmFsIFplcm9BZGRyZXNzCgliICp0ZXJuYXJ5NV9lbmQKCip0ZXJuYXJ5NV9mYWxzZToKCXR4biBTZW5kZXIKCip0ZXJuYXJ5NV9lbmQ6Cgljb25jYXQKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE5NQoJLy8gdGhpcy52ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKQoJY2FsbHN1YiB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQKCXJldHN1YgoKLy8gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkCgljYWxsc3ViIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKG5hbWU6IHN0cmluZyk6IHZvaWQKLy8KLy8gVGVtcG9yYXJpbHkgcmVrZXkgdG8gYSBuYW1lZCBwbHVnaW4gYXBwIGFkZHJlc3MKLy8KLy8gQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiB0byByZWtleSB0bwphcmM1OF9yZWtleVRvTmFtZWRQbHVnaW46Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjIwNAoJLy8gdGhpcy5hcmM1OF9yZWtleVRvUGx1Z2luKHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLmFwcGxpY2F0aW9uKQoJaW50IDAKCWludCA4CglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgljYWxsc3ViIGFyYzU4X3Jla2V5VG9QbHVnaW4KCXJldHN1YgoKLy8gYXJjNThfYWRkUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNThfYWRkUGx1Z2luOgoJLy8gYWRtaW5Qcml2aWxlZ2VzOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYWRtaW5Qcml2aWxlZ2VzKSBmb3IgYXJjNThfYWRkUGx1Z2luIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBjb29sZG93bjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFsbG93ZWRDYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoYWxsb3dlZENhbGxlcikgZm9yIGFyYzU4X2FkZFBsdWdpbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYXBwOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFyYzU4X2FkZFBsdWdpbih1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBhcmM1OF9hZGRQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X2FkZFBsdWdpbihhcHA6IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzLCBsYXN0VmFsaWRSb3VuZDogdWludDY0LCBjb29sZG93bjogdWludDY0LCBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIEFkZCBhbiBhcHAgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2lucwovLwovLyBAcGFyYW0gYXBwIFRoZSBhcHAgdG8gYWRkCi8vIEBwYXJhbSBhbGxvd2VkQ2FsbGVyIFRoZSBhZGRyZXNzIG9mIHRoYXQncyBhbGxvd2VkIHRvIGNhbGwgdGhlIGFwcAovLyBvciB0aGUgZ2xvYmFsIHplcm8gYWRkcmVzcyBmb3IgYWxsIGFkZHJlc3NlcwovLyBAcGFyYW0gbGFzdFZhbGlkUm91bmQgVGhlIHJvdW5kIHdoZW4gdGhlIHBlcm1pc3Npb24gZXhwaXJlcwovLyBAcGFyYW0gY29vbGRvd24gIFRoZSBudW1iZXIgb2Ygcm91bmRzIHRoYXQgbXVzdCBwYXNzIGJlZm9yZSB0aGUgcGx1Z2luIGNhbiBiZSBjYWxsZWQgYWdhaW4KLy8gQHBhcmFtIGFkbWluUHJpdmlsZWdlcyBXaGV0aGVyIHRoZSBwbHVnaW4gaGFzIHBlcm1pc3Npb25zIHRvIGNoYW5nZSB0aGUgYWRtaW4gYWNjb3VudAphcmM1OF9hZGRQbHVnaW46Cglwcm90byA1IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjI0CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMjUKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IGFwcCwgYWxsb3dlZENhbGxlcjogYWxsb3dlZENhbGxlciB9CglmcmFtZV9kaWcgLTEgLy8gYXBwOiBBcHBJRAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjI2CgkvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKCS8vICAgICAgIGxhc3RWYWxpZFJvdW5kOiBsYXN0VmFsaWRSb3VuZCwKCS8vICAgICAgIGNvb2xkb3duOiBjb29sZG93biwKCS8vICAgICAgIGxhc3RDYWxsZWQ6IDAsCgkvLyAgICAgICBhZG1pblByaXZpbGVnZXM6IGFkbWluUHJpdmlsZWdlcywKCS8vICAgICB9CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtNCAvLyBjb29sZG93bjogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAtNSAvLyBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4KCXNldGJpdAoJY29uY2F0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFyYzU4X3JlbW92ZVBsdWdpbih1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVtb3ZlUGx1Z2luOgoJLy8gYWxsb3dlZENhbGxlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhbGxvd2VkQ2FsbGVyKSBmb3IgYXJjNThfcmVtb3ZlUGx1Z2luIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBhcHA6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYXJjNThfcmVtb3ZlUGx1Z2luCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9yZW1vdmVQbHVnaW4oYXBwOiBBcHBJRCwgYWxsb3dlZENhbGxlcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gUmVtb3ZlIGFuIGFwcCBmcm9tIHRoZSBsaXN0IG9mIGFwcHJvdmVkIHBsdWdpbnMKLy8KLy8gQHBhcmFtIGFwcCBUaGUgYXBwIHRvIHJlbW92ZQphcmM1OF9yZW1vdmVQbHVnaW46Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjQwCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNDIKCS8vIGtleTogUGx1Z2luc0tleSA9IHsgYXBwbGljYXRpb246IGFwcCwgYWxsb3dlZENhbGxlcjogYWxsb3dlZENhbGxlciB9CglmcmFtZV9kaWcgLTEgLy8gYXBwOiBBcHBJRAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjQzCgkvLyB0aGlzLnBsdWdpbnMoa2V5KS5kZWxldGUoKQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9kZWwKCXJldHN1YgoKLy8gYXJjNThfYWRkTmFtZWRQbHVnaW4oc3RyaW5nLHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNThfYWRkTmFtZWRQbHVnaW46CgkvLyBhZG1pblByaXZpbGVnZXM6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDYKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhZG1pblByaXZpbGVnZXMpIGZvciBhcmM1OF9hZGROYW1lZFBsdWdpbiBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gY29vbGRvd246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhbGxvd2VkQ2FsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKGFsbG93ZWRDYWxsZXIpIGZvciBhcmM1OF9hZGROYW1lZFBsdWdpbiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYXBwOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKCWNhbGxzdWIgYXJjNThfYWRkTmFtZWRQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X2FkZE5hbWVkUGx1Z2luKG5hbWU6IHN0cmluZywgYXBwOiBBcHBJRCwgYWxsb3dlZENhbGxlcjogQWRkcmVzcywgbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NCwgY29vbGRvd246IHVpbnQ2NCwgYWRtaW5Qcml2aWxlZ2VzOiBib29sZWFuKTogdm9pZAovLwovLyBBZGQgYSBuYW1lZCBwbHVnaW4KLy8KLy8gQHBhcmFtIGFwcCBUaGUgcGx1Z2luIGFwcAovLyBAcGFyYW0gbmFtZSBUaGUgcGx1Z2luIG5hbWUKLy8gQHBhcmFtIGFsbG93ZWRDYWxsZXIgVGhlIGFkZHJlc3Mgb2YgdGhhdCdzIGFsbG93ZWQgdG8gY2FsbCB0aGUgYXBwCi8vIG9yIHRoZSBnbG9iYWwgemVybyBhZGRyZXNzIGZvciBhbGwgYWRkcmVzc2VzCi8vIEBwYXJhbSBsYXN0VmFsaWRSb3VuZCBUaGUgcm91bmQgd2hlbiB0aGUgcGVybWlzc2lvbiBleHBpcmVzCi8vIEBwYXJhbSBjb29sZG93biAgVGhlIG51bWJlciBvZiByb3VuZHMgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIHRoZSBwbHVnaW4gY2FuIGJlIGNhbGxlZCBhZ2FpbgovLyBAcGFyYW0gYWRtaW5Qcml2aWxlZ2VzIFdoZXRoZXIgdGhlIHBsdWdpbiBoYXMgcGVybWlzc2lvbnMgdG8gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CmFyYzU4X2FkZE5hbWVkUGx1Z2luOgoJcHJvdG8gNiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI2NQoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hZG1pbi52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFkbWluLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjY2CgkvLyBhc3NlcnQoIXRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmV4aXN0cykKCWJ5dGUgMHg2ZSAvLyAibiIKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI2OAoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBhbGxvd2VkQ2FsbGVyIH0KCWZyYW1lX2RpZyAtMiAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTMgLy8gYWxsb3dlZENhbGxlcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBQbHVnaW5zS2V5CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNjkKCS8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlID0ga2V5CglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjcwCgkvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKCS8vICAgICAgIGxhc3RWYWxpZFJvdW5kOiBsYXN0VmFsaWRSb3VuZCwKCS8vICAgICAgIGNvb2xkb3duOiBjb29sZG93biwKCS8vICAgICAgIGxhc3RDYWxsZWQ6IDAsCgkvLyAgICAgICBhZG1pblByaXZpbGVnZXM6IGFkbWluUHJpdmlsZWdlcywKCS8vICAgICB9CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJZnJhbWVfZGlnIC00IC8vIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtNSAvLyBjb29sZG93bjogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAtNiAvLyBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4KCXNldGJpdAoJY29uY2F0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkCiphYmlfcm91dGVfYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW46CgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbihzdHJpbmcpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nKTogdm9pZAovLwovLyBSZW1vdmUgYSBuYW1lZCBwbHVnaW4KLy8KLy8gQHBhcmFtIG5hbWUgVGhlIHBsdWdpbiBuYW1lCmFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI4NAoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hZG1pbi52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFkbWluLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6Mjg2CgkvLyBhcHAgPSB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZQoJYnl0ZSAweDZlIC8vICJuIgoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL2FwcAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6Mjg3CgkvLyB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS5kZWxldGUoKQoJYnl0ZSAweDZlIC8vICJuIgoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY29uY2F0Cglib3hfZGVsCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyODgKCS8vIHRoaXMucGx1Z2lucyhhcHApLmRlbGV0ZSgpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vYXBwCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZQoJYXNzZXJ0Cgljb25jYXQKCWJveF9kZWwKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbihhZGRyZXNzLGFkZHJlc3Mpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJjNThfY2hhbmdlQWRtaW4oYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbih1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQiCgltZXRob2QgImFyYzU4X2dldEFkbWluKClhZGRyZXNzIgoJbWV0aG9kICJhcmM1OF92ZXJpZnlBdXRoQWRkcigpdm9pZCIKCW1ldGhvZCAiYXJjNThfcmVrZXlUbyhhZGRyZXNzLGJvb2wpdm9pZCIKCW1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZCIKCW1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCgltZXRob2QgImFyYzU4X3JlbW92ZVBsdWdpbih1aW50NjQsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCgltZXRob2QgImFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcmM1OF9jaGFuZ2VBZG1pbiAqYWJpX3JvdXRlX2FyYzU4X3BsdWdpbkNoYW5nZUFkbWluICphYmlfcm91dGVfYXJjNThfZ2V0QWRtaW4gKmFiaV9yb3V0ZV9hcmM1OF92ZXJpZnlBdXRoQWRkciAqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG8gKmFiaV9yb3V0ZV9hcmM1OF9yZWtleVRvUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVtb3ZlUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkTmFtZWRQbHVnaW4gKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVOYW1lZFBsdWdpbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAgMzIKYnl0ZWNibG9jayAweDcwIDB4NjEgMHg2MyAweDAwMDAwMDAwMDAwMDAwMDAgMHggMHgwZjg4NTQ5MyAweDZlIDB4MDAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKTogdm9pZAovLwovLyBFbnN1cmUgdGhhdCBieSB0aGUgZW5kIG9mIHRoZSBncm91cCB0aGUgYWJzdHJhY3RlZCBhY2NvdW50IGhhcyBjb250cm9sIG9mIGl0cyBhZGRyZXNzCnZlcmlmeVJla2V5VG9BYnN0cmFjdGVkQWNjb3VudDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjQ1CgkvLyByZWtleWVkQmFjayA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHJla2V5ZWRCYWNrOiBib29sCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0NwoJLy8gZm9yIChsZXQgaSA9IHRoaXMudHhuLmdyb3VwSW5kZXg7IGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aDsgaSArPSAxKQoJdHhuIEdyb3VwSW5kZXgKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NDcKCS8vIGkgPCB0aGlzLnR4bkdyb3VwLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglnbG9iYWwgR3JvdXBTaXplCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0OAoJLy8gdHhuID0gdGhpcy50eG5Hcm91cFtpXQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gdHhuOiB0eG4KCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo1MQoJLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJiB0eG4ucmVrZXlUbyA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFNlbmRlcgoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCT09CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBSZWtleVRvCglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NTIKCS8vIHJla2V5ZWRCYWNrID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyByZWtleWVkQmFjazogYm9vbAoJYiAqZm9yXzBfZW5kCgoqaWYwX2VuZDoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjU4CgkvLyB0eG4udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwgJiYKCS8vICAgICAgICAgdHhuLmFwcGxpY2F0aW9uSUQgPT09IHRoaXMuYXBwICYmCgkvLyAgICAgICAgIHR4bi5udW1BcHBBcmdzID09PSAxICYmCgkvLyAgICAgICAgIHR4bi5hcHBsaWNhdGlvbkFyZ3NbMF0gPT09IG1ldGhvZCgnYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQnKQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDYgLy8gYXBwbAoJPT0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIEFwcGxpY2F0aW9uSUQKCXR4bmEgQXBwbGljYXRpb25zIDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWR1cAoJYnogKnNraXBfYW5kMgoJZnJhbWVfZGlnIDIgLy8gdHhuOiB0eG4KCWd0eG5zIE51bUFwcEFyZ3MKCWludCAxCgk9PQoJJiYKCipza2lwX2FuZDI6CglkdXAKCWJ6ICpza2lwX2FuZDMKCWZyYW1lX2RpZyAyIC8vIHR4bjogdHhuCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDBmODg1NDkzIC8vIG1ldGhvZCAiYXJjNThfdmVyaWZ5QXV0aEFkZHIoKXZvaWQiCgk9PQoJJiYKCipza2lwX2FuZDM6CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo2MwoJLy8gcmVrZXllZEJhY2sgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIHJla2V5ZWRCYWNrOiBib29sCgliICpmb3JfMF9lbmQKCippZjFfZW5kOgoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo0NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6NjgKCS8vIGFzc2VydChyZWtleWVkQmFjaykKCWZyYW1lX2RpZyAwIC8vIHJla2V5ZWRCYWNrOiBib29sCglhc3NlcnQKCXJldHN1YgoKLy8gZ2V0QXV0aEFkZHIoKTogQWRkcmVzcwovLwovLyBXaGF0IHRoZSB2YWx1ZSBvZiB0aGlzLmFkZHJlc3MudmFsdWUuYXV0aEFkZHIgc2hvdWxkIGJlIHdoZW4gdGhpcy5jb250cm9sbGVkQWRkcmVzcwovLyBpcyBhYmxlIHRvIGJlIGNvbnRyb2xsZWQgYnkgdGhpcyBhcHAuIEl0IHdpbGwgZWl0aGVyIGJlIHRoaXMuYXBwLmFkZHJlc3Mgb3IgemVyb0FkZHJlc3MKZ2V0QXV0aEFkZHI6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjc2CgkvLyByZXR1cm4gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9PT0gdGhpcy5hcHAuYWRkcmVzcyA/IEFkZHJlc3MuemVyb0FkZHJlc3MgOiB0aGlzLmFwcC5hZGRyZXNzOwoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglnbG9iYWwgWmVyb0FkZHJlc3MKCWIgKnRlcm5hcnkwX2VuZAoKKnRlcm5hcnkwX2ZhbHNlOgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKGFkZHJlc3MsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBhZG1pbjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZG1pbikgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBjb250cm9sbGVkQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChjb250cm9sbGVkQWRkcmVzcykgZm9yIGNyZWF0ZUFwcGxpY2F0aW9uIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKGFkZHJlc3MsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbihjb250cm9sbGVkQWRkcmVzczogQWRkcmVzcywgYWRtaW46IEFkZHJlc3MpOiB2b2lkCi8vCi8vIENyZWF0ZSBhbiBhYnN0cmFjdGVkIGFjY291bnQgYXBwbGljYXRpb24uCi8vIFRoaXMgaXMgbm90IHBhcnQgb2YgQVJDNTggYW5kIGltcGxlbWVudGF0aW9uIHNwZWNpZmljLgovLwovLyBAcGFyYW0gY29udHJvbGxlZEFkZHJlc3MgVGhlIGFkZHJlc3Mgb2YgdGhlIGFic3RyYWN0ZWQgYWNjb3VudC4gSWYgemVyb0FkZHJlc3MsIHRoZW4gdGhlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyYWN0IGFjY291bnQgd2lsbCBiZSB1c2VkCi8vIEBwYXJhbSBhZG1pbiBUaGUgYWRtaW4gZm9yIHRoaXMgYXBwCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo4NwoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IGluY2x1ZGVkSW46IFtjb250cm9sbGVkQWRkcmVzcywgYWRtaW5dIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBjb250cm9sbGVkQWRkcmVzczogQWRkcmVzcwoJPT0KCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhZG1pbjogQWRkcmVzcwoJPT0KCXx8CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOnsidHhuVGV4dCI6InRoaXMudHhuIn0sImZpZWxkIjoic2VuZGVyIiwiY29uZGl0aW9uIjoiaW5jbHVkZWRJbiIsImV4cGVjdGVkIjoiW2NvbnRyb2xsZWRBZGRyZXNzLCBhZG1pbl0ifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo5MQoJLy8gYXNzZXJ0KGFkbWluICE9PSBjb250cm9sbGVkQWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBhZG1pbjogQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo5MwoJLy8gdGhpcy5hZG1pbi52YWx1ZSA9IGFkbWluCglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTIgLy8gYWRtaW46IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czo5NAoJLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzID09PSBBZGRyZXNzLnplcm9BZGRyZXNzID8gdGhpcy5hcHAuYWRkcmVzcyA6IGNvbnRyb2xsZWRBZGRyZXNzCglieXRlIDB4NjMgLy8gImMiCglmcmFtZV9kaWcgLTEgLy8gY29udHJvbGxlZEFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWIgKnRlcm5hcnkxX2VuZAoKKnRlcm5hcnkxX2ZhbHNlOgoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyb2xsZWRBZGRyZXNzOiBBZGRyZXNzCgoqdGVybmFyeTFfZW5kOgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYXJjNThfY2hhbmdlQWRtaW4oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYXJjNThfY2hhbmdlQWRtaW46CgkvLyBuZXdBZG1pbjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChuZXdBZG1pbikgZm9yIGFyYzU4X2NoYW5nZUFkbWluIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzU4X2NoYW5nZUFkbWluKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhcmM1OF9jaGFuZ2VBZG1pbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfY2hhbmdlQWRtaW4obmV3QWRtaW46IEFkZHJlc3MpOiB2b2lkCi8vCi8vIEF0dGVtcHQgdG8gY2hhbmdlIHRoZSBhZG1pbiBmb3IgdGhpcyBhcHAuIFNvbWUgaW1wbGVtZW50YXRpb25zIE1BWSBub3Qgc3VwcG9ydCB0aGlzLgovLwovLyBAcGFyYW0gbmV3QWRtaW4gVGhlIG5ldyBhZG1pbgphcmM1OF9jaGFuZ2VBZG1pbjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTAzCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMDQKCS8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbgoJYnl0ZSAweDYxIC8vICJhIgoJZnJhbWVfZGlnIC0xIC8vIG5ld0FkbWluOiBBZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbih1aW50NjQsYWRkcmVzcyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKCS8vIG5ld0FkbWluOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKG5ld0FkbWluKSBmb3IgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFsbG93ZWRDYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYWxsb3dlZENhbGxlcikgZm9yIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBwbHVnaW46IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4odWludDY0LGFkZHJlc3MsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbihwbHVnaW46IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzLCBuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQXR0ZW1wdCB0byBjaGFuZ2UgdGhlIGFkbWluIHZpYSBwbHVnaW4uCi8vCi8vIEBwYXJhbSBwbHVnaW4gVGhlIGFwcCBjYWxsaW5nIHRoZSBwbHVnaW4KLy8gQHBhcmFtIGFsbG93ZWRDYWxsZXIgVGhlIGFkZHJlc3MgdGhhdCB0cmlnZ2VyZWQgdGhlIHBsdWdpbgovLyBAcGFyYW0gbmV3QWRtaW4gVGhlIG5ldyBhZG1pbgphcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMTYKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHBsdWdpbi5hZGRyZXNzIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoicGx1Z2luLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxMTcKCS8vIGFzc2VydCh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyID09PSBwbHVnaW4uYWRkcmVzcywgJ1RoaXMgcGx1Z2luIGlzIG5vdCBpbiBjb250cm9sIG9mIHRoZSBhY2NvdW50JykKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCglwb3AKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTE5CgkvLyBrZXk6IFBsdWdpbnNLZXkgPSB7IGFwcGxpY2F0aW9uOiBwbHVnaW4sIGFsbG93ZWRDYWxsZXI6IGFsbG93ZWRDYWxsZXIgfQoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAtMiAvLyBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjEyMAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzICYmIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLmFkbWluUHJpdmlsZWdlcywKCS8vICAgICAgICdUaGlzIHBsdWdpbiBkb2VzIG5vdCBoYXZlIGFkbWluIHByaXZpbGVnZXMnCgkvLyAgICAgKQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJZHVwCglieiAqc2tpcF9hbmQ0CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkyCglnZXRiaXQKCSYmCgoqc2tpcF9hbmQ0OgoJLy8gVGhpcyBwbHVnaW4gZG9lcyBub3QgaGF2ZSBhZG1pbiBwcml2aWxlZ2VzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjEyNQoJLy8gdGhpcy5hZG1pbi52YWx1ZSA9IG5ld0FkbWluCglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTMgLy8gbmV3QWRtaW46IEFkZHJlc3MKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzU4X2dldEFkbWluKClhZGRyZXNzCiphYmlfcm91dGVfYXJjNThfZ2V0QWRtaW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcmM1OF9nZXRBZG1pbigpYWRkcmVzcwoJY2FsbHN1YiBhcmM1OF9nZXRBZG1pbgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X2dldEFkbWluKCk6IEFkZHJlc3MKLy8KLy8gR2V0IHRoZSBhZG1pbiBvZiB0aGlzIGFwcC4gVGhpcyBtZXRob2QgU0hPVUxEIGFsd2F5cyBiZSB1c2VkIHJhdGhlciB0aGFuIHJlYWRpbmcgZGlyZWN0bHkgZnJvbSBzdGF0ZQovLyBiZWNhdXNlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgbWF5IGhhdmUgZGlmZmVyZW50IHdheXMgb2YgZGV0ZXJtaW5pbmcgdGhlIGFkbWluLgphcmM1OF9nZXRBZG1pbjoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTMzCgkvLyByZXR1cm4gdGhpcy5hZG1pbi52YWx1ZTsKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGFyYzU4X3ZlcmlmeUF1dGhBZGRyKCl2b2lkCiphYmlfcm91dGVfYXJjNThfdmVyaWZ5QXV0aEFkZHI6CgkvLyBleGVjdXRlIGFyYzU4X3ZlcmlmeUF1dGhBZGRyKCl2b2lkCgljYWxsc3ViIGFyYzU4X3ZlcmlmeUF1dGhBZGRyCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF92ZXJpZnlBdXRoQWRkcigpOiB2b2lkCi8vCi8vIFZlcmlmeSB0aGUgYWJzdHJhY3RlZCBhY2NvdW50IGlzIHJla2V5ZWQgdG8gdGhpcyBhcHAKYXJjNThfdmVyaWZ5QXV0aEFkZHI6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE0MAoJLy8gYXNzZXJ0KHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHIgPT09IHRoaXMuZ2V0QXV0aEFkZHIoKSkKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCglwb3AKCWNhbGxzdWIgZ2V0QXV0aEFkZHIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXJjNThfcmVrZXlUbyhhZGRyZXNzLGJvb2wpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG86CgkvLyBmbGFzaDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGZsYXNoKSBmb3IgYXJjNThfcmVrZXlUbyBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYWRkcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhZGRyKSBmb3IgYXJjNThfcmVrZXlUbyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkCgljYWxsc3ViIGFyYzU4X3Jla2V5VG8KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3Jla2V5VG8oYWRkcjogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIFJla2V5IHRoZSBhYnN0cmFjdGVkIGFjY291bnQgdG8gYW5vdGhlciBhZGRyZXNzLiBQcmltYXJpbHkgdXNlZnVsIGZvciByZWtleWluZyB0byBhbiBFT0EuCi8vCi8vIEBwYXJhbSBhZGRyIFRoZSBhZGRyZXNzIHRvIHJla2V5IHRvCi8vIEBwYXJhbSBmbGFzaCBXaGV0aGVyIG9yIG5vdCB0aGlzIHNob3VsZCBiZSBhIGZsYXNoIHJla2V5LiBJZiB0cnVlLCB0aGUgcmVrZXkgYmFjayB0byB0aGUgYXBwIGFkZHJlc3MgbXVzdCBkb25lIGluIHRoZSBzYW1lIHR4biBncm91cCBhcyB0aGlzIGNhbGwKYXJjNThfcmVrZXlUbzoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTUwCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hZG1pbi52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFkbWluLnZhbHVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTUyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCgkvLyAgICAgICByZWNlaXZlcjogYWRkciwKCS8vICAgICAgIHJla2V5VG86IGFkZHIsCgkvLyAgICAgICBub3RlOiAncmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50JywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTMKCS8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQoJYnl0ZSAweDYzIC8vICJjIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgU2VuZGVyCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTQKCS8vIHJlY2VpdmVyOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTU1CgkvLyByZWtleVRvOiBhZGRyCglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWtleVRvCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTYKCS8vIG5vdGU6ICdyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnQnCglwdXNoYnl0ZXMgMHg3MjY1NmI2NTc5Njk2ZTY3MjA2MTYyNzM3NDcyNjE2Mzc0NjU2NDIwNjE2MzYzNmY3NTZlNzQgLy8gInJla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNTkKCS8vIGZsYXNoCglmcmFtZV9kaWcgLTIgLy8gZmxhc2g6IGJvb2xlYW4KCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE1OQoJLy8gdGhpcy52ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQoKQoJY2FsbHN1YiB2ZXJpZnlSZWtleVRvQWJzdHJhY3RlZEFjY291bnQKCippZjJfZW5kOgoJcmV0c3ViCgovLyBwbHVnaW5DYWxsQWxsb3dlZChhcHA6IEFwcElELCBjYWxsZXI6IEFkZHJlc3MpOiBib29sZWFuCnBsdWdpbkNhbGxBbGxvd2VkOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE2MwoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBjYWxsZXIgfQoJZnJhbWVfZGlnIC0xIC8vIGFwcDogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAtMiAvLyBjYWxsZXI6IEFkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGtleTogUGx1Z2luc0tleQoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTY1CgkvLyByZXR1cm4gKAoJLy8gICAgICAgdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzICYmCgkvLyAgICAgICB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5sYXN0VmFsaWRSb3VuZCA+PSBnbG9iYWxzLnJvdW5kICYmCgkvLyAgICAgICBnbG9iYWxzLnJvdW5kIC0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUubGFzdENhbGxlZCA+PSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5jb29sZG93bgoJLy8gICAgICk7CglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglkdXAKCWJ6ICpza2lwX2FuZDUKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWdsb2JhbCBSb3VuZAoJPj0KCSYmCgoqc2tpcF9hbmQ1OgoJZHVwCglieiAqc2tpcF9hbmQ2CglnbG9iYWwgUm91bmQKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxNiA4CglidG9pCgktCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgk+PQoJJiYKCipza2lwX2FuZDY6CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG9QbHVnaW46CgkvLyBwbHVnaW46IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZWtleVRvUGx1Z2luCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9yZWtleVRvUGx1Z2luKHBsdWdpbjogQXBwSUQpOiB2b2lkCi8vCi8vIFRlbXBvcmFyaWx5IHJla2V5IHRvIGFuIGFwcHJvdmVkIHBsdWdpbiBhcHAgYWRkcmVzcwovLwovLyBAcGFyYW0gcGx1Z2luIFRoZSBhcHAgdG8gcmVrZXkgdG8KYXJjNThfcmVrZXlUb1BsdWdpbjoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxNzgKCS8vIGdsb2JhbEFsbG93ZWQgPSB0aGlzLnBsdWdpbkNhbGxBbGxvd2VkKHBsdWdpbiwgQWRkcmVzcy56ZXJvQWRkcmVzcykKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWNhbGxzdWIgcGx1Z2luQ2FsbEFsbG93ZWQKCWZyYW1lX2J1cnkgMCAvLyBnbG9iYWxBbGxvd2VkOiBib29sCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTgwCgkvLyAhZ2xvYmFsQWxsb3dlZAoJZnJhbWVfZGlnIDAgLy8gZ2xvYmFsQWxsb3dlZDogYm9vbAoJIQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTgxCgkvLyBhc3NlcnQodGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIHRoaXMudHhuLnNlbmRlciksICdUaGlzIHNlbmRlciBpcyBub3QgYWxsb3dlZCB0byB0cmlnZ2VyIHRoaXMgcGx1Z2luJykKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECgljYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCgoJLy8gVGhpcyBzZW5kZXIgaXMgbm90IGFsbG93ZWQgdG8gdHJpZ2dlciB0aGlzIHBsdWdpbgoJYXNzZXJ0CgoqaWYzX2VuZDoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MTgzCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKCS8vICAgICAgIHJla2V5VG86IHBsdWdpbi5hZGRyZXNzLAoJLy8gICAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NAoJLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCglieXRlIDB4NjMgLy8gImMiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBTZW5kZXIKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NQoJLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKCWJ5dGUgMHg2MyAvLyAiYyIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxODYKCS8vIHJla2V5VG86IHBsdWdpbi5hZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gcGx1Z2luOiBBcHBJRAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglpdHhuX2ZpZWxkIFJla2V5VG8KCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE4NwoJLy8gbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCglwdXNoYnl0ZXMgMHg3MjY1NmI2NTc5Njk2ZTY3MjA3NDZmMjA3MDZjNzU2NzY5NmUyMDYxNzA3MCAvLyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjE5MAoJLy8gdGhpcy5wbHVnaW5zKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uOiBwbHVnaW4sCgkvLyAgICAgICBhbGxvd2VkQ2FsbGVyOiBnbG9iYWxBbGxvd2VkID8gQWRkcmVzcy56ZXJvQWRkcmVzcyA6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KS52YWx1ZS5sYXN0Q2FsbGVkID0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0xIC8vIHBsdWdpbjogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAwIC8vIGdsb2JhbEFsbG93ZWQ6IGJvb2wKCWJ6ICp0ZXJuYXJ5M19mYWxzZQoJZ2xvYmFsIFplcm9BZGRyZXNzCgliICp0ZXJuYXJ5M19lbmQKCip0ZXJuYXJ5M19mYWxzZToKCXR4biBTZW5kZXIKCip0ZXJuYXJ5M19lbmQ6Cgljb25jYXQKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wbHVnaW5zKHsgYXBwbGljYXRpb246IHBsdWdpbiwgYWxsb3dlZENhbGxlcjogZ2xvYmFsQWxsb3dlZCA/IEFkZHJlc3MuemVyb0FkZHJlc3MgOiB0aGlzLnR4bi5zZW5kZXIsIH0pLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDE2CglnbG9iYWwgUm91bmQKCWl0b2IKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAtMSAvLyBwbHVnaW46IEFwcElECglpdG9iCglmcmFtZV9kaWcgMCAvLyBnbG9iYWxBbGxvd2VkOiBib29sCglieiAqdGVybmFyeTVfZmFsc2UKCWdsb2JhbCBaZXJvQWRkcmVzcwoJYiAqdGVybmFyeTVfZW5kCgoqdGVybmFyeTVfZmFsc2U6Cgl0eG4gU2VuZGVyCgoqdGVybmFyeTVfZW5kOgoJY29uY2F0Cgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoxOTUKCS8vIHRoaXMudmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50KCkKCWNhbGxzdWIgdmVyaWZ5UmVrZXlUb0Fic3RyYWN0ZWRBY2NvdW50CglyZXRzdWIKCi8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbjoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbihzdHJpbmcpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZWtleVRvTmFtZWRQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbihuYW1lOiBzdHJpbmcpOiB2b2lkCi8vCi8vIFRlbXBvcmFyaWx5IHJla2V5IHRvIGEgbmFtZWQgcGx1Z2luIGFwcCBhZGRyZXNzCi8vCi8vIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdG8gcmVrZXkgdG8KYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMDQKCS8vIHRoaXMuYXJjNThfcmVrZXlUb1BsdWdpbih0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZS5hcHBsaWNhdGlvbikKCWludCAwCglwdXNoaW50IDgKCWJ5dGUgMHg2ZSAvLyAibiIKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWNhbGxzdWIgYXJjNThfcmVrZXlUb1BsdWdpbgoJcmV0c3ViCgovLyBhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9hZGRQbHVnaW46CgkvLyBhZG1pblByaXZpbGVnZXM6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhZG1pblByaXZpbGVnZXMpIGZvciBhcmM1OF9hZGRQbHVnaW4gbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGNvb2xkb3duOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBsYXN0VmFsaWRSb3VuZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYWxsb3dlZENhbGxlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChhbGxvd2VkQ2FsbGVyKSBmb3IgYXJjNThfYWRkUGx1Z2luIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBhcHA6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYXJjNThfYWRkUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkCgljYWxsc3ViIGFyYzU4X2FkZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfYWRkUGx1Z2luKGFwcDogQXBwSUQsIGFsbG93ZWRDYWxsZXI6IEFkZHJlc3MsIGxhc3RWYWxpZFJvdW5kOiB1aW50NjQsIGNvb2xkb3duOiB1aW50NjQsIGFkbWluUHJpdmlsZWdlczogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkIGFuIGFwcCB0byB0aGUgbGlzdCBvZiBhcHByb3ZlZCBwbHVnaW5zCi8vCi8vIEBwYXJhbSBhcHAgVGhlIGFwcCB0byBhZGQKLy8gQHBhcmFtIGFsbG93ZWRDYWxsZXIgVGhlIGFkZHJlc3Mgb2YgdGhhdCdzIGFsbG93ZWQgdG8gY2FsbCB0aGUgYXBwCi8vIG9yIHRoZSBnbG9iYWwgemVybyBhZGRyZXNzIGZvciBhbGwgYWRkcmVzc2VzCi8vIEBwYXJhbSBsYXN0VmFsaWRSb3VuZCBUaGUgcm91bmQgd2hlbiB0aGUgcGVybWlzc2lvbiBleHBpcmVzCi8vIEBwYXJhbSBjb29sZG93biAgVGhlIG51bWJlciBvZiByb3VuZHMgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIHRoZSBwbHVnaW4gY2FuIGJlIGNhbGxlZCBhZ2FpbgovLyBAcGFyYW0gYWRtaW5Qcml2aWxlZ2VzIFdoZXRoZXIgdGhlIHBsdWdpbiBoYXMgcGVybWlzc2lvbnMgdG8gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CmFyYzU4X2FkZFBsdWdpbjoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMjQKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuYWRtaW4udmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hZG1pbi52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjIyNQoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBhbGxvd2VkQ2FsbGVyIH0KCWZyYW1lX2RpZyAtMSAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYWxsb3dlZENhbGxlcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBQbHVnaW5zS2V5CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyMjYKCS8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewoJLy8gICAgICAgbGFzdFZhbGlkUm91bmQ6IGxhc3RWYWxpZFJvdW5kLAoJLy8gICAgICAgY29vbGRvd246IGNvb2xkb3duLAoJLy8gICAgICAgbGFzdENhbGxlZDogMCwKCS8vICAgICAgIGFkbWluUHJpdmlsZWdlczogYWRtaW5Qcml2aWxlZ2VzLAoJLy8gICAgIH0KCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC00IC8vIGNvb2xkb3duOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIC01IC8vIGFkbWluUHJpdmlsZWdlczogYm9vbGVhbgoJc2V0Yml0Cgljb25jYXQKCWJveF9wdXQKCXJldHN1YgoKLy8gYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVQbHVnaW46CgkvLyBhbGxvd2VkQ2FsbGVyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFsbG93ZWRDYWxsZXIpIGZvciBhcmM1OF9yZW1vdmVQbHVnaW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFwcDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhcmM1OF9yZW1vdmVQbHVnaW4odWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhcmM1OF9yZW1vdmVQbHVnaW4KCWludCAxCglyZXR1cm4KCi8vIGFyYzU4X3JlbW92ZVBsdWdpbihhcHA6IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzKTogdm9pZAovLwovLyBSZW1vdmUgYW4gYXBwIGZyb20gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgcGx1Z2lucwovLwovLyBAcGFyYW0gYXBwIFRoZSBhcHAgdG8gcmVtb3ZlCmFyYzU4X3JlbW92ZVBsdWdpbjoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNDAKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuYWRtaW4udmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hZG1pbi52YWx1ZSJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI0MgoJLy8ga2V5OiBQbHVnaW5zS2V5ID0geyBhcHBsaWNhdGlvbjogYXBwLCBhbGxvd2VkQ2FsbGVyOiBhbGxvd2VkQ2FsbGVyIH0KCWZyYW1lX2RpZyAtMSAvLyBhcHA6IEFwcElECglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYWxsb3dlZENhbGxlcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBQbHVnaW5zS2V5CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNDMKCS8vIHRoaXMucGx1Z2lucyhrZXkpLmRlbGV0ZSgpCglieXRlIDB4NzAgLy8gInAiCglmcmFtZV9kaWcgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCWNvbmNhdAoJYm94X2RlbAoJcmV0c3ViCgovLyBhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9hZGROYW1lZFBsdWdpbjoKCS8vIGFkbWluUHJpdmlsZWdlczogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkbWluUHJpdmlsZWdlcykgZm9yIGFyYzU4X2FkZE5hbWVkUGx1Z2luIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBjb29sZG93bjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFsbG93ZWRDYWxsZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoYWxsb3dlZENhbGxlcikgZm9yIGFyYzU4X2FkZE5hbWVkUGx1Z2luIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBhcHA6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFyYzU4X2FkZE5hbWVkUGx1Z2luKHN0cmluZyx1aW50NjQsYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBhcmM1OF9hZGROYW1lZFBsdWdpbgoJaW50IDEKCXJldHVybgoKLy8gYXJjNThfYWRkTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nLCBhcHA6IEFwcElELCBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzLCBsYXN0VmFsaWRSb3VuZDogdWludDY0LCBjb29sZG93bjogdWludDY0LCBhZG1pblByaXZpbGVnZXM6IGJvb2xlYW4pOiB2b2lkCi8vCi8vIEFkZCBhIG5hbWVkIHBsdWdpbgovLwovLyBAcGFyYW0gYXBwIFRoZSBwbHVnaW4gYXBwCi8vIEBwYXJhbSBuYW1lIFRoZSBwbHVnaW4gbmFtZQovLyBAcGFyYW0gYWxsb3dlZENhbGxlciBUaGUgYWRkcmVzcyBvZiB0aGF0J3MgYWxsb3dlZCB0byBjYWxsIHRoZSBhcHAKLy8gb3IgdGhlIGdsb2JhbCB6ZXJvIGFkZHJlc3MgZm9yIGFsbCBhZGRyZXNzZXMKLy8gQHBhcmFtIGxhc3RWYWxpZFJvdW5kIFRoZSByb3VuZCB3aGVuIHRoZSBwZXJtaXNzaW9uIGV4cGlyZXMKLy8gQHBhcmFtIGNvb2xkb3duICBUaGUgbnVtYmVyIG9mIHJvdW5kcyB0aGF0IG11c3QgcGFzcyBiZWZvcmUgdGhlIHBsdWdpbiBjYW4gYmUgY2FsbGVkIGFnYWluCi8vIEBwYXJhbSBhZG1pblByaXZpbGVnZXMgV2hldGhlciB0aGUgcGx1Z2luIGhhcyBwZXJtaXNzaW9ucyB0byBjaGFuZ2UgdGhlIGFkbWluIGFjY291bnQKYXJjNThfYWRkTmFtZWRQbHVnaW46Cglwcm90byA2IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjY1CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNjYKCS8vIGFzc2VydCghdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZXhpc3RzKQoJYnl0ZSAweDZlIC8vICJuIgoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6MjY4CgkvLyBrZXk6IFBsdWdpbnNLZXkgPSB7IGFwcGxpY2F0aW9uOiBhcHAsIGFsbG93ZWRDYWxsZXI6IGFsbG93ZWRDYWxsZXIgfQoJZnJhbWVfZGlnIC0yIC8vIGFwcDogQXBwSUQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBhbGxvd2VkQ2FsbGVyOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IFBsdWdpbnNLZXkKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI2OQoJLy8gdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkudmFsdWUgPSBrZXkKCWJ5dGUgMHg2ZSAvLyAibiIKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8ga2V5OiBQbHVnaW5zS2V5Cglib3hfcHV0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyNzAKCS8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewoJLy8gICAgICAgbGFzdFZhbGlkUm91bmQ6IGxhc3RWYWxpZFJvdW5kLAoJLy8gICAgICAgY29vbGRvd246IGNvb2xkb3duLAoJLy8gICAgICAgbGFzdENhbGxlZDogMCwKCS8vICAgICAgIGFkbWluUHJpdmlsZWdlczogYWRtaW5Qcml2aWxlZ2VzLAoJLy8gICAgIH0KCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIGtleTogUGx1Z2luc0tleQoJY29uY2F0CglmcmFtZV9kaWcgLTQgLy8gbGFzdFZhbGlkUm91bmQ6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC01IC8vIGNvb2xkb3duOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIC02IC8vIGFkbWluUHJpdmlsZWdlczogYm9vbGVhbgoJc2V0Yml0Cgljb25jYXQKCWJveF9wdXQKCXJldHN1YgoKLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4oc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVOYW1lZFBsdWdpbjoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkCgljYWxsc3ViIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luCglpbnQgMQoJcmV0dXJuCgovLyBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbihuYW1lOiBzdHJpbmcpOiB2b2lkCi8vCi8vIFJlbW92ZSBhIG5hbWVkIHBsdWdpbgovLwovLyBAcGFyYW0gbmFtZSBUaGUgcGx1Z2luIG5hbWUKYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW46Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzU4L2FyYzU4LmFsZ28udHM6Mjg0CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFkbWluLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMuYWRtaW4udmFsdWUifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyODYKCS8vIGFwcCA9IHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlCglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vYXBwCgoJLy8gZXhhbXBsZXMvYXJjNTgvYXJjNTguYWxnby50czoyODcKCS8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmRlbGV0ZSgpCglieXRlIDB4NmUgLy8gIm4iCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCgljb25jYXQKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM1OC9hcmM1OC5hbGdvLnRzOjI4OAoJLy8gdGhpcy5wbHVnaW5zKGFwcCkuZGVsZXRlKCkKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAwIC8vIHN0b3JhZ2Uga2V5Ly9hcHAKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlCglhc3NlcnQKCWNvbmNhdAoJYm94X2RlbAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiNGM3N2Q3MSAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKGFkZHJlc3MsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDI0Yjc1NTYgLy8gbWV0aG9kICJhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg1ZmE0NDljNiAvLyBtZXRob2QgImFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDEzYmM0NGU0IC8vIG1ldGhvZCAiYXJjNThfZ2V0QWRtaW4oKWFkZHJlc3MiCglieXRlIDB4MGY4ODU0OTMgLy8gbWV0aG9kICJhcmM1OF92ZXJpZnlBdXRoQWRkcigpdm9pZCIKCXB1c2hieXRlcyAweGM5NWE1ZDNkIC8vIG1ldGhvZCAiYXJjNThfcmVrZXlUbyhhZGRyZXNzLGJvb2wpdm9pZCIKCXB1c2hieXRlcyAweDdjNzY2ZGRjIC8vIG1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDU2ZjI4YjU4IC8vIG1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDEyZGNiNjEgLy8gbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHg0ZDM3MjM1NSAvLyBtZXRob2QgImFyYzU4X3JlbW92ZVBsdWdpbih1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4OGE3MmE3NTAgLy8gbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHhlMzUwYjlkNCAvLyBtZXRob2QgImFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKHN0cmluZyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcmM1OF9jaGFuZ2VBZG1pbiAqYWJpX3JvdXRlX2FyYzU4X3BsdWdpbkNoYW5nZUFkbWluICphYmlfcm91dGVfYXJjNThfZ2V0QWRtaW4gKmFiaV9yb3V0ZV9hcmM1OF92ZXJpZnlBdXRoQWRkciAqYWJpX3JvdXRlX2FyYzU4X3Jla2V5VG8gKmFiaV9yb3V0ZV9hcmM1OF9yZWtleVRvUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkUGx1Z2luICphYmlfcm91dGVfYXJjNThfcmVtb3ZlUGx1Z2luICphYmlfcm91dGVfYXJjNThfYWRkTmFtZWRQbHVnaW4gKmFiaV9yb3V0ZV9hcmM1OF9yZW1vdmVOYW1lZFBsdWdpbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQAgBiYIAXABYQFjAAFuBA+IVJMIAAAAAAAAAAABADEYFCULMRkIjQwDzAAAAAAAAAAAAAADvgAAAAAAAAAAAAAAigAAK0cCI4wAMRaMAYsBMgQMQQBdiwGMAosCOAAqZBJJQQAIiwI4ICpkEhBBAAYijABCAD2LAjgQJRJJQQAJiwI4GDYyABIQSUEAB4sCOBsiEhBJQQAJiwI5GgAnBRIQQQAGIowAQgAJiwEiCIwBQv+biwBEiYoAASpkMgoSQQAFMgNCAAIyCok2GgJJFSQSRDYaAUkVJBJEiAACIkOKAgAxAIv/EjEAi/4SEUSL/ov/E0Qpi/5nKov/MgMSQQAFMgpCAAKL/2eJNhoBSRUkEkSIAAIiQ4oBADEAKWQSRCmL/2eJNhoDSRUkEkQ2GgJJFSQSRDYaAReIAAIiQ4oDACsxAIv/cghIEkQqZHMCSIv/cghIEkSL/xaL/lCMACiLAFC9TEhJQQAPKIsAUL5ENf80/4HAAVMQRCmL/WeJgAQVH3x1iAAEULAiQ4oAASlkiYgAAiJDigAAKmRzAkiI/xUSRIk2GgJJFSISRCNTNhoBSRUkEkSIAAIiQ4oCADEAKWQSRLEishAqZLIAi/+yB4v/siCAG3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudLIFI7IBs4v+QQADiP5BiYoCASuL/xaL/lCMACiLAFC9TEhJQQASKIsAUL5ENf80/1cACBcyBg8QSUEAITIGKIsAUL5ENf80/1cQCBcJKIsAUL5ENf80/1cICBcPEIwAiTYaAReIAAIiQ4oBACsyA4v/iP+bjACLABRBAAgxAIv/iP+MRLEishAqZLIAKmSyB4v/cghIsiCAFnJla2V5aW5nIHRvIHBsdWdpbiBhcHCyBSOyAbMoi/8WiwBBAAUyA0IAAjEAUFC+RDX/NP+BEDIGFiiL/xaLAEEABTIDQgACMQBQUE4Cu4j9ZYk2GgFXAgCIAAIiQ4oBACOBCCcEi/9QTgK6F4j/YYk2GgVJFSISRCNTNhoEFzYaAxc2GgJJFSQSRDYaAReIAAIiQ4oFACsxAClkEkSL/xaL/lCMACiLAFCL/RaL/BZQJwZQJwcji/tUUL+JNhoCSRUkEkQ2GgEXiAACIkOKAgArMQApZBJEi/8Wi/5QjAAoiwBQvIk2GgZJFSISRCNTNhoFFzYaBBc2GgNJFSQSRDYaAhc2GgFXAgCIAAIiQ4oGACsxAClkEkQnBIv/UL1MSBREi/4Wi/1QjAAnBIv/UIsAvyiLAFCL/BaL+xZQJwZQJwcji/pUUL+JNhoBVwIAiAACIkOKAQArMQApZBJEJwSL/1CMACcEi/9QvCiLAL5EULyJgAS0x31xNhoAjgH8vwCABNJLdVaABF+kScaABBO8ROQnBYAEyVpdPYAEfHZt3IAEVvKLWIAE0S3LYYAETTcjVYAEinKnUIAE41C51DYaAI4L/KX8wP0a/S39QP3t/nj+lv7i/wv/bwA=", + "approval": "CiADAQAgJggBcAFhAWMIAAAAAAAAAAAABA+IVJMBbgEAMRgUgQYLMRkIjQwEVQAAAAAAAAAAAAAERwAAAAAAAAAAAAAAigAAgABHAoEAjAAxFowBiwEyBAxBAGqLAYwCiwI4AIABY2QSSUEACosCOCCAAWNkEhBBAAeBAYwAQgBFiwI4EIEGEklBAAmLAjgYNjIAEhBJQQAIiwI4G4EBEhBJQQANiwI5GgCABA+IVJMSEEEAB4EBjABCAAqLAYEBCIwBQv+OiwBEiYoAAYABY2QyChJBAAUyA0IAAjIKiTYaAkkVgSASRDYaAUkVgSASRIgAA4EBQ4oCADEAi/8SMQCL/hIRRIv+i/8TRIABYYv+Z4ABY4v/MgMSQQAFMgpCAAKL/2eJNhoBSRWBIBJEiAADgQFDigEAMQCAAWFkEkSAAWGL/2eJNhoDSRWBIBJENhoCSRWBIBJENhoBF4gAA4EBQ4oDAIAAMQCL/3IISBJEgAFjZHMCSIv/cghIEkSL/xaL/lCMAIABcIsAUL1MSElBABGAAXCLAFC+RDX/NP+BwAFTEESAAWGL/WeJgAQVH3x1iAAFULCBAUOKAAGAAWFkiYgAA4EBQ4oAAIABY2RzAkiI/vQSRIk2GgJJFYEBEkSBAFM2GgFJFYEgEkSIAAOBAUOKAgAxAIABYWQSRLGBAbIQgAFjZLIAi/+yB4v/siCAG3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudLIFgQCyAbOL/kEAA4j+B4mKAgGAAIv/Fov+UIwAgAFwiwBQvUxISUEAFIABcIsAUL5ENf80/1cACBcyBg8QSUEAJTIGgAFwiwBQvkQ1/zT/VxAIFwmAAXCLAFC+RDX/NP9XCAgXDxCMAIk2GgEXiAADgQFDigEAgAAyA4v/iP+QjACLABRBAAgxAIv/iP+BRLGBAbIQgAFjZLIAgAFjZLIHi/9yCEiyIIAWcmVrZXlpbmcgdG8gcGx1Z2luIGFwcLIFgQCyAbOAAXCL/xaLAEEABTIDQgACMQBQUL5ENf80/4EQMgYWgAFwi/8WiwBBAAUyA0IAAjEAUFBOAruI/RaJNhoBVwIAiAADgQFDigEAgQCBCIABbov/UE4CuheI/1OJNhoFSRWBARJEgQBTNhoEFzYaAxc2GgJJFYEgEkQ2GgEXiAADgQFDigUAgAAxAIABYWQSRIv/Fov+UIwAgAFwiwBQi/0Wi/wWUIAIAAAAAAAAAABQgAEAgQCL+1RQv4k2GgJJFYEgEkQ2GgEXiAADgQFDigIAgAAxAIABYWQSRIv/Fov+UIwAgAFwiwBQvIk2GgZJFYEBEkSBAFM2GgUXNhoEFzYaA0kVgSASRDYaAhc2GgFXAgCIAAOBAUOKBgCAADEAgAFhZBJEgAFui/9QvUxIFESL/haL/VCMAIABbov/UIsAv4ABcIsAUIv8Fov7FlCACAAAAAAAAAAAUIABAIEAi/pUUL+JNhoBVwIAiAADgQFDigEAgAAxAIABYWQSRIABbov/UIwAgAFui/9QvIABcIsAvkRQvImABLTHfXE2GgCOAfxHAIAE0kt1VoAEX6RJxoAEE7xE5IAED4hUk4AEyVpdPYAEfHZt3IAEVvKLWIAE0S3LYYAETTcjVYAEinKnUIAE41C51DYaAI4L/DD8Ufy3/M384/2j/jr+W/66/ur/YwA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/arc58/artifacts/AbstractedAccount.src_map.json b/examples/arc58/artifacts/AbstractedAccount.src_map.json index 86c0c5694..8e9bc45f2 100644 --- a/examples/arc58/artifacts/AbstractedAccount.src_map.json +++ b/examples/arc58/artifacts/AbstractedAccount.src_map.json @@ -1,14 +1,26 @@ [ { "teal": 1, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 0, 1, 2, 3, 4, - 5, + 5 + ] + }, + { + "teal": 3, + "source": "examples/arc58/arc58.algo.ts:21", + "pc": [ 6, 7, 8, @@ -35,57 +47,57 @@ 29, 30, 31, - 32, - 33 + 32 ] }, { - "teal": 13, - "source": 21, + "teal": 15, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 34, - 35 + 33, + 34 ] }, { - "teal": 14, - "source": 21, + "teal": 16, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 36 + 35 ] }, { - "teal": 15, - "source": 21, + "teal": 17, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ + 36, 37 ] }, { - "teal": 16, - "source": 21, + "teal": 18, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ 38 ] }, { - "teal": 17, - "source": 21, + "teal": 19, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ 39, 40 ] }, { - "teal": 18, - "source": 21, + "teal": 20, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ 41 ] }, { - "teal": 19, - "source": 21, + "teal": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ 42, 43, @@ -116,16 +128,16 @@ ] }, { - "teal": 23, - "source": 21, + "teal": 25, + "source": "examples/arc58/arc58.algo.ts:21", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ 68 ] }, { - "teal": 29, - "source": 44, + "teal": 31, + "source": "examples/arc58/arc58.algo.ts:44", "pc": [ 69, 70, @@ -133,223 +145,205 @@ ] }, { - "teal": 32, - "source": 44, - "pc": [ - 72 - ] - }, - { - "teal": 33, - "source": 44, + "teal": 34, + "source": "examples/arc58/arc58.algo.ts:44", "pc": [ - 73, - 74 + 72, + 73 ] }, { - "teal": 37, - "source": 45, + "teal": 35, + "source": "examples/arc58/arc58.algo.ts:44", "pc": [ + 74, 75 ] }, { - "teal": 38, - "source": 45, + "teal": 39, + "source": "examples/arc58/arc58.algo.ts:45", "pc": [ 76, 77 ] }, { - "teal": 42, - "source": 47, + "teal": 40, + "source": "examples/arc58/arc58.algo.ts:45", "pc": [ 78, 79 ] }, { - "teal": 43, - "source": 47, + "teal": 44, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ 80, 81 ] }, { - "teal": 48, - "source": 47, + "teal": 45, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ 82, 83 ] }, { - "teal": 49, - "source": 47, + "teal": 50, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ 84, 85 ] }, { - "teal": 50, - "source": 47, + "teal": 51, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 86 + 86, + 87 ] }, { - "teal": 51, - "source": 47, + "teal": 52, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 87, - 88, - 89 + 88 ] }, { - "teal": 55, - "source": 48, + "teal": 53, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ + 89, 90, 91 ] }, { - "teal": 56, - "source": 48, + "teal": 57, + "source": "examples/arc58/arc58.algo.ts:48", "pc": [ 92, 93 ] }, { - "teal": 61, - "source": 51, + "teal": 58, + "source": "examples/arc58/arc58.algo.ts:48", "pc": [ 94, 95 ] }, { - "teal": 62, - "source": 51, + "teal": 63, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ 96, 97 ] }, - { - "teal": 63, - "source": 51, - "pc": [ - 98 - ] - }, { "teal": 64, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ + 98, 99 ] }, { "teal": 65, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 100 + 100, + 101, + 102 ] }, { "teal": 66, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 101 + 103 ] }, { "teal": 67, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 102, - 103, 104 ] }, { "teal": 68, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 105, - 106 + 105 ] }, { "teal": 69, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ + 106, 107, 108 ] }, { "teal": 70, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 109 + 109, + 110 ] }, { "teal": 71, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 110 + 111, + 112 ] }, { "teal": 72, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 111 + 113, + 114, + 115 ] }, { "teal": 73, - "source": 51, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 112 - ] - }, - { - "teal": 76, - "source": 51, - "pc": [ - 113, - 114, - 115 + 116 ] }, { - "teal": 81, - "source": 52, + "teal": 74, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 116 + 117 ] }, { - "teal": 82, - "source": 52, + "teal": 75, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ - 117, 118 ] }, { - "teal": 83, - "source": 53, + "teal": 78, + "source": "examples/arc58/arc58.algo.ts:51", "pc": [ 119, 120, @@ -357,4408 +351,4567 @@ ] }, { - "teal": 92, - "source": 58, + "teal": 83, + "source": "examples/arc58/arc58.algo.ts:52", "pc": [ 122, 123 ] }, { - "teal": 93, - "source": 58, + "teal": 84, + "source": "examples/arc58/arc58.algo.ts:52", "pc": [ 124, 125 ] }, + { + "teal": 85, + "source": "examples/arc58/arc58.algo.ts:53", + "pc": [ + 126, + 127, + 128 + ] + }, { "teal": 94, - "source": 58, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 126 + 129, + 130 ] }, { "teal": 95, - "source": 58, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 127 + 131, + 132 ] }, { "teal": 96, - "source": 58, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 128 + 133, + 134 ] }, { "teal": 97, - "source": 58, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 129, - 130, - 131 + 135 ] }, { "teal": 98, - "source": 59, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 132, - 133 + 136 ] }, { "teal": 99, - "source": 59, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 134, - 135 + 137, + 138, + 139 ] }, { "teal": 100, - "source": 59, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 136, - 137, - 138 + 140, + 141 ] }, { "teal": 101, - "source": 59, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 139 + 142, + 143 ] }, { "teal": 102, - "source": 58, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 140 + 144, + 145, + 146 ] }, { - "teal": 105, - "source": 59, + "teal": 103, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 141 + 147 ] }, { - "teal": 106, - "source": 59, + "teal": 104, + "source": "examples/arc58/arc58.algo.ts:58", "pc": [ - 142, - 143, - 144 + 148 ] }, { "teal": 107, - "source": 60, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 145, - 146 + 149 ] }, { "teal": 108, - "source": 60, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 147, - 148 + 150, + 151, + 152 ] }, { "teal": 109, - "source": 60, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 149 + 153, + 154 ] }, { "teal": 110, - "source": 60, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 150 + 155, + 156 ] }, { "teal": 111, - "source": 59, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 151 + 157, + 158 ] }, { - "teal": 114, - "source": 60, + "teal": 112, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 152 + 159 ] }, { - "teal": 115, - "source": 60, + "teal": 113, + "source": "examples/arc58/arc58.algo.ts:59", "pc": [ - 153, - 154, - 155 + 160 ] }, { "teal": 116, - "source": 61, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 156, - 157 + 161 ] }, { "teal": 117, - "source": 61, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 158, - 159, - 160 + 162, + 163, + 164 ] }, { "teal": 118, - "source": 61, + "source": "examples/arc58/arc58.algo.ts:61", "pc": [ - 161, - 162 + 165, + 166 ] }, { "teal": 119, - "source": 61, + "source": "examples/arc58/arc58.algo.ts:61", "pc": [ - 163 + 167, + 168, + 169 ] }, { "teal": 120, - "source": 60, + "source": "examples/arc58/arc58.algo.ts:61", "pc": [ - 164 + 170, + 171, + 172, + 173, + 174, + 175 ] }, { - "teal": 123, - "source": 57, + "teal": 121, + "source": "examples/arc58/arc58.algo.ts:61", "pc": [ - 165, - 166, - 167 + 176 ] }, { - "teal": 128, - "source": 63, + "teal": 122, + "source": "examples/arc58/arc58.algo.ts:60", "pc": [ - 168 + 177 ] }, { - "teal": 129, - "source": 63, + "teal": 125, + "source": "examples/arc58/arc58.algo.ts:57", "pc": [ - 169, - 170 + 178, + 179, + 180 ] }, { "teal": 130, - "source": 64, + "source": "examples/arc58/arc58.algo.ts:63", "pc": [ - 171, - 172, - 173 + 181, + 182 ] }, { - "teal": 137, - "source": 47, + "teal": 131, + "source": "examples/arc58/arc58.algo.ts:63", "pc": [ - 174, - 175 + 183, + 184 ] }, { - "teal": 138, - "source": 47, + "teal": 132, + "source": "examples/arc58/arc58.algo.ts:64", "pc": [ - 176 + 185, + 186, + 187 ] }, { "teal": 139, - "source": 47, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 177 + 188, + 189 ] }, { "teal": 140, - "source": 47, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 178, - 179 + 190, + 191 ] }, { "teal": 141, - "source": 47, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 180, - 181, - 182 + 192 ] }, { - "teal": 146, - "source": 68, + "teal": 142, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 183, - 184 + 193, + 194 ] }, { - "teal": 147, - "source": 68, + "teal": 143, + "source": "examples/arc58/arc58.algo.ts:47", "pc": [ - 185 + 195, + 196, + 197 ] }, { "teal": 148, - "source": 44, + "source": "examples/arc58/arc58.algo.ts:68", "pc": [ - 186 + 198, + 199 ] }, { - "teal": 155, - "source": 75, + "teal": 149, + "source": "examples/arc58/arc58.algo.ts:68", "pc": [ - 187, - 188, - 189 + 200 ] }, { - "teal": 159, - "source": 76, + "teal": 150, + "source": "examples/arc58/arc58.algo.ts:44", "pc": [ - 190 + 201 ] }, { - "teal": 160, - "source": 76, + "teal": 157, + "source": "examples/arc58/arc58.algo.ts:75", "pc": [ - 191 + 202, + 203, + 204 ] }, { "teal": 161, - "source": 76, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 192, - 193 + 205, + 206, + 207 ] }, { "teal": 162, - "source": 76, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 194 + 208 ] }, { "teal": 163, - "source": 76, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 195, - 196, - 197 + 209, + 210 ] }, { "teal": 164, - "source": 76, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 198, - 199 + 211 ] }, { "teal": 165, - "source": 76, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 200, - 201, - 202 + 212, + 213, + 214 ] }, { - "teal": 168, - "source": 76, + "teal": 166, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 203, - 204 + 215, + 216 ] }, { - "teal": 171, - "source": 75, + "teal": 167, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 205 + 217, + 218, + 219 ] }, { - "teal": 176, - "source": 86, + "teal": 170, + "source": "examples/arc58/arc58.algo.ts:76", "pc": [ - 206, - 207, - 208 + 220, + 221 ] }, { - "teal": 177, - "source": 86, + "teal": 173, + "source": "examples/arc58/arc58.algo.ts:75", "pc": [ - 209 + 222 ] }, { "teal": 178, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 210 + 223, + 224, + 225 ] }, { "teal": 179, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 211 + 226 ] }, { "teal": 180, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 212 + 227 ] }, { - "teal": 183, - "source": 86, - "errorMessage": "argument 0 (admin) for createApplication must be a address", + "teal": 181, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 213 + 228, + 229 ] }, { - "teal": 186, - "source": 86, + "teal": 182, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 214, - 215, - 216 + 230 ] }, { - "teal": 187, - "source": 86, + "teal": 185, + "source": "examples/arc58/arc58.algo.ts:86", + "errorMessage": "argument 0 (admin) for createApplication must be a address", "pc": [ - 217 + 231 ] }, { "teal": 188, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 218 + 232, + 233, + 234 ] }, { "teal": 189, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 219 + 235 ] }, { "teal": 190, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 220 + 236 ] }, { - "teal": 193, - "source": 86, - "errorMessage": "argument 1 (controlledAddress) for createApplication must be a address", + "teal": 191, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 221 + 237, + 238 ] }, { - "teal": 196, - "source": 86, + "teal": 192, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 222, - 223, - 224 + 239 ] }, { - "teal": 197, - "source": 86, + "teal": 195, + "source": "examples/arc58/arc58.algo.ts:86", + "errorMessage": "argument 1 (controlledAddress) for createApplication must be a address", "pc": [ - 225 + 240 ] }, { "teal": 198, - "source": 86, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 226 + 241, + 242, + 243 ] }, { - "teal": 208, - "source": 86, + "teal": 199, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 227, - 228, - 229 + 244, + 245 ] }, { - "teal": 215, - "source": 88, + "teal": 200, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 230, - 231 + 246 ] }, { - "teal": 216, - "source": 88, + "teal": 210, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 232, - 233 + 247, + 248, + 249 ] }, { "teal": 217, - "source": 88, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 234 + 250, + 251 ] }, { "teal": 218, - "source": 88, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 235, - 236 + 252, + 253 ] }, { "teal": 219, - "source": 88, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 237, - 238 + 254 ] }, { "teal": 220, - "source": 88, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 239 + 255, + 256 ] }, { "teal": 221, - "source": 88, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 240 + 257, + 258 ] }, { - "teal": 224, - "source": 88, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"includedIn\",\"expected\":\"[controlledAddress, admin]\"}", + "teal": 222, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 241 + 259 ] }, { - "teal": 228, - "source": 91, + "teal": 223, + "source": "examples/arc58/arc58.algo.ts:88", "pc": [ - 242, - 243 + 260 ] }, { - "teal": 229, - "source": 91, + "teal": 226, + "source": "examples/arc58/arc58.algo.ts:88", + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"includedIn\",\"expected\":\"[controlledAddress, admin]\"}", "pc": [ - 244, - 245 + 261 ] }, { "teal": 230, - "source": 91, + "source": "examples/arc58/arc58.algo.ts:91", "pc": [ - 246 + 262, + 263 ] }, { "teal": 231, - "source": 91, + "source": "examples/arc58/arc58.algo.ts:91", "pc": [ - 247 + 264, + 265 ] }, { - "teal": 235, - "source": 93, + "teal": 232, + "source": "examples/arc58/arc58.algo.ts:91", "pc": [ - 248 + 266 ] }, { - "teal": 236, - "source": 93, + "teal": 233, + "source": "examples/arc58/arc58.algo.ts:91", "pc": [ - 249, - 250 + 267 ] }, { "teal": 237, - "source": 93, + "source": "examples/arc58/arc58.algo.ts:93", "pc": [ - 251 + 268, + 269, + 270 ] }, { - "teal": 241, - "source": 94, + "teal": 238, + "source": "examples/arc58/arc58.algo.ts:93", "pc": [ - 252 + 271, + 272 ] }, { - "teal": 242, - "source": 94, + "teal": 239, + "source": "examples/arc58/arc58.algo.ts:93", "pc": [ - 253, - 254 + 273 ] }, { "teal": 243, - "source": 94, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 255, - 256 + 274, + 275, + 276 ] }, { "teal": 244, - "source": 94, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 257 + 277, + 278 ] }, { "teal": 245, - "source": 94, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 258, - 259, - 260 + 279, + 280 ] }, { "teal": 246, - "source": 94, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 261, - 262 + 281 ] }, { "teal": 247, - "source": 94, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 263, - 264, - 265 + 282, + 283, + 284 ] }, { - "teal": 250, - "source": 94, + "teal": 248, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 266, - 267 + 285, + 286 ] }, { - "teal": 253, - "source": 94, + "teal": 249, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 268 + 287, + 288, + 289 ] }, { - "teal": 254, - "source": 86, + "teal": 252, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 269 + 290, + 291 ] }, { - "teal": 259, - "source": 102, + "teal": 255, + "source": "examples/arc58/arc58.algo.ts:94", "pc": [ - 270, - 271, - 272 + 292 ] }, { - "teal": 260, - "source": 102, + "teal": 256, + "source": "examples/arc58/arc58.algo.ts:86", "pc": [ - 273 + 293 ] }, { "teal": 261, - "source": 102, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 274 + 294, + 295, + 296 ] }, { "teal": 262, - "source": 102, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 275 + 297 ] }, { "teal": 263, - "source": 102, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 276 + 298 ] }, { - "teal": 266, - "source": 102, - "errorMessage": "argument 0 (newAdmin) for arc58_changeAdmin must be a address", + "teal": 264, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 277 + 299, + 300 ] }, { - "teal": 269, - "source": 102, + "teal": 265, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 278, - 279, - 280 + 301 ] }, { - "teal": 270, - "source": 102, + "teal": 268, + "source": "examples/arc58/arc58.algo.ts:102", + "errorMessage": "argument 0 (newAdmin) for arc58_changeAdmin must be a address", "pc": [ - 281 + 302 ] }, { "teal": 271, - "source": 102, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 282 + 303, + 304, + 305 ] }, { - "teal": 279, - "source": 102, + "teal": 272, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 283, - 284, - 285 + 306, + 307 ] }, { - "teal": 284, - "source": 103, + "teal": 273, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 286, - 287 + 308 ] }, { - "teal": 285, - "source": 103, + "teal": 281, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 288 + 309, + 310, + 311 ] }, { "teal": 286, - "source": 103, + "source": "examples/arc58/arc58.algo.ts:103", "pc": [ - 289 + 312, + 313 ] }, { "teal": 287, - "source": 103, + "source": "examples/arc58/arc58.algo.ts:103", "pc": [ - 290 + 314, + 315, + 316 ] }, { - "teal": 290, - "source": 103, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", + "teal": 288, + "source": "examples/arc58/arc58.algo.ts:103", "pc": [ - 291 + 317 ] }, { - "teal": 294, - "source": 104, + "teal": 289, + "source": "examples/arc58/arc58.algo.ts:103", "pc": [ - 292 + 318 ] }, { - "teal": 295, - "source": 104, + "teal": 292, + "source": "examples/arc58/arc58.algo.ts:103", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", "pc": [ - 293, - 294 + 319 ] }, { "teal": 296, - "source": 104, + "source": "examples/arc58/arc58.algo.ts:104", "pc": [ - 295 + 320, + 321, + 322 ] }, { "teal": 297, - "source": 102, + "source": "examples/arc58/arc58.algo.ts:104", "pc": [ - 296 + 323, + 324 ] }, { - "teal": 302, - "source": 115, + "teal": 298, + "source": "examples/arc58/arc58.algo.ts:104", "pc": [ - 297, - 298, - 299 + 325 ] }, { - "teal": 303, - "source": 115, + "teal": 299, + "source": "examples/arc58/arc58.algo.ts:102", "pc": [ - 300 + 326 ] }, { "teal": 304, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 301 + 327, + 328, + 329 ] }, { "teal": 305, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 302 + 330 ] }, { "teal": 306, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 303 + 331 ] }, { - "teal": 309, - "source": 115, - "errorMessage": "argument 0 (newAdmin) for arc58_pluginChangeAdmin must be a address", + "teal": 307, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 304 + 332, + 333 ] }, { - "teal": 312, - "source": 115, + "teal": 308, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 305, - 306, - 307 + 334 ] }, { - "teal": 313, - "source": 115, + "teal": 311, + "source": "examples/arc58/arc58.algo.ts:115", + "errorMessage": "argument 0 (newAdmin) for arc58_pluginChangeAdmin must be a address", "pc": [ - 308 + 335 ] }, { "teal": 314, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 309 + 336, + 337, + 338 ] }, { "teal": 315, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 310 + 339 ] }, { "teal": 316, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 311 + 340 ] }, { - "teal": 319, - "source": 115, - "errorMessage": "argument 1 (allowedCaller) for arc58_pluginChangeAdmin must be a address", + "teal": 317, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 312 + 341, + 342 ] }, { - "teal": 322, - "source": 115, + "teal": 318, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 313, - 314, - 315 + 343 ] }, { - "teal": 323, - "source": 115, + "teal": 321, + "source": "examples/arc58/arc58.algo.ts:115", + "errorMessage": "argument 1 (allowedCaller) for arc58_pluginChangeAdmin must be a address", "pc": [ - 316 + 344 ] }, { - "teal": 326, - "source": 115, + "teal": 324, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 317, - 318, - 319 + 345, + 346, + 347 ] }, { - "teal": 327, - "source": 115, + "teal": 325, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 320 + 348 ] }, { "teal": 328, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 321 + 349, + 350, + 351 ] }, { - "teal": 338, - "source": 115, + "teal": 329, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 322, - 323, - 324 + 352, + 353 ] }, { - "teal": 341, - "source": 115, + "teal": 330, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 325 + 354 ] }, { - "teal": 346, - "source": 116, + "teal": 340, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 326, - 327 + 355, + 356, + 357 ] }, { - "teal": 347, - "source": 116, + "teal": 343, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 328, - 329 + 358, + 359 ] }, { "teal": 348, - "source": 116, + "source": "examples/arc58/arc58.algo.ts:116", "pc": [ - 330, - 331 + 360, + 361 ] }, { "teal": 349, - "source": 116, + "source": "examples/arc58/arc58.algo.ts:116", "pc": [ - 332 + 362, + 363 ] }, { "teal": 350, - "source": 116, + "source": "examples/arc58/arc58.algo.ts:116", "pc": [ - 333 + 364, + 365 ] }, { - "teal": 353, - "source": 116, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"plugin.address\"}", + "teal": 351, + "source": "examples/arc58/arc58.algo.ts:116", "pc": [ - 334 + 366 ] }, { - "teal": 357, - "source": 117, + "teal": 352, + "source": "examples/arc58/arc58.algo.ts:116", "pc": [ - 335 + 367 ] }, { - "teal": 358, - "source": 117, + "teal": 355, + "source": "examples/arc58/arc58.algo.ts:116", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"plugin.address\"}", "pc": [ - 336 + 368 ] }, { "teal": 359, - "source": 117, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 337, - 338 + 369, + 370, + 371 ] }, { "teal": 360, - "source": 117, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 339 + 372 ] }, { "teal": 361, - "source": 117, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 340, - 341 + 373, + 374 ] }, { "teal": 362, - "source": 117, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 342, - 343 + 375 ] }, { "teal": 363, - "source": 117, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 344 + 376, + 377 ] }, { "teal": 364, - "source": 117, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 345 + 378, + 379 ] }, { - "teal": 367, - "source": 117, - "errorMessage": "This plugin is not in control of the account", + "teal": 365, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 346 + 380 ] }, { - "teal": 371, - "source": 119, + "teal": 366, + "source": "examples/arc58/arc58.algo.ts:117", "pc": [ - 347, - 348 + 381 ] }, { - "teal": 372, - "source": 119, + "teal": 369, + "source": "examples/arc58/arc58.algo.ts:117", + "errorMessage": "This plugin is not in control of the account", "pc": [ - 349 + 382 ] }, { "teal": 373, - "source": 119, + "source": "examples/arc58/arc58.algo.ts:119", "pc": [ - 350, - 351 + 383, + 384 ] }, { "teal": 374, - "source": 119, + "source": "examples/arc58/arc58.algo.ts:119", "pc": [ - 352 + 385 ] }, { "teal": 375, - "source": 119, + "source": "examples/arc58/arc58.algo.ts:119", "pc": [ - 353, - 354 + 386, + 387 ] }, { - "teal": 382, - "source": 121, + "teal": 376, + "source": "examples/arc58/arc58.algo.ts:119", "pc": [ - 355 + 388 ] }, { - "teal": 383, - "source": 121, + "teal": 377, + "source": "examples/arc58/arc58.algo.ts:119", "pc": [ - 356, - 357 + 389, + 390 ] }, { "teal": 384, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 358 + 391, + 392, + 393 ] }, { "teal": 385, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 359 + 394, + 395 ] }, { "teal": 386, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 360 + 396 ] }, { "teal": 387, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 361 + 397 ] }, { "teal": 388, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 362 + 398 ] }, { "teal": 389, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 363, - 364, - 365 + 399 ] }, { "teal": 390, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 366 + 400 ] }, { "teal": 391, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 367, - 368 + 401, + 402, + 403 ] }, { "teal": 392, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 369 + 404, + 405, + 406 ] }, { "teal": 393, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 370 + 407, + 408 ] }, { - "teal": 396, - "source": 121, - "errorMessage": "box value does not exist: this.plugins(key).value", + "teal": 394, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 371 + 409 ] }, { - "teal": 397, - "source": 121, + "teal": 395, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 372, - 373 + 410 ] }, { "teal": 398, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", + "errorMessage": "box value does not exist: this.plugins(key).value", "pc": [ - 374, - 375 + 411 ] }, { "teal": 399, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 376, - 377, - 378 + 412, + 413 ] }, { "teal": 400, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 379 + 414, + 415 ] }, { "teal": 401, - "source": 121, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 380 + 416, + 417, + 418 ] }, { - "teal": 405, - "source": 120, - "errorMessage": "This plugin does not have admin privileges", + "teal": 402, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 381 + 419 ] }, { - "teal": 409, - "source": 125, + "teal": 403, + "source": "examples/arc58/arc58.algo.ts:121", "pc": [ - 382 + 420 ] }, { - "teal": 410, - "source": 125, + "teal": 407, + "source": "examples/arc58/arc58.algo.ts:120", + "errorMessage": "This plugin does not have admin privileges", "pc": [ - 383, - 384 + 421 ] }, { "teal": 411, - "source": 125, + "source": "examples/arc58/arc58.algo.ts:125", "pc": [ - 385 + 422, + 423, + 424 ] }, { "teal": 412, - "source": 115, + "source": "examples/arc58/arc58.algo.ts:125", "pc": [ - 386 + 425, + 426 ] }, { - "teal": 417, - "source": 132, + "teal": 413, + "source": "examples/arc58/arc58.algo.ts:125", "pc": [ - 387, - 388, - 389, - 390, - 391, - 392 + 427 ] }, { - "teal": 420, - "source": 132, + "teal": 414, + "source": "examples/arc58/arc58.algo.ts:115", "pc": [ - 393, - 394, - 395 + 428 ] }, { - "teal": 421, - "source": 132, + "teal": 419, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 396 + 429, + 430, + 431, + 432, + 433, + 434 ] }, { "teal": 422, - "source": 132, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 397 + 435, + 436, + 437 ] }, { "teal": 423, - "source": 132, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 398 + 438 ] }, { "teal": 424, - "source": 132, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 399 + 439 ] }, { - "teal": 431, - "source": 132, + "teal": 425, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 400, - 401, - 402 + 440, + 441 ] }, { - "teal": 435, - "source": 133, + "teal": 426, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 403 + 442 ] }, { - "teal": 436, - "source": 133, + "teal": 433, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 404 + 443, + 444, + 445 ] }, { "teal": 437, - "source": 132, + "source": "examples/arc58/arc58.algo.ts:133", "pc": [ - 405 + 446, + 447, + 448 ] }, { - "teal": 442, - "source": 139, + "teal": 438, + "source": "examples/arc58/arc58.algo.ts:133", "pc": [ - 406, - 407, - 408 + 449 ] }, { - "teal": 443, - "source": 139, + "teal": 439, + "source": "examples/arc58/arc58.algo.ts:132", "pc": [ - 409 + 450 ] }, { "teal": 444, - "source": 139, + "source": "examples/arc58/arc58.algo.ts:139", "pc": [ - 410 + 451, + 452, + 453 ] }, { - "teal": 450, - "source": 139, + "teal": 445, + "source": "examples/arc58/arc58.algo.ts:139", "pc": [ - 411, - 412, - 413 + 454, + 455 ] }, { - "teal": 454, - "source": 140, + "teal": 446, + "source": "examples/arc58/arc58.algo.ts:139", "pc": [ - 414 + 456 ] }, { - "teal": 455, - "source": 140, + "teal": 452, + "source": "examples/arc58/arc58.algo.ts:139", "pc": [ - 415 + 457, + 458, + 459 ] }, { "teal": 456, - "source": 140, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 416, - 417 + 460, + 461, + 462 ] }, { "teal": 457, - "source": 140, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 418 + 463 ] }, { "teal": 458, - "source": 140, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 419, - 420, - 421 + 464, + 465 ] }, { "teal": 459, - "source": 140, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 422 + 466 ] }, { "teal": 460, - "source": 140, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 423 + 467, + 468, + 469 ] }, { "teal": 461, - "source": 139, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 424 + 470 ] }, { - "teal": 466, - "source": 149, + "teal": 462, + "source": "examples/arc58/arc58.algo.ts:140", "pc": [ - 425, - 426, - 427 + 471 ] }, { - "teal": 467, - "source": 149, + "teal": 463, + "source": "examples/arc58/arc58.algo.ts:139", "pc": [ - 428 + 472 ] }, { "teal": 468, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 429 + 473, + 474, + 475 ] }, { "teal": 469, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 430 + 476 ] }, { "teal": 470, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 431 + 477 ] }, { - "teal": 473, - "source": 149, - "errorMessage": "argument 0 (flash) for arc58_rekeyTo must be a bool", + "teal": 471, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 432 + 478, + 479 ] }, { - "teal": 474, - "source": 149, + "teal": 472, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 433 + 480 ] }, { "teal": 475, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", + "errorMessage": "argument 0 (flash) for arc58_rekeyTo must be a bool", "pc": [ - 434 + 481 ] }, { - "teal": 478, - "source": 149, + "teal": 476, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 435, - 436, - 437 + 482, + 483 ] }, { - "teal": 479, - "source": 149, + "teal": 477, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 438 + 484 ] }, { "teal": 480, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 439 + 485, + 486, + 487 ] }, { "teal": 481, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 440 + 488 ] }, { "teal": 482, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 441 + 489 ] }, { - "teal": 485, - "source": 149, - "errorMessage": "argument 1 (addr) for arc58_rekeyTo must be a address", + "teal": 483, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 442 + 490, + 491 ] }, { - "teal": 488, - "source": 149, + "teal": 484, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 443, - 444, - 445 + 492 ] }, { - "teal": 489, - "source": 149, + "teal": 487, + "source": "examples/arc58/arc58.algo.ts:149", + "errorMessage": "argument 1 (addr) for arc58_rekeyTo must be a address", "pc": [ - 446 + 493 ] }, { "teal": 490, - "source": 149, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 447 + 494, + 495, + 496 ] }, { - "teal": 499, - "source": 149, + "teal": 491, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 448, - 449, - 450 + 497, + 498 ] }, { - "teal": 504, - "source": 150, + "teal": 492, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 451, - 452 + 499 ] }, { - "teal": 505, - "source": 150, + "teal": 501, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 453 + 500, + 501, + 502 ] }, { "teal": 506, - "source": 150, + "source": "examples/arc58/arc58.algo.ts:150", "pc": [ - 454 + 503, + 504 ] }, { "teal": 507, - "source": 150, + "source": "examples/arc58/arc58.algo.ts:150", "pc": [ - 455 + 505, + 506, + 507 ] }, { - "teal": 510, - "source": 150, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", + "teal": 508, + "source": "examples/arc58/arc58.algo.ts:150", "pc": [ - 456 + 508 ] }, { - "teal": 519, - "source": 152, + "teal": 509, + "source": "examples/arc58/arc58.algo.ts:150", "pc": [ - 457 + 509 ] }, { - "teal": 520, - "source": 152, + "teal": 512, + "source": "examples/arc58/arc58.algo.ts:150", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", "pc": [ - 458 + 510 ] }, { "teal": 521, - "source": 152, + "source": "examples/arc58/arc58.algo.ts:152", "pc": [ - 459, - 460 + 511 ] }, { - "teal": 525, - "source": 153, + "teal": 522, + "source": "examples/arc58/arc58.algo.ts:152", "pc": [ - 461 + 512, + 513 ] }, { - "teal": 526, - "source": 153, + "teal": 523, + "source": "examples/arc58/arc58.algo.ts:152", "pc": [ - 462 + 514, + 515 ] }, { "teal": 527, - "source": 153, + "source": "examples/arc58/arc58.algo.ts:153", "pc": [ - 463, - 464 + 516, + 517, + 518 ] }, { - "teal": 531, - "source": 154, + "teal": 528, + "source": "examples/arc58/arc58.algo.ts:153", "pc": [ - 465, - 466 + 519 ] }, { - "teal": 532, - "source": 154, + "teal": 529, + "source": "examples/arc58/arc58.algo.ts:153", "pc": [ - 467, - 468 + 520, + 521 ] }, { - "teal": 536, - "source": 155, + "teal": 533, + "source": "examples/arc58/arc58.algo.ts:154", "pc": [ - 469, - 470 + 522, + 523 ] }, { - "teal": 537, - "source": 155, + "teal": 534, + "source": "examples/arc58/arc58.algo.ts:154", "pc": [ - 471, - 472 + 524, + 525 ] }, { - "teal": 541, - "source": 156, + "teal": 538, + "source": "examples/arc58/arc58.algo.ts:155", "pc": [ - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501 + 526, + 527 ] }, { - "teal": 542, - "source": 156, + "teal": 539, + "source": "examples/arc58/arc58.algo.ts:155", "pc": [ - 502, - 503 + 528, + 529 ] }, { - "teal": 545, - "source": 152, + "teal": 543, + "source": "examples/arc58/arc58.algo.ts:156", "pc": [ - 504 + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558 ] }, { - "teal": 546, - "source": 152, + "teal": 544, + "source": "examples/arc58/arc58.algo.ts:156", "pc": [ - 505, - 506 + 559, + 560 ] }, { - "teal": 549, - "source": 152, + "teal": 547, + "source": "examples/arc58/arc58.algo.ts:152", "pc": [ - 507 + 561, + 562 ] }, { - "teal": 554, - "source": 159, + "teal": 548, + "source": "examples/arc58/arc58.algo.ts:152", "pc": [ - 508, - 509 + 563, + 564 ] }, { - "teal": 555, - "source": 159, + "teal": 551, + "source": "examples/arc58/arc58.algo.ts:152", "pc": [ - 510, - 511, - 512 + 565 ] }, { - "teal": 560, - "source": 159, + "teal": 556, + "source": "examples/arc58/arc58.algo.ts:159", "pc": [ - 513, - 514, - 515 + 566, + 567 ] }, { - "teal": 563, - "source": 149, + "teal": 557, + "source": "examples/arc58/arc58.algo.ts:159", "pc": [ - 516 + 568, + 569, + 570 ] }, { - "teal": 567, - "source": 162, + "teal": 562, + "source": "examples/arc58/arc58.algo.ts:159", "pc": [ - 517, - 518, - 519 + 571, + 572, + 573 ] }, { - "teal": 570, - "source": 162, + "teal": 565, + "source": "examples/arc58/arc58.algo.ts:149", "pc": [ - 520 + 574 ] }, { - "teal": 574, - "source": 163, + "teal": 569, + "source": "examples/arc58/arc58.algo.ts:162", "pc": [ - 521, - 522 + 575, + 576, + 577 ] }, { - "teal": 575, - "source": 163, + "teal": 572, + "source": "examples/arc58/arc58.algo.ts:162", "pc": [ - 523 + 578, + 579 ] }, { "teal": 576, - "source": 163, + "source": "examples/arc58/arc58.algo.ts:163", "pc": [ - 524, - 525 + 580, + 581 ] }, { "teal": 577, - "source": 163, + "source": "examples/arc58/arc58.algo.ts:163", "pc": [ - 526 + 582 ] }, { "teal": 578, - "source": 163, + "source": "examples/arc58/arc58.algo.ts:163", "pc": [ - 527, - 528 + 583, + 584 ] }, { - "teal": 586, - "source": 166, + "teal": 579, + "source": "examples/arc58/arc58.algo.ts:163", "pc": [ - 529 + 585 ] }, { - "teal": 587, - "source": 166, + "teal": 580, + "source": "examples/arc58/arc58.algo.ts:163", "pc": [ - 530, - 531 + 586, + 587 ] }, { "teal": 588, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 532 + 588, + 589, + 590 ] }, { "teal": 589, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 533 + 591, + 592 ] }, { "teal": 590, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 534 + 593 ] }, { "teal": 591, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 535 + 594 ] }, { "teal": 592, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 536 + 595 ] }, { "teal": 593, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 537, - 538, - 539 + 596 ] }, { "teal": 594, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 540 + 597 ] }, { "teal": 595, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 541, - 542 + 598, + 599, + 600 ] }, { "teal": 596, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 543 + 601, + 602, + 603 ] }, { "teal": 597, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 544 + 604, + 605 ] }, { - "teal": 600, - "source": 167, - "errorMessage": "box value does not exist: this.plugins(key).value", + "teal": 598, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 545 + 606 ] }, { - "teal": 601, - "source": 167, + "teal": 599, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 546, - 547 + 607 ] }, { "teal": 602, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", + "errorMessage": "box value does not exist: this.plugins(key).value", "pc": [ - 548, - 549 + 608 ] }, { "teal": 603, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 550, - 551, - 552 + 609, + 610 ] }, { "teal": 604, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 553 + 611, + 612 ] }, { "teal": 605, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 554, - 555 + 613, + 614, + 615 ] }, { "teal": 606, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 556 + 616 ] }, { "teal": 607, - "source": 166, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 557 + 617, + 618 ] }, { - "teal": 610, - "source": 167, + "teal": 608, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 558 + 619 ] }, { - "teal": 611, - "source": 167, + "teal": 609, + "source": "examples/arc58/arc58.algo.ts:166", "pc": [ - 559, - 560, - 561 + 620 ] }, { "teal": 612, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 562, - 563 + 621 ] }, { "teal": 613, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 564 + 622, + 623, + 624 ] }, { "teal": 614, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 565, - 566 + 625, + 626 ] }, { "teal": 615, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 567 + 627, + 628, + 629 ] }, { "teal": 616, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 568 + 630, + 631 ] }, { - "teal": 619, - "source": 168, - "errorMessage": "box value does not exist: this.plugins(key).value", + "teal": 617, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 569 + 632 ] }, { - "teal": 620, - "source": 168, + "teal": 618, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 570, - 571 + 633 ] }, { "teal": 621, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", + "errorMessage": "box value does not exist: this.plugins(key).value", "pc": [ - 572, - 573 + 634 ] }, { "teal": 622, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 574, - 575, - 576 + 635, + 636 ] }, { "teal": 623, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 577 + 637, + 638 ] }, { "teal": 624, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 578 + 639, + 640, + 641 ] }, { "teal": 625, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 579 + 642 ] }, { "teal": 626, - "source": 168, - "pc": [ - 580, - 581 + "source": "examples/arc58/arc58.algo.ts:168", + "pc": [ + 643 ] }, { "teal": 627, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 582 + 644, + 645, + 646 ] }, { "teal": 628, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 583 + 647, + 648 ] }, { - "teal": 631, - "source": 168, - "errorMessage": "box value does not exist: this.plugins(key).value", + "teal": 629, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 584 + 649 ] }, { - "teal": 632, - "source": 168, + "teal": 630, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 585, - 586 + 650 ] }, { "teal": 633, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", + "errorMessage": "box value does not exist: this.plugins(key).value", "pc": [ - 587, - 588 + 651 ] }, { "teal": 634, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 589, - 590, - 591 + 652, + 653 ] }, { "teal": 635, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 592 + 654, + 655 ] }, { "teal": 636, - "source": 168, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 593 + 656, + 657, + 658 ] }, { "teal": 637, - "source": 167, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 594 + 659 ] }, { - "teal": 641, - "source": 162, + "teal": 638, + "source": "examples/arc58/arc58.algo.ts:168", "pc": [ - 595, - 596 + 660 ] }, { - "teal": 642, - "source": 162, + "teal": 639, + "source": "examples/arc58/arc58.algo.ts:167", "pc": [ - 597 + 661 ] }, { - "teal": 647, - "source": 177, + "teal": 643, + "source": "examples/arc58/arc58.algo.ts:162", "pc": [ - 598, - 599, - 600 + 662, + 663 ] }, { - "teal": 648, - "source": 177, + "teal": 644, + "source": "examples/arc58/arc58.algo.ts:162", "pc": [ - 601 + 664 ] }, { - "teal": 651, - "source": 177, + "teal": 649, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 602, - 603, - 604 + 665, + 666, + 667 ] }, { - "teal": 652, - "source": 177, + "teal": 650, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 605 + 668 ] }, { "teal": 653, - "source": 177, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 606 + 669, + 670, + 671 ] }, { - "teal": 661, - "source": 177, + "teal": 654, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 607, - 608, - 609 + 672, + 673 ] }, { - "teal": 664, - "source": 177, + "teal": 655, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 610 + 674 ] }, { - "teal": 668, - "source": 178, + "teal": 663, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 611, - 612 + 675, + 676, + 677 ] }, { - "teal": 669, - "source": 178, + "teal": 666, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 613, - 614 + 678, + 679 ] }, { "teal": 670, - "source": 178, + "source": "examples/arc58/arc58.algo.ts:178", "pc": [ - 615, - 616, - 617 + 680, + 681 ] }, { "teal": 671, - "source": 178, + "source": "examples/arc58/arc58.algo.ts:178", "pc": [ - 618, - 619 + 682, + 683 ] }, { - "teal": 676, - "source": 180, + "teal": 672, + "source": "examples/arc58/arc58.algo.ts:178", "pc": [ - 620, - 621 + 684, + 685, + 686 ] }, { - "teal": 677, - "source": 180, + "teal": 673, + "source": "examples/arc58/arc58.algo.ts:178", "pc": [ - 622 + 687, + 688 ] }, { "teal": 678, - "source": 180, + "source": "examples/arc58/arc58.algo.ts:180", "pc": [ - 623, - 624, - 625 + 689, + 690 ] }, { - "teal": 683, - "source": 181, + "teal": 679, + "source": "examples/arc58/arc58.algo.ts:180", "pc": [ - 626, - 627 + 691 ] }, { - "teal": 684, - "source": 181, + "teal": 680, + "source": "examples/arc58/arc58.algo.ts:180", "pc": [ - 628, - 629 + 692, + 693, + 694 ] }, { "teal": 685, - "source": 181, + "source": "examples/arc58/arc58.algo.ts:181", "pc": [ - 630, - 631, - 632 + 695, + 696 ] }, { - "teal": 688, - "source": 181, - "errorMessage": "This sender is not allowed to trigger this plugin", + "teal": 686, + "source": "examples/arc58/arc58.algo.ts:181", "pc": [ - 633 + 697, + 698 ] }, { - "teal": 698, - "source": 183, + "teal": 687, + "source": "examples/arc58/arc58.algo.ts:181", "pc": [ - 634 + 699, + 700, + 701 ] }, { - "teal": 699, - "source": 183, + "teal": 690, + "source": "examples/arc58/arc58.algo.ts:181", + "errorMessage": "This sender is not allowed to trigger this plugin", "pc": [ - 635 + 702 ] }, { "teal": 700, - "source": 183, + "source": "examples/arc58/arc58.algo.ts:183", "pc": [ - 636, - 637 + 703 ] }, { - "teal": 704, - "source": 184, + "teal": 701, + "source": "examples/arc58/arc58.algo.ts:183", "pc": [ - 638 + 704, + 705 ] }, { - "teal": 705, - "source": 184, + "teal": 702, + "source": "examples/arc58/arc58.algo.ts:183", "pc": [ - 639 + 706, + 707 ] }, { "teal": 706, - "source": 184, + "source": "examples/arc58/arc58.algo.ts:184", "pc": [ - 640, - 641 + 708, + 709, + 710 ] }, { - "teal": 710, - "source": 185, + "teal": 707, + "source": "examples/arc58/arc58.algo.ts:184", "pc": [ - 642 + 711 ] }, { - "teal": 711, - "source": 185, + "teal": 708, + "source": "examples/arc58/arc58.algo.ts:184", "pc": [ - 643 + 712, + 713 ] }, { "teal": 712, - "source": 185, + "source": "examples/arc58/arc58.algo.ts:185", "pc": [ - 644, - 645 + 714, + 715, + 716 ] }, { - "teal": 716, - "source": 186, + "teal": 713, + "source": "examples/arc58/arc58.algo.ts:185", "pc": [ - 646, - 647 + 717 ] }, { - "teal": 717, - "source": 186, + "teal": 714, + "source": "examples/arc58/arc58.algo.ts:185", "pc": [ - 648, - 649 + 718, + 719 ] }, { "teal": 718, - "source": 186, + "source": "examples/arc58/arc58.algo.ts:186", "pc": [ - 650 + 720, + 721 ] }, { "teal": 719, - "source": 186, + "source": "examples/arc58/arc58.algo.ts:186", "pc": [ - 651, - 652 + 722, + 723 ] }, { - "teal": 723, - "source": 187, + "teal": 720, + "source": "examples/arc58/arc58.algo.ts:186", "pc": [ - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672, - 673, - 674, - 675, - 676 + 724 ] }, { - "teal": 724, - "source": 187, + "teal": 721, + "source": "examples/arc58/arc58.algo.ts:186", "pc": [ - 677, - 678 + 725, + 726 ] }, { - "teal": 727, - "source": 183, + "teal": 725, + "source": "examples/arc58/arc58.algo.ts:187", "pc": [ - 679 + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750 ] }, { - "teal": 728, - "source": 183, + "teal": 726, + "source": "examples/arc58/arc58.algo.ts:187", "pc": [ - 680, - 681 + 751, + 752 ] }, { - "teal": 731, - "source": 183, + "teal": 729, + "source": "examples/arc58/arc58.algo.ts:183", "pc": [ - 682 + 753, + 754 ] }, { - "teal": 738, - "source": 190, + "teal": 730, + "source": "examples/arc58/arc58.algo.ts:183", "pc": [ - 683 + 755, + 756 ] }, { - "teal": 739, - "source": 191, + "teal": 733, + "source": "examples/arc58/arc58.algo.ts:183", "pc": [ - 684, - 685 + 757 ] }, { "teal": 740, - "source": 191, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 686 + 758, + 759, + 760 ] }, { "teal": 741, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:191", "pc": [ - 687, - 688 + 761, + 762 ] }, { "teal": 742, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:191", "pc": [ - 689, - 690, - 691 + 763 ] }, { "teal": 743, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 692, - 693 + 764, + 765 ] }, { "teal": 744, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 694, - 695, - 696 + 766, + 767, + 768 ] }, { - "teal": 747, - "source": 192, + "teal": 745, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 697, - 698 + 769, + 770 ] }, { - "teal": 750, - "source": 192, + "teal": 746, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 699 + 771, + 772, + 773 ] }, { - "teal": 751, - "source": 190, + "teal": 749, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 700 + 774, + 775 ] }, { "teal": 752, - "source": 190, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 701 + 776 ] }, { - "teal": 755, - "source": 190, - "errorMessage": "box value does not exist: this.plugins({ application: plugin, allowedCaller: globalAllowed ? Address.zeroAddress : this.txn.sender, }).value", + "teal": 753, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 702 + 777 ] }, { - "teal": 756, - "source": 190, + "teal": 754, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 703, - 704 + 778 ] }, { "teal": 757, - "source": 190, + "source": "examples/arc58/arc58.algo.ts:190", + "errorMessage": "box value does not exist: this.plugins({ application: plugin, allowedCaller: globalAllowed ? Address.zeroAddress : this.txn.sender, }).value", "pc": [ - 705, - 706 + 779 ] }, { "teal": 758, - "source": 190, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 707, - 708 + 780, + 781 ] }, { "teal": 759, - "source": 193, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 709, - 710 + 782, + 783 ] }, { "teal": 760, - "source": 193, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 711 + 784, + 785 ] }, { "teal": 761, - "source": 190, + "source": "examples/arc58/arc58.algo.ts:193", "pc": [ - 712 + 786, + 787 ] }, { "teal": 762, - "source": 191, + "source": "examples/arc58/arc58.algo.ts:193", "pc": [ - 713, - 714 + 788 ] }, { "teal": 763, - "source": 191, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 715 + 789, + 790, + 791 ] }, { "teal": 764, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:191", "pc": [ - 716, - 717 + 792, + 793 ] }, { "teal": 765, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:191", "pc": [ - 718, - 719, - 720 + 794 ] }, { "teal": 766, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 721, - 722 + 795, + 796 ] }, { "teal": 767, - "source": 192, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 723, - 724, - 725 + 797, + 798, + 799 ] }, { - "teal": 770, - "source": 192, + "teal": 768, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 726, - 727 + 800, + 801 ] }, { - "teal": 773, - "source": 192, + "teal": 769, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 728 + 802, + 803, + 804 ] }, { - "teal": 774, - "source": 190, + "teal": 772, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 729 + 805, + 806 ] }, { "teal": 775, - "source": 190, + "source": "examples/arc58/arc58.algo.ts:192", "pc": [ - 730, - 731 + 807 ] }, { "teal": 776, - "source": 190, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 732 + 808 ] }, { - "teal": 780, - "source": 195, + "teal": 777, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 733, - 734, - 735 + 809, + 810 ] }, { - "teal": 781, - "source": 177, + "teal": 778, + "source": "examples/arc58/arc58.algo.ts:190", "pc": [ - 736 + 811 ] }, { - "teal": 786, - "source": 203, + "teal": 782, + "source": "examples/arc58/arc58.algo.ts:195", "pc": [ - 737, - 738, - 739 + 812, + 813, + 814 ] }, { - "teal": 787, - "source": 203, + "teal": 783, + "source": "examples/arc58/arc58.algo.ts:177", "pc": [ - 740, - 741, - 742 + 815 ] }, { - "teal": 790, - "source": 203, + "teal": 788, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 743, - 744, - 745 + 816, + 817, + 818 ] }, { - "teal": 791, - "source": 203, + "teal": 789, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 746 + 819, + 820, + 821 ] }, { "teal": 792, - "source": 203, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 747 + 822, + 823, + 824 ] }, { - "teal": 800, - "source": 203, + "teal": 793, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 748, - 749, - 750 + 825, + 826 ] }, { - "teal": 804, - "source": 204, + "teal": 794, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 751 + 827 ] }, { - "teal": 805, - "source": 204, + "teal": 802, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 752, - 753 + 828, + 829, + 830 ] }, { "teal": 806, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 754, - 755 + 831, + 832 ] }, { "teal": 807, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 756, - 757 + 833, + 834 ] }, { "teal": 808, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 758 + 835, + 836, + 837 ] }, { "teal": 809, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 759, - 760 + 838, + 839 ] }, { "teal": 810, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 761 + 840 ] }, { "teal": 811, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 762 + 841, + 842 ] }, { "teal": 812, - "source": 204, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 763, - 764, - 765 + 843 ] }, { "teal": 813, - "source": 203, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 766 + 844 ] }, { - "teal": 818, - "source": 222, + "teal": 814, + "source": "examples/arc58/arc58.algo.ts:204", "pc": [ - 767, - 768, - 769 + 845, + 846, + 847 ] }, { - "teal": 819, - "source": 222, + "teal": 815, + "source": "examples/arc58/arc58.algo.ts:203", "pc": [ - 770 + 848 ] }, { "teal": 820, - "source": 222, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 771 + 849, + 850, + 851 ] }, { "teal": 821, - "source": 222, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 772 + 852 ] }, { "teal": 822, - "source": 222, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 773 + 853 ] }, { - "teal": 825, - "source": 222, - "errorMessage": "argument 0 (adminPrivileges) for arc58_addPlugin must be a bool", + "teal": 823, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 774 + 854, + 855 ] }, { - "teal": 826, - "source": 222, + "teal": 824, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 775 + 856 ] }, { "teal": 827, - "source": 222, + "source": "examples/arc58/arc58.algo.ts:222", + "errorMessage": "argument 0 (adminPrivileges) for arc58_addPlugin must be a bool", "pc": [ - 776 + 857 ] }, { - "teal": 830, - "source": 221, + "teal": 828, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 777, - 778, - 779 + 858, + 859 ] }, { - "teal": 831, - "source": 221, + "teal": 829, + "source": "examples/arc58/arc58.algo.ts:222", "pc": [ - 780 + 860 ] }, { - "teal": 834, - "source": 220, + "teal": 832, + "source": "examples/arc58/arc58.algo.ts:221", "pc": [ - 781, - 782, - 783 + 861, + 862, + 863 ] }, { - "teal": 835, - "source": 220, + "teal": 833, + "source": "examples/arc58/arc58.algo.ts:221", "pc": [ - 784 + 864 ] }, { - "teal": 838, - "source": 219, + "teal": 836, + "source": "examples/arc58/arc58.algo.ts:220", "pc": [ - 785, - 786, - 787 + 865, + 866, + 867 ] }, { - "teal": 839, - "source": 219, + "teal": 837, + "source": "examples/arc58/arc58.algo.ts:220", "pc": [ - 788 + 868 ] }, { "teal": 840, - "source": 219, + "source": "examples/arc58/arc58.algo.ts:219", "pc": [ - 789 + 869, + 870, + 871 ] }, { "teal": 841, - "source": 219, + "source": "examples/arc58/arc58.algo.ts:219", "pc": [ - 790 + 872 ] }, { "teal": 842, - "source": 219, + "source": "examples/arc58/arc58.algo.ts:219", "pc": [ - 791 + 873 ] }, { - "teal": 845, - "source": 219, - "errorMessage": "argument 3 (allowedCaller) for arc58_addPlugin must be a address", + "teal": 843, + "source": "examples/arc58/arc58.algo.ts:219", "pc": [ - 792 + 874, + 875 ] }, { - "teal": 848, - "source": 218, + "teal": 844, + "source": "examples/arc58/arc58.algo.ts:219", "pc": [ - 793, - 794, - 795 + 876 ] }, { - "teal": 849, - "source": 218, + "teal": 847, + "source": "examples/arc58/arc58.algo.ts:219", + "errorMessage": "argument 3 (allowedCaller) for arc58_addPlugin must be a address", "pc": [ - 796 + 877 ] }, { - "teal": 852, - "source": 217, + "teal": 850, + "source": "examples/arc58/arc58.algo.ts:218", "pc": [ - 797, - 798, - 799 + 878, + 879, + 880 ] }, { - "teal": 853, - "source": 217, + "teal": 851, + "source": "examples/arc58/arc58.algo.ts:218", "pc": [ - 800 + 881 ] }, { "teal": 854, - "source": 217, + "source": "examples/arc58/arc58.algo.ts:217", "pc": [ - 801 + 882, + 883, + 884 ] }, { - "teal": 867, - "source": 217, + "teal": 855, + "source": "examples/arc58/arc58.algo.ts:217", "pc": [ - 802, - 803, - 804 + 885, + 886 ] }, { - "teal": 870, - "source": 217, + "teal": 856, + "source": "examples/arc58/arc58.algo.ts:217", "pc": [ - 805 + 887 ] }, { - "teal": 875, - "source": 224, + "teal": 869, + "source": "examples/arc58/arc58.algo.ts:217", "pc": [ - 806, - 807 + 888, + 889, + 890 ] }, { - "teal": 876, - "source": 224, + "teal": 872, + "source": "examples/arc58/arc58.algo.ts:217", "pc": [ - 808 + 891, + 892 ] }, { "teal": 877, - "source": 224, + "source": "examples/arc58/arc58.algo.ts:224", "pc": [ - 809 + 893, + 894 ] }, { "teal": 878, - "source": 224, + "source": "examples/arc58/arc58.algo.ts:224", "pc": [ - 810 + 895, + 896, + 897 ] }, { - "teal": 881, - "source": 224, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", + "teal": 879, + "source": "examples/arc58/arc58.algo.ts:224", "pc": [ - 811 + 898 ] }, { - "teal": 885, - "source": 225, + "teal": 880, + "source": "examples/arc58/arc58.algo.ts:224", "pc": [ - 812, - 813 + 899 ] }, { - "teal": 886, - "source": 225, + "teal": 883, + "source": "examples/arc58/arc58.algo.ts:224", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", "pc": [ - 814 + 900 ] }, { "teal": 887, - "source": 225, + "source": "examples/arc58/arc58.algo.ts:225", "pc": [ - 815, - 816 + 901, + 902 ] }, { "teal": 888, - "source": 225, + "source": "examples/arc58/arc58.algo.ts:225", "pc": [ - 817 + 903 ] }, { "teal": 889, - "source": 225, + "source": "examples/arc58/arc58.algo.ts:225", "pc": [ - 818, - 819 + 904, + 905 ] }, { - "teal": 898, - "source": 226, + "teal": 890, + "source": "examples/arc58/arc58.algo.ts:225", "pc": [ - 820 + 906 ] }, { - "teal": 899, - "source": 226, + "teal": 891, + "source": "examples/arc58/arc58.algo.ts:225", "pc": [ - 821, - 822 + 907, + 908 ] }, { "teal": 900, - "source": 226, + "source": "examples/arc58/arc58.algo.ts:226", "pc": [ - 823 + 909, + 910, + 911 ] }, { "teal": 901, - "source": 227, + "source": "examples/arc58/arc58.algo.ts:226", "pc": [ - 824, - 825 + 912, + 913 ] }, { "teal": 902, - "source": 227, + "source": "examples/arc58/arc58.algo.ts:226", "pc": [ - 826 + 914 ] }, { "teal": 903, - "source": 228, + "source": "examples/arc58/arc58.algo.ts:227", "pc": [ - 827, - 828 + 915, + 916 ] }, { "teal": 904, - "source": 228, + "source": "examples/arc58/arc58.algo.ts:227", "pc": [ - 829 + 917 ] }, { "teal": 905, - "source": 228, + "source": "examples/arc58/arc58.algo.ts:228", "pc": [ - 830 + 918, + 919 ] }, { "teal": 906, - "source": 229, + "source": "examples/arc58/arc58.algo.ts:228", "pc": [ - 831, - 832 + 920 ] }, { "teal": 907, - "source": 229, + "source": "examples/arc58/arc58.algo.ts:228", "pc": [ - 833 + 921 ] }, { "teal": 908, - "source": 230, + "source": "examples/arc58/arc58.algo.ts:229", "pc": [ - 834, - 835 + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931 ] }, { "teal": 909, - "source": 230, + "source": "examples/arc58/arc58.algo.ts:229", "pc": [ - 836 + 932 ] }, { "teal": 910, - "source": 230, + "source": "examples/arc58/arc58.algo.ts:230", "pc": [ - 837, - 838 + 933, + 934, + 935 ] }, { "teal": 911, - "source": 230, + "source": "examples/arc58/arc58.algo.ts:230", "pc": [ - 839 + 936, + 937 ] }, { "teal": 912, - "source": 226, + "source": "examples/arc58/arc58.algo.ts:230", "pc": [ - 840 + 938, + 939 ] }, { "teal": 913, - "source": 226, + "source": "examples/arc58/arc58.algo.ts:230", "pc": [ - 841 + 940 ] }, { "teal": 914, - "source": 217, + "source": "examples/arc58/arc58.algo.ts:226", "pc": [ - 842 + 941 ] }, { - "teal": 919, - "source": 239, + "teal": 915, + "source": "examples/arc58/arc58.algo.ts:226", "pc": [ - 843, - 844, - 845 + 942 ] }, { - "teal": 920, - "source": 239, + "teal": 916, + "source": "examples/arc58/arc58.algo.ts:217", "pc": [ - 846 + 943 ] }, { "teal": 921, - "source": 239, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 847 + 944, + 945, + 946 ] }, { "teal": 922, - "source": 239, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 848 + 947 ] }, { "teal": 923, - "source": 239, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 849 + 948 ] }, { - "teal": 926, - "source": 239, - "errorMessage": "argument 0 (allowedCaller) for arc58_removePlugin must be a address", + "teal": 924, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 850 + 949, + 950 ] }, { - "teal": 929, - "source": 239, + "teal": 925, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 851, - 852, - 853 + 951 ] }, { - "teal": 930, - "source": 239, + "teal": 928, + "source": "examples/arc58/arc58.algo.ts:239", + "errorMessage": "argument 0 (allowedCaller) for arc58_removePlugin must be a address", "pc": [ - 854 + 952 ] }, { - "teal": 933, - "source": 239, + "teal": 931, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 855, - 856, - 857 + 953, + 954, + 955 ] }, { - "teal": 934, - "source": 239, + "teal": 932, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 858 + 956 ] }, { "teal": 935, - "source": 239, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 859 + 957, + 958, + 959 ] }, { - "teal": 943, - "source": 239, + "teal": 936, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 860, - 861, - 862 + 960, + 961 ] }, { - "teal": 946, - "source": 239, + "teal": 937, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 863 + 962 ] }, { - "teal": 951, - "source": 240, + "teal": 945, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 864, - 865 + 963, + 964, + 965 ] }, { - "teal": 952, - "source": 240, + "teal": 948, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 866 + 966, + 967 ] }, { "teal": 953, - "source": 240, + "source": "examples/arc58/arc58.algo.ts:240", "pc": [ - 867 + 968, + 969 ] }, { "teal": 954, - "source": 240, + "source": "examples/arc58/arc58.algo.ts:240", "pc": [ - 868 + 970, + 971, + 972 ] }, { - "teal": 957, - "source": 240, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", + "teal": 955, + "source": "examples/arc58/arc58.algo.ts:240", "pc": [ - 869 + 973 ] }, { - "teal": 961, - "source": 242, + "teal": 956, + "source": "examples/arc58/arc58.algo.ts:240", "pc": [ - 870, - 871 + 974 ] }, { - "teal": 962, - "source": 242, + "teal": 959, + "source": "examples/arc58/arc58.algo.ts:240", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", "pc": [ - 872 + 975 ] }, { "teal": 963, - "source": 242, + "source": "examples/arc58/arc58.algo.ts:242", "pc": [ - 873, - 874 + 976, + 977 ] }, { "teal": 964, - "source": 242, + "source": "examples/arc58/arc58.algo.ts:242", "pc": [ - 875 + 978 ] }, { "teal": 965, - "source": 242, + "source": "examples/arc58/arc58.algo.ts:242", "pc": [ - 876, - 877 + 979, + 980 ] }, { - "teal": 969, - "source": 243, + "teal": 966, + "source": "examples/arc58/arc58.algo.ts:242", "pc": [ - 878 + 981 ] }, { - "teal": 970, - "source": 243, + "teal": 967, + "source": "examples/arc58/arc58.algo.ts:242", "pc": [ - 879, - 880 + 982, + 983 ] }, { "teal": 971, - "source": 243, + "source": "examples/arc58/arc58.algo.ts:243", "pc": [ - 881 + 984, + 985, + 986 ] }, { "teal": 972, - "source": 243, + "source": "examples/arc58/arc58.algo.ts:243", "pc": [ - 882 + 987, + 988 ] }, { "teal": 973, - "source": 239, + "source": "examples/arc58/arc58.algo.ts:243", "pc": [ - 883 + 989 ] }, { - "teal": 978, - "source": 263, + "teal": 974, + "source": "examples/arc58/arc58.algo.ts:243", "pc": [ - 884, - 885, - 886 + 990 ] }, { - "teal": 979, - "source": 263, + "teal": 975, + "source": "examples/arc58/arc58.algo.ts:239", "pc": [ - 887 + 991 ] }, { "teal": 980, - "source": 263, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 888 + 992, + 993, + 994 ] }, { "teal": 981, - "source": 263, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 889 + 995 ] }, { "teal": 982, - "source": 263, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 890 + 996 ] }, { - "teal": 985, - "source": 263, - "errorMessage": "argument 0 (adminPrivileges) for arc58_addNamedPlugin must be a bool", + "teal": 983, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 891 + 997, + 998 ] }, { - "teal": 986, - "source": 263, + "teal": 984, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 892 + 999 ] }, { "teal": 987, - "source": 263, + "source": "examples/arc58/arc58.algo.ts:263", + "errorMessage": "argument 0 (adminPrivileges) for arc58_addNamedPlugin must be a bool", "pc": [ - 893 + 1000 ] }, { - "teal": 990, - "source": 262, + "teal": 988, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 894, - 895, - 896 + 1001, + 1002 ] }, { - "teal": 991, - "source": 262, + "teal": 989, + "source": "examples/arc58/arc58.algo.ts:263", "pc": [ - 897 + 1003 ] }, { - "teal": 994, - "source": 261, + "teal": 992, + "source": "examples/arc58/arc58.algo.ts:262", "pc": [ - 898, - 899, - 900 + 1004, + 1005, + 1006 ] }, { - "teal": 995, - "source": 261, + "teal": 993, + "source": "examples/arc58/arc58.algo.ts:262", "pc": [ - 901 + 1007 ] }, { - "teal": 998, - "source": 260, + "teal": 996, + "source": "examples/arc58/arc58.algo.ts:261", "pc": [ - 902, - 903, - 904 + 1008, + 1009, + 1010 ] }, { - "teal": 999, - "source": 260, + "teal": 997, + "source": "examples/arc58/arc58.algo.ts:261", "pc": [ - 905 + 1011 ] }, { "teal": 1000, - "source": 260, + "source": "examples/arc58/arc58.algo.ts:260", "pc": [ - 906 + 1012, + 1013, + 1014 ] }, { "teal": 1001, - "source": 260, + "source": "examples/arc58/arc58.algo.ts:260", "pc": [ - 907 + 1015 ] }, { "teal": 1002, - "source": 260, + "source": "examples/arc58/arc58.algo.ts:260", "pc": [ - 908 + 1016 ] }, { - "teal": 1005, - "source": 260, - "errorMessage": "argument 3 (allowedCaller) for arc58_addNamedPlugin must be a address", + "teal": 1003, + "source": "examples/arc58/arc58.algo.ts:260", "pc": [ - 909 + 1017, + 1018 ] }, { - "teal": 1008, - "source": 259, + "teal": 1004, + "source": "examples/arc58/arc58.algo.ts:260", "pc": [ - 910, - 911, - 912 + 1019 ] }, { - "teal": 1009, - "source": 259, + "teal": 1007, + "source": "examples/arc58/arc58.algo.ts:260", + "errorMessage": "argument 3 (allowedCaller) for arc58_addNamedPlugin must be a address", "pc": [ - 913 + 1020 ] }, { - "teal": 1012, - "source": 258, + "teal": 1010, + "source": "examples/arc58/arc58.algo.ts:259", "pc": [ - 914, - 915, - 916 + 1021, + 1022, + 1023 ] }, { - "teal": 1013, - "source": 258, + "teal": 1011, + "source": "examples/arc58/arc58.algo.ts:259", "pc": [ - 917, - 918, - 919 + 1024 ] }, { - "teal": 1016, - "source": 257, + "teal": 1014, + "source": "examples/arc58/arc58.algo.ts:258", "pc": [ - 920, - 921, - 922 + 1025, + 1026, + 1027 ] }, { - "teal": 1017, - "source": 257, + "teal": 1015, + "source": "examples/arc58/arc58.algo.ts:258", "pc": [ - 923 + 1028, + 1029, + 1030 ] }, { "teal": 1018, - "source": 257, + "source": "examples/arc58/arc58.algo.ts:257", "pc": [ - 924 + 1031, + 1032, + 1033 ] }, { - "teal": 1032, - "source": 257, + "teal": 1019, + "source": "examples/arc58/arc58.algo.ts:257", "pc": [ - 925, - 926, - 927 + 1034, + 1035 ] }, { - "teal": 1035, - "source": 257, + "teal": 1020, + "source": "examples/arc58/arc58.algo.ts:257", "pc": [ - 928 + 1036 ] }, { - "teal": 1040, - "source": 265, + "teal": 1034, + "source": "examples/arc58/arc58.algo.ts:257", "pc": [ - 929, - 930 + 1037, + 1038, + 1039 ] }, { - "teal": 1041, - "source": 265, + "teal": 1037, + "source": "examples/arc58/arc58.algo.ts:257", "pc": [ - 931 + 1040, + 1041 ] }, { "teal": 1042, - "source": 265, + "source": "examples/arc58/arc58.algo.ts:265", "pc": [ - 932 + 1042, + 1043 ] }, { "teal": 1043, - "source": 265, + "source": "examples/arc58/arc58.algo.ts:265", "pc": [ - 933 + 1044, + 1045, + 1046 ] }, { - "teal": 1046, - "source": 265, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", + "teal": 1044, + "source": "examples/arc58/arc58.algo.ts:265", "pc": [ - 934 + 1047 ] }, { - "teal": 1050, - "source": 266, + "teal": 1045, + "source": "examples/arc58/arc58.algo.ts:265", "pc": [ - 935, - 936 + 1048 ] }, { - "teal": 1051, - "source": 266, + "teal": 1048, + "source": "examples/arc58/arc58.algo.ts:265", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", "pc": [ - 937, - 938 + 1049 ] }, { "teal": 1052, - "source": 266, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 939 + 1050, + 1051, + 1052 ] }, { "teal": 1053, - "source": 266, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 940 + 1053, + 1054 ] }, { "teal": 1054, - "source": 266, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 941 + 1055 ] }, { "teal": 1055, - "source": 266, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 942 + 1056 ] }, { "teal": 1056, - "source": 266, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 943 + 1057 ] }, { "teal": 1057, - "source": 266, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 944 + 1058 ] }, { - "teal": 1061, - "source": 268, + "teal": 1058, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 945, - 946 + 1059 ] }, { - "teal": 1062, - "source": 268, + "teal": 1059, + "source": "examples/arc58/arc58.algo.ts:266", "pc": [ - 947 + 1060 ] }, { "teal": 1063, - "source": 268, + "source": "examples/arc58/arc58.algo.ts:268", "pc": [ - 948, - 949 + 1061, + 1062 ] }, { "teal": 1064, - "source": 268, + "source": "examples/arc58/arc58.algo.ts:268", "pc": [ - 950 + 1063 ] }, { "teal": 1065, - "source": 268, + "source": "examples/arc58/arc58.algo.ts:268", "pc": [ - 951, - 952 + 1064, + 1065 ] }, { - "teal": 1069, - "source": 269, + "teal": 1066, + "source": "examples/arc58/arc58.algo.ts:268", "pc": [ - 953, - 954 + 1066 ] }, { - "teal": 1070, - "source": 269, + "teal": 1067, + "source": "examples/arc58/arc58.algo.ts:268", "pc": [ - 955, - 956 + 1067, + 1068 ] }, { "teal": 1071, - "source": 269, + "source": "examples/arc58/arc58.algo.ts:269", "pc": [ - 957 + 1069, + 1070, + 1071 ] }, { "teal": 1072, - "source": 269, + "source": "examples/arc58/arc58.algo.ts:269", "pc": [ - 958, - 959 + 1072, + 1073 ] }, { "teal": 1073, - "source": 269, + "source": "examples/arc58/arc58.algo.ts:269", "pc": [ - 960 + 1074 ] }, { - "teal": 1082, - "source": 270, + "teal": 1074, + "source": "examples/arc58/arc58.algo.ts:269", "pc": [ - 961 + 1075, + 1076 ] }, { - "teal": 1083, - "source": 270, + "teal": 1075, + "source": "examples/arc58/arc58.algo.ts:269", "pc": [ - 962, - 963 + 1077 ] }, { "teal": 1084, - "source": 270, + "source": "examples/arc58/arc58.algo.ts:270", "pc": [ - 964 + 1078, + 1079, + 1080 ] }, { "teal": 1085, - "source": 271, + "source": "examples/arc58/arc58.algo.ts:270", "pc": [ - 965, - 966 + 1081, + 1082 ] }, { "teal": 1086, - "source": 271, + "source": "examples/arc58/arc58.algo.ts:270", "pc": [ - 967 + 1083 ] }, { "teal": 1087, - "source": 272, + "source": "examples/arc58/arc58.algo.ts:271", "pc": [ - 968, - 969 + 1084, + 1085 ] }, { "teal": 1088, - "source": 272, + "source": "examples/arc58/arc58.algo.ts:271", "pc": [ - 970 + 1086 ] }, { "teal": 1089, - "source": 272, + "source": "examples/arc58/arc58.algo.ts:272", "pc": [ - 971 + 1087, + 1088 ] }, { "teal": 1090, - "source": 273, + "source": "examples/arc58/arc58.algo.ts:272", "pc": [ - 972, - 973 + 1089 ] }, { "teal": 1091, - "source": 273, + "source": "examples/arc58/arc58.algo.ts:272", "pc": [ - 974 + 1090 ] }, { "teal": 1092, - "source": 274, + "source": "examples/arc58/arc58.algo.ts:273", "pc": [ - 975, - 976 + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100 ] }, { "teal": 1093, - "source": 274, + "source": "examples/arc58/arc58.algo.ts:273", "pc": [ - 977 + 1101 ] }, { "teal": 1094, - "source": 274, + "source": "examples/arc58/arc58.algo.ts:274", "pc": [ - 978, - 979 + 1102, + 1103, + 1104 ] }, { "teal": 1095, - "source": 274, + "source": "examples/arc58/arc58.algo.ts:274", "pc": [ - 980 + 1105, + 1106 ] }, { "teal": 1096, - "source": 270, + "source": "examples/arc58/arc58.algo.ts:274", "pc": [ - 981 + 1107, + 1108 ] }, { "teal": 1097, - "source": 270, + "source": "examples/arc58/arc58.algo.ts:274", "pc": [ - 982 + 1109 ] }, { "teal": 1098, - "source": 257, + "source": "examples/arc58/arc58.algo.ts:270", "pc": [ - 983 + 1110 ] }, { - "teal": 1103, - "source": 283, + "teal": 1099, + "source": "examples/arc58/arc58.algo.ts:270", "pc": [ - 984, - 985, - 986 + 1111 ] }, { - "teal": 1104, - "source": 283, + "teal": 1100, + "source": "examples/arc58/arc58.algo.ts:257", "pc": [ - 987, - 988, - 989 + 1112 ] }, { - "teal": 1107, - "source": 283, + "teal": 1105, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 990, - 991, - 992 + 1113, + 1114, + 1115 ] }, { - "teal": 1108, - "source": 283, + "teal": 1106, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 993 + 1116, + 1117, + 1118 ] }, { "teal": 1109, - "source": 283, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 994 + 1119, + 1120, + 1121 ] }, { - "teal": 1117, - "source": 283, + "teal": 1110, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 995, - 996, - 997 + 1122, + 1123 ] }, { - "teal": 1120, - "source": 283, + "teal": 1111, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 998 + 1124 ] }, { - "teal": 1125, - "source": 284, + "teal": 1119, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 999, - 1000 + 1125, + 1126, + 1127 ] }, { - "teal": 1126, - "source": 284, + "teal": 1122, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 1001 + 1128, + 1129 ] }, { "teal": 1127, - "source": 284, + "source": "examples/arc58/arc58.algo.ts:284", "pc": [ - 1002 + 1130, + 1131 ] }, { "teal": 1128, - "source": 284, + "source": "examples/arc58/arc58.algo.ts:284", "pc": [ - 1003 + 1132, + 1133, + 1134 ] }, { - "teal": 1131, - "source": 284, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", + "teal": 1129, + "source": "examples/arc58/arc58.algo.ts:284", "pc": [ - 1004 + 1135 ] }, { - "teal": 1135, - "source": 286, + "teal": 1130, + "source": "examples/arc58/arc58.algo.ts:284", "pc": [ - 1005, - 1006 + 1136 ] }, { - "teal": 1136, - "source": 286, + "teal": 1133, + "source": "examples/arc58/arc58.algo.ts:284", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.admin.value\"}", "pc": [ - 1007, - 1008 + 1137 ] }, { "teal": 1137, - "source": 286, + "source": "examples/arc58/arc58.algo.ts:286", "pc": [ - 1009 + 1138, + 1139, + 1140 ] }, { "teal": 1138, - "source": 286, + "source": "examples/arc58/arc58.algo.ts:286", "pc": [ - 1010, - 1011 + 1141, + 1142 ] }, { - "teal": 1142, - "source": 287, + "teal": 1139, + "source": "examples/arc58/arc58.algo.ts:286", "pc": [ - 1012, - 1013 + 1143 ] }, { - "teal": 1143, - "source": 287, + "teal": 1140, + "source": "examples/arc58/arc58.algo.ts:286", "pc": [ - 1014, - 1015 + 1144, + 1145 ] }, { "teal": 1144, - "source": 287, + "source": "examples/arc58/arc58.algo.ts:287", "pc": [ - 1016 + 1146, + 1147, + 1148 ] }, { "teal": 1145, - "source": 287, + "source": "examples/arc58/arc58.algo.ts:287", "pc": [ - 1017 + 1149, + 1150 ] }, { - "teal": 1149, - "source": 288, + "teal": 1146, + "source": "examples/arc58/arc58.algo.ts:287", "pc": [ - 1018 + 1151 ] }, { - "teal": 1150, - "source": 286, + "teal": 1147, + "source": "examples/arc58/arc58.algo.ts:287", "pc": [ - 1019, - 1020 + 1152 ] }, { "teal": 1151, - "source": 286, + "source": "examples/arc58/arc58.algo.ts:288", "pc": [ - 1021 + 1153, + 1154, + 1155 ] }, { - "teal": 1154, - "source": 286, - "errorMessage": "box value does not exist: this.namedPlugins(name).value", + "teal": 1152, + "source": "examples/arc58/arc58.algo.ts:286", "pc": [ - 1022 + 1156, + 1157 ] }, { - "teal": 1155, - "source": 288, + "teal": 1153, + "source": "examples/arc58/arc58.algo.ts:286", "pc": [ - 1023 + 1158 ] }, { "teal": 1156, - "source": 288, + "source": "examples/arc58/arc58.algo.ts:286", + "errorMessage": "box value does not exist: this.namedPlugins(name).value", "pc": [ - 1024 + 1159 ] }, { "teal": 1157, - "source": 283, + "source": "examples/arc58/arc58.algo.ts:288", "pc": [ - 1025 + 1160 ] }, { - "teal": 1160, - "source": 21, + "teal": 1158, + "source": "examples/arc58/arc58.algo.ts:288", "pc": [ - 1026, - 1027, - 1028, - 1029, - 1030, - 1031 + 1161 ] }, { - "teal": 1161, - "source": 21, + "teal": 1159, + "source": "examples/arc58/arc58.algo.ts:283", "pc": [ - 1032, - 1033, - 1034 + 1162 ] }, { "teal": 1162, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1035, - 1036, - 1037, - 1038 + 1163, + 1164, + 1165, + 1166, + 1167, + 1168 ] }, { - "teal": 1165, - "source": 21, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 1163, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1039 + 1169, + 1170, + 1171 ] }, { - "teal": 1168, - "source": 21, + "teal": 1164, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1040, - 1041, - 1042, - 1043, - 1044, - 1045 + 1172, + 1173, + 1174, + 1175 ] }, { - "teal": 1169, - "source": 21, + "teal": 1167, + "source": "examples/arc58/arc58.algo.ts:21", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 1046, - 1047, - 1048, - 1049, - 1050, - 1051 + 1176 ] }, { "teal": 1170, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1052, - 1053, - 1054, - 1055, - 1056, - 1057 + 1177, + 1178, + 1179, + 1180, + 1181, + 1182 ] }, { "teal": 1171, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1058, - 1059 + 1183, + 1184, + 1185, + 1186, + 1187, + 1188 ] }, { "teal": 1172, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1060, - 1061, - 1062, - 1063, - 1064, - 1065 + 1189, + 1190, + 1191, + 1192, + 1193, + 1194 ] }, { "teal": 1173, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1066, - 1067, - 1068, - 1069, - 1070, - 1071 + 1195, + 1196, + 1197, + 1198, + 1199, + 1200 ] }, { "teal": 1174, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1072, - 1073, - 1074, - 1075, - 1076, - 1077 + 1201, + 1202, + 1203, + 1204, + 1205, + 1206 ] }, { "teal": 1175, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1078, - 1079, - 1080, - 1081, - 1082, - 1083 + 1207, + 1208, + 1209, + 1210, + 1211, + 1212 ] }, { "teal": 1176, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1084, - 1085, - 1086, - 1087, - 1088, - 1089 + 1213, + 1214, + 1215, + 1216, + 1217, + 1218 ] }, { "teal": 1177, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1090, - 1091, - 1092, - 1093, - 1094, - 1095 + 1219, + 1220, + 1221, + 1222, + 1223, + 1224 ] }, { "teal": 1178, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1096, - 1097, - 1098, - 1099, - 1100, - 1101 + 1225, + 1226, + 1227, + 1228, + 1229, + 1230 ] }, { "teal": 1179, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", "pc": [ - 1102, - 1103, - 1104 + 1231, + 1232, + 1233, + 1234, + 1235, + 1236 ] }, { "teal": 1180, - "source": 21, - "pc": [ - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111, - 1112, - 1113, - 1114, - 1115, - 1116, - 1117, - 1118, - 1119, - 1120, - 1121, - 1122, - 1123, - 1124, - 1125, - 1126, - 1127, - 1128 - ] - }, - { - "teal": 1183, - "source": 21, + "source": "examples/arc58/arc58.algo.ts:21", + "pc": [ + 1237, + 1238, + 1239, + 1240, + 1241, + 1242 + ] + }, + { + "teal": 1181, + "source": "examples/arc58/arc58.algo.ts:21", + "pc": [ + 1243, + 1244, + 1245 + ] + }, + { + "teal": 1182, + "source": "examples/arc58/arc58.algo.ts:21", + "pc": [ + 1246, + 1247, + 1248, + 1249, + 1250, + 1251, + 1252, + 1253, + 1254, + 1255, + 1256, + 1257, + 1258, + 1259, + 1260, + 1261, + 1262, + 1263, + 1264, + 1265, + 1266, + 1267, + 1268, + 1269 + ] + }, + { + "teal": 1185, + "source": "examples/arc58/arc58.algo.ts:21", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 1129 + 1270 ] } ] \ No newline at end of file diff --git a/examples/arc72/artifacts/ARC72.approval.teal b/examples/arc72/artifacts/ARC72.approval.teal index 6dd331c0d..532b01a82 100644 --- a/examples/arc72/artifacts/ARC72.approval.teal +++ b/examples/arc72/artifacts/ARC72.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 32 1 256 +bytecblock 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x151f7c75 0x696e646578 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -57,7 +59,7 @@ arc72_ownerOf: // examples/arc72/arc72.algo.ts:25 // return this.tokenBox(tokenId).value.owner; frame_dig -1 // tokenId: uint256 - int 0 + pushint 0 int 32 box_extract retsub @@ -109,7 +111,7 @@ transferTo: // examples/arc72/arc72.algo.ts:41 // this.tokenBox(tokenId).value.owner = to frame_dig -2 // tokenId: uint256 - int 0 + pushint 0 frame_dig -1 // to: Address box_replace retsub @@ -183,7 +185,7 @@ arc72_transferFrom: bnz *skip_or0 txn Sender frame_dig -3 // tokenId: uint256 - int 288 // headOffset + pushint 288 // headOffset int 32 box_extract == @@ -256,7 +258,7 @@ arc72_approve: // examples/arc72/arc72.algo.ts:65 // this.tokenBox(tokenId).value.controller = approved frame_dig -2 // tokenId: uint256 - int 288 // headOffset + pushint 288 // headOffset frame_dig -1 // approved: Address box_replace retsub @@ -272,7 +274,7 @@ arc72_approve: // argument 0 (approved) for arc72_setApprovalForAll must be a bool assert - int 0 + pushint 0 getbit // operator: address @@ -384,7 +386,7 @@ mint: // controller: Address.zeroAddress, // } frame_dig -1 // to: Address - byte 0x68747470733a2f2f6769746875622e636f6d2f616c676f72616e64666f756e646174696f6e2f4152437300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 // "https://github.com/algorandfoundation/ARCs" + pushbytes 0x68747470733a2f2f6769746875622e636f6d2f616c676f72616e64666f756e646174696f6e2f4152437300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 // "https://github.com/algorandfoundation/ARCs" concat global ZeroAddress concat @@ -406,7 +408,7 @@ mint: // this.index.value = index + 1 byte 0x696e646578 // "index" frame_dig 0 // index: uint256 - byte 0x0000000000000000000000000000000000000000000000000000000000000001 + pushbytes 0x0000000000000000000000000000000000000000000000000000000000000001 b+ dup bitlen @@ -521,7 +523,7 @@ arc72_tokenByIndex: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -529,14 +531,14 @@ arc72_tokenByIndex: err *call_NoOp: - method "arc72_ownerOf(uint256)address" - method "arc72_tokenURI(uint256)byte[256]" - method "arc72_transferFrom(address,address,uint256)void" - method "arc72_approve(address,uint256)void" - method "arc72_setApprovalForAll(address,bool)void" - method "mint(address)void" - method "arc72_totalSupply()uint256" - method "arc72_tokenByIndex(uint256)uint256" + pushbytes 0x79096a14 // method "arc72_ownerOf(uint256)address" + pushbytes 0xc3c1fc00 // method "arc72_tokenURI(uint256)byte[256]" + pushbytes 0xf2f194a0 // method "arc72_transferFrom(address,address,uint256)void" + pushbytes 0xb4edba4e // method "arc72_approve(address,uint256)void" + pushbytes 0x7134395f // method "arc72_setApprovalForAll(address,bool)void" + pushbytes 0xac4cfadf // method "mint(address)void" + pushbytes 0x64d72a7a // method "arc72_totalSupply()uint256" + pushbytes 0x6d9bfd27 // method "arc72_tokenByIndex(uint256)uint256" txna ApplicationArgs 0 match *abi_route_arc72_ownerOf *abi_route_arc72_tokenURI *abi_route_arc72_transferFrom *abi_route_arc72_approve *abi_route_arc72_setApprovalForAll *abi_route_mint *abi_route_arc72_totalSupply *abi_route_arc72_tokenByIndex diff --git a/examples/arc72/artifacts/ARC72.arc32.json b/examples/arc72/artifacts/ARC72.arc32.json index 4357ca8da..2e5e50724 100644 --- a/examples/arc72/artifacts/ARC72.arc32.json +++ b/examples/arc72/artifacts/ARC72.arc32.json @@ -79,7 +79,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcmM3Ml9vd25lck9mKHVpbnQyNTYpYWRkcmVzcwoqYWJpX3JvdXRlX2FyYzcyX293bmVyT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG9rZW5JZCkgZm9yIGFyYzcyX293bmVyT2YgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MKCWNhbGxzdWIgYXJjNzJfb3duZXJPZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX293bmVyT2YodG9rZW5JZDogdWludDI1Nik6IEFkZHJlc3MKLy8KLy8KLy8gUmV0dXJucyB0aGUgYWRkcmVzcyBvZiB0aGUgY3VycmVudCBvd25lciBvZiB0aGUgTkZUIHdpdGggdGhlIGdpdmVuIHRva2VuSWQKLy8KLy8gQHBhcmFtIHRva2VuSWQgVGhlIElEIG9mIHRoZSBORlQKLy8gQHJldHVybnMgVGhlIGN1cnJlbnQgb3duZXIgb2YgdGhlIE5GVAphcmM3Ml9vd25lck9mOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoyNQoJLy8gcmV0dXJuIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXI7CglmcmFtZV9kaWcgLTEgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDAKCWludCAzMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KKmFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfdG9rZW5VUkkgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KCWNhbGxzdWIgYXJjNzJfdG9rZW5VUkkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90b2tlblVSSSh0b2tlbklkOiB1aW50MjU2KTogQnl0ZXMyNTYKLy8KLy8KLy8gUmV0dXJucyBhIFVSSSBwb2ludGluZyB0byB0aGUgTkZUIG1ldGFkYXRhCi8vCi8vIEBwYXJhbSB0b2tlbklkIFRoZSBJRCBvZiB0aGUgTkZUCi8vIEByZXR1cm5zIFVSSSB0byB0b2tlbiBtZXRhZGF0YQphcmM3Ml90b2tlblVSSToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MzcKCS8vIHJldHVybiB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLnVyaTsKCWZyYW1lX2RpZyAtMSAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMzIgLy8gaGVhZE9mZnNldAoJaW50IDI1NgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gdHJhbnNmZXJUbyh0bzogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKdHJhbnNmZXJUbzoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NDEKCS8vIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXIgPSB0bwoJZnJhbWVfZGlnIC0yIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gdG86IEFkZHJlc3MKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFyYzcyX3RyYW5zZmVyRnJvbShhZGRyZXNzLGFkZHJlc3MsdWludDI1Nil2b2lkCiphYmlfcm91dGVfYXJjNzJfdHJhbnNmZXJGcm9tOgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfdHJhbnNmZXJGcm9tIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyB0bzogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxICh0bykgZm9yIGFyYzcyX3RyYW5zZmVyRnJvbSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gX2Zyb206IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoX2Zyb20pIGZvciBhcmM3Ml90cmFuc2ZlckZyb20gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KXZvaWQKCWNhbGxzdWIgYXJjNzJfdHJhbnNmZXJGcm9tCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90cmFuc2ZlckZyb20oX2Zyb206IEFkZHJlc3MsIHRvOiBBZGRyZXNzLCB0b2tlbklkOiB1aW50MjU2KTogdm9pZAovLwovLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIGFuIE5GVAphcmM3Ml90cmFuc2ZlckZyb206Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo0OAoJLy8gdG9rZW4gPSB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly90b2tlbgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NTAKCS8vIGtleTogQ29udHJvbCA9IHsgb3duZXI6IHRoaXMudHhuLnNlbmRlciwgY29udHJvbGxlcjogX2Zyb20gfQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIF9mcm9tOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBrZXk6IENvbnRyb2wKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo1MgoJLy8gdGhpcy50eG4uc2VuZGVyID09PSBfZnJvbSB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IHRva2VuLmNvbnRyb2xsZXIgfHwgdGhpcy5jb250cm9sQm94KGtleSkuZXhpc3RzCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gX2Zyb206IEFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMjg4IC8vIGhlYWRPZmZzZXQKCWludCAzMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IwOgoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgMSAvLyBrZXk6IENvbnRyb2wKCWJveF9sZW4KCXN3YXAKCXBvcAoJfHwKCipza2lwX29yMToKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo1MwoJLy8gdGhpcy50cmFuc2ZlclRvKHRvLCB0b2tlbklkKQoJZnJhbWVfZGlnIC0zIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB0bzogQWRkcmVzcwoJY2FsbHN1YiB0cmFuc2ZlclRvCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBUcmFuc2ZlciBub3QgYXV0aG9yaXplZAoJZXJyCgoqaWYwX2VuZDoKCXJldHN1YgoKLy8gYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX2FwcHJvdmU6CgkvLyB0b2tlbklkOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHRva2VuSWQpIGZvciBhcmM3Ml9hcHByb3ZlIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhcHByb3ZlZDogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhcHByb3ZlZCkgZm9yIGFyYzcyX2FwcHJvdmUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBhcmM3Ml9hcHByb3ZlCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml9hcHByb3ZlKGFwcHJvdmVkOiBBZGRyZXNzLCB0b2tlbklkOiB1aW50MjU2KTogdm9pZAovLwovLwovLyBBcHByb3ZlIGEgY29udHJvbGxlciBmb3IgYSBzaW5nbGUgTkZUCi8vCi8vIEBwYXJhbSBhcHByb3ZlZCBBcHByb3ZlZCBjb250cm9sbGVyIGFkZHJlc3MKLy8gQHBhcmFtIHRva2VuSWQgVGhlIElEIG9mIHRoZSBORlQKYXJjNzJfYXBwcm92ZToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NjUKCS8vIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUuY29udHJvbGxlciA9IGFwcHJvdmVkCglmcmFtZV9kaWcgLTIgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDI4OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gYXBwcm92ZWQ6IEFkZHJlc3MKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNzJfc2V0QXBwcm92YWxGb3JBbGw6CgkvLyBhcHByb3ZlZDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFwcHJvdmVkKSBmb3IgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIG9wZXJhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKG9wZXJhdG9yKSBmb3IgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQKCWNhbGxzdWIgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKG9wZXJhdG9yOiBBZGRyZXNzLCBhcHByb3ZlZDogYm9vbGVhbik6IHZvaWQKLy8KLy8KLy8gQXBwcm92ZSBhbiBvcGVyYXRvciBmb3IgYWxsIE5GVHMgZm9yIGEgdXNlcgovLwovLyBAcGFyYW0gb3BlcmF0b3IgQXBwcm92ZWQgb3BlcmF0b3IgYWRkcmVzcwovLyBAcGFyYW0gYXBwcm92ZWQgdHJ1ZSB0byBnaXZlIGFwcHJvdmFsLCBmYWxzZSB0byByZXZva2UKLy8gQHJldHVybnMKYXJjNzJfc2V0QXBwcm92YWxGb3JBbGw6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzcKCS8vIGtleTogQ29udHJvbCA9IHsgb3duZXI6IHRoaXMudHhuLnNlbmRlciwgY29udHJvbGxlcjogb3BlcmF0b3IgfQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIG9wZXJhdG9yOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IENvbnRyb2wKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo3OQoJLy8gYXBwcm92ZWQKCWZyYW1lX2RpZyAtMiAvLyBhcHByb3ZlZDogYm9vbGVhbgoJYnogKmlmMV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo3OQoJLy8gdGhpcy5jb250cm9sQm94KGtleSkudmFsdWUgPSAnJwoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweCAvLyAiIgoJYm94X3B1dAoJYiAqaWYxX2VuZAoKKmlmMV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODAKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLmV4aXN0cwoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODAKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgMCAvLyBrZXk6IENvbnRyb2wKCWJveF9kZWwKCippZjFfZW5kOgoJcmV0c3ViCgovLyBtaW50KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX21pbnQ6CgkvLyB0bzogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0bykgZm9yIG1pbnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbWludChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbWludAoJaW50IDEKCXJldHVybgoKLy8gbWludCh0bzogQWRkcmVzcyk6IHZvaWQKbWludDoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjg0CgkvLyBpbmRleCA9IHRoaXMuaW5kZXgudmFsdWUKCWJ5dGUgMHg2OTZlNjQ2NTc4IC8vICJpbmRleCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gaW5kZXg6IHVpbnQyNTYKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjg2CgkvLyB0b2tlbjogVG9rZW4gPSB7CgkvLyAgICAgICBvd25lcjogdG8sCgkvLyAgICAgICB1cmk6ICdodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL0FSQ3MnIGFzIEJ5dGVzMjU2LAoJLy8gICAgICAgY29udHJvbGxlcjogQWRkcmVzcy56ZXJvQWRkcmVzcywKCS8vICAgICB9CglmcmFtZV9kaWcgLTEgLy8gdG86IEFkZHJlc3MKCWJ5dGUgMHg2ODc0NzQ3MDczM2EyZjJmNjc2OTc0Njg3NTYyMmU2MzZmNmQyZjYxNmM2NzZmNzI2MTZlNjQ2NjZmNzU2ZTY0NjE3NDY5NmY2ZTJmNDE1MjQzNzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzIgoJY29uY2F0CglnbG9iYWwgWmVyb0FkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHRva2VuOiBUb2tlbgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6OTIKCS8vIHRoaXMudG9rZW5Cb3goaW5kZXgpLnZhbHVlID0gdG9rZW4KCWZyYW1lX2RpZyAwIC8vIGluZGV4OiB1aW50MjU2CglmcmFtZV9kaWcgMSAvLyB0b2tlbjogVG9rZW4KCWJveF9wdXQKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjkzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIGluZGV4KQoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJY2FsbHN1YiB0cmFuc2ZlclRvCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo5NAoJLy8gdGhpcy5pbmRleC52YWx1ZSA9IGluZGV4ICsgMQoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgliKwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gaW5kZXggKyAxIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzcyX3RvdGFsU3VwcGx5KCl1aW50MjU2CiphYmlfcm91dGVfYXJjNzJfdG90YWxTdXBwbHk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYKCWNhbGxzdWIgYXJjNzJfdG90YWxTdXBwbHkKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGFyYzcyX3RvdGFsU3VwcGx5IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG90YWxTdXBwbHkoKTogdWludDI1NgovLwovLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgTkZUcyBjdXJyZW50bHkgZGVmaW5lZCBieSB0aGlzIGNvbnRyYWN0CmFyYzcyX3RvdGFsU3VwcGx5OgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoxMDIKCS8vIHJldHVybiB0aGlzLmluZGV4LnZhbHVlOwoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2FyYzcyX3Rva2VuQnlJbmRleDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5kZXg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5kZXgpIGZvciBhcmM3Ml90b2tlbkJ5SW5kZXggbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBhcmM3Ml90b2tlbkJ5SW5kZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGFyYzcyX3Rva2VuQnlJbmRleCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3Rva2VuQnlJbmRleChpbmRleDogdWludDI1Nik6IHVpbnQyNTYKLy8KLy8gUmV0dXJucyB0aGUgdG9rZW4gSUQgb2YgdGhlIHRva2VuIHdpdGggdGhlIGdpdmVuIGluZGV4IGFtb25nIGFsbCBORlRzIGRlZmluZWQgYnkgdGhlIGNvbnRyYWN0CmFyYzcyX3Rva2VuQnlJbmRleDoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MTEwCgkvLyByZXR1cm4gaW5kZXg7CglmcmFtZV9kaWcgLTEgLy8gaW5kZXg6IHVpbnQyNTYKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFyYzcyX293bmVyT2YodWludDI1NilhZGRyZXNzIgoJbWV0aG9kICJhcmM3Ml90b2tlblVSSSh1aW50MjU2KWJ5dGVbMjU2XSIKCW1ldGhvZCAiYXJjNzJfdHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KXZvaWQiCgltZXRob2QgImFyYzcyX2FwcHJvdmUoYWRkcmVzcyx1aW50MjU2KXZvaWQiCgltZXRob2QgImFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkIgoJbWV0aG9kICJtaW50KGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYiCgltZXRob2QgImFyYzcyX3Rva2VuQnlJbmRleCh1aW50MjU2KXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FyYzcyX293bmVyT2YgKmFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSSAqYWJpX3JvdXRlX2FyYzcyX3RyYW5zZmVyRnJvbSAqYWJpX3JvdXRlX2FyYzcyX2FwcHJvdmUgKmFiaV9yb3V0ZV9hcmM3Ml9zZXRBcHByb3ZhbEZvckFsbCAqYWJpX3JvdXRlX21pbnQgKmFiaV9yb3V0ZV9hcmM3Ml90b3RhbFN1cHBseSAqYWJpX3JvdXRlX2FyYzcyX3Rva2VuQnlJbmRleAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAzMiAxIDI1NgpieXRlY2Jsb2NrIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAweDE1MWY3Yzc1IDB4Njk2ZTY0NjU3OCAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGFyYzcyX293bmVyT2YodWludDI1NilhZGRyZXNzCiphYmlfcm91dGVfYXJjNzJfb3duZXJPZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfb3duZXJPZiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9vd25lck9mKHVpbnQyNTYpYWRkcmVzcwoJY2FsbHN1YiBhcmM3Ml9vd25lck9mCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfb3duZXJPZih0b2tlbklkOiB1aW50MjU2KTogQWRkcmVzcwovLwovLwovLyBSZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IG93bmVyIG9mIHRoZSBORlQgd2l0aCB0aGUgZ2l2ZW4gdG9rZW5JZAovLwovLyBAcGFyYW0gdG9rZW5JZCBUaGUgSUQgb2YgdGhlIE5GVAovLyBAcmV0dXJucyBUaGUgY3VycmVudCBvd25lciBvZiB0aGUgTkZUCmFyYzcyX293bmVyT2Y6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjI1CgkvLyByZXR1cm4gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS5vd25lcjsKCWZyYW1lX2RpZyAtMSAvLyB0b2tlbklkOiB1aW50MjU2CglwdXNoaW50IDAKCWludCAzMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KKmFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfdG9rZW5VUkkgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KCWNhbGxzdWIgYXJjNzJfdG9rZW5VUkkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90b2tlblVSSSh0b2tlbklkOiB1aW50MjU2KTogQnl0ZXMyNTYKLy8KLy8KLy8gUmV0dXJucyBhIFVSSSBwb2ludGluZyB0byB0aGUgTkZUIG1ldGFkYXRhCi8vCi8vIEBwYXJhbSB0b2tlbklkIFRoZSBJRCBvZiB0aGUgTkZUCi8vIEByZXR1cm5zIFVSSSB0byB0b2tlbiBtZXRhZGF0YQphcmM3Ml90b2tlblVSSToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MzcKCS8vIHJldHVybiB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLnVyaTsKCWZyYW1lX2RpZyAtMSAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMzIgLy8gaGVhZE9mZnNldAoJaW50IDI1NgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gdHJhbnNmZXJUbyh0bzogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKdHJhbnNmZXJUbzoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NDEKCS8vIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXIgPSB0bwoJZnJhbWVfZGlnIC0yIC8vIHRva2VuSWQ6IHVpbnQyNTYKCXB1c2hpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX3RyYW5zZmVyRnJvbToKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG9rZW5JZCkgZm9yIGFyYzcyX3RyYW5zZmVyRnJvbSBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gdG86IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAodG8pIGZvciBhcmM3Ml90cmFuc2ZlckZyb20gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIF9mcm9tOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKF9mcm9tKSBmb3IgYXJjNzJfdHJhbnNmZXJGcm9tIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX3RyYW5zZmVyRnJvbShhZGRyZXNzLGFkZHJlc3MsdWludDI1Nil2b2lkCgljYWxsc3ViIGFyYzcyX3RyYW5zZmVyRnJvbQoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdHJhbnNmZXJGcm9tKF9mcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKLy8KLy8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiBhbiBORlQKYXJjNzJfdHJhbnNmZXJGcm9tOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NDgKCS8vIHRva2VuID0gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdG9rZW4KCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjUwCgkvLyBrZXk6IENvbnRyb2wgPSB7IG93bmVyOiB0aGlzLnR4bi5zZW5kZXIsIGNvbnRyb2xsZXI6IF9mcm9tIH0KCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBfZnJvbTogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8ga2V5OiBDb250cm9sCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NTIKCS8vIHRoaXMudHhuLnNlbmRlciA9PT0gX2Zyb20gfHwgdGhpcy50eG4uc2VuZGVyID09PSB0b2tlbi5jb250cm9sbGVyIHx8IHRoaXMuY29udHJvbEJveChrZXkpLmV4aXN0cwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIF9mcm9tOiBBZGRyZXNzCgk9PQoJZHVwCglibnogKnNraXBfb3IwCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJcHVzaGludCAyODggLy8gaGVhZE9mZnNldAoJaW50IDMyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxIC8vIGtleTogQ29udHJvbAoJYm94X2xlbgoJc3dhcAoJcG9wCgl8fAoKKnNraXBfb3IxOgoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjUzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIHRva2VuSWQpCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIHRvOiBBZGRyZXNzCgljYWxsc3ViIHRyYW5zZmVyVG8KCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIFRyYW5zZmVyIG5vdCBhdXRob3JpemVkCgllcnIKCippZjBfZW5kOgoJcmV0c3ViCgovLyBhcmM3Ml9hcHByb3ZlKGFkZHJlc3MsdWludDI1Nil2b2lkCiphYmlfcm91dGVfYXJjNzJfYXBwcm92ZToKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG9rZW5JZCkgZm9yIGFyYzcyX2FwcHJvdmUgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGFwcHJvdmVkOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFwcHJvdmVkKSBmb3IgYXJjNzJfYXBwcm92ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9hcHByb3ZlKGFkZHJlc3MsdWludDI1Nil2b2lkCgljYWxsc3ViIGFyYzcyX2FwcHJvdmUKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX2FwcHJvdmUoYXBwcm92ZWQ6IEFkZHJlc3MsIHRva2VuSWQ6IHVpbnQyNTYpOiB2b2lkCi8vCi8vCi8vIEFwcHJvdmUgYSBjb250cm9sbGVyIGZvciBhIHNpbmdsZSBORlQKLy8KLy8gQHBhcmFtIGFwcHJvdmVkIEFwcHJvdmVkIGNvbnRyb2xsZXIgYWRkcmVzcwovLyBAcGFyYW0gdG9rZW5JZCBUaGUgSUQgb2YgdGhlIE5GVAphcmM3Ml9hcHByb3ZlOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo2NQoJLy8gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS5jb250cm9sbGVyID0gYXBwcm92ZWQKCWZyYW1lX2RpZyAtMiAvLyB0b2tlbklkOiB1aW50MjU2CglwdXNoaW50IDI4OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gYXBwcm92ZWQ6IEFkZHJlc3MKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNzJfc2V0QXBwcm92YWxGb3JBbGw6CgkvLyBhcHByb3ZlZDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFwcHJvdmVkKSBmb3IgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJcHVzaGludCAwCglnZXRiaXQKCgkvLyBvcGVyYXRvcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChvcGVyYXRvcikgZm9yIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkCgljYWxsc3ViIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbChvcGVyYXRvcjogQWRkcmVzcywgYXBwcm92ZWQ6IGJvb2xlYW4pOiB2b2lkCi8vCi8vCi8vIEFwcHJvdmUgYW4gb3BlcmF0b3IgZm9yIGFsbCBORlRzIGZvciBhIHVzZXIKLy8KLy8gQHBhcmFtIG9wZXJhdG9yIEFwcHJvdmVkIG9wZXJhdG9yIGFkZHJlc3MKLy8gQHBhcmFtIGFwcHJvdmVkIHRydWUgdG8gZ2l2ZSBhcHByb3ZhbCwgZmFsc2UgdG8gcmV2b2tlCi8vIEByZXR1cm5zCmFyYzcyX3NldEFwcHJvdmFsRm9yQWxsOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjc3CgkvLyBrZXk6IENvbnRyb2wgPSB7IG93bmVyOiB0aGlzLnR4bi5zZW5kZXIsIGNvbnRyb2xsZXI6IG9wZXJhdG9yIH0KCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBvcGVyYXRvcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBDb250cm9sCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzkKCS8vIGFwcHJvdmVkCglmcmFtZV9kaWcgLTIgLy8gYXBwcm92ZWQ6IGJvb2xlYW4KCWJ6ICppZjFfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzkKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLnZhbHVlID0gJycKCWZyYW1lX2RpZyAwIC8vIGtleTogQ29udHJvbAoJZHVwCglib3hfZGVsCglwb3AKCWJ5dGUgMHggLy8gIiIKCWJveF9wdXQKCWIgKmlmMV9lbmQKCippZjFfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjgwCgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS5leGlzdHMKCWZyYW1lX2RpZyAwIC8vIGtleTogQ29udHJvbAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYxX2VuZAoKCS8vICppZjFfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjgwCgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglib3hfZGVsCgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gbWludChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9taW50OgoJLy8gdG86IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG8pIGZvciBtaW50IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIG1pbnQKCWludCAxCglyZXR1cm4KCi8vIG1pbnQodG86IEFkZHJlc3MpOiB2b2lkCm1pbnQ6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo4NAoJLy8gaW5kZXggPSB0aGlzLmluZGV4LnZhbHVlCglieXRlIDB4Njk2ZTY0NjU3OCAvLyAiaW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIGluZGV4OiB1aW50MjU2CgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo4NgoJLy8gdG9rZW46IFRva2VuID0gewoJLy8gICAgICAgb3duZXI6IHRvLAoJLy8gICAgICAgdXJpOiAnaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzJyBhcyBCeXRlczI1NiwKCS8vICAgICAgIGNvbnRyb2xsZXI6IEFkZHJlc3MuemVyb0FkZHJlc3MsCgkvLyAgICAgfQoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCglwdXNoYnl0ZXMgMHg2ODc0NzQ3MDczM2EyZjJmNjc2OTc0Njg3NTYyMmU2MzZmNmQyZjYxNmM2NzZmNzI2MTZlNjQ2NjZmNzU2ZTY0NjE3NDY5NmY2ZTJmNDE1MjQzNzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzIgoJY29uY2F0CglnbG9iYWwgWmVyb0FkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHRva2VuOiBUb2tlbgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6OTIKCS8vIHRoaXMudG9rZW5Cb3goaW5kZXgpLnZhbHVlID0gdG9rZW4KCWZyYW1lX2RpZyAwIC8vIGluZGV4OiB1aW50MjU2CglmcmFtZV9kaWcgMSAvLyB0b2tlbjogVG9rZW4KCWJveF9wdXQKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjkzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIGluZGV4KQoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJY2FsbHN1YiB0cmFuc2ZlclRvCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo5NAoJLy8gdGhpcy5pbmRleC52YWx1ZSA9IGluZGV4ICsgMQoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCWIrCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBpbmRleCArIDEgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYKKmFiaV9yb3V0ZV9hcmM3Ml90b3RhbFN1cHBseToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NgoJY2FsbHN1YiBhcmM3Ml90b3RhbFN1cHBseQoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYXJjNzJfdG90YWxTdXBwbHkgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90b3RhbFN1cHBseSgpOiB1aW50MjU2Ci8vCi8vIFJldHVybnMgdGhlIG51bWJlciBvZiBORlRzIGN1cnJlbnRseSBkZWZpbmVkIGJ5IHRoaXMgY29udHJhY3QKYXJjNzJfdG90YWxTdXBwbHk6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjEwMgoJLy8gcmV0dXJuIHRoaXMuaW5kZXgudmFsdWU7CglieXRlIDB4Njk2ZTY0NjU3OCAvLyAiaW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBhcmM3Ml90b2tlbkJ5SW5kZXgodWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYXJjNzJfdG9rZW5CeUluZGV4OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbmRleDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChpbmRleCkgZm9yIGFyYzcyX3Rva2VuQnlJbmRleCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b2tlbkJ5SW5kZXgodWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFyYzcyX3Rva2VuQnlJbmRleAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYXJjNzJfdG9rZW5CeUluZGV4IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG9rZW5CeUluZGV4KGluZGV4OiB1aW50MjU2KTogdWludDI1NgovLwovLyBSZXR1cm5zIHRoZSB0b2tlbiBJRCBvZiB0aGUgdG9rZW4gd2l0aCB0aGUgZ2l2ZW4gaW5kZXggYW1vbmcgYWxsIE5GVHMgZGVmaW5lZCBieSB0aGUgY29udHJhY3QKYXJjNzJfdG9rZW5CeUluZGV4OgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoxMTAKCS8vIHJldHVybiBpbmRleDsKCWZyYW1lX2RpZyAtMSAvLyBpbmRleDogdWludDI1NgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDc5MDk2YTE0IC8vIG1ldGhvZCAiYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MiCglwdXNoYnl0ZXMgMHhjM2MxZmMwMCAvLyBtZXRob2QgImFyYzcyX3Rva2VuVVJJKHVpbnQyNTYpYnl0ZVsyNTZdIgoJcHVzaGJ5dGVzIDB4ZjJmMTk0YTAgLy8gbWV0aG9kICJhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCXB1c2hieXRlcyAweGI0ZWRiYTRlIC8vIG1ldGhvZCAiYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCXB1c2hieXRlcyAweDcxMzQzOTVmIC8vIG1ldGhvZCAiYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHhhYzRjZmFkZiAvLyBtZXRob2QgIm1pbnQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NjRkNzJhN2EgLy8gbWV0aG9kICJhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NiIKCXB1c2hieXRlcyAweDZkOWJmZDI3IC8vIG1ldGhvZCAiYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJjNzJfb3duZXJPZiAqYWJpX3JvdXRlX2FyYzcyX3Rva2VuVVJJICphYmlfcm91dGVfYXJjNzJfdHJhbnNmZXJGcm9tICphYmlfcm91dGVfYXJjNzJfYXBwcm92ZSAqYWJpX3JvdXRlX2FyYzcyX3NldEFwcHJvdmFsRm9yQWxsICphYmlfcm91dGVfbWludCAqYWJpX3JvdXRlX2FyYzcyX3RvdGFsU3VwcGx5ICphYmlfcm91dGVfYXJjNzJfdG9rZW5CeUluZGV4CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/arc72/artifacts/ARC72.arc56_draft.json b/examples/arc72/artifacts/ARC72.arc56_draft.json index e88e32dec..df8474ece 100644 --- a/examples/arc72/artifacts/ARC72.arc56_draft.json +++ b/examples/arc72/artifacts/ARC72.arc56_draft.json @@ -262,2584 +262,130 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 9, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 13, - "source": 9, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 14, - "source": 9, - "pc": [ - 59 - ] - }, - { - "teal": 15, - "source": 9, - "pc": [ - 60, - 61 - ] - }, - { - "teal": 16, - "source": 9, - "pc": [ - 62 - ] - }, - { - "teal": 17, - "source": 9, - "pc": [ - 63, - 64 - ] - }, - { - "teal": 18, - "source": 9, - "pc": [ - 65 - ] - }, - { - "teal": 19, - "source": 9, - "pc": [ - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 23, - "source": 9, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 92 - ] - }, - { - "teal": 28, - "source": 23, - "pc": [ - 93 - ] - }, - { - "teal": 31, - "source": 24, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 32, - "source": 24, - "pc": [ - 97 - ] - }, - { - "teal": 33, - "source": 24, - "pc": [ - 98 - ] - }, - { - "teal": 34, - "source": 24, - "pc": [ - 99 - ] - }, - { - "teal": 35, - "source": 24, - "pc": [ - 100 - ] - }, - { - "teal": 38, - "source": 24, - "errorMessage": "argument 0 (tokenId) for arc72_ownerOf must be a uint256", - "pc": [ - 101 - ] - }, - { - "teal": 41, - "source": 23, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 42, - "source": 23, - "pc": [ - 105 - ] - }, - { - "teal": 43, - "source": 23, - "pc": [ - 106 - ] - }, - { - "teal": 44, - "source": 23, - "pc": [ - 107 - ] - }, - { - "teal": 45, - "source": 23, - "pc": [ - 108 - ] - }, - { - "teal": 55, - "source": 23, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 59, - "source": 25, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 60, - "source": 25, - "pc": [ - 114 - ] - }, - { - "teal": 61, - "source": 25, - "pc": [ - 115 - ] - }, - { - "teal": 62, - "source": 25, - "pc": [ - 116 - ] - }, - { - "teal": 63, - "source": 23, - "pc": [ - 117 - ] - }, - { - "teal": 68, - "source": 35, - "pc": [ - 118 - ] - }, - { - "teal": 71, - "source": 36, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 72, - "source": 36, - "pc": [ - 122 - ] - }, - { - "teal": 73, - "source": 36, - "pc": [ - 123 - ] - }, - { - "teal": 74, - "source": 36, - "pc": [ - 124 - ] - }, - { - "teal": 75, - "source": 36, - "pc": [ - 125 - ] - }, - { - "teal": 78, - "source": 36, - "errorMessage": "argument 0 (tokenId) for arc72_tokenURI must be a uint256", - "pc": [ - 126 - ] - }, - { - "teal": 81, - "source": 35, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 82, - "source": 35, - "pc": [ - 130 - ] - }, - { - "teal": 83, - "source": 35, - "pc": [ - 131 - ] - }, - { - "teal": 84, - "source": 35, - "pc": [ - 132 - ] - }, - { - "teal": 85, - "source": 35, - "pc": [ - 133 - ] - }, - { - "teal": 95, - "source": 35, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 99, - "source": 37, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 100, - "source": 37, - "pc": [ - 139 - ] - }, - { - "teal": 101, - "source": 37, - "pc": [ - 140 - ] - }, - { - "teal": 102, - "source": 37, - "pc": [ - 141 - ] - }, - { - "teal": 103, - "source": 35, - "pc": [ - 142 - ] - }, - { - "teal": 107, - "source": 40, - "pc": [ - 143, - 144, - 145 - ] - }, - { - "teal": 111, - "source": 41, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 112, - "source": 41, - "pc": [ - 148 - ] - }, - { - "teal": 113, - "source": 41, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 114, - "source": 41, - "pc": [ - 151 - ] - }, - { - "teal": 115, - "source": 40, - "pc": [ - 152 - ] - }, - { - "teal": 120, - "source": 47, - "pc": [ - 153, - 154, - 155 - ] - }, - { - "teal": 121, - "source": 47, - "pc": [ - 156 - ] - }, - { - "teal": 122, - "source": 47, - "pc": [ - 157 - ] - }, - { - "teal": 123, - "source": 47, - "pc": [ - 158 - ] - }, - { - "teal": 124, - "source": 47, - "pc": [ - 159 - ] - }, - { - "teal": 127, - "source": 47, - "errorMessage": "argument 0 (tokenId) for arc72_transferFrom must be a uint256", - "pc": [ - 160 - ] - }, - { - "teal": 130, - "source": 47, - "pc": [ - 161, - 162, - 163 - ] - }, - { - "teal": 131, - "source": 47, - "pc": [ - 164 - ] - }, - { - "teal": 132, - "source": 47, - "pc": [ - 165 - ] - }, - { - "teal": 133, - "source": 47, - "pc": [ - 166 - ] - }, - { - "teal": 134, - "source": 47, - "pc": [ - 167 - ] - }, - { - "teal": 137, - "source": 47, - "errorMessage": "argument 1 (to) for arc72_transferFrom must be a address", - "pc": [ - 168 - ] - }, - { - "teal": 140, - "source": 47, - "pc": [ - 169, - 170, - 171 - ] - }, - { - "teal": 141, - "source": 47, - "pc": [ - 172 - ] - }, - { - "teal": 142, - "source": 47, - "pc": [ - 173 - ] - }, - { - "teal": 143, - "source": 47, - "pc": [ - 174 - ] - }, - { - "teal": 144, - "source": 47, - "pc": [ - 175 - ] - }, - { - "teal": 147, - "source": 47, - "errorMessage": "argument 2 (_from) for arc72_transferFrom must be a address", - "pc": [ - 176 - ] - }, - { - "teal": 150, - "source": 47, - "pc": [ - 177, - 178, - 179 - ] - }, - { - "teal": 151, - "source": 47, - "pc": [ - 180 - ] - }, - { - "teal": 152, - "source": 47, - "pc": [ - 181 - ] - }, - { - "teal": 158, - "source": 47, - "pc": [ - 182, - 183, - 184 - ] - }, - { - "teal": 161, - "source": 47, - "pc": [ - 185 - ] - }, - { - "teal": 162, - "source": 47, - "pc": [ - 186 - ] - }, - { - "teal": 166, - "source": 48, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 167, - "source": 48, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 171, - "source": 50, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 172, - "source": 50, - "pc": [ - 193, - 194 - ] - }, - { - "teal": 173, - "source": 50, - "pc": [ - 195 - ] - }, - { - "teal": 174, - "source": 50, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 179, - "source": 52, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 180, - "source": 52, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 181, - "source": 52, - "pc": [ - 202 - ] - }, - { - "teal": 182, - "source": 52, - "pc": [ - 203 - ] - }, - { - "teal": 183, - "source": 52, - "pc": [ - 204, - 205, - 206 - ] - }, - { - "teal": 184, - "source": 52, - "pc": [ - 207, - 208 - ] - }, - { - "teal": 185, - "source": 48, - "pc": [ - 209, - 210 - ] - }, - { - "teal": 186, - "source": 48, - "pc": [ - 211, - 212 - ] - }, - { - "teal": 187, - "source": 48, - "pc": [ - 213 - ] - }, - { - "teal": 188, - "source": 48, - "pc": [ - 214 - ] - }, - { - "teal": 189, - "source": 52, - "pc": [ - 215 - ] - }, - { - "teal": 190, - "source": 52, - "pc": [ - 216 - ] - }, - { - "teal": 193, - "source": 52, - "pc": [ - 217 - ] - }, - { - "teal": 194, - "source": 52, - "pc": [ - 218, - 219, - 220 - ] - }, - { - "teal": 195, - "source": 52, - "pc": [ - 221, - 222 - ] - }, - { - "teal": 196, - "source": 52, - "pc": [ - 223 - ] - }, - { - "teal": 197, - "source": 52, - "pc": [ - 224 - ] - }, - { - "teal": 198, - "source": 52, - "pc": [ - 225 - ] - }, - { - "teal": 199, - "source": 52, - "pc": [ - 226 - ] - }, - { - "teal": 202, - "source": 52, - "pc": [ - 227, - 228, - 229 - ] - }, - { - "teal": 207, - "source": 53, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 208, - "source": 53, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 209, - "source": 53, - "pc": [ - 234, - 235, - 236 - ] - }, - { - "teal": 210, - "source": 52, - "pc": [ - 237, - 238, - 239 - ] - }, - { - "teal": 214, - "source": 54, - "errorMessage": "Transfer not authorized", - "pc": [ - 240 - ] - }, - { - "teal": 217, - "source": 47, - "pc": [ - 241 - ] - }, - { - "teal": 222, - "source": 64, - "pc": [ - 242, - 243, - 244 - ] - }, - { - "teal": 223, - "source": 64, - "pc": [ - 245 - ] - }, - { - "teal": 224, - "source": 64, - "pc": [ - 246 - ] - }, - { - "teal": 225, - "source": 64, - "pc": [ - 247 - ] - }, - { - "teal": 226, - "source": 64, - "pc": [ - 248 - ] - }, - { - "teal": 229, - "source": 64, - "errorMessage": "argument 0 (tokenId) for arc72_approve must be a uint256", - "pc": [ - 249 - ] - }, - { - "teal": 232, - "source": 64, - "pc": [ - 250, - 251, - 252 - ] - }, - { - "teal": 233, - "source": 64, - "pc": [ - 253 - ] - }, - { - "teal": 234, - "source": 64, - "pc": [ - 254 - ] - }, - { - "teal": 235, - "source": 64, - "pc": [ - 255 - ] - }, - { - "teal": 236, - "source": 64, - "pc": [ - 256 - ] - }, - { - "teal": 239, - "source": 64, - "errorMessage": "argument 1 (approved) for arc72_approve must be a address", - "pc": [ - 257 - ] - }, - { - "teal": 242, - "source": 64, - "pc": [ - 258, - 259, - 260 - ] - }, - { - "teal": 243, - "source": 64, - "pc": [ - 261 - ] - }, - { - "teal": 244, - "source": 64, - "pc": [ - 262 - ] - }, - { - "teal": 254, - "source": 64, - "pc": [ - 263, - 264, - 265 - ] - }, - { - "teal": 258, - "source": 65, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 259, - "source": 65, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 260, - "source": 65, - "pc": [ - 270, - 271 - ] - }, - { - "teal": 261, - "source": 65, - "pc": [ - 272 - ] - }, - { - "teal": 262, - "source": 64, - "pc": [ - 273 - ] - }, - { - "teal": 267, - "source": 76, - "pc": [ - 274, - 275, - 276 - ] - }, - { - "teal": 268, - "source": 76, - "pc": [ - 277 - ] - }, - { - "teal": 269, - "source": 76, - "pc": [ - 278 - ] - }, - { - "teal": 270, - "source": 76, - "pc": [ - 279 - ] - }, - { - "teal": 271, - "source": 76, - "pc": [ - 280 - ] - }, - { - "teal": 274, - "source": 76, - "errorMessage": "argument 0 (approved) for arc72_setApprovalForAll must be a bool", - "pc": [ - 281 - ] - }, - { - "teal": 275, - "source": 76, - "pc": [ - 282 - ] - }, - { - "teal": 276, - "source": 76, - "pc": [ - 283 - ] - }, - { - "teal": 279, - "source": 76, - "pc": [ - 284, - 285, - 286 - ] - }, - { - "teal": 280, - "source": 76, - "pc": [ - 287 - ] - }, - { - "teal": 281, - "source": 76, - "pc": [ - 288 - ] - }, - { - "teal": 282, - "source": 76, - "pc": [ - 289 - ] - }, - { - "teal": 283, - "source": 76, - "pc": [ - 290 - ] - }, - { - "teal": 286, - "source": 76, - "errorMessage": "argument 1 (operator) for arc72_setApprovalForAll must be a address", - "pc": [ - 291 - ] - }, - { - "teal": 289, - "source": 76, - "pc": [ - 292, - 293, - 294 - ] - }, - { - "teal": 290, - "source": 76, - "pc": [ - 295 - ] - }, - { - "teal": 291, - "source": 76, - "pc": [ - 296 - ] - }, - { - "teal": 302, - "source": 76, - "pc": [ - 297, - 298, - 299 - ] - }, - { - "teal": 305, - "source": 76, - "pc": [ - 300 - ] - }, - { - "teal": 309, - "source": 77, - "pc": [ - 301, - 302 - ] - }, - { - "teal": 310, - "source": 77, - "pc": [ - 303, - 304 - ] - }, - { - "teal": 311, - "source": 77, - "pc": [ - 305 - ] - }, - { - "teal": 312, - "source": 77, - "pc": [ - 306, - 307 - ] - }, - { - "teal": 317, - "source": 79, - "pc": [ - 308, - 309 - ] - }, - { - "teal": 318, - "source": 79, - "pc": [ - 310, - 311, - 312 - ] - }, - { - "teal": 323, - "source": 79, - "pc": [ - 313, - 314 - ] - }, - { - "teal": 324, - "source": 79, - "pc": [ - 315 - ] - }, - { - "teal": 325, - "source": 79, - "pc": [ - 316 - ] - }, - { - "teal": 326, - "source": 79, - "pc": [ - 317 - ] - }, - { - "teal": 327, - "source": 79, - "pc": [ - 318 - ] - }, - { - "teal": 328, - "source": 79, - "pc": [ - 319 - ] - }, - { - "teal": 329, - "source": 79, - "pc": [ - 320, - 321, - 322 - ] - }, - { - "teal": 334, - "source": 80, - "pc": [ - 323, - 324 - ] - }, - { - "teal": 335, - "source": 80, - "pc": [ - 325 - ] - }, - { - "teal": 336, - "source": 80, - "pc": [ - 326 - ] - }, - { - "teal": 337, - "source": 80, - "pc": [ - 327 - ] - }, - { - "teal": 338, - "source": 80, - "pc": [ - 328, - 329, - 330 - ] - }, - { - "teal": 343, - "source": 80, - "pc": [ - 331, - 332 - ] - }, - { - "teal": 344, - "source": 80, - "pc": [ - 333 - ] - }, - { - "teal": 347, - "source": 76, - "pc": [ - 334 - ] - }, - { - "teal": 352, - "source": 83, - "pc": [ - 335, - 336, - 337 - ] - }, - { - "teal": 353, - "source": 83, - "pc": [ - 338 - ] - }, - { - "teal": 354, - "source": 83, - "pc": [ - 339 - ] - }, - { - "teal": 355, - "source": 83, - "pc": [ - 340 - ] - }, - { - "teal": 356, - "source": 83, - "pc": [ - 341 - ] - }, - { - "teal": 359, - "source": 83, - "errorMessage": "argument 0 (to) for mint must be a address", - "pc": [ - 342 - ] - }, - { - "teal": 362, - "source": 83, - "pc": [ - 343, - 344, - 345 - ] - }, - { - "teal": 363, - "source": 83, - "pc": [ - 346 - ] - }, - { - "teal": 364, - "source": 83, - "pc": [ - 347 - ] - }, - { - "teal": 368, - "source": 83, - "pc": [ - 348, - 349, - 350 - ] - }, - { - "teal": 371, - "source": 83, - "pc": [ - 351 - ] - }, - { - "teal": 372, - "source": 83, - "pc": [ - 352 - ] - }, - { - "teal": 376, - "source": 84, - "pc": [ - 353 - ] - }, - { - "teal": 377, - "source": 84, - "pc": [ - 354 - ] - }, - { - "teal": 378, - "source": 84, - "pc": [ - 355, - 356 - ] - }, - { - "teal": 386, - "source": 87, - "pc": [ - 357, - 358 - ] - }, - { - "teal": 387, - "source": 88, - "pc": [ - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577, - 578, - 579, - 580, - 581, - 582, - 583, - 584, - 585, - 586, - 587, - 588, - 589, - 590, - 591, - 592, - 593, - 594, - 595, - 596, - 597, - 598, - 599, - 600, - 601, - 602, - 603, - 604, - 605, - 606, - 607, - 608, - 609, - 610, - 611, - 612, - 613, - 614, - 615, - 616, - 617 - ] - }, - { - "teal": 388, - "source": 88, - "pc": [ - 618 - ] - }, - { - "teal": 389, - "source": 89, - "pc": [ - 619, - 620 - ] - }, - { - "teal": 390, - "source": 89, - "pc": [ - 621 - ] - }, - { - "teal": 391, - "source": 86, - "pc": [ - 622, - 623 - ] - }, - { - "teal": 395, - "source": 92, - "pc": [ - 624, - 625 - ] - }, - { - "teal": 396, - "source": 92, - "pc": [ - 626, - 627 - ] - }, - { - "teal": 397, - "source": 92, - "pc": [ - 628 - ] - }, - { - "teal": 401, - "source": 93, - "pc": [ - 629, - 630 - ] - }, - { - "teal": 402, - "source": 93, - "pc": [ - 631, - 632 - ] - }, - { - "teal": 403, - "source": 93, - "pc": [ - 633, - 634, - 635 - ] - }, - { - "teal": 407, - "source": 94, - "pc": [ - 636 - ] - }, - { - "teal": 408, - "source": 94, - "pc": [ - 637, - 638 - ] - }, - { - "teal": 409, - "source": 94, - "pc": [ - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672 - ] - }, - { - "teal": 410, - "source": 94, - "pc": [ - 673 - ] - }, - { - "teal": 411, - "source": 94, - "pc": [ - 674 - ] - }, - { - "teal": 412, - "source": 94, - "pc": [ - 675 - ] - }, - { - "teal": 413, - "source": 94, - "pc": [ - 676 - ] - }, - { - "teal": 414, - "source": 94, - "pc": [ - 677 - ] - }, - { - "teal": 417, - "source": 94, - "errorMessage": "index + 1 overflowed 256 bits", - "pc": [ - 678 - ] - }, - { - "teal": 418, - "source": 94, - "pc": [ - 679 - ] - }, - { - "teal": 419, - "source": 94, - "pc": [ - 680 - ] - }, - { - "teal": 420, - "source": 94, - "pc": [ - 681 - ] - }, - { - "teal": 421, - "source": 94, - "pc": [ - 682 - ] - }, - { - "teal": 422, - "source": 94, - "pc": [ - 683 - ] - }, - { - "teal": 423, - "source": 94, - "pc": [ - 684 - ] - }, - { - "teal": 424, - "source": 94, - "pc": [ - 685 - ] - }, - { - "teal": 425, - "source": 94, - "pc": [ - 686 - ] - }, - { - "teal": 426, - "source": 94, - "pc": [ - 687 - ] - }, - { - "teal": 427, - "source": 94, - "pc": [ - 688 - ] - }, - { - "teal": 428, - "source": 83, - "pc": [ - 689 - ] - }, - { - "teal": 433, - "source": 100, - "pc": [ - 690 - ] - }, - { - "teal": 436, - "source": 100, - "pc": [ - 691, - 692, - 693 - ] - }, - { - "teal": 437, - "source": 100, - "pc": [ - 694 - ] - }, - { - "teal": 438, - "source": 100, - "pc": [ - 695 - ] - }, - { - "teal": 439, - "source": 100, - "pc": [ - 696 - ] - }, - { - "teal": 440, - "source": 100, - "pc": [ - 697 - ] - }, - { - "teal": 443, - "source": 100, - "errorMessage": "arc72_totalSupply return value overflowed 256 bits", - "pc": [ - 698 - ] - }, - { - "teal": 444, - "source": 100, - "pc": [ - 699 - ] - }, - { - "teal": 445, - "source": 100, - "pc": [ - 700 - ] - }, - { - "teal": 446, - "source": 100, - "pc": [ - 701 - ] - }, - { - "teal": 447, - "source": 100, - "pc": [ - 702 - ] - }, - { - "teal": 448, - "source": 100, - "pc": [ - 703 - ] - }, - { - "teal": 449, - "source": 100, - "pc": [ - 704 - ] - }, - { - "teal": 450, - "source": 100, - "pc": [ - 705 - ] - }, - { - "teal": 451, - "source": 100, - "pc": [ - 706 - ] - }, - { - "teal": 452, - "source": 100, - "pc": [ - 707 - ] - }, - { - "teal": 453, - "source": 100, - "pc": [ - 708 - ] - }, - { - "teal": 454, - "source": 100, - "pc": [ - 709 - ] - }, - { - "teal": 455, - "source": 100, - "pc": [ - 710 - ] - }, - { - "teal": 456, - "source": 100, - "pc": [ - 711 - ] - }, - { - "teal": 462, - "source": 100, - "pc": [ - 712, - 713, - 714 - ] - }, - { - "teal": 466, - "source": 102, - "pc": [ - 715 - ] - }, - { - "teal": 467, - "source": 102, - "pc": [ - 716 - ] - }, - { - "teal": 468, - "source": 100, - "pc": [ - 717 - ] - }, - { - "teal": 473, - "source": 108, - "pc": [ - 718 - ] - }, - { - "teal": 476, - "source": 109, - "pc": [ - 719, - 720, - 721 - ] - }, - { - "teal": 477, - "source": 109, - "pc": [ - 722 - ] - }, - { - "teal": 478, - "source": 109, - "pc": [ - 723 - ] - }, - { - "teal": 479, - "source": 109, - "pc": [ - 724 - ] - }, - { - "teal": 480, - "source": 109, - "pc": [ - 725 - ] - }, - { - "teal": 483, - "source": 109, - "errorMessage": "argument 0 (index) for arc72_tokenByIndex must be a uint256", - "pc": [ - 726 - ] - }, - { - "teal": 486, - "source": 108, - "pc": [ - 727, - 728, - 729 - ] - }, - { - "teal": 487, - "source": 108, - "pc": [ - 730 - ] - }, - { - "teal": 488, - "source": 108, - "pc": [ - 731 - ] - }, - { - "teal": 489, - "source": 108, - "pc": [ - 732 - ] - }, - { - "teal": 490, - "source": 108, - "pc": [ - 733 - ] - }, - { - "teal": 493, - "source": 108, - "errorMessage": "arc72_tokenByIndex return value overflowed 256 bits", - "pc": [ - 734 - ] - }, - { - "teal": 494, - "source": 108, - "pc": [ - 735 - ] - }, - { - "teal": 495, - "source": 108, - "pc": [ - 736 - ] - }, - { - "teal": 496, - "source": 108, - "pc": [ - 737 - ] - }, - { - "teal": 497, - "source": 108, - "pc": [ - 738 - ] - }, - { - "teal": 498, - "source": 108, - "pc": [ - 739 - ] - }, - { - "teal": 499, - "source": 108, - "pc": [ - 740 - ] - }, - { - "teal": 500, - "source": 108, - "pc": [ - 741 - ] - }, - { - "teal": 501, - "source": 108, - "pc": [ - 742 - ] - }, - { - "teal": 502, - "source": 108, - "pc": [ - 743 - ] - }, - { - "teal": 503, - "source": 108, - "pc": [ - 744 - ] - }, - { - "teal": 504, - "source": 108, - "pc": [ - 745 - ] - }, - { - "teal": 505, - "source": 108, - "pc": [ - 746 - ] - }, - { - "teal": 506, - "source": 108, - "pc": [ - 747 - ] - }, - { - "teal": 512, - "source": 108, - "pc": [ - 748, - 749, - 750 - ] - }, - { - "teal": 516, - "source": 110, - "pc": [ - 751, - 752 - ] - }, - { - "teal": 517, - "source": 108, - "pc": [ - 753 - ] - }, - { - "teal": 520, - "source": 9, - "pc": [ - 754 - ] - }, - { - "teal": 521, - "source": 9, - "pc": [ - 755 - ] - }, - { - "teal": 524, - "source": 9, - "pc": [ - 756, - 757, - 758, - 759, - 760, - 761 - ] - }, - { - "teal": 525, - "source": 9, - "pc": [ - 762, - 763, - 764 - ] - }, - { - "teal": 526, - "source": 9, - "pc": [ - 765, - 766, - 767, - 768 - ] - }, - { - "teal": 529, - "source": 9, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 769 - ] - }, - { - "teal": 532, - "source": 9, - "pc": [ - 770, - 771, - 772, - 773, - 774, - 775 - ] - }, - { - "teal": 533, - "source": 9, - "pc": [ - 776, - 777, - 778, - 779, - 780, - 781 - ] - }, - { - "teal": 534, - "source": 9, - "pc": [ - 782, - 783, - 784, - 785, - 786, - 787 - ] - }, - { - "teal": 535, - "source": 9, - "pc": [ - 788, - 789, - 790, - 791, - 792, - 793 - ] - }, - { - "teal": 536, - "source": 9, - "pc": [ - 794, - 795, - 796, - 797, - 798, - 799 - ] - }, - { - "teal": 537, - "source": 9, - "pc": [ - 800, - 801, - 802, - 803, - 804, - 805 - ] - }, - { - "teal": 538, - "source": 9, - "pc": [ - 806, - 807, - 808, - 809, - 810, - 811 - ] - }, - { - "teal": 539, - "source": 9, - "pc": [ - 812, - 813, - 814, - 815, - 816, - 817 - ] - }, - { - "teal": 540, - "source": 9, - "pc": [ - 818, - 819, - 820 - ] - }, - { - "teal": 541, - "source": 9, - "pc": [ - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838 - ] - }, - { - "teal": 544, - "source": 9, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 839 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 89 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 104 + ], + "errorMessage": "argument 0 (tokenId) for arc72_ownerOf must be a uint256" + }, + { + "pc": [ + 138 + ], + "errorMessage": "argument 0 (tokenId) for arc72_tokenURI must be a uint256" + }, + { + "pc": [ + 178 + ], + "errorMessage": "argument 0 (tokenId) for arc72_transferFrom must be a uint256" + }, + { + "pc": [ + 187 + ], + "errorMessage": "argument 1 (to) for arc72_transferFrom must be a address" + }, + { + "pc": [ + 196 + ], + "errorMessage": "argument 2 (_from) for arc72_transferFrom must be a address" + }, + { + "pc": [ + 264 + ], + "errorMessage": "Transfer not authorized" + }, + { + "pc": [ + 274 + ], + "errorMessage": "argument 0 (tokenId) for arc72_approve must be a uint256" + }, + { + "pc": [ + 283 + ], + "errorMessage": "argument 1 (approved) for arc72_approve must be a address" + }, + { + "pc": [ + 310 + ], + "errorMessage": "argument 0 (approved) for arc72_setApprovalForAll must be a bool" + }, + { + "pc": [ + 322 + ], + "errorMessage": "argument 1 (operator) for arc72_setApprovalForAll must be a address" + }, + { + "pc": [ + 377 + ], + "errorMessage": "argument 0 (to) for mint must be a address" + }, + { + "pc": [ + 729 + ], + "errorMessage": "index + 1 overflowed 256 bits" + }, + { + "pc": [ + 790 + ], + "errorMessage": "arc72_totalSupply return value overflowed 256 bits" + }, + { + "pc": [ + 865 + ], + "errorMessage": "argument 0 (index) for arc72_tokenByIndex must be a uint256" + }, + { + "pc": [ + 875 + ], + "errorMessage": "arc72_tokenByIndex return value overflowed 256 bits" + }, + { + "pc": [ + 946 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 1016 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcmM3Ml9vd25lck9mKHVpbnQyNTYpYWRkcmVzcwoqYWJpX3JvdXRlX2FyYzcyX293bmVyT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG9rZW5JZCkgZm9yIGFyYzcyX293bmVyT2YgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MKCWNhbGxzdWIgYXJjNzJfb3duZXJPZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX293bmVyT2YodG9rZW5JZDogdWludDI1Nik6IEFkZHJlc3MKLy8KLy8KLy8gUmV0dXJucyB0aGUgYWRkcmVzcyBvZiB0aGUgY3VycmVudCBvd25lciBvZiB0aGUgTkZUIHdpdGggdGhlIGdpdmVuIHRva2VuSWQKLy8KLy8gQHBhcmFtIHRva2VuSWQgVGhlIElEIG9mIHRoZSBORlQKLy8gQHJldHVybnMgVGhlIGN1cnJlbnQgb3duZXIgb2YgdGhlIE5GVAphcmM3Ml9vd25lck9mOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoyNQoJLy8gcmV0dXJuIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXI7CglmcmFtZV9kaWcgLTEgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDAKCWludCAzMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KKmFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfdG9rZW5VUkkgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KCWNhbGxzdWIgYXJjNzJfdG9rZW5VUkkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90b2tlblVSSSh0b2tlbklkOiB1aW50MjU2KTogQnl0ZXMyNTYKLy8KLy8KLy8gUmV0dXJucyBhIFVSSSBwb2ludGluZyB0byB0aGUgTkZUIG1ldGFkYXRhCi8vCi8vIEBwYXJhbSB0b2tlbklkIFRoZSBJRCBvZiB0aGUgTkZUCi8vIEByZXR1cm5zIFVSSSB0byB0b2tlbiBtZXRhZGF0YQphcmM3Ml90b2tlblVSSToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MzcKCS8vIHJldHVybiB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLnVyaTsKCWZyYW1lX2RpZyAtMSAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMzIgLy8gaGVhZE9mZnNldAoJaW50IDI1NgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gdHJhbnNmZXJUbyh0bzogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKdHJhbnNmZXJUbzoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NDEKCS8vIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXIgPSB0bwoJZnJhbWVfZGlnIC0yIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gdG86IEFkZHJlc3MKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFyYzcyX3RyYW5zZmVyRnJvbShhZGRyZXNzLGFkZHJlc3MsdWludDI1Nil2b2lkCiphYmlfcm91dGVfYXJjNzJfdHJhbnNmZXJGcm9tOgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfdHJhbnNmZXJGcm9tIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyB0bzogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxICh0bykgZm9yIGFyYzcyX3RyYW5zZmVyRnJvbSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gX2Zyb206IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoX2Zyb20pIGZvciBhcmM3Ml90cmFuc2ZlckZyb20gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KXZvaWQKCWNhbGxzdWIgYXJjNzJfdHJhbnNmZXJGcm9tCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90cmFuc2ZlckZyb20oX2Zyb206IEFkZHJlc3MsIHRvOiBBZGRyZXNzLCB0b2tlbklkOiB1aW50MjU2KTogdm9pZAovLwovLyBUcmFuc2ZlcnMgb3duZXJzaGlwIG9mIGFuIE5GVAphcmM3Ml90cmFuc2ZlckZyb206Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo0OAoJLy8gdG9rZW4gPSB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly90b2tlbgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NTAKCS8vIGtleTogQ29udHJvbCA9IHsgb3duZXI6IHRoaXMudHhuLnNlbmRlciwgY29udHJvbGxlcjogX2Zyb20gfQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIF9mcm9tOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBrZXk6IENvbnRyb2wKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo1MgoJLy8gdGhpcy50eG4uc2VuZGVyID09PSBfZnJvbSB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IHRva2VuLmNvbnRyb2xsZXIgfHwgdGhpcy5jb250cm9sQm94KGtleSkuZXhpc3RzCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gX2Zyb206IEFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMyAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMjg4IC8vIGhlYWRPZmZzZXQKCWludCAzMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IwOgoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgMSAvLyBrZXk6IENvbnRyb2wKCWJveF9sZW4KCXN3YXAKCXBvcAoJfHwKCipza2lwX29yMToKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo1MwoJLy8gdGhpcy50cmFuc2ZlclRvKHRvLCB0b2tlbklkKQoJZnJhbWVfZGlnIC0zIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB0bzogQWRkcmVzcwoJY2FsbHN1YiB0cmFuc2ZlclRvCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBUcmFuc2ZlciBub3QgYXV0aG9yaXplZAoJZXJyCgoqaWYwX2VuZDoKCXJldHN1YgoKLy8gYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX2FwcHJvdmU6CgkvLyB0b2tlbklkOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHRva2VuSWQpIGZvciBhcmM3Ml9hcHByb3ZlIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhcHByb3ZlZDogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhcHByb3ZlZCkgZm9yIGFyYzcyX2FwcHJvdmUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBhcmM3Ml9hcHByb3ZlCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml9hcHByb3ZlKGFwcHJvdmVkOiBBZGRyZXNzLCB0b2tlbklkOiB1aW50MjU2KTogdm9pZAovLwovLwovLyBBcHByb3ZlIGEgY29udHJvbGxlciBmb3IgYSBzaW5nbGUgTkZUCi8vCi8vIEBwYXJhbSBhcHByb3ZlZCBBcHByb3ZlZCBjb250cm9sbGVyIGFkZHJlc3MKLy8gQHBhcmFtIHRva2VuSWQgVGhlIElEIG9mIHRoZSBORlQKYXJjNzJfYXBwcm92ZToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NjUKCS8vIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUuY29udHJvbGxlciA9IGFwcHJvdmVkCglmcmFtZV9kaWcgLTIgLy8gdG9rZW5JZDogdWludDI1NgoJaW50IDI4OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gYXBwcm92ZWQ6IEFkZHJlc3MKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNzJfc2V0QXBwcm92YWxGb3JBbGw6CgkvLyBhcHByb3ZlZDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFwcHJvdmVkKSBmb3IgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIG9wZXJhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKG9wZXJhdG9yKSBmb3IgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQKCWNhbGxzdWIgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKG9wZXJhdG9yOiBBZGRyZXNzLCBhcHByb3ZlZDogYm9vbGVhbik6IHZvaWQKLy8KLy8KLy8gQXBwcm92ZSBhbiBvcGVyYXRvciBmb3IgYWxsIE5GVHMgZm9yIGEgdXNlcgovLwovLyBAcGFyYW0gb3BlcmF0b3IgQXBwcm92ZWQgb3BlcmF0b3IgYWRkcmVzcwovLyBAcGFyYW0gYXBwcm92ZWQgdHJ1ZSB0byBnaXZlIGFwcHJvdmFsLCBmYWxzZSB0byByZXZva2UKLy8gQHJldHVybnMKYXJjNzJfc2V0QXBwcm92YWxGb3JBbGw6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzcKCS8vIGtleTogQ29udHJvbCA9IHsgb3duZXI6IHRoaXMudHhuLnNlbmRlciwgY29udHJvbGxlcjogb3BlcmF0b3IgfQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIG9wZXJhdG9yOiBBZGRyZXNzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBrZXk6IENvbnRyb2wKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo3OQoJLy8gYXBwcm92ZWQKCWZyYW1lX2RpZyAtMiAvLyBhcHByb3ZlZDogYm9vbGVhbgoJYnogKmlmMV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo3OQoJLy8gdGhpcy5jb250cm9sQm94KGtleSkudmFsdWUgPSAnJwoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweCAvLyAiIgoJYm94X3B1dAoJYiAqaWYxX2VuZAoKKmlmMV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODAKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLmV4aXN0cwoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6ODAKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgMCAvLyBrZXk6IENvbnRyb2wKCWJveF9kZWwKCippZjFfZW5kOgoJcmV0c3ViCgovLyBtaW50KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX21pbnQ6CgkvLyB0bzogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0bykgZm9yIG1pbnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbWludChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbWludAoJaW50IDEKCXJldHVybgoKLy8gbWludCh0bzogQWRkcmVzcyk6IHZvaWQKbWludDoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjg0CgkvLyBpbmRleCA9IHRoaXMuaW5kZXgudmFsdWUKCWJ5dGUgMHg2OTZlNjQ2NTc4IC8vICJpbmRleCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gaW5kZXg6IHVpbnQyNTYKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjg2CgkvLyB0b2tlbjogVG9rZW4gPSB7CgkvLyAgICAgICBvd25lcjogdG8sCgkvLyAgICAgICB1cmk6ICdodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL0FSQ3MnIGFzIEJ5dGVzMjU2LAoJLy8gICAgICAgY29udHJvbGxlcjogQWRkcmVzcy56ZXJvQWRkcmVzcywKCS8vICAgICB9CglmcmFtZV9kaWcgLTEgLy8gdG86IEFkZHJlc3MKCWJ5dGUgMHg2ODc0NzQ3MDczM2EyZjJmNjc2OTc0Njg3NTYyMmU2MzZmNmQyZjYxNmM2NzZmNzI2MTZlNjQ2NjZmNzU2ZTY0NjE3NDY5NmY2ZTJmNDE1MjQzNzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzIgoJY29uY2F0CglnbG9iYWwgWmVyb0FkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHRva2VuOiBUb2tlbgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6OTIKCS8vIHRoaXMudG9rZW5Cb3goaW5kZXgpLnZhbHVlID0gdG9rZW4KCWZyYW1lX2RpZyAwIC8vIGluZGV4OiB1aW50MjU2CglmcmFtZV9kaWcgMSAvLyB0b2tlbjogVG9rZW4KCWJveF9wdXQKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjkzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIGluZGV4KQoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJY2FsbHN1YiB0cmFuc2ZlclRvCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo5NAoJLy8gdGhpcy5pbmRleC52YWx1ZSA9IGluZGV4ICsgMQoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgliKwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gaW5kZXggKyAxIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFyYzcyX3RvdGFsU3VwcGx5KCl1aW50MjU2CiphYmlfcm91dGVfYXJjNzJfdG90YWxTdXBwbHk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYKCWNhbGxzdWIgYXJjNzJfdG90YWxTdXBwbHkKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGFyYzcyX3RvdGFsU3VwcGx5IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG90YWxTdXBwbHkoKTogdWludDI1NgovLwovLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgTkZUcyBjdXJyZW50bHkgZGVmaW5lZCBieSB0aGlzIGNvbnRyYWN0CmFyYzcyX3RvdGFsU3VwcGx5OgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoxMDIKCS8vIHJldHVybiB0aGlzLmluZGV4LnZhbHVlOwoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2FyYzcyX3Rva2VuQnlJbmRleDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5kZXg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5kZXgpIGZvciBhcmM3Ml90b2tlbkJ5SW5kZXggbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBhcmM3Ml90b2tlbkJ5SW5kZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGFyYzcyX3Rva2VuQnlJbmRleCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX3Rva2VuQnlJbmRleChpbmRleDogdWludDI1Nik6IHVpbnQyNTYKLy8KLy8gUmV0dXJucyB0aGUgdG9rZW4gSUQgb2YgdGhlIHRva2VuIHdpdGggdGhlIGdpdmVuIGluZGV4IGFtb25nIGFsbCBORlRzIGRlZmluZWQgYnkgdGhlIGNvbnRyYWN0CmFyYzcyX3Rva2VuQnlJbmRleDoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MTEwCgkvLyByZXR1cm4gaW5kZXg7CglmcmFtZV9kaWcgLTEgLy8gaW5kZXg6IHVpbnQyNTYKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFyYzcyX293bmVyT2YodWludDI1NilhZGRyZXNzIgoJbWV0aG9kICJhcmM3Ml90b2tlblVSSSh1aW50MjU2KWJ5dGVbMjU2XSIKCW1ldGhvZCAiYXJjNzJfdHJhbnNmZXJGcm9tKGFkZHJlc3MsYWRkcmVzcyx1aW50MjU2KXZvaWQiCgltZXRob2QgImFyYzcyX2FwcHJvdmUoYWRkcmVzcyx1aW50MjU2KXZvaWQiCgltZXRob2QgImFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkIgoJbWV0aG9kICJtaW50KGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYiCgltZXRob2QgImFyYzcyX3Rva2VuQnlJbmRleCh1aW50MjU2KXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FyYzcyX293bmVyT2YgKmFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSSAqYWJpX3JvdXRlX2FyYzcyX3RyYW5zZmVyRnJvbSAqYWJpX3JvdXRlX2FyYzcyX2FwcHJvdmUgKmFiaV9yb3V0ZV9hcmM3Ml9zZXRBcHByb3ZhbEZvckFsbCAqYWJpX3JvdXRlX21pbnQgKmFiaV9yb3V0ZV9hcmM3Ml90b3RhbFN1cHBseSAqYWJpX3JvdXRlX2FyYzcyX3Rva2VuQnlJbmRleAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAzMiAxIDI1NgpieXRlY2Jsb2NrIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAweDE1MWY3Yzc1IDB4Njk2ZTY0NjU3OCAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGFyYzcyX293bmVyT2YodWludDI1NilhZGRyZXNzCiphYmlfcm91dGVfYXJjNzJfb3duZXJPZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfb3duZXJPZiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9vd25lck9mKHVpbnQyNTYpYWRkcmVzcwoJY2FsbHN1YiBhcmM3Ml9vd25lck9mCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfb3duZXJPZih0b2tlbklkOiB1aW50MjU2KTogQWRkcmVzcwovLwovLwovLyBSZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IG93bmVyIG9mIHRoZSBORlQgd2l0aCB0aGUgZ2l2ZW4gdG9rZW5JZAovLwovLyBAcGFyYW0gdG9rZW5JZCBUaGUgSUQgb2YgdGhlIE5GVAovLyBAcmV0dXJucyBUaGUgY3VycmVudCBvd25lciBvZiB0aGUgTkZUCmFyYzcyX293bmVyT2Y6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjI1CgkvLyByZXR1cm4gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS5vd25lcjsKCWZyYW1lX2RpZyAtMSAvLyB0b2tlbklkOiB1aW50MjU2CglwdXNoaW50IDAKCWludCAzMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KKmFiaV9yb3V0ZV9hcmM3Ml90b2tlblVSSToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdG9rZW5JZDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwICh0b2tlbklkKSBmb3IgYXJjNzJfdG9rZW5VUkkgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXJjNzJfdG9rZW5VUkkodWludDI1NilieXRlWzI1Nl0KCWNhbGxzdWIgYXJjNzJfdG9rZW5VUkkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90b2tlblVSSSh0b2tlbklkOiB1aW50MjU2KTogQnl0ZXMyNTYKLy8KLy8KLy8gUmV0dXJucyBhIFVSSSBwb2ludGluZyB0byB0aGUgTkZUIG1ldGFkYXRhCi8vCi8vIEBwYXJhbSB0b2tlbklkIFRoZSBJRCBvZiB0aGUgTkZUCi8vIEByZXR1cm5zIFVSSSB0byB0b2tlbiBtZXRhZGF0YQphcmM3Ml90b2tlblVSSToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6MzcKCS8vIHJldHVybiB0aGlzLnRva2VuQm94KHRva2VuSWQpLnZhbHVlLnVyaTsKCWZyYW1lX2RpZyAtMSAvLyB0b2tlbklkOiB1aW50MjU2CglpbnQgMzIgLy8gaGVhZE9mZnNldAoJaW50IDI1NgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gdHJhbnNmZXJUbyh0bzogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKdHJhbnNmZXJUbzoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NDEKCS8vIHRoaXMudG9rZW5Cb3godG9rZW5JZCkudmFsdWUub3duZXIgPSB0bwoJZnJhbWVfZGlnIC0yIC8vIHRva2VuSWQ6IHVpbnQyNTYKCXB1c2hpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX2FyYzcyX3RyYW5zZmVyRnJvbToKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG9rZW5JZCkgZm9yIGFyYzcyX3RyYW5zZmVyRnJvbSBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gdG86IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAodG8pIGZvciBhcmM3Ml90cmFuc2ZlckZyb20gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIF9mcm9tOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKF9mcm9tKSBmb3IgYXJjNzJfdHJhbnNmZXJGcm9tIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX3RyYW5zZmVyRnJvbShhZGRyZXNzLGFkZHJlc3MsdWludDI1Nil2b2lkCgljYWxsc3ViIGFyYzcyX3RyYW5zZmVyRnJvbQoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdHJhbnNmZXJGcm9tKF9mcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzcywgdG9rZW5JZDogdWludDI1Nik6IHZvaWQKLy8KLy8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiBhbiBORlQKYXJjNzJfdHJhbnNmZXJGcm9tOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NDgKCS8vIHRva2VuID0gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIHRva2VuSWQ6IHVpbnQyNTYKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdG9rZW4KCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjUwCgkvLyBrZXk6IENvbnRyb2wgPSB7IG93bmVyOiB0aGlzLnR4bi5zZW5kZXIsIGNvbnRyb2xsZXI6IF9mcm9tIH0KCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBfZnJvbTogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8ga2V5OiBDb250cm9sCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NTIKCS8vIHRoaXMudHhuLnNlbmRlciA9PT0gX2Zyb20gfHwgdGhpcy50eG4uc2VuZGVyID09PSB0b2tlbi5jb250cm9sbGVyIHx8IHRoaXMuY29udHJvbEJveChrZXkpLmV4aXN0cwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIF9mcm9tOiBBZGRyZXNzCgk9PQoJZHVwCglibnogKnNraXBfb3IwCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJcHVzaGludCAyODggLy8gaGVhZE9mZnNldAoJaW50IDMyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxIC8vIGtleTogQ29udHJvbAoJYm94X2xlbgoJc3dhcAoJcG9wCgl8fAoKKnNraXBfb3IxOgoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjUzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIHRva2VuSWQpCglmcmFtZV9kaWcgLTMgLy8gdG9rZW5JZDogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIHRvOiBBZGRyZXNzCgljYWxsc3ViIHRyYW5zZmVyVG8KCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIFRyYW5zZmVyIG5vdCBhdXRob3JpemVkCgllcnIKCippZjBfZW5kOgoJcmV0c3ViCgovLyBhcmM3Ml9hcHByb3ZlKGFkZHJlc3MsdWludDI1Nil2b2lkCiphYmlfcm91dGVfYXJjNzJfYXBwcm92ZToKCS8vIHRva2VuSWQ6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG9rZW5JZCkgZm9yIGFyYzcyX2FwcHJvdmUgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGFwcHJvdmVkOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFwcHJvdmVkKSBmb3IgYXJjNzJfYXBwcm92ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml9hcHByb3ZlKGFkZHJlc3MsdWludDI1Nil2b2lkCgljYWxsc3ViIGFyYzcyX2FwcHJvdmUKCWludCAxCglyZXR1cm4KCi8vIGFyYzcyX2FwcHJvdmUoYXBwcm92ZWQ6IEFkZHJlc3MsIHRva2VuSWQ6IHVpbnQyNTYpOiB2b2lkCi8vCi8vCi8vIEFwcHJvdmUgYSBjb250cm9sbGVyIGZvciBhIHNpbmdsZSBORlQKLy8KLy8gQHBhcmFtIGFwcHJvdmVkIEFwcHJvdmVkIGNvbnRyb2xsZXIgYWRkcmVzcwovLyBAcGFyYW0gdG9rZW5JZCBUaGUgSUQgb2YgdGhlIE5GVAphcmM3Ml9hcHByb3ZlOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo2NQoJLy8gdGhpcy50b2tlbkJveCh0b2tlbklkKS52YWx1ZS5jb250cm9sbGVyID0gYXBwcm92ZWQKCWZyYW1lX2RpZyAtMiAvLyB0b2tlbklkOiB1aW50MjU2CglwdXNoaW50IDI4OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gYXBwcm92ZWQ6IEFkZHJlc3MKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkCiphYmlfcm91dGVfYXJjNzJfc2V0QXBwcm92YWxGb3JBbGw6CgkvLyBhcHByb3ZlZDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFwcHJvdmVkKSBmb3IgYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJcHVzaGludCAwCglnZXRiaXQKCgkvLyBvcGVyYXRvcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChvcGVyYXRvcikgZm9yIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsKGFkZHJlc3MsYm9vbCl2b2lkCgljYWxsc3ViIGFyYzcyX3NldEFwcHJvdmFsRm9yQWxsCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml9zZXRBcHByb3ZhbEZvckFsbChvcGVyYXRvcjogQWRkcmVzcywgYXBwcm92ZWQ6IGJvb2xlYW4pOiB2b2lkCi8vCi8vCi8vIEFwcHJvdmUgYW4gb3BlcmF0b3IgZm9yIGFsbCBORlRzIGZvciBhIHVzZXIKLy8KLy8gQHBhcmFtIG9wZXJhdG9yIEFwcHJvdmVkIG9wZXJhdG9yIGFkZHJlc3MKLy8gQHBhcmFtIGFwcHJvdmVkIHRydWUgdG8gZ2l2ZSBhcHByb3ZhbCwgZmFsc2UgdG8gcmV2b2tlCi8vIEByZXR1cm5zCmFyYzcyX3NldEFwcHJvdmFsRm9yQWxsOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjc3CgkvLyBrZXk6IENvbnRyb2wgPSB7IG93bmVyOiB0aGlzLnR4bi5zZW5kZXIsIGNvbnRyb2xsZXI6IG9wZXJhdG9yIH0KCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBvcGVyYXRvcjogQWRkcmVzcwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8ga2V5OiBDb250cm9sCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzkKCS8vIGFwcHJvdmVkCglmcmFtZV9kaWcgLTIgLy8gYXBwcm92ZWQ6IGJvb2xlYW4KCWJ6ICppZjFfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6NzkKCS8vIHRoaXMuY29udHJvbEJveChrZXkpLnZhbHVlID0gJycKCWZyYW1lX2RpZyAwIC8vIGtleTogQ29udHJvbAoJZHVwCglib3hfZGVsCglwb3AKCWJ5dGUgMHggLy8gIiIKCWJveF9wdXQKCWIgKmlmMV9lbmQKCippZjFfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjgwCgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS5leGlzdHMKCWZyYW1lX2RpZyAwIC8vIGtleTogQ29udHJvbAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYxX2VuZAoKCS8vICppZjFfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjgwCgkvLyB0aGlzLmNvbnRyb2xCb3goa2V5KS5kZWxldGUoKQoJZnJhbWVfZGlnIDAgLy8ga2V5OiBDb250cm9sCglib3hfZGVsCgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gbWludChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9taW50OgoJLy8gdG86IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAodG8pIGZvciBtaW50IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbnQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIG1pbnQKCWludCAxCglyZXR1cm4KCi8vIG1pbnQodG86IEFkZHJlc3MpOiB2b2lkCm1pbnQ6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo4NAoJLy8gaW5kZXggPSB0aGlzLmluZGV4LnZhbHVlCglieXRlIDB4Njk2ZTY0NjU3OCAvLyAiaW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIGluZGV4OiB1aW50MjU2CgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo4NgoJLy8gdG9rZW46IFRva2VuID0gewoJLy8gICAgICAgb3duZXI6IHRvLAoJLy8gICAgICAgdXJpOiAnaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzJyBhcyBCeXRlczI1NiwKCS8vICAgICAgIGNvbnRyb2xsZXI6IEFkZHJlc3MuemVyb0FkZHJlc3MsCgkvLyAgICAgfQoJZnJhbWVfZGlnIC0xIC8vIHRvOiBBZGRyZXNzCglwdXNoYnl0ZXMgMHg2ODc0NzQ3MDczM2EyZjJmNjc2OTc0Njg3NTYyMmU2MzZmNmQyZjYxNmM2NzZmNzI2MTZlNjQ2NjZmNzU2ZTY0NjE3NDY5NmY2ZTJmNDE1MjQzNzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzIgoJY29uY2F0CglnbG9iYWwgWmVyb0FkZHJlc3MKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHRva2VuOiBUb2tlbgoKCS8vIGV4YW1wbGVzL2FyYzcyL2FyYzcyLmFsZ28udHM6OTIKCS8vIHRoaXMudG9rZW5Cb3goaW5kZXgpLnZhbHVlID0gdG9rZW4KCWZyYW1lX2RpZyAwIC8vIGluZGV4OiB1aW50MjU2CglmcmFtZV9kaWcgMSAvLyB0b2tlbjogVG9rZW4KCWJveF9wdXQKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjkzCgkvLyB0aGlzLnRyYW5zZmVyVG8odG8sIGluZGV4KQoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMSAvLyB0bzogQWRkcmVzcwoJY2FsbHN1YiB0cmFuc2ZlclRvCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czo5NAoJLy8gdGhpcy5pbmRleC52YWx1ZSA9IGluZGV4ICsgMQoJYnl0ZSAweDY5NmU2NDY1NzggLy8gImluZGV4IgoJZnJhbWVfZGlnIDAgLy8gaW5kZXg6IHVpbnQyNTYKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCWIrCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBpbmRleCArIDEgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYXJjNzJfdG90YWxTdXBwbHkoKXVpbnQyNTYKKmFiaV9yb3V0ZV9hcmM3Ml90b3RhbFN1cHBseToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NgoJY2FsbHN1YiBhcmM3Ml90b3RhbFN1cHBseQoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYXJjNzJfdG90YWxTdXBwbHkgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcmM3Ml90b3RhbFN1cHBseSgpOiB1aW50MjU2Ci8vCi8vIFJldHVybnMgdGhlIG51bWJlciBvZiBORlRzIGN1cnJlbnRseSBkZWZpbmVkIGJ5IHRoaXMgY29udHJhY3QKYXJjNzJfdG90YWxTdXBwbHk6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9hcmM3Mi9hcmM3Mi5hbGdvLnRzOjEwMgoJLy8gcmV0dXJuIHRoaXMuaW5kZXgudmFsdWU7CglieXRlIDB4Njk2ZTY0NjU3OCAvLyAiaW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBhcmM3Ml90b2tlbkJ5SW5kZXgodWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYXJjNzJfdG9rZW5CeUluZGV4OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbmRleDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChpbmRleCkgZm9yIGFyYzcyX3Rva2VuQnlJbmRleCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhcmM3Ml90b2tlbkJ5SW5kZXgodWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFyYzcyX3Rva2VuQnlJbmRleAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYXJjNzJfdG9rZW5CeUluZGV4IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJjNzJfdG9rZW5CeUluZGV4KGluZGV4OiB1aW50MjU2KTogdWludDI1NgovLwovLyBSZXR1cm5zIHRoZSB0b2tlbiBJRCBvZiB0aGUgdG9rZW4gd2l0aCB0aGUgZ2l2ZW4gaW5kZXggYW1vbmcgYWxsIE5GVHMgZGVmaW5lZCBieSB0aGUgY29udHJhY3QKYXJjNzJfdG9rZW5CeUluZGV4OgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvYXJjNzIvYXJjNzIuYWxnby50czoxMTAKCS8vIHJldHVybiBpbmRleDsKCWZyYW1lX2RpZyAtMSAvLyBpbmRleDogdWludDI1NgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDc5MDk2YTE0IC8vIG1ldGhvZCAiYXJjNzJfb3duZXJPZih1aW50MjU2KWFkZHJlc3MiCglwdXNoYnl0ZXMgMHhjM2MxZmMwMCAvLyBtZXRob2QgImFyYzcyX3Rva2VuVVJJKHVpbnQyNTYpYnl0ZVsyNTZdIgoJcHVzaGJ5dGVzIDB4ZjJmMTk0YTAgLy8gbWV0aG9kICJhcmM3Ml90cmFuc2ZlckZyb20oYWRkcmVzcyxhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCXB1c2hieXRlcyAweGI0ZWRiYTRlIC8vIG1ldGhvZCAiYXJjNzJfYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpdm9pZCIKCXB1c2hieXRlcyAweDcxMzQzOTVmIC8vIG1ldGhvZCAiYXJjNzJfc2V0QXBwcm92YWxGb3JBbGwoYWRkcmVzcyxib29sKXZvaWQiCglwdXNoYnl0ZXMgMHhhYzRjZmFkZiAvLyBtZXRob2QgIm1pbnQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NjRkNzJhN2EgLy8gbWV0aG9kICJhcmM3Ml90b3RhbFN1cHBseSgpdWludDI1NiIKCXB1c2hieXRlcyAweDZkOWJmZDI3IC8vIG1ldGhvZCAiYXJjNzJfdG9rZW5CeUluZGV4KHVpbnQyNTYpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJjNzJfb3duZXJPZiAqYWJpX3JvdXRlX2FyYzcyX3Rva2VuVVJJICphYmlfcm91dGVfYXJjNzJfdHJhbnNmZXJGcm9tICphYmlfcm91dGVfYXJjNzJfYXBwcm92ZSAqYWJpX3JvdXRlX2FyYzcyX3NldEFwcHJvdmFsRm9yQWxsICphYmlfcm91dGVfbWludCAqYWJpX3JvdXRlX2FyYzcyX3RvdGFsU3VwcGx5ICphYmlfcm91dGVfYXJjNzJfdG9rZW5CeUluZGV4CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAFIAGAAgCgAiYEBBUffHUABWluZGV4IP//////////////////////////////////////////MRgUgQYLMRkIjQwCpgAAAAAAAAAAAAACmAAAAAAAAAAAAAAAKDYaAUkVIhJEiAAEULAjQ4oBAYv/JSK6iSg2GgFJFSISRIgABFCwI0OKAQGL/yIkuomKAgCL/iWL/7uJNhoDSRUiEkQ2GgJJFSISRDYaAUkVIhJEiAACI0OKAwApSYv9jAAxAIv/UIwBMQCL/xJJQAAKMQCL/SEEIroSEUlAAAaLAb1MSBFBAAqL/Yv+iP+iQgABAIk2GgJJFSISRDYaAUkVIhJEiAACI0OKAgCL/iEEi/+7iTYaAkkVIxJEJVM2GgFJFSISRIgAAiNDigIAKTEAi/9QjACL/kEACosASbxIKb9CAAuLAL1MSEEAA4sAvIk2GgFJFSISRIgAAiNDigEAKUkqZIwAi/+AgAJodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL0FSQ3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUDIDUIwBiwCLAb+LAIv/iP4TKosAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaBJkyQORCusSRVJIglMUmeJKIgAEkmTJA5EK6xJFUkiCUxSULAjQ4oAASpkiSg2GgFJFSISRIgAEkmTJA5EK6xJFUkiCUxSULAjQ4oBAYv/iSNDgAS4RHs2NhoAjgH/8QCABHkJahSABMPB/ACABPLxlKCABLTtuk6ABHE0OV+ABKxM+t+ABGTXKnqABG2b/Sc2GgCOCP0W/S/9Uv2r/cv+CP9r/4cA", + "approval": "CiADIAGAAiYEIP//////////////////////////////////////////BBUffHUFaW5kZXgAMRgUgQYLMRkIjQwDWgAAAAAAAAAAAAADTAAAAAAAAAAAAAAAgAQVH3x1NhoBSRWBIBJEiAAFULCBAUOKAQGL/4EAgSC6iYAEFR98dTYaAUkVgSASRIgABVCwgQFDigEBi/+BIIGAArqJigIAi/6BAIv/u4k2GgNJFYEgEkQ2GgJJFYEgEkQ2GgFJFYEgEkSIAAOBAUOKAwCAAEmL/YwAMQCL/1CMATEAi/8SSUAADDEAi/2BoAKBILoSEUlAAAaLAb1MSBFBAAqL/Yv+iP+aQgABAIk2GgJJFYEgEkQ2GgFJFYEgEkSIAAOBAUOKAgCL/oGgAov/u4k2GgJJFYEBEkSBAFM2GgFJFYEgEkSIAAOBAUOKAgCAADEAi/9QjACL/kEAC4sASbxIgAC/QgALiwC9TEhBAAOLALyJNhoBSRWBIBJEiAADgQFDigEAgABJgAVpbmRleGSMAIv/gIACaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9BUkNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAyA1CMAYsAiwG/iwCL/4j9+IAFaW5kZXiLAIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgSZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJniYAEFR98dYgAN0mTgYACDkSAIP//////////////////////////////////////////rEkVSYEgCUxSULCBAUOKAAGABWluZGV4ZImABBUffHU2GgFJFYEgEkSIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigEBi/+JgQFDgAS4RHs2NhoAjgH/8ACABHkJahSABMPB/ACABPLxlKCABLTtuk6ABHE0OV+ABKxM+t+ABGTXKnqABG2b/Sc2GgCOCPxi/IT8sv0S/Tb9ef8P/1sA", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/arc72/artifacts/ARC72.src_map.json b/examples/arc72/artifacts/ARC72.src_map.json index 46b6be518..b9533d6a0 100644 --- a/examples/arc72/artifacts/ARC72.src_map.json +++ b/examples/arc72/artifacts/ARC72.src_map.json @@ -1,15 +1,27 @@ [ { "teal": 1, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 0, 1, 2, 3, 4, 5, - 6, + 6 + ] + }, + { + "teal": 3, + "source": "examples/arc72/arc72.algo.ts:9", + "pc": [ 7, 8, 9, @@ -56,61 +68,61 @@ 50, 51, 52, - 53, + 53 + ] + }, + { + "teal": 15, + "source": "examples/arc72/arc72.algo.ts:9", + "pc": [ 54, - 55, + 55 + ] + }, + { + "teal": 16, + "source": "examples/arc72/arc72.algo.ts:9", + "pc": [ 56 ] }, { - "teal": 13, - "source": 9, + "teal": 17, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ 57, 58 ] }, { - "teal": 14, - "source": 9, + "teal": 18, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ 59 ] }, { - "teal": 15, - "source": 9, + "teal": 19, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ 60, 61 ] }, { - "teal": 16, - "source": 9, + "teal": 20, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ 62 ] }, { - "teal": 17, - "source": 9, + "teal": 21, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ 63, - 64 - ] - }, - { - "teal": 18, - "source": 9, - "pc": [ - 65 - ] - }, - { - "teal": 19, - "source": 9, - "pc": [ + 64, + 65, 66, 67, 68, @@ -133,1394 +145,1394 @@ 85, 86, 87, - 88, - 89, - 90, - 91 + 88 ] }, { - "teal": 23, - "source": 9, + "teal": 25, + "source": "examples/arc72/arc72.algo.ts:9", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 92 - ] - }, - { - "teal": 28, - "source": 23, - "pc": [ - 93 + 89 ] }, { - "teal": 31, - "source": 24, + "teal": 30, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ + 90, + 91, + 92, + 93, 94, - 95, - 96 - ] - }, - { - "teal": 32, - "source": 24, - "pc": [ - 97 + 95 ] }, { "teal": 33, - "source": 24, + "source": "examples/arc72/arc72.algo.ts:24", "pc": [ + 96, + 97, 98 ] }, { "teal": 34, - "source": 24, + "source": "examples/arc72/arc72.algo.ts:24", "pc": [ 99 ] }, { "teal": 35, - "source": 24, + "source": "examples/arc72/arc72.algo.ts:24", "pc": [ 100 ] }, { - "teal": 38, - "source": 24, - "errorMessage": "argument 0 (tokenId) for arc72_ownerOf must be a uint256", + "teal": 36, + "source": "examples/arc72/arc72.algo.ts:24", "pc": [ - 101 + 101, + 102 ] }, { - "teal": 41, - "source": 23, + "teal": 37, + "source": "examples/arc72/arc72.algo.ts:24", "pc": [ - 102, - 103, - 104 + 103 ] }, { - "teal": 42, - "source": 23, + "teal": 40, + "source": "examples/arc72/arc72.algo.ts:24", + "errorMessage": "argument 0 (tokenId) for arc72_ownerOf must be a uint256", "pc": [ - 105 + 104 ] }, { "teal": 43, - "source": 23, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 106 + 105, + 106, + 107 ] }, { "teal": 44, - "source": 23, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 107 + 108 ] }, { "teal": 45, - "source": 23, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 108 + 109 ] }, { - "teal": 55, - "source": 23, + "teal": 46, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 109, 110, 111 ] }, { - "teal": 59, - "source": 25, + "teal": 47, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 112, - 113 + 112 ] }, { - "teal": 60, - "source": 25, + "teal": 57, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 114 + 113, + 114, + 115 ] }, { "teal": 61, - "source": 25, + "source": "examples/arc72/arc72.algo.ts:25", "pc": [ - 115 + 116, + 117 ] }, { "teal": 62, - "source": 25, + "source": "examples/arc72/arc72.algo.ts:25", "pc": [ - 116 + 118, + 119 ] }, { "teal": 63, - "source": 23, + "source": "examples/arc72/arc72.algo.ts:25", "pc": [ - 117 + 120, + 121 ] }, { - "teal": 68, - "source": 35, + "teal": 64, + "source": "examples/arc72/arc72.algo.ts:25", "pc": [ - 118 + 122 ] }, { - "teal": 71, - "source": 36, + "teal": 65, + "source": "examples/arc72/arc72.algo.ts:23", "pc": [ - 119, - 120, - 121 + 123 ] }, { - "teal": 72, - "source": 36, + "teal": 70, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 122 + 124, + 125, + 126, + 127, + 128, + 129 ] }, { "teal": 73, - "source": 36, + "source": "examples/arc72/arc72.algo.ts:36", "pc": [ - 123 + 130, + 131, + 132 ] }, { "teal": 74, - "source": 36, + "source": "examples/arc72/arc72.algo.ts:36", "pc": [ - 124 + 133 ] }, { "teal": 75, - "source": 36, + "source": "examples/arc72/arc72.algo.ts:36", "pc": [ - 125 + 134 ] }, { - "teal": 78, - "source": 36, - "errorMessage": "argument 0 (tokenId) for arc72_tokenURI must be a uint256", + "teal": 76, + "source": "examples/arc72/arc72.algo.ts:36", "pc": [ - 126 + 135, + 136 ] }, { - "teal": 81, - "source": 35, + "teal": 77, + "source": "examples/arc72/arc72.algo.ts:36", "pc": [ - 127, - 128, - 129 + 137 ] }, { - "teal": 82, - "source": 35, + "teal": 80, + "source": "examples/arc72/arc72.algo.ts:36", + "errorMessage": "argument 0 (tokenId) for arc72_tokenURI must be a uint256", "pc": [ - 130 + 138 ] }, { "teal": 83, - "source": 35, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 131 + 139, + 140, + 141 ] }, { "teal": 84, - "source": 35, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 132 + 142 ] }, { "teal": 85, - "source": 35, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 133 + 143 ] }, { - "teal": 95, - "source": 35, + "teal": 86, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 134, - 135, - 136 + 144, + 145 ] }, { - "teal": 99, - "source": 37, + "teal": 87, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 137, - 138 + 146 ] }, { - "teal": 100, - "source": 37, + "teal": 97, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 139 + 147, + 148, + 149 ] }, { "teal": 101, - "source": 37, + "source": "examples/arc72/arc72.algo.ts:37", "pc": [ - 140 + 150, + 151 ] }, { "teal": 102, - "source": 37, + "source": "examples/arc72/arc72.algo.ts:37", "pc": [ - 141 + 152, + 153 ] }, { "teal": 103, - "source": 35, + "source": "examples/arc72/arc72.algo.ts:37", "pc": [ - 142 + 154, + 155, + 156 ] }, { - "teal": 107, - "source": 40, + "teal": 104, + "source": "examples/arc72/arc72.algo.ts:37", "pc": [ - 143, - 144, - 145 + 157 ] }, { - "teal": 111, - "source": 41, + "teal": 105, + "source": "examples/arc72/arc72.algo.ts:35", "pc": [ - 146, - 147 + 158 ] }, { - "teal": 112, - "source": 41, + "teal": 109, + "source": "examples/arc72/arc72.algo.ts:40", "pc": [ - 148 + 159, + 160, + 161 ] }, { "teal": 113, - "source": 41, + "source": "examples/arc72/arc72.algo.ts:41", "pc": [ - 149, - 150 + 162, + 163 ] }, { "teal": 114, - "source": 41, + "source": "examples/arc72/arc72.algo.ts:41", "pc": [ - 151 + 164, + 165 ] }, { "teal": 115, - "source": 40, + "source": "examples/arc72/arc72.algo.ts:41", "pc": [ - 152 + 166, + 167 ] }, { - "teal": 120, - "source": 47, + "teal": 116, + "source": "examples/arc72/arc72.algo.ts:41", "pc": [ - 153, - 154, - 155 + 168 ] }, { - "teal": 121, - "source": 47, + "teal": 117, + "source": "examples/arc72/arc72.algo.ts:40", "pc": [ - 156 + 169 ] }, { "teal": 122, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 157 + 170, + 171, + 172 ] }, { "teal": 123, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 158 + 173 ] }, { "teal": 124, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 159 + 174 ] }, { - "teal": 127, - "source": 47, - "errorMessage": "argument 0 (tokenId) for arc72_transferFrom must be a uint256", + "teal": 125, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 160 + 175, + 176 ] }, { - "teal": 130, - "source": 47, + "teal": 126, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 161, - 162, - 163 + 177 ] }, { - "teal": 131, - "source": 47, + "teal": 129, + "source": "examples/arc72/arc72.algo.ts:47", + "errorMessage": "argument 0 (tokenId) for arc72_transferFrom must be a uint256", "pc": [ - 164 + 178 ] }, { "teal": 132, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 165 + 179, + 180, + 181 ] }, { "teal": 133, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 166 + 182 ] }, { "teal": 134, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 167 + 183 ] }, { - "teal": 137, - "source": 47, - "errorMessage": "argument 1 (to) for arc72_transferFrom must be a address", + "teal": 135, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 168 + 184, + 185 ] }, { - "teal": 140, - "source": 47, + "teal": 136, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 169, - 170, - 171 + 186 ] }, { - "teal": 141, - "source": 47, + "teal": 139, + "source": "examples/arc72/arc72.algo.ts:47", + "errorMessage": "argument 1 (to) for arc72_transferFrom must be a address", "pc": [ - 172 + 187 ] }, { "teal": 142, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 173 + 188, + 189, + 190 ] }, { "teal": 143, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 174 + 191 ] }, { "teal": 144, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 175 + 192 ] }, { - "teal": 147, - "source": 47, - "errorMessage": "argument 2 (_from) for arc72_transferFrom must be a address", + "teal": 145, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 176 + 193, + 194 ] }, { - "teal": 150, - "source": 47, + "teal": 146, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 177, - 178, - 179 + 195 ] }, { - "teal": 151, - "source": 47, + "teal": 149, + "source": "examples/arc72/arc72.algo.ts:47", + "errorMessage": "argument 2 (_from) for arc72_transferFrom must be a address", "pc": [ - 180 + 196 ] }, { "teal": 152, - "source": 47, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 181 + 197, + 198, + 199 ] }, { - "teal": 158, - "source": 47, + "teal": 153, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 182, - 183, - 184 + 200, + 201 ] }, { - "teal": 161, - "source": 47, + "teal": 154, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 185 + 202 ] }, { - "teal": 162, - "source": 47, + "teal": 160, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 186 + 203, + 204, + 205 ] }, { - "teal": 166, - "source": 48, + "teal": 163, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 187, - 188 + 206, + 207 ] }, { - "teal": 167, - "source": 48, + "teal": 164, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 189, - 190 + 208 ] }, { - "teal": 171, - "source": 50, + "teal": 168, + "source": "examples/arc72/arc72.algo.ts:48", "pc": [ - 191, - 192 + 209, + 210 ] }, { - "teal": 172, - "source": 50, + "teal": 169, + "source": "examples/arc72/arc72.algo.ts:48", "pc": [ - 193, - 194 + 211, + 212 ] }, { "teal": 173, - "source": 50, + "source": "examples/arc72/arc72.algo.ts:50", "pc": [ - 195 + 213, + 214 ] }, { "teal": 174, - "source": 50, + "source": "examples/arc72/arc72.algo.ts:50", "pc": [ - 196, - 197 + 215, + 216 ] }, { - "teal": 179, - "source": 52, + "teal": 175, + "source": "examples/arc72/arc72.algo.ts:50", "pc": [ - 198, - 199 + 217 ] }, { - "teal": 180, - "source": 52, + "teal": 176, + "source": "examples/arc72/arc72.algo.ts:50", "pc": [ - 200, - 201 + 218, + 219 ] }, { "teal": 181, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 202 + 220, + 221 ] }, { "teal": 182, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 203 + 222, + 223 ] }, { "teal": 183, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 204, - 205, - 206 + 224 ] }, { "teal": 184, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 207, - 208 + 225 ] }, { "teal": 185, - "source": 48, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 209, - 210 + 226, + 227, + 228 ] }, { "teal": 186, - "source": 48, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 211, - 212 + 229, + 230 ] }, { "teal": 187, - "source": 48, + "source": "examples/arc72/arc72.algo.ts:48", "pc": [ - 213 + 231, + 232 ] }, { "teal": 188, - "source": 48, + "source": "examples/arc72/arc72.algo.ts:48", "pc": [ - 214 + 233, + 234, + 235 ] }, { "teal": 189, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:48", "pc": [ - 215 + 236, + 237 ] }, { "teal": 190, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:48", "pc": [ - 216 + 238 ] }, { - "teal": 193, - "source": 52, + "teal": 191, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 217 + 239 ] }, { - "teal": 194, - "source": 52, + "teal": 192, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 218, - 219, - 220 + 240 ] }, { "teal": 195, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 221, - 222 + 241 ] }, { "teal": 196, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 223 + 242, + 243, + 244 ] }, { "teal": 197, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 224 + 245, + 246 ] }, { "teal": 198, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 225 + 247 ] }, { "teal": 199, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 226 + 248 ] }, { - "teal": 202, - "source": 52, + "teal": 200, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 227, - 228, - 229 + 249 ] }, { - "teal": 207, - "source": 53, + "teal": 201, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 230, - 231 + 250 ] }, { - "teal": 208, - "source": 53, + "teal": 204, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 232, - 233 + 251, + 252, + 253 ] }, { "teal": 209, - "source": 53, + "source": "examples/arc72/arc72.algo.ts:53", "pc": [ - 234, - 235, - 236 + 254, + 255 ] }, { "teal": 210, - "source": 52, + "source": "examples/arc72/arc72.algo.ts:53", "pc": [ - 237, - 238, - 239 + 256, + 257 ] }, { - "teal": 214, - "source": 54, - "errorMessage": "Transfer not authorized", + "teal": 211, + "source": "examples/arc72/arc72.algo.ts:53", "pc": [ - 240 + 258, + 259, + 260 ] }, { - "teal": 217, - "source": 47, + "teal": 212, + "source": "examples/arc72/arc72.algo.ts:52", "pc": [ - 241 + 261, + 262, + 263 ] }, { - "teal": 222, - "source": 64, + "teal": 216, + "source": "examples/arc72/arc72.algo.ts:54", + "errorMessage": "Transfer not authorized", "pc": [ - 242, - 243, - 244 + 264 ] }, { - "teal": 223, - "source": 64, + "teal": 219, + "source": "examples/arc72/arc72.algo.ts:47", "pc": [ - 245 + 265 ] }, { "teal": 224, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 246 + 266, + 267, + 268 ] }, { "teal": 225, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 247 + 269 ] }, { "teal": 226, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 248 + 270 ] }, { - "teal": 229, - "source": 64, - "errorMessage": "argument 0 (tokenId) for arc72_approve must be a uint256", + "teal": 227, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 249 + 271, + 272 ] }, { - "teal": 232, - "source": 64, + "teal": 228, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 250, - 251, - 252 + 273 ] }, { - "teal": 233, - "source": 64, + "teal": 231, + "source": "examples/arc72/arc72.algo.ts:64", + "errorMessage": "argument 0 (tokenId) for arc72_approve must be a uint256", "pc": [ - 253 + 274 ] }, { "teal": 234, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 254 + 275, + 276, + 277 ] }, { "teal": 235, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 255 + 278 ] }, { "teal": 236, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 256 + 279 ] }, { - "teal": 239, - "source": 64, - "errorMessage": "argument 1 (approved) for arc72_approve must be a address", + "teal": 237, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 257 + 280, + 281 ] }, { - "teal": 242, - "source": 64, + "teal": 238, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 258, - 259, - 260 + 282 ] }, { - "teal": 243, - "source": 64, + "teal": 241, + "source": "examples/arc72/arc72.algo.ts:64", + "errorMessage": "argument 1 (approved) for arc72_approve must be a address", "pc": [ - 261 + 283 ] }, { "teal": 244, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 262 + 284, + 285, + 286 ] }, { - "teal": 254, - "source": 64, + "teal": 245, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 263, - 264, - 265 + 287, + 288 ] }, { - "teal": 258, - "source": 65, + "teal": 246, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 266, - 267 + 289 ] }, { - "teal": 259, - "source": 65, + "teal": 256, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 268, - 269 + 290, + 291, + 292 ] }, { "teal": 260, - "source": 65, + "source": "examples/arc72/arc72.algo.ts:65", "pc": [ - 270, - 271 + 293, + 294 ] }, { "teal": 261, - "source": 65, + "source": "examples/arc72/arc72.algo.ts:65", "pc": [ - 272 + 295, + 296, + 297 ] }, { "teal": 262, - "source": 64, + "source": "examples/arc72/arc72.algo.ts:65", "pc": [ - 273 + 298, + 299 ] }, { - "teal": 267, - "source": 76, + "teal": 263, + "source": "examples/arc72/arc72.algo.ts:65", "pc": [ - 274, - 275, - 276 + 300 ] }, { - "teal": 268, - "source": 76, + "teal": 264, + "source": "examples/arc72/arc72.algo.ts:64", "pc": [ - 277 + 301 ] }, { "teal": 269, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 278 + 302, + 303, + 304 ] }, { "teal": 270, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 279 + 305 ] }, { "teal": 271, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 280 + 306 ] }, { - "teal": 274, - "source": 76, - "errorMessage": "argument 0 (approved) for arc72_setApprovalForAll must be a bool", + "teal": 272, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 281 + 307, + 308 ] }, { - "teal": 275, - "source": 76, + "teal": 273, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 282 + 309 ] }, { "teal": 276, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", + "errorMessage": "argument 0 (approved) for arc72_setApprovalForAll must be a bool", "pc": [ - 283 + 310 ] }, { - "teal": 279, - "source": 76, + "teal": 277, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 284, - 285, - 286 + 311, + 312 ] }, { - "teal": 280, - "source": 76, + "teal": 278, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 287 + 313 ] }, { "teal": 281, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 288 + 314, + 315, + 316 ] }, { "teal": 282, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 289 + 317 ] }, { "teal": 283, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 290 + 318 ] }, { - "teal": 286, - "source": 76, - "errorMessage": "argument 1 (operator) for arc72_setApprovalForAll must be a address", + "teal": 284, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 291 + 319, + 320 ] }, { - "teal": 289, - "source": 76, + "teal": 285, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 292, - 293, - 294 + 321 ] }, { - "teal": 290, - "source": 76, + "teal": 288, + "source": "examples/arc72/arc72.algo.ts:76", + "errorMessage": "argument 1 (operator) for arc72_setApprovalForAll must be a address", "pc": [ - 295 + 322 ] }, { "teal": 291, - "source": 76, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 296 + 323, + 324, + 325 ] }, { - "teal": 302, - "source": 76, + "teal": 292, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 297, - 298, - 299 + 326, + 327 ] }, { - "teal": 305, - "source": 76, + "teal": 293, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 300 + 328 ] }, { - "teal": 309, - "source": 77, + "teal": 304, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 301, - 302 + 329, + 330, + 331 ] }, { - "teal": 310, - "source": 77, + "teal": 307, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 303, - 304 + 332, + 333 ] }, { "teal": 311, - "source": 77, + "source": "examples/arc72/arc72.algo.ts:77", "pc": [ - 305 + 334, + 335 ] }, { "teal": 312, - "source": 77, + "source": "examples/arc72/arc72.algo.ts:77", "pc": [ - 306, - 307 + 336, + 337 ] }, { - "teal": 317, - "source": 79, + "teal": 313, + "source": "examples/arc72/arc72.algo.ts:77", "pc": [ - 308, - 309 + 338 ] }, { - "teal": 318, - "source": 79, + "teal": 314, + "source": "examples/arc72/arc72.algo.ts:77", "pc": [ - 310, - 311, - 312 + 339, + 340 ] }, { - "teal": 323, - "source": 79, + "teal": 319, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 313, - 314 + 341, + 342 ] }, { - "teal": 324, - "source": 79, + "teal": 320, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 315 + 343, + 344, + 345 ] }, { "teal": 325, - "source": 79, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 316 + 346, + 347 ] }, { "teal": 326, - "source": 79, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 317 + 348 ] }, { "teal": 327, - "source": 79, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 318 + 349 ] }, { "teal": 328, - "source": 79, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 319 + 350 ] }, { "teal": 329, - "source": 79, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 320, - 321, - 322 + 351, + 352 ] }, { - "teal": 334, - "source": 80, + "teal": 330, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 323, - 324 + 353 ] }, { - "teal": 335, - "source": 80, + "teal": 331, + "source": "examples/arc72/arc72.algo.ts:79", "pc": [ - 325 + 354, + 355, + 356 ] }, { "teal": 336, - "source": 80, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 326 + 357, + 358 ] }, { "teal": 337, - "source": 80, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 327 + 359 ] }, { "teal": 338, - "source": 80, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 328, - 329, - 330 + 360 ] }, { - "teal": 343, - "source": 80, + "teal": 339, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 331, - 332 + 361 ] }, { - "teal": 344, - "source": 80, + "teal": 340, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 333 + 362, + 363, + 364 ] }, { - "teal": 347, - "source": 76, + "teal": 345, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 334 + 365, + 366 ] }, { - "teal": 352, - "source": 83, + "teal": 346, + "source": "examples/arc72/arc72.algo.ts:80", "pc": [ - 335, - 336, - 337 + 367 ] }, { - "teal": 353, - "source": 83, + "teal": 349, + "source": "examples/arc72/arc72.algo.ts:76", "pc": [ - 338 + 368 ] }, { "teal": 354, - "source": 83, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 339 + 369, + 370, + 371 ] }, { "teal": 355, - "source": 83, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 340 + 372 ] }, { "teal": 356, - "source": 83, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 341 + 373 ] }, { - "teal": 359, - "source": 83, - "errorMessage": "argument 0 (to) for mint must be a address", + "teal": 357, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 342 + 374, + 375 ] }, { - "teal": 362, - "source": 83, + "teal": 358, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 343, - 344, - 345 + 376 ] }, { - "teal": 363, - "source": 83, + "teal": 361, + "source": "examples/arc72/arc72.algo.ts:83", + "errorMessage": "argument 0 (to) for mint must be a address", "pc": [ - 346 + 377 ] }, { "teal": 364, - "source": 83, - "pc": [ - 347 - ] - }, - { - "teal": 368, - "source": 83, - "pc": [ - 348, - 349, - 350 - ] - }, - { - "teal": 371, - "source": 83, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 351 + 378, + 379, + 380 ] }, { - "teal": 372, - "source": 83, + "teal": 365, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 352 + 381, + 382 ] }, { - "teal": 376, - "source": 84, + "teal": 366, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 353 + 383 ] }, { - "teal": 377, - "source": 84, + "teal": 370, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 354 + 384, + 385, + 386 ] }, { - "teal": 378, - "source": 84, + "teal": 373, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 355, - 356 + 387, + 388 ] }, { - "teal": 386, - "source": 87, + "teal": 374, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 357, - 358 + 389 ] }, { - "teal": 387, - "source": 88, + "teal": 378, + "source": "examples/arc72/arc72.algo.ts:84", "pc": [ - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, 390, 391, 392, 393, 394, 395, - 396, - 397, + 396 + ] + }, + { + "teal": 379, + "source": "examples/arc72/arc72.algo.ts:84", + "pc": [ + 397 + ] + }, + { + "teal": 380, + "source": "examples/arc72/arc72.algo.ts:84", + "pc": [ 398, - 399, + 399 + ] + }, + { + "teal": 388, + "source": "examples/arc72/arc72.algo.ts:87", + "pc": [ 400, - 401, + 401 + ] + }, + { + "teal": 389, + "source": "examples/arc72/arc72.algo.ts:88", + "pc": [ 402, 403, 404, @@ -1736,835 +1748,1012 @@ 614, 615, 616, - 617 - ] - }, - { - "teal": 388, - "source": 88, - "pc": [ - 618 - ] - }, - { - "teal": 389, - "source": 89, - "pc": [ + 617, + 618, 619, - 620 + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 660 ] }, { "teal": 390, - "source": 89, + "source": "examples/arc72/arc72.algo.ts:88", "pc": [ - 621 + 661 ] }, { "teal": 391, - "source": 86, + "source": "examples/arc72/arc72.algo.ts:89", "pc": [ - 622, - 623 + 662, + 663 ] }, { - "teal": 395, - "source": 92, + "teal": 392, + "source": "examples/arc72/arc72.algo.ts:89", "pc": [ - 624, - 625 + 664 ] }, { - "teal": 396, - "source": 92, + "teal": 393, + "source": "examples/arc72/arc72.algo.ts:86", "pc": [ - 626, - 627 + 665, + 666 ] }, { "teal": 397, - "source": 92, + "source": "examples/arc72/arc72.algo.ts:92", "pc": [ - 628 + 667, + 668 ] }, { - "teal": 401, - "source": 93, + "teal": 398, + "source": "examples/arc72/arc72.algo.ts:92", "pc": [ - 629, - 630 + 669, + 670 ] }, { - "teal": 402, - "source": 93, + "teal": 399, + "source": "examples/arc72/arc72.algo.ts:92", "pc": [ - 631, - 632 + 671 ] }, { "teal": 403, - "source": 93, + "source": "examples/arc72/arc72.algo.ts:93", "pc": [ - 633, - 634, - 635 + 672, + 673 ] }, { - "teal": 407, - "source": 94, + "teal": 404, + "source": "examples/arc72/arc72.algo.ts:93", "pc": [ - 636 + 674, + 675 ] }, { - "teal": 408, - "source": 94, + "teal": 405, + "source": "examples/arc72/arc72.algo.ts:93", "pc": [ - 637, - 638 + 676, + 677, + 678 ] }, { "teal": 409, - "source": 94, - "pc": [ - 639, - 640, - 641, - 642, - 643, - 644, - 645, - 646, - 647, - 648, - 649, - 650, - 651, - 652, - 653, - 654, - 655, - 656, - 657, - 658, - 659, - 660, - 661, - 662, - 663, - 664, - 665, - 666, - 667, - 668, - 669, - 670, - 671, - 672 + "source": "examples/arc72/arc72.algo.ts:94", + "pc": [ + 679, + 680, + 681, + 682, + 683, + 684, + 685 ] }, { "teal": 410, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 673 + 686, + 687 ] }, { "teal": 411, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 674 + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721 ] }, { "teal": 412, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 675 + 722 ] }, { "teal": 413, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 676 + 723 ] }, { "teal": 414, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 677 + 724 ] }, { - "teal": 417, - "source": 94, - "errorMessage": "index + 1 overflowed 256 bits", + "teal": 415, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 678 + 725, + 726, + 727 ] }, { - "teal": 418, - "source": 94, + "teal": 416, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 679 + 728 ] }, { "teal": 419, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", + "errorMessage": "index + 1 overflowed 256 bits", "pc": [ - 680 + 729 ] }, { "teal": 420, - "source": 94, - "pc": [ - 681 + "source": "examples/arc72/arc72.algo.ts:94", + "pc": [ + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763 ] }, { "teal": 421, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 682 + 764 ] }, { "teal": 422, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 683 + 765 ] }, { "teal": 423, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 684 + 766 ] }, { "teal": 424, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 685 + 767 ] }, { "teal": 425, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 686 + 768, + 769 ] }, { "teal": 426, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 687 + 770 ] }, { "teal": 427, - "source": 94, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 688 + 771 ] }, { "teal": 428, - "source": 83, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 689 + 772 ] }, { - "teal": 433, - "source": 100, + "teal": 429, + "source": "examples/arc72/arc72.algo.ts:94", "pc": [ - 690 + 773 ] }, { - "teal": 436, - "source": 100, + "teal": 430, + "source": "examples/arc72/arc72.algo.ts:83", "pc": [ - 691, - 692, - 693 + 774 ] }, { - "teal": 437, - "source": 100, + "teal": 435, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 694 + 775, + 776, + 777, + 778, + 779, + 780 ] }, { "teal": 438, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 695 + 781, + 782, + 783 ] }, { "teal": 439, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 696 + 784 ] }, { "teal": 440, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 697 + 785 ] }, { - "teal": 443, - "source": 100, - "errorMessage": "arc72_totalSupply return value overflowed 256 bits", + "teal": 441, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 698 + 786, + 787, + 788 ] }, { - "teal": 444, - "source": 100, + "teal": 442, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 699 + 789 ] }, { "teal": 445, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", + "errorMessage": "arc72_totalSupply return value overflowed 256 bits", "pc": [ - 700 + 790 ] }, { "teal": 446, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 701 + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824 ] }, { "teal": 447, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 702 + 825 ] }, { "teal": 448, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 703 + 826 ] }, { "teal": 449, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 704 + 827 ] }, { "teal": 450, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 705 + 828 ] }, { "teal": 451, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 706 + 829, + 830 ] }, { "teal": 452, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 707 + 831 ] }, { "teal": 453, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 708 + 832 ] }, { "teal": 454, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 709 + 833 ] }, { "teal": 455, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 710 + 834 ] }, { "teal": 456, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 711 + 835 ] }, { - "teal": 462, - "source": 100, + "teal": 457, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 712, - 713, - 714 + 836, + 837 ] }, { - "teal": 466, - "source": 102, + "teal": 458, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 715 + 838 ] }, { - "teal": 467, - "source": 102, + "teal": 464, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 716 + 839, + 840, + 841 ] }, { "teal": 468, - "source": 100, + "source": "examples/arc72/arc72.algo.ts:102", "pc": [ - 717 + 842, + 843, + 844, + 845, + 846, + 847, + 848 ] }, { - "teal": 473, - "source": 108, + "teal": 469, + "source": "examples/arc72/arc72.algo.ts:102", "pc": [ - 718 + 849 ] }, { - "teal": 476, - "source": 109, + "teal": 470, + "source": "examples/arc72/arc72.algo.ts:100", "pc": [ - 719, - 720, - 721 + 850 ] }, { - "teal": 477, - "source": 109, + "teal": 475, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 722 + 851, + 852, + 853, + 854, + 855, + 856 ] }, { "teal": 478, - "source": 109, + "source": "examples/arc72/arc72.algo.ts:109", "pc": [ - 723 + 857, + 858, + 859 ] }, { "teal": 479, - "source": 109, + "source": "examples/arc72/arc72.algo.ts:109", "pc": [ - 724 + 860 ] }, { "teal": 480, - "source": 109, + "source": "examples/arc72/arc72.algo.ts:109", "pc": [ - 725 + 861 ] }, { - "teal": 483, - "source": 109, - "errorMessage": "argument 0 (index) for arc72_tokenByIndex must be a uint256", + "teal": 481, + "source": "examples/arc72/arc72.algo.ts:109", "pc": [ - 726 + 862, + 863 ] }, { - "teal": 486, - "source": 108, + "teal": 482, + "source": "examples/arc72/arc72.algo.ts:109", "pc": [ - 727, - 728, - 729 + 864 ] }, { - "teal": 487, - "source": 108, + "teal": 485, + "source": "examples/arc72/arc72.algo.ts:109", + "errorMessage": "argument 0 (index) for arc72_tokenByIndex must be a uint256", "pc": [ - 730 + 865 ] }, { "teal": 488, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 731 + 866, + 867, + 868 ] }, { "teal": 489, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 732 + 869 ] }, { "teal": 490, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 733 + 870 ] }, { - "teal": 493, - "source": 108, - "errorMessage": "arc72_tokenByIndex return value overflowed 256 bits", + "teal": 491, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 734 + 871, + 872, + 873 ] }, { - "teal": 494, - "source": 108, + "teal": 492, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 735 + 874 ] }, { "teal": 495, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", + "errorMessage": "arc72_tokenByIndex return value overflowed 256 bits", "pc": [ - 736 + 875 ] }, { "teal": 496, - "source": 108, - "pc": [ - 737 + "source": "examples/arc72/arc72.algo.ts:108", + "pc": [ + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909 ] }, { "teal": 497, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 738 + 910 ] }, { "teal": 498, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 739 + 911 ] }, { "teal": 499, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 740 + 912 ] }, { "teal": 500, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 741 + 913 ] }, { "teal": 501, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 742 + 914, + 915 ] }, { "teal": 502, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 743 + 916 ] }, { "teal": 503, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 744 + 917 ] }, { "teal": 504, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 745 + 918 ] }, { "teal": 505, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 746 + 919 ] }, { "teal": 506, - "source": 108, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 747 + 920 ] }, { - "teal": 512, - "source": 108, + "teal": 507, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 748, - 749, - 750 + 921, + 922 ] }, { - "teal": 516, - "source": 110, + "teal": 508, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 751, - 752 + 923 ] }, { - "teal": 517, - "source": 108, + "teal": 514, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 753 + 924, + 925, + 926 ] }, { - "teal": 520, - "source": 9, + "teal": 518, + "source": "examples/arc72/arc72.algo.ts:110", "pc": [ - 754 + 927, + 928 ] }, { - "teal": 521, - "source": 9, + "teal": 519, + "source": "examples/arc72/arc72.algo.ts:108", "pc": [ - 755 + 929 ] }, { - "teal": 524, - "source": 9, + "teal": 522, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 756, - 757, - 758, - 759, - 760, - 761 + 930, + 931 ] }, { - "teal": 525, - "source": 9, + "teal": 523, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 762, - 763, - 764 + 932 ] }, { "teal": 526, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 765, - 766, - 767, - 768 + 933, + 934, + 935, + 936, + 937, + 938 ] }, { - "teal": 529, - "source": 9, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 527, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 769 + 939, + 940, + 941 ] }, { - "teal": 532, - "source": 9, + "teal": 528, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 770, - 771, - 772, - 773, - 774, - 775 + 942, + 943, + 944, + 945 ] }, { - "teal": 533, - "source": 9, + "teal": 531, + "source": "examples/arc72/arc72.algo.ts:9", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 776, - 777, - 778, - 779, - 780, - 781 + 946 ] }, { "teal": 534, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 782, - 783, - 784, - 785, - 786, - 787 + 947, + 948, + 949, + 950, + 951, + 952 ] }, { "teal": 535, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 788, - 789, - 790, - 791, - 792, - 793 + 953, + 954, + 955, + 956, + 957, + 958 ] }, { "teal": 536, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 794, - 795, - 796, - 797, - 798, - 799 + 959, + 960, + 961, + 962, + 963, + 964 ] }, { "teal": 537, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 800, - 801, - 802, - 803, - 804, - 805 + 965, + 966, + 967, + 968, + 969, + 970 ] }, { "teal": 538, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 806, - 807, - 808, - 809, - 810, - 811 + 971, + 972, + 973, + 974, + 975, + 976 ] }, { "teal": 539, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 812, - 813, - 814, - 815, - 816, - 817 + 977, + 978, + 979, + 980, + 981, + 982 ] }, { "teal": 540, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 818, - 819, - 820 + 983, + 984, + 985, + 986, + 987, + 988 ] }, { "teal": 541, - "source": 9, + "source": "examples/arc72/arc72.algo.ts:9", "pc": [ - 821, - 822, - 823, - 824, - 825, - 826, - 827, - 828, - 829, - 830, - 831, - 832, - 833, - 834, - 835, - 836, - 837, - 838 + 989, + 990, + 991, + 992, + 993, + 994 + ] + }, + { + "teal": 542, + "source": "examples/arc72/arc72.algo.ts:9", + "pc": [ + 995, + 996, + 997 + ] + }, + { + "teal": 543, + "source": "examples/arc72/arc72.algo.ts:9", + "pc": [ + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015 ] }, { - "teal": 544, - "source": 9, + "teal": 546, + "source": "examples/arc72/arc72.algo.ts:9", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 839 + 1016 ] } ] \ No newline at end of file diff --git a/examples/arc75/artifacts/ARC75.approval.teal b/examples/arc75/artifacts/ARC75.approval.teal index 7e1b4c0a3..f24afbd13 100644 --- a/examples/arc75/artifacts/ARC75.approval.teal +++ b/examples/arc75/artifacts/ARC75.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 +bytecblock 0x 0x0024 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -64,7 +66,7 @@ sendMBRPayment: // amount: preMBR - this.app.address.minBalance, // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/arc75/arc75.algo.ts:18 @@ -82,7 +84,7 @@ sendMBRPayment: itxn_field Amount // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -97,7 +99,7 @@ sendMBRPayment: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 0 (payment) for addAppToWhiteList must be a pay transaction @@ -111,7 +113,7 @@ sendMBRPayment: txna ApplicationArgs 2 dup len - int 2 + pushint 2 == // argument 2 (boxIndex) for addAppToWhiteList must be a uint16 @@ -200,7 +202,7 @@ addAppToWhiteList: swap dup len - int 8 + pushint 8 / itob extract 6 2 @@ -225,7 +227,7 @@ addAppToWhiteList: frame_dig 2 // newWhitelist: uint64[] dup len - int 8 + pushint 8 / itob extract 6 2 @@ -251,7 +253,7 @@ addAppToWhiteList: txna ApplicationArgs 2 dup len - int 2 + pushint 2 == // argument 1 (boxIndex) for setAppWhitelist must be a uint16 @@ -325,7 +327,7 @@ setAppWhitelist: frame_dig -3 // appIDs: uint64[] dup len - int 8 + pushint 8 / itob extract 6 2 @@ -359,7 +361,7 @@ setAppWhitelist: - dup gtxns TypeEnum - int pay + int 1 // pay == // failed to cast this.txnGroup[this.txn.groupIndex - 1] to pay @@ -375,7 +377,7 @@ setAppWhitelist: txna ApplicationArgs 2 dup len - int 2 + pushint 2 == // argument 0 (boxIndex) for deleteWhitelist must be a uint16 @@ -459,7 +461,7 @@ deleteWhitelist: txna ApplicationArgs 2 dup len - int 2 + pushint 2 == // argument 2 (boxIndex) for deleteAppFromWhitelist must be a uint16 @@ -529,10 +531,10 @@ deleteAppFromWhitelist: extract 2 0 int 1 frame_dig -4 // index: uint64 - int 8 + pushint 8 * store 247 // splice start - int 16 + pushint 16 store 246 // splice byte length frame_dig 1 // whitelist: Whitelist box_get @@ -540,7 +542,7 @@ deleteAppFromWhitelist: // box value does not exist: this.whitelist(whitelist).value assert extract 2 0 - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 1 // whitelist: Whitelist @@ -554,7 +556,7 @@ deleteAppFromWhitelist: load 247 // splice start load 246 // splice byte length + - int 8 + pushint 8 - swap substring3 @@ -567,7 +569,7 @@ deleteAppFromWhitelist: extract 2 0 load 247 // splice start load 246 // splice byte length - int 8 + pushint 8 - extract3 swap @@ -578,7 +580,7 @@ deleteAppFromWhitelist: swap dup len - int 8 + pushint 8 / itob extract 6 2 @@ -609,7 +611,7 @@ deleteAppFromWhitelist: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -617,10 +619,10 @@ deleteAppFromWhitelist: err *call_NoOp: - method "addAppToWhiteList(string,uint16,uint64,pay)void" - method "setAppWhitelist(string,uint16,uint64[])void" - method "deleteWhitelist(string,uint16)void" - method "deleteAppFromWhitelist(string,uint16,uint64,uint64)void" + pushbytes 0x467c7cbd // method "addAppToWhiteList(string,uint16,uint64,pay)void" + pushbytes 0xd198fcb8 // method "setAppWhitelist(string,uint16,uint64[])void" + pushbytes 0x7c33e832 // method "deleteWhitelist(string,uint16)void" + pushbytes 0x7e1674ac // method "deleteAppFromWhitelist(string,uint16,uint64,uint64)void" txna ApplicationArgs 0 match *abi_route_addAppToWhiteList *abi_route_setAppWhitelist *abi_route_deleteWhitelist *abi_route_deleteAppFromWhitelist diff --git a/examples/arc75/artifacts/ARC75.arc32.json b/examples/arc75/artifacts/ARC75.arc32.json index bef52ec72..ea38e8e81 100644 --- a/examples/arc75/artifacts/ARC75.arc32.json +++ b/examples/arc75/artifacts/ARC75.arc32.json @@ -54,7 +54,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2ZXJpZnlNQlJQYXltZW50KHBheW1lbnQ6IFBheVR4biwgcHJlTUJSOiB1aW50NjQpOiB2b2lkCnZlcmlmeU1CUlBheW1lbnQ6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjEwCgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhbW91bnQ6IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSAtIHByZU1CUiwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0yIC8vIHByZU1CUjogdWludDY0CgktCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UgLSBwcmVNQlIifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHNlbmRNQlJQYXltZW50KHByZU1CUjogdWludDY0KTogdm9pZApzZW5kTUJSUGF5bWVudDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTcKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE5CgkvLyBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIC0xIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX2FkZEFwcFRvV2hpdGVMaXN0OgoJLy8gcGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIGFkZEFwcFRvV2hpdGVMaXN0IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMiAoYm94SW5kZXgpIGZvciBhZGRBcHBUb1doaXRlTGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFkZEFwcFRvV2hpdGVMaXN0KHN0cmluZyx1aW50MTYsdWludDY0LHBheSl2b2lkCgljYWxsc3ViIGFkZEFwcFRvV2hpdGVMaXN0CglpbnQgMQoJcmV0dXJuCgovLyBhZGRBcHBUb1doaXRlTGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgcGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBBZGQgYXBwIHRvIHdoaXRlbGlzdCBib3gKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gYWRkIHRoZSBhcHAgdG8KLy8gQHBhcmFtIGFwcElEIC0gVGhlIGFwcCBJRCB0byBhZGQgdG8gdGhlIHdoaXRlbGlzdAovLyBAcGFyYW0gcGF5bWVudCAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIHRvIGNvdmVyIHRoZSBNQlIgY2hhbmdlCmFkZEFwcFRvV2hpdGVMaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzMKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjM0CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNgoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNwoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5wdXNoKGFwcElEKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRDogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjM5CgkvLyBuZXdXaGl0ZWxpc3Q6IHVpbnQ2NFtdID0gW2FwcElEXQoJZnJhbWVfZGlnIC0zIC8vIGFwcElEOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMiAvLyBuZXdXaGl0ZWxpc3Q6IHVpbnQ2NFtdCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZSA9IG5ld1doaXRlbGlzdAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMiAvLyBuZXdXaGl0ZWxpc3Q6IHVpbnQ2NFtdCglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MwoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHBheW1lbnQsIHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gcGF5bWVudDogUGF5VHhuCgljYWxsc3ViIHZlcmlmeU1CUlBheW1lbnQKCXJldHN1YgoKLy8gc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3NldEFwcFdoaXRlbGlzdDoKCS8vIGFwcElEczogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGJveEluZGV4KSBmb3Igc2V0QXBwV2hpdGVsaXN0IG11c3QgYmUgYSB1aW50MTYKCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoJY2FsbHN1YiBzZXRBcHBXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIHNldEFwcFdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSURzOiB1aW50NjRbXSk6IHZvaWQKLy8KLy8gU2V0cyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIuIFNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiBhZGRpbmcvcmVtb3ZpbmcKLy8gbW9yZSB0aGFuIG9uZSBhcHAKLy8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIHB1dCB0aGUgYXBwIElEcyBpbgovLyBAcGFyYW0gYXBwSURzIC0gQXJyYXkgb2YgYXBwIElEcyB0aGF0IHNpZ25pZnkgdGhlIHdoaXRlbGlzdGVkIGFwcHMKc2V0QXBwV2hpdGVsaXN0OgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NTUKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU2CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU4CgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLmRlbGV0ZSgpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NjAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUgPSBhcHBJRHMKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJZnJhbWVfZGlnIC0zIC8vIGFwcElEczogdWludDY0W10KCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYm94X3B1dAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYyCgkvLyBwcmVNQlIgPiB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCT4KCWJ6ICppZjFfZWxzZQoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo2MwoJLy8gdGhpcy5zZW5kTUJSUGF5bWVudChwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJY2FsbHN1YiBzZW5kTUJSUGF5bWVudAoJYiAqaWYxX2VuZAoKKmlmMV9lbHNlOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo2NQoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIGFzIFBheVR4biwgcHJlTUJSKQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCgkvLyBmYWlsZWQgdG8gY2FzdCB0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSB0byBwYXkKCWFzc2VydAoJY2FsbHN1YiB2ZXJpZnlNQlJQYXltZW50CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoqYWJpX3JvdXRlX2RlbGV0ZVdoaXRlbGlzdDoKCS8vIGJveEluZGV4OiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAwIChib3hJbmRleCkgZm9yIGRlbGV0ZVdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZVdoaXRlbGlzdChzdHJpbmcsdWludDE2KXZvaWQKCWNhbGxzdWIgZGVsZXRlV2hpdGVsaXN0CglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVXaGl0ZWxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYpOiB2b2lkCi8vCi8vIERlbGV0ZXMgYSBhcHAgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBhcmMgLSBUaGUgQVJDIHRoZSB3aGl0ZWxpc3QgY29ycmVzcG9uZHMgdG8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIGRlbGV0ZQpkZWxldGVXaGl0ZWxpc3Q6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo3NwoJLy8gcHJlTUJSID0gdGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NzgKCS8vIHdoaXRlbGlzdDogV2hpdGVsaXN0ID0geyBhY2NvdW50OiB0aGlzLnR4bi5zZW5kZXIsIGJveEluZGV4OiBib3hJbmRleCwgYXJjOiBhcmMgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAyNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQxNgoJaXRvYgoJZXh0cmFjdCA2IDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBhcmM6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6ODAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZGVsCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo4MgoJLy8gdGhpcy5zZW5kTUJSUGF5bWVudChwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJY2FsbHN1YiBzZW5kTUJSUGF5bWVudAoJcmV0c3ViCgovLyBkZWxldGVBcHBGcm9tV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwRnJvbVdoaXRlbGlzdDoKCS8vIGluZGV4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKGJveEluZGV4KSBmb3IgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdAoJaW50IDEKCXJldHVybgoKLy8gZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgaW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCBmcm9tIGEgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBkZWxldGUgZnJvbQovLyBAcGFyYW0gYXBwSUQgLSBUaGUgYXBwIElEIHRvIGRlbGV0ZSBmcm9tIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBhcHAgaW4gdGhlIHdoaXRlbGlzdApkZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTQKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk1CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk3CgkvLyBzcGxpY2VkID0gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZQoJYXNzZXJ0CglleHRyYWN0IDIgMAoJaW50IDEKCWZyYW1lX2RpZyAtNCAvLyBpbmRleDogdWludDY0CglpbnQgOAoJKgoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZQoJYXNzZXJ0CglleHRyYWN0IDIgMAoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgOAoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CglmcmFtZV9idXJ5IDIgLy8gc3BsaWNlZDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk5CgkvLyBhc3NlcnQoc3BsaWNlZFswXSA9PT0gYXBwSUQpCglmcmFtZV9kaWcgMiAvLyBzcGxpY2VkOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTAxCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAic2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZCIKCW1ldGhvZCAiZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZCIKCW1ldGhvZCAiZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3QgKmFiaV9yb3V0ZV9zZXRBcHBXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHggMHgwMDI0CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdmVyaWZ5TUJSUGF5bWVudChwYXltZW50OiBQYXlUeG4sIHByZU1CUjogdWludDY0KTogdm9pZAp2ZXJpZnlNQlJQYXltZW50OgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czoxMAoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UgLSBwcmVNQlIsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMiAvLyBwcmVNQlI6IHVpbnQ2NAoJLQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlIC0gcHJlTUJSIn0KCWFzc2VydAoJcmV0c3ViCgovLyBzZW5kTUJSUGF5bWVudChwcmVNQlI6IHVpbnQ2NCk6IHZvaWQKc2VuZE1CUlBheW1lbnQ6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE3CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgYW1vdW50OiBwcmVNQlIgLSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE5CgkvLyBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIC0xIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYWRkQXBwVG9XaGl0ZUxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQscGF5KXZvaWQKKmFiaV9yb3V0ZV9hZGRBcHBUb1doaXRlTGlzdDoKCS8vIHBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIGFkZEFwcFRvV2hpdGVMaXN0IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJcHVzaGludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKGJveEluZGV4KSBmb3IgYWRkQXBwVG9XaGl0ZUxpc3QgbXVzdCBiZSBhIHVpbnQxNgoJYXNzZXJ0CglidG9pCgoJLy8gYXJjOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBhZGRBcHBUb1doaXRlTGlzdAoJaW50IDEKCXJldHVybgoKLy8gYWRkQXBwVG9XaGl0ZUxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYsIGFwcElEOiB1aW50NjQsIHBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gQWRkIGFwcCB0byB3aGl0ZWxpc3QgYm94Ci8vCi8vIEBwYXJhbSBhcmMgLSBUaGUgQVJDIHRoZSB3aGl0ZWxpc3QgY29ycmVzcG9uZHMgdG8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIGFkZCB0aGUgYXBwIHRvCi8vIEBwYXJhbSBhcHBJRCAtIFRoZSBhcHAgSUQgdG8gYWRkIHRvIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIHBheW1lbnQgLSBUaGUgcGF5bWVudCB0cmFuc2FjdGlvbiB0byBjb3ZlciB0aGUgTUJSIGNoYW5nZQphZGRBcHBUb1doaXRlTGlzdDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjMzCgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzYKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkuZXhpc3RzCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzcKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUucHVzaChhcHBJRCkKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzkKCS8vIG5ld1doaXRlbGlzdDogdWludDY0W10gPSBbYXBwSURdCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAyIC8vIG5ld1doaXRlbGlzdDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjQwCgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlID0gbmV3V2hpdGVsaXN0CglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAyIC8vIG5ld1doaXRlbGlzdDogdWludDY0W10KCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MwoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHBheW1lbnQsIHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gcGF5bWVudDogUGF5VHhuCgljYWxsc3ViIHZlcmlmeU1CUlBheW1lbnQKCXJldHN1YgoKLy8gc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3NldEFwcFdoaXRlbGlzdDoKCS8vIGFwcElEczogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCXB1c2hpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAxIChib3hJbmRleCkgZm9yIHNldEFwcFdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldEFwcFdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NFtdKXZvaWQKCWNhbGxzdWIgc2V0QXBwV2hpdGVsaXN0CglpbnQgMQoJcmV0dXJuCgovLyBzZXRBcHBXaGl0ZWxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYsIGFwcElEczogdWludDY0W10pOiB2b2lkCi8vCi8vIFNldHMgYSBhcHAgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyLiBTaG91bGQgb25seSBiZSB1c2VkIHdoZW4gYWRkaW5nL3JlbW92aW5nCi8vIG1vcmUgdGhhbiBvbmUgYXBwCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBwdXQgdGhlIGFwcCBJRHMgaW4KLy8gQHBhcmFtIGFwcElEcyAtIEFycmF5IG9mIGFwcCBJRHMgdGhhdCBzaWduaWZ5IHRoZSB3aGl0ZWxpc3RlZCBhcHBzCnNldEFwcFdoaXRlbGlzdDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU1CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo1NgoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo1OAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYwCgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlID0gYXBwSURzCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRHM6IHVpbnQ2NFtdCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NjIKCS8vIHByZU1CUiA+IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJPgoJYnogKmlmMV9lbHNlCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYzCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CgliICppZjFfZW5kCgoqaWYxX2Vsc2U6CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjY1CgkvLyB0aGlzLnZlcmlmeU1CUlBheW1lbnQodGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0gYXMgUGF5VHhuLCBwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gZmFpbGVkIHRvIGNhc3QgdGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0gdG8gcGF5Cglhc3NlcnQKCWNhbGxzdWIgdmVyaWZ5TUJSUGF5bWVudAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIGRlbGV0ZVdoaXRlbGlzdChzdHJpbmcsdWludDE2KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3Q6CgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJcHVzaGludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGJveEluZGV4KSBmb3IgZGVsZXRlV2hpdGVsaXN0IG11c3QgYmUgYSB1aW50MTYKCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoJY2FsbHN1YiBkZWxldGVXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNik6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gZGVsZXRlCmRlbGV0ZVdoaXRlbGlzdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjc3CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo3OAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo4MAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjgyCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCi8vIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJLy8gaW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJcHVzaGludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKGJveEluZGV4KSBmb3IgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdAoJaW50IDEKCXJldHVybgoKLy8gZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgaW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCBmcm9tIGEgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBkZWxldGUgZnJvbQovLyBAcGFyYW0gYXBwSUQgLSBUaGUgYXBwIElEIHRvIGRlbGV0ZSBmcm9tIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBhcHAgaW4gdGhlIHdoaXRlbGlzdApkZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTQKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk1CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk3CgkvLyBzcGxpY2VkID0gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZQoJYXNzZXJ0CglleHRyYWN0IDIgMAoJaW50IDEKCWZyYW1lX2RpZyAtNCAvLyBpbmRleDogdWludDY0CglwdXNoaW50IDgKCSoKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXB1c2hpbnQgMTYKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglwdXNoaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJcHVzaGludCA4CgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJcHVzaGludCA4CgktCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CglmcmFtZV9idXJ5IDIgLy8gc3BsaWNlZDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk5CgkvLyBhc3NlcnQoc3BsaWNlZFswXSA9PT0gYXBwSUQpCglmcmFtZV9kaWcgMiAvLyBzcGxpY2VkOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTAxCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NDY3YzdjYmQgLy8gbWV0aG9kICJhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZCIKCXB1c2hieXRlcyAweGQxOThmY2I4IC8vIG1ldGhvZCAic2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZCIKCXB1c2hieXRlcyAweDdjMzNlODMyIC8vIG1ldGhvZCAiZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZCIKCXB1c2hieXRlcyAweDdlMTY3NGFjIC8vIG1ldGhvZCAiZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3QgKmFiaV9yb3V0ZV9zZXRBcHBXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/arc75/artifacts/ARC75.arc56_draft.json b/examples/arc75/artifacts/ARC75.arc56_draft.json index 5c593d338..188188e5c 100644 --- a/examples/arc75/artifacts/ARC75.arc56_draft.json +++ b/examples/arc75/artifacts/ARC75.arc56_draft.json @@ -191,3240 +191,118 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 6, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 6, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 14, - "source": 6, - "pc": [ - 15 - ] - }, - { - "teal": 15, - "source": 6, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 16, - "source": 6, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 6, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 6, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 6, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 6, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 27, - "source": 9, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 35, - "source": 10, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 36, - "source": 11, - "pc": [ - 54, - 55 - ] - }, - { - "teal": 37, - "source": 11, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 38, - "source": 11, - "pc": [ - 58 - ] - }, - { - "teal": 41, - "source": 11, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 10, - "pc": [ - 60, - 61 - ] - }, - { - "teal": 45, - "source": 12, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 46, - "source": 12, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 47, - "source": 12, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 48, - "source": 12, - "pc": [ - 68 - ] - }, - { - "teal": 49, - "source": 12, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 50, - "source": 12, - "pc": [ - 71 - ] - }, - { - "teal": 51, - "source": 12, - "pc": [ - 72 - ] - }, - { - "teal": 54, - "source": 12, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"this.app.address.minBalance - preMBR\"}", - "pc": [ - 73 - ] - }, - { - "teal": 55, - "source": 9, - "pc": [ - 74 - ] - }, - { - "teal": 59, - "source": 16, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 66, - "source": 17, - "pc": [ - 78 - ] - }, - { - "teal": 67, - "source": 17, - "pc": [ - 79 - ] - }, - { - "teal": 68, - "source": 17, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 72, - "source": 18, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 73, - "source": 18, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 77, - "source": 19, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 78, - "source": 19, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 79, - "source": 19, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 80, - "source": 19, - "pc": [ - 92 - ] - }, - { - "teal": 81, - "source": 19, - "pc": [ - 93 - ] - }, - { - "teal": 82, - "source": 19, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 85, - "source": 17, - "pc": [ - 96 - ] - }, - { - "teal": 86, - "source": 17, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 89, - "source": 17, - "pc": [ - 99 - ] - }, - { - "teal": 90, - "source": 16, - "pc": [ - 100 - ] - }, - { - "teal": 95, - "source": 32, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 96, - "source": 32, - "pc": [ - 103 - ] - }, - { - "teal": 97, - "source": 32, - "pc": [ - 104 - ] - }, - { - "teal": 98, - "source": 32, - "pc": [ - 105 - ] - }, - { - "teal": 99, - "source": 32, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 100, - "source": 32, - "pc": [ - 108 - ] - }, - { - "teal": 101, - "source": 32, - "pc": [ - 109 - ] - }, - { - "teal": 104, - "source": 32, - "errorMessage": "argument 0 (payment) for addAppToWhiteList must be a pay transaction", - "pc": [ - 110 - ] - }, - { - "teal": 107, - "source": 32, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 108, - "source": 32, - "pc": [ - 114 - ] - }, - { - "teal": 111, - "source": 32, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 112, - "source": 32, - "pc": [ - 118 - ] - }, - { - "teal": 113, - "source": 32, - "pc": [ - 119 - ] - }, - { - "teal": 114, - "source": 32, - "pc": [ - 120 - ] - }, - { - "teal": 115, - "source": 32, - "pc": [ - 121 - ] - }, - { - "teal": 118, - "source": 32, - "errorMessage": "argument 2 (boxIndex) for addAppToWhiteList must be a uint16", - "pc": [ - 122 - ] - }, - { - "teal": 119, - "source": 32, - "pc": [ - 123 - ] - }, - { - "teal": 122, - "source": 32, - "pc": [ - 124, - 125, - 126 - ] - }, - { - "teal": 123, - "source": 32, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 126, - "source": 32, - "pc": [ - 130, - 131, - 132 - ] - }, - { - "teal": 127, - "source": 32, - "pc": [ - 133 - ] - }, - { - "teal": 128, - "source": 32, - "pc": [ - 134 - ] - }, - { - "teal": 139, - "source": 32, - "pc": [ - 135, - 136, - 137 - ] - }, - { - "teal": 142, - "source": 32, - "pc": [ - 138 - ] - }, - { - "teal": 143, - "source": 32, - "pc": [ - 139, - 140 - ] - }, - { - "teal": 147, - "source": 33, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 148, - "source": 33, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 149, - "source": 33, - "pc": [ - 145 - ] - }, - { - "teal": 150, - "source": 33, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 154, - "source": 34, - "pc": [ - 148 - ] - }, - { - "teal": 155, - "source": 34, - "pc": [ - 149 - ] - }, - { - "teal": 156, - "source": 34, - "pc": [ - 150 - ] - }, - { - "teal": 157, - "source": 34, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 158, - "source": 34, - "pc": [ - 153, - 154, - 155 - ] - }, - { - "teal": 159, - "source": 34, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 160, - "source": 34, - "pc": [ - 158 - ] - }, - { - "teal": 161, - "source": 34, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 162, - "source": 34, - "pc": [ - 162, - 163, - 164 - ] - }, - { - "teal": 163, - "source": 34, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 164, - "source": 34, - "pc": [ - 167 - ] - }, - { - "teal": 165, - "source": 34, - "pc": [ - 168 - ] - }, - { - "teal": 166, - "source": 34, - "pc": [ - 169 - ] - }, - { - "teal": 167, - "source": 34, - "pc": [ - 170, - 171, - 172 - ] - }, - { - "teal": 168, - "source": 34, - "pc": [ - 173 - ] - }, - { - "teal": 169, - "source": 34, - "pc": [ - 174 - ] - }, - { - "teal": 170, - "source": 34, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 171, - "source": 34, - "pc": [ - 178 - ] - }, - { - "teal": 172, - "source": 34, - "pc": [ - 179 - ] - }, - { - "teal": 173, - "source": 34, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 178, - "source": 36, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 179, - "source": 36, - "pc": [ - 184 - ] - }, - { - "teal": 180, - "source": 36, - "pc": [ - 185 - ] - }, - { - "teal": 181, - "source": 36, - "pc": [ - 186 - ] - }, - { - "teal": 182, - "source": 36, - "pc": [ - 187, - 188, - 189 - ] - }, - { - "teal": 187, - "source": 37, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 188, - "source": 37, - "pc": [ - 192 - ] - }, - { - "teal": 191, - "source": 37, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", - "pc": [ - 193 - ] - }, - { - "teal": 192, - "source": 37, - "pc": [ - 194, - 195, - 196 - ] - }, - { - "teal": 193, - "source": 37, - "pc": [ - 197, - 198 - ] - }, - { - "teal": 194, - "source": 37, - "pc": [ - 199 - ] - }, - { - "teal": 195, - "source": 37, - "pc": [ - 200 - ] - }, - { - "teal": 196, - "source": 37, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 197, - "source": 37, - "pc": [ - 203 - ] - }, - { - "teal": 198, - "source": 37, - "pc": [ - 204 - ] - }, - { - "teal": 199, - "source": 37, - "pc": [ - 205 - ] - }, - { - "teal": 200, - "source": 37, - "pc": [ - 206 - ] - }, - { - "teal": 201, - "source": 37, - "pc": [ - 207 - ] - }, - { - "teal": 202, - "source": 37, - "pc": [ - 208 - ] - }, - { - "teal": 203, - "source": 37, - "pc": [ - 209 - ] - }, - { - "teal": 204, - "source": 37, - "pc": [ - 210 - ] - }, - { - "teal": 205, - "source": 37, - "pc": [ - 211 - ] - }, - { - "teal": 206, - "source": 37, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 207, - "source": 37, - "pc": [ - 215 - ] - }, - { - "teal": 208, - "source": 37, - "pc": [ - 216 - ] - }, - { - "teal": 209, - "source": 37, - "pc": [ - 217 - ] - }, - { - "teal": 210, - "source": 36, - "pc": [ - 218, - 219, - 220 - ] - }, - { - "teal": 215, - "source": 39, - "pc": [ - 221, - 222 - ] - }, - { - "teal": 216, - "source": 39, - "pc": [ - 223 - ] - }, - { - "teal": 217, - "source": 39, - "pc": [ - 224, - 225 - ] - }, - { - "teal": 221, - "source": 40, - "pc": [ - 226, - 227 - ] - }, - { - "teal": 222, - "source": 40, - "pc": [ - 228 - ] - }, - { - "teal": 223, - "source": 40, - "pc": [ - 229 - ] - }, - { - "teal": 224, - "source": 40, - "pc": [ - 230 - ] - }, - { - "teal": 225, - "source": 40, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 226, - "source": 40, - "pc": [ - 233 - ] - }, - { - "teal": 227, - "source": 40, - "pc": [ - 234 - ] - }, - { - "teal": 228, - "source": 40, - "pc": [ - 235 - ] - }, - { - "teal": 229, - "source": 40, - "pc": [ - 236 - ] - }, - { - "teal": 230, - "source": 40, - "pc": [ - 237 - ] - }, - { - "teal": 231, - "source": 40, - "pc": [ - 238, - 239, - 240 - ] - }, - { - "teal": 232, - "source": 40, - "pc": [ - 241 - ] - }, - { - "teal": 233, - "source": 40, - "pc": [ - 242 - ] - }, - { - "teal": 234, - "source": 40, - "pc": [ - 243 - ] - }, - { - "teal": 239, - "source": 43, - "pc": [ - 244, - 245 - ] - }, - { - "teal": 240, - "source": 43, - "pc": [ - 246, - 247 - ] - }, - { - "teal": 241, - "source": 43, - "pc": [ - 248, - 249, - 250 - ] - }, - { - "teal": 242, - "source": 32, - "pc": [ - 251 - ] - }, - { - "teal": 247, - "source": 54, - "pc": [ - 252, - 253, - 254 - ] - }, - { - "teal": 248, - "source": 54, - "pc": [ - 255, - 256, - 257 - ] - }, - { - "teal": 251, - "source": 54, - "pc": [ - 258, - 259, - 260 - ] - }, - { - "teal": 252, - "source": 54, - "pc": [ - 261 - ] - }, - { - "teal": 253, - "source": 54, - "pc": [ - 262 - ] - }, - { - "teal": 254, - "source": 54, - "pc": [ - 263 - ] - }, - { - "teal": 255, - "source": 54, - "pc": [ - 264 - ] - }, - { - "teal": 258, - "source": 54, - "errorMessage": "argument 1 (boxIndex) for setAppWhitelist must be a uint16", - "pc": [ - 265 - ] - }, - { - "teal": 259, - "source": 54, - "pc": [ - 266 - ] - }, - { - "teal": 262, - "source": 54, - "pc": [ - 267, - 268, - 269 - ] - }, - { - "teal": 263, - "source": 54, - "pc": [ - 270, - 271, - 272 - ] - }, - { - "teal": 266, - "source": 54, - "pc": [ - 273, - 274, - 275 - ] - }, - { - "teal": 267, - "source": 54, - "pc": [ - 276 - ] - }, - { - "teal": 268, - "source": 54, - "pc": [ - 277 - ] - }, - { - "teal": 278, - "source": 54, - "pc": [ - 278, - 279, - 280 - ] - }, - { - "teal": 281, - "source": 54, - "pc": [ - 281 - ] - }, - { - "teal": 282, - "source": 54, - "pc": [ - 282 - ] - }, - { - "teal": 286, - "source": 55, - "pc": [ - 283, - 284 - ] - }, - { - "teal": 287, - "source": 55, - "pc": [ - 285, - 286 - ] - }, - { - "teal": 288, - "source": 55, - "pc": [ - 287 - ] - }, - { - "teal": 289, - "source": 55, - "pc": [ - 288, - 289 - ] - }, - { - "teal": 293, - "source": 56, - "pc": [ - 290 - ] - }, - { - "teal": 294, - "source": 56, - "pc": [ - 291 - ] - }, - { - "teal": 295, - "source": 56, - "pc": [ - 292 - ] - }, - { - "teal": 296, - "source": 56, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 297, - "source": 56, - "pc": [ - 295, - 296, - 297 - ] - }, - { - "teal": 298, - "source": 56, - "pc": [ - 298, - 299 - ] - }, - { - "teal": 299, - "source": 56, - "pc": [ - 300 - ] - }, - { - "teal": 300, - "source": 56, - "pc": [ - 301, - 302, - 303 - ] - }, - { - "teal": 301, - "source": 56, - "pc": [ - 304, - 305, - 306 - ] - }, - { - "teal": 302, - "source": 56, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 303, - "source": 56, - "pc": [ - 309 - ] - }, - { - "teal": 304, - "source": 56, - "pc": [ - 310 - ] - }, - { - "teal": 305, - "source": 56, - "pc": [ - 311 - ] - }, - { - "teal": 306, - "source": 56, - "pc": [ - 312, - 313, - 314 - ] - }, - { - "teal": 307, - "source": 56, - "pc": [ - 315 - ] - }, - { - "teal": 308, - "source": 56, - "pc": [ - 316 - ] - }, - { - "teal": 309, - "source": 56, - "pc": [ - 317, - 318, - 319 - ] - }, - { - "teal": 310, - "source": 56, - "pc": [ - 320 - ] - }, - { - "teal": 311, - "source": 56, - "pc": [ - 321 - ] - }, - { - "teal": 312, - "source": 56, - "pc": [ - 322, - 323 - ] - }, - { - "teal": 316, - "source": 58, - "pc": [ - 324, - 325 - ] - }, - { - "teal": 317, - "source": 58, - "pc": [ - 326 - ] - }, - { - "teal": 321, - "source": 60, - "pc": [ - 327, - 328 - ] - }, - { - "teal": 322, - "source": 60, - "pc": [ - 329 - ] - }, - { - "teal": 323, - "source": 60, - "pc": [ - 330 - ] - }, - { - "teal": 324, - "source": 60, - "pc": [ - 331 - ] - }, - { - "teal": 325, - "source": 60, - "pc": [ - 332, - 333 - ] - }, - { - "teal": 326, - "source": 60, - "pc": [ - 334 - ] - }, - { - "teal": 327, - "source": 60, - "pc": [ - 335 - ] - }, - { - "teal": 328, - "source": 60, - "pc": [ - 336 - ] - }, - { - "teal": 329, - "source": 60, - "pc": [ - 337 - ] - }, - { - "teal": 330, - "source": 60, - "pc": [ - 338 - ] - }, - { - "teal": 331, - "source": 60, - "pc": [ - 339, - 340, - 341 - ] - }, - { - "teal": 332, - "source": 60, - "pc": [ - 342 - ] - }, - { - "teal": 333, - "source": 60, - "pc": [ - 343 - ] - }, - { - "teal": 334, - "source": 60, - "pc": [ - 344 - ] - }, - { - "teal": 339, - "source": 62, - "pc": [ - 345, - 346 - ] - }, - { - "teal": 340, - "source": 62, - "pc": [ - 347, - 348 - ] - }, - { - "teal": 341, - "source": 62, - "pc": [ - 349, - 350 - ] - }, - { - "teal": 342, - "source": 62, - "pc": [ - 351 - ] - }, - { - "teal": 343, - "source": 62, - "pc": [ - 352 - ] - }, - { - "teal": 344, - "source": 62, - "pc": [ - 353, - 354, - 355 - ] - }, - { - "teal": 349, - "source": 63, - "pc": [ - 356, - 357 - ] - }, - { - "teal": 350, - "source": 63, - "pc": [ - 358, - 359, - 360 - ] - }, - { - "teal": 351, - "source": 62, - "pc": [ - 361, - 362, - 363 - ] - }, - { - "teal": 356, - "source": 65, - "pc": [ - 364, - 365 - ] - }, - { - "teal": 357, - "source": 65, - "pc": [ - 366, - 367 - ] - }, - { - "teal": 358, - "source": 65, - "pc": [ - 368 - ] - }, - { - "teal": 359, - "source": 65, - "pc": [ - 369 - ] - }, - { - "teal": 360, - "source": 65, - "pc": [ - 370 - ] - }, - { - "teal": 361, - "source": 65, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 362, - "source": 65, - "pc": [ - 373 - ] - }, - { - "teal": 363, - "source": 65, - "pc": [ - 374 - ] - }, - { - "teal": 366, - "source": 65, - "errorMessage": "failed to cast this.txnGroup[this.txn.groupIndex - 1] to pay", - "pc": [ - 375 - ] - }, - { - "teal": 367, - "source": 65, - "pc": [ - 376, - 377, - 378 - ] - }, - { - "teal": 370, - "source": 54, - "pc": [ - 379 - ] - }, - { - "teal": 375, - "source": 76, - "pc": [ - 380, - 381, - 382 - ] - }, - { - "teal": 376, - "source": 76, - "pc": [ - 383 - ] - }, - { - "teal": 377, - "source": 76, - "pc": [ - 384 - ] - }, - { - "teal": 378, - "source": 76, - "pc": [ - 385 - ] - }, - { - "teal": 379, - "source": 76, - "pc": [ - 386 - ] - }, - { - "teal": 382, - "source": 76, - "errorMessage": "argument 0 (boxIndex) for deleteWhitelist must be a uint16", - "pc": [ - 387 - ] - }, - { - "teal": 383, - "source": 76, - "pc": [ - 388 - ] - }, - { - "teal": 386, - "source": 76, - "pc": [ - 389, - 390, - 391 - ] - }, - { - "teal": 387, - "source": 76, - "pc": [ - 392, - 393, - 394 - ] - }, - { - "teal": 390, - "source": 76, - "pc": [ - 395, - 396, - 397 - ] - }, - { - "teal": 391, - "source": 76, - "pc": [ - 398 - ] - }, - { - "teal": 392, - "source": 76, - "pc": [ - 399 - ] - }, - { - "teal": 401, - "source": 76, - "pc": [ - 400, - 401, - 402 - ] - }, - { - "teal": 404, - "source": 76, - "pc": [ - 403 - ] - }, - { - "teal": 405, - "source": 76, - "pc": [ - 404 - ] - }, - { - "teal": 409, - "source": 77, - "pc": [ - 405, - 406 - ] - }, - { - "teal": 410, - "source": 77, - "pc": [ - 407, - 408 - ] - }, - { - "teal": 411, - "source": 77, - "pc": [ - 409 - ] - }, - { - "teal": 412, - "source": 77, - "pc": [ - 410, - 411 - ] - }, - { - "teal": 416, - "source": 78, - "pc": [ - 412 - ] - }, - { - "teal": 417, - "source": 78, - "pc": [ - 413 - ] - }, - { - "teal": 418, - "source": 78, - "pc": [ - 414 - ] - }, - { - "teal": 419, - "source": 78, - "pc": [ - 415, - 416 - ] - }, - { - "teal": 420, - "source": 78, - "pc": [ - 417, - 418, - 419 - ] - }, - { - "teal": 421, - "source": 78, - "pc": [ - 420, - 421 - ] - }, - { - "teal": 422, - "source": 78, - "pc": [ - 422 - ] - }, - { - "teal": 423, - "source": 78, - "pc": [ - 423, - 424, - 425 - ] - }, - { - "teal": 424, - "source": 78, - "pc": [ - 426, - 427, - 428 - ] - }, - { - "teal": 425, - "source": 78, - "pc": [ - 429, - 430 - ] - }, - { - "teal": 426, - "source": 78, - "pc": [ - 431 - ] - }, - { - "teal": 427, - "source": 78, - "pc": [ - 432 - ] - }, - { - "teal": 428, - "source": 78, - "pc": [ - 433 - ] - }, - { - "teal": 429, - "source": 78, - "pc": [ - 434, - 435, - 436 - ] - }, - { - "teal": 430, - "source": 78, - "pc": [ - 437 - ] - }, - { - "teal": 431, - "source": 78, - "pc": [ - 438 - ] - }, - { - "teal": 432, - "source": 78, - "pc": [ - 439, - 440, - 441 - ] - }, - { - "teal": 433, - "source": 78, - "pc": [ - 442 - ] - }, - { - "teal": 434, - "source": 78, - "pc": [ - 443 - ] - }, - { - "teal": 435, - "source": 78, - "pc": [ - 444, - 445 - ] - }, - { - "teal": 439, - "source": 80, - "pc": [ - 446, - 447 - ] - }, - { - "teal": 440, - "source": 80, - "pc": [ - 448 - ] - }, - { - "teal": 444, - "source": 82, - "pc": [ - 449, - 450 - ] - }, - { - "teal": 445, - "source": 82, - "pc": [ - 451, - 452, - 453 - ] - }, - { - "teal": 446, - "source": 76, - "pc": [ - 454 - ] - }, - { - "teal": 451, - "source": 93, - "pc": [ - 455, - 456, - 457 - ] - }, - { - "teal": 452, - "source": 93, - "pc": [ - 458 - ] - }, - { - "teal": 455, - "source": 93, - "pc": [ - 459, - 460, - 461 - ] - }, - { - "teal": 456, - "source": 93, - "pc": [ - 462 - ] - }, - { - "teal": 459, - "source": 93, - "pc": [ - 463, - 464, - 465 - ] - }, - { - "teal": 460, - "source": 93, - "pc": [ - 466 - ] - }, - { - "teal": 461, - "source": 93, - "pc": [ - 467 - ] - }, - { - "teal": 462, - "source": 93, - "pc": [ - 468 - ] - }, - { - "teal": 463, - "source": 93, - "pc": [ - 469 - ] - }, - { - "teal": 466, - "source": 93, - "errorMessage": "argument 2 (boxIndex) for deleteAppFromWhitelist must be a uint16", - "pc": [ - 470 - ] - }, - { - "teal": 467, - "source": 93, - "pc": [ - 471 - ] - }, - { - "teal": 470, - "source": 93, - "pc": [ - 472, - 473, - 474 - ] - }, - { - "teal": 471, - "source": 93, - "pc": [ - 475, - 476, - 477 - ] - }, - { - "teal": 474, - "source": 93, - "pc": [ - 478, - 479, - 480 - ] - }, - { - "teal": 475, - "source": 93, - "pc": [ - 481 - ] - }, - { - "teal": 476, - "source": 93, - "pc": [ - 482 - ] - }, - { - "teal": 486, - "source": 93, - "pc": [ - 483, - 484, - 485 - ] - }, - { - "teal": 489, - "source": 93, - "pc": [ - 486 - ] - }, - { - "teal": 490, - "source": 93, - "pc": [ - 487, - 488 - ] - }, - { - "teal": 494, - "source": 94, - "pc": [ - 489, - 490 - ] - }, - { - "teal": 495, - "source": 94, - "pc": [ - 491, - 492 - ] - }, - { - "teal": 496, - "source": 94, - "pc": [ - 493 - ] - }, - { - "teal": 497, - "source": 94, - "pc": [ - 494, - 495 - ] - }, - { - "teal": 501, - "source": 95, - "pc": [ - 496 - ] - }, - { - "teal": 502, - "source": 95, - "pc": [ - 497 - ] - }, - { - "teal": 503, - "source": 95, - "pc": [ - 498 - ] - }, - { - "teal": 504, - "source": 95, - "pc": [ - 499, - 500 - ] - }, - { - "teal": 505, - "source": 95, - "pc": [ - 501, - 502, - 503 - ] - }, - { - "teal": 506, - "source": 95, - "pc": [ - 504, - 505 - ] - }, - { - "teal": 507, - "source": 95, - "pc": [ - 506 - ] - }, - { - "teal": 508, - "source": 95, - "pc": [ - 507, - 508, - 509 - ] - }, - { - "teal": 509, - "source": 95, - "pc": [ - 510, - 511, - 512 - ] - }, - { - "teal": 510, - "source": 95, - "pc": [ - 513, - 514 - ] - }, - { - "teal": 511, - "source": 95, - "pc": [ - 515 - ] - }, - { - "teal": 512, - "source": 95, - "pc": [ - 516 - ] - }, - { - "teal": 513, - "source": 95, - "pc": [ - 517 - ] - }, - { - "teal": 514, - "source": 95, - "pc": [ - 518, - 519, - 520 - ] - }, - { - "teal": 515, - "source": 95, - "pc": [ - 521 - ] - }, - { - "teal": 516, - "source": 95, - "pc": [ - 522 - ] - }, - { - "teal": 517, - "source": 95, - "pc": [ - 523, - 524, - 525 - ] - }, - { - "teal": 518, - "source": 95, - "pc": [ - 526 - ] - }, - { - "teal": 519, - "source": 95, - "pc": [ - 527 - ] - }, - { - "teal": 520, - "source": 95, - "pc": [ - 528, - 529 - ] - }, - { - "teal": 524, - "source": 97, - "pc": [ - 530, - 531 - ] - }, - { - "teal": 525, - "source": 97, - "pc": [ - 532 - ] - }, - { - "teal": 528, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", - "pc": [ - 533 - ] - }, - { - "teal": 529, - "source": 97, - "pc": [ - 534, - 535, - 536 - ] - }, - { - "teal": 530, - "source": 97, - "pc": [ - 537 - ] - }, - { - "teal": 531, - "source": 97, - "pc": [ - 538, - 539 - ] - }, - { - "teal": 532, - "source": 97, - "pc": [ - 540 - ] - }, - { - "teal": 533, - "source": 97, - "pc": [ - 541 - ] - }, - { - "teal": 534, - "source": 97, - "pc": [ - 542, - 543 - ] - }, - { - "teal": 535, - "source": 97, - "pc": [ - 544, - 545 - ] - }, - { - "teal": 536, - "source": 97, - "pc": [ - 546, - 547 - ] - }, - { - "teal": 537, - "source": 97, - "pc": [ - 548, - 549 - ] - }, - { - "teal": 538, - "source": 97, - "pc": [ - 550 - ] - }, - { - "teal": 541, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", - "pc": [ - 551 - ] - }, - { - "teal": 542, - "source": 97, - "pc": [ - 552, - 553, - 554 - ] - }, - { - "teal": 543, - "source": 97, - "pc": [ - 555 - ] - }, - { - "teal": 544, - "source": 97, - "pc": [ - 556, - 557 - ] - }, - { - "teal": 545, - "source": 97, - "pc": [ - 558 - ] - }, - { - "teal": 546, - "source": 97, - "pc": [ - 559, - 560 - ] - }, - { - "teal": 547, - "source": 97, - "pc": [ - 561 - ] - }, - { - "teal": 550, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", - "pc": [ - 562 - ] - }, - { - "teal": 551, - "source": 97, - "pc": [ - 563, - 564, - 565 - ] - }, - { - "teal": 552, - "source": 97, - "pc": [ - 566 - ] - }, - { - "teal": 553, - "source": 97, - "pc": [ - 567 - ] - }, - { - "teal": 554, - "source": 97, - "pc": [ - 568, - 569 - ] - }, - { - "teal": 555, - "source": 97, - "pc": [ - 570, - 571 - ] - }, - { - "teal": 556, - "source": 97, - "pc": [ - 572 - ] - }, - { - "teal": 557, - "source": 97, - "pc": [ - 573 - ] - }, - { - "teal": 558, - "source": 97, - "pc": [ - 574 - ] - }, - { - "teal": 559, - "source": 97, - "pc": [ - 575 - ] - }, - { - "teal": 560, - "source": 97, - "pc": [ - 576 - ] - }, - { - "teal": 561, - "source": 97, - "pc": [ - 577 - ] - }, - { - "teal": 562, - "source": 97, - "pc": [ - 578, - 579 - ] - }, - { - "teal": 563, - "source": 97, - "pc": [ - 580 - ] - }, - { - "teal": 566, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", - "pc": [ - 581 - ] - }, - { - "teal": 567, - "source": 97, - "pc": [ - 582, - 583, - 584 - ] - }, - { - "teal": 568, - "source": 97, - "pc": [ - 585, - 586 - ] - }, - { - "teal": 569, - "source": 97, - "pc": [ - 587, - 588 - ] - }, - { - "teal": 570, - "source": 97, - "pc": [ - 589 - ] - }, - { - "teal": 571, - "source": 97, - "pc": [ - 590 - ] - }, - { - "teal": 572, - "source": 97, - "pc": [ - 591 - ] - }, - { - "teal": 573, - "source": 97, - "pc": [ - 592 - ] - }, - { - "teal": 574, - "source": 97, - "pc": [ - 593, - 594 - ] - }, - { - "teal": 575, - "source": 97, - "pc": [ - 595 - ] - }, - { - "teal": 576, - "source": 97, - "pc": [ - 596 - ] - }, - { - "teal": 577, - "source": 97, - "pc": [ - 597 - ] - }, - { - "teal": 578, - "source": 97, - "pc": [ - 598 - ] - }, - { - "teal": 579, - "source": 97, - "pc": [ - 599 - ] - }, - { - "teal": 580, - "source": 97, - "pc": [ - 600 - ] - }, - { - "teal": 581, - "source": 97, - "pc": [ - 601 - ] - }, - { - "teal": 582, - "source": 97, - "pc": [ - 602 - ] - }, - { - "teal": 583, - "source": 97, - "pc": [ - 603 - ] - }, - { - "teal": 584, - "source": 97, - "pc": [ - 604, - 605, - 606 - ] - }, - { - "teal": 585, - "source": 97, - "pc": [ - 607 - ] - }, - { - "teal": 586, - "source": 97, - "pc": [ - 608 - ] - }, - { - "teal": 587, - "source": 97, - "pc": [ - 609 - ] - }, - { - "teal": 588, - "source": 97, - "pc": [ - 610, - 611 - ] - }, - { - "teal": 592, - "source": 99, - "pc": [ - 612, - 613 - ] - }, - { - "teal": 593, - "source": 99, - "pc": [ - 614, - 615 - ] - }, - { - "teal": 594, - "source": 99, - "pc": [ - 616, - 617 - ] - }, - { - "teal": 595, - "source": 99, - "pc": [ - 618, - 619, - 620 - ] - }, - { - "teal": 596, - "source": 99, - "pc": [ - 621 - ] - }, - { - "teal": 597, - "source": 99, - "pc": [ - 622, - 623 - ] - }, - { - "teal": 598, - "source": 99, - "pc": [ - 624 - ] - }, - { - "teal": 599, - "source": 99, - "pc": [ - 625 - ] - }, - { - "teal": 603, - "source": 101, - "pc": [ - 626, - 627 - ] - }, - { - "teal": 604, - "source": 101, - "pc": [ - 628, - 629, - 630 - ] - }, - { - "teal": 605, - "source": 93, - "pc": [ - 631 - ] - }, - { - "teal": 608, - "source": 6, - "pc": [ - 632 - ] - }, - { - "teal": 609, - "source": 6, - "pc": [ - 633 - ] - }, - { - "teal": 612, - "source": 6, - "pc": [ - 634, - 635, - 636, - 637, - 638, - 639 - ] - }, - { - "teal": 613, - "source": 6, - "pc": [ - 640, - 641, - 642 - ] - }, - { - "teal": 614, - "source": 6, - "pc": [ - 643, - 644, - 645, - 646 - ] - }, - { - "teal": 617, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 647 - ] - }, - { - "teal": 620, - "source": 6, - "pc": [ - 648, - 649, - 650, - 651, - 652, - 653 - ] - }, - { - "teal": 621, - "source": 6, - "pc": [ - 654, - 655, - 656, - 657, - 658, - 659 - ] - }, - { - "teal": 622, - "source": 6, - "pc": [ - 660, - 661, - 662, - 663, - 664, - 665 - ] - }, - { - "teal": 623, - "source": 6, - "pc": [ - 666, - 667, - 668, - 669, - 670, - 671 - ] - }, - { - "teal": 624, - "source": 6, - "pc": [ - 672, - 673, - 674 - ] - }, - { - "teal": 625, - "source": 6, - "pc": [ - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684 - ] - }, - { - "teal": 628, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 685 - ] - }, - { - "teal": 631, - "source": 6, - "pc": [ - 686, - 687, - 688 - ] - }, - { - "teal": 632, - "source": 6, - "pc": [ - 689, - 690 - ] - }, - { - "teal": 633, - "source": 6, - "pc": [ - 691, - 692 - ] - }, - { - "teal": 634, - "source": 6, - "pc": [ - 693 - ] - }, - { - "teal": 635, - "source": 6, - "pc": [ - 694, - 695 - ] - }, - { - "teal": 636, - "source": 6, - "pc": [ - 696, - 697 - ] - }, - { - "teal": 637, - "source": 6, - "pc": [ - 698 - ] - }, - { - "teal": 640, - "source": 6, - "pc": [ - 699, - 700, - 701 - ] - }, - { - "teal": 641, - "source": 6, - "pc": [ - 702, - 703 - ] - }, - { - "teal": 642, - "source": 6, - "pc": [ - 704, - 705 - ] - }, - { - "teal": 643, - "source": 6, - "pc": [ - 706 - ] - }, - { - "teal": 644, - "source": 6, - "pc": [ - 707, - 708 - ] - }, - { - "teal": 645, - "source": 6, - "pc": [ - 709, - 710 - ] - }, - { - "teal": 646, - "source": 6, - "pc": [ - 711 - ] - }, - { - "teal": 647, - "source": 6, - "pc": [ - 712 - ] - }, - { - "teal": 648, - "source": 6, - "pc": [ - 713, - 714 - ] - }, - { - "teal": 649, - "source": 6, - "pc": [ - 715 - ] - }, - { - "teal": 650, - "source": 6, - "pc": [ - 716 - ] - }, - { - "teal": 651, - "source": 6, - "pc": [ - 717 - ] - }, - { - "teal": 652, - "source": 6, - "pc": [ - 718, - 719, - 720 - ] - }, - { - "teal": 653, - "source": 6, - "pc": [ - 721, - 722 - ] - }, - { - "teal": 654, - "source": 6, - "pc": [ - 723, - 724 - ] - }, - { - "teal": 655, - "source": 6, - "pc": [ - 725 - ] - }, - { - "teal": 656, - "source": 6, - "pc": [ - 726 - ] - }, - { - "teal": 657, - "source": 6, - "pc": [ - 727, - 728 - ] - }, - { - "teal": 658, - "source": 6, - "pc": [ - 729, - 730 - ] - }, - { - "teal": 659, - "source": 6, - "pc": [ - 731, - 732 - ] - }, - { - "teal": 660, - "source": 6, - "pc": [ - 733, - 734 - ] - }, - { - "teal": 661, - "source": 6, - "pc": [ - 735 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 45 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 56 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 70 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"this.app.address.minBalance - preMBR\"}" + }, + { + "pc": [ + 111 + ], + "errorMessage": "argument 0 (payment) for addAppToWhiteList must be a pay transaction" + }, + { + "pc": [ + 124 + ], + "errorMessage": "argument 2 (boxIndex) for addAppToWhiteList must be a uint16" + }, + { + "pc": [ + 202 + ], + "errorMessage": "box value does not exist: this.whitelist(whitelist).value" + }, + { + "pc": [ + 277 + ], + "errorMessage": "argument 1 (boxIndex) for setAppWhitelist must be a uint16" + }, + { + "pc": [ + 397 + ], + "errorMessage": "failed to cast this.txnGroup[this.txn.groupIndex - 1] to pay" + }, + { + "pc": [ + 410 + ], + "errorMessage": "argument 0 (boxIndex) for deleteWhitelist must be a uint16" + }, + { + "pc": [ + 501 + ], + "errorMessage": "argument 2 (boxIndex) for deleteAppFromWhitelist must be a uint16" + }, + { + "pc": [ + 571 + ], + "errorMessage": "box value does not exist: this.whitelist(whitelist).value" + }, + { + "pc": [ + 591 + ], + "errorMessage": "box value does not exist: this.whitelist(whitelist).value" + }, + { + "pc": [ + 603 + ], + "errorMessage": "box value does not exist: this.whitelist(whitelist).value" + }, + { + "pc": [ + 623 + ], + "errorMessage": "box value does not exist: this.whitelist(whitelist).value" + }, + { + "pc": [ + 692 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 730 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2ZXJpZnlNQlJQYXltZW50KHBheW1lbnQ6IFBheVR4biwgcHJlTUJSOiB1aW50NjQpOiB2b2lkCnZlcmlmeU1CUlBheW1lbnQ6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjEwCgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhbW91bnQ6IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSAtIHByZU1CUiwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIC0yIC8vIHByZU1CUjogdWludDY0CgktCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UgLSBwcmVNQlIifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHNlbmRNQlJQYXltZW50KHByZU1CUjogdWludDY0KTogdm9pZApzZW5kTUJSUGF5bWVudDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTcKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE5CgkvLyBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIC0xIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX2FkZEFwcFRvV2hpdGVMaXN0OgoJLy8gcGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIGFkZEFwcFRvV2hpdGVMaXN0IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMiAoYm94SW5kZXgpIGZvciBhZGRBcHBUb1doaXRlTGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFkZEFwcFRvV2hpdGVMaXN0KHN0cmluZyx1aW50MTYsdWludDY0LHBheSl2b2lkCgljYWxsc3ViIGFkZEFwcFRvV2hpdGVMaXN0CglpbnQgMQoJcmV0dXJuCgovLyBhZGRBcHBUb1doaXRlTGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgcGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLyBBZGQgYXBwIHRvIHdoaXRlbGlzdCBib3gKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gYWRkIHRoZSBhcHAgdG8KLy8gQHBhcmFtIGFwcElEIC0gVGhlIGFwcCBJRCB0byBhZGQgdG8gdGhlIHdoaXRlbGlzdAovLyBAcGFyYW0gcGF5bWVudCAtIFRoZSBwYXltZW50IHRyYW5zYWN0aW9uIHRvIGNvdmVyIHRoZSBNQlIgY2hhbmdlCmFkZEFwcFRvV2hpdGVMaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzMKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjM0CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNgoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5leGlzdHMKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNwoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5wdXNoKGFwcElEKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRDogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjM5CgkvLyBuZXdXaGl0ZWxpc3Q6IHVpbnQ2NFtdID0gW2FwcElEXQoJZnJhbWVfZGlnIC0zIC8vIGFwcElEOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMiAvLyBuZXdXaGl0ZWxpc3Q6IHVpbnQ2NFtdCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZSA9IG5ld1doaXRlbGlzdAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMiAvLyBuZXdXaGl0ZWxpc3Q6IHVpbnQ2NFtdCglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MwoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHBheW1lbnQsIHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gcGF5bWVudDogUGF5VHhuCgljYWxsc3ViIHZlcmlmeU1CUlBheW1lbnQKCXJldHN1YgoKLy8gc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3NldEFwcFdoaXRlbGlzdDoKCS8vIGFwcElEczogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGJveEluZGV4KSBmb3Igc2V0QXBwV2hpdGVsaXN0IG11c3QgYmUgYSB1aW50MTYKCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoJY2FsbHN1YiBzZXRBcHBXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIHNldEFwcFdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSURzOiB1aW50NjRbXSk6IHZvaWQKLy8KLy8gU2V0cyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIuIFNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiBhZGRpbmcvcmVtb3ZpbmcKLy8gbW9yZSB0aGFuIG9uZSBhcHAKLy8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIHB1dCB0aGUgYXBwIElEcyBpbgovLyBAcGFyYW0gYXBwSURzIC0gQXJyYXkgb2YgYXBwIElEcyB0aGF0IHNpZ25pZnkgdGhlIHdoaXRlbGlzdGVkIGFwcHMKc2V0QXBwV2hpdGVsaXN0OgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NTUKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU2CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU4CgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLmRlbGV0ZSgpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NjAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUgPSBhcHBJRHMKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJZnJhbWVfZGlnIC0zIC8vIGFwcElEczogdWludDY0W10KCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYm94X3B1dAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYyCgkvLyBwcmVNQlIgPiB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCT4KCWJ6ICppZjFfZWxzZQoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo2MwoJLy8gdGhpcy5zZW5kTUJSUGF5bWVudChwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJY2FsbHN1YiBzZW5kTUJSUGF5bWVudAoJYiAqaWYxX2VuZAoKKmlmMV9lbHNlOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo2NQoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHRoaXMudHhuR3JvdXBbdGhpcy50eG4uZ3JvdXBJbmRleCAtIDFdIGFzIFBheVR4biwgcHJlTUJSKQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCgkvLyBmYWlsZWQgdG8gY2FzdCB0aGlzLnR4bkdyb3VwW3RoaXMudHhuLmdyb3VwSW5kZXggLSAxXSB0byBwYXkKCWFzc2VydAoJY2FsbHN1YiB2ZXJpZnlNQlJQYXltZW50CgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoqYWJpX3JvdXRlX2RlbGV0ZVdoaXRlbGlzdDoKCS8vIGJveEluZGV4OiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAwIChib3hJbmRleCkgZm9yIGRlbGV0ZVdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZVdoaXRlbGlzdChzdHJpbmcsdWludDE2KXZvaWQKCWNhbGxzdWIgZGVsZXRlV2hpdGVsaXN0CglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVXaGl0ZWxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYpOiB2b2lkCi8vCi8vIERlbGV0ZXMgYSBhcHAgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBhcmMgLSBUaGUgQVJDIHRoZSB3aGl0ZWxpc3QgY29ycmVzcG9uZHMgdG8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIGRlbGV0ZQpkZWxldGVXaGl0ZWxpc3Q6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo3NwoJLy8gcHJlTUJSID0gdGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMCAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NzgKCS8vIHdoaXRlbGlzdDogV2hpdGVsaXN0ID0geyBhY2NvdW50OiB0aGlzLnR4bi5zZW5kZXIsIGJveEluZGV4OiBib3hJbmRleCwgYXJjOiBhcmMgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAyNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQxNgoJaXRvYgoJZXh0cmFjdCA2IDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMSAvLyBhcmM6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6ODAKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZGVsCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo4MgoJLy8gdGhpcy5zZW5kTUJSUGF5bWVudChwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJY2FsbHN1YiBzZW5kTUJSUGF5bWVudAoJcmV0c3ViCgovLyBkZWxldGVBcHBGcm9tV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwRnJvbVdoaXRlbGlzdDoKCS8vIGluZGV4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKGJveEluZGV4KSBmb3IgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdAoJaW50IDEKCXJldHVybgoKLy8gZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgaW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCBmcm9tIGEgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBkZWxldGUgZnJvbQovLyBAcGFyYW0gYXBwSUQgLSBUaGUgYXBwIElEIHRvIGRlbGV0ZSBmcm9tIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBhcHAgaW4gdGhlIHdoaXRlbGlzdApkZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTQKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk1CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk3CgkvLyBzcGxpY2VkID0gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZQoJYXNzZXJ0CglleHRyYWN0IDIgMAoJaW50IDEKCWZyYW1lX2RpZyAtNCAvLyBpbmRleDogdWludDY0CglpbnQgOAoJKgoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZQoJYXNzZXJ0CglleHRyYWN0IDIgMAoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgOAoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CglmcmFtZV9idXJ5IDIgLy8gc3BsaWNlZDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk5CgkvLyBhc3NlcnQoc3BsaWNlZFswXSA9PT0gYXBwSUQpCglmcmFtZV9kaWcgMiAvLyBzcGxpY2VkOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTAxCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAic2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZCIKCW1ldGhvZCAiZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZCIKCW1ldGhvZCAiZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3QgKmFiaV9yb3V0ZV9zZXRBcHBXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHggMHgwMDI0CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdmVyaWZ5TUJSUGF5bWVudChwYXltZW50OiBQYXlUeG4sIHByZU1CUjogdWludDY0KTogdm9pZAp2ZXJpZnlNQlJQYXltZW50OgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czoxMAoJLy8gdmVyaWZ5UGF5VHhuKHBheW1lbnQsIHsKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UgLSBwcmVNQlIsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAtMiAvLyBwcmVNQlI6IHVpbnQ2NAoJLQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlIC0gcHJlTUJSIn0KCWFzc2VydAoJcmV0c3ViCgovLyBzZW5kTUJSUGF5bWVudChwcmVNQlI6IHVpbnQ2NCk6IHZvaWQKc2VuZE1CUlBheW1lbnQ6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE3CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgYW1vdW50OiBwcmVNQlIgLSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjE5CgkvLyBhbW91bnQ6IHByZU1CUiAtIHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIC0xIC8vIHByZU1CUjogdWludDY0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYWRkQXBwVG9XaGl0ZUxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQscGF5KXZvaWQKKmFiaV9yb3V0ZV9hZGRBcHBUb1doaXRlTGlzdDoKCS8vIHBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIGFkZEFwcFRvV2hpdGVMaXN0IG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJcHVzaGludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKGJveEluZGV4KSBmb3IgYWRkQXBwVG9XaGl0ZUxpc3QgbXVzdCBiZSBhIHVpbnQxNgoJYXNzZXJ0CglidG9pCgoJLy8gYXJjOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBhZGRBcHBUb1doaXRlTGlzdAoJaW50IDEKCXJldHVybgoKLy8gYWRkQXBwVG9XaGl0ZUxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYsIGFwcElEOiB1aW50NjQsIHBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gQWRkIGFwcCB0byB3aGl0ZWxpc3QgYm94Ci8vCi8vIEBwYXJhbSBhcmMgLSBUaGUgQVJDIHRoZSB3aGl0ZWxpc3QgY29ycmVzcG9uZHMgdG8KLy8gQHBhcmFtIGJveEluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSB3aGl0ZWxpc3QgYm94IHRvIGFkZCB0aGUgYXBwIHRvCi8vIEBwYXJhbSBhcHBJRCAtIFRoZSBhcHAgSUQgdG8gYWRkIHRvIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIHBheW1lbnQgLSBUaGUgcGF5bWVudCB0cmFuc2FjdGlvbiB0byBjb3ZlciB0aGUgTUJSIGNoYW5nZQphZGRBcHBUb1doaXRlTGlzdDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjMzCgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czozNAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzYKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkuZXhpc3RzCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzcKCS8vIHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUucHVzaChhcHBJRCkKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MzkKCS8vIG5ld1doaXRlbGlzdDogdWludDY0W10gPSBbYXBwSURdCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAyIC8vIG5ld1doaXRlbGlzdDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjQwCgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlID0gbmV3V2hpdGVsaXN0CglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAyIC8vIG5ld1doaXRlbGlzdDogdWludDY0W10KCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo0MwoJLy8gdGhpcy52ZXJpZnlNQlJQYXltZW50KHBheW1lbnQsIHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gcGF5bWVudDogUGF5VHhuCgljYWxsc3ViIHZlcmlmeU1CUlBheW1lbnQKCXJldHN1YgoKLy8gc2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZAoqYWJpX3JvdXRlX3NldEFwcFdoaXRlbGlzdDoKCS8vIGFwcElEczogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gYm94SW5kZXg6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCXB1c2hpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAxIChib3hJbmRleCkgZm9yIHNldEFwcFdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldEFwcFdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NFtdKXZvaWQKCWNhbGxzdWIgc2V0QXBwV2hpdGVsaXN0CglpbnQgMQoJcmV0dXJuCgovLyBzZXRBcHBXaGl0ZWxpc3QoYXJjOiBzdHJpbmcsIGJveEluZGV4OiB1aW50MTYsIGFwcElEczogdWludDY0W10pOiB2b2lkCi8vCi8vIFNldHMgYSBhcHAgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyLiBTaG91bGQgb25seSBiZSB1c2VkIHdoZW4gYWRkaW5nL3JlbW92aW5nCi8vIG1vcmUgdGhhbiBvbmUgYXBwCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBwdXQgdGhlIGFwcCBJRHMgaW4KLy8gQHBhcmFtIGFwcElEcyAtIEFycmF5IG9mIGFwcCBJRHMgdGhhdCBzaWduaWZ5IHRoZSB3aGl0ZWxpc3RlZCBhcHBzCnNldEFwcFdoaXRlbGlzdDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjU1CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo1NgoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo1OAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYwCgkvLyB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlID0gYXBwSURzCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAtMyAvLyBhcHBJRHM6IHVpbnQ2NFtdCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6NjIKCS8vIHByZU1CUiA+IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZnJhbWVfZGlnIDAgLy8gcHJlTUJSOiB1aW50NjQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJPgoJYnogKmlmMV9lbHNlCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjYzCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CgliICppZjFfZW5kCgoqaWYxX2Vsc2U6CgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjY1CgkvLyB0aGlzLnZlcmlmeU1CUlBheW1lbnQodGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0gYXMgUGF5VHhuLCBwcmVNQlIpCglmcmFtZV9kaWcgMCAvLyBwcmVNQlI6IHVpbnQ2NAoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gZmFpbGVkIHRvIGNhc3QgdGhpcy50eG5Hcm91cFt0aGlzLnR4bi5ncm91cEluZGV4IC0gMV0gdG8gcGF5Cglhc3NlcnQKCWNhbGxzdWIgdmVyaWZ5TUJSUGF5bWVudAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIGRlbGV0ZVdoaXRlbGlzdChzdHJpbmcsdWludDE2KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3Q6CgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJcHVzaGludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGJveEluZGV4KSBmb3IgZGVsZXRlV2hpdGVsaXN0IG11c3QgYmUgYSB1aW50MTYKCWFzc2VydAoJYnRvaQoKCS8vIGFyYzogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZAoJY2FsbHN1YiBkZWxldGVXaGl0ZWxpc3QKCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNik6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCB3aGl0ZWxpc3QgZm9yIHRoZSBzZW5kZXIKLy8KLy8gQHBhcmFtIGFyYyAtIFRoZSBBUkMgdGhlIHdoaXRlbGlzdCBjb3JyZXNwb25kcyB0bwovLyBAcGFyYW0gYm94SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHdoaXRlbGlzdCBib3ggdG8gZGVsZXRlCmRlbGV0ZVdoaXRlbGlzdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjc3CgkvLyBwcmVNQlIgPSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJZnJhbWVfYnVyeSAwIC8vIHByZU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo3OAoJLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QgPSB7IGFjY291bnQ6IHRoaXMudHhuLnNlbmRlciwgYm94SW5kZXg6IGJveEluZGV4LCBhcmM6IGFyYyB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDI0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDE2CglpdG9iCglleHRyYWN0IDYgMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0xIC8vIGFyYzogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0CgoJLy8gZXhhbXBsZXMvYXJjNzUvYXJjNzUuYWxnby50czo4MAoJLy8gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS5kZWxldGUoKQoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9kZWwKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjgyCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCi8vIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJLy8gaW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIGFwcElEOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJcHVzaGludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKGJveEluZGV4KSBmb3IgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhcmM6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGRlbGV0ZUFwcEZyb21XaGl0ZWxpc3Qoc3RyaW5nLHVpbnQxNix1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwRnJvbVdoaXRlbGlzdAoJaW50IDEKCXJldHVybgoKLy8gZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChhcmM6IHN0cmluZywgYm94SW5kZXg6IHVpbnQxNiwgYXBwSUQ6IHVpbnQ2NCwgaW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGFwcCBmcm9tIGEgd2hpdGVsaXN0IGZvciB0aGUgc2VuZGVyCi8vCi8vIEBwYXJhbSBib3hJbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgd2hpdGVsaXN0IGJveCB0byBkZWxldGUgZnJvbQovLyBAcGFyYW0gYXBwSUQgLSBUaGUgYXBwIElEIHRvIGRlbGV0ZSBmcm9tIHRoZSB3aGl0ZWxpc3QKLy8gQHBhcmFtIGluZGV4IC0gVGhlIGluZGV4IG9mIHRoZSBhcHAgaW4gdGhlIHdoaXRlbGlzdApkZWxldGVBcHBGcm9tV2hpdGVsaXN0OgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6OTQKCS8vIHByZU1CUiA9IHRoaXMuYXBwLmFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCglmcmFtZV9idXJ5IDAgLy8gcHJlTUJSOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk1CgkvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdCA9IHsgYWNjb3VudDogdGhpcy50eG4uc2VuZGVyLCBib3hJbmRleDogYm94SW5kZXgsIGFyYzogYXJjIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMjQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50MTYKCWl0b2IKCWV4dHJhY3QgNiAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTEgLy8gYXJjOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk3CgkvLyBzcGxpY2VkID0gdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpCglmcmFtZV9kaWcgMSAvLyB3aGl0ZWxpc3Q6IFdoaXRlbGlzdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy53aGl0ZWxpc3Qod2hpdGVsaXN0KS52YWx1ZQoJYXNzZXJ0CglleHRyYWN0IDIgMAoJaW50IDEKCWZyYW1lX2RpZyAtNCAvLyBpbmRleDogdWludDY0CglwdXNoaW50IDgKCSoKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXB1c2hpbnQgMTYKCXN0b3JlIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglwdXNoaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMud2hpdGVsaXN0KHdoaXRlbGlzdCkudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJcHVzaGludCA4CgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2RpZyAxIC8vIHdoaXRlbGlzdDogV2hpdGVsaXN0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLndoaXRlbGlzdCh3aGl0ZWxpc3QpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJcHVzaGludCA4CgktCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfZGlnIDEgLy8gd2hpdGVsaXN0OiBXaGl0ZWxpc3QKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CglmcmFtZV9idXJ5IDIgLy8gc3BsaWNlZDogdWludDY0W10KCgkvLyBleGFtcGxlcy9hcmM3NS9hcmM3NS5hbGdvLnRzOjk5CgkvLyBhc3NlcnQoc3BsaWNlZFswXSA9PT0gYXBwSUQpCglmcmFtZV9kaWcgMiAvLyBzcGxpY2VkOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYXBwSUQ6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FyYzc1L2FyYzc1LmFsZ28udHM6MTAxCgkvLyB0aGlzLnNlbmRNQlJQYXltZW50KHByZU1CUikKCWZyYW1lX2RpZyAwIC8vIHByZU1CUjogdWludDY0CgljYWxsc3ViIHNlbmRNQlJQYXltZW50CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NDY3YzdjYmQgLy8gbWV0aG9kICJhZGRBcHBUb1doaXRlTGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCxwYXkpdm9pZCIKCXB1c2hieXRlcyAweGQxOThmY2I4IC8vIG1ldGhvZCAic2V0QXBwV2hpdGVsaXN0KHN0cmluZyx1aW50MTYsdWludDY0W10pdm9pZCIKCXB1c2hieXRlcyAweDdjMzNlODMyIC8vIG1ldGhvZCAiZGVsZXRlV2hpdGVsaXN0KHN0cmluZyx1aW50MTYpdm9pZCIKCXB1c2hieXRlcyAweDdlMTY3NGFjIC8vIG1ldGhvZCAiZGVsZXRlQXBwRnJvbVdoaXRlbGlzdChzdHJpbmcsdWludDE2LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWRkQXBwVG9XaGl0ZUxpc3QgKmFiaV9yb3V0ZV9zZXRBcHBXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVXaGl0ZWxpc3QgKmFiaV9yb3V0ZV9kZWxldGVBcHBGcm9tV2hpdGVsaXN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQgCACYCAAIAJDEYFIEGCzEZCI0MAlgAAAAAAAAAAAAAAkoAAAAAAAAAAAAAAIoCAIv/OAcyChJEi/84CDIKcwFIi/4JEkSJigEAsSKyEDEAsgeL/zIKcwFICbIIJbIBs4kxFiIJSTgQIhJENhoDFzYaAkkVJBJEFzYaAVcCAIgAAiJDigQAKEcCMgpzAUiMACgoKTEAiAISi/4WVwYCiAIJi/9JFRZXBgJMUIgCCUhQjAGLAb1MSEEAH4sBvkRXAgCL/RZQiwFJvEhMSRUjChZXBgJMUL9CABeL/RaMAosBSbxIiwJJFSMKFlcGAkxQv4sAi/yI/zaJNhoDVwIANhoCSRUkEkQXNhoBVwIAiAACIkOKAwAoSTIKcwFIjAAoKCkxAIgBhIv+FlcGAogBe4v/SRUWVwYCTFCIAXtIUIwBiwG8iwFJvEiL/UkVIwoWVwYCTFC/iwAyCnMBSA1BAAiLAIj+4kIAD4sAMRYiCUk4ECISRIj+tok2GgJJFSQSRBc2GgFXAgCIAAIiQ4oCAChJMgpzAUiMACgoKTEAiAEKi/4WVwYCiAEBi/9JFRZXBgJMUIgBAUhQjAGLAbyLAIj+hYk2GgQXNhoDFzYaAkkVJBJEFzYaAVcCAIgAAiJDigQAKEcCMgpzAUiMACgoKTEAiAC2i/4WVwYCiACti/9JFRZXBgJMUIgArUhQjAGLAb5EVwIAIov8Iws194EQNfaLAb5EVwIAJTT3UosBvkRXAgBJFTT3NPYIIwlMUlCLAb5EVwIANPc09iMJWEyLAUm8SExJFSMKFlcGAkxQv4wCiwI1/zT/VwAIF4v9EkSLAIj91IkiQ4AEuER7NjYaAI4B//EAgARGfHy9gATRmPy4gAR8M+gygAR+FnSsNhoAjgT9uP5P/s//GgCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiABASYCAAIAJDEYFIEGCzEZCI0MAogAAAAAAAAAAAAAAnoAAAAAAAAAAAAAAIoCAIv/OAcyChJEi/84CDIKcwFIi/4JEkSJigEAsYEBshAxALIHi/8yCnMBSAmyCIEAsgGziTEWgQEJSTgQgQESRDYaAxc2GgJJFYECEkQXNhoBVwIAiAADgQFDigQAgABHAjIKcwFIjACAAIAAgAIAJDEAiAI2i/4WVwYCiAIti/9JFRZXBgJMUIgCLUhQjAGLAb1MSEEAIIsBvkRXAgCL/RZQiwFJvEhMSRWBCAoWVwYCTFC/QgAYi/0WjAKLAUm8SIsCSRWBCAoWVwYCTFC/iwCL/Ij/KIk2GgNXAgA2GgJJFYECEkQXNhoBVwIAiAADgQFDigMAgABJMgpzAUiMAIAAgACAAgAkMQCIAZ6L/hZXBgKIAZWL/0kVFlcGAkxQiAGVSFCMAYsBvIsBSbxIi/1JFYEIChZXBgJMUL+LADIKcwFIDUEACIsAiP7LQgARiwAxFoEBCUk4EIEBEkSI/p2JNhoCSRWBAhJEFzYaAVcCAIgAA4EBQ4oCAIAASTIKcwFIjACAAIAAgAIAJDEAiAEZi/4WVwYCiAEQi/9JFRZXBgJMUIgBEEhQjAGLAbyLAIj+ZIk2GgQXNhoDFzYaAkkVgQISRBc2GgFXAgCIAAOBAUOKBACAAEcCMgpzAUiMAIAAgACAAgAkMQCIAL2L/hZXBgKIALSL/0kVFlcGAkxQiAC0SFCMAYsBvkRXAgCBAYv8gQgLNfeBEDX2iwG+RFcCAIEANPdSiwG+RFcCAEkVNPc09giBCAlMUlCLAb5EVwIANPc09oEICVhMiwFJvEhMSRWBCAoWVwYCTFC/jAKLAjX/NP9XAAgXi/0SRIsAiP2liYEBQ4AEuER7NjYaAI4B//AAgARGfHy9gATRmPy4gAR8M+gygAR+FnSsNhoAjgT9iv4t/rj/CwCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/arc75/artifacts/ARC75.src_map.json b/examples/arc75/artifacts/ARC75.src_map.json index 01294b8db..b5f195808 100644 --- a/examples/arc75/artifacts/ARC75.src_map.json +++ b/examples/arc75/artifacts/ARC75.src_map.json @@ -1,72 +1,84 @@ [ { "teal": 1, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 0, 1, 2, - 3, + 3 + ] + }, + { + "teal": 3, + "source": "examples/arc75/arc75.algo.ts:6", + "pc": [ 4, 5, 6, 7, 8, - 9, + 9 + ] + }, + { + "teal": 15, + "source": "examples/arc75/arc75.algo.ts:6", + "pc": [ 10, - 11, + 11 + ] + }, + { + "teal": 16, + "source": "examples/arc75/arc75.algo.ts:6", + "pc": [ 12 ] }, { - "teal": 13, - "source": 6, + "teal": 17, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ 13, 14 ] }, { - "teal": 14, - "source": 6, + "teal": 18, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ 15 ] }, { - "teal": 15, - "source": 6, + "teal": 19, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ 16, 17 ] }, { - "teal": 16, - "source": 6, + "teal": 20, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ 18 ] }, { - "teal": 17, - "source": 6, + "teal": 21, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ 19, - 20 - ] - }, - { - "teal": 18, - "source": 6, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 6, - "pc": [ + 20, + 21, 22, 23, 24, @@ -89,469 +101,457 @@ 41, 42, 43, - 44, - 45, - 46, - 47 + 44 ] }, { - "teal": 23, - "source": 6, + "teal": 25, + "source": "examples/arc75/arc75.algo.ts:6", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ + 45 + ] + }, + { + "teal": 29, + "source": "examples/arc75/arc75.algo.ts:9", + "pc": [ + 46, + 47, 48 ] }, { - "teal": 27, - "source": 9, + "teal": 37, + "source": "examples/arc75/arc75.algo.ts:10", "pc": [ 49, - 50, - 51 + 50 + ] + }, + { + "teal": 38, + "source": "examples/arc75/arc75.algo.ts:11", + "pc": [ + 51, + 52 ] }, { - "teal": 35, - "source": 10, + "teal": 39, + "source": "examples/arc75/arc75.algo.ts:11", "pc": [ - 52, - 53 + 53, + 54 ] }, { - "teal": 36, - "source": 11, + "teal": 40, + "source": "examples/arc75/arc75.algo.ts:11", "pc": [ - 54, 55 ] }, { - "teal": 37, - "source": 11, + "teal": 43, + "source": "examples/arc75/arc75.algo.ts:11", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 56, - 57 + 56 ] }, { - "teal": 38, - "source": 11, + "teal": 46, + "source": "examples/arc75/arc75.algo.ts:10", "pc": [ + 57, 58 ] }, { - "teal": 41, - "source": 11, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 47, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ - 59 + 59, + 60 ] }, { - "teal": 44, - "source": 10, + "teal": 48, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ - 60, - 61 + 61, + 62 ] }, { - "teal": 45, - "source": 12, + "teal": 49, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ - 62, - 63 + 63, + 64 ] }, { - "teal": 46, - "source": 12, + "teal": 50, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ - 64, 65 ] }, { - "teal": 47, - "source": 12, + "teal": 51, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ 66, 67 ] }, { - "teal": 48, - "source": 12, + "teal": 52, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ 68 ] }, { - "teal": 49, - "source": 12, + "teal": 53, + "source": "examples/arc75/arc75.algo.ts:12", "pc": [ - 69, - 70 + 69 ] }, { - "teal": 50, - "source": 12, + "teal": 56, + "source": "examples/arc75/arc75.algo.ts:12", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"this.app.address.minBalance - preMBR\"}", "pc": [ - 71 + 70 ] }, { - "teal": 51, - "source": 12, + "teal": 57, + "source": "examples/arc75/arc75.algo.ts:9", "pc": [ - 72 + 71 ] }, { - "teal": 54, - "source": 12, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"expected\":\"this.app.address.minBalance - preMBR\"}", + "teal": 61, + "source": "examples/arc75/arc75.algo.ts:16", "pc": [ - 73 + 72, + 73, + 74 ] }, { - "teal": 55, - "source": 9, + "teal": 68, + "source": "examples/arc75/arc75.algo.ts:17", "pc": [ - 74 + 75 ] }, { - "teal": 59, - "source": 16, + "teal": 69, + "source": "examples/arc75/arc75.algo.ts:17", "pc": [ - 75, 76, 77 ] }, { - "teal": 66, - "source": 17, - "pc": [ - 78 - ] - }, - { - "teal": 67, - "source": 17, + "teal": 70, + "source": "examples/arc75/arc75.algo.ts:17", "pc": [ + 78, 79 ] }, { - "teal": 68, - "source": 17, + "teal": 74, + "source": "examples/arc75/arc75.algo.ts:18", "pc": [ 80, 81 ] }, { - "teal": 72, - "source": 18, + "teal": 75, + "source": "examples/arc75/arc75.algo.ts:18", "pc": [ 82, 83 ] }, { - "teal": 73, - "source": 18, + "teal": 79, + "source": "examples/arc75/arc75.algo.ts:19", "pc": [ 84, 85 ] }, { - "teal": 77, - "source": 19, + "teal": 80, + "source": "examples/arc75/arc75.algo.ts:19", "pc": [ 86, 87 ] }, { - "teal": 78, - "source": 19, + "teal": 81, + "source": "examples/arc75/arc75.algo.ts:19", "pc": [ 88, 89 ] }, { - "teal": 79, - "source": 19, + "teal": 82, + "source": "examples/arc75/arc75.algo.ts:19", "pc": [ - 90, - 91 + 90 ] }, { - "teal": 80, - "source": 19, + "teal": 83, + "source": "examples/arc75/arc75.algo.ts:19", "pc": [ - 92 + 91 ] }, { - "teal": 81, - "source": 19, + "teal": 84, + "source": "examples/arc75/arc75.algo.ts:19", "pc": [ + 92, 93 ] }, { - "teal": 82, - "source": 19, + "teal": 87, + "source": "examples/arc75/arc75.algo.ts:17", "pc": [ 94, 95 ] }, { - "teal": 85, - "source": 17, + "teal": 88, + "source": "examples/arc75/arc75.algo.ts:17", "pc": [ - 96 + 96, + 97 ] }, { - "teal": 86, - "source": 17, + "teal": 91, + "source": "examples/arc75/arc75.algo.ts:17", "pc": [ - 97, 98 ] }, { - "teal": 89, - "source": 17, + "teal": 92, + "source": "examples/arc75/arc75.algo.ts:16", "pc": [ 99 ] }, { - "teal": 90, - "source": 16, - "pc": [ - 100 - ] - }, - { - "teal": 95, - "source": 32, + "teal": 97, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 101, - 102 + 100, + 101 ] }, { - "teal": 96, - "source": 32, + "teal": 98, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ + 102, 103 ] }, { - "teal": 97, - "source": 32, + "teal": 99, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 104 ] }, { - "teal": 98, - "source": 32, + "teal": 100, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 105 ] }, { - "teal": 99, - "source": 32, + "teal": 101, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 106, 107 ] }, { - "teal": 100, - "source": 32, - "pc": [ - 108 - ] - }, - { - "teal": 101, - "source": 32, + "teal": 102, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ + 108, 109 ] }, { - "teal": 104, - "source": 32, - "errorMessage": "argument 0 (payment) for addAppToWhiteList must be a pay transaction", + "teal": 103, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 110 ] }, { - "teal": 107, - "source": 32, + "teal": 106, + "source": "examples/arc75/arc75.algo.ts:32", + "errorMessage": "argument 0 (payment) for addAppToWhiteList must be a pay transaction", "pc": [ - 111, - 112, - 113 + 111 ] }, { - "teal": 108, - "source": 32, + "teal": 109, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ + 112, + 113, 114 ] }, { - "teal": 111, - "source": 32, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 112, - "source": 32, + "teal": 110, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 118 + 115 ] }, { "teal": 113, - "source": 32, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 119 + 116, + 117, + 118 ] }, { "teal": 114, - "source": 32, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 120 + 119 ] }, { "teal": 115, - "source": 32, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 121 + 120 ] }, { - "teal": 118, - "source": 32, - "errorMessage": "argument 2 (boxIndex) for addAppToWhiteList must be a uint16", + "teal": 116, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ + 121, 122 ] }, { - "teal": 119, - "source": 32, + "teal": 117, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 123 ] }, { - "teal": 122, - "source": 32, + "teal": 120, + "source": "examples/arc75/arc75.algo.ts:32", + "errorMessage": "argument 2 (boxIndex) for addAppToWhiteList must be a uint16", "pc": [ - 124, - 125, - 126 + 124 ] }, { - "teal": 123, - "source": 32, + "teal": 121, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 127, - 128, - 129 + 125 ] }, { - "teal": 126, - "source": 32, + "teal": 124, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 130, - 131, - 132 + 126, + 127, + 128 ] }, { - "teal": 127, - "source": 32, + "teal": 125, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 133 + 129, + 130, + 131 ] }, { "teal": 128, - "source": 32, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ + 132, + 133, 134 ] }, { - "teal": 139, - "source": 32, + "teal": 129, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 135, - 136, - 137 + 136 ] }, { - "teal": 142, - "source": 32, + "teal": 130, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 138 + 137 ] }, { - "teal": 143, - "source": 32, + "teal": 141, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ + 138, 139, 140 ] }, { - "teal": 147, - "source": 33, + "teal": 144, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 141, 142 ] }, { - "teal": 148, - "source": 33, + "teal": 145, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ 143, 144 @@ -559,2668 +559,2725 @@ }, { "teal": 149, - "source": 33, + "source": "examples/arc75/arc75.algo.ts:33", "pc": [ - 145 + 145, + 146 ] }, { "teal": 150, - "source": 33, + "source": "examples/arc75/arc75.algo.ts:33", "pc": [ - 146, - 147 + 147, + 148 ] }, { - "teal": 154, - "source": 34, + "teal": 151, + "source": "examples/arc75/arc75.algo.ts:33", "pc": [ - 148 + 149 ] }, { - "teal": 155, - "source": 34, + "teal": 152, + "source": "examples/arc75/arc75.algo.ts:33", "pc": [ - 149 + 150, + 151 ] }, { "teal": 156, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 150 + 152, + 153 ] }, { "teal": 157, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 151, - 152 + 154, + 155 ] }, { "teal": 158, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 153, - 154, - 155 + 156, + 157, + 158, + 159 ] }, { "teal": 159, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 156, - 157 + 160, + 161 ] }, { "teal": 160, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 158 + 162, + 163, + 164 ] }, { "teal": 161, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 159, - 160, - 161 + 165, + 166 ] }, { "teal": 162, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 162, - 163, - 164 + 167 ] }, { "teal": 163, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 165, - 166 + 168, + 169, + 170 ] }, { "teal": 164, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 167 + 171, + 172, + 173 ] }, { "teal": 165, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 168 + 174, + 175 ] }, { "teal": 166, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 169 + 176 ] }, { "teal": 167, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 170, - 171, - 172 + 177 ] }, { "teal": 168, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 173 + 178 ] }, { "teal": 169, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 174 + 179, + 180, + 181 ] }, { "teal": 170, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 175, - 176, - 177 + 182 ] }, { "teal": 171, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 178 + 183 ] }, { "teal": 172, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 179 + 184, + 185, + 186 ] }, { "teal": 173, - "source": 34, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 180, - 181 + 187 ] }, { - "teal": 178, - "source": 36, + "teal": 174, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 182, - 183 + 188 ] }, { - "teal": 179, - "source": 36, + "teal": 175, + "source": "examples/arc75/arc75.algo.ts:34", "pc": [ - 184 + 189, + 190 ] }, { "teal": 180, - "source": 36, + "source": "examples/arc75/arc75.algo.ts:36", "pc": [ - 185 + 191, + 192 ] }, { "teal": 181, - "source": 36, + "source": "examples/arc75/arc75.algo.ts:36", "pc": [ - 186 + 193 ] }, { "teal": 182, - "source": 36, + "source": "examples/arc75/arc75.algo.ts:36", "pc": [ - 187, - 188, - 189 + 194 ] }, { - "teal": 187, - "source": 37, + "teal": 183, + "source": "examples/arc75/arc75.algo.ts:36", "pc": [ - 190, - 191 + 195 ] }, { - "teal": 188, - "source": 37, + "teal": 184, + "source": "examples/arc75/arc75.algo.ts:36", "pc": [ - 192 + 196, + 197, + 198 ] }, { - "teal": 191, - "source": 37, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", + "teal": 189, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 193 + 199, + 200 ] }, { - "teal": 192, - "source": 37, + "teal": 190, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 194, - 195, - 196 + 201 ] }, { "teal": 193, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", + "errorMessage": "box value does not exist: this.whitelist(whitelist).value", "pc": [ - 197, - 198 + 202 ] }, { "teal": 194, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 199 + 203, + 204, + 205 ] }, { "teal": 195, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 200 + 206, + 207 ] }, { "teal": 196, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 201, - 202 + 208 ] }, { "teal": 197, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 203 + 209 ] }, { "teal": 198, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 204 + 210, + 211 ] }, { "teal": 199, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 205 + 212 ] }, { "teal": 200, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 206 + 213 ] }, { "teal": 201, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 207 + 214 ] }, { "teal": 202, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 208 + 215 ] }, { "teal": 203, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 209 + 216 ] }, { "teal": 204, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 210 + 217 ] }, { "teal": 205, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 211 + 218, + 219 ] }, { "teal": 206, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 212, - 213, - 214 + 220 ] }, { "teal": 207, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 215 + 221 ] }, { "teal": 208, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 216 + 222, + 223, + 224 ] }, { "teal": 209, - "source": 37, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 217 + 225 ] }, { "teal": 210, - "source": 36, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 218, - 219, - 220 + 226 ] }, { - "teal": 215, - "source": 39, + "teal": 211, + "source": "examples/arc75/arc75.algo.ts:37", "pc": [ - 221, - 222 + 227 ] }, { - "teal": 216, - "source": 39, + "teal": 212, + "source": "examples/arc75/arc75.algo.ts:36", "pc": [ - 223 + 228, + 229, + 230 ] }, { "teal": 217, - "source": 39, + "source": "examples/arc75/arc75.algo.ts:39", "pc": [ - 224, - 225 + 231, + 232 ] }, { - "teal": 221, - "source": 40, + "teal": 218, + "source": "examples/arc75/arc75.algo.ts:39", "pc": [ - 226, - 227 + 233 ] }, { - "teal": 222, - "source": 40, + "teal": 219, + "source": "examples/arc75/arc75.algo.ts:39", "pc": [ - 228 + 234, + 235 ] }, { "teal": 223, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 229 + 236, + 237 ] }, { "teal": 224, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 230 + 238 ] }, { "teal": 225, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 231, - 232 + 239 ] }, { "teal": 226, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 233 + 240 ] }, { "teal": 227, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 234 + 241, + 242 ] }, { "teal": 228, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 235 + 243 ] }, { "teal": 229, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 236 + 244 ] }, { "teal": 230, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 237 + 245, + 246 ] }, { "teal": 231, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 238, - 239, - 240 + 247 ] }, { "teal": 232, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 241 + 248 ] }, { "teal": 233, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 242 + 249, + 250, + 251 ] }, { "teal": 234, - "source": 40, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 243 + 252 ] }, { - "teal": 239, - "source": 43, + "teal": 235, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 244, - 245 + 253 ] }, { - "teal": 240, - "source": 43, + "teal": 236, + "source": "examples/arc75/arc75.algo.ts:40", "pc": [ - 246, - 247 + 254 ] }, { "teal": 241, - "source": 43, + "source": "examples/arc75/arc75.algo.ts:43", "pc": [ - 248, - 249, - 250 + 255, + 256 ] }, { "teal": 242, - "source": 32, + "source": "examples/arc75/arc75.algo.ts:43", "pc": [ - 251 + 257, + 258 ] }, { - "teal": 247, - "source": 54, + "teal": 243, + "source": "examples/arc75/arc75.algo.ts:43", "pc": [ - 252, - 253, - 254 + 259, + 260, + 261 ] }, { - "teal": 248, - "source": 54, + "teal": 244, + "source": "examples/arc75/arc75.algo.ts:32", "pc": [ - 255, - 256, - 257 + 262 ] }, { - "teal": 251, - "source": 54, + "teal": 249, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 258, - 259, - 260 + 263, + 264, + 265 ] }, { - "teal": 252, - "source": 54, + "teal": 250, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 261 + 266, + 267, + 268 ] }, { "teal": 253, - "source": 54, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 262 + 269, + 270, + 271 ] }, { "teal": 254, - "source": 54, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 263 + 272 ] }, { "teal": 255, - "source": 54, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 264 + 273 ] }, { - "teal": 258, - "source": 54, - "errorMessage": "argument 1 (boxIndex) for setAppWhitelist must be a uint16", + "teal": 256, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 265 + 274, + 275 ] }, { - "teal": 259, - "source": 54, + "teal": 257, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 266 + 276 ] }, { - "teal": 262, - "source": 54, + "teal": 260, + "source": "examples/arc75/arc75.algo.ts:54", + "errorMessage": "argument 1 (boxIndex) for setAppWhitelist must be a uint16", "pc": [ - 267, - 268, - 269 + 277 ] }, { - "teal": 263, - "source": 54, + "teal": 261, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 270, - 271, - 272 + 278 ] }, { - "teal": 266, - "source": 54, + "teal": 264, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 273, - 274, - 275 + 279, + 280, + 281 ] }, { - "teal": 267, - "source": 54, + "teal": 265, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 276 + 282, + 283, + 284 ] }, { "teal": 268, - "source": 54, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 277 + 285, + 286, + 287 ] }, { - "teal": 278, - "source": 54, + "teal": 269, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 278, - 279, - 280 + 288, + 289 ] }, { - "teal": 281, - "source": 54, + "teal": 270, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 281 + 290 ] }, { - "teal": 282, - "source": 54, + "teal": 280, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 282 + 291, + 292, + 293 ] }, { - "teal": 286, - "source": 55, + "teal": 283, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 283, - 284 + 294, + 295 ] }, { - "teal": 287, - "source": 55, + "teal": 284, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 285, - 286 + 296 ] }, { "teal": 288, - "source": 55, + "source": "examples/arc75/arc75.algo.ts:55", "pc": [ - 287 + 297, + 298 ] }, { "teal": 289, - "source": 55, + "source": "examples/arc75/arc75.algo.ts:55", "pc": [ - 288, - 289 + 299, + 300 ] }, { - "teal": 293, - "source": 56, + "teal": 290, + "source": "examples/arc75/arc75.algo.ts:55", "pc": [ - 290 + 301 ] }, { - "teal": 294, - "source": 56, + "teal": 291, + "source": "examples/arc75/arc75.algo.ts:55", "pc": [ - 291 + 302, + 303 ] }, { "teal": 295, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 292 + 304, + 305 ] }, { "teal": 296, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 293, - 294 + 306, + 307 ] }, { "teal": 297, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 295, - 296, - 297 + 308, + 309, + 310, + 311 ] }, { "teal": 298, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 298, - 299 + 312, + 313 ] }, { "teal": 299, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 300 + 314, + 315, + 316 ] }, { "teal": 300, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 301, - 302, - 303 + 317, + 318 ] }, { "teal": 301, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 304, - 305, - 306 + 319 ] }, { "teal": 302, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 307, - 308 + 320, + 321, + 322 ] }, { "teal": 303, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 309 + 323, + 324, + 325 ] }, { "teal": 304, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 310 + 326, + 327 ] }, { "teal": 305, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 311 + 328 ] }, { "teal": 306, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 312, - 313, - 314 + 329 ] }, { "teal": 307, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 315 + 330 ] }, { "teal": 308, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 316 + 331, + 332, + 333 ] }, { "teal": 309, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 317, - 318, - 319 + 334 ] }, { "teal": 310, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 320 + 335 ] }, { "teal": 311, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 321 + 336, + 337, + 338 ] }, { "teal": 312, - "source": 56, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 322, - 323 + 339 ] }, { - "teal": 316, - "source": 58, + "teal": 313, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 324, - 325 + 340 ] }, { - "teal": 317, - "source": 58, + "teal": 314, + "source": "examples/arc75/arc75.algo.ts:56", "pc": [ - 326 + 341, + 342 ] }, { - "teal": 321, - "source": 60, + "teal": 318, + "source": "examples/arc75/arc75.algo.ts:58", "pc": [ - 327, - 328 + 343, + 344 ] }, { - "teal": 322, - "source": 60, + "teal": 319, + "source": "examples/arc75/arc75.algo.ts:58", "pc": [ - 329 + 345 ] }, { "teal": 323, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 330 + 346, + 347 ] }, { "teal": 324, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 331 + 348 ] }, { "teal": 325, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 332, - 333 + 349 ] }, { "teal": 326, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 334 + 350 ] }, { "teal": 327, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 335 + 351, + 352 ] }, { "teal": 328, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 336 + 353 ] }, { "teal": 329, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 337 + 354 ] }, { "teal": 330, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 338 + 355, + 356 ] }, { "teal": 331, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 339, - 340, - 341 + 357 ] }, { "teal": 332, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 342 + 358 ] }, { "teal": 333, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 343 + 359, + 360, + 361 ] }, { "teal": 334, - "source": 60, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 344 + 362 ] }, { - "teal": 339, - "source": 62, + "teal": 335, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 345, - 346 + 363 ] }, { - "teal": 340, - "source": 62, + "teal": 336, + "source": "examples/arc75/arc75.algo.ts:60", "pc": [ - 347, - 348 + 364 ] }, { "teal": 341, - "source": 62, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 349, - 350 + 365, + 366 ] }, { "teal": 342, - "source": 62, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 351 + 367, + 368 ] }, { "teal": 343, - "source": 62, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 352 + 369, + 370 ] }, { "teal": 344, - "source": 62, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 353, - 354, - 355 + 371 ] }, { - "teal": 349, - "source": 63, + "teal": 345, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 356, - 357 + 372 ] }, { - "teal": 350, - "source": 63, + "teal": 346, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 358, - 359, - 360 + 373, + 374, + 375 ] }, { "teal": 351, - "source": 62, + "source": "examples/arc75/arc75.algo.ts:63", "pc": [ - 361, - 362, - 363 + 376, + 377 ] }, { - "teal": 356, - "source": 65, + "teal": 352, + "source": "examples/arc75/arc75.algo.ts:63", "pc": [ - 364, - 365 + 378, + 379, + 380 ] }, { - "teal": 357, - "source": 65, + "teal": 353, + "source": "examples/arc75/arc75.algo.ts:62", "pc": [ - 366, - 367 + 381, + 382, + 383 ] }, { "teal": 358, - "source": 65, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 368 + 384, + 385 ] }, { "teal": 359, - "source": 65, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 369 + 386, + 387 ] }, { "teal": 360, - "source": 65, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 370 + 388, + 389 ] }, { "teal": 361, - "source": 65, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 371, - 372 + 390 ] }, { "teal": 362, - "source": 65, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 373 + 391 ] }, { "teal": 363, - "source": 65, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 374 + 392, + 393 ] }, { - "teal": 366, - "source": 65, - "errorMessage": "failed to cast this.txnGroup[this.txn.groupIndex - 1] to pay", + "teal": 364, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 375 + 394, + 395 ] }, { - "teal": 367, - "source": 65, + "teal": 365, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 376, - 377, - 378 + 396 ] }, { - "teal": 370, - "source": 54, + "teal": 368, + "source": "examples/arc75/arc75.algo.ts:65", + "errorMessage": "failed to cast this.txnGroup[this.txn.groupIndex - 1] to pay", "pc": [ - 379 + 397 ] }, { - "teal": 375, - "source": 76, + "teal": 369, + "source": "examples/arc75/arc75.algo.ts:65", "pc": [ - 380, - 381, - 382 + 398, + 399, + 400 ] }, { - "teal": 376, - "source": 76, + "teal": 372, + "source": "examples/arc75/arc75.algo.ts:54", "pc": [ - 383 + 401 ] }, { "teal": 377, - "source": 76, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 384 + 402, + 403, + 404 ] }, { "teal": 378, - "source": 76, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 385 + 405 ] }, { "teal": 379, - "source": 76, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 386 + 406 ] }, { - "teal": 382, - "source": 76, - "errorMessage": "argument 0 (boxIndex) for deleteWhitelist must be a uint16", + "teal": 380, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 387 + 407, + 408 ] }, { - "teal": 383, - "source": 76, + "teal": 381, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 388 + 409 ] }, { - "teal": 386, - "source": 76, + "teal": 384, + "source": "examples/arc75/arc75.algo.ts:76", + "errorMessage": "argument 0 (boxIndex) for deleteWhitelist must be a uint16", "pc": [ - 389, - 390, - 391 + 410 ] }, { - "teal": 387, - "source": 76, + "teal": 385, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 392, - 393, - 394 + 411 ] }, { - "teal": 390, - "source": 76, + "teal": 388, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 395, - 396, - 397 + 412, + 413, + 414 ] }, { - "teal": 391, - "source": 76, + "teal": 389, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 398 + 415, + 416, + 417 ] }, { "teal": 392, - "source": 76, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 399 + 418, + 419, + 420 ] }, { - "teal": 401, - "source": 76, + "teal": 393, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 400, - 401, - 402 + 421, + 422 ] }, { - "teal": 404, - "source": 76, + "teal": 394, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 403 + 423 ] }, { - "teal": 405, - "source": 76, + "teal": 403, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 404 + 424, + 425, + 426 ] }, { - "teal": 409, - "source": 77, + "teal": 406, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 405, - 406 + 427, + 428 ] }, { - "teal": 410, - "source": 77, + "teal": 407, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 407, - 408 + 429 ] }, { "teal": 411, - "source": 77, + "source": "examples/arc75/arc75.algo.ts:77", "pc": [ - 409 + 430, + 431 ] }, { "teal": 412, - "source": 77, + "source": "examples/arc75/arc75.algo.ts:77", "pc": [ - 410, - 411 + 432, + 433 ] }, { - "teal": 416, - "source": 78, + "teal": 413, + "source": "examples/arc75/arc75.algo.ts:77", "pc": [ - 412 + 434 ] }, { - "teal": 417, - "source": 78, + "teal": 414, + "source": "examples/arc75/arc75.algo.ts:77", "pc": [ - 413 + 435, + 436 ] }, { "teal": 418, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 414 + 437, + 438 ] }, { "teal": 419, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 415, - 416 + 439, + 440 ] }, { "teal": 420, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 417, - 418, - 419 + 441, + 442, + 443, + 444 ] }, { "teal": 421, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 420, - 421 + 445, + 446 ] }, { "teal": 422, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 422 + 447, + 448, + 449 ] }, { "teal": 423, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 423, - 424, - 425 + 450, + 451 ] }, { "teal": 424, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 426, - 427, - 428 + 452 ] }, { "teal": 425, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 429, - 430 + 453, + 454, + 455 ] }, { "teal": 426, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 431 + 456, + 457, + 458 ] }, { "teal": 427, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 432 + 459, + 460 ] }, { "teal": 428, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 433 + 461 ] }, { "teal": 429, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 434, - 435, - 436 + 462 ] }, { "teal": 430, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 437 + 463 ] }, { "teal": 431, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 438 + 464, + 465, + 466 ] }, { "teal": 432, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 439, - 440, - 441 + 467 ] }, { "teal": 433, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 442 + 468 ] }, { "teal": 434, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 443 + 469, + 470, + 471 ] }, { "teal": 435, - "source": 78, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 444, - 445 + 472 ] }, { - "teal": 439, - "source": 80, + "teal": 436, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 446, - 447 + 473 ] }, { - "teal": 440, - "source": 80, + "teal": 437, + "source": "examples/arc75/arc75.algo.ts:78", "pc": [ - 448 + 474, + 475 ] }, { - "teal": 444, - "source": 82, + "teal": 441, + "source": "examples/arc75/arc75.algo.ts:80", "pc": [ - 449, - 450 + 476, + 477 ] }, { - "teal": 445, - "source": 82, + "teal": 442, + "source": "examples/arc75/arc75.algo.ts:80", "pc": [ - 451, - 452, - 453 + 478 ] }, { "teal": 446, - "source": 76, + "source": "examples/arc75/arc75.algo.ts:82", "pc": [ - 454 + 479, + 480 ] }, { - "teal": 451, - "source": 93, + "teal": 447, + "source": "examples/arc75/arc75.algo.ts:82", "pc": [ - 455, - 456, - 457 + 481, + 482, + 483 ] }, { - "teal": 452, - "source": 93, + "teal": 448, + "source": "examples/arc75/arc75.algo.ts:76", "pc": [ - 458 + 484 ] }, { - "teal": 455, - "source": 93, + "teal": 453, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 459, - 460, - 461 + 485, + 486, + 487 ] }, { - "teal": 456, - "source": 93, + "teal": 454, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 462 + 488 ] }, { - "teal": 459, - "source": 93, + "teal": 457, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 463, - 464, - 465 + 489, + 490, + 491 ] }, { - "teal": 460, - "source": 93, + "teal": 458, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 466 + 492 ] }, { "teal": 461, - "source": 93, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 467 + 493, + 494, + 495 ] }, { "teal": 462, - "source": 93, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 468 + 496 ] }, { "teal": 463, - "source": 93, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 469 + 497 ] }, { - "teal": 466, - "source": 93, - "errorMessage": "argument 2 (boxIndex) for deleteAppFromWhitelist must be a uint16", + "teal": 464, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 470 + 498, + 499 ] }, { - "teal": 467, - "source": 93, + "teal": 465, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 471 + 500 ] }, { - "teal": 470, - "source": 93, + "teal": 468, + "source": "examples/arc75/arc75.algo.ts:93", + "errorMessage": "argument 2 (boxIndex) for deleteAppFromWhitelist must be a uint16", "pc": [ - 472, - 473, - 474 + 501 ] }, { - "teal": 471, - "source": 93, + "teal": 469, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 475, - 476, - 477 + 502 ] }, { - "teal": 474, - "source": 93, + "teal": 472, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 478, - 479, - 480 + 503, + 504, + 505 ] }, { - "teal": 475, - "source": 93, + "teal": 473, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 481 + 506, + 507, + 508 ] }, { "teal": 476, - "source": 93, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 482 + 509, + 510, + 511 ] }, { - "teal": 486, - "source": 93, + "teal": 477, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 483, - 484, - 485 + 512, + 513 ] }, { - "teal": 489, - "source": 93, + "teal": 478, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 486 + 514 ] }, { - "teal": 490, - "source": 93, + "teal": 488, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 487, - 488 + 515, + 516, + 517 ] }, { - "teal": 494, - "source": 94, + "teal": 491, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 489, - 490 + 518, + 519 ] }, { - "teal": 495, - "source": 94, + "teal": 492, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 491, - 492 + 520, + 521 ] }, { "teal": 496, - "source": 94, + "source": "examples/arc75/arc75.algo.ts:94", "pc": [ - 493 + 522, + 523 ] }, { "teal": 497, - "source": 94, + "source": "examples/arc75/arc75.algo.ts:94", "pc": [ - 494, - 495 + 524, + 525 ] }, { - "teal": 501, - "source": 95, + "teal": 498, + "source": "examples/arc75/arc75.algo.ts:94", "pc": [ - 496 + 526 ] }, { - "teal": 502, - "source": 95, + "teal": 499, + "source": "examples/arc75/arc75.algo.ts:94", "pc": [ - 497 + 527, + 528 ] }, { "teal": 503, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 498 + 529, + 530 ] }, { "teal": 504, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 499, - 500 + 531, + 532 ] }, { "teal": 505, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 501, - 502, - 503 + 533, + 534, + 535, + 536 ] }, { "teal": 506, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 504, - 505 + 537, + 538 ] }, { "teal": 507, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 506 + 539, + 540, + 541 ] }, { "teal": 508, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 507, - 508, - 509 + 542, + 543 ] }, { "teal": 509, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 510, - 511, - 512 + 544 ] }, { "teal": 510, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 513, - 514 + 545, + 546, + 547 ] }, { "teal": 511, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 515 + 548, + 549, + 550 ] }, { "teal": 512, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 516 + 551, + 552 ] }, { "teal": 513, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 517 + 553 ] }, { "teal": 514, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 518, - 519, - 520 + 554 ] }, { "teal": 515, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 521 + 555 ] }, { "teal": 516, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 522 + 556, + 557, + 558 ] }, { "teal": 517, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 523, - 524, - 525 + 559 ] }, { "teal": 518, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 526 + 560 ] }, { "teal": 519, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 527 + 561, + 562, + 563 ] }, { "teal": 520, - "source": 95, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 528, - 529 + 564 ] }, { - "teal": 524, - "source": 97, + "teal": 521, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 530, - 531 + 565 ] }, { - "teal": 525, - "source": 97, + "teal": 522, + "source": "examples/arc75/arc75.algo.ts:95", "pc": [ - 532 + 566, + 567 ] }, { - "teal": 528, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", + "teal": 526, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 533 + 568, + 569 ] }, { - "teal": 529, - "source": 97, + "teal": 527, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 534, - 535, - 536 + 570 ] }, { "teal": 530, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", + "errorMessage": "box value does not exist: this.whitelist(whitelist).value", "pc": [ - 537 + 571 ] }, { "teal": 531, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 538, - 539 + 572, + 573, + 574 ] }, { "teal": 532, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 540 + 575, + 576 ] }, { "teal": 533, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 541 + 577, + 578 ] }, { "teal": 534, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 542, - 543 + 579, + 580 ] }, { "teal": 535, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 544, - 545 + 581 ] }, { "teal": 536, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 546, - 547 + 582, + 583 ] }, { "teal": 537, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 548, - 549 + 584, + 585 ] }, { "teal": 538, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 550 + 586, + 587 ] }, { - "teal": 541, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", + "teal": 539, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 551 + 588, + 589 ] }, { - "teal": 542, - "source": 97, + "teal": 540, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 552, - 553, - 554 + 590 ] }, { "teal": 543, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", + "errorMessage": "box value does not exist: this.whitelist(whitelist).value", "pc": [ - 555 + 591 ] }, { "teal": 544, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 556, - 557 + 592, + 593, + 594 ] }, { "teal": 545, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 558 + 595, + 596 ] }, { "teal": 546, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 559, - 560 + 597, + 598 ] }, { "teal": 547, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 561 + 599 ] }, { - "teal": 550, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", + "teal": 548, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 562 + 600, + 601 ] }, { - "teal": 551, - "source": 97, + "teal": 549, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 563, - 564, - 565 + 602 ] }, { "teal": 552, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", + "errorMessage": "box value does not exist: this.whitelist(whitelist).value", "pc": [ - 566 + 603 ] }, { "teal": 553, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 567 + 604, + 605, + 606 ] }, { "teal": 554, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 568, - 569 + 607 ] }, { "teal": 555, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 570, - 571 + 608 ] }, { "teal": 556, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 572 + 609, + 610 ] }, { "teal": 557, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 573 + 611, + 612 ] }, { "teal": 558, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 574 + 613 ] }, { "teal": 559, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 575 + 614, + 615 ] }, { "teal": 560, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 576 + 616 ] }, { "teal": 561, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 577 + 617 ] }, { "teal": 562, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 578, - 579 + 618 ] }, { "teal": 563, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 580 + 619 ] }, { - "teal": 566, - "source": 97, - "errorMessage": "box value does not exist: this.whitelist(whitelist).value", + "teal": 564, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 581 + 620, + 621 ] }, { - "teal": 567, - "source": 97, + "teal": 565, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 582, - 583, - 584 + 622 ] }, { "teal": 568, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", + "errorMessage": "box value does not exist: this.whitelist(whitelist).value", "pc": [ - 585, - 586 + 623 ] }, { "teal": 569, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 587, - 588 + 624, + 625, + 626 ] }, { "teal": 570, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 589 + 627, + 628 ] }, { "teal": 571, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 590 + 629, + 630 ] }, { "teal": 572, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 591 + 631, + 632 ] }, { "teal": 573, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 592 + 633 ] }, { "teal": 574, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 593, - 594 + 634 ] }, { "teal": 575, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 595 + 635 ] }, { "teal": 576, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 596 + 636, + 637 ] }, { "teal": 577, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 597 + 638 ] }, { "teal": 578, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 598 + 639 ] }, { "teal": 579, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 599 + 640 ] }, { "teal": 580, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 600 + 641 ] }, { "teal": 581, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 601 + 642 ] }, { "teal": 582, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 602 + 643 ] }, { "teal": 583, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 603 + 644, + 645 ] }, { "teal": 584, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 604, - 605, - 606 + 646 ] }, { "teal": 585, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 607 + 647 ] }, { "teal": 586, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 608 + 648, + 649, + 650 ] }, { "teal": 587, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 609 + 651 ] }, { "teal": 588, - "source": 97, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 610, - 611 + 652 ] }, { - "teal": 592, - "source": 99, + "teal": 589, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 612, - 613 + 653 ] }, { - "teal": 593, - "source": 99, + "teal": 590, + "source": "examples/arc75/arc75.algo.ts:97", "pc": [ - 614, - 615 + 654, + 655 ] }, { "teal": 594, - "source": 99, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 616, - 617 + 656, + 657 ] }, { "teal": 595, - "source": 99, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 618, - 619, - 620 + 658, + 659 ] }, { "teal": 596, - "source": 99, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 621 + 660, + 661 ] }, { "teal": 597, - "source": 99, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 622, - 623 + 662, + 663, + 664 ] }, { "teal": 598, - "source": 99, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 624 + 665 ] }, { "teal": 599, - "source": 99, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 625 + 666, + 667 ] }, { - "teal": 603, - "source": 101, + "teal": 600, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 626, - 627 + 668 ] }, { - "teal": 604, - "source": 101, + "teal": 601, + "source": "examples/arc75/arc75.algo.ts:99", "pc": [ - 628, - 629, - 630 + 669 ] }, { "teal": 605, - "source": 93, + "source": "examples/arc75/arc75.algo.ts:101", "pc": [ - 631 + 670, + 671 ] }, { - "teal": 608, - "source": 6, + "teal": 606, + "source": "examples/arc75/arc75.algo.ts:101", "pc": [ - 632 + 672, + 673, + 674 ] }, { - "teal": 609, - "source": 6, + "teal": 607, + "source": "examples/arc75/arc75.algo.ts:93", "pc": [ - 633 + 675 ] }, { - "teal": 612, - "source": 6, + "teal": 610, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 634, - 635, - 636, - 637, - 638, - 639 + 676, + 677 ] }, { - "teal": 613, - "source": 6, + "teal": 611, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 640, - 641, - 642 + 678 ] }, { "teal": 614, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 643, - 644, - 645, - 646 + 679, + 680, + 681, + 682, + 683, + 684 ] }, { - "teal": 617, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 615, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 647 + 685, + 686, + 687 ] }, { - "teal": 620, - "source": 6, + "teal": 616, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 648, - 649, - 650, - 651, - 652, - 653 + 688, + 689, + 690, + 691 ] }, { - "teal": 621, - "source": 6, + "teal": 619, + "source": "examples/arc75/arc75.algo.ts:6", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 654, - 655, - 656, - 657, - 658, - 659 + 692 ] }, { "teal": 622, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 660, - 661, - 662, - 663, - 664, - 665 + 693, + 694, + 695, + 696, + 697, + 698 ] }, { "teal": 623, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 666, - 667, - 668, - 669, - 670, - 671 + 699, + 700, + 701, + 702, + 703, + 704 ] }, { "teal": 624, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 672, - 673, - 674 + 705, + 706, + 707, + 708, + 709, + 710 ] }, { "teal": 625, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 675, - 676, - 677, - 678, - 679, - 680, - 681, - 682, - 683, - 684 + 711, + 712, + 713, + 714, + 715, + 716 ] }, { - "teal": 628, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "teal": 626, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 685 + 717, + 718, + 719 ] }, { - "teal": 631, - "source": 6, + "teal": 627, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 686, - 687, - 688 + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729 ] }, { - "teal": 632, - "source": 6, + "teal": 630, + "source": "examples/arc75/arc75.algo.ts:6", + "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 689, - 690 + 730 ] }, { "teal": 633, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 691, - 692 + 731, + 732, + 733 ] }, { "teal": 634, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 693 + 734, + 735 ] }, { "teal": 635, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 694, - 695 + 736, + 737 ] }, { "teal": 636, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 696, - 697 + 738 ] }, { "teal": 637, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 698 + 739, + 740 ] }, { - "teal": 640, - "source": 6, + "teal": 638, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 699, - 700, - 701 + 741, + 742 ] }, { - "teal": 641, - "source": 6, + "teal": 639, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 702, - 703 + 743 ] }, { "teal": 642, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 704, - 705 + 744, + 745, + 746 ] }, { "teal": 643, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 706 + 747, + 748 ] }, { "teal": 644, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 707, - 708 + 749, + 750 ] }, { "teal": 645, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 709, - 710 + 751 ] }, { "teal": 646, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 711 + 752, + 753 ] }, { "teal": 647, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 712 + 754, + 755 ] }, { "teal": 648, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 713, - 714 + 756 ] }, { "teal": 649, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 715 + 757 ] }, { "teal": 650, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 716 + 758, + 759 ] }, { "teal": 651, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 717 + 760 ] }, { "teal": 652, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 718, - 719, - 720 + 761 ] }, { "teal": 653, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 721, - 722 + 762 ] }, { "teal": 654, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 723, - 724 + 763, + 764, + 765 ] }, { "teal": 655, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 725 + 766, + 767 ] }, { "teal": 656, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 726 + 768, + 769 ] }, { "teal": 657, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 727, - 728 + 770 ] }, { "teal": 658, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 729, - 730 + 771 ] }, { "teal": 659, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 731, - 732 + 772, + 773 ] }, { "teal": 660, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 733, - 734 + 774, + 775 ] }, { "teal": 661, - "source": 6, + "source": "examples/arc75/arc75.algo.ts:6", "pc": [ - 735 + 776, + 777 + ] + }, + { + "teal": 662, + "source": "examples/arc75/arc75.algo.ts:6", + "pc": [ + 778, + 779 + ] + }, + { + "teal": 663, + "source": "examples/arc75/arc75.algo.ts:6", + "pc": [ + 780 ] } ] \ No newline at end of file diff --git a/examples/auction/tealscript_artifacts/Auction.approval.teal b/examples/auction/tealscript_artifacts/Auction.approval.teal index 36d182bb9..d30f28b12 100644 --- a/examples/auction/tealscript_artifacts/Auction.approval.teal +++ b/examples/auction/tealscript_artifacts/Auction.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 0 +bytecblock 0x70726576696f7573426964646572 0x70726576696f7573426964 0x61756374696f6e456e64 0x636c61696d61626c65416d6f756e74 0x617361416d74 0x617361 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -114,7 +116,7 @@ optIntoAsset: // assetAmount: 0, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/auction/auction.algo.ts:39 @@ -148,7 +150,7 @@ optIntoAsset: - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 0 (axfer) for startAuction must be a axfer transaction @@ -235,7 +237,7 @@ pay: // amount: amount, // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/auction/auction.algo.ts:62 @@ -276,7 +278,7 @@ optInToApplication: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 0 (payment) for bid must be a pay transaction @@ -445,7 +447,7 @@ claim_asset: // assetCloseTo: this.previousBidder.value, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/auction/auction.algo.ts:104 @@ -497,7 +499,7 @@ deleteApplication: // amount: 0, // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/auction/auction.algo.ts:113 @@ -524,7 +526,7 @@ deleteApplication: retsub *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -532,11 +534,11 @@ deleteApplication: err *call_NoOp: - method "optIntoAsset(uint64)void" - method "startAuction(uint64,uint64,axfer)void" - method "bid(pay)void" - method "claimBids()void" - method "claim_asset(uint64)void" + pushbytes 0x3987f0c1 // method "optIntoAsset(uint64)void" + pushbytes 0xc2725922 // method "startAuction(uint64,uint64,axfer)void" + pushbytes 0xdb7fe843 // method "bid(pay)void" + pushbytes 0x032f650d // method "claimBids()void" + pushbytes 0x59b2ab26 // method "claim_asset(uint64)void" txna ApplicationArgs 0 match *abi_route_optIntoAsset *abi_route_startAuction *abi_route_bid *abi_route_claimBids *abi_route_claim_asset @@ -544,7 +546,7 @@ deleteApplication: err *call_OptIn: - method "optInToApplication()void" + pushbytes 0x01a3a3ff // method "optInToApplication()void" txna ApplicationArgs 0 match *abi_route_optInToApplication @@ -552,7 +554,7 @@ deleteApplication: err *call_DeleteApplication: - method "deleteApplication()void" + pushbytes 0x2487c32c // method "deleteApplication()void" txna ApplicationArgs 0 match *abi_route_deleteApplication diff --git a/examples/auction/tealscript_artifacts/Auction.arc32.json b/examples/auction/tealscript_artifacts/Auction.arc32.json index 3d0f7df7e..7976f000f 100644 --- a/examples/auction/tealscript_artifacts/Auction.arc32.json +++ b/examples/auction/tealscript_artifacts/Auction.arc32.json @@ -95,7 +95,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9EZWxldGVBcHBsaWNhdGlvbiAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTgKCS8vIHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9IDAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjE5CgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gMAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjAKCS8vIHRoaXMuYXNhQW10LnZhbHVlID0gMAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjEKCS8vIHRoaXMuYXNhLnZhbHVlID0gQXNzZXRJRC56ZXJvSW5kZXgKCWJ5dGUgMHg2MTczNjEgLy8gImFzYSIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjI0CgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJZ2xvYmFsIFplcm9BZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vcHRJbnRvQXNzZXQ6CgkvLyBhc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKCWNhbGxzdWIgb3B0SW50b0Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBvcHRJbnRvQXNzZXQoYXNzZXQ6IEFzc2V0SUQpOiB2b2lkCm9wdEludG9Bc3NldDoKCXByb3RvIDEgMAoKCS8vIE9ubHkgYWxsb3cgYXBwIGNyZWF0b3IgdG8gb3B0IHRoZSBhcHAgYWNjb3VudCBpbnRvIGEgQVNBCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyOQoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6Imdsb2JhbHMuY3JlYXRvckFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gVmVyaWZ5IGEgQVNBIGhhc24ndCBhbHJlYWR5IGJlZW4gb3B0ZWQgaW50bwoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmFzYS52YWx1ZSA9PT0gQXNzZXRJRC56ZXJvSW5kZXgpCglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBTYXZlIEFTQSBJRCBpbiBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM1CgkvLyB0aGlzLmFzYS52YWx1ZSA9IGFzc2V0CglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gU3VibWl0IG9wdC1pbiB0cmFuc2FjdGlvbjogMCBhc3NldCB0cmFuc2ZlciB0byBzZWxmCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozOAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzkKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0MAoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQxCgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKKmFiaV9yb3V0ZV9zdGFydEF1Y3Rpb246CgkvLyBheGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGF4ZmVyKSBmb3Igc3RhcnRBdWN0aW9uIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gbGVuZ3RoOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKCWNhbGxzdWIgc3RhcnRBdWN0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydEF1Y3Rpb24oc3RhcnRpbmdQcmljZTogdWludDY0LCBsZW5ndGg6IHVpbnQ2NCwgYXhmZXI6IEFzc2V0VHJhbnNmZXJUeG4pOiB2b2lkCnN0YXJ0QXVjdGlvbjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQ2CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoiZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBFbnN1cmUgdGhlIGF1Y3Rpb24gaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0OQoJLy8gYXNzZXJ0KHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9PT0gMCkKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIFZlcmlmeSBheGZlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NTIKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oYXhmZXIsIHsgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMyAvLyBheGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJheGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NQoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSBheGZlci5hc3NldEFtb3VudAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJZnJhbWVfZGlnIC0zIC8vIGF4ZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NgoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgKyBsZW5ndGgKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGg6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NwoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHN0YXJ0aW5nUHJpY2UKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHBheShyZWNlaXZlcjogQWRkcmVzcywgYW1vdW50OiB1aW50NjQpOiB2b2lkCnBheToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYyCgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYzCgkvLyBhbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCXJldHN1YgoKLy8gYmlkKHBheSl2b2lkCiphYmlfcm91dGVfYmlkOgoJLy8gcGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIGJpZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGJpZChwYXkpdm9pZAoJY2FsbHN1YiBiaWQKCWludCAxCglyZXR1cm4KCi8vIGJpZChwYXltZW50OiBQYXlUeG4pOiB2b2lkCmJpZDoKCXByb3RvIDEgMAoKCS8vIEVuc3VyZSBhdWN0aW9uIGhhc24ndCBlbmRlZAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NzIKCS8vIGFzc2VydChnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCA8IHRoaXMuYXVjdGlvbkVuZC52YWx1ZSkKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0Cgk8Cglhc3NlcnQKCgkvLyBWZXJpZnkgcGF5bWVudCB0cmFuc2FjdGlvbgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NzUKCS8vIHZlcmlmeVBheVR4bihwYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFtb3VudDogeyBncmVhdGVyVGhhbjogdGhpcy5wcmV2aW91c0JpZC52YWx1ZSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWFwcF9nbG9iYWxfZ2V0Cgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPnRoaXMucHJldmlvdXNCaWQudmFsdWUifQoJYXNzZXJ0CgoJLy8gU2V0IGdsb2JhbCBzdGF0ZQoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODEKCS8vIHRoaXMucHJldmlvdXNCaWQudmFsdWUgPSBwYXltZW50LmFtb3VudAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjgyCgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gcGF5bWVudC5zZW5kZXIKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBVcGRhdGUgY2xhaW1hYmxlIGFtb3VudAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODUKCS8vIHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBwYXltZW50LmFtb3VudAoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGNsYWltQmlkcygpdm9pZAoqYWJpX3JvdXRlX2NsYWltQmlkczoKCS8vIGV4ZWN1dGUgY2xhaW1CaWRzKCl2b2lkCgljYWxsc3ViIGNsYWltQmlkcwoJaW50IDEKCXJldHVybgoKLy8gY2xhaW1CaWRzKCk6IHZvaWQKY2xhaW1CaWRzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjg5CgkvLyBvcmlnaW5hbEFtb3VudCA9IHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgLy8gImNsYWltYWJsZUFtb3VudCIKCWFwcF9sb2NhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBvcmlnaW5hbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTAKCS8vIGFtb3VudCA9IG9yaWdpbmFsQW1vdW50CglmcmFtZV9kaWcgMCAvLyBvcmlnaW5hbEFtb3VudDogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gYW1vdW50OiB1aW50NjQKCgkvLyBzdWJ0cmFjdCBwcmV2aW91cyBiaWQgaWYgc2VuZGVyIGlzIHByZXZpb3VzIGJpZGRlcgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjkzCgkvLyB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUKCXR4biBTZW5kZXIKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjkzCgkvLyBhbW91bnQgPSBhbW91bnQgLSB0aGlzLnByZXZpb3VzQmlkLnZhbHVlCglmcmFtZV9kaWcgMSAvLyBhbW91bnQ6IHVpbnQ2NAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWZyYW1lX2J1cnkgMSAvLyBhbW91bnQ6IHVpbnQ2NAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5NQoJLy8gdGhpcy5wYXkodGhpcy50eG4uc2VuZGVyLCBhbW91bnQpCglmcmFtZV9kaWcgMSAvLyBhbW91bnQ6IHVpbnQ2NAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwYXkKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5NgoJLy8gdGhpcy5jbGFpbWFibGVBbW91bnQodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IG9yaWdpbmFsQW1vdW50IC0gYW1vdW50Cgl0eG4gU2VuZGVyCglieXRlIDB4NjM2YzYxNjk2ZDYxNjI2YzY1NDE2ZDZmNzU2ZTc0IC8vICJjbGFpbWFibGVBbW91bnQiCglmcmFtZV9kaWcgMCAvLyBvcmlnaW5hbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBhbW91bnQ6IHVpbnQ2NAoJLQoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBjbGFpbV9hc3NldCh1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NsYWltX2Fzc2V0OgoJLy8gYXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2xhaW1fYXNzZXQodWludDY0KXZvaWQKCWNhbGxzdWIgY2xhaW1fYXNzZXQKCWludCAxCglyZXR1cm4KCi8vIGNsYWltX2Fzc2V0KGFzc2V0OiBBc3NldElEKTogdm9pZApjbGFpbV9hc3NldDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwMAoJLy8gYXNzZXJ0KGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wID4gdGhpcy5hdWN0aW9uRW5kLnZhbHVlKQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJYnl0ZSAweDYxNzU2Mzc0Njk2ZjZlNDU2ZTY0IC8vICJhdWN0aW9uRW5kIgoJYXBwX2dsb2JhbF9nZXQKCT4KCWFzc2VydAoKCS8vIFNlbmQgQVNBIHRvIHByZXZpb3VzIGJpZGRlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTAzCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlLAoJLy8gICAgICAgeGZlckFzc2V0OiBhc3NldCwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB0aGlzLmFzYUFtdC52YWx1ZSwKCS8vICAgICAgIGFzc2V0Q2xvc2VUbzogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA0CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA1CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA2CgkvLyBhc3NldEFtb3VudDogdGhpcy5hc2FBbXQudmFsdWUKCWJ5dGUgMHg2MTczNjE0MTZkNzQgLy8gImFzYUFtdCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA3CgkvLyBhc3NldENsb3NlVG86IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKZGVsZXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzLAoJLy8gICAgICAgY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcywKCS8vICAgICAgIGFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExMwoJLy8gcmVjZWl2ZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExNAoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcwoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTUKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvcHRJbnRvQXNzZXQodWludDY0KXZvaWQiCgltZXRob2QgInN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQiCgltZXRob2QgImJpZChwYXkpdm9pZCIKCW1ldGhvZCAiY2xhaW1CaWRzKCl2b2lkIgoJbWV0aG9kICJjbGFpbV9hc3NldCh1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb3B0SW50b0Fzc2V0ICphYmlfcm91dGVfc3RhcnRBdWN0aW9uICphYmlfcm91dGVfYmlkICphYmlfcm91dGVfY2xhaW1CaWRzICphYmlfcm91dGVfY2xhaW1fYXNzZXQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnIKCipjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uOgoJbWV0aG9kICJkZWxldGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBEZWxldGVBcHBsaWNhdGlvbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAKYnl0ZWNibG9jayAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IDB4NjE3NTYzNzQ2OTZmNmU0NTZlNjQgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgMHg2MTczNjE0MTZkNzQgMHg2MTczNjEgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9EZWxldGVBcHBsaWNhdGlvbiAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTgKCS8vIHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9IDAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjE5CgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gMAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjAKCS8vIHRoaXMuYXNhQW10LnZhbHVlID0gMAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjEKCS8vIHRoaXMuYXNhLnZhbHVlID0gQXNzZXRJRC56ZXJvSW5kZXgKCWJ5dGUgMHg2MTczNjEgLy8gImFzYSIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjI0CgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJZ2xvYmFsIFplcm9BZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vcHRJbnRvQXNzZXQ6CgkvLyBhc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKCWNhbGxzdWIgb3B0SW50b0Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBvcHRJbnRvQXNzZXQoYXNzZXQ6IEFzc2V0SUQpOiB2b2lkCm9wdEludG9Bc3NldDoKCXByb3RvIDEgMAoKCS8vIE9ubHkgYWxsb3cgYXBwIGNyZWF0b3IgdG8gb3B0IHRoZSBhcHAgYWNjb3VudCBpbnRvIGEgQVNBCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyOQoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6Imdsb2JhbHMuY3JlYXRvckFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gVmVyaWZ5IGEgQVNBIGhhc24ndCBhbHJlYWR5IGJlZW4gb3B0ZWQgaW50bwoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmFzYS52YWx1ZSA9PT0gQXNzZXRJRC56ZXJvSW5kZXgpCglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBTYXZlIEFTQSBJRCBpbiBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM1CgkvLyB0aGlzLmFzYS52YWx1ZSA9IGFzc2V0CglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gU3VibWl0IG9wdC1pbiB0cmFuc2FjdGlvbjogMCBhc3NldCB0cmFuc2ZlciB0byBzZWxmCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozOAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzkKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0MAoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQxCgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKKmFiaV9yb3V0ZV9zdGFydEF1Y3Rpb246CgkvLyBheGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCA0IC8vIGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGF4ZmVyKSBmb3Igc3RhcnRBdWN0aW9uIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gbGVuZ3RoOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKCWNhbGxzdWIgc3RhcnRBdWN0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydEF1Y3Rpb24oc3RhcnRpbmdQcmljZTogdWludDY0LCBsZW5ndGg6IHVpbnQ2NCwgYXhmZXI6IEFzc2V0VHJhbnNmZXJUeG4pOiB2b2lkCnN0YXJ0QXVjdGlvbjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQ2CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoiZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBFbnN1cmUgdGhlIGF1Y3Rpb24gaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0OQoJLy8gYXNzZXJ0KHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9PT0gMCkKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIFZlcmlmeSBheGZlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NTIKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oYXhmZXIsIHsgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMyAvLyBheGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJheGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NQoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSBheGZlci5hc3NldEFtb3VudAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJZnJhbWVfZGlnIC0zIC8vIGF4ZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NgoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgKyBsZW5ndGgKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGg6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NwoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHN0YXJ0aW5nUHJpY2UKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHBheShyZWNlaXZlcjogQWRkcmVzcywgYW1vdW50OiB1aW50NjQpOiB2b2lkCnBheToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NjIKCS8vIHJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NjMKCS8vIGFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTIgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9wdEluVG9BcHBsaWNhdGlvbigpOiB2b2lkCm9wdEluVG9BcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBiaWQocGF5KXZvaWQKKmFiaV9yb3V0ZV9iaWQ6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBheW1lbnQpIGZvciBiaWQgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaWQocGF5KXZvaWQKCWNhbGxzdWIgYmlkCglpbnQgMQoJcmV0dXJuCgovLyBiaWQocGF5bWVudDogUGF5VHhuKTogdm9pZApiaWQ6Cglwcm90byAxIDAKCgkvLyBFbnN1cmUgYXVjdGlvbiBoYXNuJ3QgZW5kZWQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgPCB0aGlzLmF1Y3Rpb25FbmQudmFsdWUpCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglieXRlIDB4NjE3NTYzNzQ2OTZmNmU0NTZlNjQgLy8gImF1Y3Rpb25FbmQiCglhcHBfZ2xvYmFsX2dldAoJPAoJYXNzZXJ0CgoJLy8gVmVyaWZ5IHBheW1lbnQgdHJhbnNhY3Rpb24KCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjc1CgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHsgZ3JlYXRlclRoYW46IHRoaXMucHJldmlvdXNCaWQudmFsdWUgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLnR4bi5zZW5kZXIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglhcHBfZ2xvYmFsX2dldAoJPgoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiY29uZGl0aW9uIjoiZ3JlYXRlclRoYW4iLCJleHBlY3RlZCI6Ij50aGlzLnByZXZpb3VzQmlkLnZhbHVlIn0KCWFzc2VydAoKCS8vIFNldCBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjgxCgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gcGF5bWVudC5hbW91bnQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo4MgoJLy8gdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSA9IHBheW1lbnQuc2VuZGVyCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gVXBkYXRlIGNsYWltYWJsZSBhbW91bnQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjg1CgkvLyB0aGlzLmNsYWltYWJsZUFtb3VudCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gcGF5bWVudC5hbW91bnQKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgLy8gImNsYWltYWJsZUFtb3VudCIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBjbGFpbUJpZHMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbUJpZHM6CgkvLyBleGVjdXRlIGNsYWltQmlkcygpdm9pZAoJY2FsbHN1YiBjbGFpbUJpZHMKCWludCAxCglyZXR1cm4KCi8vIGNsYWltQmlkcygpOiB2b2lkCmNsYWltQmlkczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo4OQoJLy8gb3JpZ2luYWxBbW91bnQgPSB0aGlzLmNsYWltYWJsZUFtb3VudCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlCgl0eG4gU2VuZGVyCglieXRlIDB4NjM2YzYxNjk2ZDYxNjI2YzY1NDE2ZDZmNzU2ZTc0IC8vICJjbGFpbWFibGVBbW91bnQiCglhcHBfbG9jYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjkwCgkvLyBhbW91bnQgPSBvcmlnaW5hbEFtb3VudAoJZnJhbWVfZGlnIDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGFtb3VudDogdWludDY0CgoJLy8gc3VidHJhY3QgcHJldmlvdXMgYmlkIGlmIHNlbmRlciBpcyBwcmV2aW91cyBiaWRkZXIKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MwoJLy8gdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCgl0eG4gU2VuZGVyCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MwoJLy8gYW1vdW50ID0gYW1vdW50IC0gdGhpcy5wcmV2aW91c0JpZC52YWx1ZQoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWFwcF9nbG9iYWxfZ2V0CgktCglmcmFtZV9idXJ5IDEgLy8gYW1vdW50OiB1aW50NjQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTUKCS8vIHRoaXMucGF5KHRoaXMudHhuLnNlbmRlciwgYW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCXR4biBTZW5kZXIKCWNhbGxzdWIgcGF5CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTYKCS8vIHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBvcmlnaW5hbEFtb3VudCAtIGFtb3VudAoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJZnJhbWVfZGlnIDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCS0KCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gY2xhaW1fYXNzZXQodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jbGFpbV9hc3NldDoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNsYWltX2Fzc2V0KHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNsYWltX2Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBjbGFpbV9hc3NldChhc3NldDogQXNzZXRJRCk6IHZvaWQKY2xhaW1fYXNzZXQ6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMDAKCS8vIGFzc2VydChnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCA+IHRoaXMuYXVjdGlvbkVuZC52YWx1ZSkKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0Cgk+Cglhc3NlcnQKCgkvLyBTZW5kIEFTQSB0byBwcmV2aW91cyBiaWRkZXIKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwMwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogdGhpcy5hc2FBbXQudmFsdWUsCgkvLyAgICAgICBhc3NldENsb3NlVG86IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNCAvLyBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNAoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZQoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNgoJLy8gYXNzZXRBbW91bnQ6IHRoaXMuYXNhQW10LnZhbHVlCglieXRlIDB4NjE3MzYxNDE2ZDc0IC8vICJhc2FBbXQiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNwoJLy8gYXNzZXRDbG9zZVRvOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGRlbGV0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBsaWNhdGlvbigpOiB2b2lkCmRlbGV0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTEyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcywKCS8vICAgICAgIGNsb3NlUmVtYWluZGVyVG86IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MsCgkvLyAgICAgICBhbW91bnQ6IDAsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExMwoJLy8gcmVjZWl2ZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExNAoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcwoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTUKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4Mzk4N2YwYzEgLy8gbWV0aG9kICJvcHRJbnRvQXNzZXQodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhjMjcyNTkyMiAvLyBtZXRob2QgInN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQiCglwdXNoYnl0ZXMgMHhkYjdmZTg0MyAvLyBtZXRob2QgImJpZChwYXkpdm9pZCIKCXB1c2hieXRlcyAweDAzMmY2NTBkIC8vIG1ldGhvZCAiY2xhaW1CaWRzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NTliMmFiMjYgLy8gbWV0aG9kICJjbGFpbV9hc3NldCh1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb3B0SW50b0Fzc2V0ICphYmlfcm91dGVfc3RhcnRBdWN0aW9uICphYmlfcm91dGVfYmlkICphYmlfcm91dGVfY2xhaW1CaWRzICphYmlfcm91dGVfY2xhaW1fYXNzZXQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4MDFhM2EzZmYgLy8gbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnIKCipjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uOgoJcHVzaGJ5dGVzIDB4MjQ4N2MzMmMgLy8gbWV0aG9kICJkZWxldGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBEZWxldGVBcHBsaWNhdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/auction/tealscript_artifacts/Auction.arc56_draft.json b/examples/auction/tealscript_artifacts/Auction.arc56_draft.json index 6b0efdd23..d069c7213 100644 --- a/examples/auction/tealscript_artifacts/Auction.arc56_draft.json +++ b/examples/auction/tealscript_artifacts/Auction.arc56_draft.json @@ -199,2140 +199,94 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 75 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 78 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 81 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 108 - ] - }, - { - "teal": 28, - "source": 17, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 29, - "source": 17, - "pc": [ - 112 - ] - }, - { - "teal": 30, - "source": 17, - "pc": [ - 113 - ] - }, - { - "teal": 34, - "source": 17, - "pc": [ - 114, - 115, - 116 - ] - }, - { - "teal": 38, - "source": 18, - "pc": [ - 117 - ] - }, - { - "teal": 39, - "source": 18, - "pc": [ - 118 - ] - }, - { - "teal": 40, - "source": 18, - "pc": [ - 119 - ] - }, - { - "teal": 44, - "source": 19, - "pc": [ - 120 - ] - }, - { - "teal": 45, - "source": 19, - "pc": [ - 121 - ] - }, - { - "teal": 46, - "source": 19, - "pc": [ - 122 - ] - }, - { - "teal": 50, - "source": 20, - "pc": [ - 123 - ] - }, - { - "teal": 51, - "source": 20, - "pc": [ - 124 - ] - }, - { - "teal": 52, - "source": 20, - "pc": [ - 125 - ] - }, - { - "teal": 56, - "source": 21, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 57, - "source": 21, - "pc": [ - 128 - ] - }, - { - "teal": 58, - "source": 21, - "pc": [ - 129 - ] - }, - { - "teal": 62, - "source": 24, - "pc": [ - 130 - ] - }, - { - "teal": 63, - "source": 24, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 64, - "source": 24, - "pc": [ - 133 - ] - }, - { - "teal": 65, - "source": 17, - "pc": [ - 134 - ] - }, - { - "teal": 70, - "source": 27, - "pc": [ - 135, - 136, - 137 - ] - }, - { - "teal": 71, - "source": 27, - "pc": [ - 138 - ] - }, - { - "teal": 74, - "source": 27, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 75, - "source": 27, - "pc": [ - 142 - ] - }, - { - "teal": 76, - "source": 27, - "pc": [ - 143 - ] - }, - { - "teal": 80, - "source": 27, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 86, - "source": 29, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 87, - "source": 29, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 88, - "source": 29, - "pc": [ - 151 - ] - }, - { - "teal": 91, - "source": 29, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}", - "pc": [ - 152 - ] - }, - { - "teal": 96, - "source": 32, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 97, - "source": 32, - "pc": [ - 155 - ] - }, - { - "teal": 98, - "source": 32, - "pc": [ - 156 - ] - }, - { - "teal": 99, - "source": 32, - "pc": [ - 157 - ] - }, - { - "teal": 100, - "source": 32, - "pc": [ - 158 - ] - }, - { - "teal": 105, - "source": 35, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 106, - "source": 35, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 107, - "source": 35, - "pc": [ - 163 - ] - }, - { - "teal": 116, - "source": 38, - "pc": [ - 164 - ] - }, - { - "teal": 117, - "source": 38, - "pc": [ - 165 - ] - }, - { - "teal": 118, - "source": 38, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 122, - "source": 39, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 123, - "source": 39, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 127, - "source": 40, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 128, - "source": 40, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 132, - "source": 41, - "pc": [ - 176 - ] - }, - { - "teal": 133, - "source": 41, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 136, - "source": 38, - "pc": [ - 179 - ] - }, - { - "teal": 137, - "source": 38, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 140, - "source": 38, - "pc": [ - 182 - ] - }, - { - "teal": 141, - "source": 27, - "pc": [ - 183 - ] - }, - { - "teal": 146, - "source": 45, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 147, - "source": 45, - "pc": [ - 186 - ] - }, - { - "teal": 148, - "source": 45, - "pc": [ - 187 - ] - }, - { - "teal": 149, - "source": 45, - "pc": [ - 188 - ] - }, - { - "teal": 150, - "source": 45, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 151, - "source": 45, - "pc": [ - 191 - ] - }, - { - "teal": 152, - "source": 45, - "pc": [ - 192 - ] - }, - { - "teal": 155, - "source": 45, - "errorMessage": "argument 0 (axfer) for startAuction must be a axfer transaction", - "pc": [ - 193 - ] - }, - { - "teal": 158, - "source": 45, - "pc": [ - 194, - 195, - 196 - ] - }, - { - "teal": 159, - "source": 45, - "pc": [ - 197 - ] - }, - { - "teal": 162, - "source": 45, - "pc": [ - 198, - 199, - 200 - ] - }, - { - "teal": 163, - "source": 45, - "pc": [ - 201 - ] - }, - { - "teal": 166, - "source": 45, - "pc": [ - 202, - 203, - 204 - ] - }, - { - "teal": 167, - "source": 45, - "pc": [ - 205 - ] - }, - { - "teal": 168, - "source": 45, - "pc": [ - 206 - ] - }, - { - "teal": 172, - "source": 45, - "pc": [ - 207, - 208, - 209 - ] - }, - { - "teal": 177, - "source": 46, - "pc": [ - 210, - 211 - ] - }, - { - "teal": 178, - "source": 46, - "pc": [ - 212, - 213 - ] - }, - { - "teal": 179, - "source": 46, - "pc": [ - 214 - ] - }, - { - "teal": 182, - "source": 46, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}", - "pc": [ - 215 - ] - }, - { - "teal": 187, - "source": 49, - "pc": [ - 216 - ] - }, - { - "teal": 188, - "source": 49, - "pc": [ - 217 - ] - }, - { - "teal": 189, - "source": 49, - "pc": [ - 218 - ] - }, - { - "teal": 190, - "source": 49, - "pc": [ - 219 - ] - }, - { - "teal": 191, - "source": 49, - "pc": [ - 220 - ] - }, - { - "teal": 197, - "source": 52, - "pc": [ - 221, - 222 - ] - }, - { - "teal": 198, - "source": 52, - "pc": [ - 223, - 224 - ] - }, - { - "teal": 199, - "source": 52, - "pc": [ - 225, - 226 - ] - }, - { - "teal": 200, - "source": 52, - "pc": [ - 227 - ] - }, - { - "teal": 203, - "source": 52, - "errorMessage": "transaction verification failed: {\"txn\":\"axfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 228 - ] - }, - { - "teal": 208, - "source": 55, - "pc": [ - 229 - ] - }, - { - "teal": 209, - "source": 55, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 210, - "source": 55, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 211, - "source": 55, - "pc": [ - 234 - ] - }, - { - "teal": 215, - "source": 56, - "pc": [ - 235 - ] - }, - { - "teal": 216, - "source": 56, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 217, - "source": 56, - "pc": [ - 238, - 239 - ] - }, - { - "teal": 218, - "source": 56, - "pc": [ - 240 - ] - }, - { - "teal": 219, - "source": 56, - "pc": [ - 241 - ] - }, - { - "teal": 223, - "source": 57, - "pc": [ - 242 - ] - }, - { - "teal": 224, - "source": 57, - "pc": [ - 243, - 244 - ] - }, - { - "teal": 225, - "source": 57, - "pc": [ - 245 - ] - }, - { - "teal": 226, - "source": 45, - "pc": [ - 246 - ] - }, - { - "teal": 230, - "source": 60, - "pc": [ - 247, - 248, - 249 - ] - }, - { - "teal": 237, - "source": 61, - "pc": [ - 250 - ] - }, - { - "teal": 238, - "source": 61, - "pc": [ - 251 - ] - }, - { - "teal": 239, - "source": 61, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 243, - "source": 62, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 244, - "source": 62, - "pc": [ - 256, - 257 - ] - }, - { - "teal": 248, - "source": 63, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 249, - "source": 63, - "pc": [ - 260, - 261 - ] - }, - { - "teal": 252, - "source": 61, - "pc": [ - 262 - ] - }, - { - "teal": 253, - "source": 61, - "pc": [ - 263, - 264 - ] - }, - { - "teal": 256, - "source": 61, - "pc": [ - 265 - ] - }, - { - "teal": 257, - "source": 60, - "pc": [ - 266 - ] - }, - { - "teal": 262, - "source": 67, - "pc": [ - 267, - 268, - 269 - ] - }, - { - "teal": 263, - "source": 67, - "pc": [ - 270 - ] - }, - { - "teal": 264, - "source": 67, - "pc": [ - 271 - ] - }, - { - "teal": 268, - "source": 67, - "pc": [ - 272, - 273, - 274 - ] - }, - { - "teal": 269, - "source": 67, - "pc": [ - 275 - ] - }, - { - "teal": 274, - "source": 70, - "pc": [ - 276, - 277 - ] - }, - { - "teal": 275, - "source": 70, - "pc": [ - 278 - ] - }, - { - "teal": 276, - "source": 70, - "pc": [ - 279 - ] - }, - { - "teal": 277, - "source": 70, - "pc": [ - 280 - ] - }, - { - "teal": 278, - "source": 70, - "pc": [ - 281, - 282 - ] - }, - { - "teal": 279, - "source": 70, - "pc": [ - 283 - ] - }, - { - "teal": 280, - "source": 70, - "pc": [ - 284 - ] - }, - { - "teal": 283, - "source": 70, - "errorMessage": "argument 0 (payment) for bid must be a pay transaction", - "pc": [ - 285 - ] - }, - { - "teal": 286, - "source": 70, - "pc": [ - 286, - 287, - 288 - ] - }, - { - "teal": 287, - "source": 70, - "pc": [ - 289 - ] - }, - { - "teal": 288, - "source": 70, - "pc": [ - 290 - ] - }, - { - "teal": 292, - "source": 70, - "pc": [ - 291, - 292, - 293 - ] - }, - { - "teal": 297, - "source": 72, - "pc": [ - 294, - 295 - ] - }, - { - "teal": 298, - "source": 72, - "pc": [ - 296 - ] - }, - { - "teal": 299, - "source": 72, - "pc": [ - 297 - ] - }, - { - "teal": 300, - "source": 72, - "pc": [ - 298 - ] - }, - { - "teal": 301, - "source": 72, - "pc": [ - 299 - ] - }, - { - "teal": 310, - "source": 75, - "pc": [ - 300, - 301 - ] - }, - { - "teal": 311, - "source": 76, - "pc": [ - 302, - 303 - ] - }, - { - "teal": 312, - "source": 76, - "pc": [ - 304, - 305 - ] - }, - { - "teal": 313, - "source": 76, - "pc": [ - 306 - ] - }, - { - "teal": 316, - "source": 76, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", - "pc": [ - 307 - ] - }, - { - "teal": 319, - "source": 75, - "pc": [ - 308, - 309 - ] - }, - { - "teal": 320, - "source": 77, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 321, - "source": 77, - "pc": [ - 312 - ] - }, - { - "teal": 322, - "source": 77, - "pc": [ - 313 - ] - }, - { - "teal": 323, - "source": 77, - "pc": [ - 314 - ] - }, - { - "teal": 326, - "source": 77, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"condition\":\"greaterThan\",\"expected\":\">this.previousBid.value\"}", - "pc": [ - 315 - ] - }, - { - "teal": 331, - "source": 81, - "pc": [ - 316 - ] - }, - { - "teal": 332, - "source": 81, - "pc": [ - 317, - 318 - ] - }, - { - "teal": 333, - "source": 81, - "pc": [ - 319, - 320 - ] - }, - { - "teal": 334, - "source": 81, - "pc": [ - 321 - ] - }, - { - "teal": 338, - "source": 82, - "pc": [ - 322 - ] - }, - { - "teal": 339, - "source": 82, - "pc": [ - 323, - 324 - ] - }, - { - "teal": 340, - "source": 82, - "pc": [ - 325, - 326 - ] - }, - { - "teal": 341, - "source": 82, - "pc": [ - 327 - ] - }, - { - "teal": 346, - "source": 85, - "pc": [ - 328, - 329 - ] - }, - { - "teal": 347, - "source": 85, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 348, - "source": 85, - "pc": [ - 332, - 333 - ] - }, - { - "teal": 349, - "source": 85, - "pc": [ - 334, - 335 - ] - }, - { - "teal": 350, - "source": 85, - "pc": [ - 336 - ] - }, - { - "teal": 351, - "source": 70, - "pc": [ - 337 - ] - }, - { - "teal": 356, - "source": 88, - "pc": [ - 338, - 339, - 340 - ] - }, - { - "teal": 357, - "source": 88, - "pc": [ - 341 - ] - }, - { - "teal": 358, - "source": 88, - "pc": [ - 342 - ] - }, - { - "teal": 362, - "source": 88, - "pc": [ - 343, - 344, - 345 - ] - }, - { - "teal": 365, - "source": 88, - "pc": [ - 346, - 347 - ] - }, - { - "teal": 366, - "source": 88, - "pc": [ - 348 - ] - }, - { - "teal": 370, - "source": 89, - "pc": [ - 349, - 350 - ] - }, - { - "teal": 371, - "source": 89, - "pc": [ - 351, - 352 - ] - }, - { - "teal": 372, - "source": 89, - "pc": [ - 353 - ] - }, - { - "teal": 373, - "source": 89, - "pc": [ - 354, - 355 - ] - }, - { - "teal": 377, - "source": 90, - "pc": [ - 356, - 357 - ] - }, - { - "teal": 378, - "source": 90, - "pc": [ - 358, - 359 - ] - }, - { - "teal": 384, - "source": 93, - "pc": [ - 360, - 361 - ] - }, - { - "teal": 385, - "source": 93, - "pc": [ - 362 - ] - }, - { - "teal": 386, - "source": 93, - "pc": [ - 363 - ] - }, - { - "teal": 387, - "source": 93, - "pc": [ - 364 - ] - }, - { - "teal": 388, - "source": 93, - "pc": [ - 365, - 366, - 367 - ] - }, - { - "teal": 393, - "source": 93, - "pc": [ - 368, - 369 - ] - }, - { - "teal": 394, - "source": 93, - "pc": [ - 370 - ] - }, - { - "teal": 395, - "source": 93, - "pc": [ - 371 - ] - }, - { - "teal": 396, - "source": 93, - "pc": [ - 372 - ] - }, - { - "teal": 397, - "source": 93, - "pc": [ - 373, - 374 - ] - }, - { - "teal": 402, - "source": 95, - "pc": [ - 375, - 376 - ] - }, - { - "teal": 403, - "source": 95, - "pc": [ - 377, - 378 - ] - }, - { - "teal": 404, - "source": 95, - "pc": [ - 379, - 380, - 381 - ] - }, - { - "teal": 408, - "source": 96, - "pc": [ - 382, - 383 - ] - }, - { - "teal": 409, - "source": 96, - "pc": [ - 384, - 385 - ] - }, - { - "teal": 410, - "source": 96, - "pc": [ - 386, - 387 - ] - }, - { - "teal": 411, - "source": 96, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 412, - "source": 96, - "pc": [ - 390 - ] - }, - { - "teal": 413, - "source": 96, - "pc": [ - 391 - ] - }, - { - "teal": 414, - "source": 88, - "pc": [ - 392 - ] - }, - { - "teal": 419, - "source": 99, - "pc": [ - 393, - 394, - 395 - ] - }, - { - "teal": 420, - "source": 99, - "pc": [ - 396 - ] - }, - { - "teal": 423, - "source": 99, - "pc": [ - 397, - 398, - 399 - ] - }, - { - "teal": 424, - "source": 99, - "pc": [ - 400 - ] - }, - { - "teal": 425, - "source": 99, - "pc": [ - 401 - ] - }, - { - "teal": 429, - "source": 99, - "pc": [ - 402, - 403, - 404 - ] - }, - { - "teal": 433, - "source": 100, - "pc": [ - 405, - 406 - ] - }, - { - "teal": 434, - "source": 100, - "pc": [ - 407 - ] - }, - { - "teal": 435, - "source": 100, - "pc": [ - 408 - ] - }, - { - "teal": 436, - "source": 100, - "pc": [ - 409 - ] - }, - { - "teal": 437, - "source": 100, - "pc": [ - 410 - ] - }, - { - "teal": 447, - "source": 103, - "pc": [ - 411 - ] - }, - { - "teal": 448, - "source": 103, - "pc": [ - 412 - ] - }, - { - "teal": 449, - "source": 103, - "pc": [ - 413, - 414 - ] - }, - { - "teal": 453, - "source": 104, - "pc": [ - 415 - ] - }, - { - "teal": 454, - "source": 104, - "pc": [ - 416 - ] - }, - { - "teal": 455, - "source": 104, - "pc": [ - 417, - 418 - ] - }, - { - "teal": 459, - "source": 105, - "pc": [ - 419, - 420 - ] - }, - { - "teal": 460, - "source": 105, - "pc": [ - 421, - 422 - ] - }, - { - "teal": 464, - "source": 106, - "pc": [ - 423 - ] - }, - { - "teal": 465, - "source": 106, - "pc": [ - 424 - ] - }, - { - "teal": 466, - "source": 106, - "pc": [ - 425, - 426 - ] - }, - { - "teal": 470, - "source": 107, - "pc": [ - 427 - ] - }, - { - "teal": 471, - "source": 107, - "pc": [ - 428 - ] - }, - { - "teal": 472, - "source": 107, - "pc": [ - 429, - 430 - ] - }, - { - "teal": 475, - "source": 103, - "pc": [ - 431 - ] - }, - { - "teal": 476, - "source": 103, - "pc": [ - 432, - 433 - ] - }, - { - "teal": 479, - "source": 103, - "pc": [ - 434 - ] - }, - { - "teal": 480, - "source": 99, - "pc": [ - 435 - ] - }, - { - "teal": 485, - "source": 111, - "pc": [ - 436, - 437, - 438 - ] - }, - { - "teal": 486, - "source": 111, - "pc": [ - 439 - ] - }, - { - "teal": 487, - "source": 111, - "pc": [ - 440 - ] - }, - { - "teal": 491, - "source": 111, - "pc": [ - 441, - 442, - 443 - ] - }, - { - "teal": 499, - "source": 112, - "pc": [ - 444 - ] - }, - { - "teal": 500, - "source": 112, - "pc": [ - 445 - ] - }, - { - "teal": 501, - "source": 112, - "pc": [ - 446, - 447 - ] - }, - { - "teal": 505, - "source": 113, - "pc": [ - 448, - 449 - ] - }, - { - "teal": 506, - "source": 113, - "pc": [ - 450, - 451 - ] - }, - { - "teal": 510, - "source": 114, - "pc": [ - 452, - 453 - ] - }, - { - "teal": 511, - "source": 114, - "pc": [ - 454, - 455 - ] - }, - { - "teal": 515, - "source": 115, - "pc": [ - 456 - ] - }, - { - "teal": 516, - "source": 115, - "pc": [ - 457, - 458 - ] - }, - { - "teal": 519, - "source": 112, - "pc": [ - 459 - ] - }, - { - "teal": 520, - "source": 112, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 523, - "source": 112, - "pc": [ - 462 - ] - }, - { - "teal": 524, - "source": 111, - "pc": [ - 463 - ] - }, - { - "teal": 527, - "source": 4, - "pc": [ - 464, - 465, - 466, - 467, - 468, - 469 - ] - }, - { - "teal": 528, - "source": 4, - "pc": [ - 470, - 471, - 472 - ] - }, - { - "teal": 529, - "source": 4, - "pc": [ - 473, - 474, - 475, - 476 - ] - }, - { - "teal": 532, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 477 - ] - }, - { - "teal": 535, - "source": 4, - "pc": [ - 478, - 479, - 480, - 481, - 482, - 483 - ] - }, - { - "teal": 536, - "source": 4, - "pc": [ - 484, - 485, - 486, - 487, - 488, - 489 - ] - }, - { - "teal": 537, - "source": 4, - "pc": [ - 490, - 491, - 492, - 493, - 494, - 495 - ] - }, - { - "teal": 538, - "source": 4, - "pc": [ - 496, - 497, - 498, - 499, - 500, - 501 - ] - }, - { - "teal": 539, - "source": 4, - "pc": [ - 502, - 503, - 504, - 505, - 506, - 507 - ] - }, - { - "teal": 540, - "source": 4, - "pc": [ - 508, - 509, - 510 - ] - }, - { - "teal": 541, - "source": 4, - "pc": [ - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522 - ] - }, - { - "teal": 544, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 523 - ] - }, - { - "teal": 547, - "source": 4, - "pc": [ - 524, - 525, - 526, - 527, - 528, - 529 - ] - }, - { - "teal": 548, - "source": 4, - "pc": [ - 530, - 531, - 532 - ] - }, - { - "teal": 549, - "source": 4, - "pc": [ - 533, - 534, - 535, - 536 - ] - }, - { - "teal": 552, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 537 - ] - }, - { - "teal": 555, - "source": 4, - "pc": [ - 538, - 539, - 540, - 541, - 542, - 543 - ] - }, - { - "teal": 556, - "source": 4, - "pc": [ - 544, - 545, - 546 - ] - }, - { - "teal": 557, - "source": 4, - "pc": [ - 547, - 548, - 549, - 550 - ] - }, - { - "teal": 560, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call DeleteApplication", - "pc": [ - 551 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 108 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 206 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}" + }, + { + "pc": [ + 259 + ], + "errorMessage": "argument 0 (axfer) for startAuction must be a axfer transaction" + }, + { + "pc": [ + 282 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}" + }, + { + "pc": [ + 307 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"axfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 399 + ], + "errorMessage": "argument 0 (payment) for bid must be a pay transaction" + }, + { + "pc": [ + 433 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}" + }, + { + "pc": [ + 453 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"condition\":\"greaterThan\",\"expected\":\">this.previousBid.value\"}" + }, + { + "pc": [ + 770 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 816 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + }, + { + "pc": [ + 830 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + }, + { + "pc": [ + 844 + ], + "errorMessage": "this contract does not implement the given ABI method for call DeleteApplication" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9EZWxldGVBcHBsaWNhdGlvbiAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTgKCS8vIHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9IDAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjE5CgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gMAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjAKCS8vIHRoaXMuYXNhQW10LnZhbHVlID0gMAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjEKCS8vIHRoaXMuYXNhLnZhbHVlID0gQXNzZXRJRC56ZXJvSW5kZXgKCWJ5dGUgMHg2MTczNjEgLy8gImFzYSIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjI0CgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJZ2xvYmFsIFplcm9BZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vcHRJbnRvQXNzZXQ6CgkvLyBhc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKCWNhbGxzdWIgb3B0SW50b0Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBvcHRJbnRvQXNzZXQoYXNzZXQ6IEFzc2V0SUQpOiB2b2lkCm9wdEludG9Bc3NldDoKCXByb3RvIDEgMAoKCS8vIE9ubHkgYWxsb3cgYXBwIGNyZWF0b3IgdG8gb3B0IHRoZSBhcHAgYWNjb3VudCBpbnRvIGEgQVNBCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyOQoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6Imdsb2JhbHMuY3JlYXRvckFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gVmVyaWZ5IGEgQVNBIGhhc24ndCBhbHJlYWR5IGJlZW4gb3B0ZWQgaW50bwoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmFzYS52YWx1ZSA9PT0gQXNzZXRJRC56ZXJvSW5kZXgpCglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBTYXZlIEFTQSBJRCBpbiBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM1CgkvLyB0aGlzLmFzYS52YWx1ZSA9IGFzc2V0CglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gU3VibWl0IG9wdC1pbiB0cmFuc2FjdGlvbjogMCBhc3NldCB0cmFuc2ZlciB0byBzZWxmCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozOAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzkKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0MAoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQxCgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKKmFiaV9yb3V0ZV9zdGFydEF1Y3Rpb246CgkvLyBheGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGF4ZmVyKSBmb3Igc3RhcnRBdWN0aW9uIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gbGVuZ3RoOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKCWNhbGxzdWIgc3RhcnRBdWN0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydEF1Y3Rpb24oc3RhcnRpbmdQcmljZTogdWludDY0LCBsZW5ndGg6IHVpbnQ2NCwgYXhmZXI6IEFzc2V0VHJhbnNmZXJUeG4pOiB2b2lkCnN0YXJ0QXVjdGlvbjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQ2CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoiZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBFbnN1cmUgdGhlIGF1Y3Rpb24gaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0OQoJLy8gYXNzZXJ0KHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9PT0gMCkKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIFZlcmlmeSBheGZlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NTIKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oYXhmZXIsIHsgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMyAvLyBheGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJheGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NQoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSBheGZlci5hc3NldEFtb3VudAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJZnJhbWVfZGlnIC0zIC8vIGF4ZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NgoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgKyBsZW5ndGgKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGg6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NwoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHN0YXJ0aW5nUHJpY2UKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHBheShyZWNlaXZlcjogQWRkcmVzcywgYW1vdW50OiB1aW50NjQpOiB2b2lkCnBheToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYyCgkvLyByZWNlaXZlcjogcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYzCgkvLyBhbW91bnQ6IGFtb3VudAoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudDogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gb3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfb3B0SW5Ub0FwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgb3B0SW5Ub0FwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCXJldHN1YgoKLy8gYmlkKHBheSl2b2lkCiphYmlfcm91dGVfYmlkOgoJLy8gcGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF5bWVudCkgZm9yIGJpZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGJpZChwYXkpdm9pZAoJY2FsbHN1YiBiaWQKCWludCAxCglyZXR1cm4KCi8vIGJpZChwYXltZW50OiBQYXlUeG4pOiB2b2lkCmJpZDoKCXByb3RvIDEgMAoKCS8vIEVuc3VyZSBhdWN0aW9uIGhhc24ndCBlbmRlZAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NzIKCS8vIGFzc2VydChnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCA8IHRoaXMuYXVjdGlvbkVuZC52YWx1ZSkKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0Cgk8Cglhc3NlcnQKCgkvLyBWZXJpZnkgcGF5bWVudCB0cmFuc2FjdGlvbgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NzUKCS8vIHZlcmlmeVBheVR4bihwYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIGFtb3VudDogeyBncmVhdGVyVGhhbjogdGhpcy5wcmV2aW91c0JpZC52YWx1ZSB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWFwcF9nbG9iYWxfZ2V0Cgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJwYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPnRoaXMucHJldmlvdXNCaWQudmFsdWUifQoJYXNzZXJ0CgoJLy8gU2V0IGdsb2JhbCBzdGF0ZQoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODEKCS8vIHRoaXMucHJldmlvdXNCaWQudmFsdWUgPSBwYXltZW50LmFtb3VudAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjgyCgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gcGF5bWVudC5zZW5kZXIKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBVcGRhdGUgY2xhaW1hYmxlIGFtb3VudAoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6ODUKCS8vIHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBwYXltZW50LmFtb3VudAoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGNsYWltQmlkcygpdm9pZAoqYWJpX3JvdXRlX2NsYWltQmlkczoKCS8vIGV4ZWN1dGUgY2xhaW1CaWRzKCl2b2lkCgljYWxsc3ViIGNsYWltQmlkcwoJaW50IDEKCXJldHVybgoKLy8gY2xhaW1CaWRzKCk6IHZvaWQKY2xhaW1CaWRzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjg5CgkvLyBvcmlnaW5hbEFtb3VudCA9IHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgLy8gImNsYWltYWJsZUFtb3VudCIKCWFwcF9sb2NhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBvcmlnaW5hbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTAKCS8vIGFtb3VudCA9IG9yaWdpbmFsQW1vdW50CglmcmFtZV9kaWcgMCAvLyBvcmlnaW5hbEFtb3VudDogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gYW1vdW50OiB1aW50NjQKCgkvLyBzdWJ0cmFjdCBwcmV2aW91cyBiaWQgaWYgc2VuZGVyIGlzIHByZXZpb3VzIGJpZGRlcgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjkzCgkvLyB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUKCXR4biBTZW5kZXIKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjkzCgkvLyBhbW91bnQgPSBhbW91bnQgLSB0aGlzLnByZXZpb3VzQmlkLnZhbHVlCglmcmFtZV9kaWcgMSAvLyBhbW91bnQ6IHVpbnQ2NAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWZyYW1lX2J1cnkgMSAvLyBhbW91bnQ6IHVpbnQ2NAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5NQoJLy8gdGhpcy5wYXkodGhpcy50eG4uc2VuZGVyLCBhbW91bnQpCglmcmFtZV9kaWcgMSAvLyBhbW91bnQ6IHVpbnQ2NAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwYXkKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5NgoJLy8gdGhpcy5jbGFpbWFibGVBbW91bnQodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IG9yaWdpbmFsQW1vdW50IC0gYW1vdW50Cgl0eG4gU2VuZGVyCglieXRlIDB4NjM2YzYxNjk2ZDYxNjI2YzY1NDE2ZDZmNzU2ZTc0IC8vICJjbGFpbWFibGVBbW91bnQiCglmcmFtZV9kaWcgMCAvLyBvcmlnaW5hbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBhbW91bnQ6IHVpbnQ2NAoJLQoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBjbGFpbV9hc3NldCh1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NsYWltX2Fzc2V0OgoJLy8gYXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2xhaW1fYXNzZXQodWludDY0KXZvaWQKCWNhbGxzdWIgY2xhaW1fYXNzZXQKCWludCAxCglyZXR1cm4KCi8vIGNsYWltX2Fzc2V0KGFzc2V0OiBBc3NldElEKTogdm9pZApjbGFpbV9hc3NldDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwMAoJLy8gYXNzZXJ0KGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wID4gdGhpcy5hdWN0aW9uRW5kLnZhbHVlKQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJYnl0ZSAweDYxNzU2Mzc0Njk2ZjZlNDU2ZTY0IC8vICJhdWN0aW9uRW5kIgoJYXBwX2dsb2JhbF9nZXQKCT4KCWFzc2VydAoKCS8vIFNlbmQgQVNBIHRvIHByZXZpb3VzIGJpZGRlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTAzCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlLAoJLy8gICAgICAgeGZlckFzc2V0OiBhc3NldCwKCS8vICAgICAgIGFzc2V0QW1vdW50OiB0aGlzLmFzYUFtdC52YWx1ZSwKCS8vICAgICAgIGFzc2V0Q2xvc2VUbzogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA0CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA1CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA2CgkvLyBhc3NldEFtb3VudDogdGhpcy5hc2FBbXQudmFsdWUKCWJ5dGUgMHg2MTczNjE0MTZkNzQgLy8gImFzYUFtdCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTA3CgkvLyBhc3NldENsb3NlVG86IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0NjQ2NTcyIC8vICJwcmV2aW91c0JpZGRlciIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKZGVsZXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIHJlY2VpdmVyOiBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzLAoJLy8gICAgICAgY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcywKCS8vICAgICAgIGFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExMwoJLy8gcmVjZWl2ZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExNAoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcwoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTUKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvcHRJbnRvQXNzZXQodWludDY0KXZvaWQiCgltZXRob2QgInN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQiCgltZXRob2QgImJpZChwYXkpdm9pZCIKCW1ldGhvZCAiY2xhaW1CaWRzKCl2b2lkIgoJbWV0aG9kICJjbGFpbV9hc3NldCh1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb3B0SW50b0Fzc2V0ICphYmlfcm91dGVfc3RhcnRBdWN0aW9uICphYmlfcm91dGVfYmlkICphYmlfcm91dGVfY2xhaW1CaWRzICphYmlfcm91dGVfY2xhaW1fYXNzZXQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnIKCipjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uOgoJbWV0aG9kICJkZWxldGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBEZWxldGVBcHBsaWNhdGlvbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAKYnl0ZWNibG9jayAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IDB4NjE3NTYzNzQ2OTZmNmU0NTZlNjQgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgMHg2MTczNjE0MTZkNzQgMHg2MTczNjEgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9EZWxldGVBcHBsaWNhdGlvbiAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTgKCS8vIHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9IDAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjE5CgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gMAoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQgLy8gInByZXZpb3VzQmlkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjAKCS8vIHRoaXMuYXNhQW10LnZhbHVlID0gMAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MjEKCS8vIHRoaXMuYXNhLnZhbHVlID0gQXNzZXRJRC56ZXJvSW5kZXgKCWJ5dGUgMHg2MTczNjEgLy8gImFzYSIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjI0CgkvLyB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlID0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJZ2xvYmFsIFplcm9BZGRyZXNzCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vcHRJbnRvQXNzZXQ6CgkvLyBhc3NldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvcHRJbnRvQXNzZXQodWludDY0KXZvaWQKCWNhbGxzdWIgb3B0SW50b0Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBvcHRJbnRvQXNzZXQoYXNzZXQ6IEFzc2V0SUQpOiB2b2lkCm9wdEludG9Bc3NldDoKCXByb3RvIDEgMAoKCS8vIE9ubHkgYWxsb3cgYXBwIGNyZWF0b3IgdG8gb3B0IHRoZSBhcHAgYWNjb3VudCBpbnRvIGEgQVNBCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoyOQoJLy8gdmVyaWZ5QXBwQ2FsbFR4bih0aGlzLnR4biwgeyBzZW5kZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6Imdsb2JhbHMuY3JlYXRvckFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gVmVyaWZ5IGEgQVNBIGhhc24ndCBhbHJlYWR5IGJlZW4gb3B0ZWQgaW50bwoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmFzYS52YWx1ZSA9PT0gQXNzZXRJRC56ZXJvSW5kZXgpCglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBTYXZlIEFTQSBJRCBpbiBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjM1CgkvLyB0aGlzLmFzYS52YWx1ZSA9IGFzc2V0CglieXRlIDB4NjE3MzYxIC8vICJhc2EiCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gU3VibWl0IG9wdC1pbiB0cmFuc2FjdGlvbjogMCBhc3NldCB0cmFuc2ZlciB0byBzZWxmCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czozOAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MzkKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0MAoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQxCgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKKmFiaV9yb3V0ZV9zdGFydEF1Y3Rpb246CgkvLyBheGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCA0IC8vIGF4ZmVyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGF4ZmVyKSBmb3Igc3RhcnRBdWN0aW9uIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gbGVuZ3RoOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQKCWNhbGxzdWIgc3RhcnRBdWN0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydEF1Y3Rpb24oc3RhcnRpbmdQcmljZTogdWludDY0LCBsZW5ndGg6IHVpbnQ2NCwgYXhmZXI6IEFzc2V0VHJhbnNmZXJUeG4pOiB2b2lkCnN0YXJ0QXVjdGlvbjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjQ2CgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoiZ2xvYmFscy5jcmVhdG9yQWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBFbnN1cmUgdGhlIGF1Y3Rpb24gaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo0OQoJLy8gYXNzZXJ0KHRoaXMuYXVjdGlvbkVuZC52YWx1ZSA9PT0gMCkKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIFZlcmlmeSBheGZlcgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NTIKCS8vIHZlcmlmeUFzc2V0VHJhbnNmZXJUeG4oYXhmZXIsIHsgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMyAvLyBheGZlcjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJheGZlciIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBTZXQgZ2xvYmFsIHN0YXRlCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NQoJLy8gdGhpcy5hc2FBbXQudmFsdWUgPSBheGZlci5hc3NldEFtb3VudAoJYnl0ZSAweDYxNzM2MTQxNmQ3NCAvLyAiYXNhQW10IgoJZnJhbWVfZGlnIC0zIC8vIGF4ZmVyOiBBc3NldFRyYW5zZmVyVHhuCglndHhucyBBc3NldEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NgoJLy8gdGhpcy5hdWN0aW9uRW5kLnZhbHVlID0gZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgKyBsZW5ndGgKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGg6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo1NwoJLy8gdGhpcy5wcmV2aW91c0JpZC52YWx1ZSA9IHN0YXJ0aW5nUHJpY2UKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBzdGFydGluZ1ByaWNlOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHBheShyZWNlaXZlcjogQWRkcmVzcywgYW1vdW50OiB1aW50NjQpOiB2b2lkCnBheToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjYxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NjIKCS8vIHJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6NjMKCS8vIGFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTIgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9wdEluVG9BcHBsaWNhdGlvbigpOiB2b2lkCm9wdEluVG9BcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoJcmV0c3ViCgovLyBiaWQocGF5KXZvaWQKKmFiaV9yb3V0ZV9iaWQ6CgkvLyBwYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBheW1lbnQpIGZvciBiaWQgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaWQocGF5KXZvaWQKCWNhbGxzdWIgYmlkCglpbnQgMQoJcmV0dXJuCgovLyBiaWQocGF5bWVudDogUGF5VHhuKTogdm9pZApiaWQ6Cglwcm90byAxIDAKCgkvLyBFbnN1cmUgYXVjdGlvbiBoYXNuJ3QgZW5kZWQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAgPCB0aGlzLmF1Y3Rpb25FbmQudmFsdWUpCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCglieXRlIDB4NjE3NTYzNzQ2OTZmNmU0NTZlNjQgLy8gImF1Y3Rpb25FbmQiCglhcHBfZ2xvYmFsX2dldAoJPAoJYXNzZXJ0CgoJLy8gVmVyaWZ5IHBheW1lbnQgdHJhbnNhY3Rpb24KCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjc1CgkvLyB2ZXJpZnlQYXlUeG4ocGF5bWVudCwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhbW91bnQ6IHsgZ3JlYXRlclRoYW46IHRoaXMucHJldmlvdXNCaWQudmFsdWUgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLnR4bi5zZW5kZXIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NCAvLyAicHJldmlvdXNCaWQiCglhcHBfZ2xvYmFsX2dldAoJPgoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoicGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiY29uZGl0aW9uIjoiZ3JlYXRlclRoYW4iLCJleHBlY3RlZCI6Ij50aGlzLnByZXZpb3VzQmlkLnZhbHVlIn0KCWFzc2VydAoKCS8vIFNldCBnbG9iYWwgc3RhdGUKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjgxCgkvLyB0aGlzLnByZXZpb3VzQmlkLnZhbHVlID0gcGF5bWVudC5hbW91bnQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo4MgoJLy8gdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSA9IHBheW1lbnQuc2VuZGVyCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglmcmFtZV9kaWcgLTEgLy8gcGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gVXBkYXRlIGNsYWltYWJsZSBhbW91bnQKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjg1CgkvLyB0aGlzLmNsYWltYWJsZUFtb3VudCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gcGF5bWVudC5hbW91bnQKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzZjNjE2OTZkNjE2MjZjNjU0MTZkNmY3NTZlNzQgLy8gImNsYWltYWJsZUFtb3VudCIKCWZyYW1lX2RpZyAtMSAvLyBwYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBjbGFpbUJpZHMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbUJpZHM6CgkvLyBleGVjdXRlIGNsYWltQmlkcygpdm9pZAoJY2FsbHN1YiBjbGFpbUJpZHMKCWludCAxCglyZXR1cm4KCi8vIGNsYWltQmlkcygpOiB2b2lkCmNsYWltQmlkczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo4OQoJLy8gb3JpZ2luYWxBbW91bnQgPSB0aGlzLmNsYWltYWJsZUFtb3VudCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlCgl0eG4gU2VuZGVyCglieXRlIDB4NjM2YzYxNjk2ZDYxNjI2YzY1NDE2ZDZmNzU2ZTc0IC8vICJjbGFpbWFibGVBbW91bnQiCglhcHBfbG9jYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjkwCgkvLyBhbW91bnQgPSBvcmlnaW5hbEFtb3VudAoJZnJhbWVfZGlnIDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGFtb3VudDogdWludDY0CgoJLy8gc3VidHJhY3QgcHJldmlvdXMgYmlkIGlmIHNlbmRlciBpcyBwcmV2aW91cyBiaWRkZXIKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MwoJLy8gdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCgl0eG4gU2VuZGVyCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czo5MwoJLy8gYW1vdW50ID0gYW1vdW50IC0gdGhpcy5wcmV2aW91c0JpZC52YWx1ZQoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCWJ5dGUgMHg3MDcyNjU3NjY5NmY3NTczNDI2OTY0IC8vICJwcmV2aW91c0JpZCIKCWFwcF9nbG9iYWxfZ2V0CgktCglmcmFtZV9idXJ5IDEgLy8gYW1vdW50OiB1aW50NjQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTUKCS8vIHRoaXMucGF5KHRoaXMudHhuLnNlbmRlciwgYW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCXR4biBTZW5kZXIKCWNhbGxzdWIgcGF5CgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6OTYKCS8vIHRoaXMuY2xhaW1hYmxlQW1vdW50KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBvcmlnaW5hbEFtb3VudCAtIGFtb3VudAoJdHhuIFNlbmRlcgoJYnl0ZSAweDYzNmM2MTY5NmQ2MTYyNmM2NTQxNmQ2Zjc1NmU3NCAvLyAiY2xhaW1hYmxlQW1vdW50IgoJZnJhbWVfZGlnIDAgLy8gb3JpZ2luYWxBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gYW1vdW50OiB1aW50NjQKCS0KCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gY2xhaW1fYXNzZXQodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jbGFpbV9hc3NldDoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNsYWltX2Fzc2V0KHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNsYWltX2Fzc2V0CglpbnQgMQoJcmV0dXJuCgovLyBjbGFpbV9hc3NldChhc3NldDogQXNzZXRJRCk6IHZvaWQKY2xhaW1fYXNzZXQ6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMDAKCS8vIGFzc2VydChnbG9iYWxzLmxhdGVzdFRpbWVzdGFtcCA+IHRoaXMuYXVjdGlvbkVuZC52YWx1ZSkKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCWJ5dGUgMHg2MTc1NjM3NDY5NmY2ZTQ1NmU2NCAvLyAiYXVjdGlvbkVuZCIKCWFwcF9nbG9iYWxfZ2V0Cgk+Cglhc3NlcnQKCgkvLyBTZW5kIEFTQSB0byBwcmV2aW91cyBiaWRkZXIKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwMwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZSwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgICBhc3NldEFtb3VudDogdGhpcy5hc2FBbXQudmFsdWUsCgkvLyAgICAgICBhc3NldENsb3NlVG86IHRoaXMucHJldmlvdXNCaWRkZXIudmFsdWUsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNCAvLyBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNAoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5wcmV2aW91c0JpZGRlci52YWx1ZQoJYnl0ZSAweDcwNzI2NTc2Njk2Zjc1NzM0MjY5NjQ2NDY1NzIgLy8gInByZXZpb3VzQmlkZGVyIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNQoJLy8geGZlckFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFzc2V0OiBBc3NldElECglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNgoJLy8gYXNzZXRBbW91bnQ6IHRoaXMuYXNhQW10LnZhbHVlCglieXRlIDB4NjE3MzYxNDE2ZDc0IC8vICJhc2FBbXQiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjEwNwoJLy8gYXNzZXRDbG9zZVRvOiB0aGlzLnByZXZpb3VzQmlkZGVyLnZhbHVlCglieXRlIDB4NzA3MjY1NzY2OTZmNzU3MzQyNjk2NDY0NjU3MiAvLyAicHJldmlvdXNCaWRkZXIiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGRlbGV0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBsaWNhdGlvbigpOiB2b2lkCmRlbGV0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYXVjdGlvbi9hdWN0aW9uLmFsZ28udHM6MTEyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICByZWNlaXZlcjogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcywKCS8vICAgICAgIGNsb3NlUmVtYWluZGVyVG86IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MsCgkvLyAgICAgICBhbW91bnQ6IDAsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExMwoJLy8gcmVjZWl2ZXI6IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2F1Y3Rpb24vYXVjdGlvbi5hbGdvLnRzOjExNAoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy5jcmVhdG9yQWRkcmVzcwoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyBleGFtcGxlcy9hdWN0aW9uL2F1Y3Rpb24uYWxnby50czoxMTUKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4Mzk4N2YwYzEgLy8gbWV0aG9kICJvcHRJbnRvQXNzZXQodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhjMjcyNTkyMiAvLyBtZXRob2QgInN0YXJ0QXVjdGlvbih1aW50NjQsdWludDY0LGF4ZmVyKXZvaWQiCglwdXNoYnl0ZXMgMHhkYjdmZTg0MyAvLyBtZXRob2QgImJpZChwYXkpdm9pZCIKCXB1c2hieXRlcyAweDAzMmY2NTBkIC8vIG1ldGhvZCAiY2xhaW1CaWRzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NTliMmFiMjYgLy8gbWV0aG9kICJjbGFpbV9hc3NldCh1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb3B0SW50b0Fzc2V0ICphYmlfcm91dGVfc3RhcnRBdWN0aW9uICphYmlfcm91dGVfYmlkICphYmlfcm91dGVfY2xhaW1CaWRzICphYmlfcm91dGVfY2xhaW1fYXNzZXQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4MDFhM2EzZmYgLy8gbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnIKCipjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uOgoJcHVzaGJ5dGVzIDB4MjQ4N2MzMmMgLy8gbWV0aG9kICJkZWxldGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBEZWxldGVBcHBsaWNhdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAEJgYKYXVjdGlvbkVuZAtwcmV2aW91c0JpZA5wcmV2aW91c0JpZGRlcgZhc2FBbXQDYXNhD2NsYWltYWJsZUFtb3VudDEYFIEGCzEZCI0MAXIBoAAAAAAAAAGuAWQAAAAAAAAAAAAAAIgAAiJDigAAKCNnKSNnKyNnJwQjZyoyA2eJNhoBF4gAAiJDigEAMQAyCRJEJwRkIxJEJwSL/2exJLIQMgqyFIv/shEjshIjsgGziTEWIglJOBAkEkQ2GgIXNhoBF4gAAiJDigMAMQAyCRJEKGQjEkSL/TgUMgoSRCuL/TgSZygyB4v+CGcpi/9niYoCALEishCL/7IHi/6yCCOyAbOJiAACIkOKAACJMRYiCUk4ECISRIgAAiJDigEAMgcoZAxEi/84ADEAEkSL/zgIKWQNRCmL/zgIZyqL/zgAZzEAJwWL/zgIZomIAAIiQ4oAAIAASTEAJwVijACLAIwBMQAqZBJBAAeLASlkCYwBiwExAIj/eTEAJwWLAIsBCWaJNhoBF4gAAiJDigEAMgcoZA1EsSSyECpkshSL/7IRK2SyEipkshUjsgGziYgAAiJDigAAsSKyEDIJsgcyCbIJI7III7IBs4mABLhEezY2GgCOAf6QAIAEOYfwwYAEwnJZIoAE23/oQ4AEAy9lDYAEWbKrJjYaAI4F/nz+rf8J/0f/fgCABAGjo/82GgCOAf7yAIAEJIfDLDYaAI4B/40A", + "approval": "CiACAQAmBw5wcmV2aW91c0JpZGRlcgtwcmV2aW91c0JpZAphdWN0aW9uRW5kD2NsYWltYWJsZUFtb3VudAZhc2FBbXQDYXNhADEYFIEGCzEZCI0MApcCxQAAAAAAAALTAokAAAAAAAAAAAAAAIgAA4EBQ4oAAIAKYXVjdGlvbkVuZIEAZ4ALcHJldmlvdXNCaWSBAGeABmFzYUFtdIEAZ4ADYXNhgQBngA5wcmV2aW91c0JpZGRlcjIDZ4k2GgEXiAADgQFDigEAMQAyCRJEgANhc2FkgQASRIADYXNhi/9nsYEEshAyCrIUi/+yEYEAshKBALIBs4kxFoEBCUk4EIEEEkQ2GgIXNhoBF4gAA4EBQ4oDADEAMgkSRIAKYXVjdGlvbkVuZGSBABJEi/04FDIKEkSABmFzYUFtdIv9OBJngAphdWN0aW9uRW5kMgeL/ghngAtwcmV2aW91c0JpZIv/Z4mKAgCxgQGyEIv/sgeL/rIIgQCyAbOJiAADgQFDigAAiTEWgQEJSTgQgQESRIgAA4EBQ4oBADIHgAphdWN0aW9uRW5kZAxEi/84ADEAEkSL/zgIgAtwcmV2aW91c0JpZGQNRIALcHJldmlvdXNCaWSL/zgIZ4AOcHJldmlvdXNCaWRkZXKL/zgAZzEAgA9jbGFpbWFibGVBbW91bnSL/zgIZomIAAOBAUOKAACAAEkxAIAPY2xhaW1hYmxlQW1vdW50YowAiwCMATEAgA5wcmV2aW91c0JpZGRlcmQSQQATiwGAC3ByZXZpb3VzQmlkZAmMAYsBMQCI/wcxAIAPY2xhaW1hYmxlQW1vdW50iwCLAQlmiTYaAReIAAOBAUOKAQAyB4AKYXVjdGlvbkVuZGQNRLGBBLIQgA5wcmV2aW91c0JpZGRlcmSyFIv/shGABmFzYUFtdGSyEoAOcHJldmlvdXNCaWRkZXJkshWBALIBs4mIAAOBAUOKAACxgQGyEDIJsgcyCbIJgQCyCIEAsgGziYAEuER7NjYaAI4B/WsAgAQ5h/DBgATCclkigATbf+hDgAQDL2UNgARZsqsmNhoAjgX9jP3I/lT+1v9HAIAEAaOj/zYaAI4B/jwAgAQkh8MsNhoAjgH/iQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/auction/tealscript_artifacts/Auction.src_map.json b/examples/auction/tealscript_artifacts/Auction.src_map.json index f6a086b30..ae07b5cf9 100644 --- a/examples/auction/tealscript_artifacts/Auction.src_map.json +++ b/examples/auction/tealscript_artifacts/Auction.src_map.json @@ -1,13 +1,25 @@ [ { "teal": 1, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 0, 1, 2, 3, - 4, + 4 + ] + }, + { + "teal": 3, + "source": "examples/auction/auction.algo.ts:4", + "pc": [ 5, 6, 7, @@ -79,53 +91,53 @@ ] }, { - "teal": 13, - "source": 4, + "teal": 15, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 73, 74 ] }, { - "teal": 14, - "source": 4, + "teal": 16, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 75 ] }, { - "teal": 15, - "source": 4, + "teal": 17, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 76, 77 ] }, { - "teal": 16, - "source": 4, + "teal": 18, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 78 ] }, { - "teal": 17, - "source": 4, + "teal": 19, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 79, 80 ] }, { - "teal": 18, - "source": 4, + "teal": 20, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 81 ] }, { - "teal": 19, - "source": 4, + "teal": 21, + "source": "examples/auction/auction.algo.ts:4", "pc": [ 82, 83, @@ -156,16 +168,16 @@ ] }, { - "teal": 23, - "source": 4, + "teal": 25, + "source": "examples/auction/auction.algo.ts:4", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ 108 ] }, { - "teal": 28, - "source": 17, + "teal": 30, + "source": "examples/auction/auction.algo.ts:17", "pc": [ 109, 110, @@ -173,1954 +185,2247 @@ ] }, { - "teal": 29, - "source": 17, - "pc": [ - 112 - ] - }, - { - "teal": 30, - "source": 17, + "teal": 31, + "source": "examples/auction/auction.algo.ts:17", "pc": [ + 112, 113 ] }, { - "teal": 34, - "source": 17, + "teal": 32, + "source": "examples/auction/auction.algo.ts:17", "pc": [ - 114, - 115, - 116 + 114 ] }, { - "teal": 38, - "source": 18, + "teal": 36, + "source": "examples/auction/auction.algo.ts:17", "pc": [ + 115, + 116, 117 ] }, - { - "teal": 39, - "source": 18, - "pc": [ - 118 - ] - }, { "teal": 40, - "source": 18, - "pc": [ - 119 + "source": "examples/auction/auction.algo.ts:18", + "pc": [ + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129 ] }, { - "teal": 44, - "source": 19, + "teal": 41, + "source": "examples/auction/auction.algo.ts:18", "pc": [ - 120 + 130, + 131 ] }, { - "teal": 45, - "source": 19, + "teal": 42, + "source": "examples/auction/auction.algo.ts:18", "pc": [ - 121 + 132 ] }, { "teal": 46, - "source": 19, + "source": "examples/auction/auction.algo.ts:19", "pc": [ - 122 + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145 ] }, { - "teal": 50, - "source": 20, + "teal": 47, + "source": "examples/auction/auction.algo.ts:19", "pc": [ - 123 + 146, + 147 ] }, { - "teal": 51, - "source": 20, + "teal": 48, + "source": "examples/auction/auction.algo.ts:19", "pc": [ - 124 + 148 ] }, { "teal": 52, - "source": 20, + "source": "examples/auction/auction.algo.ts:20", "pc": [ - 125 + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156 ] }, { - "teal": 56, - "source": 21, + "teal": 53, + "source": "examples/auction/auction.algo.ts:20", "pc": [ - 126, - 127 + 157, + 158 ] }, { - "teal": 57, - "source": 21, + "teal": 54, + "source": "examples/auction/auction.algo.ts:20", "pc": [ - 128 + 159 ] }, { "teal": 58, - "source": 21, + "source": "examples/auction/auction.algo.ts:21", "pc": [ - 129 + 160, + 161, + 162, + 163, + 164 ] }, { - "teal": 62, - "source": 24, + "teal": 59, + "source": "examples/auction/auction.algo.ts:21", "pc": [ - 130 + 165, + 166 ] }, { - "teal": 63, - "source": 24, + "teal": 60, + "source": "examples/auction/auction.algo.ts:21", "pc": [ - 131, - 132 + 167 ] }, { "teal": 64, - "source": 24, + "source": "examples/auction/auction.algo.ts:24", "pc": [ - 133 + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183 ] }, { "teal": 65, - "source": 17, + "source": "examples/auction/auction.algo.ts:24", "pc": [ - 134 + 184, + 185 ] }, { - "teal": 70, - "source": 27, + "teal": 66, + "source": "examples/auction/auction.algo.ts:24", "pc": [ - 135, - 136, - 137 + 186 ] }, { - "teal": 71, - "source": 27, + "teal": 67, + "source": "examples/auction/auction.algo.ts:17", "pc": [ - 138 + 187 ] }, { - "teal": 74, - "source": 27, + "teal": 72, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 139, - 140, - 141 + 188, + 189, + 190 ] }, { - "teal": 75, - "source": 27, + "teal": 73, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 142 + 191 ] }, { "teal": 76, - "source": 27, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 143 + 192, + 193, + 194 ] }, { - "teal": 80, - "source": 27, + "teal": 77, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 144, - 145, - 146 + 195, + 196 ] }, { - "teal": 86, - "source": 29, + "teal": 78, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 147, - 148 + 197 ] }, { - "teal": 87, - "source": 29, + "teal": 82, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 149, - 150 + 198, + 199, + 200 ] }, { "teal": 88, - "source": 29, + "source": "examples/auction/auction.algo.ts:29", "pc": [ - 151 + 201, + 202 ] }, { - "teal": 91, - "source": 29, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}", + "teal": 89, + "source": "examples/auction/auction.algo.ts:29", "pc": [ - 152 + 203, + 204 ] }, { - "teal": 96, - "source": 32, + "teal": 90, + "source": "examples/auction/auction.algo.ts:29", "pc": [ - 153, - 154 + 205 ] }, { - "teal": 97, - "source": 32, + "teal": 93, + "source": "examples/auction/auction.algo.ts:29", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}", "pc": [ - 155 + 206 ] }, { "teal": 98, - "source": 32, + "source": "examples/auction/auction.algo.ts:32", "pc": [ - 156 + 207, + 208, + 209, + 210, + 211 ] }, { "teal": 99, - "source": 32, + "source": "examples/auction/auction.algo.ts:32", "pc": [ - 157 + 212 ] }, { "teal": 100, - "source": 32, + "source": "examples/auction/auction.algo.ts:32", "pc": [ - 158 + 213, + 214 ] }, { - "teal": 105, - "source": 35, + "teal": 101, + "source": "examples/auction/auction.algo.ts:32", "pc": [ - 159, - 160 + 215 ] }, { - "teal": 106, - "source": 35, + "teal": 102, + "source": "examples/auction/auction.algo.ts:32", "pc": [ - 161, - 162 + 216 ] }, { "teal": 107, - "source": 35, + "source": "examples/auction/auction.algo.ts:35", "pc": [ - 163 + 217, + 218, + 219, + 220, + 221 ] }, { - "teal": 116, - "source": 38, + "teal": 108, + "source": "examples/auction/auction.algo.ts:35", "pc": [ - 164 + 222, + 223 ] }, { - "teal": 117, - "source": 38, + "teal": 109, + "source": "examples/auction/auction.algo.ts:35", "pc": [ - 165 + 224 ] }, { "teal": 118, - "source": 38, + "source": "examples/auction/auction.algo.ts:38", "pc": [ - 166, - 167 + 225 ] }, { - "teal": 122, - "source": 39, + "teal": 119, + "source": "examples/auction/auction.algo.ts:38", "pc": [ - 168, - 169 + 226, + 227 ] }, { - "teal": 123, - "source": 39, + "teal": 120, + "source": "examples/auction/auction.algo.ts:38", "pc": [ - 170, - 171 + 228, + 229 ] }, { - "teal": 127, - "source": 40, + "teal": 124, + "source": "examples/auction/auction.algo.ts:39", "pc": [ - 172, - 173 + 230, + 231 ] }, { - "teal": 128, - "source": 40, + "teal": 125, + "source": "examples/auction/auction.algo.ts:39", "pc": [ - 174, - 175 + 232, + 233 ] }, { - "teal": 132, - "source": 41, + "teal": 129, + "source": "examples/auction/auction.algo.ts:40", "pc": [ - 176 + 234, + 235 ] }, { - "teal": 133, - "source": 41, + "teal": 130, + "source": "examples/auction/auction.algo.ts:40", "pc": [ - 177, - 178 + 236, + 237 ] }, { - "teal": 136, - "source": 38, + "teal": 134, + "source": "examples/auction/auction.algo.ts:41", "pc": [ - 179 + 238, + 239 ] }, { - "teal": 137, - "source": 38, + "teal": 135, + "source": "examples/auction/auction.algo.ts:41", "pc": [ - 180, - 181 + 240, + 241 ] }, { - "teal": 140, - "source": 38, + "teal": 138, + "source": "examples/auction/auction.algo.ts:38", "pc": [ - 182 + 242, + 243 ] }, { - "teal": 141, - "source": 27, + "teal": 139, + "source": "examples/auction/auction.algo.ts:38", "pc": [ - 183 + 244, + 245 ] }, { - "teal": 146, - "source": 45, + "teal": 142, + "source": "examples/auction/auction.algo.ts:38", "pc": [ - 184, - 185 + 246 ] }, { - "teal": 147, - "source": 45, + "teal": 143, + "source": "examples/auction/auction.algo.ts:27", "pc": [ - 186 + 247 ] }, { "teal": 148, - "source": 45, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 187 + 248, + 249 ] }, { "teal": 149, - "source": 45, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 188 + 250, + 251 ] }, { "teal": 150, - "source": 45, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 189, - 190 + 252 ] }, { "teal": 151, - "source": 45, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 191 + 253 ] }, { "teal": 152, - "source": 45, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 192 + 254, + 255 ] }, { - "teal": 155, - "source": 45, - "errorMessage": "argument 0 (axfer) for startAuction must be a axfer transaction", + "teal": 153, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 193 + 256, + 257 ] }, { - "teal": 158, - "source": 45, + "teal": 154, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 194, - 195, - 196 + 258 ] }, { - "teal": 159, - "source": 45, + "teal": 157, + "source": "examples/auction/auction.algo.ts:45", + "errorMessage": "argument 0 (axfer) for startAuction must be a axfer transaction", "pc": [ - 197 + 259 ] }, { - "teal": 162, - "source": 45, + "teal": 160, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 198, - 199, - 200 + 260, + 261, + 262 ] }, { - "teal": 163, - "source": 45, + "teal": 161, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 201 + 263 ] }, { - "teal": 166, - "source": 45, + "teal": 164, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 202, - 203, - 204 + 264, + 265, + 266 ] }, { - "teal": 167, - "source": 45, + "teal": 165, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 205 + 267 ] }, { "teal": 168, - "source": 45, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 206 + 268, + 269, + 270 ] }, { - "teal": 172, - "source": 45, + "teal": 169, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 207, - 208, - 209 + 271, + 272 ] }, { - "teal": 177, - "source": 46, + "teal": 170, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 210, - 211 + 273 ] }, { - "teal": 178, - "source": 46, + "teal": 174, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 212, - 213 + 274, + 275, + 276 ] }, { "teal": 179, - "source": 46, + "source": "examples/auction/auction.algo.ts:46", "pc": [ - 214 + 277, + 278 ] }, { - "teal": 182, - "source": 46, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}", + "teal": 180, + "source": "examples/auction/auction.algo.ts:46", "pc": [ - 215 + 279, + 280 ] }, { - "teal": 187, - "source": 49, + "teal": 181, + "source": "examples/auction/auction.algo.ts:46", "pc": [ - 216 + 281 ] }, { - "teal": 188, - "source": 49, + "teal": 184, + "source": "examples/auction/auction.algo.ts:46", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"globals.creatorAddress\"}", "pc": [ - 217 + 282 ] }, { "teal": 189, - "source": 49, + "source": "examples/auction/auction.algo.ts:49", "pc": [ - 218 + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294 ] }, { "teal": 190, - "source": 49, + "source": "examples/auction/auction.algo.ts:49", "pc": [ - 219 + 295 ] }, { "teal": 191, - "source": 49, + "source": "examples/auction/auction.algo.ts:49", "pc": [ - 220 + 296, + 297 ] }, { - "teal": 197, - "source": 52, + "teal": 192, + "source": "examples/auction/auction.algo.ts:49", "pc": [ - 221, - 222 + 298 ] }, { - "teal": 198, - "source": 52, + "teal": 193, + "source": "examples/auction/auction.algo.ts:49", "pc": [ - 223, - 224 + 299 ] }, { "teal": 199, - "source": 52, + "source": "examples/auction/auction.algo.ts:52", "pc": [ - 225, - 226 + 300, + 301 ] }, { "teal": 200, - "source": 52, + "source": "examples/auction/auction.algo.ts:52", "pc": [ - 227 + 302, + 303 ] }, { - "teal": 203, - "source": 52, - "errorMessage": "transaction verification failed: {\"txn\":\"axfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", + "teal": 201, + "source": "examples/auction/auction.algo.ts:52", "pc": [ - 228 + 304, + 305 ] }, { - "teal": 208, - "source": 55, + "teal": 202, + "source": "examples/auction/auction.algo.ts:52", "pc": [ - 229 + 306 ] }, { - "teal": 209, - "source": 55, + "teal": 205, + "source": "examples/auction/auction.algo.ts:52", + "errorMessage": "transaction verification failed: {\"txn\":\"axfer\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", "pc": [ - 230, - 231 + 307 ] }, { "teal": 210, - "source": 55, + "source": "examples/auction/auction.algo.ts:55", "pc": [ - 232, - 233 + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315 ] }, { "teal": 211, - "source": 55, + "source": "examples/auction/auction.algo.ts:55", "pc": [ - 234 + 316, + 317 ] }, { - "teal": 215, - "source": 56, + "teal": 212, + "source": "examples/auction/auction.algo.ts:55", "pc": [ - 235 + 318, + 319 ] }, { - "teal": 216, - "source": 56, + "teal": 213, + "source": "examples/auction/auction.algo.ts:55", "pc": [ - 236, - 237 + 320 ] }, { "teal": 217, - "source": 56, + "source": "examples/auction/auction.algo.ts:56", "pc": [ - 238, - 239 + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332 ] }, { "teal": 218, - "source": 56, + "source": "examples/auction/auction.algo.ts:56", "pc": [ - 240 + 333, + 334 ] }, { "teal": 219, - "source": 56, + "source": "examples/auction/auction.algo.ts:56", "pc": [ - 241 + 335, + 336 ] }, { - "teal": 223, - "source": 57, + "teal": 220, + "source": "examples/auction/auction.algo.ts:56", "pc": [ - 242 + 337 ] }, { - "teal": 224, - "source": 57, + "teal": 221, + "source": "examples/auction/auction.algo.ts:56", "pc": [ - 243, - 244 + 338 ] }, { "teal": 225, - "source": 57, + "source": "examples/auction/auction.algo.ts:57", "pc": [ - 245 + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351 ] }, { "teal": 226, - "source": 45, + "source": "examples/auction/auction.algo.ts:57", "pc": [ - 246 + 352, + 353 ] }, { - "teal": 230, - "source": 60, + "teal": 227, + "source": "examples/auction/auction.algo.ts:57", "pc": [ - 247, - 248, - 249 + 354 ] }, { - "teal": 237, - "source": 61, + "teal": 228, + "source": "examples/auction/auction.algo.ts:45", "pc": [ - 250 + 355 ] }, { - "teal": 238, - "source": 61, + "teal": 232, + "source": "examples/auction/auction.algo.ts:60", "pc": [ - 251 + 356, + 357, + 358 ] }, { "teal": 239, - "source": 61, + "source": "examples/auction/auction.algo.ts:61", "pc": [ - 252, - 253 + 359 ] }, { - "teal": 243, - "source": 62, + "teal": 240, + "source": "examples/auction/auction.algo.ts:61", "pc": [ - 254, - 255 + 360, + 361 ] }, { - "teal": 244, - "source": 62, + "teal": 241, + "source": "examples/auction/auction.algo.ts:61", "pc": [ - 256, - 257 + 362, + 363 ] }, { - "teal": 248, - "source": 63, + "teal": 245, + "source": "examples/auction/auction.algo.ts:62", "pc": [ - 258, - 259 + 364, + 365 ] }, { - "teal": 249, - "source": 63, + "teal": 246, + "source": "examples/auction/auction.algo.ts:62", "pc": [ - 260, - 261 + 366, + 367 ] }, { - "teal": 252, - "source": 61, + "teal": 250, + "source": "examples/auction/auction.algo.ts:63", "pc": [ - 262 + 368, + 369 ] }, { - "teal": 253, - "source": 61, + "teal": 251, + "source": "examples/auction/auction.algo.ts:63", "pc": [ - 263, - 264 + 370, + 371 ] }, { - "teal": 256, - "source": 61, + "teal": 254, + "source": "examples/auction/auction.algo.ts:61", "pc": [ - 265 + 372, + 373 ] }, { - "teal": 257, - "source": 60, + "teal": 255, + "source": "examples/auction/auction.algo.ts:61", "pc": [ - 266 + 374, + 375 ] }, { - "teal": 262, - "source": 67, + "teal": 258, + "source": "examples/auction/auction.algo.ts:61", "pc": [ - 267, - 268, - 269 + 376 ] }, { - "teal": 263, - "source": 67, + "teal": 259, + "source": "examples/auction/auction.algo.ts:60", "pc": [ - 270 + 377 ] }, { "teal": 264, - "source": 67, + "source": "examples/auction/auction.algo.ts:67", "pc": [ - 271 + 378, + 379, + 380 ] }, { - "teal": 268, - "source": 67, + "teal": 265, + "source": "examples/auction/auction.algo.ts:67", "pc": [ - 272, - 273, - 274 + 381, + 382 ] }, { - "teal": 269, - "source": 67, + "teal": 266, + "source": "examples/auction/auction.algo.ts:67", "pc": [ - 275 + 383 ] }, { - "teal": 274, - "source": 70, + "teal": 270, + "source": "examples/auction/auction.algo.ts:67", "pc": [ - 276, - 277 + 384, + 385, + 386 ] }, { - "teal": 275, - "source": 70, + "teal": 271, + "source": "examples/auction/auction.algo.ts:67", "pc": [ - 278 + 387 ] }, { "teal": 276, - "source": 70, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 279 + 388, + 389 ] }, { "teal": 277, - "source": 70, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 280 + 390, + 391 ] }, { "teal": 278, - "source": 70, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 281, - 282 + 392 ] }, { "teal": 279, - "source": 70, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 283 + 393 ] }, { "teal": 280, - "source": 70, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 284 + 394, + 395 ] }, { - "teal": 283, - "source": 70, - "errorMessage": "argument 0 (payment) for bid must be a pay transaction", + "teal": 281, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 285 + 396, + 397 ] }, { - "teal": 286, - "source": 70, + "teal": 282, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 286, - 287, - 288 + 398 ] }, { - "teal": 287, - "source": 70, + "teal": 285, + "source": "examples/auction/auction.algo.ts:70", + "errorMessage": "argument 0 (payment) for bid must be a pay transaction", "pc": [ - 289 + 399 ] }, { "teal": 288, - "source": 70, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 290 + 400, + 401, + 402 ] }, { - "teal": 292, - "source": 70, + "teal": 289, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 291, - 292, - 293 + 403, + 404 ] }, { - "teal": 297, - "source": 72, + "teal": 290, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 294, - 295 + 405 ] }, { - "teal": 298, - "source": 72, + "teal": 294, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 296 + 406, + 407, + 408 ] }, { "teal": 299, - "source": 72, + "source": "examples/auction/auction.algo.ts:72", "pc": [ - 297 + 409, + 410 ] }, { "teal": 300, - "source": 72, + "source": "examples/auction/auction.algo.ts:72", "pc": [ - 298 + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422 ] }, { "teal": 301, - "source": 72, + "source": "examples/auction/auction.algo.ts:72", "pc": [ - 299 + 423 ] }, { - "teal": 310, - "source": 75, + "teal": 302, + "source": "examples/auction/auction.algo.ts:72", "pc": [ - 300, - 301 + 424 ] }, { - "teal": 311, - "source": 76, + "teal": 303, + "source": "examples/auction/auction.algo.ts:72", "pc": [ - 302, - 303 + 425 ] }, { "teal": 312, - "source": 76, + "source": "examples/auction/auction.algo.ts:75", "pc": [ - 304, - 305 + 426, + 427 ] }, { "teal": 313, - "source": 76, + "source": "examples/auction/auction.algo.ts:76", "pc": [ - 306 + 428, + 429 ] }, { - "teal": 316, - "source": 76, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", + "teal": 314, + "source": "examples/auction/auction.algo.ts:76", "pc": [ - 307 + 430, + 431 ] }, { - "teal": 319, - "source": 75, + "teal": 315, + "source": "examples/auction/auction.algo.ts:76", "pc": [ - 308, - 309 + 432 ] }, { - "teal": 320, - "source": 77, + "teal": 318, + "source": "examples/auction/auction.algo.ts:76", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", "pc": [ - 310, - 311 + 433 ] }, { "teal": 321, - "source": 77, + "source": "examples/auction/auction.algo.ts:75", "pc": [ - 312 + 434, + 435 ] }, { "teal": 322, - "source": 77, + "source": "examples/auction/auction.algo.ts:77", "pc": [ - 313 + 436, + 437 ] }, { "teal": 323, - "source": 77, + "source": "examples/auction/auction.algo.ts:77", "pc": [ - 314 + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450 ] }, { - "teal": 326, - "source": 77, - "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"condition\":\"greaterThan\",\"expected\":\">this.previousBid.value\"}", + "teal": 324, + "source": "examples/auction/auction.algo.ts:77", "pc": [ - 315 + 451 ] }, { - "teal": 331, - "source": 81, + "teal": 325, + "source": "examples/auction/auction.algo.ts:77", "pc": [ - 316 + 452 ] }, { - "teal": 332, - "source": 81, + "teal": 328, + "source": "examples/auction/auction.algo.ts:77", + "errorMessage": "transaction verification failed: {\"txn\":\"payment\",\"field\":\"amount\",\"condition\":\"greaterThan\",\"expected\":\">this.previousBid.value\"}", "pc": [ - 317, - 318 + 453 ] }, { "teal": 333, - "source": 81, + "source": "examples/auction/auction.algo.ts:81", "pc": [ - 319, - 320 + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466 ] }, { "teal": 334, - "source": 81, + "source": "examples/auction/auction.algo.ts:81", "pc": [ - 321 + 467, + 468 ] }, { - "teal": 338, - "source": 82, + "teal": 335, + "source": "examples/auction/auction.algo.ts:81", "pc": [ - 322 + 469, + 470 ] }, { - "teal": 339, - "source": 82, + "teal": 336, + "source": "examples/auction/auction.algo.ts:81", "pc": [ - 323, - 324 + 471 ] }, { "teal": 340, - "source": 82, + "source": "examples/auction/auction.algo.ts:82", "pc": [ - 325, - 326 + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487 ] }, { "teal": 341, - "source": 82, + "source": "examples/auction/auction.algo.ts:82", "pc": [ - 327 + 488, + 489 ] }, { - "teal": 346, - "source": 85, + "teal": 342, + "source": "examples/auction/auction.algo.ts:82", "pc": [ - 328, - 329 + 490, + 491 ] }, { - "teal": 347, - "source": 85, + "teal": 343, + "source": "examples/auction/auction.algo.ts:82", "pc": [ - 330, - 331 + 492 ] }, { "teal": 348, - "source": 85, + "source": "examples/auction/auction.algo.ts:85", "pc": [ - 332, - 333 + 493, + 494 ] }, { "teal": 349, - "source": 85, + "source": "examples/auction/auction.algo.ts:85", "pc": [ - 334, - 335 + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511 ] }, { "teal": 350, - "source": 85, + "source": "examples/auction/auction.algo.ts:85", "pc": [ - 336 + 512, + 513 ] }, { "teal": 351, - "source": 70, + "source": "examples/auction/auction.algo.ts:85", "pc": [ - 337 + 514, + 515 ] }, { - "teal": 356, - "source": 88, + "teal": 352, + "source": "examples/auction/auction.algo.ts:85", "pc": [ - 338, - 339, - 340 + 516 ] }, { - "teal": 357, - "source": 88, + "teal": 353, + "source": "examples/auction/auction.algo.ts:70", "pc": [ - 341 + 517 ] }, { "teal": 358, - "source": 88, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 342 + 518, + 519, + 520 ] }, { - "teal": 362, - "source": 88, + "teal": 359, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 343, - 344, - 345 + 521, + 522 ] }, { - "teal": 365, - "source": 88, + "teal": 360, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 346, - 347 + 523 ] }, { - "teal": 366, - "source": 88, + "teal": 364, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 348 + 524, + 525, + 526 ] }, { - "teal": 370, - "source": 89, + "teal": 367, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 349, - 350 + 527, + 528 ] }, { - "teal": 371, - "source": 89, + "teal": 368, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 351, - 352 + 529 ] }, { "teal": 372, - "source": 89, + "source": "examples/auction/auction.algo.ts:89", "pc": [ - 353 + 530, + 531 ] }, { "teal": 373, - "source": 89, + "source": "examples/auction/auction.algo.ts:89", "pc": [ - 354, - 355 + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548 ] }, { - "teal": 377, - "source": 90, + "teal": 374, + "source": "examples/auction/auction.algo.ts:89", "pc": [ - 356, - 357 + 549 ] }, { - "teal": 378, - "source": 90, + "teal": 375, + "source": "examples/auction/auction.algo.ts:89", "pc": [ - 358, - 359 + 550, + 551 ] }, { - "teal": 384, - "source": 93, + "teal": 379, + "source": "examples/auction/auction.algo.ts:90", "pc": [ - 360, - 361 + 552, + 553 ] }, { - "teal": 385, - "source": 93, + "teal": 380, + "source": "examples/auction/auction.algo.ts:90", "pc": [ - 362 + 554, + 555 ] }, { "teal": 386, - "source": 93, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 363 + 556, + 557 ] }, { "teal": 387, - "source": 93, - "pc": [ - 364 + "source": "examples/auction/auction.algo.ts:93", + "pc": [ + 558, + 559, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573 ] }, { "teal": 388, - "source": 93, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 365, - 366, - 367 + 574 ] }, { - "teal": 393, - "source": 93, + "teal": 389, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 368, - 369 + 575 ] }, { - "teal": 394, - "source": 93, + "teal": 390, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 370 + 576, + 577, + 578 ] }, { "teal": 395, - "source": 93, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 371 + 579, + 580 ] }, { "teal": 396, - "source": 93, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 372 + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593 ] }, { "teal": 397, - "source": 93, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 373, - 374 + 594 ] }, { - "teal": 402, - "source": 95, + "teal": 398, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 375, - 376 + 595 ] }, { - "teal": 403, - "source": 95, + "teal": 399, + "source": "examples/auction/auction.algo.ts:93", "pc": [ - 377, - 378 + 596, + 597 ] }, { "teal": 404, - "source": 95, + "source": "examples/auction/auction.algo.ts:95", "pc": [ - 379, - 380, - 381 + 598, + 599 ] }, { - "teal": 408, - "source": 96, + "teal": 405, + "source": "examples/auction/auction.algo.ts:95", "pc": [ - 382, - 383 + 600, + 601 ] }, { - "teal": 409, - "source": 96, + "teal": 406, + "source": "examples/auction/auction.algo.ts:95", "pc": [ - 384, - 385 + 602, + 603, + 604 ] }, { "teal": 410, - "source": 96, + "source": "examples/auction/auction.algo.ts:96", "pc": [ - 386, - 387 + 605, + 606 ] }, { "teal": 411, - "source": 96, - "pc": [ - 388, - 389 + "source": "examples/auction/auction.algo.ts:96", + "pc": [ + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623 ] }, { "teal": 412, - "source": 96, + "source": "examples/auction/auction.algo.ts:96", "pc": [ - 390 + 624, + 625 ] }, { "teal": 413, - "source": 96, + "source": "examples/auction/auction.algo.ts:96", "pc": [ - 391 + 626, + 627 ] }, { "teal": 414, - "source": 88, + "source": "examples/auction/auction.algo.ts:96", "pc": [ - 392 + 628 ] }, { - "teal": 419, - "source": 99, + "teal": 415, + "source": "examples/auction/auction.algo.ts:96", "pc": [ - 393, - 394, - 395 + 629 ] }, { - "teal": 420, - "source": 99, + "teal": 416, + "source": "examples/auction/auction.algo.ts:88", "pc": [ - 396 + 630 ] }, { - "teal": 423, - "source": 99, + "teal": 421, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 397, - 398, - 399 + 631, + 632, + 633 ] }, { - "teal": 424, - "source": 99, + "teal": 422, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 400 + 634 ] }, { "teal": 425, - "source": 99, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 401 + 635, + 636, + 637 ] }, { - "teal": 429, - "source": 99, + "teal": 426, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 402, - 403, - 404 + 638, + 639 ] }, { - "teal": 433, - "source": 100, + "teal": 427, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 405, - 406 + 640 ] }, { - "teal": 434, - "source": 100, + "teal": 431, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 407 + 641, + 642, + 643 ] }, { "teal": 435, - "source": 100, + "source": "examples/auction/auction.algo.ts:100", "pc": [ - 408 + 644, + 645 ] }, { "teal": 436, - "source": 100, + "source": "examples/auction/auction.algo.ts:100", "pc": [ - 409 + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657 ] }, { "teal": 437, - "source": 100, + "source": "examples/auction/auction.algo.ts:100", "pc": [ - 410 + 658 ] }, { - "teal": 447, - "source": 103, + "teal": 438, + "source": "examples/auction/auction.algo.ts:100", "pc": [ - 411 + 659 ] }, { - "teal": 448, - "source": 103, + "teal": 439, + "source": "examples/auction/auction.algo.ts:100", "pc": [ - 412 + 660 ] }, { "teal": 449, - "source": 103, + "source": "examples/auction/auction.algo.ts:103", "pc": [ - 413, - 414 + 661 ] }, { - "teal": 453, - "source": 104, + "teal": 450, + "source": "examples/auction/auction.algo.ts:103", "pc": [ - 415 + 662, + 663 ] }, { - "teal": 454, - "source": 104, + "teal": 451, + "source": "examples/auction/auction.algo.ts:103", "pc": [ - 416 + 664, + 665 ] }, { "teal": 455, - "source": 104, + "source": "examples/auction/auction.algo.ts:104", "pc": [ - 417, - 418 + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681 ] }, { - "teal": 459, - "source": 105, + "teal": 456, + "source": "examples/auction/auction.algo.ts:104", "pc": [ - 419, - 420 + 682 ] }, { - "teal": 460, - "source": 105, + "teal": 457, + "source": "examples/auction/auction.algo.ts:104", "pc": [ - 421, - 422 + 683, + 684 ] }, { - "teal": 464, - "source": 106, + "teal": 461, + "source": "examples/auction/auction.algo.ts:105", "pc": [ - 423 + 685, + 686 ] }, { - "teal": 465, - "source": 106, + "teal": 462, + "source": "examples/auction/auction.algo.ts:105", "pc": [ - 424 + 687, + 688 ] }, { "teal": 466, - "source": 106, + "source": "examples/auction/auction.algo.ts:106", "pc": [ - 425, - 426 + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696 ] }, { - "teal": 470, - "source": 107, + "teal": 467, + "source": "examples/auction/auction.algo.ts:106", "pc": [ - 427 + 697 ] }, { - "teal": 471, - "source": 107, + "teal": 468, + "source": "examples/auction/auction.algo.ts:106", "pc": [ - 428 + 698, + 699 ] }, { "teal": 472, - "source": 107, + "source": "examples/auction/auction.algo.ts:107", "pc": [ - 429, - 430 + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715 ] }, { - "teal": 475, - "source": 103, + "teal": 473, + "source": "examples/auction/auction.algo.ts:107", "pc": [ - 431 + 716 ] }, { - "teal": 476, - "source": 103, + "teal": 474, + "source": "examples/auction/auction.algo.ts:107", "pc": [ - 432, - 433 + 717, + 718 ] }, { - "teal": 479, - "source": 103, + "teal": 477, + "source": "examples/auction/auction.algo.ts:103", "pc": [ - 434 + 719, + 720 ] }, { - "teal": 480, - "source": 99, + "teal": 478, + "source": "examples/auction/auction.algo.ts:103", "pc": [ - 435 + 721, + 722 ] }, { - "teal": 485, - "source": 111, + "teal": 481, + "source": "examples/auction/auction.algo.ts:103", "pc": [ - 436, - 437, - 438 + 723 ] }, { - "teal": 486, - "source": 111, + "teal": 482, + "source": "examples/auction/auction.algo.ts:99", "pc": [ - 439 + 724 ] }, { "teal": 487, - "source": 111, + "source": "examples/auction/auction.algo.ts:111", "pc": [ - 440 + 725, + 726, + 727 ] }, { - "teal": 491, - "source": 111, + "teal": 488, + "source": "examples/auction/auction.algo.ts:111", "pc": [ - 441, - 442, - 443 + 728, + 729 ] }, { - "teal": 499, - "source": 112, + "teal": 489, + "source": "examples/auction/auction.algo.ts:111", "pc": [ - 444 + 730 ] }, { - "teal": 500, - "source": 112, + "teal": 493, + "source": "examples/auction/auction.algo.ts:111", "pc": [ - 445 + 731, + 732, + 733 ] }, { "teal": 501, - "source": 112, + "source": "examples/auction/auction.algo.ts:112", "pc": [ - 446, - 447 + 734 ] }, { - "teal": 505, - "source": 113, + "teal": 502, + "source": "examples/auction/auction.algo.ts:112", "pc": [ - 448, - 449 + 735, + 736 ] }, { - "teal": 506, - "source": 113, + "teal": 503, + "source": "examples/auction/auction.algo.ts:112", "pc": [ - 450, - 451 + 737, + 738 ] }, { - "teal": 510, - "source": 114, + "teal": 507, + "source": "examples/auction/auction.algo.ts:113", "pc": [ - 452, - 453 + 739, + 740 ] }, { - "teal": 511, - "source": 114, + "teal": 508, + "source": "examples/auction/auction.algo.ts:113", "pc": [ - 454, - 455 + 741, + 742 ] }, { - "teal": 515, - "source": 115, + "teal": 512, + "source": "examples/auction/auction.algo.ts:114", "pc": [ - 456 + 743, + 744 ] }, { - "teal": 516, - "source": 115, + "teal": 513, + "source": "examples/auction/auction.algo.ts:114", "pc": [ - 457, - 458 + 745, + 746 ] }, { - "teal": 519, - "source": 112, + "teal": 517, + "source": "examples/auction/auction.algo.ts:115", "pc": [ - 459 + 747, + 748 ] }, { - "teal": 520, - "source": 112, + "teal": 518, + "source": "examples/auction/auction.algo.ts:115", "pc": [ - 460, - 461 + 749, + 750 ] }, { - "teal": 523, - "source": 112, + "teal": 521, + "source": "examples/auction/auction.algo.ts:112", "pc": [ - 462 + 751, + 752 ] }, { - "teal": 524, - "source": 111, + "teal": 522, + "source": "examples/auction/auction.algo.ts:112", "pc": [ - 463 + 753, + 754 ] }, { - "teal": 527, - "source": 4, + "teal": 525, + "source": "examples/auction/auction.algo.ts:112", "pc": [ - 464, - 465, - 466, - 467, - 468, - 469 + 755 ] }, { - "teal": 528, - "source": 4, + "teal": 526, + "source": "examples/auction/auction.algo.ts:111", "pc": [ - 470, - 471, - 472 + 756 ] }, { "teal": 529, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 473, - 474, - 475, - 476 + 757, + 758, + 759, + 760, + 761, + 762 ] }, { - "teal": 532, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 530, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 477 + 763, + 764, + 765 ] }, { - "teal": 535, - "source": 4, + "teal": 531, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 478, - 479, - 480, - 481, - 482, - 483 + 766, + 767, + 768, + 769 ] }, { - "teal": 536, - "source": 4, + "teal": 534, + "source": "examples/auction/auction.algo.ts:4", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 484, - 485, - 486, - 487, - 488, - 489 + 770 ] }, { "teal": 537, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 490, - 491, - 492, - 493, - 494, - 495 + 771, + 772, + 773, + 774, + 775, + 776 ] }, { "teal": 538, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 496, - 497, - 498, - 499, - 500, - 501 + 777, + 778, + 779, + 780, + 781, + 782 ] }, { "teal": 539, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 502, - 503, - 504, - 505, - 506, - 507 + 783, + 784, + 785, + 786, + 787, + 788 ] }, { "teal": 540, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 508, - 509, - 510 + 789, + 790, + 791, + 792, + 793, + 794 ] }, { "teal": 541, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520, - 521, - 522 + 795, + 796, + 797, + 798, + 799, + 800 ] }, { - "teal": 544, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "teal": 542, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 523 + 801, + 802, + 803 ] }, { - "teal": 547, - "source": 4, + "teal": 543, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 524, - 525, - 526, - 527, - 528, - 529 + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815 ] }, { - "teal": 548, - "source": 4, + "teal": 546, + "source": "examples/auction/auction.algo.ts:4", + "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 530, - 531, - 532 + 816 ] }, { "teal": 549, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 533, - 534, - 535, - 536 + 817, + 818, + 819, + 820, + 821, + 822 ] }, { - "teal": 552, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", + "teal": 550, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 537 + 823, + 824, + 825 ] }, { - "teal": 555, - "source": 4, + "teal": 551, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 538, - 539, - 540, - 541, - 542, - 543 + 826, + 827, + 828, + 829 ] }, { - "teal": 556, - "source": 4, + "teal": 554, + "source": "examples/auction/auction.algo.ts:4", + "errorMessage": "this contract does not implement the given ABI method for call OptIn", "pc": [ - 544, - 545, - 546 + 830 ] }, { "teal": 557, - "source": 4, + "source": "examples/auction/auction.algo.ts:4", "pc": [ - 547, - 548, - 549, - 550 + 831, + 832, + 833, + 834, + 835, + 836 ] }, { - "teal": 560, - "source": 4, + "teal": 558, + "source": "examples/auction/auction.algo.ts:4", + "pc": [ + 837, + 838, + 839 + ] + }, + { + "teal": 559, + "source": "examples/auction/auction.algo.ts:4", + "pc": [ + 840, + 841, + 842, + 843 + ] + }, + { + "teal": 562, + "source": "examples/auction/auction.algo.ts:4", "errorMessage": "this contract does not implement the given ABI method for call DeleteApplication", "pc": [ - 551 + 844 ] } ] \ No newline at end of file diff --git a/examples/big_box/artifacts/BigBox.approval.teal b/examples/big_box/artifacts/BigBox.approval.teal index ee06cd15b..cf6b52586 100644 --- a/examples/big_box/artifacts/BigBox.approval.teal +++ b/examples/big_box/artifacts/BigBox.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 +bytecblock 0x63757272656e74496e646578 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -30,7 +32,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 0 (mbrPayment) for startUpload must be a pay transaction @@ -96,7 +98,7 @@ startUpload: frame_dig 1 // endBox: uint64 itob concat - byte 0x00 + pushbytes 0x00 concat frame_dig -3 // endBoxSize: uint64 itob @@ -133,24 +135,24 @@ startUpload: // numBoxes * 64 * COST_PER_BYTE + // cost of keys // endBoxSize * COST_PER_BYTE frame_dig -2 // numBoxes: uint64 - int 2500 + pushint 2500 * frame_dig -2 // numBoxes: uint64 int 1 - - int 32768 + pushint 32768 * - int 400 + pushint 400 * + frame_dig -2 // numBoxes: uint64 - int 64 + pushint 64 * - int 400 + pushint 400 * + frame_dig -3 // endBoxSize: uint64 - int 400 + pushint 400 * + frame_bury 3 // totalCost: uint64 @@ -222,19 +224,19 @@ upload: // examples/big_box/big_box.algo.ts:77 // assert(metadata.status === IN_PROGRESS) frame_dig -1 // dataIdentifier: string - int 16 // headOffset + pushint 16 // headOffset int 1 box_extract btoi - int 0 + pushint 0 == assert // examples/big_box/big_box.algo.ts:78 // assert(metadata.start <= boxIndex && boxIndex <= metadata.end) frame_dig -1 // dataIdentifier: string - int 0 - int 8 + pushint 0 + pushint 8 box_extract btoi frame_dig -2 // boxIndex: uint64 @@ -243,8 +245,8 @@ upload: bz *skip_and0 frame_dig -2 // boxIndex: uint64 frame_dig -1 // dataIdentifier: string - int 8 // headOffset - int 8 + pushint 8 // headOffset + pushint 8 box_extract btoi <= @@ -257,7 +259,7 @@ upload: // examples/big_box/big_box.algo.ts:80 // offset === 0 frame_dig -3 // offset: uint64 - int 0 + pushint 0 == bz *if0_end @@ -268,21 +270,21 @@ upload: itob frame_dig -2 // boxIndex: uint64 frame_dig -1 // dataIdentifier: string - int 8 // headOffset - int 8 + pushint 8 // headOffset + pushint 8 box_extract btoi == bz *ternary0_false frame_dig -1 // dataIdentifier: string - int 17 // headOffset - int 8 + pushint 17 // headOffset + pushint 8 box_extract btoi b *ternary0_end *ternary0_false: - int 32768 + pushint 32768 *ternary0_end: box_create @@ -336,7 +338,7 @@ setStatus: // examples/big_box/big_box.algo.ts:95 // currentStatus = this.metadata(dataIdentifier).value.status frame_dig -1 // dataIdentifier: string - int 16 // headOffset + pushint 16 // headOffset int 1 box_extract btoi @@ -350,7 +352,7 @@ setStatus: dup bnz *skip_or0 frame_dig -2 // status: uint<8> - int 2 + pushint 2 == || @@ -358,7 +360,7 @@ setStatus: dup bnz *skip_or1 frame_dig -2 // status: uint<8> - int 0 + pushint 0 == || @@ -368,13 +370,13 @@ setStatus: // examples/big_box/big_box.algo.ts:98 // assert(currentStatus !== IMMUTABLE) frame_dig 0 // currentStatus: uint8 - int 2 + pushint 2 != assert // examples/big_box/big_box.algo.ts:100 // this.metadata(dataIdentifier).value.status = status - int 16 // headOffset + pushint 16 // headOffset frame_dig -2 // status: uint<8> itob extract 7 1 @@ -388,7 +390,7 @@ setStatus: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -396,9 +398,9 @@ setStatus: err *call_NoOp: - method "startUpload(string,uint64,uint64,pay)void" - method "upload(string,uint64,uint64,byte[])void" - method "setStatus(string,uint8)void" + pushbytes 0xa05b5669 // method "startUpload(string,uint64,uint64,pay)void" + pushbytes 0x1b7dfa35 // method "upload(string,uint64,uint64,byte[])void" + pushbytes 0xbf3856f8 // method "setStatus(string,uint8)void" txna ApplicationArgs 0 match *abi_route_startUpload *abi_route_upload *abi_route_setStatus diff --git a/examples/big_box/artifacts/BigBox.arc32.json b/examples/big_box/artifacts/BigBox.arc32.json index 537e1bd6e..8a67511b2 100644 --- a/examples/big_box/artifacts/BigBox.arc32.json +++ b/examples/big_box/artifacts/BigBox.arc32.json @@ -54,7 +54,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkOgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAobWJyUGF5bWVudCkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGVuZEJveFNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIG51bUJveGVzOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RhcnRVcGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKCWNhbGxzdWIgc3RhcnRVcGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHN0YXJ0VXBsb2FkKGRhdGFJZGVudGlmaWVyOiBzdHJpbmcsIG51bUJveGVzOiB1aW50NjQsIGVuZEJveFNpemU6IHVpbnQ2NCwgbWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLwovLyBBbGxvY2F0ZSBib3hlcyB0byBiZWdpbiBkYXRhIHVwbG9hZCBwcm9jZXNzCi8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBudW1Cb3hlcyBUaGUgbnVtYmVyIG9mIGJveGVzIHRoYXQgdGhlIGRhdGEgd2lsbCB0YWtlIHVwCi8vIEBwYXJhbSBlbmRCb3hTaXplIFRoZSBzaXplIG9mIHRoZSBsYXN0IGJveAovLyBAcGFyYW0gbWJyUGF5bWVudCBQYXltZW50IGZyb20gdGhlIHVwbG9hZGVyIHRvIGNvdmVyIHRoZSBib3ggTUJSCnN0YXJ0VXBsb2FkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjQxCgkvLyBzdGFydEJveCA9IHRoaXMuY3VycmVudEluZGV4LnZhbHVlCglieXRlIDB4NjM3NTcyNzI2NTZlNzQ0OTZlNjQ2NTc4IC8vICJjdXJyZW50SW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo0MgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NDQKCS8vIG1ldGFkYXRhOiBNZXRhZGF0YSA9IHsKCS8vICAgICAgIHN0YXJ0OiBzdGFydEJveCwKCS8vICAgICAgIGVuZDogZW5kQm94LAoJLy8gICAgICAgc3RhdHVzOiBJTl9QUk9HUkVTUywKCS8vICAgICAgIGVuZFNpemU6IGVuZEJveFNpemUsCgkvLyAgICAgfQoJZnJhbWVfZGlnIDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwCgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyBlbmRCb3hTaXplOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAyIC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjUxCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjUzCgkvLyB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJZnJhbWVfZGlnIDIgLy8gbWV0YWRhdGE6IE1ldGFkYXRhCglib3hfcHV0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NTUKCS8vIHRoaXMuY3VycmVudEluZGV4LnZhbHVlID0gZW5kQm94ICsgMQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWludCAxCgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjU3CgkvLyB0b3RhbENvc3QgPQoJLy8gICAgICAgbnVtQm94ZXMgKiBDT1NUX1BFUl9CT1ggKyAvLyBjb3N0IG9mIGJveGVzCgkvLyAgICAgICAobnVtQm94ZXMgLSAxKSAqIE1BWF9CT1hfU0laRSAqIENPU1RfUEVSX0JZVEUgKyAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICAgIG51bUJveGVzICogNjQgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBrZXlzCgkvLyAgICAgICBlbmRCb3hTaXplICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA2NAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0zIC8vIGVuZEJveFNpemU6IHVpbnQ2NAoJaW50IDQwMAoJKgoJKwoJZnJhbWVfYnVyeSAzIC8vIHRvdGFsQ29zdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NjMKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IHRvdGFsQ29zdCB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAzIC8vIHRvdGFsQ29zdDogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0b3RhbENvc3QifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoqYWJpX3JvdXRlX3VwbG9hZDoKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGJveEluZGV4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIHVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gdXBsb2FkKGRhdGFJZGVudGlmaWVyOiBzdHJpbmcsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIGRhdGFJZGVudGlmaWVyIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRhdGEKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc2CgkvLyBtZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc3CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhdHVzID09PSBJTl9QUk9HUkVTUykKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCA4IC8vIGhlYWRPZmZzZXQKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJPD0KCSYmCgoqc2tpcF9hbmQwOgoJYXNzZXJ0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjgwCgkvLyBvZmZzZXQgPT09IDAKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODEKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5jcmVhdGUoYm94SW5kZXggPT09IG1ldGFkYXRhLmVuZCA/IG1ldGFkYXRhLmVuZFNpemUgOiBNQVhfQk9YX1NJWkUpCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCT09CglieiAqdGVybmFyeTBfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTcgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKKnRlcm5hcnkwX2VuZDoKCWJveF9jcmVhdGUKCXBvcAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4NAoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQKKmFiaV9yb3V0ZV9zZXRTdGF0dXM6CgkvLyBzdGF0dXM6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoc3RhdHVzKSBmb3Igc2V0U3RhdHVzIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldFN0YXR1cyhzdHJpbmcsdWludDgpdm9pZAoJY2FsbHN1YiBzZXRTdGF0dXMKCWludCAxCglyZXR1cm4KCi8vIHNldFN0YXR1cyhkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBzdGF0dXM6IHVpbnQ8OD4pOiB2b2lkCi8vCi8vCi8vIFNldCB0aGUgc3RhdHVzIG9mIHRoZSBkYXRhCi8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBzdGF0dXMgVGhlIG5ldyBzdGF0dXMgZm9yIHRoZSBkYXRhCnNldFN0YXR1czoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6OTUKCS8vIGN1cnJlbnRTdGF0dXMgPSB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZS5zdGF0dXMKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gY3VycmVudFN0YXR1czogdWludDgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5NwoJLy8gYXNzZXJ0KHN0YXR1cyA9PT0gUkVBRFkgfHwgc3RhdHVzID09PSBJTU1VVEFCTEUgfHwgc3RhdHVzID09PSBJTl9QUk9HUkVTUykKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpbnQgMgoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCWludCAwCgk9PQoJfHwKCipza2lwX29yMToKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk4CgkvLyBhc3NlcnQoY3VycmVudFN0YXR1cyAhPT0gSU1NVVRBQkxFKQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudFN0YXR1czogdWludDgKCWludCAyCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6MTAwCgkvLyB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZS5zdGF0dXMgPSBzdGF0dXMKCWludCAxNiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpdG9iCglleHRyYWN0IDcgMQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgoJbWV0aG9kICJzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkICphYmlfcm91dGVfdXBsb2FkICphYmlfcm91dGVfc2V0U3RhdHVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkOgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCAxIC8vIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJQYXltZW50KSBmb3Igc3RhcnRVcGxvYWQgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZW5kQm94U2l6ZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gbnVtQm94ZXM6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQoZGF0YUlkZW50aWZpZXI6IHN0cmluZywgbnVtQm94ZXM6IHVpbnQ2NCwgZW5kQm94U2l6ZTogdWludDY0LCBtYnJQYXltZW50OiBQYXlUeG4pOiB2b2lkCi8vCi8vCi8vIEFsbG9jYXRlIGJveGVzIHRvIGJlZ2luIGRhdGEgdXBsb2FkIHByb2Nlc3MKLy8KLy8gQHBhcmFtIGRhdGFJZGVudGlmaWVyIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRhdGEKLy8gQHBhcmFtIG51bUJveGVzIFRoZSBudW1iZXIgb2YgYm94ZXMgdGhhdCB0aGUgZGF0YSB3aWxsIHRha2UgdXAKLy8gQHBhcmFtIGVuZEJveFNpemUgVGhlIHNpemUgb2YgdGhlIGxhc3QgYm94Ci8vIEBwYXJhbSBtYnJQYXltZW50IFBheW1lbnQgZnJvbSB0aGUgdXBsb2FkZXIgdG8gY292ZXIgdGhlIGJveCBNQlIKc3RhcnRVcGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NDEKCS8vIHN0YXJ0Qm94ID0gdGhpcy5jdXJyZW50SW5kZXgudmFsdWUKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjQyCgkvLyBlbmRCb3ggPSBzdGFydEJveCArIG51bUJveGVzIC0gMQoJZnJhbWVfZGlnIDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCSsKCWludCAxCgktCglmcmFtZV9idXJ5IDEgLy8gZW5kQm94OiB1aW50NjQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo0NAoJLy8gbWV0YWRhdGE6IE1ldGFkYXRhID0gewoJLy8gICAgICAgc3RhcnQ6IHN0YXJ0Qm94LAoJLy8gICAgICAgZW5kOiBlbmRCb3gsCgkvLyAgICAgICBzdGF0dXM6IElOX1BST0dSRVNTLAoJLy8gICAgICAgZW5kU2l6ZTogZW5kQm94U2l6ZSwKCS8vICAgICB9CglmcmFtZV9kaWcgMCAvLyBzdGFydEJveDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMSAvLyBlbmRCb3g6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1MQoJLy8gYXNzZXJ0KCF0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1MwoJLy8gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUgPSBtZXRhZGF0YQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWZyYW1lX2RpZyAyIC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjU1CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1NwoJLy8gdG90YWxDb3N0ID0KCS8vICAgICAgIG51bUJveGVzICogQ09TVF9QRVJfQk9YICsgLy8gY29zdCBvZiBib3hlcwoJLy8gICAgICAgKG51bUJveGVzIC0gMSkgKiBNQVhfQk9YX1NJWkUgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBkYXRhCgkvLyAgICAgICBudW1Cb3hlcyAqIDY0ICogQ09TVF9QRVJfQllURSArIC8vIGNvc3Qgb2Yga2V5cwoJLy8gICAgICAgZW5kQm94U2l6ZSAqIENPU1RfUEVSX0JZVEUKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglwdXNoaW50IDI1MDAKCSoKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglpbnQgMQoJLQoJcHVzaGludCAzMjc2OAoJKgoJcHVzaGludCA0MDAKCSoKCSsKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglwdXNoaW50IDY0CgkqCglwdXNoaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0zIC8vIGVuZEJveFNpemU6IHVpbnQ2NAoJcHVzaGludCA0MDAKCSoKCSsKCWZyYW1lX2J1cnkgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjYzCgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiB0b3RhbENvc3QgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidG90YWxDb3N0In0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV91cGxvYWQ6CgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWV4dHJhY3QgMiAwCgoJLy8gb2Zmc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBib3hJbmRleDogdWludDY0LCBvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCi8vCi8vCi8vIFVwbG9hZCBkYXRhIHRvIGEgc3BlY2lmaWMgb2Zmc2V0IGluIGEgYm94Ci8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBib3hJbmRleCBUaGUgaW5kZXggb2YgdGhlIGJveCB0byB1cGxvYWQgdGhlIGdpdmVuIGNodW5rIG9mIGRhdGEgdG8KLy8gQHBhcmFtIG9mZnNldCBUaGUgb2Zmc2V0IHdpdGhpbiB0aGUgYm94IHRvIHN0YXJ0IHdyaXRpbmcgdGhlIGRhdGEKLy8gQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gd3JpdGUKdXBsb2FkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gSU5fUFJPR1JFU1MpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCAxNiAvLyBoZWFkT2Zmc2V0CglpbnQgMQoJYm94X2V4dHJhY3QKCWJ0b2kKCXB1c2hpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXB1c2hpbnQgMAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCA4IC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMDoKCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4MAoJLy8gb2Zmc2V0ID09PSAwCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCXB1c2hpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4MQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZShib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kID8gbWV0YWRhdGEuZW5kU2l6ZSA6IE1BWF9CT1hfU0laRSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXB1c2hpbnQgOCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCAxNyAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCXB1c2hpbnQgMzI3NjgKCip0ZXJuYXJ5MF9lbmQ6Cglib3hfY3JlYXRlCglwb3AKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODQKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc2V0U3RhdHVzKHN0cmluZyx1aW50OCl2b2lkCiphYmlfcm91dGVfc2V0U3RhdHVzOgoJLy8gc3RhdHVzOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YXR1cykgZm9yIHNldFN0YXR1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQKCWNhbGxzdWIgc2V0U3RhdHVzCglpbnQgMQoJcmV0dXJuCgovLyBzZXRTdGF0dXMoZGF0YUlkZW50aWZpZXI6IHN0cmluZywgc3RhdHVzOiB1aW50PDg+KTogdm9pZAovLwovLwovLyBTZXQgdGhlIHN0YXR1cyBvZiB0aGUgZGF0YQovLwovLyBAcGFyYW0gZGF0YUlkZW50aWZpZXIgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZGF0YQovLyBAcGFyYW0gc3RhdHVzIFRoZSBuZXcgc3RhdHVzIGZvciB0aGUgZGF0YQpzZXRTdGF0dXM6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk1CgkvLyBjdXJyZW50U3RhdHVzID0gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUuc3RhdHVzCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCAxNiAvLyBoZWFkT2Zmc2V0CglpbnQgMQoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjdXJyZW50U3RhdHVzOiB1aW50OAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk3CgkvLyBhc3NlcnQoc3RhdHVzID09PSBSRUFEWSB8fCBzdGF0dXMgPT09IElNTVVUQUJMRSB8fCBzdGF0dXMgPT09IElOX1BST0dSRVNTKQoJZnJhbWVfZGlnIC0yIC8vIHN0YXR1czogdWludDw4PgoJaW50IDEKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCXB1c2hpbnQgMgoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCXB1c2hpbnQgMAoJPT0KCXx8Cgoqc2tpcF9vcjE6Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5OAoJLy8gYXNzZXJ0KGN1cnJlbnRTdGF0dXMgIT09IElNTVVUQUJMRSkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRTdGF0dXM6IHVpbnQ4CglwdXNoaW50IDIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czoxMDAKCS8vIHRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLnZhbHVlLnN0YXR1cyA9IHN0YXR1cwoJcHVzaGludCAxNiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpdG9iCglleHRyYWN0IDcgMQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YTA1YjU2NjkgLy8gbWV0aG9kICJzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCXB1c2hieXRlcyAweDFiN2RmYTM1IC8vIG1ldGhvZCAidXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4YmYzODU2ZjggLy8gbWV0aG9kICJzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkICphYmlfcm91dGVfdXBsb2FkICphYmlfcm91dGVfc2V0U3RhdHVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/big_box/artifacts/BigBox.arc56_draft.json b/examples/big_box/artifacts/BigBox.arc56_draft.json index 3c5e6f338..5a87f32d5 100644 --- a/examples/big_box/artifacts/BigBox.arc56_draft.json +++ b/examples/big_box/artifacts/BigBox.arc56_draft.json @@ -177,1810 +177,64 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 20, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 - ] - }, - { - "teal": 13, - "source": 20, - "pc": [ - 29, - 30 - ] - }, - { - "teal": 14, - "source": 20, - "pc": [ - 31 - ] - }, - { - "teal": 15, - "source": 20, - "pc": [ - 32, - 33 - ] - }, - { - "teal": 16, - "source": 20, - "pc": [ - 34 - ] - }, - { - "teal": 17, - "source": 20, - "pc": [ - 35, - 36 - ] - }, - { - "teal": 18, - "source": 20, - "pc": [ - 37 - ] - }, - { - "teal": 19, - "source": 20, - "pc": [ - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 23, - "source": 20, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 64 - ] - }, - { - "teal": 28, - "source": 40, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 29, - "source": 40, - "pc": [ - 67 - ] - }, - { - "teal": 30, - "source": 40, - "pc": [ - 68 - ] - }, - { - "teal": 31, - "source": 40, - "pc": [ - 69 - ] - }, - { - "teal": 32, - "source": 40, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 33, - "source": 40, - "pc": [ - 72 - ] - }, - { - "teal": 34, - "source": 40, - "pc": [ - 73 - ] - }, - { - "teal": 37, - "source": 40, - "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", - "pc": [ - 74 - ] - }, - { - "teal": 40, - "source": 40, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 41, - "source": 40, - "pc": [ - 78 - ] - }, - { - "teal": 44, - "source": 40, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 45, - "source": 40, - "pc": [ - 82 - ] - }, - { - "teal": 48, - "source": 40, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 49, - "source": 40, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 52, - "source": 40, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 53, - "source": 40, - "pc": [ - 92 - ] - }, - { - "teal": 54, - "source": 40, - "pc": [ - 93 - ] - }, - { - "teal": 66, - "source": 40, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 69, - "source": 40, - "pc": [ - 97 - ] - }, - { - "teal": 70, - "source": 40, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 74, - "source": 41, - "pc": [ - 100 - ] - }, - { - "teal": 75, - "source": 41, - "pc": [ - 101 - ] - }, - { - "teal": 76, - "source": 41, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 80, - "source": 42, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 81, - "source": 42, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 82, - "source": 42, - "pc": [ - 108 - ] - }, - { - "teal": 83, - "source": 42, - "pc": [ - 109 - ] - }, - { - "teal": 84, - "source": 42, - "pc": [ - 110 - ] - }, - { - "teal": 85, - "source": 42, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 94, - "source": 45, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 95, - "source": 45, - "pc": [ - 115 - ] - }, - { - "teal": 96, - "source": 46, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 97, - "source": 46, - "pc": [ - 118 - ] - }, - { - "teal": 98, - "source": 46, - "pc": [ - 119 - ] - }, - { - "teal": 99, - "source": 47, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 100, - "source": 47, - "pc": [ - 123 - ] - }, - { - "teal": 101, - "source": 48, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 102, - "source": 48, - "pc": [ - 126 - ] - }, - { - "teal": 103, - "source": 48, - "pc": [ - 127 - ] - }, - { - "teal": 104, - "source": 44, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 108, - "source": 51, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 109, - "source": 51, - "pc": [ - 132 - ] - }, - { - "teal": 110, - "source": 51, - "pc": [ - 133 - ] - }, - { - "teal": 111, - "source": 51, - "pc": [ - 134 - ] - }, - { - "teal": 112, - "source": 51, - "pc": [ - 135 - ] - }, - { - "teal": 113, - "source": 51, - "pc": [ - 136 - ] - }, - { - "teal": 117, - "source": 53, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 118, - "source": 53, - "pc": [ - 139, - 140 - ] - }, - { - "teal": 119, - "source": 53, - "pc": [ - 141 - ] - }, - { - "teal": 123, - "source": 55, - "pc": [ - 142 - ] - }, - { - "teal": 124, - "source": 55, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 125, - "source": 55, - "pc": [ - 145 - ] - }, - { - "teal": 126, - "source": 55, - "pc": [ - 146 - ] - }, - { - "teal": 127, - "source": 55, - "pc": [ - 147 - ] - }, - { - "teal": 135, - "source": 58, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 136, - "source": 58, - "pc": [ - 150, - 151, - 152 - ] - }, - { - "teal": 137, - "source": 58, - "pc": [ - 153 - ] - }, - { - "teal": 138, - "source": 59, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 139, - "source": 59, - "pc": [ - 156 - ] - }, - { - "teal": 140, - "source": 59, - "pc": [ - 157 - ] - }, - { - "teal": 141, - "source": 59, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 142, - "source": 59, - "pc": [ - 160 - ] - }, - { - "teal": 143, - "source": 59, - "pc": [ - 161 - ] - }, - { - "teal": 144, - "source": 59, - "pc": [ - 162 - ] - }, - { - "teal": 145, - "source": 58, - "pc": [ - 163 - ] - }, - { - "teal": 146, - "source": 60, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 147, - "source": 60, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 148, - "source": 60, - "pc": [ - 168 - ] - }, - { - "teal": 149, - "source": 60, - "pc": [ - 169 - ] - }, - { - "teal": 150, - "source": 60, - "pc": [ - 170 - ] - }, - { - "teal": 151, - "source": 59, - "pc": [ - 171 - ] - }, - { - "teal": 152, - "source": 61, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 153, - "source": 61, - "pc": [ - 174 - ] - }, - { - "teal": 154, - "source": 61, - "pc": [ - 175 - ] - }, - { - "teal": 155, - "source": 60, - "pc": [ - 176 - ] - }, - { - "teal": 156, - "source": 57, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 161, - "source": 63, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 162, - "source": 63, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 163, - "source": 63, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 164, - "source": 63, - "pc": [ - 185 - ] - }, - { - "teal": 167, - "source": 63, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 186 - ] - }, - { - "teal": 170, - "source": 63, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 171, - "source": 63, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 172, - "source": 63, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 173, - "source": 63, - "pc": [ - 193 - ] - }, - { - "teal": 176, - "source": 63, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"totalCost\"}", - "pc": [ - 194 - ] - }, - { - "teal": 177, - "source": 40, - "pc": [ - 195 - ] - }, - { - "teal": 182, - "source": 75, - "pc": [ - 196, - 197, - 198 - ] - }, - { - "teal": 183, - "source": 75, - "pc": [ - 199, - 200, - 201 - ] - }, - { - "teal": 186, - "source": 75, - "pc": [ - 202, - 203, - 204 - ] - }, - { - "teal": 187, - "source": 75, - "pc": [ - 205 - ] - }, - { - "teal": 190, - "source": 75, - "pc": [ - 206, - 207, - 208 - ] - }, - { - "teal": 191, - "source": 75, - "pc": [ - 209 - ] - }, - { - "teal": 194, - "source": 75, - "pc": [ - 210, - 211, - 212 - ] - }, - { - "teal": 195, - "source": 75, - "pc": [ - 213, - 214, - 215 - ] - }, - { - "teal": 198, - "source": 75, - "pc": [ - 216, - 217, - 218 - ] - }, - { - "teal": 199, - "source": 75, - "pc": [ - 219 - ] - }, - { - "teal": 200, - "source": 75, - "pc": [ - 220 - ] - }, - { - "teal": 212, - "source": 75, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 215, - "source": 75, - "pc": [ - 224 - ] - }, - { - "teal": 219, - "source": 76, - "pc": [ - 225, - 226 - ] - }, - { - "teal": 220, - "source": 76, - "pc": [ - 227, - 228 - ] - }, - { - "teal": 224, - "source": 76, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 225, - "source": 76, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 226, - "source": 76, - "pc": [ - 233 - ] - }, - { - "teal": 227, - "source": 76, - "pc": [ - 234 - ] - }, - { - "teal": 228, - "source": 77, - "pc": [ - 235 - ] - }, - { - "teal": 229, - "source": 77, - "pc": [ - 236 - ] - }, - { - "teal": 230, - "source": 77, - "pc": [ - 237 - ] - }, - { - "teal": 231, - "source": 77, - "pc": [ - 238 - ] - }, - { - "teal": 235, - "source": 76, - "pc": [ - 239, - 240 - ] - }, - { - "teal": 236, - "source": 76, - "pc": [ - 241 - ] - }, - { - "teal": 237, - "source": 76, - "pc": [ - 242 - ] - }, - { - "teal": 238, - "source": 76, - "pc": [ - 243 - ] - }, - { - "teal": 239, - "source": 78, - "pc": [ - 244 - ] - }, - { - "teal": 240, - "source": 78, - "pc": [ - 245, - 246 - ] - }, - { - "teal": 241, - "source": 78, - "pc": [ - 247 - ] - }, - { - "teal": 242, - "source": 78, - "pc": [ - 248 - ] - }, - { - "teal": 243, - "source": 78, - "pc": [ - 249, - 250, - 251 - ] - }, - { - "teal": 244, - "source": 78, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 245, - "source": 76, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 246, - "source": 76, - "pc": [ - 256 - ] - }, - { - "teal": 247, - "source": 76, - "pc": [ - 257 - ] - }, - { - "teal": 248, - "source": 76, - "pc": [ - 258 - ] - }, - { - "teal": 249, - "source": 78, - "pc": [ - 259 - ] - }, - { - "teal": 250, - "source": 78, - "pc": [ - 260 - ] - }, - { - "teal": 251, - "source": 78, - "pc": [ - 261 - ] - }, - { - "teal": 254, - "source": 78, - "pc": [ - 262 - ] - }, - { - "teal": 259, - "source": 80, - "pc": [ - 263, - 264 - ] - }, - { - "teal": 260, - "source": 80, - "pc": [ - 265 - ] - }, - { - "teal": 261, - "source": 80, - "pc": [ - 266 - ] - }, - { - "teal": 262, - "source": 80, - "pc": [ - 267, - 268, - 269 - ] - }, - { - "teal": 267, - "source": 81, - "pc": [ - 270, - 271 - ] - }, - { - "teal": 268, - "source": 81, - "pc": [ - 272 - ] - }, - { - "teal": 269, - "source": 81, - "pc": [ - 273, - 274 - ] - }, - { - "teal": 270, - "source": 76, - "pc": [ - 275, - 276 - ] - }, - { - "teal": 271, - "source": 76, - "pc": [ - 277 - ] - }, - { - "teal": 272, - "source": 76, - "pc": [ - 278 - ] - }, - { - "teal": 273, - "source": 76, - "pc": [ - 279 - ] - }, - { - "teal": 274, - "source": 81, - "pc": [ - 280 - ] - }, - { - "teal": 275, - "source": 81, - "pc": [ - 281 - ] - }, - { - "teal": 276, - "source": 81, - "pc": [ - 282, - 283, - 284 - ] - }, - { - "teal": 277, - "source": 76, - "pc": [ - 285, - 286 - ] - }, - { - "teal": 278, - "source": 76, - "pc": [ - 287, - 288 - ] - }, - { - "teal": 279, - "source": 76, - "pc": [ - 289 - ] - }, - { - "teal": 280, - "source": 76, - "pc": [ - 290 - ] - }, - { - "teal": 281, - "source": 81, - "pc": [ - 291 - ] - }, - { - "teal": 282, - "source": 81, - "pc": [ - 292, - 293, - 294 - ] - }, - { - "teal": 285, - "source": 81, - "pc": [ - 295, - 296 - ] - }, - { - "teal": 288, - "source": 81, - "pc": [ - 297 - ] - }, - { - "teal": 289, - "source": 81, - "pc": [ - 298 - ] - }, - { - "teal": 294, - "source": 84, - "pc": [ - 299, - 300 - ] - }, - { - "teal": 295, - "source": 84, - "pc": [ - 301 - ] - }, - { - "teal": 296, - "source": 84, - "pc": [ - 302, - 303 - ] - }, - { - "teal": 297, - "source": 84, - "pc": [ - 304, - 305 - ] - }, - { - "teal": 298, - "source": 84, - "pc": [ - 306 - ] - }, - { - "teal": 299, - "source": 75, - "pc": [ - 307 - ] - }, - { - "teal": 304, - "source": 94, - "pc": [ - 308, - 309, - 310 - ] - }, - { - "teal": 305, - "source": 94, - "pc": [ - 311 - ] - }, - { - "teal": 306, - "source": 94, - "pc": [ - 312 - ] - }, - { - "teal": 307, - "source": 94, - "pc": [ - 313 - ] - }, - { - "teal": 308, - "source": 94, - "pc": [ - 314 - ] - }, - { - "teal": 311, - "source": 94, - "errorMessage": "argument 0 (status) for setStatus must be a uint8", - "pc": [ - 315 - ] - }, - { - "teal": 312, - "source": 94, - "pc": [ - 316 - ] - }, - { - "teal": 315, - "source": 94, - "pc": [ - 317, - 318, - 319 - ] - }, - { - "teal": 316, - "source": 94, - "pc": [ - 320, - 321, - 322 - ] - }, - { - "teal": 319, - "source": 94, - "pc": [ - 323, - 324, - 325 - ] - }, - { - "teal": 320, - "source": 94, - "pc": [ - 326 - ] - }, - { - "teal": 321, - "source": 94, - "pc": [ - 327 - ] - }, - { - "teal": 331, - "source": 94, - "pc": [ - 328, - 329, - 330 - ] - }, - { - "teal": 334, - "source": 94, - "pc": [ - 331 - ] - }, - { - "teal": 338, - "source": 95, - "pc": [ - 332, - 333 - ] - }, - { - "teal": 339, - "source": 95, - "pc": [ - 334, - 335 - ] - }, - { - "teal": 340, - "source": 95, - "pc": [ - 336 - ] - }, - { - "teal": 341, - "source": 95, - "pc": [ - 337 - ] - }, - { - "teal": 342, - "source": 95, - "pc": [ - 338 - ] - }, - { - "teal": 343, - "source": 95, - "pc": [ - 339, - 340 - ] - }, - { - "teal": 347, - "source": 97, - "pc": [ - 341, - 342 - ] - }, - { - "teal": 348, - "source": 97, - "pc": [ - 343 - ] - }, - { - "teal": 349, - "source": 97, - "pc": [ - 344 - ] - }, - { - "teal": 350, - "source": 97, - "pc": [ - 345 - ] - }, - { - "teal": 351, - "source": 97, - "pc": [ - 346, - 347, - 348 - ] - }, - { - "teal": 352, - "source": 97, - "pc": [ - 349, - 350 - ] - }, - { - "teal": 353, - "source": 97, - "pc": [ - 351, - 352 - ] - }, - { - "teal": 354, - "source": 97, - "pc": [ - 353 - ] - }, - { - "teal": 355, - "source": 97, - "pc": [ - 354 - ] - }, - { - "teal": 358, - "source": 97, - "pc": [ - 355 - ] - }, - { - "teal": 359, - "source": 97, - "pc": [ - 356, - 357, - 358 - ] - }, - { - "teal": 360, - "source": 97, - "pc": [ - 359, - 360 - ] - }, - { - "teal": 361, - "source": 97, - "pc": [ - 361 - ] - }, - { - "teal": 362, - "source": 97, - "pc": [ - 362 - ] - }, - { - "teal": 363, - "source": 97, - "pc": [ - 363 - ] - }, - { - "teal": 366, - "source": 97, - "pc": [ - 364 - ] - }, - { - "teal": 370, - "source": 98, - "pc": [ - 365, - 366 - ] - }, - { - "teal": 371, - "source": 98, - "pc": [ - 367, - 368 - ] - }, - { - "teal": 372, - "source": 98, - "pc": [ - 369 - ] - }, - { - "teal": 373, - "source": 98, - "pc": [ - 370 - ] - }, - { - "teal": 377, - "source": 100, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 378, - "source": 100, - "pc": [ - 373, - 374 - ] - }, - { - "teal": 379, - "source": 100, - "pc": [ - 375 - ] - }, - { - "teal": 380, - "source": 100, - "pc": [ - 376, - 377, - 378 - ] - }, - { - "teal": 381, - "source": 100, - "pc": [ - 379, - 380 - ] - }, - { - "teal": 382, - "source": 100, - "pc": [ - 381, - 382 - ] - }, - { - "teal": 383, - "source": 100, - "pc": [ - 383 - ] - }, - { - "teal": 384, - "source": 94, - "pc": [ - 384 - ] - }, - { - "teal": 387, - "source": 20, - "pc": [ - 385 - ] - }, - { - "teal": 388, - "source": 20, - "pc": [ - 386 - ] - }, - { - "teal": 391, - "source": 20, - "pc": [ - 387, - 388, - 389, - 390, - 391, - 392 - ] - }, - { - "teal": 392, - "source": 20, - "pc": [ - 393, - 394, - 395 - ] - }, - { - "teal": 393, - "source": 20, - "pc": [ - 396, - 397, - 398, - 399 - ] - }, - { - "teal": 396, - "source": 20, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 400 - ] - }, - { - "teal": 399, - "source": 20, - "pc": [ - 401, - 402, - 403, - 404, - 405, - 406 - ] - }, - { - "teal": 400, - "source": 20, - "pc": [ - 407, - 408, - 409, - 410, - 411, - 412 - ] - }, - { - "teal": 401, - "source": 20, - "pc": [ - 413, - 414, - 415, - 416, - 417, - 418 - ] - }, - { - "teal": 402, - "source": 20, - "pc": [ - 419, - 420, - 421 - ] - }, - { - "teal": 403, - "source": 20, - "pc": [ - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 - ] - }, - { - "teal": 406, - "source": 20, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 430 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 55 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 67 + ], + "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction" + }, + { + "pc": [ + 218 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 226 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"totalCost\"}" + }, + { + "pc": [ + 362 + ], + "errorMessage": "argument 0 (status) for setStatus must be a uint8" + }, + { + "pc": [ + 453 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 483 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkOgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAobWJyUGF5bWVudCkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGVuZEJveFNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIG51bUJveGVzOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RhcnRVcGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKCWNhbGxzdWIgc3RhcnRVcGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHN0YXJ0VXBsb2FkKGRhdGFJZGVudGlmaWVyOiBzdHJpbmcsIG51bUJveGVzOiB1aW50NjQsIGVuZEJveFNpemU6IHVpbnQ2NCwgbWJyUGF5bWVudDogUGF5VHhuKTogdm9pZAovLwovLwovLyBBbGxvY2F0ZSBib3hlcyB0byBiZWdpbiBkYXRhIHVwbG9hZCBwcm9jZXNzCi8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBudW1Cb3hlcyBUaGUgbnVtYmVyIG9mIGJveGVzIHRoYXQgdGhlIGRhdGEgd2lsbCB0YWtlIHVwCi8vIEBwYXJhbSBlbmRCb3hTaXplIFRoZSBzaXplIG9mIHRoZSBsYXN0IGJveAovLyBAcGFyYW0gbWJyUGF5bWVudCBQYXltZW50IGZyb20gdGhlIHVwbG9hZGVyIHRvIGNvdmVyIHRoZSBib3ggTUJSCnN0YXJ0VXBsb2FkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjQxCgkvLyBzdGFydEJveCA9IHRoaXMuY3VycmVudEluZGV4LnZhbHVlCglieXRlIDB4NjM3NTcyNzI2NTZlNzQ0OTZlNjQ2NTc4IC8vICJjdXJyZW50SW5kZXgiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfYnVyeSAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo0MgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NDQKCS8vIG1ldGFkYXRhOiBNZXRhZGF0YSA9IHsKCS8vICAgICAgIHN0YXJ0OiBzdGFydEJveCwKCS8vICAgICAgIGVuZDogZW5kQm94LAoJLy8gICAgICAgc3RhdHVzOiBJTl9QUk9HUkVTUywKCS8vICAgICAgIGVuZFNpemU6IGVuZEJveFNpemUsCgkvLyAgICAgfQoJZnJhbWVfZGlnIDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwCgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyBlbmRCb3hTaXplOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAyIC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjUxCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjUzCgkvLyB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJZnJhbWVfZGlnIDIgLy8gbWV0YWRhdGE6IE1ldGFkYXRhCglib3hfcHV0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NTUKCS8vIHRoaXMuY3VycmVudEluZGV4LnZhbHVlID0gZW5kQm94ICsgMQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJZnJhbWVfZGlnIDEgLy8gZW5kQm94OiB1aW50NjQKCWludCAxCgkrCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjU3CgkvLyB0b3RhbENvc3QgPQoJLy8gICAgICAgbnVtQm94ZXMgKiBDT1NUX1BFUl9CT1ggKyAvLyBjb3N0IG9mIGJveGVzCgkvLyAgICAgICAobnVtQm94ZXMgLSAxKSAqIE1BWF9CT1hfU0laRSAqIENPU1RfUEVSX0JZVEUgKyAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICAgIG51bUJveGVzICogNjQgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBrZXlzCgkvLyAgICAgICBlbmRCb3hTaXplICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA2NAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0zIC8vIGVuZEJveFNpemU6IHVpbnQ2NAoJaW50IDQwMAoJKgoJKwoJZnJhbWVfYnVyeSAzIC8vIHRvdGFsQ29zdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NjMKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IHRvdGFsQ29zdCB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAzIC8vIHRvdGFsQ29zdDogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0b3RhbENvc3QifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoqYWJpX3JvdXRlX3VwbG9hZDoKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGJveEluZGV4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIHVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gdXBsb2FkKGRhdGFJZGVudGlmaWVyOiBzdHJpbmcsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIGRhdGFJZGVudGlmaWVyIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRhdGEKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc2CgkvLyBtZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc3CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhdHVzID09PSBJTl9QUk9HUkVTUykKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWludCA4IC8vIGhlYWRPZmZzZXQKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJPD0KCSYmCgoqc2tpcF9hbmQwOgoJYXNzZXJ0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjgwCgkvLyBvZmZzZXQgPT09IDAKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODEKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5jcmVhdGUoYm94SW5kZXggPT09IG1ldGFkYXRhLmVuZCA/IG1ldGFkYXRhLmVuZFNpemUgOiBNQVhfQk9YX1NJWkUpCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCT09CglieiAqdGVybmFyeTBfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTcgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKKnRlcm5hcnkwX2VuZDoKCWJveF9jcmVhdGUKCXBvcAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4NAoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQKKmFiaV9yb3V0ZV9zZXRTdGF0dXM6CgkvLyBzdGF0dXM6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoc3RhdHVzKSBmb3Igc2V0U3RhdHVzIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldFN0YXR1cyhzdHJpbmcsdWludDgpdm9pZAoJY2FsbHN1YiBzZXRTdGF0dXMKCWludCAxCglyZXR1cm4KCi8vIHNldFN0YXR1cyhkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBzdGF0dXM6IHVpbnQ8OD4pOiB2b2lkCi8vCi8vCi8vIFNldCB0aGUgc3RhdHVzIG9mIHRoZSBkYXRhCi8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBzdGF0dXMgVGhlIG5ldyBzdGF0dXMgZm9yIHRoZSBkYXRhCnNldFN0YXR1czoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6OTUKCS8vIGN1cnJlbnRTdGF0dXMgPSB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZS5zdGF0dXMKCWZyYW1lX2RpZyAtMSAvLyBkYXRhSWRlbnRpZmllcjogc3RyaW5nCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gY3VycmVudFN0YXR1czogdWludDgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5NwoJLy8gYXNzZXJ0KHN0YXR1cyA9PT0gUkVBRFkgfHwgc3RhdHVzID09PSBJTU1VVEFCTEUgfHwgc3RhdHVzID09PSBJTl9QUk9HUkVTUykKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpbnQgMgoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCWludCAwCgk9PQoJfHwKCipza2lwX29yMToKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk4CgkvLyBhc3NlcnQoY3VycmVudFN0YXR1cyAhPT0gSU1NVVRBQkxFKQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudFN0YXR1czogdWludDgKCWludCAyCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6MTAwCgkvLyB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZS5zdGF0dXMgPSBzdGF0dXMKCWludCAxNiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpdG9iCglleHRyYWN0IDcgMQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgoJbWV0aG9kICJzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkICphYmlfcm91dGVfdXBsb2FkICphYmlfcm91dGVfc2V0U3RhdHVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkOgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCAxIC8vIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChtYnJQYXltZW50KSBmb3Igc3RhcnRVcGxvYWQgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZW5kQm94U2l6ZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gbnVtQm94ZXM6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQoZGF0YUlkZW50aWZpZXI6IHN0cmluZywgbnVtQm94ZXM6IHVpbnQ2NCwgZW5kQm94U2l6ZTogdWludDY0LCBtYnJQYXltZW50OiBQYXlUeG4pOiB2b2lkCi8vCi8vCi8vIEFsbG9jYXRlIGJveGVzIHRvIGJlZ2luIGRhdGEgdXBsb2FkIHByb2Nlc3MKLy8KLy8gQHBhcmFtIGRhdGFJZGVudGlmaWVyIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRhdGEKLy8gQHBhcmFtIG51bUJveGVzIFRoZSBudW1iZXIgb2YgYm94ZXMgdGhhdCB0aGUgZGF0YSB3aWxsIHRha2UgdXAKLy8gQHBhcmFtIGVuZEJveFNpemUgVGhlIHNpemUgb2YgdGhlIGxhc3QgYm94Ci8vIEBwYXJhbSBtYnJQYXltZW50IFBheW1lbnQgZnJvbSB0aGUgdXBsb2FkZXIgdG8gY292ZXIgdGhlIGJveCBNQlIKc3RhcnRVcGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6NDEKCS8vIHN0YXJ0Qm94ID0gdGhpcy5jdXJyZW50SW5kZXgudmFsdWUKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9idXJ5IDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjQyCgkvLyBlbmRCb3ggPSBzdGFydEJveCArIG51bUJveGVzIC0gMQoJZnJhbWVfZGlnIDAgLy8gc3RhcnRCb3g6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCSsKCWludCAxCgktCglmcmFtZV9idXJ5IDEgLy8gZW5kQm94OiB1aW50NjQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo0NAoJLy8gbWV0YWRhdGE6IE1ldGFkYXRhID0gewoJLy8gICAgICAgc3RhcnQ6IHN0YXJ0Qm94LAoJLy8gICAgICAgZW5kOiBlbmRCb3gsCgkvLyAgICAgICBzdGF0dXM6IElOX1BST0dSRVNTLAoJLy8gICAgICAgZW5kU2l6ZTogZW5kQm94U2l6ZSwKCS8vICAgICB9CglmcmFtZV9kaWcgMCAvLyBzdGFydEJveDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMSAvLyBlbmRCb3g6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1MQoJLy8gYXNzZXJ0KCF0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1MwoJLy8gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUgPSBtZXRhZGF0YQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWZyYW1lX2RpZyAyIC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoJYm94X3B1dAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjU1CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo1NwoJLy8gdG90YWxDb3N0ID0KCS8vICAgICAgIG51bUJveGVzICogQ09TVF9QRVJfQk9YICsgLy8gY29zdCBvZiBib3hlcwoJLy8gICAgICAgKG51bUJveGVzIC0gMSkgKiBNQVhfQk9YX1NJWkUgKiBDT1NUX1BFUl9CWVRFICsgLy8gY29zdCBvZiBkYXRhCgkvLyAgICAgICBudW1Cb3hlcyAqIDY0ICogQ09TVF9QRVJfQllURSArIC8vIGNvc3Qgb2Yga2V5cwoJLy8gICAgICAgZW5kQm94U2l6ZSAqIENPU1RfUEVSX0JZVEUKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglwdXNoaW50IDI1MDAKCSoKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglpbnQgMQoJLQoJcHVzaGludCAzMjc2OAoJKgoJcHVzaGludCA0MDAKCSoKCSsKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglwdXNoaW50IDY0CgkqCglwdXNoaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0zIC8vIGVuZEJveFNpemU6IHVpbnQ2NAoJcHVzaGludCA0MDAKCSoKCSsKCWZyYW1lX2J1cnkgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjYzCgkvLyB2ZXJpZnlQYXlUeG4obWJyUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiB0b3RhbENvc3QgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC00IC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidG90YWxDb3N0In0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoc3RyaW5nLHVpbnQ2NCx1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV91cGxvYWQ6CgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWV4dHJhY3QgMiAwCgoJLy8gb2Zmc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBib3hJbmRleDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChkYXRhSWRlbnRpZmllcjogc3RyaW5nLCBib3hJbmRleDogdWludDY0LCBvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCi8vCi8vCi8vIFVwbG9hZCBkYXRhIHRvIGEgc3BlY2lmaWMgb2Zmc2V0IGluIGEgYm94Ci8vCi8vIEBwYXJhbSBkYXRhSWRlbnRpZmllciBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkYXRhCi8vIEBwYXJhbSBib3hJbmRleCBUaGUgaW5kZXggb2YgdGhlIGJveCB0byB1cGxvYWQgdGhlIGdpdmVuIGNodW5rIG9mIGRhdGEgdG8KLy8gQHBhcmFtIG9mZnNldCBUaGUgb2Zmc2V0IHdpdGhpbiB0aGUgYm94IHRvIHN0YXJ0IHdyaXRpbmcgdGhlIGRhdGEKLy8gQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gd3JpdGUKdXBsb2FkOgoJcHJvdG8gNCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKGRhdGFJZGVudGlmaWVyKS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo3NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gSU5fUFJPR1JFU1MpCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCAxNiAvLyBoZWFkT2Zmc2V0CglpbnQgMQoJYm94X2V4dHJhY3QKCWJ0b2kKCXB1c2hpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjc4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXB1c2hpbnQgMAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCA4IC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMDoKCWFzc2VydAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4MAoJLy8gb2Zmc2V0ID09PSAwCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCXB1c2hpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo4MQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZShib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kID8gbWV0YWRhdGEuZW5kU2l6ZSA6IE1BWF9CT1hfU0laRSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXB1c2hpbnQgOCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCAxNyAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCXB1c2hpbnQgMzI3NjgKCip0ZXJuYXJ5MF9lbmQ6Cglib3hfY3JlYXRlCglwb3AKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvYmlnX2JveC9iaWdfYm94LmFsZ28udHM6ODQKCS8vIHRoaXMuZGF0YUJveGVzKGJveEluZGV4KS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTMgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc2V0U3RhdHVzKHN0cmluZyx1aW50OCl2b2lkCiphYmlfcm91dGVfc2V0U3RhdHVzOgoJLy8gc3RhdHVzOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YXR1cykgZm9yIHNldFN0YXR1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQKCWNhbGxzdWIgc2V0U3RhdHVzCglpbnQgMQoJcmV0dXJuCgovLyBzZXRTdGF0dXMoZGF0YUlkZW50aWZpZXI6IHN0cmluZywgc3RhdHVzOiB1aW50PDg+KTogdm9pZAovLwovLwovLyBTZXQgdGhlIHN0YXR1cyBvZiB0aGUgZGF0YQovLwovLyBAcGFyYW0gZGF0YUlkZW50aWZpZXIgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZGF0YQovLyBAcGFyYW0gc3RhdHVzIFRoZSBuZXcgc3RhdHVzIGZvciB0aGUgZGF0YQpzZXRTdGF0dXM6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk1CgkvLyBjdXJyZW50U3RhdHVzID0gdGhpcy5tZXRhZGF0YShkYXRhSWRlbnRpZmllcikudmFsdWUuc3RhdHVzCglmcmFtZV9kaWcgLTEgLy8gZGF0YUlkZW50aWZpZXI6IHN0cmluZwoJcHVzaGludCAxNiAvLyBoZWFkT2Zmc2V0CglpbnQgMQoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjdXJyZW50U3RhdHVzOiB1aW50OAoKCS8vIGV4YW1wbGVzL2JpZ19ib3gvYmlnX2JveC5hbGdvLnRzOjk3CgkvLyBhc3NlcnQoc3RhdHVzID09PSBSRUFEWSB8fCBzdGF0dXMgPT09IElNTVVUQUJMRSB8fCBzdGF0dXMgPT09IElOX1BST0dSRVNTKQoJZnJhbWVfZGlnIC0yIC8vIHN0YXR1czogdWludDw4PgoJaW50IDEKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCXB1c2hpbnQgMgoJPT0KCXx8Cgoqc2tpcF9vcjA6CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAtMiAvLyBzdGF0dXM6IHVpbnQ8OD4KCXB1c2hpbnQgMAoJPT0KCXx8Cgoqc2tpcF9vcjE6Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czo5OAoJLy8gYXNzZXJ0KGN1cnJlbnRTdGF0dXMgIT09IElNTVVUQUJMRSkKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRTdGF0dXM6IHVpbnQ4CglwdXNoaW50IDIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9iaWdfYm94L2JpZ19ib3guYWxnby50czoxMDAKCS8vIHRoaXMubWV0YWRhdGEoZGF0YUlkZW50aWZpZXIpLnZhbHVlLnN0YXR1cyA9IHN0YXR1cwoJcHVzaGludCAxNiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gc3RhdHVzOiB1aW50PDg+CglpdG9iCglleHRyYWN0IDcgMQoJZnJhbWVfZGlnIC0xIC8vIGRhdGFJZGVudGlmaWVyOiBzdHJpbmcKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YTA1YjU2NjkgLy8gbWV0aG9kICJzdGFydFVwbG9hZChzdHJpbmcsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCXB1c2hieXRlcyAweDFiN2RmYTM1IC8vIG1ldGhvZCAidXBsb2FkKHN0cmluZyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkIgoJcHVzaGJ5dGVzIDB4YmYzODU2ZjggLy8gbWV0aG9kICJzZXRTdGF0dXMoc3RyaW5nLHVpbnQ4KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXJ0VXBsb2FkICphYmlfcm91dGVfdXBsb2FkICphYmlfcm91dGVfc2V0U3RhdHVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAHAQgAkAMQgIACAiYCAAxjdXJyZW50SW5kZXgxGBSBBgsxGQiNDAFRAAAAAAAAAAAAAAFDAAAAAAAAAAAAAAAxFiIJSTgQIhJENhoDFzYaAhc2GgFXAgCIAAIiQ4oEAChHAylkjACLAIv+CCIJjAGLABaLARZQgAEAUIv9FlCMAov/vUxIFESL/4sCvymLASIIZ4v+gcQTC4v+IgkhBQslCwiL/oFACyULCIv9JQsIjAOL/DgHMgoSRIv8OAiLAxJEiTYaBFcCADYaAxc2GgIXNhoBVwIAiAACIkOKBAAoi/+MAIv/IQQiuhckEkSL/yQjuheL/g5JQQAKi/6L/yMjuhcOEESL/SQSQQAdi/4Wi/6L/yMjuhcSQQAKi/+BESO6F0IAAiEFuUiL/haL/Yv8u4k2GgJJFSISRBc2GgFXAgCIAAIiQ4oCACiL/yEEIroXjACL/iISSUAABov+IQYSEUlAAAWL/iQSEUSLACEGE0QhBIv+FlcHAYv/TgK7iSJDgAS4RHs2NhoAjgH/8QCABKBbVmmABBt9+jWABL84Vvg2GgCOA/6T/xb/hgA=", + "approval": "CiABASYCDGN1cnJlbnRJbmRleAAxGBSBBgsxGQiNDAGPAAAAAAAAAAAAAAGBAAAAAAAAAAAAAAAxFoEBCUk4EIEBEkQ2GgMXNhoCFzYaAVcCAIgAA4EBQ4oEAIAARwOADGN1cnJlbnRJbmRleGSMAIsAi/4IgQEJjAGLABaLARZQgAEAUIv9FlCMAov/vUxIFESL/4sCv4AMY3VycmVudEluZGV4iwGBAQhni/6BxBMLi/6BAQmBgIACC4GQAwsIi/6BQAuBkAMLCIv9gZADCwiMA4v8OAcyChJEi/w4CIsDEkSJNhoEVwIANhoDFzYaAhc2GgFXAgCIAAOBAUOKBACAAIv/jACL/4EQgQG6F4EAEkSL/4EAgQi6F4v+DklBAAyL/ov/gQiBCLoXDhBEi/2BABJBACKL/haL/ov/gQiBCLoXEkEAC4v/gRGBCLoXQgAEgYCAArlIi/4Wi/2L/LuJNhoCSRWBARJEFzYaAVcCAIgAA4EBQ4oCAIAAi/+BEIEBuheMAIv+gQESSUAABov+gQISEUlAAAaL/oEAEhFEiwCBAhNEgRCL/hZXBwGL/04Cu4mBAUOABLhEezY2GgCOAf/wAIAEoFtWaYAEG336NYAEvzhW+DYaAI4D/lX/Af9/AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/big_box/artifacts/BigBox.src_map.json b/examples/big_box/artifacts/BigBox.src_map.json index 529487653..22033f7eb 100644 --- a/examples/big_box/artifacts/BigBox.src_map.json +++ b/examples/big_box/artifacts/BigBox.src_map.json @@ -1,12 +1,24 @@ [ { "teal": 1, - "source": 20, + "source": "examples/big_box/big_box.algo.ts:20", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 0, 1, 2, - 3, + 3 + ] + }, + { + "teal": 3, + "source": "examples/big_box/big_box.algo.ts:20", + "pc": [ 4, 5, 6, @@ -22,67 +34,67 @@ 16, 17, 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28 + 19 ] }, { - "teal": 13, - "source": 20, + "teal": 15, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 29, - 30 + 20, + 21 ] }, { - "teal": 14, - "source": 20, + "teal": 16, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 31 + 22 ] }, { - "teal": 15, - "source": 20, + "teal": 17, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 32, - 33 + 23, + 24 ] }, { - "teal": 16, - "source": 20, + "teal": 18, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 34 + 25 ] }, { - "teal": 17, - "source": 20, + "teal": 19, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 35, - 36 + 26, + 27 ] }, { - "teal": 18, - "source": 20, + "teal": 20, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 37 + 28 ] }, { - "teal": 19, - "source": 20, + "teal": 21, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, 38, 39, 40, @@ -99,1698 +111,1751 @@ 51, 52, 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63 + 54 ] }, { - "teal": 23, - "source": 20, + "teal": 25, + "source": "examples/big_box/big_box.algo.ts:20", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 64 - ] - }, - { - "teal": 28, - "source": 40, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 29, - "source": 40, - "pc": [ - 67 + 55 ] }, { "teal": 30, - "source": 40, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 68 + 56, + 57 ] }, { "teal": 31, - "source": 40, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 69 + 58, + 59 ] }, { "teal": 32, - "source": 40, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 70, - 71 + 60 ] }, { "teal": 33, - "source": 40, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 72 + 61 ] }, { "teal": 34, - "source": 40, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 73 + 62, + 63 ] }, { - "teal": 37, - "source": 40, - "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", + "teal": 35, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 74 + 64, + 65 ] }, { - "teal": 40, - "source": 40, + "teal": 36, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 75, - 76, - 77 + 66 ] }, { - "teal": 41, - "source": 40, + "teal": 39, + "source": "examples/big_box/big_box.algo.ts:40", + "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", "pc": [ - 78 + 67 ] }, { - "teal": 44, - "source": 40, + "teal": 42, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 79, - 80, - 81 + 68, + 69, + 70 ] }, { - "teal": 45, - "source": 40, + "teal": 43, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 82 + 71 ] }, { - "teal": 48, - "source": 40, + "teal": 46, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 83, - 84, - 85 + 72, + 73, + 74 ] }, { - "teal": 49, - "source": 40, + "teal": 47, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 86, - 87, - 88 + 75 ] }, { - "teal": 52, - "source": 40, + "teal": 50, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 89, - 90, - 91 + 76, + 77, + 78 ] }, { - "teal": 53, - "source": 40, + "teal": 51, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 92 + 79, + 80, + 81 ] }, { "teal": 54, - "source": 40, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 93 + 82, + 83, + 84 ] }, { - "teal": 66, - "source": 40, + "teal": 55, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 94, - 95, - 96 + 85, + 86 ] }, { - "teal": 69, - "source": 40, + "teal": 56, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 97 + 87 ] }, { - "teal": 70, - "source": 40, + "teal": 68, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 98, - 99 + 88, + 89, + 90 ] }, { - "teal": 74, - "source": 41, + "teal": 71, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 100 + 91, + 92 ] }, { - "teal": 75, - "source": 41, + "teal": 72, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 101 + 93, + 94 ] }, { "teal": 76, - "source": 41, + "source": "examples/big_box/big_box.algo.ts:41", "pc": [ + 95, + 96, + 97, + 98, + 99, + 100, + 101, 102, - 103 + 103, + 104, + 105, + 106, + 107, + 108 ] }, { - "teal": 80, - "source": 42, + "teal": 77, + "source": "examples/big_box/big_box.algo.ts:41", "pc": [ - 104, - 105 + 109 ] }, { - "teal": 81, - "source": 42, + "teal": 78, + "source": "examples/big_box/big_box.algo.ts:41", "pc": [ - 106, - 107 + 110, + 111 ] }, { "teal": 82, - "source": 42, + "source": "examples/big_box/big_box.algo.ts:42", "pc": [ - 108 + 112, + 113 ] }, { "teal": 83, - "source": 42, + "source": "examples/big_box/big_box.algo.ts:42", "pc": [ - 109 + 114, + 115 ] }, { "teal": 84, - "source": 42, + "source": "examples/big_box/big_box.algo.ts:42", "pc": [ - 110 + 116 ] }, { "teal": 85, - "source": 42, + "source": "examples/big_box/big_box.algo.ts:42", "pc": [ - 111, - 112 + 117, + 118 ] }, { - "teal": 94, - "source": 45, + "teal": 86, + "source": "examples/big_box/big_box.algo.ts:42", "pc": [ - 113, - 114 + 119 ] }, { - "teal": 95, - "source": 45, + "teal": 87, + "source": "examples/big_box/big_box.algo.ts:42", "pc": [ - 115 + 120, + 121 ] }, { "teal": 96, - "source": 46, + "source": "examples/big_box/big_box.algo.ts:45", "pc": [ - 116, - 117 + 122, + 123 ] }, { "teal": 97, - "source": 46, + "source": "examples/big_box/big_box.algo.ts:45", "pc": [ - 118 + 124 ] }, { "teal": 98, - "source": 46, + "source": "examples/big_box/big_box.algo.ts:46", "pc": [ - 119 + 125, + 126 ] }, { "teal": 99, - "source": 47, + "source": "examples/big_box/big_box.algo.ts:46", "pc": [ - 120, - 121, - 122 + 127 ] }, { "teal": 100, - "source": 47, + "source": "examples/big_box/big_box.algo.ts:46", "pc": [ - 123 + 128 ] }, { "teal": 101, - "source": 48, + "source": "examples/big_box/big_box.algo.ts:47", "pc": [ - 124, - 125 + 129, + 130, + 131 ] }, { "teal": 102, - "source": 48, + "source": "examples/big_box/big_box.algo.ts:47", "pc": [ - 126 + 132 ] }, { "teal": 103, - "source": 48, + "source": "examples/big_box/big_box.algo.ts:48", "pc": [ - 127 + 133, + 134 ] }, { "teal": 104, - "source": 44, + "source": "examples/big_box/big_box.algo.ts:48", "pc": [ - 128, - 129 + 135 ] }, { - "teal": 108, - "source": 51, + "teal": 105, + "source": "examples/big_box/big_box.algo.ts:48", "pc": [ - 130, - 131 + 136 ] }, { - "teal": 109, - "source": 51, + "teal": 106, + "source": "examples/big_box/big_box.algo.ts:44", "pc": [ - 132 + 137, + 138 ] }, { "teal": 110, - "source": 51, + "source": "examples/big_box/big_box.algo.ts:51", "pc": [ - 133 + 139, + 140 ] }, { "teal": 111, - "source": 51, + "source": "examples/big_box/big_box.algo.ts:51", "pc": [ - 134 + 141 ] }, { "teal": 112, - "source": 51, + "source": "examples/big_box/big_box.algo.ts:51", "pc": [ - 135 + 142 ] }, { "teal": 113, - "source": 51, + "source": "examples/big_box/big_box.algo.ts:51", "pc": [ - 136 + 143 ] }, { - "teal": 117, - "source": 53, + "teal": 114, + "source": "examples/big_box/big_box.algo.ts:51", "pc": [ - 137, - 138 + 144 ] }, { - "teal": 118, - "source": 53, + "teal": 115, + "source": "examples/big_box/big_box.algo.ts:51", "pc": [ - 139, - 140 + 145 ] }, { "teal": 119, - "source": 53, + "source": "examples/big_box/big_box.algo.ts:53", "pc": [ - 141 + 146, + 147 ] }, { - "teal": 123, - "source": 55, + "teal": 120, + "source": "examples/big_box/big_box.algo.ts:53", "pc": [ - 142 + 148, + 149 ] }, { - "teal": 124, - "source": 55, + "teal": 121, + "source": "examples/big_box/big_box.algo.ts:53", "pc": [ - 143, - 144 + 150 ] }, { "teal": 125, - "source": 55, + "source": "examples/big_box/big_box.algo.ts:55", "pc": [ - 145 + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164 ] }, { "teal": 126, - "source": 55, + "source": "examples/big_box/big_box.algo.ts:55", "pc": [ - 146 + 165, + 166 ] }, { "teal": 127, - "source": 55, + "source": "examples/big_box/big_box.algo.ts:55", "pc": [ - 147 + 167, + 168 ] }, { - "teal": 135, - "source": 58, + "teal": 128, + "source": "examples/big_box/big_box.algo.ts:55", "pc": [ - 148, - 149 + 169 ] }, { - "teal": 136, - "source": 58, + "teal": 129, + "source": "examples/big_box/big_box.algo.ts:55", "pc": [ - 150, - 151, - 152 + 170 ] }, { "teal": 137, - "source": 58, + "source": "examples/big_box/big_box.algo.ts:58", "pc": [ - 153 + 171, + 172 ] }, { "teal": 138, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:58", "pc": [ - 154, - 155 + 173, + 174, + 175 ] }, { "teal": 139, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:58", "pc": [ - 156 + 176 ] }, { "teal": 140, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 157 + 177, + 178 ] }, { "teal": 141, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 158, - 159 + 179, + 180 ] }, { "teal": 142, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 160 + 181 ] }, { "teal": 143, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 161 + 182, + 183, + 184, + 185 ] }, { "teal": 144, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 162 + 186 ] }, { "teal": 145, - "source": 58, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 163 + 187, + 188, + 189 ] }, { "teal": 146, - "source": 60, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 164, - 165 + 190 ] }, { "teal": 147, - "source": 60, + "source": "examples/big_box/big_box.algo.ts:58", "pc": [ - 166, - 167 + 191 ] }, { "teal": 148, - "source": 60, + "source": "examples/big_box/big_box.algo.ts:60", "pc": [ - 168 + 192, + 193 ] }, { "teal": 149, - "source": 60, + "source": "examples/big_box/big_box.algo.ts:60", "pc": [ - 169 + 194, + 195 ] }, { "teal": 150, - "source": 60, + "source": "examples/big_box/big_box.algo.ts:60", "pc": [ - 170 + 196 ] }, { "teal": 151, - "source": 59, + "source": "examples/big_box/big_box.algo.ts:60", "pc": [ - 171 + 197, + 198, + 199 ] }, { "teal": 152, - "source": 61, + "source": "examples/big_box/big_box.algo.ts:60", "pc": [ - 172, - 173 + 200 ] }, { "teal": 153, - "source": 61, + "source": "examples/big_box/big_box.algo.ts:59", "pc": [ - 174 + 201 ] }, { "teal": 154, - "source": 61, + "source": "examples/big_box/big_box.algo.ts:61", "pc": [ - 175 + 202, + 203 ] }, { "teal": 155, - "source": 60, + "source": "examples/big_box/big_box.algo.ts:61", "pc": [ - 176 + 204, + 205, + 206 ] }, { "teal": 156, - "source": 57, + "source": "examples/big_box/big_box.algo.ts:61", "pc": [ - 177, - 178 + 207 ] }, { - "teal": 161, - "source": 63, + "teal": 157, + "source": "examples/big_box/big_box.algo.ts:60", "pc": [ - 179, - 180 + 208 ] }, { - "teal": 162, - "source": 63, + "teal": 158, + "source": "examples/big_box/big_box.algo.ts:57", "pc": [ - 181, - 182 + 209, + 210 ] }, { "teal": 163, - "source": 63, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 183, - 184 + 211, + 212 ] }, { "teal": 164, - "source": 63, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 185 + 213, + 214 ] }, { - "teal": 167, - "source": 63, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 165, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 186 + 215, + 216 ] }, { - "teal": 170, - "source": 63, + "teal": 166, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 187, - 188 + 217 ] }, { - "teal": 171, - "source": 63, + "teal": 169, + "source": "examples/big_box/big_box.algo.ts:63", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 189, - 190 + 218 ] }, { "teal": 172, - "source": 63, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 191, - 192 + 219, + 220 ] }, { "teal": 173, - "source": 63, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 193 + 221, + 222 ] }, { - "teal": 176, - "source": 63, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"totalCost\"}", + "teal": 174, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 194 + 223, + 224 ] }, { - "teal": 177, - "source": 40, + "teal": 175, + "source": "examples/big_box/big_box.algo.ts:63", "pc": [ - 195 + 225 ] }, { - "teal": 182, - "source": 75, + "teal": 178, + "source": "examples/big_box/big_box.algo.ts:63", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"totalCost\"}", "pc": [ - 196, - 197, - 198 + 226 ] }, { - "teal": 183, - "source": 75, + "teal": 179, + "source": "examples/big_box/big_box.algo.ts:40", "pc": [ - 199, - 200, - 201 + 227 ] }, { - "teal": 186, - "source": 75, + "teal": 184, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 202, - 203, - 204 + 228, + 229, + 230 ] }, { - "teal": 187, - "source": 75, + "teal": 185, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 205 + 231, + 232, + 233 ] }, { - "teal": 190, - "source": 75, + "teal": 188, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 206, - 207, - 208 + 234, + 235, + 236 ] }, { - "teal": 191, - "source": 75, + "teal": 189, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 209 + 237 ] }, { - "teal": 194, - "source": 75, + "teal": 192, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 210, - 211, - 212 + 238, + 239, + 240 ] }, { - "teal": 195, - "source": 75, + "teal": 193, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 213, - 214, - 215 + 241 ] }, { - "teal": 198, - "source": 75, + "teal": 196, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 216, - 217, - 218 + 242, + 243, + 244 ] }, { - "teal": 199, - "source": 75, + "teal": 197, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 219 + 245, + 246, + 247 ] }, { "teal": 200, - "source": 75, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 220 + 248, + 249, + 250 ] }, { - "teal": 212, - "source": 75, + "teal": 201, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 221, - 222, - 223 + 251, + 252 ] }, { - "teal": 215, - "source": 75, + "teal": 202, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 224 + 253 ] }, { - "teal": 219, - "source": 76, + "teal": 214, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 225, - 226 + 254, + 255, + 256 ] }, { - "teal": 220, - "source": 76, + "teal": 217, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 227, - 228 + 257, + 258 ] }, { - "teal": 224, - "source": 76, + "teal": 221, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 229, - 230 + 259, + 260 ] }, { - "teal": 225, - "source": 76, + "teal": 222, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 231, - 232 + 261, + 262 ] }, { "teal": 226, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 233 + 263, + 264 ] }, { "teal": 227, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 234 + 265, + 266 ] }, { "teal": 228, - "source": 77, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 235 + 267, + 268 ] }, { "teal": 229, - "source": 77, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 236 + 269 ] }, { "teal": 230, - "source": 77, + "source": "examples/big_box/big_box.algo.ts:77", "pc": [ - 237 + 270 ] }, { "teal": 231, - "source": 77, + "source": "examples/big_box/big_box.algo.ts:77", "pc": [ - 238 + 271, + 272 ] }, { - "teal": 235, - "source": 76, + "teal": 232, + "source": "examples/big_box/big_box.algo.ts:77", "pc": [ - 239, - 240 + 273 ] }, { - "teal": 236, - "source": 76, + "teal": 233, + "source": "examples/big_box/big_box.algo.ts:77", "pc": [ - 241 + 274 ] }, { "teal": 237, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 242 + 275, + 276 ] }, { "teal": 238, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 243 + 277, + 278 ] }, { "teal": 239, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 244 + 279, + 280 ] }, { "teal": 240, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 245, - 246 + 281 ] }, { "teal": 241, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 247 + 282 ] }, { "teal": 242, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 248 + 283, + 284 ] }, { "teal": 243, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 249, - 250, - 251 + 285 ] }, { "teal": 244, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 252, - 253 + 286 ] }, { "teal": 245, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 254, - 255 + 287, + 288, + 289 ] }, { "teal": 246, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 256 + 290, + 291 ] }, { "teal": 247, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 257 + 292, + 293 ] }, { "teal": 248, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 258 + 294, + 295 ] }, { "teal": 249, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 259 + 296, + 297 ] }, { "teal": 250, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 260 + 298 ] }, { "teal": 251, - "source": 78, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 261 + 299 ] }, { - "teal": 254, - "source": 78, + "teal": 252, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 262 + 300 ] }, { - "teal": 259, - "source": 80, + "teal": 253, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 263, - 264 + 301 ] }, { - "teal": 260, - "source": 80, + "teal": 256, + "source": "examples/big_box/big_box.algo.ts:78", "pc": [ - 265 + 302 ] }, { "teal": 261, - "source": 80, + "source": "examples/big_box/big_box.algo.ts:80", "pc": [ - 266 + 303, + 304 ] }, { "teal": 262, - "source": 80, + "source": "examples/big_box/big_box.algo.ts:80", "pc": [ - 267, - 268, - 269 + 305, + 306 ] }, { - "teal": 267, - "source": 81, + "teal": 263, + "source": "examples/big_box/big_box.algo.ts:80", "pc": [ - 270, - 271 + 307 ] }, { - "teal": 268, - "source": 81, + "teal": 264, + "source": "examples/big_box/big_box.algo.ts:80", "pc": [ - 272 + 308, + 309, + 310 ] }, { "teal": 269, - "source": 81, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 273, - 274 + 311, + 312 ] }, { "teal": 270, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 275, - 276 + 313 ] }, { "teal": 271, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 277 + 314, + 315 ] }, { "teal": 272, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 278 + 316, + 317 ] }, { "teal": 273, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 279 + 318, + 319 ] }, { "teal": 274, - "source": 81, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 280 + 320, + 321 ] }, { "teal": 275, - "source": 81, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 281 + 322 ] }, { "teal": 276, - "source": 81, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 282, - 283, - 284 + 323 ] }, { "teal": 277, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 285, - 286 + 324 ] }, { "teal": 278, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 287, - 288 + 325, + 326, + 327 ] }, { "teal": 279, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 289 + 328, + 329 ] }, { "teal": 280, - "source": 76, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 290 + 330, + 331 ] }, { "teal": 281, - "source": 81, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 291 + 332, + 333 ] }, { "teal": 282, - "source": 81, + "source": "examples/big_box/big_box.algo.ts:76", "pc": [ - 292, - 293, - 294 + 334 ] }, { - "teal": 285, - "source": 81, + "teal": 283, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 295, - 296 + 335 ] }, { - "teal": 288, - "source": 81, + "teal": 284, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 297 + 336, + 337, + 338 ] }, { - "teal": 289, - "source": 81, + "teal": 287, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 298 + 339, + 340, + 341, + 342 ] }, { - "teal": 294, - "source": 84, + "teal": 290, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 299, - 300 + 343 ] }, { - "teal": 295, - "source": 84, + "teal": 291, + "source": "examples/big_box/big_box.algo.ts:81", "pc": [ - 301 + 344 ] }, { "teal": 296, - "source": 84, + "source": "examples/big_box/big_box.algo.ts:84", "pc": [ - 302, - 303 + 345, + 346 ] }, { "teal": 297, - "source": 84, + "source": "examples/big_box/big_box.algo.ts:84", "pc": [ - 304, - 305 + 347 ] }, { "teal": 298, - "source": 84, + "source": "examples/big_box/big_box.algo.ts:84", "pc": [ - 306 + 348, + 349 ] }, { "teal": 299, - "source": 75, + "source": "examples/big_box/big_box.algo.ts:84", "pc": [ - 307 + 350, + 351 ] }, { - "teal": 304, - "source": 94, + "teal": 300, + "source": "examples/big_box/big_box.algo.ts:84", "pc": [ - 308, - 309, - 310 + 352 ] }, { - "teal": 305, - "source": 94, + "teal": 301, + "source": "examples/big_box/big_box.algo.ts:75", "pc": [ - 311 + 353 ] }, { "teal": 306, - "source": 94, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 312 + 354, + 355, + 356 ] }, { "teal": 307, - "source": 94, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 313 + 357 ] }, { "teal": 308, - "source": 94, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 314 + 358 ] }, { - "teal": 311, - "source": 94, - "errorMessage": "argument 0 (status) for setStatus must be a uint8", + "teal": 309, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 315 + 359, + 360 ] }, { - "teal": 312, - "source": 94, + "teal": 310, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 316 + 361 ] }, { - "teal": 315, - "source": 94, + "teal": 313, + "source": "examples/big_box/big_box.algo.ts:94", + "errorMessage": "argument 0 (status) for setStatus must be a uint8", "pc": [ - 317, - 318, - 319 + 362 ] }, { - "teal": 316, - "source": 94, + "teal": 314, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 320, - 321, - 322 + 363 ] }, { - "teal": 319, - "source": 94, + "teal": 317, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 323, - 324, - 325 + 364, + 365, + 366 ] }, { - "teal": 320, - "source": 94, + "teal": 318, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 326 + 367, + 368, + 369 ] }, { "teal": 321, - "source": 94, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 327 + 370, + 371, + 372 ] }, { - "teal": 331, - "source": 94, + "teal": 322, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 328, - 329, - 330 + 373, + 374 ] }, { - "teal": 334, - "source": 94, + "teal": 323, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 331 + 375 ] }, { - "teal": 338, - "source": 95, + "teal": 333, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 332, - 333 + 376, + 377, + 378 ] }, { - "teal": 339, - "source": 95, + "teal": 336, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 334, - 335 + 379, + 380 ] }, { "teal": 340, - "source": 95, + "source": "examples/big_box/big_box.algo.ts:95", "pc": [ - 336 + 381, + 382 ] }, { "teal": 341, - "source": 95, + "source": "examples/big_box/big_box.algo.ts:95", "pc": [ - 337 + 383, + 384 ] }, { "teal": 342, - "source": 95, + "source": "examples/big_box/big_box.algo.ts:95", "pc": [ - 338 + 385, + 386 ] }, { "teal": 343, - "source": 95, + "source": "examples/big_box/big_box.algo.ts:95", "pc": [ - 339, - 340 + 387 ] }, { - "teal": 347, - "source": 97, + "teal": 344, + "source": "examples/big_box/big_box.algo.ts:95", "pc": [ - 341, - 342 + 388 ] }, { - "teal": 348, - "source": 97, + "teal": 345, + "source": "examples/big_box/big_box.algo.ts:95", "pc": [ - 343 + 389, + 390 ] }, { "teal": 349, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 344 + 391, + 392 ] }, { "teal": 350, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 345 + 393, + 394 ] }, { "teal": 351, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 346, - 347, - 348 + 395 ] }, { "teal": 352, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 349, - 350 + 396 ] }, { "teal": 353, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 351, - 352 + 397, + 398, + 399 ] }, { "teal": 354, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 353 + 400, + 401 ] }, { "teal": 355, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 354 + 402, + 403 ] }, { - "teal": 358, - "source": 97, + "teal": 356, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 355 + 404 ] }, { - "teal": 359, - "source": 97, + "teal": 357, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 356, - 357, - 358 + 405 ] }, { "teal": 360, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 359, - 360 + 406 ] }, { "teal": 361, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 361 + 407, + 408, + 409 ] }, { "teal": 362, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 362 + 410, + 411 ] }, { "teal": 363, - "source": 97, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 363 + 412, + 413 ] }, { - "teal": 366, - "source": 97, + "teal": 364, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 364 + 414 ] }, { - "teal": 370, - "source": 98, + "teal": 365, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 365, - 366 + 415 ] }, { - "teal": 371, - "source": 98, + "teal": 368, + "source": "examples/big_box/big_box.algo.ts:97", "pc": [ - 367, - 368 + 416 ] }, { "teal": 372, - "source": 98, + "source": "examples/big_box/big_box.algo.ts:98", "pc": [ - 369 + 417, + 418 ] }, { "teal": 373, - "source": 98, + "source": "examples/big_box/big_box.algo.ts:98", "pc": [ - 370 + 419, + 420 ] }, { - "teal": 377, - "source": 100, + "teal": 374, + "source": "examples/big_box/big_box.algo.ts:98", "pc": [ - 371, - 372 + 421 ] }, { - "teal": 378, - "source": 100, + "teal": 375, + "source": "examples/big_box/big_box.algo.ts:98", "pc": [ - 373, - 374 + 422 ] }, { "teal": 379, - "source": 100, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 375 + 423, + 424 ] }, { "teal": 380, - "source": 100, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 376, - 377, - 378 + 425, + 426 ] }, { "teal": 381, - "source": 100, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 379, - 380 + 427 ] }, { "teal": 382, - "source": 100, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 381, - 382 + 428, + 429, + 430 ] }, { "teal": 383, - "source": 100, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 383 + 431, + 432 ] }, { "teal": 384, - "source": 94, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 384 + 433, + 434 ] }, { - "teal": 387, - "source": 20, + "teal": 385, + "source": "examples/big_box/big_box.algo.ts:100", "pc": [ - 385 + 435 ] }, { - "teal": 388, - "source": 20, + "teal": 386, + "source": "examples/big_box/big_box.algo.ts:94", "pc": [ - 386 + 436 ] }, { - "teal": 391, - "source": 20, + "teal": 389, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 387, - 388, - 389, - 390, - 391, - 392 + 437, + 438 ] }, { - "teal": 392, - "source": 20, + "teal": 390, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 393, - 394, - 395 + 439 ] }, { "teal": 393, - "source": 20, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 396, - 397, - 398, - 399 + 440, + 441, + 442, + 443, + 444, + 445 ] }, { - "teal": 396, - "source": 20, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 394, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 400 + 446, + 447, + 448 ] }, { - "teal": 399, - "source": 20, + "teal": 395, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 401, - 402, - 403, - 404, - 405, - 406 + 449, + 450, + 451, + 452 ] }, { - "teal": 400, - "source": 20, + "teal": 398, + "source": "examples/big_box/big_box.algo.ts:20", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 407, - 408, - 409, - 410, - 411, - 412 + 453 ] }, { "teal": 401, - "source": 20, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 413, - 414, - 415, - 416, - 417, - 418 + 454, + 455, + 456, + 457, + 458, + 459 ] }, { "teal": 402, - "source": 20, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 419, - 420, - 421 + 460, + 461, + 462, + 463, + 464, + 465 ] }, { "teal": 403, - "source": 20, + "source": "examples/big_box/big_box.algo.ts:20", "pc": [ - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429 + 466, + 467, + 468, + 469, + 470, + 471 ] }, { - "teal": 406, - "source": 20, + "teal": 404, + "source": "examples/big_box/big_box.algo.ts:20", + "pc": [ + 472, + 473, + 474 + ] + }, + { + "teal": 405, + "source": "examples/big_box/big_box.algo.ts:20", + "pc": [ + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482 + ] + }, + { + "teal": 408, + "source": "examples/big_box/big_box.algo.ts:20", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 430 + 483 ] } ] \ No newline at end of file diff --git a/examples/calculator/artifacts/Calculator.approval.teal b/examples/calculator/artifacts/Calculator.approval.teal index 3261a38d3..e9af9d2c0 100644 --- a/examples/calculator/artifacts/Calculator.approval.teal +++ b/examples/calculator/artifacts/Calculator.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -71,7 +71,7 @@ getDifference: // doMath(uint64,uint64,string)uint64 *abi_route_doMath: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // operation: string txna ApplicationArgs 3 @@ -90,7 +90,7 @@ getDifference: itob concat log - int 1 + pushint 1 return // doMath(a: uint64, b: uint64, operation: string): uint64 @@ -106,13 +106,13 @@ doMath: proto 3 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // *if0_condition // examples/calculator/calculator.algo.ts:39 // operation === 'sum' frame_dig -3 // operation: string - byte 0x73756d // "sum" + pushbytes 0x73756d // "sum" == bz *if0_elseif1_condition @@ -129,7 +129,7 @@ doMath: // examples/calculator/calculator.algo.ts:41 // operation === 'difference' frame_dig -3 // operation: string - byte 0x646966666572656e6365 // "difference" + pushbytes 0x646966666572656e6365 // "difference" == bz *if0_else @@ -156,11 +156,11 @@ doMath: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -168,7 +168,7 @@ doMath: err *call_NoOp: - method "doMath(uint64,uint64,string)uint64" + pushbytes 0x76a7ef33 // method "doMath(uint64,uint64,string)uint64" txna ApplicationArgs 0 match *abi_route_doMath diff --git a/examples/calculator/artifacts/Calculator.arc32.json b/examples/calculator/artifacts/Calculator.arc32.json index 9aacc4c21..83b64e8ab 100644 --- a/examples/calculator/artifacts/Calculator.arc32.json +++ b/examples/calculator/artifacts/Calculator.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBnZXRTdW0oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgc3VtIG9mIHR3byBudW1iZXJzCi8vCi8vIEBwYXJhbSBhCi8vIEBwYXJhbSBiCi8vIEByZXR1cm5zIFRoZSBzdW0gb2YgYSBhbmQgYgpnZXRTdW06Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoxMwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBnZXREaWZmZXJlbmNlKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbnVtYmVycwovLwovLyBAcGFyYW0gYQovLyBAcGFyYW0gYgovLyBAcmV0dXJucyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgYW5kIGIuCmdldERpZmZlcmVuY2U6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoyNAoJLy8gcmV0dXJuIGEgPj0gYiA/IGEgLSBiIDogYiAtIGE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgk+PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgktCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCS0KCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIGRvTWF0aCh1aW50NjQsdWludDY0LHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9kb01hdGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIG9wZXJhdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBkb01hdGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkb01hdGgoYTogdWludDY0LCBiOiB1aW50NjQsIG9wZXJhdGlvbjogc3RyaW5nKTogdWludDY0Ci8vCi8vIEEgbWV0aG9kIHRoYXQgdGFrZXMgdHdvIG51bWJlcnMgYW5kIGRvZXMgZWl0aGVyIGFkZGl0aW9uIG9yIHN1YnRyYWN0aW9uCi8vCi8vIEBwYXJhbSBhIFRoZSBmaXJzdCBudW1iZXIKLy8gQHBhcmFtIGIgVGhlIHNlY29uZCBudW1iZXIKLy8gQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0uIENhbiBiZSBlaXRoZXIgJ3N1bScgb3IgJ2RpZmZlcmVuY2UnCi8vCi8vIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbgpkb01hdGg6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czozOQoJLy8gb3BlcmF0aW9uID09PSAnc3VtJwoJZnJhbWVfZGlnIC0zIC8vIG9wZXJhdGlvbjogc3RyaW5nCglieXRlIDB4NzM3NTZkIC8vICJzdW0iCgk9PQoJYnogKmlmMF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDAKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0U3VtKGEsIGIpCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIGdldFN1bQoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogdWludDY0CgliICppZjBfZW5kCgoqaWYwX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDEKCS8vIG9wZXJhdGlvbiA9PT0gJ2RpZmZlcmVuY2UnCglmcmFtZV9kaWcgLTMgLy8gb3BlcmF0aW9uOiBzdHJpbmcKCWJ5dGUgMHg2NDY5NjY2NjY1NzI2NTZlNjM2NSAvLyAiZGlmZmVyZW5jZSIKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDIKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0RGlmZmVyZW5jZShhLCBiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBnZXREaWZmZXJlbmNlCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiB1aW50NjQKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIEludmFsaWQgb3BlcmF0aW9uCgllcnIKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDUKCS8vIHJldHVybiByZXN1bHQ7CglmcmFtZV9kaWcgMCAvLyByZXN1bHQ6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZG9NYXRoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZ2V0U3VtKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZXMgdGhlIHN1bSBvZiB0d28gbnVtYmVycwovLwovLyBAcGFyYW0gYQovLyBAcGFyYW0gYgovLyBAcmV0dXJucyBUaGUgc3VtIG9mIGEgYW5kIGIKZ2V0U3VtOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6MTMKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCXJldHN1YgoKLy8gZ2V0RGlmZmVyZW5jZShhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIG51bWJlcnMKLy8KLy8gQHBhcmFtIGEKLy8gQHBhcmFtIGIKLy8gQHJldHVybnMgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIGFuZCBiLgpnZXREaWZmZXJlbmNlOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6MjQKCS8vIHJldHVybiBhID49IGIgPyBhIC0gYiA6IGIgLSBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJPj0KCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLQoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgktCgoqdGVybmFyeTBfZW5kOgoJcmV0c3ViCgovLyBkb01hdGgodWludDY0LHVpbnQ2NCxzdHJpbmcpdWludDY0CiphYmlfcm91dGVfZG9NYXRoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIG9wZXJhdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBkb01hdGgKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZG9NYXRoKGE6IHVpbnQ2NCwgYjogdWludDY0LCBvcGVyYXRpb246IHN0cmluZyk6IHVpbnQ2NAovLwovLyBBIG1ldGhvZCB0aGF0IHRha2VzIHR3byBudW1iZXJzIGFuZCBkb2VzIGVpdGhlciBhZGRpdGlvbiBvciBzdWJ0cmFjdGlvbgovLwovLyBAcGFyYW0gYSBUaGUgZmlyc3QgbnVtYmVyCi8vIEBwYXJhbSBiIFRoZSBzZWNvbmQgbnVtYmVyCi8vIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiB0byBwZXJmb3JtLiBDYW4gYmUgZWl0aGVyICdzdW0nIG9yICdkaWZmZXJlbmNlJwovLwovLyBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24KZG9NYXRoOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czozOQoJLy8gb3BlcmF0aW9uID09PSAnc3VtJwoJZnJhbWVfZGlnIC0zIC8vIG9wZXJhdGlvbjogc3RyaW5nCglwdXNoYnl0ZXMgMHg3Mzc1NmQgLy8gInN1bSIKCT09CglieiAqaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czo0MAoJLy8gcmVzdWx0ID0gdGhpcy5nZXRTdW0oYSwgYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWNhbGxzdWIgZ2V0U3VtCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiB1aW50NjQKCWIgKmlmMF9lbmQKCippZjBfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czo0MQoJLy8gb3BlcmF0aW9uID09PSAnZGlmZmVyZW5jZScKCWZyYW1lX2RpZyAtMyAvLyBvcGVyYXRpb246IHN0cmluZwoJcHVzaGJ5dGVzIDB4NjQ2OTY2NjY2NTcyNjU2ZTYzNjUgLy8gImRpZmZlcmVuY2UiCgk9PQoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQyCgkvLyByZXN1bHQgPSB0aGlzLmdldERpZmZlcmVuY2UoYSwgYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWNhbGxzdWIgZ2V0RGlmZmVyZW5jZQoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogdWludDY0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBJbnZhbGlkIG9wZXJhdGlvbgoJZXJyCgoqaWYwX2VuZDoKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQ1CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NzZhN2VmMzMgLy8gbWV0aG9kICJkb01hdGgodWludDY0LHVpbnQ2NCxzdHJpbmcpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kb01hdGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/calculator/artifacts/Calculator.arc56_draft.json b/examples/calculator/artifacts/Calculator.arc56_draft.json index f15bfd3fa..4954fbc0d 100644 --- a/examples/calculator/artifacts/Calculator.arc56_draft.json +++ b/examples/calculator/artifacts/Calculator.arc56_draft.json @@ -79,660 +79,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 33, - "source": 12, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 37, - "source": 13, - "pc": [ - 43, - 44 - ] - }, - { - "teal": 38, - "source": 13, - "pc": [ - 45, - 46 - ] - }, - { - "teal": 39, - "source": 13, - "pc": [ - 47 - ] - }, - { - "teal": 40, - "source": 12, - "pc": [ - 48 - ] - }, - { - "teal": 50, - "source": 23, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 54, - "source": 24, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 55, - "source": 24, - "pc": [ - 54, - 55 - ] - }, - { - "teal": 56, - "source": 24, - "pc": [ - 56 - ] - }, - { - "teal": 57, - "source": 24, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 58, - "source": 24, - "pc": [ - 60, - 61 - ] - }, - { - "teal": 59, - "source": 24, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 60, - "source": 24, - "pc": [ - 64 - ] - }, - { - "teal": 61, - "source": 24, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 64, - "source": 24, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 65, - "source": 24, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 66, - "source": 24, - "pc": [ - 72 - ] - }, - { - "teal": 69, - "source": 23, - "pc": [ - 73 - ] - }, - { - "teal": 74, - "source": 36, - "pc": [ - 74, - 75, - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 77, - "source": 36, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 78, - "source": 36, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 81, - "source": 36, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 82, - "source": 36, - "pc": [ - 89 - ] - }, - { - "teal": 85, - "source": 36, - "pc": [ - 90, - 91, - 92 - ] - }, - { - "teal": 86, - "source": 36, - "pc": [ - 93 - ] - }, - { - "teal": 89, - "source": 36, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 90, - "source": 36, - "pc": [ - 97 - ] - }, - { - "teal": 91, - "source": 36, - "pc": [ - 98 - ] - }, - { - "teal": 92, - "source": 36, - "pc": [ - 99 - ] - }, - { - "teal": 93, - "source": 36, - "pc": [ - 100 - ] - }, - { - "teal": 94, - "source": 36, - "pc": [ - 101 - ] - }, - { - "teal": 106, - "source": 36, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 109, - "source": 36, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 114, - "source": 39, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 115, - "source": 39, - "pc": [ - 109, - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 116, - "source": 39, - "pc": [ - 114 - ] - }, - { - "teal": 117, - "source": 39, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 122, - "source": 40, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 123, - "source": 40, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 124, - "source": 40, - "pc": [ - 122, - 123, - 124 - ] - }, - { - "teal": 125, - "source": 40, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 126, - "source": 39, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 131, - "source": 41, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 132, - "source": 41, - "pc": [ - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ] - }, - { - "teal": 133, - "source": 41, - "pc": [ - 144 - ] - }, - { - "teal": 134, - "source": 41, - "pc": [ - 145, - 146, - 147 - ] - }, - { - "teal": 139, - "source": 42, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 140, - "source": 42, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 141, - "source": 42, - "pc": [ - 152, - 153, - 154 - ] - }, - { - "teal": 142, - "source": 42, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 143, - "source": 41, - "pc": [ - 157, - 158, - 159 - ] - }, - { - "teal": 147, - "source": 43, - "errorMessage": "Invalid operation", - "pc": [ - 160 - ] - }, - { - "teal": 152, - "source": 45, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 155, - "source": 36, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 156, - "source": 36, - "pc": [ - 165 - ] - }, - { - "teal": 159, - "source": 4, - "pc": [ - 166 - ] - }, - { - "teal": 160, - "source": 4, - "pc": [ - 167 - ] - }, - { - "teal": 163, - "source": 4, - "pc": [ - 168, - 169, - 170, - 171, - 172, - 173 - ] - }, - { - "teal": 164, - "source": 4, - "pc": [ - 174, - 175, - 176 - ] - }, - { - "teal": 165, - "source": 4, - "pc": [ - 177, - 178, - 179, - 180 - ] - }, - { - "teal": 168, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 181 - ] - }, - { - "teal": 171, - "source": 4, - "pc": [ - 182, - 183, - 184, - 185, - 186, - 187 - ] - }, - { - "teal": 172, - "source": 4, - "pc": [ - 188, - 189, - 190 - ] - }, - { - "teal": 173, - "source": 4, - "pc": [ - 191, - 192, - 193, - 194 - ] - }, - { - "teal": 176, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 195 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 158 + ], + "errorMessage": "Invalid operation" + }, + { + "pc": [ + 180 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 194 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBnZXRTdW0oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlcyB0aGUgc3VtIG9mIHR3byBudW1iZXJzCi8vCi8vIEBwYXJhbSBhCi8vIEBwYXJhbSBiCi8vIEByZXR1cm5zIFRoZSBzdW0gb2YgYSBhbmQgYgpnZXRTdW06Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoxMwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBnZXREaWZmZXJlbmNlKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbnVtYmVycwovLwovLyBAcGFyYW0gYQovLyBAcGFyYW0gYgovLyBAcmV0dXJucyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgYW5kIGIuCmdldERpZmZlcmVuY2U6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czoyNAoJLy8gcmV0dXJuIGEgPj0gYiA/IGEgLSBiIDogYiAtIGE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgk+PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgktCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCS0KCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIGRvTWF0aCh1aW50NjQsdWludDY0LHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9kb01hdGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIG9wZXJhdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBkb01hdGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkb01hdGgoYTogdWludDY0LCBiOiB1aW50NjQsIG9wZXJhdGlvbjogc3RyaW5nKTogdWludDY0Ci8vCi8vIEEgbWV0aG9kIHRoYXQgdGFrZXMgdHdvIG51bWJlcnMgYW5kIGRvZXMgZWl0aGVyIGFkZGl0aW9uIG9yIHN1YnRyYWN0aW9uCi8vCi8vIEBwYXJhbSBhIFRoZSBmaXJzdCBudW1iZXIKLy8gQHBhcmFtIGIgVGhlIHNlY29uZCBudW1iZXIKLy8gQHBhcmFtIG9wZXJhdGlvbiBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0uIENhbiBiZSBlaXRoZXIgJ3N1bScgb3IgJ2RpZmZlcmVuY2UnCi8vCi8vIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbgpkb01hdGg6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czozOQoJLy8gb3BlcmF0aW9uID09PSAnc3VtJwoJZnJhbWVfZGlnIC0zIC8vIG9wZXJhdGlvbjogc3RyaW5nCglieXRlIDB4NzM3NTZkIC8vICJzdW0iCgk9PQoJYnogKmlmMF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDAKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0U3VtKGEsIGIpCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIGdldFN1bQoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogdWludDY0CgliICppZjBfZW5kCgoqaWYwX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDEKCS8vIG9wZXJhdGlvbiA9PT0gJ2RpZmZlcmVuY2UnCglmcmFtZV9kaWcgLTMgLy8gb3BlcmF0aW9uOiBzdHJpbmcKCWJ5dGUgMHg2NDY5NjY2NjY1NzI2NTZlNjM2NSAvLyAiZGlmZmVyZW5jZSIKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDIKCS8vIHJlc3VsdCA9IHRoaXMuZ2V0RGlmZmVyZW5jZShhLCBiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBnZXREaWZmZXJlbmNlCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiB1aW50NjQKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIEludmFsaWQgb3BlcmF0aW9uCgllcnIKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6NDUKCS8vIHJldHVybiByZXN1bHQ7CglmcmFtZV9kaWcgMCAvLyByZXN1bHQ6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZG9NYXRoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZ2V0U3VtKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Ci8vCi8vIENhbGN1bGF0ZXMgdGhlIHN1bSBvZiB0d28gbnVtYmVycwovLwovLyBAcGFyYW0gYQovLyBAcGFyYW0gYgovLyBAcmV0dXJucyBUaGUgc3VtIG9mIGEgYW5kIGIKZ2V0U3VtOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6MTMKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCXJldHN1YgoKLy8gZ2V0RGlmZmVyZW5jZShhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIG51bWJlcnMKLy8KLy8gQHBhcmFtIGEKLy8gQHBhcmFtIGIKLy8gQHJldHVybnMgVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIGFuZCBiLgpnZXREaWZmZXJlbmNlOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvY2FsY3VsYXRvci9jYWxjdWxhdG9yLmFsZ28udHM6MjQKCS8vIHJldHVybiBhID49IGIgPyBhIC0gYiA6IGIgLSBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJPj0KCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLQoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgktCgoqdGVybmFyeTBfZW5kOgoJcmV0c3ViCgovLyBkb01hdGgodWludDY0LHVpbnQ2NCxzdHJpbmcpdWludDY0CiphYmlfcm91dGVfZG9NYXRoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIG9wZXJhdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBkb01hdGgKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZG9NYXRoKGE6IHVpbnQ2NCwgYjogdWludDY0LCBvcGVyYXRpb246IHN0cmluZyk6IHVpbnQ2NAovLwovLyBBIG1ldGhvZCB0aGF0IHRha2VzIHR3byBudW1iZXJzIGFuZCBkb2VzIGVpdGhlciBhZGRpdGlvbiBvciBzdWJ0cmFjdGlvbgovLwovLyBAcGFyYW0gYSBUaGUgZmlyc3QgbnVtYmVyCi8vIEBwYXJhbSBiIFRoZSBzZWNvbmQgbnVtYmVyCi8vIEBwYXJhbSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiB0byBwZXJmb3JtLiBDYW4gYmUgZWl0aGVyICdzdW0nIG9yICdkaWZmZXJlbmNlJwovLwovLyBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24KZG9NYXRoOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czozOQoJLy8gb3BlcmF0aW9uID09PSAnc3VtJwoJZnJhbWVfZGlnIC0zIC8vIG9wZXJhdGlvbjogc3RyaW5nCglwdXNoYnl0ZXMgMHg3Mzc1NmQgLy8gInN1bSIKCT09CglieiAqaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czo0MAoJLy8gcmVzdWx0ID0gdGhpcy5nZXRTdW0oYSwgYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWNhbGxzdWIgZ2V0U3VtCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiB1aW50NjQKCWIgKmlmMF9lbmQKCippZjBfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9jYWxjdWxhdG9yL2NhbGN1bGF0b3IuYWxnby50czo0MQoJLy8gb3BlcmF0aW9uID09PSAnZGlmZmVyZW5jZScKCWZyYW1lX2RpZyAtMyAvLyBvcGVyYXRpb246IHN0cmluZwoJcHVzaGJ5dGVzIDB4NjQ2OTY2NjY2NTcyNjU2ZTYzNjUgLy8gImRpZmZlcmVuY2UiCgk9PQoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQyCgkvLyByZXN1bHQgPSB0aGlzLmdldERpZmZlcmVuY2UoYSwgYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWNhbGxzdWIgZ2V0RGlmZmVyZW5jZQoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogdWludDY0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBJbnZhbGlkIG9wZXJhdGlvbgoJZXJyCgoqaWYwX2VuZDoKCS8vIGV4YW1wbGVzL2NhbGN1bGF0b3IvY2FsY3VsYXRvci5hbGdvLnRzOjQ1CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NzZhN2VmMzMgLy8gbWV0aG9kICJkb01hdGgodWludDY0LHVpbnQ2NCxzdHJpbmcpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kb01hdGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAI8AAAAAAAAAAAAAAIEAAAAAAAAAAAAAAIoCAYv/i/4IiYoCAYv/i/4PQQAIi/+L/glCAAWL/ov/CYmABBUffHU2GgNXAgA2GgIXNhoBF4gABRZQsCJDigMBgACL/YADc3VtEkEADIv+i/+I/6uMAEIAH4v9gApkaWZmZXJlbmNlEkEADIv+i/+I/5aMAEIAAQCLAIwAiSJDgAS4RHs2NhoAjgH/8QCABHan7zM2GgCOAf+HAA==", + "approval": "CjEYFIEGCzEZCI0MAJEAAAAAAAAAAAAAAIMAAAAAAAAAAAAAAIoCAYv/i/4IiYoCAYv/i/4PQQAIi/+L/glCAAWL/ov/CYmABBUffHU2GgNXAgA2GgIXNhoBF4gABhZQsIEBQ4oDAYAAi/2AA3N1bRJBAAyL/ov/iP+qjABCAB+L/YAKZGlmZmVyZW5jZRJBAAyL/ov/iP+VjABCAAEAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEdqfvMzYaAI4B/4UA", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/calculator/artifacts/Calculator.src_map.json b/examples/calculator/artifacts/Calculator.src_map.json index 4cbdabfea..35861297a 100644 --- a/examples/calculator/artifacts/Calculator.src_map.json +++ b/examples/calculator/artifacts/Calculator.src_map.json @@ -1,63 +1,63 @@ [ { "teal": 1, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 0, - 1, - 2, - 3 + 0 ] }, { "teal": 13, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 4, - 5 + 1, + 2 ] }, { "teal": 14, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 6 + 3 ] }, { "teal": 15, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 7, - 8 + 4, + 5 ] }, { "teal": 16, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 9 + 6 ] }, { "teal": 17, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 10, - 11 + 7, + 8 ] }, { "teal": 18, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 12 + 9 ] }, { "teal": 19, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 10, + 11, + 12, 13, 14, 15, @@ -80,177 +80,183 @@ 32, 33, 34, - 35, - 36, - 37, - 38 + 35 ] }, { "teal": 23, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 39 + 36 ] }, { "teal": 33, - "source": 12, + "source": "examples/calculator/calculator.algo.ts:12", "pc": [ - 40, - 41, - 42 + 37, + 38, + 39 ] }, { "teal": 37, - "source": 13, + "source": "examples/calculator/calculator.algo.ts:13", "pc": [ - 43, - 44 + 40, + 41 ] }, { "teal": 38, - "source": 13, + "source": "examples/calculator/calculator.algo.ts:13", "pc": [ - 45, - 46 + 42, + 43 ] }, { "teal": 39, - "source": 13, + "source": "examples/calculator/calculator.algo.ts:13", "pc": [ - 47 + 44 ] }, { "teal": 40, - "source": 12, + "source": "examples/calculator/calculator.algo.ts:12", "pc": [ - 48 + 45 ] }, { "teal": 50, - "source": 23, + "source": "examples/calculator/calculator.algo.ts:23", "pc": [ - 49, - 50, - 51 + 46, + 47, + 48 ] }, { "teal": 54, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 52, - 53 + 49, + 50 ] }, { "teal": 55, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 54, - 55 + 51, + 52 ] }, { "teal": 56, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 56 + 53 ] }, { "teal": 57, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 57, - 58, - 59 + 54, + 55, + 56 ] }, { "teal": 58, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 60, - 61 + 57, + 58 ] }, { "teal": 59, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 62, - 63 + 59, + 60 ] }, { "teal": 60, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 64 + 61 ] }, { "teal": 61, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 65, - 66, - 67 + 62, + 63, + 64 ] }, { "teal": 64, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 68, - 69 + 65, + 66 ] }, { "teal": 65, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 70, - 71 + 67, + 68 ] }, { "teal": 66, - "source": 24, + "source": "examples/calculator/calculator.algo.ts:24", "pc": [ - 72 + 69 ] }, { "teal": 69, - "source": 23, + "source": "examples/calculator/calculator.algo.ts:23", "pc": [ - 73 + 70 ] }, { "teal": 74, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ + 71, + 72, + 73, 74, 75, - 76, + 76 + ] + }, + { + "teal": 77, + "source": "examples/calculator/calculator.algo.ts:36", + "pc": [ 77, 78, 79 ] }, { - "teal": 77, - "source": 36, + "teal": 78, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ 80, 81, @@ -258,196 +264,190 @@ ] }, { - "teal": 78, - "source": 36, + "teal": 81, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ 83, 84, 85 ] }, - { - "teal": 81, - "source": 36, - "pc": [ - 86, - 87, - 88 - ] - }, { "teal": 82, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 89 + 86 ] }, { "teal": 85, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 90, - 91, - 92 + 87, + 88, + 89 ] }, { "teal": 86, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 93 + 90 ] }, { "teal": 89, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 94, - 95, - 96 + 91, + 92, + 93 ] }, { "teal": 90, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 97 + 94 ] }, { "teal": 91, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 98 + 95 ] }, { "teal": 92, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 99 + 96 ] }, { "teal": 93, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 100 + 97, + 98 ] }, { "teal": 94, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 101 + 99 ] }, { "teal": 106, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 102, - 103, - 104 + 100, + 101, + 102 ] }, { "teal": 109, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 105, - 106 + 103, + 104 ] }, { "teal": 114, - "source": 39, + "source": "examples/calculator/calculator.algo.ts:39", "pc": [ - 107, - 108 + 105, + 106 ] }, { "teal": 115, - "source": 39, + "source": "examples/calculator/calculator.algo.ts:39", "pc": [ + 107, + 108, 109, 110, - 111, - 112, - 113 + 111 ] }, { "teal": 116, - "source": 39, + "source": "examples/calculator/calculator.algo.ts:39", "pc": [ - 114 + 112 ] }, { "teal": 117, - "source": 39, + "source": "examples/calculator/calculator.algo.ts:39", "pc": [ - 115, - 116, - 117 + 113, + 114, + 115 ] }, { "teal": 122, - "source": 40, + "source": "examples/calculator/calculator.algo.ts:40", "pc": [ - 118, - 119 + 116, + 117 ] }, { "teal": 123, - "source": 40, + "source": "examples/calculator/calculator.algo.ts:40", "pc": [ - 120, - 121 + 118, + 119 ] }, { "teal": 124, - "source": 40, + "source": "examples/calculator/calculator.algo.ts:40", "pc": [ - 122, - 123, - 124 + 120, + 121, + 122 ] }, { "teal": 125, - "source": 40, + "source": "examples/calculator/calculator.algo.ts:40", "pc": [ - 125, - 126 + 123, + 124 ] }, { "teal": 126, - "source": 39, + "source": "examples/calculator/calculator.algo.ts:39", "pc": [ - 127, - 128, - 129 + 125, + 126, + 127 ] }, { "teal": 131, - "source": 41, + "source": "examples/calculator/calculator.algo.ts:41", "pc": [ - 130, - 131 + 128, + 129 ] }, { "teal": 132, - "source": 41, + "source": "examples/calculator/calculator.algo.ts:41", "pc": [ + 130, + 131, 132, 133, 134, @@ -457,190 +457,189 @@ 138, 139, 140, - 141, - 142, - 143 + 141 ] }, { "teal": 133, - "source": 41, + "source": "examples/calculator/calculator.algo.ts:41", "pc": [ - 144 + 142 ] }, { "teal": 134, - "source": 41, + "source": "examples/calculator/calculator.algo.ts:41", "pc": [ - 145, - 146, - 147 + 143, + 144, + 145 ] }, { "teal": 139, - "source": 42, + "source": "examples/calculator/calculator.algo.ts:42", "pc": [ - 148, - 149 + 146, + 147 ] }, { "teal": 140, - "source": 42, + "source": "examples/calculator/calculator.algo.ts:42", "pc": [ - 150, - 151 + 148, + 149 ] }, { "teal": 141, - "source": 42, + "source": "examples/calculator/calculator.algo.ts:42", "pc": [ - 152, - 153, - 154 + 150, + 151, + 152 ] }, { "teal": 142, - "source": 42, + "source": "examples/calculator/calculator.algo.ts:42", "pc": [ - 155, - 156 + 153, + 154 ] }, { "teal": 143, - "source": 41, + "source": "examples/calculator/calculator.algo.ts:41", "pc": [ - 157, - 158, - 159 + 155, + 156, + 157 ] }, { "teal": 147, - "source": 43, + "source": "examples/calculator/calculator.algo.ts:43", "errorMessage": "Invalid operation", "pc": [ - 160 + 158 ] }, { "teal": 152, - "source": 45, + "source": "examples/calculator/calculator.algo.ts:45", "pc": [ - 161, - 162 + 159, + 160 ] }, { "teal": 155, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 163, - 164 + 161, + 162 ] }, { "teal": 156, - "source": 36, + "source": "examples/calculator/calculator.algo.ts:36", "pc": [ - 165 + 163 ] }, { "teal": 159, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 166 + 164, + 165 ] }, { "teal": 160, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ - 167 + 166 ] }, { "teal": 163, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 167, 168, 169, 170, 171, - 172, - 173 + 172 ] }, { "teal": 164, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 173, 174, - 175, - 176 + 175 ] }, { "teal": 165, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 176, 177, 178, - 179, - 180 + 179 ] }, { "teal": 168, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 181 + 180 ] }, { "teal": 171, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 181, 182, 183, 184, 185, - 186, - 187 + 186 ] }, { "teal": 172, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 187, 188, - 189, - 190 + 189 ] }, { "teal": 173, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "pc": [ + 190, 191, 192, - 193, - 194 + 193 ] }, { "teal": 176, - "source": 4, + "source": "examples/calculator/calculator.algo.ts:4", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 195 + 194 ] } ] \ No newline at end of file diff --git a/examples/itxns/artifacts/FactoryCaller.approval.teal b/examples/itxns/artifacts/FactoryCaller.approval.teal index d2fa8ef9d..f1efdf273 100644 --- a/examples/itxns/artifacts/FactoryCaller.approval.teal +++ b/examples/itxns/artifacts/FactoryCaller.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0xb8447b36 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // mintAndGetAsset()uint64 *abi_route_mintAndGetAsset: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute mintAndGetAsset()uint64 callsub mintAndGetAsset itob concat log - int 1 + pushint 1 return // mintAndGetAsset(): AssetID @@ -49,23 +50,23 @@ mintAndGetAsset: // approvalProgram: NFTFactory.approvalProgram(), // }) itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - method "createApplication()void" + byte 0xb8447b36 // method "createApplication()void" itxn_field ApplicationArgs // examples/itxns/itxns.algo.ts:26 // clearStateProgram: NFTFactory.clearProgram() - byte b64 Cg== + pushbytes 0x0a itxn_field ClearStateProgram // examples/itxns/itxns.algo.ts:27 // approvalProgram: NFTFactory.approvalProgram() - byte b64 CiACAQAxGBSBBgsxGQiNDABvAAAAAAAAAAAAAABhAAAAAAAAAAAAAACABBUffHU2GgJXAgA2GgFXAgCIAAUWULAiQ4oCAbGBA7IQi/+yJov+siUisiIjsgGztDyJNhoCSRWBIBJENhoBF4gAAiJDigIAsYEEshCL/rIUIrISi/+yESOyAbOJIkOABLhEezY2GgCOAf/xAIAE0gJMc4AEx+JgrzYaAI4C/33/sQA= + pushbytes 0x0a31181481060b3119088d0c007600000000000000000000006800000000000000000000008004151f7c75361a02570200361a015702008800061650b08101438a0201b18103b2108bffb2268bfeb2258101b2228100b201b3b43c89361a02491581201244361a01178800038101438a0200b18104b2108bfeb2148101b2128bffb2118100b201b3898101438004b8447b36361a008e01fff0008004d2024c738004c7e260af361a008e02ff76ffad00 itxn_field ApprovalProgram // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -82,12 +83,12 @@ mintAndGetAsset: // receiver: factoryApp.address, // }) itxn_begin - int pay + pushint 1 // pay itxn_field TypeEnum // examples/itxns/itxns.algo.ts:33 // amount: 200_000 - int 200_000 + pushint 200_000 itxn_field Amount // examples/itxns/itxns.algo.ts:34 @@ -98,7 +99,7 @@ mintAndGetAsset: itxn_field Receiver // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -110,9 +111,9 @@ mintAndGetAsset: // methodArgs: ['My NFT', 'MNFT'], // }) itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - method "createNFT(string,string)uint64" + pushbytes 0xd2024c73 // method "createNFT(string,string)uint64" itxn_field ApplicationArgs // examples/itxns/itxns.algo.ts:38 @@ -122,19 +123,19 @@ mintAndGetAsset: // examples/itxns/itxns.algo.ts:39 // methodArgs: ['My NFT', 'MNFT'] - byte 0x00064d79204e4654 + pushbytes 0x00064d79204e4654 itxn_field ApplicationArgs - byte 0x00044d4e4654 + pushbytes 0x00044d4e4654 itxn_field ApplicationArgs // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction itxn_submit itxn NumLogs - int 1 + pushint 1 - itxnas Logs extract 4 0 @@ -148,7 +149,7 @@ mintAndGetAsset: // xferAsset: createdAsset, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/itxns/itxns.algo.ts:43 @@ -158,7 +159,7 @@ mintAndGetAsset: // examples/itxns/itxns.algo.ts:44 // assetAmount: 0 - int 0 + pushint 0 itxn_field AssetAmount // examples/itxns/itxns.algo.ts:45 @@ -167,7 +168,7 @@ mintAndGetAsset: itxn_field XferAsset // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -179,9 +180,9 @@ mintAndGetAsset: // methodArgs: [createdAsset, this.app.address], // }) itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - method "transferNFT(uint64,address)void" + pushbytes 0xc7e260af // method "transferNFT(uint64,address)void" itxn_field ApplicationArgs // examples/itxns/itxns.algo.ts:49 @@ -198,7 +199,7 @@ mintAndGetAsset: itxn_field ApplicationArgs // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -216,11 +217,11 @@ mintAndGetAsset: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + byte 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -228,7 +229,7 @@ mintAndGetAsset: err *call_NoOp: - method "mintAndGetAsset()uint64" + pushbytes 0x45ded8e0 // method "mintAndGetAsset()uint64" txna ApplicationArgs 0 match *abi_route_mintAndGetAsset diff --git a/examples/itxns/artifacts/FactoryCaller.arc32.json b/examples/itxns/artifacts/FactoryCaller.arc32.json index 6dd9a16dc..ef0e43471 100644 --- a/examples/itxns/artifacts/FactoryCaller.arc32.json +++ b/examples/itxns/artifacts/FactoryCaller.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAoqYWJpX3JvdXRlX21pbnRBbmRHZXRBc3NldDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAoJY2FsbHN1YiBtaW50QW5kR2V0QXNzZXQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtaW50QW5kR2V0QXNzZXQoKTogQXNzZXRJRAptaW50QW5kR2V0QXNzZXQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoyNQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GVEZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZUFwcGxpY2F0aW9uPih7CgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogTkZURmFjdG9yeS5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogTkZURmFjdG9yeS5hcHByb3ZhbFByb2dyYW0oKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoyNwoJLy8gYXBwcm92YWxQcm9ncmFtOiBORlRGYWN0b3J5LmFwcHJvdmFsUHJvZ3JhbSgpCglieXRlIGI2NCBDaUFDQVFBeEdCU0JCZ3N4R1FpTkRBQnZBQUFBQUFBQUFBQUFBQUJoQUFBQUFBQUFBQUFBQUFDQUJCVWZmSFUyR2dKWEFnQTJHZ0ZYQWdDSUFBVVdVTEFpUTRvQ0FiR0JBN0lRaS8reUpvditzaVVpc2lJanNnR3p0RHlKTmhvQ1NSV0JJQkpFTmhvQkY0Z0FBaUpEaWdJQXNZRUVzaENML3JJVUlySVNpLyt5RVNPeUFiT0pJa09BQkxoRWV6WTJHZ0NPQWYveEFJQUUwZ0pNYzRBRXgrSmdyellhQUk0Qy8zMy9zUUE9CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjMwCgkvLyBmYWN0b3J5QXBwID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklECglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDAgLy8gZmFjdG9yeUFwcDogdWludDY0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiAyMDBfMDAwLAoJLy8gICAgICAgcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzMKCS8vIGFtb3VudDogMjAwXzAwMAoJaW50IDIwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNAoJLy8gcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNwoJLy8gY3JlYXRlZEFzc2V0ID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GVEZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZU5GVD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcCwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFsnTXkgTkZUJywgJ01ORlQnXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM4CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzkKCS8vIG1ldGhvZEFyZ3M6IFsnTXkgTkZUJywgJ01ORlQnXQoJYnl0ZSAweDAwMDY0ZDc5MjA0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwNDRkNGU0NjU0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIGNyZWF0ZWRBc3NldDogdWludDY0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0MgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0QW1vdW50OiAwLAoJLy8gICAgICAgeGZlckFzc2V0OiBjcmVhdGVkQXNzZXQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDMKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ0CgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ1CgkvLyB4ZmVyQXNzZXQ6IGNyZWF0ZWRBc3NldAoJZnJhbWVfZGlnIDEgLy8gY3JlYXRlZEFzc2V0OiB1aW50NjQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDgKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS50cmFuc2Zlck5GVD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcCwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJ0cmFuc2Zlck5GVCh1aW50NjQsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NTAKCS8vIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdCglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjUzCgkvLyByZXR1cm4gY3JlYXRlZEFzc2V0OwoJZnJhbWVfZGlnIDEgLy8gY3JlYXRlZEFzc2V0OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWludEFuZEdldEFzc2V0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHhiODQ0N2IzNiAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIG1pbnRBbmRHZXRBc3NldCgpdWludDY0CiphYmlfcm91dGVfbWludEFuZEdldEFzc2V0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWludEFuZEdldEFzc2V0KCl1aW50NjQKCWNhbGxzdWIgbWludEFuZEdldEFzc2V0CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG1pbnRBbmRHZXRBc3NldCgpOiBBc3NldElECm1pbnRBbmRHZXRBc3NldDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjI1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZURmFjdG9yeS5wcm90b3R5cGUuY3JlYXRlQXBwbGljYXRpb24+KHsKCS8vICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiBORlRGYWN0b3J5LmFwcHJvdmFsUHJvZ3JhbSgpLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpCglwdXNoYnl0ZXMgMHgwYQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogTkZURmFjdG9yeS5hcHByb3ZhbFByb2dyYW0oKQoJcHVzaGJ5dGVzIDB4MGEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDA3NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA0MTUxZjdjNzUzNjFhMDI1NzAyMDAzNjFhMDE1NzAyMDA4ODAwMDYxNjUwYjA4MTAxNDM4YTAyMDFiMTgxMDNiMjEwOGJmZmIyMjY4YmZlYjIyNTgxMDFiMjIyODEwMGIyMDFiM2I0M2M4OTM2MWEwMjQ5MTU4MTIwMTI0NDM2MWEwMTE3ODgwMDAzODEwMTQzOGEwMjAwYjE4MTA0YjIxMDhiZmViMjE0ODEwMWIyMTI4YmZmYjIxMTgxMDBiMjAxYjM4OTgxMDE0MzgwMDRiODQ0N2IzNjM2MWEwMDhlMDFmZmYwMDA4MDA0ZDIwMjRjNzM4MDA0YzdlMjYwYWYzNjFhMDA4ZTAyZmY3NmZmYWQwMAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglwdXNoaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzAKCS8vIGZhY3RvcnlBcHAgPSB0aGlzLml0eG4uY3JlYXRlZEFwcGxpY2F0aW9uSUQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWZyYW1lX2J1cnkgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjMyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IDIwMF8wMDAsCgkvLyAgICAgICByZWNlaXZlcjogZmFjdG9yeUFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMwoJLy8gYW1vdW50OiAyMDBfMDAwCglwdXNoaW50IDIwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNAoJLy8gcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglwdXNoaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzcKCS8vIGNyZWF0ZWRBc3NldCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS5jcmVhdGVORlQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IGZhY3RvcnlBcHAsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbJ015IE5GVCcsICdNTkZUJ10sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhkMjAyNGM3MyAvLyBtZXRob2QgImNyZWF0ZU5GVChzdHJpbmcsc3RyaW5nKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozOAoJLy8gYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM5CgkvLyBtZXRob2RBcmdzOiBbJ015IE5GVCcsICdNTkZUJ10KCXB1c2hieXRlcyAweDAwMDY0ZDc5MjA0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglwdXNoYnl0ZXMgMHgwMDA0NGQ0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJcHVzaGludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDIKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICAgIHhmZXJBc3NldDogY3JlYXRlZEFzc2V0LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDQgLy8gYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQzCgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0NAoJLy8gYXNzZXRBbW91bnQ6IDAKCXB1c2hpbnQgMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDUKCS8vIHhmZXJBc3NldDogY3JlYXRlZEFzc2V0CglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglwdXNoaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDgKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS50cmFuc2Zlck5GVD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcCwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4YzdlMjYwYWYgLy8gbWV0aG9kICJ0cmFuc2Zlck5GVCh1aW50NjQsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NTAKCS8vIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdCglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCXB1c2hpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo1MwoJLy8gcmV0dXJuIGNyZWF0ZWRBc3NldDsKCWZyYW1lX2RpZyAxIC8vIGNyZWF0ZWRBc3NldDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCWJ5dGUgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NDVkZWQ4ZTAgLy8gbWV0aG9kICJtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWludEFuZEdldEFzc2V0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/itxns/artifacts/FactoryCaller.arc56_draft.json b/examples/itxns/artifacts/FactoryCaller.arc56_draft.json index 643d545f9..e48b40457 100644 --- a/examples/itxns/artifacts/FactoryCaller.arc56_draft.json +++ b/examples/itxns/artifacts/FactoryCaller.arc56_draft.json @@ -61,1083 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 23, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 23, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 14, - "source": 23, - "pc": [ - 15 - ] - }, - { - "teal": 15, - "source": 23, - "pc": [ - 16 - ] - }, - { - "teal": 16, - "source": 23, - "pc": [ - 17 - ] - }, - { - "teal": 17, - "source": 23, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 18, - "source": 23, - "pc": [ - 20 - ] - }, - { - "teal": 19, - "source": 23, - "pc": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 23, - "source": 23, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 47 - ] - }, - { - "teal": 28, - "source": 24, - "pc": [ - 48, - 49, - 50, - 51, - 52, - 53 - ] - }, - { - "teal": 31, - "source": 24, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 32, - "source": 24, - "pc": [ - 57 - ] - }, - { - "teal": 33, - "source": 24, - "pc": [ - 58 - ] - }, - { - "teal": 34, - "source": 24, - "pc": [ - 59 - ] - }, - { - "teal": 35, - "source": 24, - "pc": [ - 60 - ] - }, - { - "teal": 36, - "source": 24, - "pc": [ - 61 - ] - }, - { - "teal": 40, - "source": 24, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 43, - "source": 24, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 44, - "source": 24, - "pc": [ - 67 - ] - }, - { - "teal": 51, - "source": 25, - "pc": [ - 68 - ] - }, - { - "teal": 52, - "source": 25, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 25, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 54, - "source": 25, - "pc": [ - 72 - ] - }, - { - "teal": 55, - "source": 25, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 59, - "source": 26, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 60, - "source": 26, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 64, - "source": 27, - "pc": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255 - ] - }, - { - "teal": 65, - "source": 27, - "pc": [ - 256, - 257 - ] - }, - { - "teal": 68, - "source": 25, - "pc": [ - 258 - ] - }, - { - "teal": 69, - "source": 25, - "pc": [ - 259, - 260 - ] - }, - { - "teal": 72, - "source": 25, - "pc": [ - 261 - ] - }, - { - "teal": 76, - "source": 30, - "pc": [ - 262, - 263 - ] - }, - { - "teal": 77, - "source": 30, - "pc": [ - 264, - 265 - ] - }, - { - "teal": 84, - "source": 32, - "pc": [ - 266 - ] - }, - { - "teal": 85, - "source": 32, - "pc": [ - 267 - ] - }, - { - "teal": 86, - "source": 32, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 90, - "source": 33, - "pc": [ - 270, - 271, - 272, - 273 - ] - }, - { - "teal": 91, - "source": 33, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 95, - "source": 34, - "pc": [ - 276, - 277 - ] - }, - { - "teal": 96, - "source": 34, - "pc": [ - 278, - 279 - ] - }, - { - "teal": 97, - "source": 34, - "pc": [ - 280 - ] - }, - { - "teal": 98, - "source": 34, - "pc": [ - 281, - 282 - ] - }, - { - "teal": 101, - "source": 32, - "pc": [ - 283 - ] - }, - { - "teal": 102, - "source": 32, - "pc": [ - 284, - 285 - ] - }, - { - "teal": 105, - "source": 32, - "pc": [ - 286 - ] - }, - { - "teal": 112, - "source": 37, - "pc": [ - 287 - ] - }, - { - "teal": 113, - "source": 37, - "pc": [ - 288 - ] - }, - { - "teal": 114, - "source": 37, - "pc": [ - 289, - 290 - ] - }, - { - "teal": 115, - "source": 37, - "pc": [ - 291, - 292, - 293, - 294, - 295, - 296 - ] - }, - { - "teal": 116, - "source": 37, - "pc": [ - 297, - 298 - ] - }, - { - "teal": 120, - "source": 38, - "pc": [ - 299, - 300 - ] - }, - { - "teal": 121, - "source": 38, - "pc": [ - 301, - 302 - ] - }, - { - "teal": 125, - "source": 39, - "pc": [ - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312 - ] - }, - { - "teal": 126, - "source": 39, - "pc": [ - 313, - 314 - ] - }, - { - "teal": 127, - "source": 39, - "pc": [ - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322 - ] - }, - { - "teal": 128, - "source": 39, - "pc": [ - 323, - 324 - ] - }, - { - "teal": 131, - "source": 37, - "pc": [ - 325 - ] - }, - { - "teal": 132, - "source": 37, - "pc": [ - 326, - 327 - ] - }, - { - "teal": 135, - "source": 37, - "pc": [ - 328 - ] - }, - { - "teal": 136, - "source": 37, - "pc": [ - 329, - 330 - ] - }, - { - "teal": 137, - "source": 37, - "pc": [ - 331 - ] - }, - { - "teal": 138, - "source": 37, - "pc": [ - 332 - ] - }, - { - "teal": 139, - "source": 37, - "pc": [ - 333, - 334 - ] - }, - { - "teal": 140, - "source": 37, - "pc": [ - 335, - 336, - 337 - ] - }, - { - "teal": 141, - "source": 37, - "pc": [ - 338 - ] - }, - { - "teal": 142, - "source": 37, - "pc": [ - 339, - 340 - ] - }, - { - "teal": 150, - "source": 42, - "pc": [ - 341 - ] - }, - { - "teal": 151, - "source": 42, - "pc": [ - 342, - 343 - ] - }, - { - "teal": 152, - "source": 42, - "pc": [ - 344, - 345 - ] - }, - { - "teal": 156, - "source": 43, - "pc": [ - 346, - 347 - ] - }, - { - "teal": 157, - "source": 43, - "pc": [ - 348, - 349 - ] - }, - { - "teal": 161, - "source": 44, - "pc": [ - 350 - ] - }, - { - "teal": 162, - "source": 44, - "pc": [ - 351, - 352 - ] - }, - { - "teal": 166, - "source": 45, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 167, - "source": 45, - "pc": [ - 355, - 356 - ] - }, - { - "teal": 170, - "source": 42, - "pc": [ - 357 - ] - }, - { - "teal": 171, - "source": 42, - "pc": [ - 358, - 359 - ] - }, - { - "teal": 174, - "source": 42, - "pc": [ - 360 - ] - }, - { - "teal": 181, - "source": 48, - "pc": [ - 361 - ] - }, - { - "teal": 182, - "source": 48, - "pc": [ - 362 - ] - }, - { - "teal": 183, - "source": 48, - "pc": [ - 363, - 364 - ] - }, - { - "teal": 184, - "source": 48, - "pc": [ - 365, - 366, - 367, - 368, - 369, - 370 - ] - }, - { - "teal": 185, - "source": 48, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 189, - "source": 49, - "pc": [ - 373, - 374 - ] - }, - { - "teal": 190, - "source": 49, - "pc": [ - 375, - 376 - ] - }, - { - "teal": 194, - "source": 50, - "pc": [ - 377, - 378 - ] - }, - { - "teal": 195, - "source": 50, - "pc": [ - 379 - ] - }, - { - "teal": 196, - "source": 50, - "pc": [ - 380, - 381 - ] - }, - { - "teal": 197, - "source": 50, - "pc": [ - 382, - 383 - ] - }, - { - "teal": 198, - "source": 50, - "pc": [ - 384, - 385 - ] - }, - { - "teal": 201, - "source": 48, - "pc": [ - 386 - ] - }, - { - "teal": 202, - "source": 48, - "pc": [ - 387, - 388 - ] - }, - { - "teal": 205, - "source": 48, - "pc": [ - 389 - ] - }, - { - "teal": 209, - "source": 53, - "pc": [ - 390, - 391 - ] - }, - { - "teal": 212, - "source": 24, - "pc": [ - 392, - 393 - ] - }, - { - "teal": 215, - "source": 24, - "pc": [ - 394, - 395 - ] - }, - { - "teal": 216, - "source": 24, - "pc": [ - 396 - ] - }, - { - "teal": 219, - "source": 23, - "pc": [ - 397 - ] - }, - { - "teal": 220, - "source": 23, - "pc": [ - 398 - ] - }, - { - "teal": 223, - "source": 23, - "pc": [ - 399 - ] - }, - { - "teal": 224, - "source": 23, - "pc": [ - 400, - 401, - 402 - ] - }, - { - "teal": 225, - "source": 23, - "pc": [ - 403, - 404, - 405, - 406 - ] - }, - { - "teal": 228, - "source": 23, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 407 - ] - }, - { - "teal": 231, - "source": 23, - "pc": [ - 408, - 409, - 410, - 411, - 412, - 413 - ] - }, - { - "teal": 232, - "source": 23, - "pc": [ - 414, - 415, - 416 - ] - }, - { - "teal": 233, - "source": 23, - "pc": [ - 417, - 418, - 419, - 420 - ] - }, - { - "teal": 236, - "source": 23, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 421 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 44 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 430 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 444 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAoqYWJpX3JvdXRlX21pbnRBbmRHZXRBc3NldDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NAoJY2FsbHN1YiBtaW50QW5kR2V0QXNzZXQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtaW50QW5kR2V0QXNzZXQoKTogQXNzZXRJRAptaW50QW5kR2V0QXNzZXQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoyNQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GVEZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZUFwcGxpY2F0aW9uPih7CgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogTkZURmFjdG9yeS5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogTkZURmFjdG9yeS5hcHByb3ZhbFByb2dyYW0oKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoyNwoJLy8gYXBwcm92YWxQcm9ncmFtOiBORlRGYWN0b3J5LmFwcHJvdmFsUHJvZ3JhbSgpCglieXRlIGI2NCBDaUFDQVFBeEdCU0JCZ3N4R1FpTkRBQnZBQUFBQUFBQUFBQUFBQUJoQUFBQUFBQUFBQUFBQUFDQUJCVWZmSFUyR2dKWEFnQTJHZ0ZYQWdDSUFBVVdVTEFpUTRvQ0FiR0JBN0lRaS8reUpvditzaVVpc2lJanNnR3p0RHlKTmhvQ1NSV0JJQkpFTmhvQkY0Z0FBaUpEaWdJQXNZRUVzaENML3JJVUlySVNpLyt5RVNPeUFiT0pJa09BQkxoRWV6WTJHZ0NPQWYveEFJQUUwZ0pNYzRBRXgrSmdyellhQUk0Qy8zMy9zUUE9CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjMwCgkvLyBmYWN0b3J5QXBwID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklECglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDAgLy8gZmFjdG9yeUFwcDogdWludDY0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiAyMDBfMDAwLAoJLy8gICAgICAgcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcywKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzMKCS8vIGFtb3VudDogMjAwXzAwMAoJaW50IDIwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNAoJLy8gcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNwoJLy8gY3JlYXRlZEFzc2V0ID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIE5GVEZhY3RvcnkucHJvdG90eXBlLmNyZWF0ZU5GVD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcCwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFsnTXkgTkZUJywgJ01ORlQnXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM4CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzkKCS8vIG1ldGhvZEFyZ3M6IFsnTXkgTkZUJywgJ01ORlQnXQoJYnl0ZSAweDAwMDY0ZDc5MjA0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwNDRkNGU0NjU0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJZnJhbWVfYnVyeSAxIC8vIGNyZWF0ZWRBc3NldDogdWludDY0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0MgoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0QW1vdW50OiAwLAoJLy8gICAgICAgeGZlckFzc2V0OiBjcmVhdGVkQXNzZXQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDMKCS8vIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ0CgkvLyBhc3NldEFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ1CgkvLyB4ZmVyQXNzZXQ6IGNyZWF0ZWRBc3NldAoJZnJhbWVfZGlnIDEgLy8gY3JlYXRlZEFzc2V0OiB1aW50NjQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDgKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS50cmFuc2Zlck5GVD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcCwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJ0cmFuc2Zlck5GVCh1aW50NjQsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NTAKCS8vIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdCglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjUzCgkvLyByZXR1cm4gY3JlYXRlZEFzc2V0OwoJZnJhbWVfZGlnIDEgLy8gY3JlYXRlZEFzc2V0OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWludEFuZEdldEFzc2V0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHhiODQ0N2IzNiAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIG1pbnRBbmRHZXRBc3NldCgpdWludDY0CiphYmlfcm91dGVfbWludEFuZEdldEFzc2V0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWludEFuZEdldEFzc2V0KCl1aW50NjQKCWNhbGxzdWIgbWludEFuZEdldEFzc2V0CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG1pbnRBbmRHZXRBc3NldCgpOiBBc3NldElECm1pbnRBbmRHZXRBc3NldDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjI1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgTkZURmFjdG9yeS5wcm90b3R5cGUuY3JlYXRlQXBwbGljYXRpb24+KHsKCS8vICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiBORlRGYWN0b3J5LmFwcHJvdmFsUHJvZ3JhbSgpLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBORlRGYWN0b3J5LmNsZWFyUHJvZ3JhbSgpCglwdXNoYnl0ZXMgMHgwYQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MjcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogTkZURmFjdG9yeS5hcHByb3ZhbFByb2dyYW0oKQoJcHVzaGJ5dGVzIDB4MGEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDA3NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA0MTUxZjdjNzUzNjFhMDI1NzAyMDAzNjFhMDE1NzAyMDA4ODAwMDYxNjUwYjA4MTAxNDM4YTAyMDFiMTgxMDNiMjEwOGJmZmIyMjY4YmZlYjIyNTgxMDFiMjIyODEwMGIyMDFiM2I0M2M4OTM2MWEwMjQ5MTU4MTIwMTI0NDM2MWEwMTE3ODgwMDAzODEwMTQzOGEwMjAwYjE4MTA0YjIxMDhiZmViMjE0ODEwMWIyMTI4YmZmYjIxMTgxMDBiMjAxYjM4OTgxMDE0MzgwMDRiODQ0N2IzNjM2MWEwMDhlMDFmZmYwMDA4MDA0ZDIwMjRjNzM4MDA0YzdlMjYwYWYzNjFhMDA4ZTAyZmY3NmZmYWQwMAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglwdXNoaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzAKCS8vIGZhY3RvcnlBcHAgPSB0aGlzLml0eG4uY3JlYXRlZEFwcGxpY2F0aW9uSUQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWZyYW1lX2J1cnkgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjMyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IDIwMF8wMDAsCgkvLyAgICAgICByZWNlaXZlcjogZmFjdG9yeUFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozMwoJLy8gYW1vdW50OiAyMDBfMDAwCglwdXNoaW50IDIwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozNAoJLy8gcmVjZWl2ZXI6IGZhY3RvcnlBcHAuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglwdXNoaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MzcKCS8vIGNyZWF0ZWRBc3NldCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS5jcmVhdGVORlQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IGZhY3RvcnlBcHAsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbJ015IE5GVCcsICdNTkZUJ10sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhkMjAyNGM3MyAvLyBtZXRob2QgImNyZWF0ZU5GVChzdHJpbmcsc3RyaW5nKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czozOAoJLy8gYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcAoJZnJhbWVfZGlnIDAgLy8gZmFjdG9yeUFwcDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjM5CgkvLyBtZXRob2RBcmdzOiBbJ015IE5GVCcsICdNTkZUJ10KCXB1c2hieXRlcyAweDAwMDY0ZDc5MjA0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglwdXNoYnl0ZXMgMHgwMDA0NGQ0ZTQ2NTQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJcHVzaGludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDIKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhc3NldEFtb3VudDogMCwKCS8vICAgICAgIHhmZXJBc3NldDogY3JlYXRlZEFzc2V0LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDQgLy8gYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQzCgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo0NAoJLy8gYXNzZXRBbW91bnQ6IDAKCXB1c2hpbnQgMAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDUKCS8vIHhmZXJBc3NldDogY3JlYXRlZEFzc2V0CglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglwdXNoaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NDgKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBORlRGYWN0b3J5LnByb3RvdHlwZS50cmFuc2Zlck5GVD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogZmFjdG9yeUFwcCwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4YzdlMjYwYWYgLy8gbWV0aG9kICJ0cmFuc2Zlck5GVCh1aW50NjQsYWRkcmVzcyl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBhcHBsaWNhdGlvbklEOiBmYWN0b3J5QXBwCglmcmFtZV9kaWcgMCAvLyBmYWN0b3J5QXBwOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NTAKCS8vIG1ldGhvZEFyZ3M6IFtjcmVhdGVkQXNzZXQsIHRoaXMuYXBwLmFkZHJlc3NdCglmcmFtZV9kaWcgMSAvLyBjcmVhdGVkQXNzZXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCXB1c2hpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo1MwoJLy8gcmV0dXJuIGNyZWF0ZWRBc3NldDsKCWZyYW1lX2RpZyAxIC8vIGNyZWF0ZWRBc3NldDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCWJ5dGUgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NDVkZWQ4ZTAgLy8gbWV0aG9kICJtaW50QW5kR2V0QXNzZXQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWludEFuZEdldEFzc2V0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAAYBJgEEuER7NjEYFCMLMRkIjQwBaQAAAAAAAAAAAAABYAAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwJEOKAAGAAEmxI7IQKLIagAEKsh+ArQEKIAIBADEYFIEGCzEZCI0MAG8AAAAAAAAAAAAAAGEAAAAAAAAAAAAAAIAEFR98dTYaAlcCADYaAVcCAIgABRZQsCJDigIBsYEDshCL/7Imi/6yJSKyIiOyAbO0PIk2GgJJFYEgEkQ2GgEXiAACIkOKAgCxgQSyEIv+shQishKL/7IRI7IBs4kiQ4AEuER7NjYaAI4B//EAgATSAkxzgATH4mCvNhoAjgL/ff+xALIeIrIBs7Q9jACxJLIQgcCaDLIIiwByCEiyByKyAbOxI7IQgATSAkxzshqLALIYgAgABk15IE5GVLIagAYABE1ORlSyGiKyAbO0OyQJxTpXBAAXjAGxgQSyEDIKshQishKLAbIRIrIBs7EjshCABMfiYK+yGosAshiLARayGjIKshoisgGziwGMAEYBiSRDKDYaAI4B//YAgARF3tjgNhoAjgH+iwA=", + "approval": "CiYCBLhEezYAMRgUgQYLMRkIjQwBgwAAAAAAAAAAAAABdQAAAAAAAAAAAAAAgAQVH3x1iAAGFlCwgQFDigABgABJsYEGshCABLhEezayGoABCrIfgLABCjEYFIEGCzEZCI0MAHYAAAAAAAAAAAAAAGgAAAAAAAAAAAAAAIAEFR98dTYaAlcCADYaAVcCAIgABhZQsIEBQ4oCAbGBA7IQi/+yJov+siWBAbIigQCyAbO0PIk2GgJJFYEgEkQ2GgEXiAADgQFDigIAsYEEshCL/rIUgQGyEov/shGBALIBs4mBAUOABLhEezY2GgCOAf/wAIAE0gJMc4AEx+JgrzYaAI4C/3b/rQCyHoEAsgGztD2MALGBAbIQgcCaDLIIiwByCEiyB4EAsgGzsYEGshCABNICTHOyGosAshiACAAGTXkgTkZUshqABgAETU5GVLIagQCyAbO0O4EBCcU6VwQAF4wBsYEEshAyCrIUgQCyEosBshGBALIBs7GBBrIQgATH4mCvshqLALIYiwEWshoyCrIagQCyAbOLAYwARgGJgQFDgAS4RHs2NhoAjgH/8ACABEXe2OA2GgCOAf5xAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/itxns/artifacts/FactoryCaller.src_map.json b/examples/itxns/artifacts/FactoryCaller.src_map.json index 6426f730f..a66af5d26 100644 --- a/examples/itxns/artifacts/FactoryCaller.src_map.json +++ b/examples/itxns/artifacts/FactoryCaller.src_map.json @@ -1,9 +1,15 @@ [ { "teal": 1, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 0, 1, 2, 3, @@ -11,61 +17,61 @@ 5, 6, 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 23, - "pc": [ - 13, - 14 + 8 ] }, { "teal": 14, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 15 + 9, + 10 ] }, { "teal": 15, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 16 + 11 ] }, { "teal": 16, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 17 + 12, + 13 ] }, { "teal": 17, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 18, - 19 + 14 ] }, { "teal": 18, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 20 + 15, + 16 ] }, { "teal": 19, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", + "pc": [ + 17 + ] + }, + { + "teal": 20, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ + 18, + 19, + 20, 21, 22, 23, @@ -88,162 +94,162 @@ 40, 41, 42, - 43, - 44, - 45, - 46 + 43 ] }, { - "teal": 23, - "source": 23, + "teal": 24, + "source": "examples/itxns/itxns.algo.ts:23", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 47 + 44 ] }, { - "teal": 28, - "source": 24, + "teal": 29, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ + 45, + 46, + 47, 48, 49, - 50, - 51, - 52, - 53 - ] - }, - { - "teal": 31, - "source": 24, - "pc": [ - 54, - 55, - 56 + 50 ] }, { "teal": 32, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 57 + 51, + 52, + 53 ] }, { "teal": 33, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 58 + 54 ] }, { "teal": 34, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 59 + 55 ] }, { "teal": 35, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 60 + 56 ] }, { "teal": 36, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 61 + 57, + 58 ] }, { - "teal": 40, - "source": 24, + "teal": 37, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 62, - 63, - 64 + 59 ] }, { - "teal": 43, - "source": 24, + "teal": 41, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 65, - 66 + 60, + 61, + 62 ] }, { "teal": 44, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 67 + 63, + 64 ] }, { - "teal": 51, - "source": 25, + "teal": 45, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 68 + 65 ] }, { "teal": 52, - "source": 25, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 69 + 66 ] }, { "teal": 53, - "source": 25, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 70, - 71 + 67, + 68 ] }, { "teal": 54, - "source": 25, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 72 + 69, + 70 ] }, { "teal": 55, - "source": 25, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ + 71, + 72, 73, - 74 + 74, + 75, + 76 ] }, { - "teal": 59, - "source": 26, + "teal": 56, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 75, - 76, - 77 + 77, + 78 ] }, { "teal": 60, - "source": 26, + "source": "examples/itxns/itxns.algo.ts:26", "pc": [ - 78, - 79 + 79, + 80, + 81 ] }, { - "teal": 64, - "source": 27, + "teal": 61, + "source": "examples/itxns/itxns.algo.ts:26", "pc": [ - 80, - 81, 82, - 83, + 83 + ] + }, + { + "teal": 65, + "source": "examples/itxns/itxns.algo.ts:27", + "pc": [ 84, 85, 86, @@ -415,234 +421,222 @@ 252, 253, 254, - 255 - ] - }, - { - "teal": 65, - "source": 27, - "pc": [ + 255, 256, - 257 + 257, + 258, + 259, + 260, + 261, + 262 ] }, { - "teal": 68, - "source": 25, + "teal": 66, + "source": "examples/itxns/itxns.algo.ts:27", "pc": [ - 258 + 263, + 264 ] }, { "teal": 69, - "source": 25, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 259, - 260 + 265, + 266 ] }, { - "teal": 72, - "source": 25, + "teal": 70, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 261 + 267, + 268 ] }, { - "teal": 76, - "source": 30, + "teal": 73, + "source": "examples/itxns/itxns.algo.ts:25", "pc": [ - 262, - 263 + 269 ] }, { "teal": 77, - "source": 30, + "source": "examples/itxns/itxns.algo.ts:30", "pc": [ - 264, - 265 + 270, + 271 ] }, { - "teal": 84, - "source": 32, + "teal": 78, + "source": "examples/itxns/itxns.algo.ts:30", "pc": [ - 266 + 272, + 273 ] }, { "teal": 85, - "source": 32, + "source": "examples/itxns/itxns.algo.ts:32", "pc": [ - 267 + 274 ] }, { "teal": 86, - "source": 32, + "source": "examples/itxns/itxns.algo.ts:32", "pc": [ - 268, - 269 + 275, + 276 ] }, { - "teal": 90, - "source": 33, + "teal": 87, + "source": "examples/itxns/itxns.algo.ts:32", "pc": [ - 270, - 271, - 272, - 273 + 277, + 278 ] }, { "teal": 91, - "source": 33, + "source": "examples/itxns/itxns.algo.ts:33", "pc": [ - 274, - 275 + 279, + 280, + 281, + 282 ] }, { - "teal": 95, - "source": 34, + "teal": 92, + "source": "examples/itxns/itxns.algo.ts:33", "pc": [ - 276, - 277 + 283, + 284 ] }, { "teal": 96, - "source": 34, + "source": "examples/itxns/itxns.algo.ts:34", "pc": [ - 278, - 279 + 285, + 286 ] }, { "teal": 97, - "source": 34, + "source": "examples/itxns/itxns.algo.ts:34", "pc": [ - 280 + 287, + 288 ] }, { "teal": 98, - "source": 34, + "source": "examples/itxns/itxns.algo.ts:34", "pc": [ - 281, - 282 + 289 ] }, { - "teal": 101, - "source": 32, + "teal": 99, + "source": "examples/itxns/itxns.algo.ts:34", "pc": [ - 283 + 290, + 291 ] }, { "teal": 102, - "source": 32, + "source": "examples/itxns/itxns.algo.ts:32", "pc": [ - 284, - 285 + 292, + 293 ] }, { - "teal": 105, - "source": 32, + "teal": 103, + "source": "examples/itxns/itxns.algo.ts:32", "pc": [ - 286 + 294, + 295 ] }, { - "teal": 112, - "source": 37, + "teal": 106, + "source": "examples/itxns/itxns.algo.ts:32", "pc": [ - 287 + 296 ] }, { "teal": 113, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 288 + 297 ] }, { "teal": 114, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 289, - 290 + 298, + 299 ] }, { "teal": 115, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 291, - 292, - 293, - 294, - 295, - 296 + 300, + 301 ] }, { "teal": 116, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 297, - 298 + 302, + 303, + 304, + 305, + 306, + 307 ] }, { - "teal": 120, - "source": 38, + "teal": 117, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 299, - 300 + 308, + 309 ] }, { "teal": 121, - "source": 38, + "source": "examples/itxns/itxns.algo.ts:38", "pc": [ - 301, - 302 - ] - }, - { - "teal": 125, - "source": 39, - "pc": [ - 303, - 304, - 305, - 306, - 307, - 308, - 309, 310, - 311, - 312 + 311 ] }, { - "teal": 126, - "source": 39, + "teal": 122, + "source": "examples/itxns/itxns.algo.ts:38", "pc": [ - 313, - 314 + 312, + 313 ] }, { - "teal": 127, - "source": 39, + "teal": 126, + "source": "examples/itxns/itxns.algo.ts:39", "pc": [ + 314, 315, 316, 317, @@ -650,420 +644,455 @@ 319, 320, 321, - 322 + 322, + 323 + ] + }, + { + "teal": 127, + "source": "examples/itxns/itxns.algo.ts:39", + "pc": [ + 324, + 325 ] }, { "teal": 128, - "source": 39, + "source": "examples/itxns/itxns.algo.ts:39", "pc": [ - 323, - 324 + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333 ] }, { - "teal": 131, - "source": 37, + "teal": 129, + "source": "examples/itxns/itxns.algo.ts:39", "pc": [ - 325 + 334, + 335 ] }, { "teal": 132, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 326, - 327 + 336, + 337 ] }, { - "teal": 135, - "source": 37, + "teal": 133, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 328 + 338, + 339 ] }, { "teal": 136, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 329, - 330 + 340 ] }, { "teal": 137, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 331 + 341, + 342 ] }, { "teal": 138, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 332 + 343, + 344 ] }, { "teal": 139, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 333, - 334 + 345 ] }, { "teal": 140, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 335, - 336, - 337 + 346, + 347 ] }, { "teal": 141, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 338 + 348, + 349, + 350 ] }, { "teal": 142, - "source": 37, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 339, - 340 + 351 ] }, { - "teal": 150, - "source": 42, + "teal": 143, + "source": "examples/itxns/itxns.algo.ts:37", "pc": [ - 341 + 352, + 353 ] }, { "teal": 151, - "source": 42, + "source": "examples/itxns/itxns.algo.ts:42", "pc": [ - 342, - 343 + 354 ] }, { "teal": 152, - "source": 42, + "source": "examples/itxns/itxns.algo.ts:42", "pc": [ - 344, - 345 + 355, + 356 ] }, { - "teal": 156, - "source": 43, + "teal": 153, + "source": "examples/itxns/itxns.algo.ts:42", "pc": [ - 346, - 347 + 357, + 358 ] }, { "teal": 157, - "source": 43, + "source": "examples/itxns/itxns.algo.ts:43", "pc": [ - 348, - 349 + 359, + 360 ] }, { - "teal": 161, - "source": 44, + "teal": 158, + "source": "examples/itxns/itxns.algo.ts:43", "pc": [ - 350 + 361, + 362 ] }, { "teal": 162, - "source": 44, + "source": "examples/itxns/itxns.algo.ts:44", "pc": [ - 351, - 352 + 363, + 364 ] }, { - "teal": 166, - "source": 45, + "teal": 163, + "source": "examples/itxns/itxns.algo.ts:44", "pc": [ - 353, - 354 + 365, + 366 ] }, { "teal": 167, - "source": 45, + "source": "examples/itxns/itxns.algo.ts:45", "pc": [ - 355, - 356 + 367, + 368 ] }, { - "teal": 170, - "source": 42, + "teal": 168, + "source": "examples/itxns/itxns.algo.ts:45", "pc": [ - 357 + 369, + 370 ] }, { "teal": 171, - "source": 42, + "source": "examples/itxns/itxns.algo.ts:42", "pc": [ - 358, - 359 + 371, + 372 ] }, { - "teal": 174, - "source": 42, + "teal": 172, + "source": "examples/itxns/itxns.algo.ts:42", "pc": [ - 360 + 373, + 374 ] }, { - "teal": 181, - "source": 48, + "teal": 175, + "source": "examples/itxns/itxns.algo.ts:42", "pc": [ - 361 + 375 ] }, { "teal": 182, - "source": 48, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 362 + 376 ] }, { "teal": 183, - "source": 48, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 363, - 364 + 377, + 378 ] }, { "teal": 184, - "source": 48, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 365, - 366, - 367, - 368, - 369, - 370 + 379, + 380 ] }, { "teal": 185, - "source": 48, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 371, - 372 + 381, + 382, + 383, + 384, + 385, + 386 ] }, { - "teal": 189, - "source": 49, + "teal": 186, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 373, - 374 + 387, + 388 ] }, { "teal": 190, - "source": 49, + "source": "examples/itxns/itxns.algo.ts:49", "pc": [ - 375, - 376 + 389, + 390 ] }, { - "teal": 194, - "source": 50, + "teal": 191, + "source": "examples/itxns/itxns.algo.ts:49", "pc": [ - 377, - 378 + 391, + 392 ] }, { "teal": 195, - "source": 50, + "source": "examples/itxns/itxns.algo.ts:50", "pc": [ - 379 + 393, + 394 ] }, { "teal": 196, - "source": 50, + "source": "examples/itxns/itxns.algo.ts:50", "pc": [ - 380, - 381 + 395 ] }, { "teal": 197, - "source": 50, + "source": "examples/itxns/itxns.algo.ts:50", "pc": [ - 382, - 383 + 396, + 397 ] }, { "teal": 198, - "source": 50, + "source": "examples/itxns/itxns.algo.ts:50", "pc": [ - 384, - 385 + 398, + 399 ] }, { - "teal": 201, - "source": 48, + "teal": 199, + "source": "examples/itxns/itxns.algo.ts:50", "pc": [ - 386 + 400, + 401 ] }, { "teal": 202, - "source": 48, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 387, - 388 + 402, + 403 ] }, { - "teal": 205, - "source": 48, + "teal": 203, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 389 + 404, + 405 ] }, { - "teal": 209, - "source": 53, + "teal": 206, + "source": "examples/itxns/itxns.algo.ts:48", "pc": [ - 390, - 391 + 406 ] }, { - "teal": 212, - "source": 24, + "teal": 210, + "source": "examples/itxns/itxns.algo.ts:53", "pc": [ - 392, - 393 + 407, + 408 ] }, { - "teal": 215, - "source": 24, + "teal": 213, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 394, - 395 + 409, + 410 ] }, { "teal": 216, - "source": 24, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 396 + 411, + 412 ] }, { - "teal": 219, - "source": 23, + "teal": 217, + "source": "examples/itxns/itxns.algo.ts:24", "pc": [ - 397 + 413 ] }, { "teal": 220, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 398 + 414, + 415 ] }, { - "teal": 223, - "source": 23, + "teal": 221, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 399 + 416 ] }, { "teal": 224, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 400, - 401, - 402 + 417, + 418, + 419, + 420, + 421, + 422 ] }, { "teal": 225, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 403, - 404, - 405, - 406 + 423, + 424, + 425 ] }, { - "teal": 228, - "source": 23, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 226, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 407 + 426, + 427, + 428, + 429 ] }, { - "teal": 231, - "source": 23, + "teal": 229, + "source": "examples/itxns/itxns.algo.ts:23", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 408, - 409, - 410, - 411, - 412, - 413 + 430 ] }, { "teal": 232, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 414, - 415, - 416 + 431, + 432, + 433, + 434, + 435, + 436 ] }, { "teal": 233, - "source": 23, + "source": "examples/itxns/itxns.algo.ts:23", "pc": [ - 417, - 418, - 419, - 420 + 437, + 438, + 439 + ] + }, + { + "teal": 234, + "source": "examples/itxns/itxns.algo.ts:23", + "pc": [ + 440, + 441, + 442, + 443 ] }, { - "teal": 236, - "source": 23, + "teal": 237, + "source": "examples/itxns/itxns.algo.ts:23", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 421 + 444 ] } ] \ No newline at end of file diff --git a/examples/itxns/artifacts/NFTFactory.approval.teal b/examples/itxns/artifacts/NFTFactory.approval.teal index b6a1ebc5a..9e29817af 100644 --- a/examples/itxns/artifacts/NFTFactory.approval.teal +++ b/examples/itxns/artifacts/NFTFactory.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // createNFT(string,string)uint64 *abi_route_createNFT: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // unitName: string txna ApplicationArgs 2 @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob concat log - int 1 + pushint 1 return // createNFT(name: string, unitName: string): AssetID @@ -54,7 +54,7 @@ createNFT: // configAssetTotal: 1, // }); itxn_begin - int acfg + pushint 3 // acfg itxn_field TypeEnum // examples/itxns/itxns.algo.ts:7 @@ -69,11 +69,11 @@ createNFT: // examples/itxns/itxns.algo.ts:9 // configAssetTotal: 1 - int 1 + pushint 1 itxn_field ConfigAssetTotal // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -87,7 +87,7 @@ createNFT: txna ApplicationArgs 2 dup len - int 32 + pushint 32 == // argument 0 (receiver) for transferNFT must be a address @@ -99,7 +99,7 @@ createNFT: // execute transferNFT(uint64,address)void callsub transferNFT - int 1 + pushint 1 return // transferNFT(asset: AssetID, receiver: Address): void @@ -113,7 +113,7 @@ transferNFT: // xferAsset: asset, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/itxns/itxns.algo.ts:15 @@ -123,7 +123,7 @@ transferNFT: // examples/itxns/itxns.algo.ts:16 // assetAmount: 1 - int 1 + pushint 1 itxn_field AssetAmount // examples/itxns/itxns.algo.ts:17 @@ -132,7 +132,7 @@ transferNFT: itxn_field XferAsset // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -140,11 +140,11 @@ transferNFT: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -152,8 +152,8 @@ transferNFT: err *call_NoOp: - method "createNFT(string,string)uint64" - method "transferNFT(uint64,address)void" + pushbytes 0xd2024c73 // method "createNFT(string,string)uint64" + pushbytes 0xc7e260af // method "transferNFT(uint64,address)void" txna ApplicationArgs 0 match *abi_route_createNFT *abi_route_transferNFT diff --git a/examples/itxns/artifacts/NFTFactory.arc32.json b/examples/itxns/artifacts/NFTFactory.arc32.json index 6bcd95289..7cf5e0637 100644 --- a/examples/itxns/artifacts/NFTFactory.arc32.json +++ b/examples/itxns/artifacts/NFTFactory.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9jcmVhdGVORlQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHVuaXROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CgljYWxsc3ViIGNyZWF0ZU5GVAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZU5GVChuYW1lOiBzdHJpbmcsIHVuaXROYW1lOiBzdHJpbmcpOiBBc3NldElECmNyZWF0ZU5GVDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NgoJLy8gcmV0dXJuIHNlbmRBc3NldENyZWF0aW9uKHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TmFtZTogbmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6IHVuaXROYW1lLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogMSwKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCWludCBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo3CgkvLyBjb25maWdBc3NldE5hbWU6IG5hbWUKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo4CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiB1bml0TmFtZQoJZnJhbWVfZGlnIC0yIC8vIHVuaXROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6OQoJLy8gY29uZmlnQXNzZXRUb3RhbDogMQoJaW50IDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gdHJhbnNmZXJORlQodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RyYW5zZmVyTkZUOgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocmVjZWl2ZXIpIGZvciB0cmFuc2Zlck5GVCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdHJhbnNmZXJORlQodWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0cmFuc2Zlck5GVAoJaW50IDEKCXJldHVybgoKLy8gdHJhbnNmZXJORlQoYXNzZXQ6IEFzc2V0SUQsIHJlY2VpdmVyOiBBZGRyZXNzKTogdm9pZAp0cmFuc2Zlck5GVDoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTQKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IDEsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFzc2V0LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE1CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE2CgkvLyBhc3NldEFtb3VudDogMQoJaW50IDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE3CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0IgoJbWV0aG9kICJ0cmFuc2Zlck5GVCh1aW50NjQsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVORlQgKmFiaV9yb3V0ZV90cmFuc2Zlck5GVAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CiphYmlfcm91dGVfY3JlYXRlTkZUOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIHVuaXROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CgljYWxsc3ViIGNyZWF0ZU5GVAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVORlQobmFtZTogc3RyaW5nLCB1bml0TmFtZTogc3RyaW5nKTogQXNzZXRJRApjcmVhdGVORlQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjYKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6IG5hbWUsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiB1bml0TmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IDEsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglwdXNoaW50IDMgLy8gYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NwoJLy8gY29uZmlnQXNzZXROYW1lOiBuYW1lCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6OAoJLy8gY29uZmlnQXNzZXRVbml0TmFtZTogdW5pdE5hbWUKCWZyYW1lX2RpZyAtMiAvLyB1bml0TmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCXB1c2hpbnQgMQoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gdHJhbnNmZXJORlQodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RyYW5zZmVyTkZUOgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHJlY2VpdmVyKSBmb3IgdHJhbnNmZXJORlQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHRyYW5zZmVyTkZUKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdHJhbnNmZXJORlQKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB0cmFuc2Zlck5GVChhc3NldDogQXNzZXRJRCwgcmVjZWl2ZXI6IEFkZHJlc3MpOiB2b2lkCnRyYW5zZmVyTkZUOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoxNAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNCAvLyBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTUKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTYKCS8vIGFzc2V0QW1vdW50OiAxCglwdXNoaW50IDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE3CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDIwMjRjNzMgLy8gbWV0aG9kICJjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQiCglwdXNoYnl0ZXMgMHhjN2UyNjBhZiAvLyBtZXRob2QgInRyYW5zZmVyTkZUKHVpbnQ2NCxhZGRyZXNzKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZU5GVCAqYWJpX3JvdXRlX3RyYW5zZmVyTkZUCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/itxns/artifacts/NFTFactory.arc56_draft.json b/examples/itxns/artifacts/NFTFactory.arc56_draft.json index c694798a3..1990a3760 100644 --- a/examples/itxns/artifacts/NFTFactory.arc56_draft.json +++ b/examples/itxns/artifacts/NFTFactory.arc56_draft.json @@ -92,619 +92,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 5, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 5, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 5, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 5, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 36, - "source": 5, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 39, - "source": 5, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 40, - "source": 5, - "pc": [ - 62 - ] - }, - { - "teal": 41, - "source": 5, - "pc": [ - 63 - ] - }, - { - "teal": 42, - "source": 5, - "pc": [ - 64 - ] - }, - { - "teal": 43, - "source": 5, - "pc": [ - 65 - ] - }, - { - "teal": 44, - "source": 5, - "pc": [ - 66 - ] - }, - { - "teal": 48, - "source": 5, - "pc": [ - 67, - 68, - 69 - ] - }, - { - "teal": 56, - "source": 6, - "pc": [ - 70 - ] - }, - { - "teal": 57, - "source": 6, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 58, - "source": 6, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 62, - "source": 7, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 63, - "source": 7, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 67, - "source": 8, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 68, - "source": 8, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 72, - "source": 9, - "pc": [ - 83 - ] - }, - { - "teal": 73, - "source": 9, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 76, - "source": 6, - "pc": [ - 86 - ] - }, - { - "teal": 77, - "source": 6, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 80, - "source": 6, - "pc": [ - 89 - ] - }, - { - "teal": 81, - "source": 6, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 82, - "source": 5, - "pc": [ - 92 - ] - }, - { - "teal": 87, - "source": 13, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 88, - "source": 13, - "pc": [ - 96 - ] - }, - { - "teal": 89, - "source": 13, - "pc": [ - 97 - ] - }, - { - "teal": 90, - "source": 13, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 91, - "source": 13, - "pc": [ - 100 - ] - }, - { - "teal": 94, - "source": 13, - "errorMessage": "argument 0 (receiver) for transferNFT must be a address", - "pc": [ - 101 - ] - }, - { - "teal": 97, - "source": 13, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 98, - "source": 13, - "pc": [ - 105 - ] - }, - { - "teal": 101, - "source": 13, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 102, - "source": 13, - "pc": [ - 109 - ] - }, - { - "teal": 103, - "source": 13, - "pc": [ - 110 - ] - }, - { - "teal": 107, - "source": 13, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 115, - "source": 14, - "pc": [ - 114 - ] - }, - { - "teal": 116, - "source": 14, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 117, - "source": 14, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 121, - "source": 15, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 122, - "source": 15, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 126, - "source": 16, - "pc": [ - 123 - ] - }, - { - "teal": 127, - "source": 16, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 131, - "source": 17, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 132, - "source": 17, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 135, - "source": 14, - "pc": [ - 130 - ] - }, - { - "teal": 136, - "source": 14, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 139, - "source": 14, - "pc": [ - 133 - ] - }, - { - "teal": 140, - "source": 13, - "pc": [ - 134 - ] - }, - { - "teal": 143, - "source": 4, - "pc": [ - 135 - ] - }, - { - "teal": 144, - "source": 4, - "pc": [ - 136 - ] - }, - { - "teal": 147, - "source": 4, - "pc": [ - 137, - 138, - 139, - 140, - 141, - 142 - ] - }, - { - "teal": 148, - "source": 4, - "pc": [ - 143, - 144, - 145 - ] - }, - { - "teal": 149, - "source": 4, - "pc": [ - 146, - 147, - 148, - 149 - ] - }, - { - "teal": 152, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 150 - ] - }, - { - "teal": 155, - "source": 4, - "pc": [ - 151, - 152, - 153, - 154, - 155, - 156 - ] - }, - { - "teal": 156, - "source": 4, - "pc": [ - 157, - 158, - 159, - 160, - 161, - 162 - ] - }, - { - "teal": 157, - "source": 4, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 158, - "source": 4, - "pc": [ - 166, - 167, - 168, - 169, - 170, - 171 - ] - }, - { - "teal": 161, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 172 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 100 + ], + "errorMessage": "argument 0 (receiver) for transferNFT must be a address" + }, + { + "pc": [ + 153 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 175 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9jcmVhdGVORlQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHVuaXROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CgljYWxsc3ViIGNyZWF0ZU5GVAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZU5GVChuYW1lOiBzdHJpbmcsIHVuaXROYW1lOiBzdHJpbmcpOiBBc3NldElECmNyZWF0ZU5GVDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NgoJLy8gcmV0dXJuIHNlbmRBc3NldENyZWF0aW9uKHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TmFtZTogbmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6IHVuaXROYW1lLAoJLy8gICAgICAgY29uZmlnQXNzZXRUb3RhbDogMSwKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCWludCBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo3CgkvLyBjb25maWdBc3NldE5hbWU6IG5hbWUKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXROYW1lCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czo4CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiB1bml0TmFtZQoJZnJhbWVfZGlnIC0yIC8vIHVuaXROYW1lOiBzdHJpbmcKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6OQoJLy8gY29uZmlnQXNzZXRUb3RhbDogMQoJaW50IDEKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gdHJhbnNmZXJORlQodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RyYW5zZmVyTkZUOgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocmVjZWl2ZXIpIGZvciB0cmFuc2Zlck5GVCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gYXNzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdHJhbnNmZXJORlQodWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0cmFuc2Zlck5GVAoJaW50IDEKCXJldHVybgoKLy8gdHJhbnNmZXJORlQoYXNzZXQ6IEFzc2V0SUQsIHJlY2VpdmVyOiBBZGRyZXNzKTogdm9pZAp0cmFuc2Zlck5GVDoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTQKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IDEsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFzc2V0LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE1CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0yIC8vIHJlY2VpdmVyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE2CgkvLyBhc3NldEFtb3VudDogMQoJaW50IDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE3CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0IgoJbWV0aG9kICJ0cmFuc2Zlck5GVCh1aW50NjQsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVORlQgKmFiaV9yb3V0ZV90cmFuc2Zlck5GVAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CiphYmlfcm91dGVfY3JlYXRlTkZUOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIHVuaXROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgY3JlYXRlTkZUKHN0cmluZyxzdHJpbmcpdWludDY0CgljYWxsc3ViIGNyZWF0ZU5GVAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVORlQobmFtZTogc3RyaW5nLCB1bml0TmFtZTogc3RyaW5nKTogQXNzZXRJRApjcmVhdGVORlQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjYKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6IG5hbWUsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiB1bml0TmFtZSwKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IDEsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglwdXNoaW50IDMgLy8gYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6NwoJLy8gY29uZmlnQXNzZXROYW1lOiBuYW1lCglmcmFtZV9kaWcgLTEgLy8gbmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6OAoJLy8gY29uZmlnQXNzZXRVbml0TmFtZTogdW5pdE5hbWUKCWZyYW1lX2RpZyAtMiAvLyB1bml0TmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCXB1c2hpbnQgMQoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gdHJhbnNmZXJORlQodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RyYW5zZmVyTkZUOgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHJlY2VpdmVyKSBmb3IgdHJhbnNmZXJORlQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHRyYW5zZmVyTkZUKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdHJhbnNmZXJORlQKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB0cmFuc2Zlck5GVChhc3NldDogQXNzZXRJRCwgcmVjZWl2ZXI6IEFkZHJlc3MpOiB2b2lkCnRyYW5zZmVyTkZUOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvaXR4bnMvaXR4bnMuYWxnby50czoxNAoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgIHhmZXJBc3NldDogYXNzZXQsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNCAvLyBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTUKCS8vIGFzc2V0UmVjZWl2ZXI6IHJlY2VpdmVyCglmcmFtZV9kaWcgLTIgLy8gcmVjZWl2ZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL2l0eG5zL2l0eG5zLmFsZ28udHM6MTYKCS8vIGFzc2V0QW1vdW50OiAxCglwdXNoaW50IDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBleGFtcGxlcy9pdHhucy9pdHhucy5hbGdvLnRzOjE3CgkvLyB4ZmVyQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IEFzc2V0SUQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDIwMjRjNzMgLy8gbWV0aG9kICJjcmVhdGVORlQoc3RyaW5nLHN0cmluZyl1aW50NjQiCglwdXNoYnl0ZXMgMHhjN2UyNjBhZiAvLyBtZXRob2QgInRyYW5zZmVyTkZUKHVpbnQ2NCxhZGRyZXNzKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZU5GVCAqYWJpX3JvdXRlX3RyYW5zZmVyTkZUCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQAxGBSBBgsxGQiNDABvAAAAAAAAAAAAAABhAAAAAAAAAAAAAACABBUffHU2GgJXAgA2GgFXAgCIAAUWULAiQ4oCAbGBA7IQi/+yJov+siUisiIjsgGztDyJNhoCSRWBIBJENhoBF4gAAiJDigIAsYEEshCL/rIUIrISi/+yESOyAbOJIkOABLhEezY2GgCOAf/xAIAE0gJMc4AEx+JgrzYaAI4C/33/sQA=", + "approval": "CjEYFIEGCzEZCI0MAHYAAAAAAAAAAAAAAGgAAAAAAAAAAAAAAIAEFR98dTYaAlcCADYaAVcCAIgABhZQsIEBQ4oCAbGBA7IQi/+yJov+siWBAbIigQCyAbO0PIk2GgJJFYEgEkQ2GgEXiAADgQFDigIAsYEEshCL/rIUgQGyEov/shGBALIBs4mBAUOABLhEezY2GgCOAf/wAIAE0gJMc4AEx+JgrzYaAI4C/3b/rQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/itxns/artifacts/NFTFactory.src_map.json b/examples/itxns/artifacts/NFTFactory.src_map.json index 846de209e..a7d8dd3a2 100644 --- a/examples/itxns/artifacts/NFTFactory.src_map.json +++ b/examples/itxns/artifacts/NFTFactory.src_map.json @@ -1,64 +1,64 @@ [ { "teal": 1, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 0, - 1, - 2, - 3, - 4 + 0 ] }, { "teal": 13, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 5, - 6 + 1, + 2 ] }, { "teal": 14, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 7 + 3 ] }, { "teal": 15, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 8, - 9 + 4, + 5 ] }, { "teal": 16, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 10 + 6 ] }, { "teal": 17, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 11, - 12 + 7, + 8 ] }, { "teal": 18, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 13 + 9 ] }, { "teal": 19, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ + 10, + 11, + 12, + 13, 14, 15, 16, @@ -80,317 +80,317 @@ 32, 33, 34, - 35, - 36, - 37, - 38, - 39 + 35 ] }, { "teal": 23, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 40 + 36 ] }, { "teal": 28, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ + 37, + 38, + 39, + 40, 41, - 42, - 43, - 44, - 45, - 46 + 42 ] }, { "teal": 31, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 47, - 48, - 49 + 43, + 44, + 45 ] }, { "teal": 32, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 50, - 51, - 52 + 46, + 47, + 48 ] }, { "teal": 35, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 53, - 54, - 55 + 49, + 50, + 51 ] }, { "teal": 36, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 56, - 57, - 58 + 52, + 53, + 54 ] }, { "teal": 39, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 59, - 60, - 61 + 55, + 56, + 57 ] }, { "teal": 40, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 62 + 58 ] }, { "teal": 41, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 63 + 59 ] }, { "teal": 42, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 64 + 60 ] }, { "teal": 43, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 65 + 61, + 62 ] }, { "teal": 44, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 66 + 63 ] }, { "teal": 48, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 67, - 68, - 69 + 64, + 65, + 66 ] }, { "teal": 56, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 70 + 67 ] }, { "teal": 57, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 71, - 72 + 68, + 69 ] }, { "teal": 58, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 73, - 74 + 70, + 71 ] }, { "teal": 62, - "source": 7, + "source": "examples/itxns/itxns.algo.ts:7", "pc": [ - 75, - 76 + 72, + 73 ] }, { "teal": 63, - "source": 7, + "source": "examples/itxns/itxns.algo.ts:7", "pc": [ - 77, - 78 + 74, + 75 ] }, { "teal": 67, - "source": 8, + "source": "examples/itxns/itxns.algo.ts:8", "pc": [ - 79, - 80 + 76, + 77 ] }, { "teal": 68, - "source": 8, + "source": "examples/itxns/itxns.algo.ts:8", "pc": [ - 81, - 82 + 78, + 79 ] }, { "teal": 72, - "source": 9, + "source": "examples/itxns/itxns.algo.ts:9", "pc": [ - 83 + 80, + 81 ] }, { "teal": 73, - "source": 9, + "source": "examples/itxns/itxns.algo.ts:9", "pc": [ - 84, - 85 + 82, + 83 ] }, { "teal": 76, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 86 + 84, + 85 ] }, { "teal": 77, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 87, - 88 + 86, + 87 ] }, { "teal": 80, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 89 + 88 ] }, { "teal": 81, - "source": 6, + "source": "examples/itxns/itxns.algo.ts:6", "pc": [ - 90, - 91 + 89, + 90 ] }, { "teal": 82, - "source": 5, + "source": "examples/itxns/itxns.algo.ts:5", "pc": [ - 92 + 91 ] }, { "teal": 87, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ + 92, 93, - 94, - 95 + 94 ] }, { "teal": 88, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ - 96 + 95 ] }, { "teal": 89, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ - 97 + 96 ] }, { "teal": 90, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ - 98, - 99 + 97, + 98 ] }, { "teal": 91, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ - 100 + 99 ] }, { "teal": 94, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "errorMessage": "argument 0 (receiver) for transferNFT must be a address", "pc": [ - 101 + 100 ] }, { "teal": 97, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ + 101, 102, - 103, - 104 + 103 ] }, { "teal": 98, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ - 105 + 104 ] }, { "teal": 101, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ + 105, 106, - 107, - 108 + 107 ] }, { "teal": 102, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ + 108, 109 ] }, { "teal": 103, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ 110 ] }, { "teal": 107, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ 111, 112, @@ -399,14 +399,14 @@ }, { "teal": 115, - "source": 14, + "source": "examples/itxns/itxns.algo.ts:14", "pc": [ 114 ] }, { "teal": 116, - "source": 14, + "source": "examples/itxns/itxns.algo.ts:14", "pc": [ 115, 116 @@ -414,7 +414,7 @@ }, { "teal": 117, - "source": 14, + "source": "examples/itxns/itxns.algo.ts:14", "pc": [ 117, 118 @@ -422,7 +422,7 @@ }, { "teal": 121, - "source": 15, + "source": "examples/itxns/itxns.algo.ts:15", "pc": [ 119, 120 @@ -430,7 +430,7 @@ }, { "teal": 122, - "source": 15, + "source": "examples/itxns/itxns.algo.ts:15", "pc": [ 121, 122 @@ -438,168 +438,171 @@ }, { "teal": 126, - "source": 16, + "source": "examples/itxns/itxns.algo.ts:16", "pc": [ - 123 + 123, + 124 ] }, { "teal": 127, - "source": 16, + "source": "examples/itxns/itxns.algo.ts:16", "pc": [ - 124, - 125 + 125, + 126 ] }, { "teal": 131, - "source": 17, + "source": "examples/itxns/itxns.algo.ts:17", "pc": [ - 126, - 127 + 127, + 128 ] }, { "teal": 132, - "source": 17, + "source": "examples/itxns/itxns.algo.ts:17", "pc": [ - 128, - 129 + 129, + 130 ] }, { "teal": 135, - "source": 14, + "source": "examples/itxns/itxns.algo.ts:14", "pc": [ - 130 + 131, + 132 ] }, { "teal": 136, - "source": 14, + "source": "examples/itxns/itxns.algo.ts:14", "pc": [ - 131, - 132 + 133, + 134 ] }, { "teal": 139, - "source": 14, + "source": "examples/itxns/itxns.algo.ts:14", "pc": [ - 133 + 135 ] }, { "teal": 140, - "source": 13, + "source": "examples/itxns/itxns.algo.ts:13", "pc": [ - 134 + 136 ] }, { "teal": 143, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 135 + 137, + 138 ] }, { "teal": 144, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 136 + 139 ] }, { "teal": 147, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 137, - 138, - 139, 140, 141, - 142 + 142, + 143, + 144, + 145 ] }, { "teal": 148, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 143, - 144, - 145 + 146, + 147, + 148 ] }, { "teal": 149, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 146, - 147, - 148, - 149 + 149, + 150, + 151, + 152 ] }, { "teal": 152, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 150 + 153 ] }, { "teal": 155, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 151, - 152, - 153, 154, 155, - 156 + 156, + 157, + 158, + 159 ] }, { "teal": 156, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 157, - 158, - 159, 160, 161, - 162 + 162, + 163, + 164, + 165 ] }, { "teal": 157, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 163, - 164, - 165 + 166, + 167, + 168 ] }, { "teal": 158, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "pc": [ - 166, - 167, - 168, 169, 170, - 171 + 171, + 172, + 173, + 174 ] }, { "teal": 161, - "source": 4, + "source": "examples/itxns/itxns.algo.ts:4", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 172 + 175 ] } ] \ No newline at end of file diff --git a/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal b/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal index accb9377d..76e27ebd4 100644 --- a/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal +++ b/examples/lsig_with_app/artifacts/CreatorVerifier.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x00 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -28,7 +29,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 0 (creator) for allowOptInsFrom must be a address @@ -36,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // execute allowOptInsFrom(address)void callsub allowOptInsFrom - int 1 + pushint 1 return // allowOptInsFrom(creator: Address): void @@ -50,9 +51,9 @@ allowOptInsFrom: txn Sender frame_dig -1 // creator: Address concat - int 1 + pushint 1 byte 0x00 - int 0 + pushint 0 uncover 2 setbit box_put @@ -64,7 +65,7 @@ allowOptInsFrom: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 0 (creator) for disableOptInsFrom must be a address @@ -72,7 +73,7 @@ allowOptInsFrom: // execute disableOptInsFrom(address)void callsub disableOptInsFrom - int 1 + pushint 1 return // disableOptInsFrom(creator: Address): void @@ -86,9 +87,9 @@ disableOptInsFrom: txn Sender frame_dig -1 // creator: Address concat - int 0 + pushint 0 byte 0x00 - int 0 + pushint 0 uncover 2 setbit box_put @@ -98,11 +99,11 @@ disableOptInsFrom: *abi_route_verifyCreator: // optIn: axfer txn GroupIndex - int 1 + pushint 1 - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 0 (optIn) for verifyCreator must be a axfer transaction @@ -110,7 +111,7 @@ disableOptInsFrom: // execute verifyCreator(axfer)void callsub verifyCreator - int 1 + pushint 1 return // verifyCreator(optIn: AssetTransferTxn): void @@ -130,17 +131,17 @@ verifyCreator: // box value does not exist: this.allowedCreators([optIn.sender, optIn.xferAsset.creator]).value assert - int 0 + pushint 0 getbit assert retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -148,9 +149,9 @@ verifyCreator: err *call_NoOp: - method "allowOptInsFrom(address)void" - method "disableOptInsFrom(address)void" - method "verifyCreator(axfer)void" + pushbytes 0xf1bf2ca8 // method "allowOptInsFrom(address)void" + pushbytes 0xbc28ac2b // method "disableOptInsFrom(address)void" + pushbytes 0x8d5aa727 // method "verifyCreator(axfer)void" txna ApplicationArgs 0 match *abi_route_allowOptInsFrom *abi_route_disableOptInsFrom *abi_route_verifyCreator diff --git a/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json b/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json index 974833091..33d31b0af 100644 --- a/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json +++ b/examples/lsig_with_app/artifacts/CreatorVerifier.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYWxsb3dPcHRJbnNGcm9tOgoJLy8gY3JlYXRvcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjcmVhdG9yKSBmb3IgYWxsb3dPcHRJbnNGcm9tIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFsbG93T3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWxsb3dPcHRJbnNGcm9tCglpbnQgMQoJcmV0dXJuCgovLyBhbGxvd09wdEluc0Zyb20oY3JlYXRvcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQWxsb3cgYW55b25lIHRvIHVzZSB0aGUgbHNpZyB0byBvcHQgaW4gdGhlIHR4biBzZW5kZXIgaW50byBhbiBhc3NldCBjcmVhdGVkIGJ5IHRoZSBjcmVhdG9yCmFsbG93T3B0SW5zRnJvbToKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjQxCgkvLyB0aGlzLmFsbG93ZWRDcmVhdG9ycyhbdGhpcy50eG4uc2VuZGVyLCBjcmVhdG9yXSkudmFsdWUgPSB0cnVlCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRvcjogQWRkcmVzcwoJY29uY2F0CglpbnQgMQoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNyZWF0b3IpIGZvciBkaXNhYmxlT3B0SW5zRnJvbSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgZGlzYWJsZU9wdEluc0Zyb20KCWludCAxCglyZXR1cm4KCi8vIGRpc2FibGVPcHRJbnNGcm9tKGNyZWF0b3I6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIERpc2FibGUgb3B0LWlucyBmb3IgQVNBcyBmcm9tIHRoZSBnaXZlbiBjcmVhdG9yCmRpc2FibGVPcHRJbnNGcm9tOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvbHNpZ193aXRoX2FwcC9sc2lnX3dpdGhfYXBwLmFsZ28udHM6NDYKCS8vIHRoaXMuYWxsb3dlZENyZWF0b3JzKFt0aGlzLnR4bi5zZW5kZXIsIGNyZWF0b3JdKS52YWx1ZSA9IGZhbHNlCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRvcjogQWRkcmVzcwoJY29uY2F0CglpbnQgMAoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gdmVyaWZ5Q3JlYXRvcihheGZlcil2b2lkCiphYmlfcm91dGVfdmVyaWZ5Q3JlYXRvcjoKCS8vIG9wdEluOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMCAob3B0SW4pIGZvciB2ZXJpZnlDcmVhdG9yIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB2ZXJpZnlDcmVhdG9yKGF4ZmVyKXZvaWQKCWNhbGxzdWIgdmVyaWZ5Q3JlYXRvcgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5Q3JlYXRvcihvcHRJbjogQXNzZXRUcmFuc2ZlclR4bik6IHZvaWQKdmVyaWZ5Q3JlYXRvcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5hbGxvd2VkQ3JlYXRvcnMoW29wdEluLnNlbmRlciwgb3B0SW4ueGZlckFzc2V0LmNyZWF0b3JdKS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBvcHRJbjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3B0SW46IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFsbG93ZWRDcmVhdG9ycyhbb3B0SW4uc2VuZGVyLCBvcHRJbi54ZmVyQXNzZXQuY3JlYXRvcl0pLnZhbHVlCglhc3NlcnQKCWludCAwCglnZXRiaXQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWxsb3dPcHRJbnNGcm9tKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlDcmVhdG9yKGF4ZmVyKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FsbG93T3B0SW5zRnJvbSAqYWJpX3JvdXRlX2Rpc2FibGVPcHRJbnNGcm9tICphYmlfcm91dGVfdmVyaWZ5Q3JlYXRvcgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGFsbG93T3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hbGxvd09wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjcmVhdG9yKSBmb3IgYWxsb3dPcHRJbnNGcm9tIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFsbG93T3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWxsb3dPcHRJbnNGcm9tCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWxsb3dPcHRJbnNGcm9tKGNyZWF0b3I6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIEFsbG93IGFueW9uZSB0byB1c2UgdGhlIGxzaWcgdG8gb3B0IGluIHRoZSB0eG4gc2VuZGVyIGludG8gYW4gYXNzZXQgY3JlYXRlZCBieSB0aGUgY3JlYXRvcgphbGxvd09wdEluc0Zyb206Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9sc2lnX3dpdGhfYXBwL2xzaWdfd2l0aF9hcHAuYWxnby50czo0MQoJLy8gdGhpcy5hbGxvd2VkQ3JlYXRvcnMoW3RoaXMudHhuLnNlbmRlciwgY3JlYXRvcl0pLnZhbHVlID0gdHJ1ZQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIGNyZWF0b3I6IEFkZHJlc3MKCWNvbmNhdAoJcHVzaGludCAxCglieXRlIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjcmVhdG9yKSBmb3IgZGlzYWJsZU9wdEluc0Zyb20gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkCgljYWxsc3ViIGRpc2FibGVPcHRJbnNGcm9tCglwdXNoaW50IDEKCXJldHVybgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oY3JlYXRvcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gRGlzYWJsZSBvcHQtaW5zIGZvciBBU0FzIGZyb20gdGhlIGdpdmVuIGNyZWF0b3IKZGlzYWJsZU9wdEluc0Zyb206Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9sc2lnX3dpdGhfYXBwL2xzaWdfd2l0aF9hcHAuYWxnby50czo0NgoJLy8gdGhpcy5hbGxvd2VkQ3JlYXRvcnMoW3RoaXMudHhuLnNlbmRlciwgY3JlYXRvcl0pLnZhbHVlID0gZmFsc2UKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdG9yOiBBZGRyZXNzCgljb25jYXQKCXB1c2hpbnQgMAoJYnl0ZSAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cglib3hfcHV0CglyZXRzdWIKCi8vIHZlcmlmeUNyZWF0b3IoYXhmZXIpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeUNyZWF0b3I6CgkvLyBvcHRJbjogYXhmZXIKCXR4biBHcm91cEluZGV4CglwdXNoaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCXB1c2hpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCAwIChvcHRJbikgZm9yIHZlcmlmeUNyZWF0b3IgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeUNyZWF0b3IoYXhmZXIpdm9pZAoJY2FsbHN1YiB2ZXJpZnlDcmVhdG9yCglwdXNoaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5Q3JlYXRvcihvcHRJbjogQXNzZXRUcmFuc2ZlclR4bik6IHZvaWQKdmVyaWZ5Q3JlYXRvcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5hbGxvd2VkQ3JlYXRvcnMoW29wdEluLnNlbmRlciwgb3B0SW4ueGZlckFzc2V0LmNyZWF0b3JdKS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBvcHRJbjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3B0SW46IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFsbG93ZWRDcmVhdG9ycyhbb3B0SW4uc2VuZGVyLCBvcHRJbi54ZmVyQXNzZXQuY3JlYXRvcl0pLnZhbHVlCglhc3NlcnQKCXB1c2hpbnQgMAoJZ2V0Yml0Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjFiZjJjYTggLy8gbWV0aG9kICJhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4YmMyOGFjMmIgLy8gbWV0aG9kICJkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZDVhYTcyNyAvLyBtZXRob2QgInZlcmlmeUNyZWF0b3IoYXhmZXIpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWxsb3dPcHRJbnNGcm9tICphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb20gKmFiaV9yb3V0ZV92ZXJpZnlDcmVhdG9yCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/lsig_with_app/artifacts/CreatorVerifier.arc56_draft.json b/examples/lsig_with_app/artifacts/CreatorVerifier.arc56_draft.json index 341a57927..155704556 100644 --- a/examples/lsig_with_app/artifacts/CreatorVerifier.arc56_draft.json +++ b/examples/lsig_with_app/artifacts/CreatorVerifier.arc56_draft.json @@ -109,726 +109,64 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 35, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ] - }, - { - "teal": 13, - "source": 35, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 14, - "source": 35, - "pc": [ - 12 - ] - }, - { - "teal": 15, - "source": 35, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 16, - "source": 35, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 35, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 35, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 35, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 35, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 40, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 29, - "source": 40, - "pc": [ - 49 - ] - }, - { - "teal": 30, - "source": 40, - "pc": [ - 50 - ] - }, - { - "teal": 31, - "source": 40, - "pc": [ - 51 - ] - }, - { - "teal": 32, - "source": 40, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 40, - "errorMessage": "argument 0 (creator) for allowOptInsFrom must be a address", - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 40, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 39, - "source": 40, - "pc": [ - 57 - ] - }, - { - "teal": 40, - "source": 40, - "pc": [ - 58 - ] - }, - { - "teal": 46, - "source": 40, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 50, - "source": 41, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 51, - "source": 41, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 52, - "source": 41, - "pc": [ - 66 - ] - }, - { - "teal": 53, - "source": 41, - "pc": [ - 67 - ] - }, - { - "teal": 54, - "source": 41, - "pc": [ - 68 - ] - }, - { - "teal": 55, - "source": 41, - "pc": [ - 69 - ] - }, - { - "teal": 56, - "source": 41, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 57, - "source": 41, - "pc": [ - 72 - ] - }, - { - "teal": 58, - "source": 41, - "pc": [ - 73 - ] - }, - { - "teal": 59, - "source": 40, - "pc": [ - 74 - ] - }, - { - "teal": 64, - "source": 45, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 65, - "source": 45, - "pc": [ - 78 - ] - }, - { - "teal": 66, - "source": 45, - "pc": [ - 79 - ] - }, - { - "teal": 67, - "source": 45, - "pc": [ - 80 - ] - }, - { - "teal": 68, - "source": 45, - "pc": [ - 81 - ] - }, - { - "teal": 71, - "source": 45, - "errorMessage": "argument 0 (creator) for disableOptInsFrom must be a address", - "pc": [ - 82 - ] - }, - { - "teal": 74, - "source": 45, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 75, - "source": 45, - "pc": [ - 86 - ] - }, - { - "teal": 76, - "source": 45, - "pc": [ - 87 - ] - }, - { - "teal": 82, - "source": 45, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 86, - "source": 46, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 87, - "source": 46, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 88, - "source": 46, - "pc": [ - 95 - ] - }, - { - "teal": 89, - "source": 46, - "pc": [ - 96 - ] - }, - { - "teal": 90, - "source": 46, - "pc": [ - 97 - ] - }, - { - "teal": 91, - "source": 46, - "pc": [ - 98 - ] - }, - { - "teal": 92, - "source": 46, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 93, - "source": 46, - "pc": [ - 101 - ] - }, - { - "teal": 94, - "source": 46, - "pc": [ - 102 - ] - }, - { - "teal": 95, - "source": 45, - "pc": [ - 103 - ] - }, - { - "teal": 100, - "source": 50, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 101, - "source": 50, - "pc": [ - 106 - ] - }, - { - "teal": 102, - "source": 50, - "pc": [ - 107 - ] - }, - { - "teal": 103, - "source": 50, - "pc": [ - 108 - ] - }, - { - "teal": 104, - "source": 50, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 105, - "source": 50, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 106, - "source": 50, - "pc": [ - 113 - ] - }, - { - "teal": 109, - "source": 50, - "errorMessage": "argument 0 (optIn) for verifyCreator must be a axfer transaction", - "pc": [ - 114 - ] - }, - { - "teal": 112, - "source": 50, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 113, - "source": 50, - "pc": [ - 118 - ] - }, - { - "teal": 114, - "source": 50, - "pc": [ - 119 - ] - }, - { - "teal": 118, - "source": 50, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 122, - "source": 52, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 123, - "source": 52, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 124, - "source": 52, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 125, - "source": 52, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 126, - "source": 52, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 127, - "source": 52, - "pc": [ - 133 - ] - }, - { - "teal": 128, - "source": 52, - "pc": [ - 134 - ] - }, - { - "teal": 129, - "source": 52, - "pc": [ - 135 - ] - }, - { - "teal": 132, - "source": 52, - "errorMessage": "box value does not exist: this.allowedCreators([optIn.sender, optIn.xferAsset.creator]).value", - "pc": [ - 136 - ] - }, - { - "teal": 133, - "source": 52, - "pc": [ - 137 - ] - }, - { - "teal": 134, - "source": 52, - "pc": [ - 138 - ] - }, - { - "teal": 135, - "source": 52, - "pc": [ - 139 - ] - }, - { - "teal": 136, - "source": 50, - "pc": [ - 140 - ] - }, - { - "teal": 139, - "source": 35, - "pc": [ - 141 - ] - }, - { - "teal": 140, - "source": 35, - "pc": [ - 142 - ] - }, - { - "teal": 143, - "source": 35, - "pc": [ - 143, - 144, - 145, - 146, - 147, - 148 - ] - }, - { - "teal": 144, - "source": 35, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 145, - "source": 35, - "pc": [ - 152, - 153, - 154, - 155 - ] - }, - { - "teal": 148, - "source": 35, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 156 - ] - }, - { - "teal": 151, - "source": 35, - "pc": [ - 157, - 158, - 159, - 160, - 161, - 162 - ] - }, - { - "teal": 152, - "source": 35, - "pc": [ - 163, - 164, - 165, - 166, - 167, - 168 - ] - }, - { - "teal": 153, - "source": 35, - "pc": [ - 169, - 170, - 171, - 172, - 173, - 174 - ] - }, - { - "teal": 154, - "source": 35, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 155, - "source": 35, - "pc": [ - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185 - ] - }, - { - "teal": 158, - "source": 35, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 186 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 40 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 49 + ], + "errorMessage": "argument 0 (creator) for allowOptInsFrom must be a address" + }, + { + "pc": [ + 84 + ], + "errorMessage": "argument 0 (creator) for disableOptInsFrom must be a address" + }, + { + "pc": [ + 122 + ], + "errorMessage": "argument 0 (optIn) for verifyCreator must be a axfer transaction" + }, + { + "pc": [ + 145 + ], + "errorMessage": "box value does not exist: this.allowedCreators([optIn.sender, optIn.xferAsset.creator]).value" + }, + { + "pc": [ + 167 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 197 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYWxsb3dPcHRJbnNGcm9tOgoJLy8gY3JlYXRvcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjcmVhdG9yKSBmb3IgYWxsb3dPcHRJbnNGcm9tIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFsbG93T3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWxsb3dPcHRJbnNGcm9tCglpbnQgMQoJcmV0dXJuCgovLyBhbGxvd09wdEluc0Zyb20oY3JlYXRvcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQWxsb3cgYW55b25lIHRvIHVzZSB0aGUgbHNpZyB0byBvcHQgaW4gdGhlIHR4biBzZW5kZXIgaW50byBhbiBhc3NldCBjcmVhdGVkIGJ5IHRoZSBjcmVhdG9yCmFsbG93T3B0SW5zRnJvbToKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjQxCgkvLyB0aGlzLmFsbG93ZWRDcmVhdG9ycyhbdGhpcy50eG4uc2VuZGVyLCBjcmVhdG9yXSkudmFsdWUgPSB0cnVlCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRvcjogQWRkcmVzcwoJY29uY2F0CglpbnQgMQoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNyZWF0b3IpIGZvciBkaXNhYmxlT3B0SW5zRnJvbSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgZGlzYWJsZU9wdEluc0Zyb20KCWludCAxCglyZXR1cm4KCi8vIGRpc2FibGVPcHRJbnNGcm9tKGNyZWF0b3I6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIERpc2FibGUgb3B0LWlucyBmb3IgQVNBcyBmcm9tIHRoZSBnaXZlbiBjcmVhdG9yCmRpc2FibGVPcHRJbnNGcm9tOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvbHNpZ193aXRoX2FwcC9sc2lnX3dpdGhfYXBwLmFsZ28udHM6NDYKCS8vIHRoaXMuYWxsb3dlZENyZWF0b3JzKFt0aGlzLnR4bi5zZW5kZXIsIGNyZWF0b3JdKS52YWx1ZSA9IGZhbHNlCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRvcjogQWRkcmVzcwoJY29uY2F0CglpbnQgMAoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gdmVyaWZ5Q3JlYXRvcihheGZlcil2b2lkCiphYmlfcm91dGVfdmVyaWZ5Q3JlYXRvcjoKCS8vIG9wdEluOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMCAob3B0SW4pIGZvciB2ZXJpZnlDcmVhdG9yIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB2ZXJpZnlDcmVhdG9yKGF4ZmVyKXZvaWQKCWNhbGxzdWIgdmVyaWZ5Q3JlYXRvcgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5Q3JlYXRvcihvcHRJbjogQXNzZXRUcmFuc2ZlclR4bik6IHZvaWQKdmVyaWZ5Q3JlYXRvcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5hbGxvd2VkQ3JlYXRvcnMoW29wdEluLnNlbmRlciwgb3B0SW4ueGZlckFzc2V0LmNyZWF0b3JdKS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBvcHRJbjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3B0SW46IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFsbG93ZWRDcmVhdG9ycyhbb3B0SW4uc2VuZGVyLCBvcHRJbi54ZmVyQXNzZXQuY3JlYXRvcl0pLnZhbHVlCglhc3NlcnQKCWludCAwCglnZXRiaXQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWxsb3dPcHRJbnNGcm9tKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlDcmVhdG9yKGF4ZmVyKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FsbG93T3B0SW5zRnJvbSAqYWJpX3JvdXRlX2Rpc2FibGVPcHRJbnNGcm9tICphYmlfcm91dGVfdmVyaWZ5Q3JlYXRvcgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGFsbG93T3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hbGxvd09wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjcmVhdG9yKSBmb3IgYWxsb3dPcHRJbnNGcm9tIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFsbG93T3B0SW5zRnJvbShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWxsb3dPcHRJbnNGcm9tCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWxsb3dPcHRJbnNGcm9tKGNyZWF0b3I6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIEFsbG93IGFueW9uZSB0byB1c2UgdGhlIGxzaWcgdG8gb3B0IGluIHRoZSB0eG4gc2VuZGVyIGludG8gYW4gYXNzZXQgY3JlYXRlZCBieSB0aGUgY3JlYXRvcgphbGxvd09wdEluc0Zyb206Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9sc2lnX3dpdGhfYXBwL2xzaWdfd2l0aF9hcHAuYWxnby50czo0MQoJLy8gdGhpcy5hbGxvd2VkQ3JlYXRvcnMoW3RoaXMudHhuLnNlbmRlciwgY3JlYXRvcl0pLnZhbHVlID0gdHJ1ZQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIGNyZWF0b3I6IEFkZHJlc3MKCWNvbmNhdAoJcHVzaGludCAxCglieXRlIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWJveF9wdXQKCXJldHN1YgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb206CgkvLyBjcmVhdG9yOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjcmVhdG9yKSBmb3IgZGlzYWJsZU9wdEluc0Zyb20gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZGlzYWJsZU9wdEluc0Zyb20oYWRkcmVzcyl2b2lkCgljYWxsc3ViIGRpc2FibGVPcHRJbnNGcm9tCglwdXNoaW50IDEKCXJldHVybgoKLy8gZGlzYWJsZU9wdEluc0Zyb20oY3JlYXRvcjogQWRkcmVzcyk6IHZvaWQKLy8KLy8gRGlzYWJsZSBvcHQtaW5zIGZvciBBU0FzIGZyb20gdGhlIGdpdmVuIGNyZWF0b3IKZGlzYWJsZU9wdEluc0Zyb206Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9sc2lnX3dpdGhfYXBwL2xzaWdfd2l0aF9hcHAuYWxnby50czo0NgoJLy8gdGhpcy5hbGxvd2VkQ3JlYXRvcnMoW3RoaXMudHhuLnNlbmRlciwgY3JlYXRvcl0pLnZhbHVlID0gZmFsc2UKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdG9yOiBBZGRyZXNzCgljb25jYXQKCXB1c2hpbnQgMAoJYnl0ZSAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cglib3hfcHV0CglyZXRzdWIKCi8vIHZlcmlmeUNyZWF0b3IoYXhmZXIpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeUNyZWF0b3I6CgkvLyBvcHRJbjogYXhmZXIKCXR4biBHcm91cEluZGV4CglwdXNoaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCXB1c2hpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCAwIChvcHRJbikgZm9yIHZlcmlmeUNyZWF0b3IgbXVzdCBiZSBhIGF4ZmVyIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeUNyZWF0b3IoYXhmZXIpdm9pZAoJY2FsbHN1YiB2ZXJpZnlDcmVhdG9yCglwdXNoaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5Q3JlYXRvcihvcHRJbjogQXNzZXRUcmFuc2ZlclR4bik6IHZvaWQKdmVyaWZ5Q3JlYXRvcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL2xzaWdfd2l0aF9hcHAvbHNpZ193aXRoX2FwcC5hbGdvLnRzOjUyCgkvLyBhc3NlcnQodGhpcy5hbGxvd2VkQ3JlYXRvcnMoW29wdEluLnNlbmRlciwgb3B0SW4ueGZlckFzc2V0LmNyZWF0b3JdKS52YWx1ZSkKCWZyYW1lX2RpZyAtMSAvLyBvcHRJbjogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gb3B0SW46IEFzc2V0VHJhbnNmZXJUeG4KCWd0eG5zIFhmZXJBc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFsbG93ZWRDcmVhdG9ycyhbb3B0SW4uc2VuZGVyLCBvcHRJbi54ZmVyQXNzZXQuY3JlYXRvcl0pLnZhbHVlCglhc3NlcnQKCXB1c2hpbnQgMAoJZ2V0Yml0Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjFiZjJjYTggLy8gbWV0aG9kICJhbGxvd09wdEluc0Zyb20oYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4YmMyOGFjMmIgLy8gbWV0aG9kICJkaXNhYmxlT3B0SW5zRnJvbShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZDVhYTcyNyAvLyBtZXRob2QgInZlcmlmeUNyZWF0b3IoYXhmZXIpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWxsb3dPcHRJbnNGcm9tICphYmlfcm91dGVfZGlzYWJsZU9wdEluc0Zyb20gKmFiaV9yb3V0ZV92ZXJpZnlDcmVhdG9yCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAgJgEBADEYFIEGCzEZCI0MAHAAAAAAAAAAAAAAAGIAAAAAAAAAAAAAADYaAUkVJBJEiAACIkOKAQAxAIv/UCIoI08CVL+JNhoBSRUkEkSIAAIiQ4oBADEAi/9QIygjTwJUv4kxFiIJSTgQgQQSRIgAAiJDigEAi/84AIv/OBFxC0hQvkQjU0SJIkOABLhEezY2GgCOAf/xAIAE8b8sqIAEvCisK4AEjVqnJzYaAI4D/3T/kf+uAA==", + "approval": "CiYBAQAxGBSBBgsxGQiNDACAAAAAAAAAAAAAAAByAAAAAAAAAAAAAAA2GgFJFYEgEkSIAAOBAUOKAQAxAIv/UIEBgAEAgQBPAlS/iTYaAUkVgSASRIgAA4EBQ4oBADEAi/9QgQCAAQCBAE8CVL+JMRaBAQlJOBCBBBJEiAADgQFDigEAi/84AIv/OBFxC0hQvkSBAFNEiYEBQ4AEuER7NjYaAI4B//AAgATxvyyogAS8KKwrgASNWqcnNhoAjgP/ZP+H/6oA", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/lsig_with_app/artifacts/CreatorVerifier.src_map.json b/examples/lsig_with_app/artifacts/CreatorVerifier.src_map.json index fe2217760..084197ca9 100644 --- a/examples/lsig_with_app/artifacts/CreatorVerifier.src_map.json +++ b/examples/lsig_with_app/artifacts/CreatorVerifier.src_map.json @@ -1,69 +1,75 @@ [ { "teal": 1, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 + 0 ] }, { - "teal": 13, - "source": 35, + "teal": 2, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 10, - 11 + 1, + 2, + 3, + 4 ] }, { "teal": 14, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 12 + 5, + 6 ] }, { "teal": 15, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 13, - 14 + 7 ] }, { "teal": 16, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 15 + 8, + 9 ] }, { "teal": 17, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 16, - 17 + 10 ] }, { "teal": 18, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 18 + 11, + 12 ] }, { "teal": 19, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ + 13 + ] + }, + { + "teal": 20, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", + "pc": [ + 14, + 15, + 16, + 17, + 18, 19, 20, 21, @@ -84,615 +90,603 @@ 36, 37, 38, - 39, - 40, - 41, - 42, - 43, - 44 + 39 ] }, { - "teal": 23, - "source": 35, + "teal": 24, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 40, - "pc": [ - 46, - 47, - 48 + 40 ] }, { "teal": 29, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 49 + 41, + 42, + 43 ] }, { "teal": 30, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 50 + 44 ] }, { "teal": 31, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 51 + 45 ] }, { "teal": 32, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 52 + 46, + 47 ] }, { - "teal": 35, - "source": 40, - "errorMessage": "argument 0 (creator) for allowOptInsFrom must be a address", + "teal": 33, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 53 + 48 ] }, { - "teal": 38, - "source": 40, + "teal": 36, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", + "errorMessage": "argument 0 (creator) for allowOptInsFrom must be a address", "pc": [ - 54, - 55, - 56 + 49 ] }, { "teal": 39, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 57 + 50, + 51, + 52 ] }, { "teal": 40, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 58 + 53, + 54 ] }, { - "teal": 46, - "source": 40, + "teal": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 59, - 60, - 61 + 55 ] }, { - "teal": 50, - "source": 41, + "teal": 47, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 62, - 63 + 56, + 57, + 58 ] }, { "teal": 51, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ - 64, - 65 + 59, + 60 ] }, { "teal": 52, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ - 66 + 61, + 62 ] }, { "teal": 53, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ - 67 + 63 ] }, { "teal": 54, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ - 68 + 64, + 65 ] }, { "teal": 55, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ - 69 + 66, + 67, + 68 ] }, { "teal": 56, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ - 70, - 71 + 69, + 70 ] }, { "teal": 57, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ + 71, 72 ] }, { "teal": 58, - "source": 41, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ 73 ] }, { "teal": 59, - "source": 40, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:41", "pc": [ 74 ] }, { - "teal": 64, - "source": 45, + "teal": 60, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:40", "pc": [ - 75, - 76, - 77 + 75 ] }, { "teal": 65, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ + 76, + 77, 78 ] }, { "teal": 66, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ 79 ] }, { "teal": 67, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ 80 ] }, { "teal": 68, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ - 81 + 81, + 82 ] }, { - "teal": 71, - "source": 45, - "errorMessage": "argument 0 (creator) for disableOptInsFrom must be a address", + "teal": 69, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ - 82 + 83 ] }, { - "teal": 74, - "source": 45, + "teal": 72, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", + "errorMessage": "argument 0 (creator) for disableOptInsFrom must be a address", "pc": [ - 83, - 84, - 85 + 84 ] }, { "teal": 75, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ - 86 + 85, + 86, + 87 ] }, { "teal": 76, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ - 87 + 88, + 89 ] }, { - "teal": 82, - "source": 45, + "teal": 77, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ - 88, - 89, 90 ] }, { - "teal": 86, - "source": 46, + "teal": 83, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ 91, - 92 + 92, + 93 ] }, { "teal": 87, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 93, - 94 + 94, + 95 ] }, { "teal": 88, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 95 + 96, + 97 ] }, { "teal": 89, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 96 + 98 ] }, { "teal": 90, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 97 + 99, + 100 ] }, { "teal": 91, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 98 + 101, + 102, + 103 ] }, { "teal": 92, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 99, - 100 + 104, + 105 ] }, { "teal": 93, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 101 + 106, + 107 ] }, { "teal": 94, - "source": 46, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 102 + 108 ] }, { "teal": 95, - "source": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:46", "pc": [ - 103 + 109 ] }, { - "teal": 100, - "source": 50, + "teal": 96, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:45", "pc": [ - 104, - 105 + 110 ] }, { "teal": 101, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 106 + 111, + 112 ] }, { "teal": 102, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 107 + 113, + 114 ] }, { "teal": 103, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 108 + 115 ] }, { "teal": 104, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 109, - 110 + 116 ] }, { "teal": 105, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 111, - 112 + 117, + 118 ] }, { "teal": 106, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 113 + 119, + 120 ] }, { - "teal": 109, - "source": 50, - "errorMessage": "argument 0 (optIn) for verifyCreator must be a axfer transaction", + "teal": 107, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 114 + 121 ] }, { - "teal": 112, - "source": 50, + "teal": 110, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", + "errorMessage": "argument 0 (optIn) for verifyCreator must be a axfer transaction", "pc": [ - 115, - 116, - 117 + 122 ] }, { "teal": 113, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 118 + 123, + 124, + 125 ] }, { "teal": 114, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 119 + 126, + 127 ] }, { - "teal": 118, - "source": 50, + "teal": 115, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 120, - 121, - 122 + 128 ] }, { - "teal": 122, - "source": 52, + "teal": 119, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 123, - 124 + 129, + 130, + 131 ] }, { "teal": 123, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 125, - 126 + 132, + 133 ] }, { "teal": 124, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 127, - 128 + 134, + 135 ] }, { "teal": 125, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 129, - 130 + 136, + 137 ] }, { "teal": 126, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 131, - 132 + 138, + 139 ] }, { "teal": 127, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 133 + 140, + 141 ] }, { "teal": 128, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 134 + 142 ] }, { "teal": 129, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 135 + 143 ] }, { - "teal": 132, - "source": 52, - "errorMessage": "box value does not exist: this.allowedCreators([optIn.sender, optIn.xferAsset.creator]).value", + "teal": 130, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 136 + 144 ] }, { "teal": 133, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", + "errorMessage": "box value does not exist: this.allowedCreators([optIn.sender, optIn.xferAsset.creator]).value", "pc": [ - 137 + 145 ] }, { "teal": 134, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 138 + 146, + 147 ] }, { "teal": 135, - "source": 52, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 139 + 148 ] }, { "teal": 136, - "source": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:52", "pc": [ - 140 + 149 ] }, { - "teal": 139, - "source": 35, + "teal": 137, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:50", "pc": [ - 141 + 150 ] }, { "teal": 140, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 142 + 151, + 152 ] }, { - "teal": 143, - "source": 35, + "teal": 141, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 143, - 144, - 145, - 146, - 147, - 148 + 153 ] }, { "teal": 144, - "source": 35, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 145, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 152, - 153, 154, - 155 - ] - }, - { - "teal": 148, - "source": 35, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 156 + 155, + 156, + 157, + 158, + 159 ] }, { - "teal": 151, - "source": 35, + "teal": 145, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 157, - 158, - 159, 160, 161, 162 ] }, { - "teal": 152, - "source": 35, + "teal": 146, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ 163, 164, 165, - 166, - 167, - 168 + 166 ] }, { - "teal": 153, - "source": 35, + "teal": 149, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ + 167 + ] + }, + { + "teal": 152, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", + "pc": [ + 168, 169, 170, 171, 172, - 173, - 174 + 173 ] }, { - "teal": 154, - "source": 35, + "teal": 153, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ + 174, 175, 176, - 177 + 177, + 178, + 179 ] }, { - "teal": 155, - "source": 35, + "teal": 154, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 178, - 179, 180, 181, 182, @@ -702,11 +696,34 @@ ] }, { - "teal": 158, - "source": 35, + "teal": 155, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", + "pc": [ + 186, + 187, + 188 + ] + }, + { + "teal": 156, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", + "pc": [ + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196 + ] + }, + { + "teal": 159, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 186 + 197 ] } ] \ No newline at end of file diff --git a/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal b/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal index dec160c35..d707f2ed7 100644 --- a/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal +++ b/examples/lsig_with_app/artifacts/OptInLsig.lsig.teal @@ -1,16 +1,15 @@ #pragma version 10 //#pragma mode logicsig +intcblock TMPL_APP_ID -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // The following lines of TEAL are used to initialize template variables in scratch slots -pushbytes TMPL_APP_ID -btoi -store 200 +intc 0 // TMPL_APP_ID -// The address of this logic signature is VQBSE3CEW7ZTNZTTHP4DCO25UEUX4G7QF2HN3BRIXPMB2V6EXZJ7OGNLCE +// The address of this logic signature is 6DI6XV2I4YXCM6Z77FT32VQAL7TGPZWKFAONTFURLTTHK7MTY52BT77E5I b *route_logic @@ -18,7 +17,7 @@ b *route_logic *route_logic: // execute logic()void callsub logic - int 1 + pushint 1 return // logic(): void @@ -28,7 +27,7 @@ logic: proto 0 0 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // examples/lsig_with_app/lsig_with_app.algo.ts:14 // verifyAssetTransferTxn(this.txn, { @@ -44,7 +43,7 @@ logic: // }) // verify axfer txn TypeEnum - int axfer + pushint 4 // axfer == // transaction verification failed: {"txn":"this.txn","field":"typeEnum","expected":"axfer"} @@ -52,7 +51,7 @@ logic: // verify assetAmount txn AssetAmount - int 0 + pushint 0 == // transaction verification failed: {"txn":"this.txn","field":"assetAmount","expected":"0"} @@ -68,7 +67,7 @@ logic: // verify fee txn Fee - int 0 + pushint 0 == // transaction verification failed: {"txn":"this.txn","field":"fee","expected":"0"} @@ -93,7 +92,7 @@ logic: // examples/lsig_with_app/lsig_with_app.algo.ts:26 // appCall = this.txnGroup[this.txn.groupIndex + 1] txn GroupIndex - int 1 + pushint 1 + frame_bury 0 // appCall: txn @@ -101,7 +100,7 @@ logic: // assert(appCall.applicationID === this.APP_ID) frame_dig 0 // appCall: txn gtxns ApplicationID - load 200 // TMPL_APP_ID + intc 0 // TMPL_APP_ID == assert @@ -109,7 +108,7 @@ logic: // assert(appCall.applicationArgs[0] === method('verifyCreator(axfer,asset)void')) frame_dig 0 // appCall: txn gtxns ApplicationArgs 0 - method "verifyCreator(axfer,asset)void" + pushbytes 0xd47b9716 // method "verifyCreator(axfer,asset)void" == assert retsub \ No newline at end of file diff --git a/examples/lsig_with_app/artifacts/OptInLsig.src_map.json b/examples/lsig_with_app/artifacts/OptInLsig.src_map.json index 05c0d2b84..987e04535 100644 --- a/examples/lsig_with_app/artifacts/OptInLsig.src_map.json +++ b/examples/lsig_with_app/artifacts/OptInLsig.src_map.json @@ -1,395 +1,371 @@ [ { "teal": 1, - "source": 8, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:8" }, { - "teal": 9, - "source": 35, - "pc": [ - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ] + "teal": 3, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:8" }, { "teal": 10, - "source": 35, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:35", "pc": [ - 15 + 1 ] }, { - "teal": 11, - "source": 35, + "teal": 14, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:8", "pc": [ - 16, - 17 + 2, + 3, + 4 ] }, { - "teal": 15, - "source": 8, + "teal": 19, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 18, - 19, - 20 + 5, + 6, + 7 ] }, { "teal": 20, - "source": 12, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 21, - 22, - 23 + 8, + 9 ] }, { "teal": 21, - "source": 12, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 24 + 10 ] }, { - "teal": 22, - "source": 12, + "teal": 27, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 25 + 11, + 12, + 13 ] }, { - "teal": 28, - "source": 12, + "teal": 30, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 26, - 27, - 28 + 14, + 15 ] }, { - "teal": 31, - "source": 12, + "teal": 45, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", "pc": [ - 29, - 30 + 16, + 17 ] }, { "teal": 46, - "source": 14, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", "pc": [ - 31, - 32 + 18, + 19 ] }, { "teal": 47, - "source": 14, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", "pc": [ - 33, - 34 + 20 ] }, { - "teal": 48, - "source": 14, + "teal": 50, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:14", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}", "pc": [ - 35 + 21 ] }, { - "teal": 51, - "source": 14, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}", + "teal": 53, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", "pc": [ - 36 + 22, + 23 ] }, { "teal": 54, - "source": 15, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", "pc": [ - 37, - 38 + 24, + 25 ] }, { "teal": 55, - "source": 15, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", "pc": [ - 39 + 26 ] }, { - "teal": 56, - "source": 15, + "teal": 58, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:15", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetAmount\",\"expected\":\"0\"}", "pc": [ - 40 + 27 ] }, { - "teal": 59, - "source": 15, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetAmount\",\"expected\":\"0\"}", + "teal": 61, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", "pc": [ - 41 + 28, + 29 ] }, { "teal": 62, - "source": 16, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", "pc": [ - 42, - 43 + 30, + 31 ] }, { "teal": 63, - "source": 16, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", "pc": [ - 44, - 45 + 32 ] }, { - "teal": 64, - "source": 16, + "teal": 66, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:16", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetReceiver\",\"expected\":\"this.txn.sender\"}", "pc": [ - 46 + 33 ] }, { - "teal": 67, - "source": 16, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetReceiver\",\"expected\":\"this.txn.sender\"}", + "teal": 69, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", "pc": [ - 47 + 34, + 35 ] }, { "teal": 70, - "source": 19, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", "pc": [ - 48, - 49 + 36, + 37 ] }, { "teal": 71, - "source": 19, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", "pc": [ - 50 + 38 ] }, { - "teal": 72, - "source": 19, + "teal": 74, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:19", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"fee\",\"expected\":\"0\"}", "pc": [ - 51 + 39 ] }, { - "teal": 75, - "source": 19, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"fee\",\"expected\":\"0\"}", + "teal": 77, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", "pc": [ - 52 + 40, + 41 ] }, { "teal": 78, - "source": 21, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", "pc": [ - 53, - 54 + 42, + 43 ] }, { "teal": 79, - "source": 21, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", "pc": [ - 55, - 56 + 44 ] }, { - "teal": 80, - "source": 21, + "teal": 82, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:21", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"rekeyTo\",\"expected\":\"globals.zeroAddress\"}", "pc": [ - 57 + 45 ] }, { - "teal": 83, - "source": 21, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"rekeyTo\",\"expected\":\"globals.zeroAddress\"}", + "teal": 85, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", "pc": [ - 58 + 46, + 47 ] }, { "teal": 86, - "source": 23, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", "pc": [ - 59, - 60 + 48, + 49 ] }, { "teal": 87, - "source": 23, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", "pc": [ - 61, - 62 + 50 ] }, { - "teal": 88, - "source": 23, + "teal": 90, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:23", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetCloseTo\",\"expected\":\"globals.zeroAddress\"}", "pc": [ - 63 + 51 ] }, { - "teal": 91, - "source": 23, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetCloseTo\",\"expected\":\"globals.zeroAddress\"}", + "teal": 94, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 64 + 52, + 53 ] }, { "teal": 95, - "source": 26, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 65, - 66 + 54, + 55 ] }, { "teal": 96, - "source": 26, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 67 + 56 ] }, { "teal": 97, - "source": 26, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:26", "pc": [ - 68 + 57, + 58 ] }, { - "teal": 98, - "source": 26, + "teal": 101, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 69, - 70 + 59, + 60 ] }, { "teal": 102, - "source": 29, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 71, - 72 + 61, + 62 ] }, { "teal": 103, - "source": 29, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 73, - 74 + 63 ] }, { "teal": 104, - "source": 29, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 75, - 76 + 64 ] }, { "teal": 105, - "source": 29, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:29", "pc": [ - 77 + 65 ] }, { - "teal": 106, - "source": 29, + "teal": 109, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 78 + 66, + 67 ] }, { "teal": 110, - "source": 30, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 79, - 80 + 68, + 69, + 70 ] }, { "teal": 111, - "source": 30, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 81, - 82, - 83 + 71, + 72, + 73, + 74, + 75, + 76 ] }, { "teal": 112, - "source": 30, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 84, - 85, - 86, - 87, - 88, - 89 + 77 ] }, { "teal": 113, - "source": 30, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:30", "pc": [ - 90 + 78 ] }, { "teal": 114, - "source": 30, - "pc": [ - 91 - ] - }, - { - "teal": 115, - "source": 12, + "source": "examples/lsig_with_app/lsig_with_app.algo.ts:12", "pc": [ - 92 + 79 ] } ] \ No newline at end of file diff --git a/examples/lsig_with_app/lsig_with_app.test.ts b/examples/lsig_with_app/lsig_with_app.test.ts index 091d0370c..5e23c80ce 100644 --- a/examples/lsig_with_app/lsig_with_app.test.ts +++ b/examples/lsig_with_app/lsig_with_app.test.ts @@ -11,7 +11,7 @@ algokit.Config.configure({ populateAppCallResources: true }); async function getLsigAccount(algod: algosdk.Algodv2, appID: bigint, tealTemplate: string) { // Replace the template variable in the lsig TEAL - const teal = tealTemplate.replace('TMPL_APP_ID', `0x${appID.toString(16).padStart(16, '0')}`); + const teal = tealTemplate.replace('TMPL_APP_ID', appID.toString()); // Compile the TEAL const result = await algod.compile(Buffer.from(teal)).do(); diff --git a/examples/merkle/artifacts/MerkleTree.approval.teal b/examples/merkle/artifacts/MerkleTree.approval.teal index ea1ccef67..3cdcdd8f4 100644 --- a/examples/merkle/artifacts/MerkleTree.approval.teal +++ b/examples/merkle/artifacts/MerkleTree.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 +bytecblock 0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550000000000000000000000000000000000000000000000000000000000000000 0x0000000000000000000000000000000000000000000000000000000000000000 0x726f6f74 0x 0x73697a65 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -42,14 +44,14 @@ calcInitRoot: // examples/merkle/merkle.algo.ts:19 // for (let i = 0; i < TREE_DEPTH; i = i + 1) - int 0 + pushint 0 frame_bury 1 // i: uint64 *for_0: // examples/merkle/merkle.algo.ts:19 // i < TREE_DEPTH frame_dig 1 // i: uint64 - int 3 + pushint 3 < bz *for_0_end @@ -101,9 +103,9 @@ isRightSibling: // examples/merkle/merkle.algo.ts:31 // return getbyte(elem, 0) === RIGHT_SIBLING_PREFIX; frame_dig -1 // elem: Branch - int 0 + pushint 0 getbyte - int 170 + pushint 170 == retsub @@ -117,14 +119,14 @@ calcRoot: // examples/merkle/merkle.algo.ts:37 // for (let i = 0; i < TREE_DEPTH; i = i + 1) - int 0 + pushint 0 frame_bury 0 // i: uint64 *for_1: // examples/merkle/merkle.algo.ts:37 // i < TREE_DEPTH frame_dig 0 // i: uint64 - int 3 + pushint 3 < bz *for_1_end frame_dig 0 // i: uint64 @@ -135,9 +137,9 @@ calcRoot: // this.isRightSibling(elem) frame_dig -2 // path: Path frame_dig 1 // saved accessor: accessor//0//elem - int 33 + pushint 33 * // acc * typeLength - int 33 + pushint 33 extract3 callsub isRightSibling bz *if0_else @@ -147,9 +149,9 @@ calcRoot: // result = this.hashConcat(result, extract3(elem, 1, 32) as bytes32) frame_dig -2 // path: Path frame_dig 1 // saved accessor: accessor//0//elem - int 33 + pushint 33 * // acc * typeLength - int 33 + pushint 33 extract3 extract 1 32 byte 0x0000000000000000000000000000000000000000000000000000000000000000 @@ -171,9 +173,9 @@ calcRoot: frame_dig -1 // leaf: bytes32 frame_dig -2 // path: Path frame_dig 1 // saved accessor: accessor//0//elem - int 33 + pushint 33 * // acc * typeLength - int 33 + pushint 33 extract3 extract 1 32 byte 0x0000000000000000000000000000000000000000000000000000000000000000 @@ -258,7 +260,7 @@ createApplication: txna ApplicationArgs 2 dup len - int 99 + pushint 99 == // argument 0 (path) for verify must be a byte[33][3] @@ -295,7 +297,7 @@ verify: txna ApplicationArgs 2 dup len - int 99 + pushint 99 == // argument 0 (path) for appendLeaf must be a byte[33][3] @@ -361,7 +363,7 @@ appendLeaf: txna ApplicationArgs 3 dup len - int 99 + pushint 99 == // argument 0 (path) for updateLeaf must be a byte[33][3] @@ -413,7 +415,7 @@ updateLeaf: retsub *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -421,9 +423,9 @@ updateLeaf: err *call_NoOp: - method "verify(byte[],byte[33][3])void" - method "appendLeaf(byte[],byte[33][3])void" - method "updateLeaf(byte[],byte[],byte[33][3])void" + pushbytes 0x506cb8d8 // method "verify(byte[],byte[33][3])void" + pushbytes 0x04f63238 // method "appendLeaf(byte[],byte[33][3])void" + pushbytes 0x255d93e3 // method "updateLeaf(byte[],byte[],byte[33][3])void" txna ApplicationArgs 0 match *abi_route_verify *abi_route_appendLeaf *abi_route_updateLeaf @@ -431,7 +433,7 @@ updateLeaf: err *call_DeleteApplication: - method "deleteApplication()void" + pushbytes 0x2487c32c // method "deleteApplication()void" txna ApplicationArgs 0 match *abi_route_deleteApplication diff --git a/examples/merkle/artifacts/MerkleTree.arc32.json b/examples/merkle/artifacts/MerkleTree.arc32.json index 0e3735578..fa6b59655 100644 --- a/examples/merkle/artifacts/MerkleTree.arc32.json +++ b/examples/merkle/artifacts/MerkleTree.arc32.json @@ -63,7 +63,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY2FsY0luaXRSb290KCk6IGJ5dGVzMzIKY2FsY0luaXRSb290OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxNwoJLy8gcmVzdWx0ID0gaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIKCWJ5dGUgMHhlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweAoJZHVwCgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMwoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyMAoJLy8gcmVzdWx0ID0gc2hhMjU2KHJlc3VsdCArIHJlc3VsdCkKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWNvbmNhdAoJc2hhMjU2CglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjIzCgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gaGFzaENvbmNhdChsZWZ0OiBieXRlczMyLCByaWdodDogYnl0ZXMzMik6IGJ5dGVzMzIKaGFzaENvbmNhdDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyNwoJLy8gcmV0dXJuIHNoYTI1NihsZWZ0ICsgcmlnaHQpOwoJZnJhbWVfZGlnIC0xIC8vIGxlZnQ6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyByaWdodDogYnl0ZXMzMgoJY29uY2F0CglzaGEyNTYKCXJldHN1YgoKLy8gaXNSaWdodFNpYmxpbmcoZWxlbTogQnJhbmNoKTogYm9vbGVhbgppc1JpZ2h0U2libGluZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozMQoJLy8gcmV0dXJuIGdldGJ5dGUoZWxlbSwgMCkgPT09IFJJR0hUX1NJQkxJTkdfUFJFRklYOwoJZnJhbWVfZGlnIC0xIC8vIGVsZW06IEJyYW5jaAoJaW50IDAKCWdldGJ5dGUKCWludCAxNzAKCT09CglyZXRzdWIKCi8vIGNhbGNSb290KGxlYWY6IGJ5dGVzMzIsIHBhdGg6IFBhdGgpOiBieXRlczMyCmNhbGNSb290OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozNwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMwoJPAoJYnogKmZvcl8xX2VuZAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9lbGVtCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0MAoJLy8gdGhpcy5pc1JpZ2h0U2libGluZyhlbGVtKQoJZnJhbWVfZGlnIC0yIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAxIC8vIHNhdmVkIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoJaW50IDMzCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAzMwoJZXh0cmFjdDMKCWNhbGxzdWIgaXNSaWdodFNpYmxpbmcKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQxCgkvLyByZXN1bHQgPSB0aGlzLmhhc2hDb25jYXQocmVzdWx0LCBleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMikKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCWludCAzMwoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMzMKCWV4dHJhY3QzCglleHRyYWN0IDEgMzIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWR1cAoJZXh0cmFjdCAzMiAwCglieXRlIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gbGVhZjogYnl0ZXMzMgoJY2FsbHN1YiBoYXNoQ29uY2F0CglmcmFtZV9idXJ5IC0xIC8vIHJlc3VsdDogYnl0ZXMzMgoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQzCgkvLyByZXN1bHQgPSB0aGlzLmhhc2hDb25jYXQoZXh0cmFjdDMoZWxlbSwgMSwgMzIpIGFzIGJ5dGVzMzIsIHJlc3VsdCkKCWZyYW1lX2RpZyAtMSAvLyBsZWFmOiBieXRlczMyCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIDEgLy8gc2F2ZWQgYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9lbGVtCglpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDMzCglleHRyYWN0MwoJZXh0cmFjdCAxIDMyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMzIgMAoJYnl0ZSAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBoYXNoQ29uY2F0CglmcmFtZV9idXJ5IC0xIC8vIHJlc3VsdDogYnl0ZXMzMgoKKmlmMF9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MzcKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEKCipmb3JfMV9lbmQ6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDcKCS8vIHJldHVybiByZXN1bHQ7CglmcmFtZV9kaWcgLTEgLy8gbGVhZjogYnl0ZXMzMgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKZGVsZXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NTEKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFwcC5jcmVhdG9yIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglhcHBfcGFyYW1zX2dldCBBcHBDcmVhdG9yCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5jcmVhdG9yIn0KCWFzc2VydAoJcmV0c3ViCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo1NQoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjSW5pdFJvb3QoKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJY2FsbHN1YiBjYWxjSW5pdFJvb3QKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeToKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciB2ZXJpZnkgbXVzdCBiZSBhIGJ5dGVbMzNdWzNdCglhc3NlcnQKCgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKCWNhbGxzdWIgdmVyaWZ5CglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnkoZGF0YTogYnl0ZXMsIHBhdGg6IFBhdGgpOiB2b2lkCnZlcmlmeToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo1OQoJLy8gYXNzZXJ0KHRoaXMucm9vdC52YWx1ZSA9PT0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcHBlbmRMZWFmKGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCiphYmlfcm91dGVfYXBwZW5kTGVhZjoKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciBhcHBlbmRMZWFmIG11c3QgYmUgYSBieXRlWzMzXVszXQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiBhcHBlbmRMZWFmCglpbnQgMQoJcmV0dXJuCgovLyBhcHBlbmRMZWFmKGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAphcHBlbmRMZWFmOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQoZGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3QoaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIsIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo2NgoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjY4CgkvLyB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUudmFsdWUgKyAxCglieXRlIDB4NzM2OTdhNjUgLy8gInNpemUiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgOTkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF0aCkgZm9yIHVwZGF0ZUxlYWYgbXVzdCBiZSBhIGJ5dGVbMzNdWzNdCglhc3NlcnQKCgkvLyBuZXdEYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gb2xkRGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKCWNhbGxzdWIgdXBkYXRlTGVhZgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTGVhZihvbGREYXRhOiBieXRlcywgbmV3RGF0YTogYnl0ZXMsIHBhdGg6IFBhdGgpOiB2b2lkCnVwZGF0ZUxlYWY6Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzIKCS8vIGFzc2VydChuZXdEYXRhICE9PSAnJykKCWZyYW1lX2RpZyAtMiAvLyBuZXdEYXRhOiBieXRlcwoJYnl0ZSAweCAvLyAiIgoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3MwoJLy8gYXNzZXJ0KHRoaXMucm9vdC52YWx1ZSA9PT0gdGhpcy5jYWxjUm9vdChzaGEyNTYob2xkRGF0YSksIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMyAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTEgLy8gb2xkRGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3NQoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYobmV3RGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTMgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0yIC8vIG5ld0RhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCW1ldGhvZCAiYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCW1ldGhvZCAidXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ZlcmlmeSAqYWJpX3JvdXRlX2FwcGVuZExlYWYgKmFiaV9yb3V0ZV91cGRhdGVMZWFmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9EZWxldGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAiZGVsZXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2RlbGV0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgRGVsZXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHhlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMHg3MjZmNmY3NCAweCAweDczNjk3YTY1CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9EZWxldGVBcHBsaWNhdGlvbiAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNhbGNJbml0Um9vdCgpOiBieXRlczMyCmNhbGNJbml0Um9vdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTcKCS8vIHJlc3VsdCA9IGhleChFTVBUWV9IQVNIKSBhcyBieXRlczMyCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgVFJFRV9ERVBUSDsgaSA9IGkgKyAxKQoJcHVzaGludCAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTkKCS8vIGkgPCBUUkVFX0RFUFRICglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXB1c2hpbnQgMwoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyMAoJLy8gcmVzdWx0ID0gc2hhMjU2KHJlc3VsdCArIHJlc3VsdCkKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWNvbmNhdAoJc2hhMjU2CglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjIzCgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gaGFzaENvbmNhdChsZWZ0OiBieXRlczMyLCByaWdodDogYnl0ZXMzMik6IGJ5dGVzMzIKaGFzaENvbmNhdDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyNwoJLy8gcmV0dXJuIHNoYTI1NihsZWZ0ICsgcmlnaHQpOwoJZnJhbWVfZGlnIC0xIC8vIGxlZnQ6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyByaWdodDogYnl0ZXMzMgoJY29uY2F0CglzaGEyNTYKCXJldHN1YgoKLy8gaXNSaWdodFNpYmxpbmcoZWxlbTogQnJhbmNoKTogYm9vbGVhbgppc1JpZ2h0U2libGluZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozMQoJLy8gcmV0dXJuIGdldGJ5dGUoZWxlbSwgMCkgPT09IFJJR0hUX1NJQkxJTkdfUFJFRklYOwoJZnJhbWVfZGlnIC0xIC8vIGVsZW06IEJyYW5jaAoJcHVzaGludCAwCglnZXRieXRlCglwdXNoaW50IDE3MAoJPT0KCXJldHN1YgoKLy8gY2FsY1Jvb3QobGVhZjogYnl0ZXMzMiwgcGF0aDogUGF0aCk6IGJ5dGVzMzIKY2FsY1Jvb3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IFRSRUVfREVQVEg7IGkgPSBpICsgMSkKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDMKCTwKCWJ6ICpmb3JfMV9lbmQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDAKCS8vIHRoaXMuaXNSaWdodFNpYmxpbmcoZWxlbSkKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCXB1c2hpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAzMwoJZXh0cmFjdDMKCWNhbGxzdWIgaXNSaWdodFNpYmxpbmcKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQxCgkvLyByZXN1bHQgPSB0aGlzLmhhc2hDb25jYXQocmVzdWx0LCBleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMikKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCXB1c2hpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAzMwoJZXh0cmFjdDMKCWV4dHJhY3QgMSAzMgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDMyIDAKCWJ5dGUgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMSAvLyBsZWFmOiBieXRlczMyCgljYWxsc3ViIGhhc2hDb25jYXQKCWZyYW1lX2J1cnkgLTEgLy8gcmVzdWx0OiBieXRlczMyCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDMKCS8vIHJlc3VsdCA9IHRoaXMuaGFzaENvbmNhdChleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMiwgcmVzdWx0KQoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCXB1c2hpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAzMwoJZXh0cmFjdDMKCWV4dHJhY3QgMSAzMgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDMyIDAKCWJ5dGUgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMzIKCWNhbGxzdWIgaGFzaENvbmNhdAoJZnJhbWVfYnVyeSAtMSAvLyByZXN1bHQ6IGJ5dGVzMzIKCippZjBfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQ3CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGRlbGV0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBsaWNhdGlvbigpOiB2b2lkCmRlbGV0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjUxCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hcHAuY3JlYXRvciB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJcG9wCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuY3JlYXRvciJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NTUKCS8vIHRoaXMucm9vdC52YWx1ZSA9IHRoaXMuY2FsY0luaXRSb290KCkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWNhbGxzdWIgY2FsY0luaXRSb290CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnk6CgkvLyBwYXRoOiBieXRlWzMzXVszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCXB1c2hpbnQgOTkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF0aCkgZm9yIHZlcmlmeSBtdXN0IGJlIGEgYnl0ZVszM11bM10KCWFzc2VydAoKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiB2ZXJpZnkKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeShkYXRhOiBieXRlcywgcGF0aDogUGF0aCk6IHZvaWQKdmVyaWZ5OgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjU5CgkvLyBhc3NlcnQodGhpcy5yb290LnZhbHVlID09PSB0aGlzLmNhbGNSb290KHNoYTI1NihkYXRhKSwgcGF0aCkpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAtMSAvLyBkYXRhOiBieXRlcwoJc2hhMjU2CgljYWxsc3ViIGNhbGNSb290Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFwcGVuZExlYWYoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV9hcHBlbmRMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciBhcHBlbmRMZWFmIG11c3QgYmUgYSBieXRlWzMzXVszXQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiBhcHBlbmRMZWFmCglpbnQgMQoJcmV0dXJuCgovLyBhcHBlbmRMZWFmKGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAphcHBlbmRMZWFmOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQoZGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3QoaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIsIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo2NgoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjY4CgkvLyB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUudmFsdWUgKyAxCglieXRlIDB4NzM2OTdhNjUgLy8gInNpemUiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglwdXNoaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciB1cGRhdGVMZWFmIG11c3QgYmUgYSBieXRlWzMzXVszXQoJYXNzZXJ0CgoJLy8gbmV3RGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG9sZERhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUxlYWYoYnl0ZVtdLGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUxlYWYKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUxlYWYob2xkRGF0YTogYnl0ZXMsIG5ld0RhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAp1cGRhdGVMZWFmOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjcyCgkvLyBhc3NlcnQobmV3RGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTIgLy8gbmV3RGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzMKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3Qoc2hhMjU2KG9sZERhdGEpLCBwYXRoKSkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTMgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIG9sZERhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzUKCS8vIHRoaXMucm9vdC52YWx1ZSA9IHRoaXMuY2FsY1Jvb3Qoc2hhMjU2KG5ld0RhdGEpLCBwYXRoKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJZnJhbWVfZGlnIC0zIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAtMiAvLyBuZXdEYXRhOiBieXRlcwoJc2hhMjU2CgljYWxsc3ViIGNhbGNSb290CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NTA2Y2I4ZDggLy8gbWV0aG9kICJ2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCglwdXNoYnl0ZXMgMHgwNGY2MzIzOCAvLyBtZXRob2QgImFwcGVuZExlYWYoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCglwdXNoYnl0ZXMgMHgyNTVkOTNlMyAvLyBtZXRob2QgInVwZGF0ZUxlYWYoYnl0ZVtdLGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV92ZXJpZnkgKmFiaV9yb3V0ZV9hcHBlbmRMZWFmICphYmlfcm91dGVfdXBkYXRlTGVhZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfRGVsZXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHgyNDg3YzMyYyAvLyBtZXRob2QgImRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIERlbGV0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/merkle/artifacts/MerkleTree.arc56_draft.json b/examples/merkle/artifacts/MerkleTree.arc56_draft.json index d8af63072..95b0c60e1 100644 --- a/examples/merkle/artifacts/MerkleTree.arc56_draft.json +++ b/examples/merkle/artifacts/MerkleTree.arc56_draft.json @@ -142,2077 +142,70 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 11, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 13, - "source": 11, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 14, - "source": 11, - "pc": [ - 116 - ] - }, - { - "teal": 15, - "source": 11, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 16, - "source": 11, - "pc": [ - 119 - ] - }, - { - "teal": 17, - "source": 11, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 18, - "source": 11, - "pc": [ - 122 - ] - }, - { - "teal": 19, - "source": 11, - "pc": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148 - ] - }, - { - "teal": 23, - "source": 11, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 149 - ] - }, - { - "teal": 27, - "source": 16, - "pc": [ - 150, - 151, - 152 - ] - }, - { - "teal": 30, - "source": 16, - "pc": [ - 153 - ] - }, - { - "teal": 31, - "source": 16, - "pc": [ - 154 - ] - }, - { - "teal": 35, - "source": 17, - "pc": [ - 155 - ] - }, - { - "teal": 36, - "source": 17, - "pc": [ - 156 - ] - }, - { - "teal": 37, - "source": 17, - "pc": [ - 157 - ] - }, - { - "teal": 38, - "source": 17, - "pc": [ - 158 - ] - }, - { - "teal": 39, - "source": 17, - "pc": [ - 159 - ] - }, - { - "teal": 40, - "source": 17, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 41, - "source": 17, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 45, - "source": 19, - "pc": [ - 165 - ] - }, - { - "teal": 46, - "source": 19, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 51, - "source": 19, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 52, - "source": 19, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 53, - "source": 19, - "pc": [ - 172 - ] - }, - { - "teal": 54, - "source": 19, - "pc": [ - 173, - 174, - 175 - ] - }, - { - "teal": 58, - "source": 20, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 59, - "source": 20, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 60, - "source": 20, - "pc": [ - 180 - ] - }, - { - "teal": 61, - "source": 20, - "pc": [ - 181 - ] - }, - { - "teal": 62, - "source": 20, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 67, - "source": 19, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 68, - "source": 19, - "pc": [ - 186 - ] - }, - { - "teal": 69, - "source": 19, - "pc": [ - 187 - ] - }, - { - "teal": 70, - "source": 19, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 71, - "source": 19, - "pc": [ - 190, - 191, - 192 - ] - }, - { - "teal": 76, - "source": 23, - "pc": [ - 193, - 194 - ] - }, - { - "teal": 79, - "source": 16, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 82, - "source": 16, - "pc": [ - 197, - 198 - ] - }, - { - "teal": 83, - "source": 16, - "pc": [ - 199 - ] - }, - { - "teal": 87, - "source": 26, - "pc": [ - 200, - 201, - 202 - ] - }, - { - "teal": 91, - "source": 27, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 92, - "source": 27, - "pc": [ - 205, - 206 - ] - }, - { - "teal": 93, - "source": 27, - "pc": [ - 207 - ] - }, - { - "teal": 94, - "source": 27, - "pc": [ - 208 - ] - }, - { - "teal": 95, - "source": 26, - "pc": [ - 209 - ] - }, - { - "teal": 99, - "source": 30, - "pc": [ - 210, - 211, - 212 - ] - }, - { - "teal": 103, - "source": 31, - "pc": [ - 213, - 214 - ] - }, - { - "teal": 104, - "source": 31, - "pc": [ - 215 - ] - }, - { - "teal": 105, - "source": 31, - "pc": [ - 216 - ] - }, - { - "teal": 106, - "source": 31, - "pc": [ - 217, - 218, - 219 - ] - }, - { - "teal": 107, - "source": 31, - "pc": [ - 220 - ] - }, - { - "teal": 108, - "source": 30, - "pc": [ - 221 - ] - }, - { - "teal": 112, - "source": 34, - "pc": [ - 222, - 223, - 224 - ] - }, - { - "teal": 115, - "source": 34, - "pc": [ - 225 - ] - }, - { - "teal": 116, - "source": 34, - "pc": [ - 226 - ] - }, - { - "teal": 120, - "source": 37, - "pc": [ - 227 - ] - }, - { - "teal": 121, - "source": 37, - "pc": [ - 228, - 229 - ] - }, - { - "teal": 126, - "source": 37, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 127, - "source": 37, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 128, - "source": 37, - "pc": [ - 234 - ] - }, - { - "teal": 129, - "source": 37, - "pc": [ - 235, - 236, - 237 - ] - }, - { - "teal": 130, - "source": 38, - "pc": [ - 238, - 239 - ] - }, - { - "teal": 131, - "source": 38, - "pc": [ - 240, - 241 - ] - }, - { - "teal": 136, - "source": 40, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 137, - "source": 40, - "pc": [ - 244, - 245 - ] - }, - { - "teal": 138, - "source": 40, - "pc": [ - 246 - ] - }, - { - "teal": 139, - "source": 40, - "pc": [ - 247 - ] - }, - { - "teal": 140, - "source": 40, - "pc": [ - 248 - ] - }, - { - "teal": 141, - "source": 40, - "pc": [ - 249 - ] - }, - { - "teal": 142, - "source": 40, - "pc": [ - 250, - 251, - 252 - ] - }, - { - "teal": 143, - "source": 40, - "pc": [ - 253, - 254, - 255 - ] - }, - { - "teal": 148, - "source": 41, - "pc": [ - 256, - 257 - ] - }, - { - "teal": 149, - "source": 41, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 150, - "source": 41, - "pc": [ - 260 - ] - }, - { - "teal": 151, - "source": 41, - "pc": [ - 261 - ] - }, - { - "teal": 152, - "source": 41, - "pc": [ - 262 - ] - }, - { - "teal": 153, - "source": 41, - "pc": [ - 263 - ] - }, - { - "teal": 154, - "source": 41, - "pc": [ - 264, - 265, - 266 - ] - }, - { - "teal": 155, - "source": 41, - "pc": [ - 267 - ] - }, - { - "teal": 156, - "source": 41, - "pc": [ - 268 - ] - }, - { - "teal": 157, - "source": 41, - "pc": [ - 269 - ] - }, - { - "teal": 158, - "source": 41, - "pc": [ - 270, - 271, - 272 - ] - }, - { - "teal": 159, - "source": 41, - "pc": [ - 273 - ] - }, - { - "teal": 160, - "source": 41, - "pc": [ - 274 - ] - }, - { - "teal": 161, - "source": 41, - "pc": [ - 275 - ] - }, - { - "teal": 162, - "source": 41, - "pc": [ - 276, - 277, - 278 - ] - }, - { - "teal": 163, - "source": 41, - "pc": [ - 279, - 280 - ] - }, - { - "teal": 164, - "source": 41, - "pc": [ - 281, - 282, - 283 - ] - }, - { - "teal": 165, - "source": 41, - "pc": [ - 284, - 285 - ] - }, - { - "teal": 166, - "source": 40, - "pc": [ - 286, - 287, - 288 - ] - }, - { - "teal": 171, - "source": 43, - "pc": [ - 289, - 290 - ] - }, - { - "teal": 172, - "source": 43, - "pc": [ - 291, - 292 - ] - }, - { - "teal": 173, - "source": 43, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 174, - "source": 43, - "pc": [ - 295 - ] - }, - { - "teal": 175, - "source": 43, - "pc": [ - 296 - ] - }, - { - "teal": 176, - "source": 43, - "pc": [ - 297 - ] - }, - { - "teal": 177, - "source": 43, - "pc": [ - 298 - ] - }, - { - "teal": 178, - "source": 43, - "pc": [ - 299, - 300, - 301 - ] - }, - { - "teal": 179, - "source": 43, - "pc": [ - 302 - ] - }, - { - "teal": 180, - "source": 43, - "pc": [ - 303 - ] - }, - { - "teal": 181, - "source": 43, - "pc": [ - 304 - ] - }, - { - "teal": 182, - "source": 43, - "pc": [ - 305, - 306, - 307 - ] - }, - { - "teal": 183, - "source": 43, - "pc": [ - 308 - ] - }, - { - "teal": 184, - "source": 43, - "pc": [ - 309 - ] - }, - { - "teal": 185, - "source": 43, - "pc": [ - 310 - ] - }, - { - "teal": 186, - "source": 43, - "pc": [ - 311, - 312, - 313 - ] - }, - { - "teal": 187, - "source": 43, - "pc": [ - 314, - 315, - 316 - ] - }, - { - "teal": 188, - "source": 43, - "pc": [ - 317, - 318 - ] - }, - { - "teal": 195, - "source": 37, - "pc": [ - 319, - 320 - ] - }, - { - "teal": 196, - "source": 37, - "pc": [ - 321 - ] - }, - { - "teal": 197, - "source": 37, - "pc": [ - 322 - ] - }, - { - "teal": 198, - "source": 37, - "pc": [ - 323, - 324 - ] - }, - { - "teal": 199, - "source": 37, - "pc": [ - 325, - 326, - 327 - ] - }, - { - "teal": 204, - "source": 47, - "pc": [ - 328, - 329 - ] - }, - { - "teal": 207, - "source": 34, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 210, - "source": 34, - "pc": [ - 332, - 333 - ] - }, - { - "teal": 211, - "source": 34, - "pc": [ - 334 - ] - }, - { - "teal": 216, - "source": 50, - "pc": [ - 335, - 336, - 337 - ] - }, - { - "teal": 217, - "source": 50, - "pc": [ - 338 - ] - }, - { - "teal": 218, - "source": 50, - "pc": [ - 339 - ] - }, - { - "teal": 222, - "source": 50, - "pc": [ - 340, - 341, - 342 - ] - }, - { - "teal": 227, - "source": 51, - "pc": [ - 343, - 344 - ] - }, - { - "teal": 228, - "source": 51, - "pc": [ - 345, - 346, - 347 - ] - }, - { - "teal": 229, - "source": 51, - "pc": [ - 348, - 349 - ] - }, - { - "teal": 230, - "source": 51, - "pc": [ - 350 - ] - }, - { - "teal": 231, - "source": 51, - "pc": [ - 351 - ] - }, - { - "teal": 234, - "source": 51, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.app.creator\"}", - "pc": [ - 352 - ] - }, - { - "teal": 235, - "source": 50, - "pc": [ - 353 - ] - }, - { - "teal": 240, - "source": 54, - "pc": [ - 354, - 355, - 356 - ] - }, - { - "teal": 241, - "source": 54, - "pc": [ - 357 - ] - }, - { - "teal": 242, - "source": 54, - "pc": [ - 358 - ] - }, - { - "teal": 246, - "source": 54, - "pc": [ - 359, - 360, - 361 - ] - }, - { - "teal": 250, - "source": 55, - "pc": [ - 362 - ] - }, - { - "teal": 251, - "source": 55, - "pc": [ - 363, - 364, - 365 - ] - }, - { - "teal": 252, - "source": 55, - "pc": [ - 366 - ] - }, - { - "teal": 253, - "source": 54, - "pc": [ - 367 - ] - }, - { - "teal": 258, - "source": 58, - "pc": [ - 368, - 369, - 370 - ] - }, - { - "teal": 259, - "source": 58, - "pc": [ - 371 - ] - }, - { - "teal": 260, - "source": 58, - "pc": [ - 372 - ] - }, - { - "teal": 261, - "source": 58, - "pc": [ - 373 - ] - }, - { - "teal": 262, - "source": 58, - "pc": [ - 374 - ] - }, - { - "teal": 265, - "source": 58, - "errorMessage": "argument 0 (path) for verify must be a byte[33][3]", - "pc": [ - 375 - ] - }, - { - "teal": 268, - "source": 58, - "pc": [ - 376, - 377, - 378 - ] - }, - { - "teal": 269, - "source": 58, - "pc": [ - 379, - 380, - 381 - ] - }, - { - "teal": 272, - "source": 58, - "pc": [ - 382, - 383, - 384 - ] - }, - { - "teal": 273, - "source": 58, - "pc": [ - 385 - ] - }, - { - "teal": 274, - "source": 58, - "pc": [ - 386 - ] - }, - { - "teal": 278, - "source": 58, - "pc": [ - 387, - 388, - 389 - ] - }, - { - "teal": 282, - "source": 59, - "pc": [ - 390 - ] - }, - { - "teal": 283, - "source": 59, - "pc": [ - 391 - ] - }, - { - "teal": 284, - "source": 59, - "pc": [ - 392, - 393 - ] - }, - { - "teal": 285, - "source": 59, - "pc": [ - 394, - 395 - ] - }, - { - "teal": 286, - "source": 59, - "pc": [ - 396 - ] - }, - { - "teal": 287, - "source": 59, - "pc": [ - 397, - 398, - 399 - ] - }, - { - "teal": 288, - "source": 59, - "pc": [ - 400 - ] - }, - { - "teal": 289, - "source": 59, - "pc": [ - 401 - ] - }, - { - "teal": 290, - "source": 58, - "pc": [ - 402 - ] - }, - { - "teal": 295, - "source": 62, - "pc": [ - 403, - 404, - 405 - ] - }, - { - "teal": 296, - "source": 62, - "pc": [ - 406 - ] - }, - { - "teal": 297, - "source": 62, - "pc": [ - 407 - ] - }, - { - "teal": 298, - "source": 62, - "pc": [ - 408 - ] - }, - { - "teal": 299, - "source": 62, - "pc": [ - 409 - ] - }, - { - "teal": 302, - "source": 62, - "errorMessage": "argument 0 (path) for appendLeaf must be a byte[33][3]", - "pc": [ - 410 - ] - }, - { - "teal": 305, - "source": 62, - "pc": [ - 411, - 412, - 413 - ] - }, - { - "teal": 306, - "source": 62, - "pc": [ - 414, - 415, - 416 - ] - }, - { - "teal": 309, - "source": 62, - "pc": [ - 417, - 418, - 419 - ] - }, - { - "teal": 310, - "source": 62, - "pc": [ - 420 - ] - }, - { - "teal": 311, - "source": 62, - "pc": [ - 421 - ] - }, - { - "teal": 315, - "source": 62, - "pc": [ - 422, - 423, - 424 - ] - }, - { - "teal": 319, - "source": 63, - "pc": [ - 425, - 426 - ] - }, - { - "teal": 320, - "source": 63, - "pc": [ - 427 - ] - }, - { - "teal": 321, - "source": 63, - "pc": [ - 428 - ] - }, - { - "teal": 322, - "source": 63, - "pc": [ - 429 - ] - }, - { - "teal": 326, - "source": 64, - "pc": [ - 430 - ] - }, - { - "teal": 327, - "source": 64, - "pc": [ - 431 - ] - }, - { - "teal": 328, - "source": 64, - "pc": [ - 432, - 433 - ] - }, - { - "teal": 329, - "source": 64, - "pc": [ - 434 - ] - }, - { - "teal": 330, - "source": 64, - "pc": [ - 435 - ] - }, - { - "teal": 331, - "source": 64, - "pc": [ - 436 - ] - }, - { - "teal": 332, - "source": 64, - "pc": [ - 437 - ] - }, - { - "teal": 333, - "source": 64, - "pc": [ - 438 - ] - }, - { - "teal": 334, - "source": 64, - "pc": [ - 439, - 440, - 441 - ] - }, - { - "teal": 335, - "source": 64, - "pc": [ - 442, - 443, - 444 - ] - }, - { - "teal": 336, - "source": 64, - "pc": [ - 445 - ] - }, - { - "teal": 337, - "source": 64, - "pc": [ - 446 - ] - }, - { - "teal": 341, - "source": 66, - "pc": [ - 447 - ] - }, - { - "teal": 342, - "source": 66, - "pc": [ - 448, - 449 - ] - }, - { - "teal": 343, - "source": 66, - "pc": [ - 450, - 451 - ] - }, - { - "teal": 344, - "source": 66, - "pc": [ - 452 - ] - }, - { - "teal": 345, - "source": 66, - "pc": [ - 453, - 454, - 455 - ] - }, - { - "teal": 346, - "source": 66, - "pc": [ - 456 - ] - }, - { - "teal": 350, - "source": 68, - "pc": [ - 457, - 458, - 459, - 460, - 461, - 462 - ] - }, - { - "teal": 351, - "source": 68, - "pc": [ - 463 - ] - }, - { - "teal": 352, - "source": 68, - "pc": [ - 464 - ] - }, - { - "teal": 353, - "source": 68, - "pc": [ - 465 - ] - }, - { - "teal": 354, - "source": 68, - "pc": [ - 466 - ] - }, - { - "teal": 355, - "source": 68, - "pc": [ - 467 - ] - }, - { - "teal": 356, - "source": 62, - "pc": [ - 468 - ] - }, - { - "teal": 361, - "source": 71, - "pc": [ - 469, - 470, - 471 - ] - }, - { - "teal": 362, - "source": 71, - "pc": [ - 472 - ] - }, - { - "teal": 363, - "source": 71, - "pc": [ - 473 - ] - }, - { - "teal": 364, - "source": 71, - "pc": [ - 474 - ] - }, - { - "teal": 365, - "source": 71, - "pc": [ - 475 - ] - }, - { - "teal": 368, - "source": 71, - "errorMessage": "argument 0 (path) for updateLeaf must be a byte[33][3]", - "pc": [ - 476 - ] - }, - { - "teal": 371, - "source": 71, - "pc": [ - 477, - 478, - 479 - ] - }, - { - "teal": 372, - "source": 71, - "pc": [ - 480, - 481, - 482 - ] - }, - { - "teal": 375, - "source": 71, - "pc": [ - 483, - 484, - 485 - ] - }, - { - "teal": 376, - "source": 71, - "pc": [ - 486, - 487, - 488 - ] - }, - { - "teal": 379, - "source": 71, - "pc": [ - 489, - 490, - 491 - ] - }, - { - "teal": 380, - "source": 71, - "pc": [ - 492 - ] - }, - { - "teal": 381, - "source": 71, - "pc": [ - 493 - ] - }, - { - "teal": 385, - "source": 71, - "pc": [ - 494, - 495, - 496 - ] - }, - { - "teal": 389, - "source": 72, - "pc": [ - 497, - 498 - ] - }, - { - "teal": 390, - "source": 72, - "pc": [ - 499 - ] - }, - { - "teal": 391, - "source": 72, - "pc": [ - 500 - ] - }, - { - "teal": 392, - "source": 72, - "pc": [ - 501 - ] - }, - { - "teal": 396, - "source": 73, - "pc": [ - 502 - ] - }, - { - "teal": 397, - "source": 73, - "pc": [ - 503 - ] - }, - { - "teal": 398, - "source": 73, - "pc": [ - 504, - 505 - ] - }, - { - "teal": 399, - "source": 73, - "pc": [ - 506, - 507 - ] - }, - { - "teal": 400, - "source": 73, - "pc": [ - 508 - ] - }, - { - "teal": 401, - "source": 73, - "pc": [ - 509, - 510, - 511 - ] - }, - { - "teal": 402, - "source": 73, - "pc": [ - 512 - ] - }, - { - "teal": 403, - "source": 73, - "pc": [ - 513 - ] - }, - { - "teal": 407, - "source": 75, - "pc": [ - 514 - ] - }, - { - "teal": 408, - "source": 75, - "pc": [ - 515, - 516 - ] - }, - { - "teal": 409, - "source": 75, - "pc": [ - 517, - 518 - ] - }, - { - "teal": 410, - "source": 75, - "pc": [ - 519 - ] - }, - { - "teal": 411, - "source": 75, - "pc": [ - 520, - 521, - 522 - ] - }, - { - "teal": 412, - "source": 75, - "pc": [ - 523 - ] - }, - { - "teal": 413, - "source": 71, - "pc": [ - 524 - ] - }, - { - "teal": 416, - "source": 11, - "pc": [ - 525, - 526, - 527, - 528, - 529, - 530 - ] - }, - { - "teal": 417, - "source": 11, - "pc": [ - 531, - 532, - 533 - ] - }, - { - "teal": 418, - "source": 11, - "pc": [ - 534, - 535, - 536, - 537 - ] - }, - { - "teal": 421, - "source": 11, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 538 - ] - }, - { - "teal": 424, - "source": 11, - "pc": [ - 539, - 540, - 541, - 542, - 543, - 544 - ] - }, - { - "teal": 425, - "source": 11, - "pc": [ - 545, - 546, - 547, - 548, - 549, - 550 - ] - }, - { - "teal": 426, - "source": 11, - "pc": [ - 551, - 552, - 553, - 554, - 555, - 556 - ] - }, - { - "teal": 427, - "source": 11, - "pc": [ - 557, - 558, - 559 - ] - }, - { - "teal": 428, - "source": 11, - "pc": [ - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567 - ] - }, - { - "teal": 431, - "source": 11, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 568 - ] - }, - { - "teal": 434, - "source": 11, - "pc": [ - 569, - 570, - 571, - 572, - 573, - 574 - ] - }, - { - "teal": 435, - "source": 11, - "pc": [ - 575, - 576, - 577 - ] - }, - { - "teal": 436, - "source": 11, - "pc": [ - 578, - 579, - 580, - 581 - ] - }, - { - "teal": 439, - "source": 11, - "errorMessage": "this contract does not implement the given ABI method for call DeleteApplication", - "pc": [ - 582 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 150 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 501 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.app.creator\"}" + }, + { + "pc": [ + 531 + ], + "errorMessage": "argument 0 (path) for verify must be a byte[33][3]" + }, + { + "pc": [ + 573 + ], + "errorMessage": "argument 0 (path) for appendLeaf must be a byte[33][3]" + }, + { + "pc": [ + 719 + ], + "errorMessage": "argument 0 (path) for updateLeaf must be a byte[33][3]" + }, + { + "pc": [ + 793 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 823 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + }, + { + "pc": [ + 837 + ], + "errorMessage": "this contract does not implement the given ABI method for call DeleteApplication" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX0RlbGV0ZUFwcGxpY2F0aW9uICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY2FsY0luaXRSb290KCk6IGJ5dGVzMzIKY2FsY0luaXRSb290OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxNwoJLy8gcmVzdWx0ID0gaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIKCWJ5dGUgMHhlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweAoJZHVwCgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMwoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyMAoJLy8gcmVzdWx0ID0gc2hhMjU2KHJlc3VsdCArIHJlc3VsdCkKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWNvbmNhdAoJc2hhMjU2CglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjIzCgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gaGFzaENvbmNhdChsZWZ0OiBieXRlczMyLCByaWdodDogYnl0ZXMzMik6IGJ5dGVzMzIKaGFzaENvbmNhdDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyNwoJLy8gcmV0dXJuIHNoYTI1NihsZWZ0ICsgcmlnaHQpOwoJZnJhbWVfZGlnIC0xIC8vIGxlZnQ6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyByaWdodDogYnl0ZXMzMgoJY29uY2F0CglzaGEyNTYKCXJldHN1YgoKLy8gaXNSaWdodFNpYmxpbmcoZWxlbTogQnJhbmNoKTogYm9vbGVhbgppc1JpZ2h0U2libGluZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozMQoJLy8gcmV0dXJuIGdldGJ5dGUoZWxlbSwgMCkgPT09IFJJR0hUX1NJQkxJTkdfUFJFRklYOwoJZnJhbWVfZGlnIC0xIC8vIGVsZW06IEJyYW5jaAoJaW50IDAKCWdldGJ5dGUKCWludCAxNzAKCT09CglyZXRzdWIKCi8vIGNhbGNSb290KGxlYWY6IGJ5dGVzMzIsIHBhdGg6IFBhdGgpOiBieXRlczMyCmNhbGNSb290OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozNwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBUUkVFX0RFUFRIOyBpID0gaSArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMwoJPAoJYnogKmZvcl8xX2VuZAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9lbGVtCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo0MAoJLy8gdGhpcy5pc1JpZ2h0U2libGluZyhlbGVtKQoJZnJhbWVfZGlnIC0yIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAxIC8vIHNhdmVkIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoJaW50IDMzCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAzMwoJZXh0cmFjdDMKCWNhbGxzdWIgaXNSaWdodFNpYmxpbmcKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQxCgkvLyByZXN1bHQgPSB0aGlzLmhhc2hDb25jYXQocmVzdWx0LCBleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMikKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCWludCAzMwoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMzMKCWV4dHJhY3QzCglleHRyYWN0IDEgMzIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWR1cAoJZXh0cmFjdCAzMiAwCglieXRlIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gbGVhZjogYnl0ZXMzMgoJY2FsbHN1YiBoYXNoQ29uY2F0CglmcmFtZV9idXJ5IC0xIC8vIHJlc3VsdDogYnl0ZXMzMgoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQzCgkvLyByZXN1bHQgPSB0aGlzLmhhc2hDb25jYXQoZXh0cmFjdDMoZWxlbSwgMSwgMzIpIGFzIGJ5dGVzMzIsIHJlc3VsdCkKCWZyYW1lX2RpZyAtMSAvLyBsZWFmOiBieXRlczMyCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIDEgLy8gc2F2ZWQgYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9lbGVtCglpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDMzCglleHRyYWN0MwoJZXh0cmFjdCAxIDMyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMzIgMAoJYnl0ZSAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBoYXNoQ29uY2F0CglmcmFtZV9idXJ5IC0xIC8vIHJlc3VsdDogYnl0ZXMzMgoKKmlmMF9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MzcKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzEKCipmb3JfMV9lbmQ6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDcKCS8vIHJldHVybiByZXN1bHQ7CglmcmFtZV9kaWcgLTEgLy8gbGVhZjogYnl0ZXMzMgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgZGVsZXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgZGVsZXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKZGVsZXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NTEKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmFwcC5jcmVhdG9yIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglhcHBfcGFyYW1zX2dldCBBcHBDcmVhdG9yCglwb3AKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4biIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5jcmVhdG9yIn0KCWFzc2VydAoJcmV0c3ViCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo1NQoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjSW5pdFJvb3QoKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJY2FsbHN1YiBjYWxjSW5pdFJvb3QKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIHZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeToKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciB2ZXJpZnkgbXVzdCBiZSBhIGJ5dGVbMzNdWzNdCglhc3NlcnQKCgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKCWNhbGxzdWIgdmVyaWZ5CglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnkoZGF0YTogYnl0ZXMsIHBhdGg6IFBhdGgpOiB2b2lkCnZlcmlmeToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo1OQoJLy8gYXNzZXJ0KHRoaXMucm9vdC52YWx1ZSA9PT0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcHBlbmRMZWFmKGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCiphYmlfcm91dGVfYXBwZW5kTGVhZjoKCS8vIHBhdGg6IGJ5dGVbMzNdWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciBhcHBlbmRMZWFmIG11c3QgYmUgYSBieXRlWzMzXVszXQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiBhcHBlbmRMZWFmCglpbnQgMQoJcmV0dXJuCgovLyBhcHBlbmRMZWFmKGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAphcHBlbmRMZWFmOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQoZGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3QoaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIsIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo2NgoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjY4CgkvLyB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUudmFsdWUgKyAxCglieXRlIDB4NzM2OTdhNjUgLy8gInNpemUiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgOTkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF0aCkgZm9yIHVwZGF0ZUxlYWYgbXVzdCBiZSBhIGJ5dGVbMzNdWzNdCglhc3NlcnQKCgkvLyBuZXdEYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gb2xkRGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKCWNhbGxzdWIgdXBkYXRlTGVhZgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTGVhZihvbGREYXRhOiBieXRlcywgbmV3RGF0YTogYnl0ZXMsIHBhdGg6IFBhdGgpOiB2b2lkCnVwZGF0ZUxlYWY6Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzIKCS8vIGFzc2VydChuZXdEYXRhICE9PSAnJykKCWZyYW1lX2RpZyAtMiAvLyBuZXdEYXRhOiBieXRlcwoJYnl0ZSAweCAvLyAiIgoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3MwoJLy8gYXNzZXJ0KHRoaXMucm9vdC52YWx1ZSA9PT0gdGhpcy5jYWxjUm9vdChzaGEyNTYob2xkRGF0YSksIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMyAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgLTEgLy8gb2xkRGF0YTogYnl0ZXMKCXNoYTI1NgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo3NQoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYobmV3RGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTMgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0yIC8vIG5ld0RhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCW1ldGhvZCAiYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZCIKCW1ldGhvZCAidXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ZlcmlmeSAqYWJpX3JvdXRlX2FwcGVuZExlYWYgKmFiaV9yb3V0ZV91cGRhdGVMZWFmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9EZWxldGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAiZGVsZXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2RlbGV0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgRGVsZXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHhlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMHg3MjZmNmY3NCAweCAweDczNjk3YTY1CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9EZWxldGVBcHBsaWNhdGlvbiAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNhbGNJbml0Um9vdCgpOiBieXRlczMyCmNhbGNJbml0Um9vdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTcKCS8vIHJlc3VsdCA9IGhleChFTVBUWV9IQVNIKSBhcyBieXRlczMyCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJZnJhbWVfYnVyeSAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgVFJFRV9ERVBUSDsgaSA9IGkgKyAxKQoJcHVzaGludCAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6MTkKCS8vIGkgPCBUUkVFX0RFUFRICglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCXB1c2hpbnQgMwoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyMAoJLy8gcmVzdWx0ID0gc2hhMjU2KHJlc3VsdCArIHJlc3VsdCkKCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWZyYW1lX2RpZyAwIC8vIHJlc3VsdDogYnl0ZVszMl0KCWNvbmNhdAoJc2hhMjU2CglmcmFtZV9idXJ5IDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjE5CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjIzCgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIDAgLy8gcmVzdWx0OiBieXRlWzMyXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gaGFzaENvbmNhdChsZWZ0OiBieXRlczMyLCByaWdodDogYnl0ZXMzMik6IGJ5dGVzMzIKaGFzaENvbmNhdDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czoyNwoJLy8gcmV0dXJuIHNoYTI1NihsZWZ0ICsgcmlnaHQpOwoJZnJhbWVfZGlnIC0xIC8vIGxlZnQ6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyByaWdodDogYnl0ZXMzMgoJY29uY2F0CglzaGEyNTYKCXJldHN1YgoKLy8gaXNSaWdodFNpYmxpbmcoZWxlbTogQnJhbmNoKTogYm9vbGVhbgppc1JpZ2h0U2libGluZzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czozMQoJLy8gcmV0dXJuIGdldGJ5dGUoZWxlbSwgMCkgPT09IFJJR0hUX1NJQkxJTkdfUFJFRklYOwoJZnJhbWVfZGlnIC0xIC8vIGVsZW06IEJyYW5jaAoJcHVzaGludCAwCglnZXRieXRlCglwdXNoaW50IDE3MAoJPT0KCXJldHN1YgoKLy8gY2FsY1Jvb3QobGVhZjogYnl0ZXMzMiwgcGF0aDogUGF0aCk6IGJ5dGVzMzIKY2FsY1Jvb3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IFRSRUVfREVQVEg7IGkgPSBpICsgMSkKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpIDwgVFJFRV9ERVBUSAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDMKCTwKCWJ6ICpmb3JfMV9lbmQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIGFjY2Vzc29yOiBhY2Nlc3Nvci8vMC8vZWxlbQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDAKCS8vIHRoaXMuaXNSaWdodFNpYmxpbmcoZWxlbSkKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCXB1c2hpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAzMwoJZXh0cmFjdDMKCWNhbGxzdWIgaXNSaWdodFNpYmxpbmcKCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQxCgkvLyByZXN1bHQgPSB0aGlzLmhhc2hDb25jYXQocmVzdWx0LCBleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMikKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCXB1c2hpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAzMwoJZXh0cmFjdDMKCWV4dHJhY3QgMSAzMgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDMyIDAKCWJ5dGUgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMSAvLyBsZWFmOiBieXRlczMyCgljYWxsc3ViIGhhc2hDb25jYXQKCWZyYW1lX2J1cnkgLTEgLy8gcmVzdWx0OiBieXRlczMyCgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NDMKCS8vIHJlc3VsdCA9IHRoaXMuaGFzaENvbmNhdChleHRyYWN0MyhlbGVtLCAxLCAzMikgYXMgYnl0ZXMzMiwgcmVzdWx0KQoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglmcmFtZV9kaWcgMSAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2VsZW0KCXB1c2hpbnQgMzMKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAzMwoJZXh0cmFjdDMKCWV4dHJhY3QgMSAzMgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDMyIDAKCWJ5dGUgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMzIKCWNhbGxzdWIgaGFzaENvbmNhdAoJZnJhbWVfYnVyeSAtMSAvLyByZXN1bHQ6IGJ5dGVzMzIKCippZjBfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjM3CgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjQ3CgkvLyByZXR1cm4gcmVzdWx0OwoJZnJhbWVfZGlnIC0xIC8vIGxlYWY6IGJ5dGVzMzIKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfZGVsZXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGRlbGV0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVBcHBsaWNhdGlvbigpOiB2b2lkCmRlbGV0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjUxCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5hcHAuY3JlYXRvciB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJcG9wCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuY3JlYXRvciJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NTUKCS8vIHRoaXMucm9vdC52YWx1ZSA9IHRoaXMuY2FsY0luaXRSb290KCkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWNhbGxzdWIgY2FsY0luaXRSb290CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnk6CgkvLyBwYXRoOiBieXRlWzMzXVszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCXB1c2hpbnQgOTkKCT09CgoJLy8gYXJndW1lbnQgMCAocGF0aCkgZm9yIHZlcmlmeSBtdXN0IGJlIGEgYnl0ZVszM11bM10KCWFzc2VydAoKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHZlcmlmeShieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiB2ZXJpZnkKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeShkYXRhOiBieXRlcywgcGF0aDogUGF0aCk6IHZvaWQKdmVyaWZ5OgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjU5CgkvLyBhc3NlcnQodGhpcy5yb290LnZhbHVlID09PSB0aGlzLmNhbGNSb290KHNoYTI1NihkYXRhKSwgcGF0aCkpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAtMSAvLyBkYXRhOiBieXRlcwoJc2hhMjU2CgljYWxsc3ViIGNhbGNSb290Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFwcGVuZExlYWYoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV9hcHBlbmRMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciBhcHBlbmRMZWFmIG11c3QgYmUgYSBieXRlWzMzXVszXQoJYXNzZXJ0CgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgYXBwZW5kTGVhZihieXRlW10sYnl0ZVszM11bM10pdm9pZAoJY2FsbHN1YiBhcHBlbmRMZWFmCglpbnQgMQoJcmV0dXJuCgovLyBhcHBlbmRMZWFmKGRhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAphcHBlbmRMZWFmOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQoZGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTEgLy8gZGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3QoaGV4KEVNUFRZX0hBU0gpIGFzIGJ5dGVzMzIsIHBhdGgpKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBwYXRoOiBQYXRoCglieXRlIDB4ZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgKCWR1cAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY2FsbHN1YiBjYWxjUm9vdAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL21lcmtsZS9tZXJrbGUuYWxnby50czo2NgoJLy8gdGhpcy5yb290LnZhbHVlID0gdGhpcy5jYWxjUm9vdChzaGEyNTYoZGF0YSksIHBhdGgpCglieXRlIDB4NzI2ZjZmNzQgLy8gInJvb3QiCglmcmFtZV9kaWcgLTIgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIGRhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjY4CgkvLyB0aGlzLnNpemUudmFsdWUgPSB0aGlzLnNpemUudmFsdWUgKyAxCglieXRlIDB4NzM2OTdhNjUgLy8gInNpemUiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlTGVhZihieXRlW10sYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVMZWFmOgoJLy8gcGF0aDogYnl0ZVszM11bM10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglwdXNoaW50IDk5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBhdGgpIGZvciB1cGRhdGVMZWFmIG11c3QgYmUgYSBieXRlWzMzXVszXQoJYXNzZXJ0CgoJLy8gbmV3RGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG9sZERhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUxlYWYoYnl0ZVtdLGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkCgljYWxsc3ViIHVwZGF0ZUxlYWYKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUxlYWYob2xkRGF0YTogYnl0ZXMsIG5ld0RhdGE6IGJ5dGVzLCBwYXRoOiBQYXRoKTogdm9pZAp1cGRhdGVMZWFmOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvbWVya2xlL21lcmtsZS5hbGdvLnRzOjcyCgkvLyBhc3NlcnQobmV3RGF0YSAhPT0gJycpCglmcmFtZV9kaWcgLTIgLy8gbmV3RGF0YTogYnl0ZXMKCWJ5dGUgMHggLy8gIiIKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzMKCS8vIGFzc2VydCh0aGlzLnJvb3QudmFsdWUgPT09IHRoaXMuY2FsY1Jvb3Qoc2hhMjU2KG9sZERhdGEpLCBwYXRoKSkKCWJ5dGUgMHg3MjZmNmY3NCAvLyAicm9vdCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTMgLy8gcGF0aDogUGF0aAoJZnJhbWVfZGlnIC0xIC8vIG9sZERhdGE6IGJ5dGVzCglzaGEyNTYKCWNhbGxzdWIgY2FsY1Jvb3QKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9tZXJrbGUvbWVya2xlLmFsZ28udHM6NzUKCS8vIHRoaXMucm9vdC52YWx1ZSA9IHRoaXMuY2FsY1Jvb3Qoc2hhMjU2KG5ld0RhdGEpLCBwYXRoKQoJYnl0ZSAweDcyNmY2Zjc0IC8vICJyb290IgoJZnJhbWVfZGlnIC0zIC8vIHBhdGg6IFBhdGgKCWZyYW1lX2RpZyAtMiAvLyBuZXdEYXRhOiBieXRlcwoJc2hhMjU2CgljYWxsc3ViIGNhbGNSb290CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NTA2Y2I4ZDggLy8gbWV0aG9kICJ2ZXJpZnkoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCglwdXNoYnl0ZXMgMHgwNGY2MzIzOCAvLyBtZXRob2QgImFwcGVuZExlYWYoYnl0ZVtdLGJ5dGVbMzNdWzNdKXZvaWQiCglwdXNoYnl0ZXMgMHgyNTVkOTNlMyAvLyBtZXRob2QgInVwZGF0ZUxlYWYoYnl0ZVtdLGJ5dGVbXSxieXRlWzMzXVszXSl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV92ZXJpZnkgKmFiaV9yb3V0ZV9hcHBlbmRMZWFmICphYmlfcm91dGVfdXBkYXRlTGVhZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfRGVsZXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHgyNDg3YzMyYyAvLyBtZXRob2QgImRlbGV0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kZWxldGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIERlbGV0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAFASEAYwMmBAAEcm9vdEDjsMRCmPwcFJr79MiZb7kkJ65B5GSbk0yklZkbeFK4VQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMRgUgQYLMRkIjQwBhgAAAAAAAAAAAaQBeAAAAAAAAAAAAAAAigABKEkqKEmoRFcAIIwAJIwBiwEhBAxBABGLAIsAUAGMAIsBIgiMAUL/54sAjABGAYmKAgGL/4v+UAGJigEBi/8kVYGqARKJigIBKEkkjACLACEEDEEAWosAjAGL/osBIwsjWIj/1UEAIYv+iwEjCyNYVwEgK1BJVyAAKKhEVwAgi/+I/6yM/0IAHov/i/6LASMLI1hXASArUElXIAAoqERXACCI/4uM/4sAIgiMAEL/nov/jABGAYmIAAIiQ4oAADEANjIAcgdIEkSJiAACIkOKAAApiP8oZ4k2GgJJFSUSRDYaAVcCAIgAAiJDigIAKWSL/ov/AYj/ThJEiTYaAkkVJRJENhoBVwIAiAACIkOKAgCL/ygTRClki/4qKEmoRFcAIIj/IRJEKYv+i/8BiP8WZ4AEc2l6ZUlkIghniTYaA0kVJRJENhoCVwIANhoBVwIAiAACIkOKAwCL/igTRClki/2L/wGI/t4SRCmL/Yv+AYj+02eJgAS4RHs2NhoAjgH/SACABFBsuNiABAT2MjiABCVdk+M2GgCOA/84/1v/nQCABCSHwyw2GgCOAf8JAA==", + "approval": "CiABASYFQOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcm9vdAAEc2l6ZTEYFIEGCzEZCI0MAoQAAAAAAAAAAAKiAnYAAAAAAAAAAAAAAIoAAYAASYBA47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAASahEVwAgjACBAIwBiwGBAwxBABKLAIsAUAGMAIsBgQEIjAFC/+aLAIwARgGJigIBi/+L/lABiYoBAYv/gQBVgaoBEomKAgGAAEmBAIwAiwCBAwxBAKWLAIwBi/6LAYEhC4EhWIj/0EEARYv+iwGBIQuBIVhXASCAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUElXIACAAKhEVwAgi/+I/4OM/0IAQov/i/6LAYEhC4EhWFcBIIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQSVcgAIAAqERXACCI/z6M/4sAgQEIjABC/1OL/4wARgGJiAADgQFDigAAMQA2MgByB0gSRImIAAOBAUOKAACABHJvb3SI/o5niTYaAkkVgWMSRDYaAVcCAIgAA4EBQ4oCAIAEcm9vdGSL/ov/AYj+8xJEiTYaAkkVgWMSRDYaAVcCAIgAA4EBQ4oCAIv/gAATRIAEcm9vdGSL/oBA47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAASahEVwAgiP58EkSABHJvb3SL/ov/AYj+bGeABHNpemVJZIEBCGeJNhoDSRWBYxJENhoCVwIANhoBVwIAiAADgQFDigMAi/6AABNEgARyb290ZIv9i/8BiP4rEkSABHJvb3SL/Yv+AYj+G2eJgAS4RHs2NhoAjgH+3gCABFBsuNiABAT2MjiABCVdk+M2GgCOA/7U/v7/kACABCSHwyw2GgCOAf6eAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/merkle/artifacts/MerkleTree.src_map.json b/examples/merkle/artifacts/MerkleTree.src_map.json index 64094cf80..232c17d59 100644 --- a/examples/merkle/artifacts/MerkleTree.src_map.json +++ b/examples/merkle/artifacts/MerkleTree.src_map.json @@ -1,12 +1,24 @@ [ { "teal": 1, - "source": 11, + "source": "examples/merkle/merkle.algo.ts:11", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 0, 1, 2, - 3, + 3 + ] + }, + { + "teal": 3, + "source": "examples/merkle/merkle.algo.ts:11", + "pc": [ 4, 5, 6, @@ -116,59 +128,59 @@ 110, 111, 112, - 113 + 113, + 114 ] }, { - "teal": 13, - "source": 11, + "teal": 15, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 114, - 115 + 115, + 116 ] }, { - "teal": 14, - "source": 11, + "teal": 16, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 116 + 117 ] }, { - "teal": 15, - "source": 11, + "teal": 17, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 117, - 118 + 118, + 119 ] }, { - "teal": 16, - "source": 11, + "teal": 18, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 119 + 120 ] }, { - "teal": 17, - "source": 11, + "teal": 19, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 120, - 121 + 121, + 122 ] }, { - "teal": 18, - "source": 11, + "teal": 20, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 122 + 123 ] }, { - "teal": 19, - "source": 11, + "teal": 21, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 123, 124, 125, 126, @@ -193,1871 +205,2126 @@ 145, 146, 147, - 148 + 148, + 149 ] }, { - "teal": 23, - "source": 11, + "teal": 25, + "source": "examples/merkle/merkle.algo.ts:11", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 149 + 150 ] }, { - "teal": 27, - "source": 16, + "teal": 29, + "source": "examples/merkle/merkle.algo.ts:16", "pc": [ - 150, 151, - 152 - ] - }, - { - "teal": 30, - "source": 16, - "pc": [ + 152, 153 ] }, { - "teal": 31, - "source": 16, - "pc": [ - 154 - ] - }, - { - "teal": 35, - "source": 17, + "teal": 32, + "source": "examples/merkle/merkle.algo.ts:16", "pc": [ + 154, 155 ] }, { - "teal": 36, - "source": 17, + "teal": 33, + "source": "examples/merkle/merkle.algo.ts:16", "pc": [ 156 ] }, { "teal": 37, - "source": 17, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 157 + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222 ] }, { "teal": 38, - "source": 17, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 158 + 223, + 224 ] }, { "teal": 39, - "source": 17, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 159 + 225 ] }, { "teal": 40, - "source": 17, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 160, - 161, - 162 + 226 ] }, { "teal": 41, - "source": 17, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 163, - 164 + 227 ] }, { - "teal": 45, - "source": 19, + "teal": 42, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 165 + 228, + 229, + 230 ] }, { - "teal": 46, - "source": 19, + "teal": 43, + "source": "examples/merkle/merkle.algo.ts:17", "pc": [ - 166, - 167 + 231, + 232 ] }, { - "teal": 51, - "source": 19, + "teal": 47, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 168, - 169 + 233, + 234 ] }, { - "teal": 52, - "source": 19, + "teal": 48, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 170, - 171 + 235, + 236 ] }, { "teal": 53, - "source": 19, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 172 + 237, + 238 ] }, { "teal": 54, - "source": 19, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 173, - 174, - 175 + 239, + 240 ] }, { - "teal": 58, - "source": 20, + "teal": 55, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 176, - 177 + 241 ] }, { - "teal": 59, - "source": 20, + "teal": 56, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 178, - 179 + 242, + 243, + 244 ] }, { "teal": 60, - "source": 20, + "source": "examples/merkle/merkle.algo.ts:20", "pc": [ - 180 + 245, + 246 ] }, { "teal": 61, - "source": 20, + "source": "examples/merkle/merkle.algo.ts:20", "pc": [ - 181 + 247, + 248 ] }, { "teal": 62, - "source": 20, + "source": "examples/merkle/merkle.algo.ts:20", "pc": [ - 182, - 183 + 249 ] }, { - "teal": 67, - "source": 19, + "teal": 63, + "source": "examples/merkle/merkle.algo.ts:20", "pc": [ - 184, - 185 + 250 ] }, { - "teal": 68, - "source": 19, + "teal": 64, + "source": "examples/merkle/merkle.algo.ts:20", "pc": [ - 186 + 251, + 252 ] }, { "teal": 69, - "source": 19, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 187 + 253, + 254 ] }, { "teal": 70, - "source": 19, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 188, - 189 + 255, + 256 ] }, { "teal": 71, - "source": 19, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 190, - 191, - 192 + 257 ] }, { - "teal": 76, - "source": 23, + "teal": 72, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 193, - 194 + 258, + 259 ] }, { - "teal": 79, - "source": 16, + "teal": 73, + "source": "examples/merkle/merkle.algo.ts:19", "pc": [ - 195, - 196 + 260, + 261, + 262 ] }, { - "teal": 82, - "source": 16, + "teal": 78, + "source": "examples/merkle/merkle.algo.ts:23", "pc": [ - 197, - 198 + 263, + 264 ] }, { - "teal": 83, - "source": 16, + "teal": 81, + "source": "examples/merkle/merkle.algo.ts:16", "pc": [ - 199 + 265, + 266 ] }, { - "teal": 87, - "source": 26, + "teal": 84, + "source": "examples/merkle/merkle.algo.ts:16", "pc": [ - 200, - 201, - 202 + 267, + 268 ] }, { - "teal": 91, - "source": 27, + "teal": 85, + "source": "examples/merkle/merkle.algo.ts:16", "pc": [ - 203, - 204 + 269 ] }, { - "teal": 92, - "source": 27, + "teal": 89, + "source": "examples/merkle/merkle.algo.ts:26", "pc": [ - 205, - 206 + 270, + 271, + 272 ] }, { "teal": 93, - "source": 27, + "source": "examples/merkle/merkle.algo.ts:27", "pc": [ - 207 + 273, + 274 ] }, { "teal": 94, - "source": 27, + "source": "examples/merkle/merkle.algo.ts:27", "pc": [ - 208 + 275, + 276 ] }, { "teal": 95, - "source": 26, + "source": "examples/merkle/merkle.algo.ts:27", "pc": [ - 209 + 277 ] }, { - "teal": 99, - "source": 30, + "teal": 96, + "source": "examples/merkle/merkle.algo.ts:27", "pc": [ - 210, - 211, - 212 + 278 ] }, { - "teal": 103, - "source": 31, + "teal": 97, + "source": "examples/merkle/merkle.algo.ts:26", "pc": [ - 213, - 214 + 279 ] }, { - "teal": 104, - "source": 31, + "teal": 101, + "source": "examples/merkle/merkle.algo.ts:30", "pc": [ - 215 + 280, + 281, + 282 ] }, { "teal": 105, - "source": 31, + "source": "examples/merkle/merkle.algo.ts:31", "pc": [ - 216 + 283, + 284 ] }, { "teal": 106, - "source": 31, + "source": "examples/merkle/merkle.algo.ts:31", "pc": [ - 217, - 218, - 219 + 285, + 286 ] }, { "teal": 107, - "source": 31, + "source": "examples/merkle/merkle.algo.ts:31", "pc": [ - 220 + 287 ] }, { "teal": 108, - "source": 30, + "source": "examples/merkle/merkle.algo.ts:31", "pc": [ - 221 + 288, + 289, + 290 ] }, { - "teal": 112, - "source": 34, + "teal": 109, + "source": "examples/merkle/merkle.algo.ts:31", "pc": [ - 222, - 223, - 224 + 291 ] }, { - "teal": 115, - "source": 34, + "teal": 110, + "source": "examples/merkle/merkle.algo.ts:30", "pc": [ - 225 + 292 ] }, { - "teal": 116, - "source": 34, + "teal": 114, + "source": "examples/merkle/merkle.algo.ts:34", "pc": [ - 226 + 293, + 294, + 295 ] }, { - "teal": 120, - "source": 37, + "teal": 117, + "source": "examples/merkle/merkle.algo.ts:34", "pc": [ - 227 + 296, + 297 ] }, { - "teal": 121, - "source": 37, + "teal": 118, + "source": "examples/merkle/merkle.algo.ts:34", "pc": [ - 228, - 229 + 298 ] }, { - "teal": 126, - "source": 37, + "teal": 122, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 230, - 231 + 299, + 300 ] }, { - "teal": 127, - "source": 37, + "teal": 123, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 232, - 233 + 301, + 302 ] }, { "teal": 128, - "source": 37, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 234 + 303, + 304 ] }, { "teal": 129, - "source": 37, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 235, - 236, - 237 + 305, + 306 ] }, { "teal": 130, - "source": 38, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 238, - 239 + 307 ] }, { "teal": 131, - "source": 38, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 240, - 241 + 308, + 309, + 310 ] }, { - "teal": 136, - "source": 40, + "teal": 132, + "source": "examples/merkle/merkle.algo.ts:38", "pc": [ - 242, - 243 + 311, + 312 ] }, { - "teal": 137, - "source": 40, + "teal": 133, + "source": "examples/merkle/merkle.algo.ts:38", "pc": [ - 244, - 245 + 313, + 314 ] }, { "teal": 138, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 246 + 315, + 316 ] }, { "teal": 139, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 247 + 317, + 318 ] }, { "teal": 140, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 248 + 319, + 320 ] }, { "teal": 141, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 249 + 321 ] }, { "teal": 142, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 250, - 251, - 252 + 322, + 323 ] }, { "teal": 143, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 253, - 254, - 255 + 324 ] }, { - "teal": 148, - "source": 41, + "teal": 144, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 256, - 257 + 325, + 326, + 327 ] }, { - "teal": 149, - "source": 41, + "teal": 145, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 258, - 259 + 328, + 329, + 330 ] }, { "teal": 150, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 260 + 331, + 332 ] }, { "teal": 151, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 261 + 333, + 334 ] }, { "teal": 152, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 262 + 335, + 336 ] }, { "teal": 153, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 263 + 337 ] }, { "teal": 154, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 264, - 265, - 266 + 338, + 339 ] }, { "teal": 155, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 267 + 340 ] }, { "teal": 156, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 268 + 341, + 342, + 343 ] }, { "teal": 157, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 269 + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377 ] }, { "teal": 158, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 270, - 271, - 272 + 378 ] }, { "teal": 159, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 273 + 379 ] }, { "teal": 160, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 274 + 380, + 381, + 382 ] }, { "teal": 161, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 275 + 383, + 384 ] }, { "teal": 162, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 276, - 277, - 278 + 385 ] }, { "teal": 163, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 279, - 280 + 386 ] }, { "teal": 164, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 281, - 282, - 283 + 387, + 388, + 389 ] }, { "teal": 165, - "source": 41, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 284, - 285 + 390, + 391 ] }, { "teal": 166, - "source": 40, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 286, - 287, - 288 + 392, + 393, + 394 ] }, { - "teal": 171, - "source": 43, + "teal": 167, + "source": "examples/merkle/merkle.algo.ts:41", "pc": [ - 289, - 290 + 395, + 396 ] }, { - "teal": 172, - "source": 43, + "teal": 168, + "source": "examples/merkle/merkle.algo.ts:40", "pc": [ - 291, - 292 + 397, + 398, + 399 ] }, { "teal": 173, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 293, - 294 + 400, + 401 ] }, { "teal": 174, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 295 + 402, + 403 ] }, { "teal": 175, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 296 + 404, + 405 ] }, { "teal": 176, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 297 + 406, + 407 ] }, { "teal": 177, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 298 + 408 ] }, { "teal": 178, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 299, - 300, - 301 + 409, + 410 ] }, { "teal": 179, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 302 + 411 ] }, { "teal": 180, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 303 + 412, + 413, + 414 ] }, { "teal": 181, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 304 + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448 ] }, { "teal": 182, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 305, - 306, - 307 + 449 ] }, { "teal": 183, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 308 + 450 ] }, { "teal": 184, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 309 + 451, + 452, + 453 ] }, { "teal": 185, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 310 + 454, + 455 ] }, { "teal": 186, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 311, - 312, - 313 + 456 ] }, { "teal": 187, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 314, - 315, - 316 + 457 ] }, { "teal": 188, - "source": 43, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 317, - 318 + 458, + 459, + 460 ] }, { - "teal": 195, - "source": 37, + "teal": 189, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 319, - 320 + 461, + 462, + 463 ] }, { - "teal": 196, - "source": 37, + "teal": 190, + "source": "examples/merkle/merkle.algo.ts:43", "pc": [ - 321 + 464, + 465 ] }, { "teal": 197, - "source": 37, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 322 + 466, + 467 ] }, { "teal": 198, - "source": 37, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 323, - 324 + 468, + 469 ] }, { "teal": 199, - "source": 37, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 325, - 326, - 327 + 470 ] }, { - "teal": 204, - "source": 47, + "teal": 200, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 328, - 329 + 471, + 472 ] }, { - "teal": 207, - "source": 34, + "teal": 201, + "source": "examples/merkle/merkle.algo.ts:37", "pc": [ - 330, - 331 + 473, + 474, + 475 ] }, { - "teal": 210, - "source": 34, + "teal": 206, + "source": "examples/merkle/merkle.algo.ts:47", "pc": [ - 332, - 333 + 476, + 477 ] }, { - "teal": 211, - "source": 34, + "teal": 209, + "source": "examples/merkle/merkle.algo.ts:34", "pc": [ - 334 + 478, + 479 ] }, { - "teal": 216, - "source": 50, + "teal": 212, + "source": "examples/merkle/merkle.algo.ts:34", "pc": [ - 335, - 336, - 337 + 480, + 481 ] }, { - "teal": 217, - "source": 50, + "teal": 213, + "source": "examples/merkle/merkle.algo.ts:34", "pc": [ - 338 + 482 ] }, { "teal": 218, - "source": 50, + "source": "examples/merkle/merkle.algo.ts:50", "pc": [ - 339 + 483, + 484, + 485 ] }, { - "teal": 222, - "source": 50, + "teal": 219, + "source": "examples/merkle/merkle.algo.ts:50", "pc": [ - 340, - 341, - 342 + 486, + 487 ] }, { - "teal": 227, - "source": 51, + "teal": 220, + "source": "examples/merkle/merkle.algo.ts:50", "pc": [ - 343, - 344 + 488 ] }, { - "teal": 228, - "source": 51, + "teal": 224, + "source": "examples/merkle/merkle.algo.ts:50", "pc": [ - 345, - 346, - 347 + 489, + 490, + 491 ] }, { "teal": 229, - "source": 51, + "source": "examples/merkle/merkle.algo.ts:51", "pc": [ - 348, - 349 + 492, + 493 ] }, { "teal": 230, - "source": 51, + "source": "examples/merkle/merkle.algo.ts:51", "pc": [ - 350 + 494, + 495, + 496 ] }, { "teal": 231, - "source": 51, + "source": "examples/merkle/merkle.algo.ts:51", "pc": [ - 351 + 497, + 498 ] }, { - "teal": 234, - "source": 51, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.app.creator\"}", + "teal": 232, + "source": "examples/merkle/merkle.algo.ts:51", "pc": [ - 352 + 499 ] }, { - "teal": 235, - "source": 50, + "teal": 233, + "source": "examples/merkle/merkle.algo.ts:51", "pc": [ - 353 + 500 ] }, { - "teal": 240, - "source": 54, + "teal": 236, + "source": "examples/merkle/merkle.algo.ts:51", + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"sender\",\"expected\":\"this.app.creator\"}", "pc": [ - 354, - 355, - 356 + 501 ] }, { - "teal": 241, - "source": 54, + "teal": 237, + "source": "examples/merkle/merkle.algo.ts:50", "pc": [ - 357 + 502 ] }, { "teal": 242, - "source": 54, + "source": "examples/merkle/merkle.algo.ts:54", "pc": [ - 358 + 503, + 504, + 505 ] }, { - "teal": 246, - "source": 54, + "teal": 243, + "source": "examples/merkle/merkle.algo.ts:54", "pc": [ - 359, - 360, - 361 + 506, + 507 ] }, { - "teal": 250, - "source": 55, + "teal": 244, + "source": "examples/merkle/merkle.algo.ts:54", "pc": [ - 362 + 508 ] }, { - "teal": 251, - "source": 55, + "teal": 248, + "source": "examples/merkle/merkle.algo.ts:54", "pc": [ - 363, - 364, - 365 + 509, + 510, + 511 ] }, { "teal": 252, - "source": 55, + "source": "examples/merkle/merkle.algo.ts:55", "pc": [ - 366 + 512, + 513, + 514, + 515, + 516, + 517 ] }, { "teal": 253, - "source": 54, + "source": "examples/merkle/merkle.algo.ts:55", "pc": [ - 367 + 518, + 519, + 520 ] }, { - "teal": 258, - "source": 58, + "teal": 254, + "source": "examples/merkle/merkle.algo.ts:55", "pc": [ - 368, - 369, - 370 + 521 ] }, { - "teal": 259, - "source": 58, + "teal": 255, + "source": "examples/merkle/merkle.algo.ts:54", "pc": [ - 371 + 522 ] }, { "teal": 260, - "source": 58, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 372 + 523, + 524, + 525 ] }, { "teal": 261, - "source": 58, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 373 + 526 ] }, { "teal": 262, - "source": 58, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 374 + 527 ] }, { - "teal": 265, - "source": 58, - "errorMessage": "argument 0 (path) for verify must be a byte[33][3]", + "teal": 263, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 375 + 528, + 529 ] }, { - "teal": 268, - "source": 58, + "teal": 264, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 376, - 377, - 378 + 530 ] }, { - "teal": 269, - "source": 58, + "teal": 267, + "source": "examples/merkle/merkle.algo.ts:58", + "errorMessage": "argument 0 (path) for verify must be a byte[33][3]", "pc": [ - 379, - 380, - 381 + 531 ] }, { - "teal": 272, - "source": 58, + "teal": 270, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 382, - 383, - 384 + 532, + 533, + 534 ] }, { - "teal": 273, - "source": 58, + "teal": 271, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 385 + 535, + 536, + 537 ] }, { "teal": 274, - "source": 58, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 386 + 538, + 539, + 540 ] }, { - "teal": 278, - "source": 58, + "teal": 275, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 387, - 388, - 389 + 541, + 542 ] }, { - "teal": 282, - "source": 59, + "teal": 276, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 390 + 543 ] }, { - "teal": 283, - "source": 59, + "teal": 280, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 391 + 544, + 545, + 546 ] }, { "teal": 284, - "source": 59, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 392, - 393 + 547, + 548, + 549, + 550, + 551, + 552 ] }, { "teal": 285, - "source": 59, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 394, - 395 + 553 ] }, { "teal": 286, - "source": 59, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 396 + 554, + 555 ] }, { "teal": 287, - "source": 59, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 397, - 398, - 399 + 556, + 557 ] }, { "teal": 288, - "source": 59, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 400 + 558 ] }, { "teal": 289, - "source": 59, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 401 + 559, + 560, + 561 ] }, { "teal": 290, - "source": 58, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 402 + 562 ] }, { - "teal": 295, - "source": 62, + "teal": 291, + "source": "examples/merkle/merkle.algo.ts:59", "pc": [ - 403, - 404, - 405 + 563 ] }, { - "teal": 296, - "source": 62, + "teal": 292, + "source": "examples/merkle/merkle.algo.ts:58", "pc": [ - 406 + 564 ] }, { "teal": 297, - "source": 62, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 407 + 565, + 566, + 567 ] }, { "teal": 298, - "source": 62, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 408 + 568 ] }, { "teal": 299, - "source": 62, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 409 + 569 ] }, { - "teal": 302, - "source": 62, - "errorMessage": "argument 0 (path) for appendLeaf must be a byte[33][3]", + "teal": 300, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 410 + 570, + 571 ] }, { - "teal": 305, - "source": 62, + "teal": 301, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 411, - 412, - 413 + 572 ] }, { - "teal": 306, - "source": 62, + "teal": 304, + "source": "examples/merkle/merkle.algo.ts:62", + "errorMessage": "argument 0 (path) for appendLeaf must be a byte[33][3]", "pc": [ - 414, - 415, - 416 + 573 ] }, { - "teal": 309, - "source": 62, + "teal": 307, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 417, - 418, - 419 + 574, + 575, + 576 ] }, { - "teal": 310, - "source": 62, + "teal": 308, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 420 + 577, + 578, + 579 ] }, { "teal": 311, - "source": 62, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 421 + 580, + 581, + 582 ] }, { - "teal": 315, - "source": 62, + "teal": 312, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 422, - 423, - 424 + 583, + 584 ] }, { - "teal": 319, - "source": 63, + "teal": 313, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 425, - 426 + 585 ] }, { - "teal": 320, - "source": 63, + "teal": 317, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 427 + 586, + 587, + 588 ] }, { "teal": 321, - "source": 63, + "source": "examples/merkle/merkle.algo.ts:63", "pc": [ - 428 + 589, + 590 ] }, { "teal": 322, - "source": 63, + "source": "examples/merkle/merkle.algo.ts:63", "pc": [ - 429 + 591, + 592 ] }, { - "teal": 326, - "source": 64, + "teal": 323, + "source": "examples/merkle/merkle.algo.ts:63", "pc": [ - 430 + 593 ] }, { - "teal": 327, - "source": 64, + "teal": 324, + "source": "examples/merkle/merkle.algo.ts:63", "pc": [ - 431 + 594 ] }, { "teal": 328, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 432, - 433 + 595, + 596, + 597, + 598, + 599, + 600 ] }, { "teal": 329, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 434 + 601 ] }, { "teal": 330, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 435 + 602, + 603 ] }, { "teal": 331, - "source": 64, - "pc": [ - 436 + "source": "examples/merkle/merkle.algo.ts:64", + "pc": [ + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669 ] }, { "teal": 332, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 437 + 670, + 671 ] }, { "teal": 333, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 438 + 672 ] }, { "teal": 334, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 439, - 440, - 441 + 673 ] }, { "teal": 335, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 442, - 443, - 444 + 674 ] }, { "teal": 336, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 445 + 675, + 676, + 677 ] }, { "teal": 337, - "source": 64, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 446 + 678, + 679, + 680 ] }, { - "teal": 341, - "source": 66, + "teal": 338, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 447 + 681 ] }, { - "teal": 342, - "source": 66, + "teal": 339, + "source": "examples/merkle/merkle.algo.ts:64", "pc": [ - 448, - 449 + 682 ] }, { "teal": 343, - "source": 66, + "source": "examples/merkle/merkle.algo.ts:66", "pc": [ - 450, - 451 + 683, + 684, + 685, + 686, + 687, + 688 ] }, { "teal": 344, - "source": 66, + "source": "examples/merkle/merkle.algo.ts:66", "pc": [ - 452 + 689, + 690 ] }, { "teal": 345, - "source": 66, + "source": "examples/merkle/merkle.algo.ts:66", "pc": [ - 453, - 454, - 455 + 691, + 692 ] }, { "teal": 346, - "source": 66, + "source": "examples/merkle/merkle.algo.ts:66", "pc": [ - 456 + 693 ] }, { - "teal": 350, - "source": 68, + "teal": 347, + "source": "examples/merkle/merkle.algo.ts:66", "pc": [ - 457, - 458, - 459, - 460, - 461, - 462 + 694, + 695, + 696 ] }, { - "teal": 351, - "source": 68, + "teal": 348, + "source": "examples/merkle/merkle.algo.ts:66", "pc": [ - 463 + 697 ] }, { "teal": 352, - "source": 68, + "source": "examples/merkle/merkle.algo.ts:68", "pc": [ - 464 + 698, + 699, + 700, + 701, + 702, + 703 ] }, { "teal": 353, - "source": 68, + "source": "examples/merkle/merkle.algo.ts:68", "pc": [ - 465 + 704 ] }, { "teal": 354, - "source": 68, + "source": "examples/merkle/merkle.algo.ts:68", "pc": [ - 466 + 705 ] }, { "teal": 355, - "source": 68, + "source": "examples/merkle/merkle.algo.ts:68", "pc": [ - 467 + 706, + 707 ] }, { "teal": 356, - "source": 62, + "source": "examples/merkle/merkle.algo.ts:68", "pc": [ - 468 + 708 ] }, { - "teal": 361, - "source": 71, + "teal": 357, + "source": "examples/merkle/merkle.algo.ts:68", "pc": [ - 469, - 470, - 471 + 709 ] }, { - "teal": 362, - "source": 71, + "teal": 358, + "source": "examples/merkle/merkle.algo.ts:62", "pc": [ - 472 + 710 ] }, { "teal": 363, - "source": 71, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 473 + 711, + 712, + 713 ] }, { "teal": 364, - "source": 71, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 474 + 714 ] }, { "teal": 365, - "source": 71, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 475 + 715 ] }, { - "teal": 368, - "source": 71, - "errorMessage": "argument 0 (path) for updateLeaf must be a byte[33][3]", + "teal": 366, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 476 + 716, + 717 ] }, { - "teal": 371, - "source": 71, + "teal": 367, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 477, - 478, - 479 + 718 ] }, { - "teal": 372, - "source": 71, + "teal": 370, + "source": "examples/merkle/merkle.algo.ts:71", + "errorMessage": "argument 0 (path) for updateLeaf must be a byte[33][3]", "pc": [ - 480, - 481, - 482 + 719 ] }, { - "teal": 375, - "source": 71, + "teal": 373, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 483, - 484, - 485 + 720, + 721, + 722 ] }, { - "teal": 376, - "source": 71, + "teal": 374, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 486, - 487, - 488 + 723, + 724, + 725 ] }, { - "teal": 379, - "source": 71, + "teal": 377, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 489, - 490, - 491 + 726, + 727, + 728 ] }, { - "teal": 380, - "source": 71, + "teal": 378, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 492 + 729, + 730, + 731 ] }, { "teal": 381, - "source": 71, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 493 + 732, + 733, + 734 ] }, { - "teal": 385, - "source": 71, + "teal": 382, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 494, - 495, - 496 + 735, + 736 ] }, { - "teal": 389, - "source": 72, + "teal": 383, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 497, - 498 + 737 ] }, { - "teal": 390, - "source": 72, + "teal": 387, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 499 + 738, + 739, + 740 ] }, { "teal": 391, - "source": 72, + "source": "examples/merkle/merkle.algo.ts:72", "pc": [ - 500 + 741, + 742 ] }, { "teal": 392, - "source": 72, + "source": "examples/merkle/merkle.algo.ts:72", "pc": [ - 501 + 743, + 744 ] }, { - "teal": 396, - "source": 73, + "teal": 393, + "source": "examples/merkle/merkle.algo.ts:72", "pc": [ - 502 + 745 ] }, { - "teal": 397, - "source": 73, + "teal": 394, + "source": "examples/merkle/merkle.algo.ts:72", "pc": [ - 503 + 746 ] }, { "teal": 398, - "source": 73, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 504, - 505 + 747, + 748, + 749, + 750, + 751, + 752 ] }, { "teal": 399, - "source": 73, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 506, - 507 + 753 ] }, { "teal": 400, - "source": 73, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 508 + 754, + 755 ] }, { "teal": 401, - "source": 73, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 509, - 510, - 511 + 756, + 757 ] }, { "teal": 402, - "source": 73, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 512 + 758 ] }, { "teal": 403, - "source": 73, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 513 + 759, + 760, + 761 ] }, { - "teal": 407, - "source": 75, + "teal": 404, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 514 + 762 ] }, { - "teal": 408, - "source": 75, + "teal": 405, + "source": "examples/merkle/merkle.algo.ts:73", "pc": [ - 515, - 516 + 763 ] }, { "teal": 409, - "source": 75, + "source": "examples/merkle/merkle.algo.ts:75", "pc": [ - 517, - 518 + 764, + 765, + 766, + 767, + 768, + 769 ] }, { "teal": 410, - "source": 75, + "source": "examples/merkle/merkle.algo.ts:75", "pc": [ - 519 + 770, + 771 ] }, { "teal": 411, - "source": 75, + "source": "examples/merkle/merkle.algo.ts:75", "pc": [ - 520, - 521, - 522 + 772, + 773 ] }, { "teal": 412, - "source": 75, + "source": "examples/merkle/merkle.algo.ts:75", "pc": [ - 523 + 774 ] }, { "teal": 413, - "source": 71, + "source": "examples/merkle/merkle.algo.ts:75", "pc": [ - 524 + 775, + 776, + 777 ] }, { - "teal": 416, - "source": 11, + "teal": 414, + "source": "examples/merkle/merkle.algo.ts:75", "pc": [ - 525, - 526, - 527, - 528, - 529, - 530 + 778 ] }, { - "teal": 417, - "source": 11, + "teal": 415, + "source": "examples/merkle/merkle.algo.ts:71", "pc": [ - 531, - 532, - 533 + 779 ] }, { "teal": 418, - "source": 11, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 534, - 535, - 536, - 537 + 780, + 781, + 782, + 783, + 784, + 785 ] }, { - "teal": 421, - "source": 11, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 419, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 538 + 786, + 787, + 788 ] }, { - "teal": 424, - "source": 11, + "teal": 420, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 539, - 540, - 541, - 542, - 543, - 544 + 789, + 790, + 791, + 792 ] }, { - "teal": 425, - "source": 11, + "teal": 423, + "source": "examples/merkle/merkle.algo.ts:11", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 545, - 546, - 547, - 548, - 549, - 550 + 793 ] }, { "teal": 426, - "source": 11, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 551, - 552, - 553, - 554, - 555, - 556 + 794, + 795, + 796, + 797, + 798, + 799 ] }, { "teal": 427, - "source": 11, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 557, - 558, - 559 + 800, + 801, + 802, + 803, + 804, + 805 ] }, { "teal": 428, - "source": 11, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567 + 806, + 807, + 808, + 809, + 810, + 811 ] }, { - "teal": 431, - "source": 11, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "teal": 429, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 568 + 812, + 813, + 814 ] }, { - "teal": 434, - "source": 11, + "teal": 430, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 569, - 570, - 571, - 572, - 573, - 574 + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822 ] }, { - "teal": 435, - "source": 11, + "teal": 433, + "source": "examples/merkle/merkle.algo.ts:11", + "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 575, - 576, - 577 + 823 ] }, { "teal": 436, - "source": 11, + "source": "examples/merkle/merkle.algo.ts:11", "pc": [ - 578, - 579, - 580, - 581 + 824, + 825, + 826, + 827, + 828, + 829 + ] + }, + { + "teal": 437, + "source": "examples/merkle/merkle.algo.ts:11", + "pc": [ + 830, + 831, + 832 ] }, { - "teal": 439, - "source": 11, + "teal": 438, + "source": "examples/merkle/merkle.algo.ts:11", + "pc": [ + 833, + 834, + 835, + 836 + ] + }, + { + "teal": 441, + "source": "examples/merkle/merkle.algo.ts:11", "errorMessage": "this contract does not implement the given ABI method for call DeleteApplication", "pc": [ - 582 + 837 ] } ] \ No newline at end of file diff --git a/examples/non_abi/artifacts/NonABIExample.approval.teal b/examples/non_abi/artifacts/NonABIExample.approval.teal index 9d960fa1a..54d1898f1 100644 --- a/examples/non_abi/artifacts/NonABIExample.approval.teal +++ b/examples/non_abi/artifacts/NonABIExample.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // !!!! WARNING: This contract is *NOT* ARC4 compliant. It may contain ABI methods, but it also allows app calls where the first argument does NOT match an ABI selector @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -36,7 +37,7 @@ add: // abiAdd(uint64,uint64)uint64 *abi_route_abiAdd: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // y: uint64 txna ApplicationArgs 2 @@ -51,7 +52,7 @@ add: itob concat log - int 1 + pushint 1 return // abiAdd(x: uint64, y: uint64): uint64 @@ -100,16 +101,16 @@ nonAbiUpdate: // examples/non_abi/non_abi.algo.ts:22 // log('Updated!') - byte 0x5570646174656421 // "Updated!" + pushbytes 0x5570646174656421 // "Updated!" log retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -117,17 +118,17 @@ nonAbiUpdate: err *call_NoOp: - method "abiAdd(uint64,uint64)uint64" + pushbytes 0xb8b84484 // method "abiAdd(uint64,uint64)uint64" txna ApplicationArgs 0 match *abi_route_abiAdd // !!!! WARNING: non-ABI routing callsub nonAbiAdd - int 1 + pushint 1 return *call_UpdateApplication: // !!!! WARNING: non-ABI routing callsub nonAbiUpdate - int 1 + pushint 1 return \ No newline at end of file diff --git a/examples/non_abi/artifacts/NonABIExample.arc32.json b/examples/non_abi/artifacts/NonABIExample.arc32.json index 4b6d0c61f..a374851e5 100644 --- a/examples/non_abi/artifacts/NonABIExample.arc32.json +++ b/examples/non_abi/artifacts/NonABIExample.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gISEhISBXQVJOSU5HOiBUaGlzIGNvbnRyYWN0IGlzICpOT1QqIEFSQzQgY29tcGxpYW50LiBJdCBtYXkgY29udGFpbiBBQkkgbWV0aG9kcywgYnV0IGl0IGFsc28gYWxsb3dzIGFwcCBjYWxscyB3aGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgZG9lcyBOT1QgbWF0Y2ggYW4gQUJJIHNlbGVjdG9yCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYWRkKHg6IHVpbnQ2NCwgeTogdWludDY0KTogdWludDY0CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjYKCS8vIHJldHVybiB4ICsgeTsKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCSsKCXJldHN1YgoKLy8gYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYWJpQWRkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB5OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFiaUFkZCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBhYmlBZGQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhYmlBZGQoeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQKYWJpQWRkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTAKCS8vIHJldHVybiB0aGlzLmFkZCh4LCB5KTsKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWNhbGxzdWIgYWRkCglyZXRzdWIKCi8vIG5vbkFiaUFkZCgpOiB2b2lkCm5vbkFiaUFkZDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxNQoJLy8geCA9IGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjE2CgkvLyB5ID0gYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCglmcmFtZV9idXJ5IDEgLy8geTogdWludDY0CgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTcKCS8vIGxvZyhpdG9iKHRoaXMuYWRkKHgsIHkpKSkKCWZyYW1lX2RpZyAxIC8vIHk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CgljYWxsc3ViIGFkZAoJaXRvYgoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaVVwZGF0ZSgpOiB2b2lkCm5vbkFiaVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjIyCgkvLyBsb2coJ1VwZGF0ZWQhJykKCWJ5dGUgMHg1NTcwNjQ2MTc0NjU2NDIxIC8vICJVcGRhdGVkISIKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hYmlBZGQKCgkvLyAhISEhIFdBUk5JTkc6IG5vbi1BQkkgcm91dGluZwoJY2FsbHN1YiBub25BYmlBZGQKCWludCAxCglyZXR1cm4KCipjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpVXBkYXRlCglpbnQgMQoJcmV0dXJu", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyAhISEhIFdBUk5JTkc6IFRoaXMgY29udHJhY3QgaXMgKk5PVCogQVJDNCBjb21wbGlhbnQuIEl0IG1heSBjb250YWluIEFCSSBtZXRob2RzLCBidXQgaXQgYWxzbyBhbGxvd3MgYXBwIGNhbGxzIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIE5PVCBtYXRjaCBhbiBBQkkgc2VsZWN0b3IKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYWRkKHg6IHVpbnQ2NCwgeTogdWludDY0KTogdWludDY0CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjYKCS8vIHJldHVybiB4ICsgeTsKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCSsKCXJldHN1YgoKLy8gYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYWJpQWRkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGFiaUFkZAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhYmlBZGQoeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQKYWJpQWRkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTAKCS8vIHJldHVybiB0aGlzLmFkZCh4LCB5KTsKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWNhbGxzdWIgYWRkCglyZXRzdWIKCi8vIG5vbkFiaUFkZCgpOiB2b2lkCm5vbkFiaUFkZDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxNQoJLy8geCA9IGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjE2CgkvLyB5ID0gYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCglmcmFtZV9idXJ5IDEgLy8geTogdWludDY0CgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTcKCS8vIGxvZyhpdG9iKHRoaXMuYWRkKHgsIHkpKSkKCWZyYW1lX2RpZyAxIC8vIHk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CgljYWxsc3ViIGFkZAoJaXRvYgoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaVVwZGF0ZSgpOiB2b2lkCm5vbkFiaVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjIyCgkvLyBsb2coJ1VwZGF0ZWQhJykKCXB1c2hieXRlcyAweDU1NzA2NDYxNzQ2NTY0MjEgLy8gIlVwZGF0ZWQhIgoJbG9nCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGI4Yjg0NDg0IC8vIG1ldGhvZCAiYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hYmlBZGQKCgkvLyAhISEhIFdBUk5JTkc6IG5vbi1BQkkgcm91dGluZwoJY2FsbHN1YiBub25BYmlBZGQKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCS8vICEhISEgV0FSTklORzogbm9uLUFCSSByb3V0aW5nCgljYWxsc3ViIG5vbkFiaVVwZGF0ZQoJcHVzaGludCAxCglyZXR1cm4=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/non_abi/artifacts/NonABIExample.arc56_draft.json b/examples/non_abi/artifacts/NonABIExample.arc56_draft.json index 813ac482a..813196731 100644 --- a/examples/non_abi/artifacts/NonABIExample.arc56_draft.json +++ b/examples/non_abi/artifacts/NonABIExample.arc56_draft.json @@ -70,566 +70,34 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 27, - "source": 5, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 31, - "source": 6, - "pc": [ - 43, - 44 - ] - }, - { - "teal": 32, - "source": 6, - "pc": [ - 45, - 46 - ] - }, - { - "teal": 33, - "source": 6, - "pc": [ - 47 - ] - }, - { - "teal": 34, - "source": 5, - "pc": [ - 48 - ] - }, - { - "teal": 39, - "source": 9, - "pc": [ - 49, - 50, - 51, - 52, - 53, - 54 - ] - }, - { - "teal": 42, - "source": 9, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 43, - "source": 9, - "pc": [ - 58 - ] - }, - { - "teal": 46, - "source": 9, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 47, - "source": 9, - "pc": [ - 62 - ] - }, - { - "teal": 50, - "source": 9, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 51, - "source": 9, - "pc": [ - 66 - ] - }, - { - "teal": 52, - "source": 9, - "pc": [ - 67 - ] - }, - { - "teal": 53, - "source": 9, - "pc": [ - 68 - ] - }, - { - "teal": 54, - "source": 9, - "pc": [ - 69 - ] - }, - { - "teal": 55, - "source": 9, - "pc": [ - 70 - ] - }, - { - "teal": 59, - "source": 9, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 63, - "source": 10, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 64, - "source": 10, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 65, - "source": 10, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 66, - "source": 9, - "pc": [ - 81 - ] - }, - { - "teal": 70, - "source": 13, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 73, - "source": 13, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 74, - "source": 13, - "pc": [ - 87 - ] - }, - { - "teal": 78, - "source": 15, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 79, - "source": 15, - "pc": [ - 91 - ] - }, - { - "teal": 80, - "source": 15, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 84, - "source": 16, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 85, - "source": 16, - "pc": [ - 97 - ] - }, - { - "teal": 86, - "source": 16, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 90, - "source": 17, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 91, - "source": 17, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 92, - "source": 17, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 93, - "source": 17, - "pc": [ - 107 - ] - }, - { - "teal": 94, - "source": 17, - "pc": [ - 108 - ] - }, - { - "teal": 95, - "source": 13, - "pc": [ - 109 - ] - }, - { - "teal": 99, - "source": 20, - "pc": [ - 110, - 111, - 112 - ] - }, - { - "teal": 103, - "source": 22, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 104, - "source": 22, - "pc": [ - 123 - ] - }, - { - "teal": 105, - "source": 20, - "pc": [ - 124 - ] - }, - { - "teal": 108, - "source": 4, - "pc": [ - 125 - ] - }, - { - "teal": 109, - "source": 4, - "pc": [ - 126 - ] - }, - { - "teal": 112, - "source": 4, - "pc": [ - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 113, - "source": 4, - "pc": [ - 133, - 134, - 135 - ] - }, - { - "teal": 114, - "source": 4, - "pc": [ - 136, - 137, - 138, - 139 - ] - }, - { - "teal": 117, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 140 - ] - }, - { - "teal": 120, - "source": 4, - "pc": [ - 141, - 142, - 143, - 144, - 145, - 146 - ] - }, - { - "teal": 121, - "source": 4, - "pc": [ - 147, - 148, - 149 - ] - }, - { - "teal": 122, - "source": 4, - "pc": [ - 150, - 151, - 152, - 153 - ] - }, - { - "teal": 125, - "source": 4, - "pc": [ - 154, - 155, - 156 - ] - }, - { - "teal": 126, - "source": 4, - "pc": [ - 157 - ] - }, - { - "teal": 127, - "source": 4, - "pc": [ - 158 - ] - }, - { - "teal": 131, - "source": 4, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 132, - "source": 4, - "pc": [ - 162 - ] - }, - { - "teal": 133, - "source": 4, - "pc": [ - 163 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 142 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gISEhISBXQVJOSU5HOiBUaGlzIGNvbnRyYWN0IGlzICpOT1QqIEFSQzQgY29tcGxpYW50LiBJdCBtYXkgY29udGFpbiBBQkkgbWV0aG9kcywgYnV0IGl0IGFsc28gYWxsb3dzIGFwcCBjYWxscyB3aGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgZG9lcyBOT1QgbWF0Y2ggYW4gQUJJIHNlbGVjdG9yCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYWRkKHg6IHVpbnQ2NCwgeTogdWludDY0KTogdWludDY0CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjYKCS8vIHJldHVybiB4ICsgeTsKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCSsKCXJldHN1YgoKLy8gYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYWJpQWRkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB5OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFiaUFkZCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBhYmlBZGQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhYmlBZGQoeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQKYWJpQWRkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTAKCS8vIHJldHVybiB0aGlzLmFkZCh4LCB5KTsKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWNhbGxzdWIgYWRkCglyZXRzdWIKCi8vIG5vbkFiaUFkZCgpOiB2b2lkCm5vbkFiaUFkZDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxNQoJLy8geCA9IGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjE2CgkvLyB5ID0gYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCglmcmFtZV9idXJ5IDEgLy8geTogdWludDY0CgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTcKCS8vIGxvZyhpdG9iKHRoaXMuYWRkKHgsIHkpKSkKCWZyYW1lX2RpZyAxIC8vIHk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CgljYWxsc3ViIGFkZAoJaXRvYgoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaVVwZGF0ZSgpOiB2b2lkCm5vbkFiaVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjIyCgkvLyBsb2coJ1VwZGF0ZWQhJykKCWJ5dGUgMHg1NTcwNjQ2MTc0NjU2NDIxIC8vICJVcGRhdGVkISIKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hYmlBZGQKCgkvLyAhISEhIFdBUk5JTkc6IG5vbi1BQkkgcm91dGluZwoJY2FsbHN1YiBub25BYmlBZGQKCWludCAxCglyZXR1cm4KCipjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpVXBkYXRlCglpbnQgMQoJcmV0dXJu", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyAhISEhIFdBUk5JTkc6IFRoaXMgY29udHJhY3QgaXMgKk5PVCogQVJDNCBjb21wbGlhbnQuIEl0IG1heSBjb250YWluIEFCSSBtZXRob2RzLCBidXQgaXQgYWxzbyBhbGxvd3MgYXBwIGNhbGxzIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIE5PVCBtYXRjaCBhbiBBQkkgc2VsZWN0b3IKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYWRkKHg6IHVpbnQ2NCwgeTogdWludDY0KTogdWludDY0CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjYKCS8vIHJldHVybiB4ICsgeTsKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCSsKCXJldHN1YgoKLy8gYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYWJpQWRkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGFiaUFkZAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhYmlBZGQoeDogdWludDY0LCB5OiB1aW50NjQpOiB1aW50NjQKYWJpQWRkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTAKCS8vIHJldHVybiB0aGlzLmFkZCh4LCB5KTsKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50NjQKCWNhbGxzdWIgYWRkCglyZXRzdWIKCi8vIG5vbkFiaUFkZCgpOiB2b2lkCm5vbkFiaUFkZDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9ub25fYWJpL25vbl9hYmkuYWxnby50czoxNQoJLy8geCA9IGJ0b2kodGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVswXSkKCXR4biBBcHBsaWNhdGlvbkFyZ3MgMAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjE2CgkvLyB5ID0gYnRvaSh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhWzFdKQoJdHhuIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCglmcmFtZV9idXJ5IDEgLy8geTogdWludDY0CgoJLy8gZXhhbXBsZXMvbm9uX2FiaS9ub25fYWJpLmFsZ28udHM6MTcKCS8vIGxvZyhpdG9iKHRoaXMuYWRkKHgsIHkpKSkKCWZyYW1lX2RpZyAxIC8vIHk6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CgljYWxsc3ViIGFkZAoJaXRvYgoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaVVwZGF0ZSgpOiB2b2lkCm5vbkFiaVVwZGF0ZToKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL25vbl9hYmkvbm9uX2FiaS5hbGdvLnRzOjIyCgkvLyBsb2coJ1VwZGF0ZWQhJykKCXB1c2hieXRlcyAweDU1NzA2NDYxNzQ2NTY0MjEgLy8gIlVwZGF0ZWQhIgoJbG9nCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGI4Yjg0NDg0IC8vIG1ldGhvZCAiYWJpQWRkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hYmlBZGQKCgkvLyAhISEhIFdBUk5JTkc6IG5vbi1BQkkgcm91dGluZwoJY2FsbHN1YiBub25BYmlBZGQKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCS8vICEhISEgV0FSTklORzogbm9uLUFCSSByb3V0aW5nCgljYWxsc3ViIG5vbkFiaVVwZGF0ZQoJcHVzaGludCAxCglyZXR1cm4=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAGYAAAAAAAAAeAAAAFgAAAAAAAAAAAAAAIoCAYv/i/4IiYAEFR98dTYaAhc2GgEXiAAFFlCwIkOKAgGL/ov/iP/XiYoAAIAASTYaABeMADYaAReMAYsBiwCI/70WsImKAACACFVwZGF0ZWQhsIkiQ4AEuER7NjYaAI4B//EAgAS4uESENhoAjgH/l4j/tSJDiP/MIkM=", + "approval": "CiYBADEYFIEGCzEZCI0MAGgAAAAAAAAAewAAAFoAAAAAAAAAAAAAAIoCAYv/i/4IiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBi/6L/4j/1omKAACAAEk2GgAXjAA2GgEXjAGLAYsAiP+8FrCJigAAgAhVcGRhdGVkIbCJgQFDgAS4RHs2NhoAjgH/8ACABLi4RIQ2GgCOAf+ViP+0gQFDiP/KgQFD", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/non_abi/artifacts/NonABIExample.src_map.json b/examples/non_abi/artifacts/NonABIExample.src_map.json index 87ce81efb..366bec3ef 100644 --- a/examples/non_abi/artifacts/NonABIExample.src_map.json +++ b/examples/non_abi/artifacts/NonABIExample.src_map.json @@ -1,62 +1,68 @@ [ { "teal": 1, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 0, 1, 2, 3 ] }, { - "teal": 13, - "source": 4, + "teal": 14, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 4, 5 ] }, { - "teal": 14, - "source": 4, + "teal": 15, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 6 ] }, { - "teal": 15, - "source": 4, + "teal": 16, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 7, 8 ] }, { - "teal": 16, - "source": 4, + "teal": 17, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 9 ] }, { - "teal": 17, - "source": 4, + "teal": 18, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 10, 11 ] }, { - "teal": 18, - "source": 4, + "teal": 19, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 12 ] }, { - "teal": 19, - "source": 4, + "teal": 20, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ 13, 14, @@ -87,16 +93,16 @@ ] }, { - "teal": 23, - "source": 4, + "teal": 24, + "source": "examples/non_abi/non_abi.algo.ts:4", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ 39 ] }, { - "teal": 27, - "source": 5, + "teal": 28, + "source": "examples/non_abi/non_abi.algo.ts:5", "pc": [ 40, 41, @@ -104,38 +110,38 @@ ] }, { - "teal": 31, - "source": 6, + "teal": 32, + "source": "examples/non_abi/non_abi.algo.ts:6", "pc": [ 43, 44 ] }, { - "teal": 32, - "source": 6, + "teal": 33, + "source": "examples/non_abi/non_abi.algo.ts:6", "pc": [ 45, 46 ] }, { - "teal": 33, - "source": 6, + "teal": 34, + "source": "examples/non_abi/non_abi.algo.ts:6", "pc": [ 47 ] }, { - "teal": 34, - "source": 5, + "teal": 35, + "source": "examples/non_abi/non_abi.algo.ts:5", "pc": [ 48 ] }, { - "teal": 39, - "source": 9, + "teal": 40, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ 49, 50, @@ -146,8 +152,8 @@ ] }, { - "teal": 42, - "source": 9, + "teal": 43, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ 55, 56, @@ -155,15 +161,15 @@ ] }, { - "teal": 43, - "source": 9, + "teal": 44, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ 58 ] }, { - "teal": 46, - "source": 9, + "teal": 47, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ 59, 60, @@ -171,229 +177,229 @@ ] }, { - "teal": 47, - "source": 9, + "teal": 48, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ 62 ] }, { - "teal": 50, - "source": 9, + "teal": 51, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ 63, 64, 65 ] }, - { - "teal": 51, - "source": 9, - "pc": [ - 66 - ] - }, { "teal": 52, - "source": 9, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ - 67 + 66 ] }, { "teal": 53, - "source": 9, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ - 68 + 67 ] }, { "teal": 54, - "source": 9, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ - 69 + 68 ] }, { "teal": 55, - "source": 9, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ + 69, 70 ] }, { - "teal": 59, - "source": 9, + "teal": 56, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ - 71, - 72, - 73 + 71 ] }, { - "teal": 63, - "source": 10, + "teal": 60, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ - 74, - 75 + 72, + 73, + 74 ] }, { "teal": 64, - "source": 10, + "source": "examples/non_abi/non_abi.algo.ts:10", "pc": [ - 76, - 77 + 75, + 76 ] }, { "teal": 65, - "source": 10, + "source": "examples/non_abi/non_abi.algo.ts:10", "pc": [ - 78, - 79, - 80 + 77, + 78 ] }, { "teal": 66, - "source": 9, + "source": "examples/non_abi/non_abi.algo.ts:10", "pc": [ + 79, + 80, 81 ] }, { - "teal": 70, - "source": 13, + "teal": 67, + "source": "examples/non_abi/non_abi.algo.ts:9", "pc": [ - 82, - 83, - 84 + 82 ] }, { - "teal": 73, - "source": 13, + "teal": 71, + "source": "examples/non_abi/non_abi.algo.ts:13", "pc": [ - 85, - 86 + 83, + 84, + 85 ] }, { "teal": 74, - "source": 13, + "source": "examples/non_abi/non_abi.algo.ts:13", "pc": [ + 86, 87 ] }, { - "teal": 78, - "source": 15, + "teal": 75, + "source": "examples/non_abi/non_abi.algo.ts:13", "pc": [ - 88, - 89, - 90 + 88 ] }, { "teal": 79, - "source": 15, + "source": "examples/non_abi/non_abi.algo.ts:15", "pc": [ + 89, + 90, 91 ] }, { "teal": 80, - "source": 15, + "source": "examples/non_abi/non_abi.algo.ts:15", "pc": [ - 92, - 93 + 92 ] }, { - "teal": 84, - "source": 16, + "teal": 81, + "source": "examples/non_abi/non_abi.algo.ts:15", "pc": [ - 94, - 95, - 96 + 93, + 94 ] }, { "teal": 85, - "source": 16, + "source": "examples/non_abi/non_abi.algo.ts:16", "pc": [ + 95, + 96, 97 ] }, { "teal": 86, - "source": 16, + "source": "examples/non_abi/non_abi.algo.ts:16", "pc": [ - 98, - 99 + 98 ] }, { - "teal": 90, - "source": 17, + "teal": 87, + "source": "examples/non_abi/non_abi.algo.ts:16", "pc": [ - 100, - 101 + 99, + 100 ] }, { "teal": 91, - "source": 17, + "source": "examples/non_abi/non_abi.algo.ts:17", "pc": [ - 102, - 103 + 101, + 102 ] }, { "teal": 92, - "source": 17, + "source": "examples/non_abi/non_abi.algo.ts:17", "pc": [ - 104, - 105, - 106 + 103, + 104 ] }, { "teal": 93, - "source": 17, + "source": "examples/non_abi/non_abi.algo.ts:17", "pc": [ + 105, + 106, 107 ] }, { "teal": 94, - "source": 17, + "source": "examples/non_abi/non_abi.algo.ts:17", "pc": [ 108 ] }, { "teal": 95, - "source": 13, + "source": "examples/non_abi/non_abi.algo.ts:17", "pc": [ 109 ] }, { - "teal": 99, - "source": 20, + "teal": 96, + "source": "examples/non_abi/non_abi.algo.ts:13", + "pc": [ + 110 + ] + }, + { + "teal": 100, + "source": "examples/non_abi/non_abi.algo.ts:20", "pc": [ - 110, 111, - 112 + 112, + 113 ] }, { - "teal": 103, - "source": 22, + "teal": 104, + "source": "examples/non_abi/non_abi.algo.ts:22", "pc": [ - 113, 114, 115, 116, @@ -402,151 +408,155 @@ 119, 120, 121, - 122 - ] - }, - { - "teal": 104, - "source": 22, - "pc": [ + 122, 123 ] }, { "teal": 105, - "source": 20, + "source": "examples/non_abi/non_abi.algo.ts:22", "pc": [ 124 ] }, { - "teal": 108, - "source": 4, + "teal": 106, + "source": "examples/non_abi/non_abi.algo.ts:20", "pc": [ 125 ] }, { "teal": 109, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 126 + 126, + 127 ] }, { - "teal": 112, - "source": 4, + "teal": 110, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 127, - 128, - 129, - 130, - 131, - 132 + 128 ] }, { "teal": 113, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ + 129, + 130, + 131, + 132, 133, - 134, - 135 + 134 ] }, { "teal": 114, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ + 135, 136, - 137, - 138, - 139 + 137 ] }, { - "teal": 117, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 115, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 140 + 138, + 139, + 140, + 141 ] }, { - "teal": 120, - "source": 4, + "teal": 118, + "source": "examples/non_abi/non_abi.algo.ts:4", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 141, - 142, - 143, - 144, - 145, - 146 + 142 ] }, { "teal": 121, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ + 143, + 144, + 145, + 146, 147, - 148, - 149 + 148 ] }, { "teal": 122, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ + 149, 150, - 151, - 152, - 153 + 151 ] }, { - "teal": 125, - "source": 4, + "teal": 123, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ + 152, + 153, 154, - 155, - 156 + 155 ] }, { "teal": 126, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 157 + 156, + 157, + 158 ] }, { "teal": 127, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 158 + 159, + 160 ] }, { - "teal": 131, - "source": 4, + "teal": 128, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 159, - 160, 161 ] }, { "teal": 132, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 162 + 162, + 163, + 164 ] }, { "teal": 133, - "source": 4, + "source": "examples/non_abi/non_abi.algo.ts:4", + "pc": [ + 165, + 166 + ] + }, + { + "teal": 134, + "source": "examples/non_abi/non_abi.algo.ts:4", "pc": [ - 163 + 167 ] } ] \ No newline at end of file diff --git a/examples/optin-lsig/artifacts/LsigExample.lsig.teal b/examples/optin-lsig/artifacts/LsigExample.lsig.teal index ad8f22be8..907c79306 100644 --- a/examples/optin-lsig/artifacts/LsigExample.lsig.teal +++ b/examples/optin-lsig/artifacts/LsigExample.lsig.teal @@ -1,10 +1,10 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript -// The address of this logic signature is R3AXSKEZHFTAMBE7AVWQDHXIPPOUJ3WJBOSR7CQIZCIN6FQLYLKGYNKLDA +// The address of this logic signature is 2557Q4YBTDGG3M6XJO2BWFD37TWICBDDDF5IGNJLDJH3HUZXICNVCD6ZBI b *route_logic @@ -12,7 +12,7 @@ b *route_logic *route_logic: // execute logic()void callsub logic - int 1 + pushint 1 return // logic(): void @@ -31,7 +31,7 @@ logic: // }) // verify axfer txn TypeEnum - int axfer + pushint 4 // axfer == // transaction verification failed: {"txn":"this.txn","field":"typeEnum","expected":"axfer"} @@ -39,7 +39,7 @@ logic: // verify assetAmount txn AssetAmount - int 0 + pushint 0 == // transaction verification failed: {"txn":"this.txn","field":"assetAmount","expected":"0"} @@ -55,7 +55,7 @@ logic: // verify fee txn Fee - int 0 + pushint 0 == // transaction verification failed: {"txn":"this.txn","field":"fee","expected":"0"} diff --git a/examples/optin-lsig/artifacts/LsigExample.src_map.json b/examples/optin-lsig/artifacts/LsigExample.src_map.json index 879fcb232..37f277197 100644 --- a/examples/optin-lsig/artifacts/LsigExample.src_map.json +++ b/examples/optin-lsig/artifacts/LsigExample.src_map.json @@ -1,245 +1,244 @@ [ { "teal": 1, - "source": 4, + "source": "examples/optin-lsig/lsig.algo.ts:4", "pc": [ - 0, - 1, - 2, - 3 + 0 ] }, { "teal": 9, - "source": 4, + "source": "examples/optin-lsig/lsig.algo.ts:4", "pc": [ - 4, - 5, - 6 + 1, + 2, + 3 ] }, { "teal": 14, - "source": 6, + "source": "examples/optin-lsig/lsig.algo.ts:6", "pc": [ - 7, - 8, - 9 + 4, + 5, + 6 ] }, { "teal": 15, - "source": 6, + "source": "examples/optin-lsig/lsig.algo.ts:6", "pc": [ - 10, - 11 + 7, + 8 ] }, { "teal": 16, - "source": 6, + "source": "examples/optin-lsig/lsig.algo.ts:6", "pc": [ - 12 + 9 ] }, { "teal": 22, - "source": 6, + "source": "examples/optin-lsig/lsig.algo.ts:6", "pc": [ - 13, - 14, - 15 + 10, + 11, + 12 ] }, { "teal": 33, - "source": 7, + "source": "examples/optin-lsig/lsig.algo.ts:7", "pc": [ - 16, - 17 + 13, + 14 ] }, { "teal": 34, - "source": 7, + "source": "examples/optin-lsig/lsig.algo.ts:7", "pc": [ - 18, - 19 + 15, + 16 ] }, { "teal": 35, - "source": 7, + "source": "examples/optin-lsig/lsig.algo.ts:7", "pc": [ - 20 + 17 ] }, { "teal": 38, - "source": 7, + "source": "examples/optin-lsig/lsig.algo.ts:7", "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}", "pc": [ - 21 + 18 ] }, { "teal": 41, - "source": 8, + "source": "examples/optin-lsig/lsig.algo.ts:8", "pc": [ - 22, - 23 + 19, + 20 ] }, { "teal": 42, - "source": 8, + "source": "examples/optin-lsig/lsig.algo.ts:8", "pc": [ - 24 + 21, + 22 ] }, { "teal": 43, - "source": 8, + "source": "examples/optin-lsig/lsig.algo.ts:8", "pc": [ - 25 + 23 ] }, { "teal": 46, - "source": 8, + "source": "examples/optin-lsig/lsig.algo.ts:8", "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetAmount\",\"expected\":\"0\"}", "pc": [ - 26 + 24 ] }, { "teal": 49, - "source": 9, + "source": "examples/optin-lsig/lsig.algo.ts:9", "pc": [ - 27, - 28 + 25, + 26 ] }, { "teal": 50, - "source": 9, + "source": "examples/optin-lsig/lsig.algo.ts:9", "pc": [ - 29, - 30 + 27, + 28 ] }, { "teal": 51, - "source": 9, + "source": "examples/optin-lsig/lsig.algo.ts:9", "pc": [ - 31 + 29 ] }, { "teal": 54, - "source": 9, + "source": "examples/optin-lsig/lsig.algo.ts:9", "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetReceiver\",\"expected\":\"this.txn.sender\"}", "pc": [ - 32 + 30 ] }, { "teal": 57, - "source": 10, + "source": "examples/optin-lsig/lsig.algo.ts:10", "pc": [ - 33, - 34 + 31, + 32 ] }, { "teal": 58, - "source": 10, + "source": "examples/optin-lsig/lsig.algo.ts:10", "pc": [ - 35 + 33, + 34 ] }, { "teal": 59, - "source": 10, + "source": "examples/optin-lsig/lsig.algo.ts:10", "pc": [ - 36 + 35 ] }, { "teal": 62, - "source": 10, + "source": "examples/optin-lsig/lsig.algo.ts:10", "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"fee\",\"expected\":\"0\"}", "pc": [ - 37 + 36 ] }, { "teal": 65, - "source": 11, + "source": "examples/optin-lsig/lsig.algo.ts:11", "pc": [ - 38, - 39 + 37, + 38 ] }, { "teal": 66, - "source": 11, + "source": "examples/optin-lsig/lsig.algo.ts:11", "pc": [ - 40, - 41 + 39, + 40 ] }, { "teal": 67, - "source": 11, + "source": "examples/optin-lsig/lsig.algo.ts:11", "pc": [ - 42 + 41 ] }, { "teal": 70, - "source": 11, + "source": "examples/optin-lsig/lsig.algo.ts:11", "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"rekeyTo\",\"expected\":\"globals.zeroAddress\"}", "pc": [ - 43 + 42 ] }, { "teal": 73, - "source": 12, + "source": "examples/optin-lsig/lsig.algo.ts:12", "pc": [ - 44, - 45 + 43, + 44 ] }, { "teal": 74, - "source": 12, + "source": "examples/optin-lsig/lsig.algo.ts:12", "pc": [ - 46, - 47 + 45, + 46 ] }, { "teal": 75, - "source": 12, + "source": "examples/optin-lsig/lsig.algo.ts:12", "pc": [ - 48 + 47 ] }, { "teal": 78, - "source": 12, + "source": "examples/optin-lsig/lsig.algo.ts:12", "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"assetCloseTo\",\"expected\":\"globals.zeroAddress\"}", "pc": [ - 49 + 48 ] }, { "teal": 79, - "source": 6, + "source": "examples/optin-lsig/lsig.algo.ts:6", "pc": [ - 50 + 49 ] } ] \ No newline at end of file diff --git a/examples/reti/artifacts/StakingPool.approval.teal b/examples/reti/artifacts/StakingPool.approval.teal index 1d9ea612f..870b2a878 100644 --- a/examples/reti/artifacts/StakingPool.approval.teal +++ b/examples/reti/artifacts/StakingPool.approval.teal @@ -1,16 +1,15 @@ #pragma version 10 +intcblock TMPL_nfdRegistryAppId 0 1 6 64 32 16 128 1_000_000 2_100_000 200 300 1000 +bytecblock TMPL_feeSinkAddr 0x63726561746f72417070 0x76616c696461746f724964 0x7374616b65416363756d756c61746f72 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x7374616b657273 0x726f756e6473506572446179 0x706f6f6c4964 0x726577617264416363756d756c61746f72 0x7374616b6564 0x62696e526f756e645374617274 0x0000000000000000 0x 0x0a8101 0x6e756d5374616b657273 0x6c6173745061796f7574 0x00000000000000000000000000000000 0x00000000000000000000000000000064 0x6d696e456e7472795374616b65 0x65706f63684e756d626572 0x75aff61d 0x65776d61 0x151f7c75 0xa2dc51b5 0x572767d1 0x4df8d86e 0x0c2245e1 0x00 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] // The following lines of TEAL are used to initialize template variables in scratch slots -pushbytes TMPL_feeSinkAddr -store 201 -pushbytes TMPL_nfdRegistryAppId -btoi -store 200 +bytec 0 // TMPL_feeSinkAddr +intc 0 // TMPL_nfdRegistryAppId // The following ten lines of TEAL handle initial program flow // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed @@ -46,7 +45,7 @@ updateApplication: // 'Temporary: contract is upgradeable but only during testing and only from a development account' // ) txn Sender - addr LZ4V2IRVLCXFJK4REJV4TAGEKEYTA2GMR6TC2344OB3L3AF3MWXZ6ZAFIQ + pushbytes 0x5e795d223558ae54ab91226bc980c451313068cc8fa62d6f9c7076bd80bb65af // addr "LZ4V2IRVLCXFJK4REJV4TAGEKEYTA2GMR6TC2344OB3L3AF3MWXZ6ZAFIQ" == // Temporary: contract is upgradeable but only during testing and only from a development account @@ -129,7 +128,7 @@ createApplication: // examples/reti/stakingPool.algo.ts:116 // assert(minEntryStake >= MIN_ALGO_STAKE_PER_POOL, 'staking pool must have minimum entry of 1 algo') frame_dig -4 // minEntryStake: uint64 - int 1000000 + pushint 1000000 >= // staking pool must have minimum entry of 1 algo @@ -237,9 +236,9 @@ costForBoxStorage: // examples/reti/stakingPool.algo.ts:142 // return SCBOX_PERBOX + totalNumBytes * SCBOX_PERBYTE; - int 2500 + pushint 2500 frame_dig -1 // totalNumBytes: uint64 - int 400 + pushint 400 * + retsub @@ -252,7 +251,7 @@ costForBoxStorage: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 0 (mbrPayment) for initStorage must be a pay transaction @@ -294,9 +293,9 @@ initStorage: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" + byte 0x75aff61d // method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:157 @@ -347,7 +346,7 @@ initStorage: *skip_and0: bz *ternary0_false - int 100000 + pushint 100000 b *ternary0_end *ternary0_false: @@ -361,10 +360,10 @@ initStorage: // ALGORAND_ACCOUNT_MIN_BALANCE + // extraMBR + // this.costForBoxStorage(7 /* 'stakers' name */ + len() * MAX_STAKERS_PER_POOL) - int 100000 + pushint 100000 frame_dig 2 // extraMBR: uint64 + - int 12807 + pushint 12807 callsub costForBoxStorage + frame_bury 3 // PoolInitMbr: uint64 @@ -392,7 +391,7 @@ initStorage: // examples/reti/stakingPool.algo.ts:169 // this.stakers.create() byte 0x7374616b657273 // "stakers" - int 12800 + pushint 12800 box_create pop @@ -419,7 +418,7 @@ initStorage: // assetAmount: 0, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:174 @@ -470,7 +469,7 @@ initStorage: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 1 (stakedAmountPayment) for addStake must be a pay transaction @@ -577,7 +576,7 @@ addStake: // examples/reti/stakingPool.algo.ts:215 // entryRound = globals.round + ALGORAND_STAKING_BLOCK_DELAY global Round - int 320 + pushint 320 + frame_bury 0 // entryRound: uint64 @@ -664,15 +663,15 @@ addStake: // examples/reti/stakingPool.algo.ts:227 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -715,7 +714,7 @@ addStake: // examples/reti/stakingPool.algo.ts:233 // cmpStaker.entryRound = entryRound frame_dig 4 // cmpStaker: (address,uint64,uint64,uint64,uint64) - int 56 // headOffset + pushint 56 // headOffset frame_dig 0 // entryRound: uint64 itob replace3 @@ -954,15 +953,15 @@ removeStake: // examples/reti/stakingPool.algo.ts:291 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -1075,9 +1074,9 @@ removeStake: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" + byte 0x75aff61d // method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:310 @@ -1113,7 +1112,7 @@ removeStake: // assetAmount: cmpStaker.rewardTokenBalance, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:318 @@ -1206,7 +1205,7 @@ removeStake: // note: 'unstaked', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:343 @@ -1221,7 +1220,7 @@ removeStake: // examples/reti/stakingPool.algo.ts:345 // note: 'unstaked' - byte 0x756e7374616b6564 // "unstaked" + pushbytes 0x756e7374616b6564 // "unstaked" itxn_field Note // Fee field not set, defaulting to 0 @@ -1368,9 +1367,9 @@ removeStake: // ], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" + byte 0xa2dc51b5 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:367 @@ -1489,15 +1488,15 @@ claimTokens: // examples/reti/stakingPool.algo.ts:395 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -1560,9 +1559,9 @@ claimTokens: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" + byte 0x75aff61d // method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:406 @@ -1598,7 +1597,7 @@ claimTokens: // assetAmount: cmpStaker.rewardTokenBalance, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:413 @@ -1680,9 +1679,9 @@ claimTokens: // ], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" + byte 0xa2dc51b5 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:434 @@ -1811,15 +1810,15 @@ getStakerInfo: // examples/reti/stakingPool.algo.ts:460 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -1951,7 +1950,7 @@ payTokenReward: // assetAmount: amountToSend, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:490 @@ -2009,7 +2008,7 @@ updateAlgodVer: // examples/reti/stakingPool.algo.ts:507 // this.algodVer.value = algodVer - byte 0x616c676f64566572 // "algodVer" + pushbytes 0x616c676f64566572 // "algodVer" frame_dig -1 // algodVer: string app_global_put retsub @@ -2042,9 +2041,9 @@ epochBalanceUpdate: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" + byte 0x75aff61d // method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:521 @@ -2188,9 +2187,9 @@ epochBalanceUpdate: // methodArgs: [this.validatorId.value, 1], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getPoolAppId(uint64,uint64)uint64" + byte 0x572767d1 // method "getPoolAppId(uint64,uint64)uint64" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:562 @@ -2205,7 +2204,7 @@ epochBalanceUpdate: app_global_get itob itxn_field ApplicationArgs - byte 0x0000000000000001 + pushbytes 0x0000000000000001 itxn_field ApplicationArgs // Fee field not set, defaulting to 0 @@ -2246,9 +2245,9 @@ epochBalanceUpdate: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" + byte 0x4df8d86e // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:572 @@ -2285,9 +2284,9 @@ epochBalanceUpdate: // methodArgs: [{ id: this.validatorId.value, poolId: this.poolId.value, poolAppId: this.app.id }], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" + byte 0x0c2245e1 // method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:578 @@ -2331,9 +2330,9 @@ epochBalanceUpdate: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getValidatorState(uint64)(uint16,uint64,uint64,uint64)" + pushbytes 0x1f2f0109 // method "getValidatorState(uint64)(uint16,uint64,uint64,uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:587 @@ -2469,10 +2468,10 @@ epochBalanceUpdate: app_global_get int 1 - - int 8 + pushint 8 * // acc * typeLength + - int 8 + pushint 8 extract3 btoi frame_bury 19 // ourPoolPctOfWhole: uint64 @@ -2519,7 +2518,7 @@ epochBalanceUpdate: // *if28_consequent // examples/reti/stakingPool.algo.ts:641 // log('!token&&!noalgo to pay') - byte 0x21746f6b656e2626216e6f616c676f20746f20706179 // "!token&&!noalgo to pay" + pushbytes 0x21746f6b656e2626216e6f616c676f20746f20706179 // "!token&&!noalgo to pay" log // examples/reti/stakingPool.algo.ts:642 @@ -2569,7 +2568,7 @@ epochBalanceUpdate: // note: 'pool saturated, excess to fee sink', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:653 @@ -2584,7 +2583,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:655 // note: 'pool saturated, excess to fee sink' - byte 0x706f6f6c207361747572617465642c2065786365737320746f206665652073696e6b // "pool saturated, excess to fee sink" + pushbytes 0x706f6f6c207361747572617465642c2065786365737320746f206665652073696e6b // "pool saturated, excess to fee sink" itxn_field Note // Fee field not set, defaulting to 0 @@ -2704,7 +2703,7 @@ epochBalanceUpdate: // note: 'validator reward to manager for funding epoch updates', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:685 @@ -2720,7 +2719,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:687 // note: 'validator reward to manager for funding epoch updates' - byte 0x76616c696461746f722072657761726420746f206d616e6167657220666f722066756e64696e672065706f63682075706461746573 // "validator reward to manager for funding epoch updates" + pushbytes 0x76616c696461746f722072657761726420746f206d616e6167657220666f722066756e64696e672065706f63682075706461746573 // "validator reward to manager for funding epoch updates" itxn_field Note // Fee field not set, defaulting to 0 @@ -2749,7 +2748,7 @@ epochBalanceUpdate: // note: 'validator reward', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:692 @@ -2767,7 +2766,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:694 // note: 'validator reward' - byte 0x76616c696461746f7220726577617264 // "validator reward" + pushbytes 0x76616c696461746f7220726577617264 // "validator reward" itxn_field Note // Fee field not set, defaulting to 0 @@ -2826,7 +2825,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:733 // globals.opcodeBudget < 400 global OpcodeBudget - int 400 + pushint 400 < bz *if34_end @@ -2834,15 +2833,15 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:734 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -2978,7 +2977,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:763 // cmpStaker.rewardTokenBalance += stakerTokenReward frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) - int 48 // headOffset + pushint 48 // headOffset frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 48 8 btoi @@ -3061,7 +3060,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:779 // cmpStaker.totalRewarded += stakerReward frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) - int 40 // headOffset + pushint 40 // headOffset frame_dig 25 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 40 8 btoi @@ -3147,15 +3146,15 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:799 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -3240,7 +3239,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:814 // cmpStaker.rewardTokenBalance += stakerTokenReward frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) - int 48 // headOffset + pushint 48 // headOffset frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 48 8 btoi @@ -3302,7 +3301,7 @@ epochBalanceUpdate: // examples/reti/stakingPool.algo.ts:822 // cmpStaker.totalRewarded += stakerReward frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) - int 40 // headOffset + pushint 40 // headOffset frame_dig 32 // cmpStaker: (address,uint64,uint64,uint64,uint64) extract 40 8 btoi @@ -3420,9 +3419,9 @@ epochBalanceUpdate: // ], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "stakeUpdatedViaRewards((uint64,uint64,uint64),uint64,uint64,uint64,uint64)void" + pushbytes 0x418fcefc // method "stakeUpdatedViaRewards((uint64,uint64,uint64),uint64,uint64,uint64,uint64)void" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:848 @@ -3503,7 +3502,7 @@ epochBalanceUpdate: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 6 (feePayment) for goOnline must be a pay transaction @@ -3576,7 +3575,7 @@ goOnline: // fee: this.getGoOnlineFee(), // }) itxn_begin - int keyreg + pushint 2 // keyreg itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:885 @@ -3655,7 +3654,7 @@ goOffline: // examples/reti/stakingPool.algo.ts:907 // sendOfflineKeyRegistration({}) itxn_begin - int keyreg + pushint 2 // keyreg itxn_field TypeEnum // Fee field not set, defaulting to 0 @@ -3699,17 +3698,17 @@ linkToNFD: // applications: [AppID.fromUint64(nfdAppId)], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum // examples/reti/stakingPool.algo.ts:917 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - load 200 // TMPL_nfdRegistryAppId + intc 0 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/stakingPool.algo.ts:918 // applicationArgs: ['verify_nfd_addr', nfdName, itob(nfdAppId), rawBytes(this.app.address)] - byte 0x7665726966795f6e66645f61646472 // "verify_nfd_addr" + pushbytes 0x7665726966795f6e66645f61646472 // "verify_nfd_addr" itxn_field ApplicationArgs frame_dig -2 // nfdName: string itxn_field ApplicationArgs @@ -3741,7 +3740,7 @@ linkToNFD: txna ApplicationArgs 1 dup len - int 24 + pushint 24 == // argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64) @@ -3805,9 +3804,9 @@ proxiedSetTokenPayoutRatio: // methodArgs: [poolKey.id, poolKey.poolId], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getPoolAppId(uint64,uint64)uint64" + byte 0x572767d1 // method "getPoolAppId(uint64,uint64)uint64" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:935 @@ -3869,9 +3868,9 @@ proxiedSetTokenPayoutRatio: // methodArgs: [this.validatorId.value], // }); itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" + byte 0x4df8d86e // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:942 @@ -3916,9 +3915,9 @@ isOwnerOrManagerCaller: // methodArgs: [this.validatorId.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "getValidatorOwnerAndManager(uint64)(address,address)" + pushbytes 0x2fa22c4b // method "getValidatorOwnerAndManager(uint64)(address,address)" itxn_field ApplicationArgs // examples/reti/stakingPool.algo.ts:949 @@ -3972,7 +3971,7 @@ getFeeSink: // examples/reti/stakingPool.algo.ts:956 // return this.feeSinkAddr; - load 201 // TMPL_feeSinkAddr + bytec 0 // TMPL_feeSinkAddr retsub // algoSaturationLevel(): uint64 @@ -3993,7 +3992,7 @@ algoSaturationLevel: // examples/reti/stakingPool.algo.ts:968 // return wideRatio([online, MAX_VALIDATOR_SOFT_PCT_OF_ONLINE_1DECIMAL], [1000]); frame_dig 0 // online: uint64 - int 100 + pushint 100 mulw int 0 int 1000 @@ -4032,7 +4031,7 @@ getGoOnlineFee: // *if47_consequent // examples/reti/stakingPool.algo.ts:978 // return 2_000_000; - int 2_000_000 + pushint 2_000_000 b *getGoOnlineFee*return *if47_end: @@ -4051,7 +4050,7 @@ getCurrentOnlineStake: // examples/reti/stakingPool.algo.ts:985 // return 2_000_000_000_000_000; - int 2_000_000_000_000_000 + pushint 2_000_000_000_000_000 retsub // checkIfBinClosed(): void @@ -4085,12 +4084,12 @@ checkIfBinClosed: // currentBinSize as uint64 overflowed 64 bits assert - byte 0xFFFFFFFFFFFFFFFF + pushbytes 0xFFFFFFFFFFFFFFFF b& dup len dup - int 8 + pushint 8 - swap substring3 @@ -4112,15 +4111,15 @@ checkIfBinClosed: // examples/reti/stakingPool.algo.ts:995 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -4128,7 +4127,7 @@ checkIfBinClosed: // examples/reti/stakingPool.algo.ts:997 // approxRoundsPerYear: uint128 = currentBinSize * (365 as uint128) frame_dig 0 // currentBinSize: unsafe uint128 - byte 0x0000000000000000000000000000016d + pushbytes 0x0000000000000000000000000000016d b* dup bitlen @@ -4188,7 +4187,7 @@ checkIfBinClosed: byte 0x726577617264416363756d756c61746f72 // "rewardAccumulator" app_global_get itob - byte 0x00000000000000000000000000002710 + pushbytes 0x00000000000000000000000000002710 b* frame_dig 2 // avgStake: uint128 b/ @@ -4216,21 +4215,21 @@ checkIfBinClosed: // examples/reti/stakingPool.algo.ts:1007 // alpha: uint128 = 10 as uint128 - byte 0x0000000000000000000000000000000a + pushbytes 0x0000000000000000000000000000000a frame_bury 4 // alpha: unsafe uint128 // *if51_condition // examples/reti/stakingPool.algo.ts:1009 // avgStake > 300000000000 frame_dig 2 // avgStake: uint128 - byte 0x000000000000000000000045d964b800 + pushbytes 0x000000000000000000000045d964b800 b> bz *if51_end // *if51_consequent // examples/reti/stakingPool.algo.ts:1010 // alpha = 90 as uint128 - byte 0x0000000000000000000000000000005a + pushbytes 0x0000000000000000000000000000005a frame_bury 4 // alpha: unsafe uint128 *if51_end: @@ -4331,12 +4330,12 @@ setRoundsPerDay: // examples/reti/stakingPool.algo.ts:1026 // this.roundsPerDay.value = AVG_ROUNDS_PER_DAY byte 0x726f756e6473506572446179 // "roundsPerDay" - int 30857 + pushint 30857 app_global_put retsub *create_NoOp: - method "createApplication(uint64,uint64,uint64,uint64)void" + pushbytes 0x59e90aa6 // method "createApplication(uint64,uint64,uint64,uint64)void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -4344,19 +4343,19 @@ setRoundsPerDay: err *call_NoOp: - method "gas()void" - method "initStorage(pay)void" - method "addStake(pay,address)uint64" - method "removeStake(address,uint64)void" - method "claimTokens()void" - method "getStakerInfo(address)(address,uint64,uint64,uint64,uint64)" - method "payTokenReward(address,uint64,uint64)void" - method "updateAlgodVer(string)void" - method "epochBalanceUpdate()void" - method "goOnline(pay,byte[],byte[],byte[],uint64,uint64,uint64)void" - method "goOffline()void" - method "linkToNFD(uint64,string)void" - method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" + pushbytes 0x3172ca9d // method "gas()void" + pushbytes 0x47cfcc04 // method "initStorage(pay)void" + pushbytes 0xf9c70cbd // method "addStake(pay,address)uint64" + pushbytes 0x421b5abe // method "removeStake(address,uint64)void" + pushbytes 0xf5892d56 // method "claimTokens()void" + pushbytes 0x5cfbb057 // method "getStakerInfo(address)(address,uint64,uint64,uint64,uint64)" + pushbytes 0x63f3f28b // method "payTokenReward(address,uint64,uint64)void" + pushbytes 0x86a3725c // method "updateAlgodVer(string)void" + pushbytes 0xefc2608d // method "epochBalanceUpdate()void" + pushbytes 0x400e14fb // method "goOnline(pay,byte[],byte[],byte[],uint64,uint64,uint64)void" + pushbytes 0x51ef3b21 // method "goOffline()void" + pushbytes 0xa24e2717 // method "linkToNFD(uint64,string)void" + byte 0x0c2245e1 // method "proxiedSetTokenPayoutRatio((uint64,uint64,uint64))(uint64[24],uint64)" txna ApplicationArgs 0 match *abi_route_gas *abi_route_initStorage *abi_route_addStake *abi_route_removeStake *abi_route_claimTokens *abi_route_getStakerInfo *abi_route_payTokenReward *abi_route_updateAlgodVer *abi_route_epochBalanceUpdate *abi_route_goOnline *abi_route_goOffline *abi_route_linkToNFD *abi_route_proxiedSetTokenPayoutRatio @@ -4364,7 +4363,7 @@ setRoundsPerDay: err *call_UpdateApplication: - method "updateApplication()void" + pushbytes 0x46f76533 // method "updateApplication()void" txna ApplicationArgs 0 match *abi_route_updateApplication diff --git a/examples/reti/artifacts/StakingPool.arc32.json b/examples/reti/artifacts/StakingPool.arc32.json index daee8799b..b3d928179 100644 --- a/examples/reti/artifacts/StakingPool.arc32.json +++ b/examples/reti/artifacts/StakingPool.arc32.json @@ -161,7 +161,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9mZWVTaW5rQWRkcgpzdG9yZSAyMDEKcHVzaGJ5dGVzIFRNUExfbmZkUmVnaXN0cnlBcHBJZApidG9pCnN0b3JlIDIwMAoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIHVwZGF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpOiB2b2lkCnVwZGF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IEFkZHJlc3MuZnJvbUFkZHJlc3MoJ0xaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEnKSwKCS8vICAgICAgICdUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50JwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWFkZHIgTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUQoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludCAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJaW50IDEwMDAwMDAKCT49CgoJLy8gc3Rha2luZyBwb29sIG11c3QgaGF2ZSBtaW5pbXVtIGVudHJ5IG9mIDEgYWxnbwoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjExNwoJLy8gdGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUgPSBjcmVhdGluZ0NvbnRyYWN0SWQKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE4CgkvLyB0aGlzLnZhbGlkYXRvcklkLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTkKCS8vIHRoaXMucG9vbElkLnZhbHVlID0gcG9vbElkCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMAoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlID0gMAoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMQoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgPSAwCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTIyCgkvLyB0aGlzLm1pbkVudHJ5U3Rha2UudmFsdWUgPSBtaW5FbnRyeVN0YWtlCglieXRlIDB4NmQ2OTZlNDU2ZTc0NzI3OTUzNzQ2MTZiNjUgLy8gIm1pbkVudHJ5U3Rha2UiCglmcmFtZV9kaWcgLTQgLy8gbWluRW50cnlTdGFrZTogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjMKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGdsb2JhbHMucm91bmQKCWJ5dGUgMHg2YzYxNzM3NDUwNjE3OTZmNzU3NCAvLyAibGFzdFBheW91dCIKCWdsb2JhbCBSb3VuZAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI0CgkvLyB0aGlzLmVwb2NoTnVtYmVyLnZhbHVlID0gMAoJYnl0ZSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgLy8gImVwb2NoTnVtYmVyIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNgoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI3CgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGUgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAvLyAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJJQoJLQoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI4CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI5CgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gMAoJYnl0ZSAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInJld2FyZEFjY3VtdWxhdG9yIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEzMAoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGUgMHg2NTc3NmQ2MSAvLyAiZXdtYSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2FzKCl2b2lkCiphYmlfcm91dGVfZ2FzOgoJLy8gZXhlY3V0ZSBnYXMoKXZvaWQKCWNhbGxzdWIgZ2FzCglpbnQgMQoJcmV0dXJuCgovLyBnYXMoKTogdm9pZAovLwovLyBnYXMgaXMgYSBkdW1teSBuby1vcCBjYWxsIHRoYXQgY2FuIGJlIHVzZWQgdG8gcG9vbC11cCByZXNvdXJjZSByZWZlcmVuY2VzIGFuZCBvcGNvZGUgY29zdApnYXM6Cglwcm90byAwIDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UodG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE0MgoJLy8gcmV0dXJuIFNDQk9YX1BFUkJPWCArIHRvdGFsTnVtQnl0ZXMgKiBTQ0JPWF9QRVJCWVRFOwoJaW50IDI1MDAKCWZyYW1lX2RpZyAtMSAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCWludCA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBpbml0U3RvcmFnZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGluaXRTdG9yYWdlKHBheSl2b2lkCgljYWxsc3ViIGluaXRTdG9yYWdlCglpbnQgMQoJcmV0dXJuCgovLyBpbml0U3RvcmFnZShtYnJQYXltZW50OiBQYXlUeG4pOiB2b2lkCi8vCi8vIENhbGxlZCBhZnRlciB3ZSdyZSBjcmVhdGVkIGFuZCB0aGVuIGZ1bmRlZCwgc28gd2UgY2FuIGNyZWF0ZSBvdXIgbGFyZ2Ugc3Rha2VycyBsZWRnZXIgc3RvcmFnZQovLyBDYWxsZXIgaGFzIHRvIGdldCBNQlIgYW1vdW50cyBmcm9tIFZhbGlkYXRvclJlZ2lzdHJ5IHRvIGtub3cgaG93IG11Y2ggdG8gZnVuZCB1cyB0byBjb3ZlciB0aGUgYm94IHN0b3JhZ2UgY29zdAovLyBJZiB0aGlzIGlzIHBvb2wgMSBBTkQgdGhlIHZhbGlkYXRvciBoYXMgc3BlY2lmaWVkIGEgcmV3YXJkIHRva2VuLCBvcHQtaW4gdG8gdGhhdCB0b2tlbgovLyBzbyB0aGF0IHRoZSB2YWxpZGF0b3IgY2FuIHNlZWQgdGhlIHBvb2wgd2l0aCBmdXR1cmUgcmV3YXJkcyBvZiB0aGF0IHRva2VuLgovLyBAcGFyYW0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgbmV3IHN0YWtpbmcgcG9vbHMnIHN0b3JhZ2UKaW5pdFN0b3JhZ2U6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1MwoJLy8gYXNzZXJ0KCF0aGlzLnN0YWtlcnMuZXhpc3RzLCAnc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQnKQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCgoJLy8gc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTYKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1OAoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjAKCS8vIGlzVG9rZW5FbGlnaWJsZSA9IHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaW50IDAKCSE9CglmcmFtZV9idXJ5IDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MQoJLy8gZXh0cmFNQlIgPSBpc1Rva2VuRWxpZ2libGUgJiYgdGhpcy5wb29sSWQudmFsdWUgPT09IDEgPyBBU1NFVF9IT0xESU5HX0ZFRSA6IDAKCWZyYW1lX2RpZyAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQwCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgkmJgoKKnNraXBfYW5kMDoKCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJaW50IDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJaW50IDEwMDAwMAoJZnJhbWVfZGlnIDIgLy8gZXh0cmFNQlI6IHVpbnQ2NAoJKwoJaW50IDEyODA3CgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCgkrCglmcmFtZV9idXJ5IDMgLy8gUG9vbEluaXRNYnI6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjgKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IFBvb2xJbml0TWJyIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDMgLy8gUG9vbEluaXRNYnI6IHVpbnQ2NAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoiUG9vbEluaXRNYnIifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OQoJLy8gdGhpcy5zdGFrZXJzLmNyZWF0ZSgpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCglpbnQgMTI4MDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTcxCgkvLyBpc1Rva2VuRWxpZ2libGUgJiYgdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWZyYW1lX2RpZyAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQxCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NAoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc1CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NgoJLy8gYXNzZXRBbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIGFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDEgKHN0YWtlZEFtb3VudFBheW1lbnQpIGZvciBhZGRTdGFrZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NAoJY2FsbHN1YiBhZGRTdGFrZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgc3Rha2VyOiBBZGRyZXNzKTogdWludDY0Ci8vCi8vIEFkZHMgc3Rha2UgdG8gdGhlIGdpdmVuIGFjY291bnQuCi8vIENhbiBPTkxZIGJlIGNhbGxlZCBieSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0IHRoYXQgY3JlYXRlZCB1cwovLyBNdXN0IHJlY2VpdmUgcGF5bWVudCBmcm9tIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIGFtb3VudCBiZWluZyBzdGFrZWQuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IHByaW9yIHBheW1lbnQgY29taW5nIGZyb20gdmFsaWRhdG9yIGNvbnRyYWN0IHRvIHVzIG9uIGJlaGFsZiBvZiBzdGFrZXIuCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFjY291bnQgYWRkaW5nIG5ldyBzdGFrZQovLyBAdGhyb3dzIHtFcnJvcn0gLSBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHN0YWtpbmcgcG9vbCBpcyBmdWxsLgovLyBAcmV0dXJucyB7dWludDY0fSBuZXcgJ2VudHJ5IHJvdW5kJyByb3VuZCBudW1iZXIgb2Ygc3Rha2UgYWRkCmFkZFN0YWtlOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTIKCS8vIGFzc2VydCh0aGlzLnN0YWtlcnMuZXhpc3RzLCAnc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QnKQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICdzdGFrZSBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHN0YWtlIGNhbiBvbmx5IGJlIGFkZGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTk5CgkvLyBhc3NlcnQoc3Rha2VyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwMgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMDYKCS8vIHZlcmlmeVBheVR4bihzdGFrZWRBbW91bnRQYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoiQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjE1CgkvLyBlbnRyeVJvdW5kID0gZ2xvYmFscy5yb3VuZCArIEFMR09SQU5EX1NUQUtJTkdfQkxPQ0tfREVMQVkKCWdsb2JhbCBSb3VuZAoJaW50IDMyMAoJKwoJZnJhbWVfYnVyeSAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTYKCS8vIGZpcnN0RW1wdHkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50CglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjAKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWZyYW1lX2RpZyAyIC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyOQoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjMwCgkvLyBjbXBTdGFrZXIuYWNjb3VudCA9PT0gc3Rha2VyCglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjMyCgkvLyBjbXBTdGFrZXIuYmFsYW5jZSArPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjMzCgkvLyBjbXBTdGFrZXIuZW50cnlSb3VuZCA9IGVudHJ5Um91bmQKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM4CgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJYiAqYWRkU3Rha2UqcmV0dXJuCgoqaWYzX2VuZDoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQwCgkvLyBmaXJzdEVtcHR5ID09PSAwICYmIGNtcFN0YWtlci5hY2NvdW50ID09PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJZHVwCglieiAqc2tpcF9hbmQyCglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDI6CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0MQoJLy8gZmlyc3RFbXB0eSA9IGkgKyAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoqaWY0X2VuZDoKCipmb3JfMF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0NQoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBTdGFraW5nIHBvb2wgZnVsbAoJZXJyCgoqaWY1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTIKCS8vIGFzc2VydChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCA+PSB0aGlzLm1pbkVudHJ5U3Rha2UudmFsdWUsICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnKQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NmQ2OTZlNDU2ZTc0NzI3OTUzNzQ2MTZiNjUgLy8gIm1pbkVudHJ5U3Rha2UiCglhcHBfZ2xvYmFsX2dldAoJPj0KCgkvLyBtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTQKCS8vIGFzc2VydCh0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAxCgktCglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCAzMgoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTUKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0gPSB7CgkvLyAgICAgICBhY2NvdW50OiBzdGFrZXIsCgkvLyAgICAgICBiYWxhbmNlOiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICAgIHRvdGFsUmV3YXJkZWQ6IDAsCgkvLyAgICAgICByZXdhcmRUb2tlbkJhbGFuY2U6IDAsCgkvLyAgICAgICBlbnRyeVJvdW5kOiBlbnRyeVJvdW5kLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50IDEKCS0KCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50IDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5MwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk0CgkvLyBjbXBTdGFrZXIuYWNjb3VudCA9PT0gc3Rha2VyCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjhfZW5kCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NQoJLy8gYW1vdW50VG9VbnN0YWtlID09PSAwCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmOV9lbmQKCgkvLyAqaWY5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTcKCS8vIGFtb3VudFRvVW5zdGFrZSA9IGNtcFN0YWtlci5iYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfYnVyeSAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoKKmlmOV9lbmQ6CgkvLyAqaWYxMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTkKCS8vIGNtcFN0YWtlci5iYWxhbmNlIDwgYW1vdW50VG9VbnN0YWtlCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0Cgk8CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBJbnN1ZmZpY2llbnQgYmFsYW5jZQoJZXJyCgoqaWYxMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzAyCgkvLyBjbXBTdGFrZXIuYmFsYW5jZSAtPSBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwMwoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50VG9VbnN0YWtlCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgktCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDUKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDYKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPiAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDggOAoJYnRvaQoJaW50IDAKCT4KCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwOAoJLy8gdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCWJ6ICppZjEyX2Vsc2UKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA5CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzEwCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTEKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDMgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgICAgICBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSwKCS8vICAgICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE4CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTkKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMAoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjIKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIzCgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTJfZW5kCgoqaWYxMl9lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOAoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTJfZW5kOgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMzNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgIGNtcFN0YWtlci5iYWxhbmNlID09PSAwIHx8IGNtcFN0YWtlci5iYWxhbmNlID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwKCS8vICAgICAgICAgICAnY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQnCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnQgMAoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWJ5dGUgMHg2ZDY5NmU0NTZlNzQ3Mjc5NTM3NDYxNmI2NSAvLyAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoJfHwKCipza2lwX29yMDoKCS8vIGNhbm5vdCByZWR1Y2UgYmFsYW5jZSBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgc3Rha2UgdW5sZXNzIGFsbCBpcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgYW1vdW50OiBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgcmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICBub3RlOiAndW5zdGFrZWQnLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDMKCS8vIGFtb3VudDogYW1vdW50VG9VbnN0YWtlCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0NAoJLy8gcmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDUKCS8vIG5vdGU6ICd1bnN0YWtlZCcKCWJ5dGUgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCS0KCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTkKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgNSAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjAKCS8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4ID0gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAoYW1vdW50VG9VbnN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2MQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjgKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvVW5zdGFrZSwKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIHN0YWtlclJlbW92ZWQsCgkvLyAgICAgICAgICAgXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludCAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTcKCS8vIGNtcFN0YWtlciA9IGNsb25lKHRoaXMuc3Rha2Vycy52YWx1ZVtpXSkKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCA2NAoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTgKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCT09CglieiAqaWYxNV9lbmQKCgkvLyAqaWYxNV9jb25zZXF1ZW50CgkvLyAqaWYxNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjE2X2VuZAoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDAKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMTZfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMgoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjE3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwNAoJLy8gdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA1CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA2CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDcKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDQgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDEyCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCksCgkvLyAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSwKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMwoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE0CgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNQoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTcKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE4CgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTdfZW5kCgoqaWYxN19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyMwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MjQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyOAoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQzMwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAic3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQzNAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ0MwoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNV9lbmQ6CgoqZm9yXzJfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzkzCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoJcmV0c3ViCgovLyBnZXRTdGFrZXJJbmZvKGFkZHJlc3MpKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFN0YWtlckluZm86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZXJJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFN0YWtlckluZm8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRTdGFrZXJJbmZvKHN0YWtlcjogQWRkcmVzcyk6IFN0YWtlZEluZm8KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gc3Rha2VyLgovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEByZXR1cm5zIHtTdGFrZWRJbmZvfSAtIFRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdGFrZXIuCi8vIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBzdGFrZXIncyBhY2NvdW50IGlzIG5vdCBmb3VuZC4KZ2V0U3Rha2VySW5mbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OQoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAyMDAKCTwKCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE4X2VuZDoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MgoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCAzMgoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCT09CglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDYzCgkvLyByZXR1cm4gdGhpcy5zdGFrZXJzLnZhbHVlW2ldOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqZ2V0U3Rha2VySW5mbypyZXR1cm4KCippZjE5X2VuZDoKCipmb3JfM19jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NTgKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzMKCipmb3JfM19lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCgoqZ2V0U3Rha2VySW5mbypyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZDoKCS8vIGFtb3VudFRvU2VuZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gcmV3YXJkVG9rZW46IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAyIChzdGFrZXIpIGZvciBwYXlUb2tlblJld2FyZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBwYXlUb2tlblJld2FyZAoJaW50IDEKCXJldHVybgoKLy8gcGF5VG9rZW5SZXdhcmQoc3Rha2VyOiBBZGRyZXNzLCByZXdhcmRUb2tlbjogdWludDY0LCBhbW91bnRUb1NlbmQ6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gW0ludGVybmFsIHByb3RvY29sIG1ldGhvZF0gUmVtb3ZlIGEgc3BlY2lmaWVkIGFtb3VudCBvZiAnY29tbXVuaXR5IHRva2VuJyByZXdhcmRzIGZvciBhIHN0YWtlci4KLy8gVGhpcyBjYW4gT05MWSBiZSBjYWxsZWQgYnkgb3VyIHZhbGlkYXRvciBhbmQgb25seSBpZiB3ZSdyZSBwb29sIDEgLSB3aXRoIHRoZSB0b2tlbi4KLy8gTm90ZTogdGhpcyBjYW4gYWxzbyBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIGFzIHBhcnQgb2YgT1dORVIgd2FudGluZyB0byBzZW5kIHRoZSByZXdhcmQgdG9rZW5zCi8vIHNvbWV3aGVyZSBlbHNlIChpZSBpZiB0aGV5J3JlIHN1bnNldHRpbmcgdGhlaXIgdmFsaWRhdG9yIGFuZCBuZWVkIHRoZSByZXdhcmQgdG9rZW5zIGJhY2spLgovLyBJdCdzIHVwIHRvIHRoZSB2YWxpZGF0b3IgdG8gZW5zdXJlIHRoYXQgdGhlIGJhbGFuY2UgaW4gcmV3YXJkVG9rZW5IZWxkQmFjayBpcyBob25vcmVkLgovLyBAcGFyYW0gc3Rha2VyIC0gdGhlIHN0YWtlciBhY2NvdW50IHRvIHNlbmQgcmV3YXJkcyB0bwovLyBAcGFyYW0gcmV3YXJkVG9rZW4gLSBpZCBvZiByZXdhcmQgdG9rZW4gKHRvIGF2b2lkIHJlLWVudHJhbmN5IGluIGNhbGxpbmcgdmFsaWRhdG9yIGJhY2sgdG8gZ2V0IGlkKQovLyBAcGFyYW0gYW1vdW50VG9TZW5kIC0gYW1vdW50IHRvIHNlbmQgdGhlIHN0YWtlciAodGhlcmUgaXMgc2lnbmlmaWNhbnQgdHJ1c3QgaGVyZSghKSAtIGFsc28gd2h5IG9ubHkgdmFsaWRhdG9yIGNhbiBjYWxsIHVzCnBheVRva2VuUmV3YXJkOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4MQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKS5hZGRyZXNzLAoJLy8gICAgICAgJ3RoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0JwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdGhpcyBjYW4gb25seSBiZSBjYWxsZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODUKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ211c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMnKQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoKCS8vIG11c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODYKCS8vIGFzc2VydChyZXdhcmRUb2tlbiAhPT0gMCwgJ2NhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbScpCglmcmFtZV9kaWcgLTIgLy8gcmV3YXJkVG9rZW46IHVpbnQ2NAoJaW50IDAKCSE9CgoJLy8gY2FuIG9ubHkgY2xhaW0gdG9rZW4gcmV3YXJkcyBmcm9tIHZhbGlkYXRvciB0aGF0IGhhcyB0aGVtCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg5CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbiksCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiBzdGFrZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50VG9TZW5kLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkwCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbikKCWZyYW1lX2RpZyAtMiAvLyByZXdhcmRUb2tlbjogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTEKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MgoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU2VuZDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyOgoJLy8gYWxnb2RWZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUFsZ29kVmVyKHN0cmluZyl2b2lkCgljYWxsc3ViIHVwZGF0ZUFsZ29kVmVyCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVBbGdvZFZlcihhbGdvZFZlcjogc3RyaW5nKTogdm9pZAovLwovLyBVcGRhdGUgdGhlIChob25vciBzeXN0ZW0pIGFsZ29kIHZlcnNpb24gZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgdG8gdGhpcyBwb29sLiAgVGhlIG5vZGUgbWFuYWdlbWVudCBkYWVtb24KLy8gc2hvdWxkIGNvbXBhcmUgaXRzIGN1cnJlbnQgbm9kZXMgdmVyc2lvbiB0byB0aGUgdmVyc2lvbiBzdG9yZWQgaW4gZ2xvYmFsIHN0YXRlLCB1cGRhdGluZyB3aGVuIGRpZmZlcmVudC4KLy8gVGhlIHJldGkgbm9kZSBkYWVtb24gY29tcG9zZXMgaXRzIG93biB2ZXJzaW9uIHN0cmluZyB1c2luZyBmb3JtYXQ6Ci8vIHttYWpvcn0ue21pbm9yfS57YnVpbGR9IHticmFuY2h9IFt7Y29tbWl0IGhhc2h9XSwKLy8gaWU6IDMuMjIuMCByZWwvc3RhYmxlIFs2YjUwODk3NV0KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQovLyBAcGFyYW0ge3N0cmluZ30gYWxnb2RWZXIgLSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhbGdvcmFuZCBub2RlIGRhZW1vbiB2ZXJzaW9uIChyZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gbWV0YSB2ZXJzaW9uKQp1cGRhdGVBbGdvZFZlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDYKCS8vIGFzc2VydCh0aGlzLmlzT3duZXJPck1hbmFnZXJDYWxsZXIoKSwgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicpCgljYWxsc3ViIGlzT3duZXJPck1hbmFnZXJDYWxsZXIKCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDcKCS8vIHRoaXMuYWxnb2RWZXIudmFsdWUgPSBhbGdvZFZlcgoJYnl0ZSAweDYxNmM2NzZmNjQ1NjY1NzIgLy8gImFsZ29kVmVyIgoJZnJhbWVfZGlnIC0xIC8vIGFsZ29kVmVyOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGVwb2NoQmFsYW5jZVVwZGF0ZSgpdm9pZAoqYWJpX3JvdXRlX2Vwb2NoQmFsYW5jZVVwZGF0ZToKCS8vIGV4ZWN1dGUgZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCgljYWxsc3ViIGVwb2NoQmFsYW5jZVVwZGF0ZQoJaW50IDEKCXJldHVybgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgYmFsYW5jZSBvZiBzdGFrZXJzIGluIHRoZSBwb29sIGJhc2VkIG9uIHRoZSByZWNlaXZlZCAncmV3YXJkcycgKGN1cnJlbnQgYmFsYW5jZSB2cyBrbm93biBzdGFrZWQgYmFsYW5jZSkKLy8gc3Rha2VycyBvdXRzdGFuZGluZyBiYWxhbmNlIGlzIGFkanVzdGVkIGJhc2VkIG9uIHRoZWlyICUgb2Ygc3Rha2UgYW5kIHRpbWUgaW4gdGhlIGN1cnJlbnQgZXBvY2ggLSBzbyB0aGF0IGJhbGFuY2UKLy8gY29tcG91bmRzIG92ZXIgdGltZSBhbmQgc3Rha2VyIGNhbiByZW1vdmUgdGhhdCBhbW91bnQgYXQgd2lsbC4KLy8gVGhlIHZhbGlkYXRvciBpcyBwYWlkIHRoZWlyIHBlcmNlbnRhZ2UgZWFjaCBlcG9jaCBwYXlvdXQuCi8vCi8vIE5vdGU6IEFOWU9ORSBjYW4gY2FsbCB0aGlzLgplcG9jaEJhbGFuY2VVcGRhdGU6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzNgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjAKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGUgMHg2YzYxNzM3NDUwNjE3OTZmNzU3NCAvLyAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgLy8gImVwb2NoTnVtYmVyIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglieXRlIDB4NjU3MDZmNjM2ODRlNzU2ZDYyNjU3MiAvLyAiZXBvY2hOdW1iZXIiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTEKCS8vIGlzVG9rZW5FbGlnaWJsZSA9IHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaW50IDAKCSE9CglmcmFtZV9idXJ5IDUgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MgoJLy8gcG9vbE9uZUFwcElEID0gdGhpcy5hcHAuaWQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTMKCS8vIHBvb2xPbmVBZGRyZXNzID0gdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OAoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OQoJLy8gdGhpcy5wb29sSWQudmFsdWUgIT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCAxXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjUKCS8vIHBvb2xPbmVBZGRyZXNzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpLmFkZHJlc3MKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcwCgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoJYnogKmlmMjNfZWxzZQoKCS8vICppZjIzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzEKCS8vIHRva2VuUGF5b3V0UmF0aW8gPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnNldFRva2VuUGF5b3V0UmF0aW8+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWIgKmlmMjNfZW5kCgoqaWYyM19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3NwoJLy8gdG9rZW5QYXlvdXRSYXRpbyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUucHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3sgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfV0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKQoJZnJhbWVfZGlnIDYgLy8gcG9vbE9uZUFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzkKCS8vIG1ldGhvZEFyZ3M6IFt7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH1dCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA4IC8vIHRva2VuUGF5b3V0UmF0aW86IFBvb2xUb2tlblBheW91dFJhdGlvCgoqaWYyM19lbmQ6CgoqaWYyMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg2CgkvLyB2YWxpZGF0b3JTdGF0ZSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yU3RhdGU+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU4OAoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTkwCgkvLyByZXdhcmRUb2tlbkhlbGRCYWNrID0gdmFsaWRhdG9yU3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMTAgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU5NgoJLy8gYWxnb1Jld2FyZEF2YWlsID0gdGhpcy5hcHAuYWRkcmVzcy5iYWxhbmNlIC0gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXBvcAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk4CgkvLyBhbGdvU2F0dXJhdGlvbkFtdCA9IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpCgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWZyYW1lX2J1cnkgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNgoJLy8gdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkID4gYWxnb1NhdHVyYXRpb25BbXQKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJPgoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNwoJLy8gaXNQb29sU2F0dXJhdGVkID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoqaWYyNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjEzCgkvLyB0b2tlblJld2FyZEF2YWlsID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE2CgkvLyBleGNlc3NUb0ZlZVNpbmsgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNwoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTgKCS8vIHRva2VuUmV3YXJkQmFsID0KCS8vICAgICAgICAgcG9vbE9uZUFkZHJlc3MuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDcgLy8gcG9vbE9uZUFkZHJlc3M6IGFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxOCAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjIzCgkvLyB0b2tlblJld2FyZEJhbCA+PSB2YWxpZGF0b3JDb25maWcucmV3YXJkUGVyUGF5b3V0CglmcmFtZV9kaWcgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTYxIDgKCWJ0b2kKCT49CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjI5CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbdGhpcy5wb29sSWQudmFsdWUgLSAxXQoJZnJhbWVfZGlnIDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWludCAwCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCS0KCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxXzAwMF8wMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKKmlmMjZfZW5kOgoKKmlmMjVfZW5kOgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjM1CgkvLyB0b2tlblJld2FyZEF2YWlsID09PSAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MAoJLy8gYWxnb1Jld2FyZEF2YWlsIDwgMV8wMDBfMDAwCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWludCAxXzAwMF8wMDAKCTwKCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDEKCS8vIGxvZygnIXRva2VuJiYhbm9hbGdvIHRvIHBheScpCglieXRlIDB4MjE3NDZmNmI2NTZlMjYyNjIxNmU2ZjYxNmM2NzZmMjA3NDZmMjA3MDYxNzkgLy8gIiF0b2tlbiYmIW5vYWxnbyB0byBwYXkiCglsb2cKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQyCgkvLyByZXR1cm47CglyZXRzdWIKCippZjI4X2VuZDoKCippZjI3X2VuZDoKCS8vICppZjI5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0NgoJLy8gaXNQb29sU2F0dXJhdGVkCglmcmFtZV9kaWcgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCglieiAqaWYyOV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjI5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDkKCS8vIGRpbWluaXNoZWRSZXdhcmQgPSB3aWRlUmF0aW8oW2FsZ29SZXdhcmRBdmFpbCwgYWxnb1NhdHVyYXRpb25BbXRdLCBbdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkXSkKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDEzIC8vIGFsZ29TYXR1cmF0aW9uQW10OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTAgOAoJYnRvaQoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MQoJLy8gZXhjZXNzVG9GZWVTaW5rID0gYWxnb1Jld2FyZEF2YWlsIC0gZGltaW5pc2hlZFJld2FyZAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CgktCglmcmFtZV9idXJ5IDE3IC8vIGV4Y2Vzc1RvRmVlU2luazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICBhbW91bnQ6IGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgICAgcmVjZWl2ZXI6IHRoaXMuZ2V0RmVlU2luaygpLAoJLy8gICAgICAgICBub3RlOiAncG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luaycsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTMKCS8vIGFtb3VudDogZXhjZXNzVG9GZWVTaW5rCglmcmFtZV9kaWcgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1NAoJLy8gcmVjZWl2ZXI6IHRoaXMuZ2V0RmVlU2luaygpCgljYWxsc3ViIGdldEZlZVNpbmsKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU1CgkvLyBub3RlOiAncG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luaycKCWJ5dGUgMHg3MDZmNmY2YzIwNzM2MTc0NzU3MjYxNzQ2NTY0MmMyMDY1Nzg2MzY1NzM3MzIwNzQ2ZjIwNjY2NTY1MjA3MzY5NmU2YiAvLyAicG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luayIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU4CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSBkaW1pbmlzaGVkUmV3YXJkCglmcmFtZV9kaWcgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU5CgkvLyB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjIKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0ID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICBbYWxnb1Jld2FyZEF2YWlsLCB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yIGFzIHVpbnQ2NF0sCgkvLyAgICAgICAgIFsxXzAwMF8wMDBdCgkvLyAgICAgICApCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3MyA0CglidG9pCgltdWx3CglpbnQgMAoJaW50IDFfMDAwXzAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjgKCS8vIGFsZ29SZXdhcmRBdmFpbCAtPSB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3NQoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NzgKCS8vIG1hbmFnZXJUb3BPZmYgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCgkvLyAqaWYzMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODAKCS8vIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSB2YWxpZGF0b3JDb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgJiYKCS8vICAgICAgICAgICB2YWxpZGF0b3JDb25maWcubWFuYWdlci5iYWxhbmNlIC0gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIubWluQmFsYW5jZSA8IDJfMTAwXzAwMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3NyAzMgoJIT0KCWR1cAoJYnogKnNraXBfYW5kMwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWludCAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnQgMl8xMDBfMDAwCgk8CglieiAqdGVybmFyeTFfZmFsc2UKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWludCAyXzEwMF8wMDAKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODQKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogbWFuYWdlclRvcE9mZiwKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB2YWxpZGF0b3JDb25maWcubWFuYWdlciwKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg1CgkvLyBhbW91bnQ6IG1hbmFnZXJUb3BPZmYKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NgoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODcKCS8vIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycKCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NDIwNzQ2ZjIwNmQ2MTZlNjE2NzY1NzIyMDY2NmY3MjIwNjY3NTZlNjQ2OTZlNjcyMDY1NzA2ZjYzNjgyMDc1NzA2NDYxNzQ2NTczIC8vICJ2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcyIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMxX2VuZDoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MAoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgLSBtYW5hZ2VyVG9wT2ZmID4gMAoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWludCAwCgk+CglieiAqaWYzMl9lbmQKCgkvLyAqaWYzMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZiwKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB2YWxpZGF0b3JDb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICBub3RlOiAndmFsaWRhdG9yIHJld2FyZCcsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyMjA3MjY1Nzc2MTcyNjQgLy8gInZhbGlkYXRvciByZXdhcmQiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYzMl9lbmQ6CgoqaWYzMF9lbmQ6CgoqaWYyOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzA2CgkvLyBpbmNyZWFzZWRTdGFrZSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzAKCS8vIGFsZ29SZXdhcmRBdmFpbCAhPT0gMCB8fCB0b2tlblJld2FyZEF2YWlsICE9PSAwCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWludCAwCgkhPQoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJIT0KCXx8Cgoqc2tpcF9vcjE6CglieiAqaWYzM19lbmQKCgkvLyAqaWYzM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyNCAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzIKCS8vIGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgMjQgLy8gaTogdWludDY0CglpbnQgMjAwCgk8CglieiAqZm9yXzRfZW5kCgoJLy8gKmlmMzRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMzCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDQwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNgoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCA2NAoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzM3CgkvLyBjbXBTdGFrZXIuYWNjb3VudCAhPT0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglieiAqaWYzNV9lbmQKCgkvLyAqaWYzNV9jb25zZXF1ZW50CgkvLyAqaWYzNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzgKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID49IHRoaXNFcG9jaEJlZ2luCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCT49CglieiAqaWYzNl9lbHNlCgoJLy8gKmlmMzZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc0MQoJLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlICs9IGNtcFN0YWtlci5iYWxhbmNlCglmcmFtZV9kaWcgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJKwoJZnJhbWVfYnVyeSAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJYiAqaWYzNl9lbmQKCippZjM2X2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ1CgkvLyB0aW1lSW5Qb29sID0gdGhpc0Vwb2NoQmVnaW4gLSBjbXBTdGFrZXIuZW50cnlSb3VuZAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCgktCglmcmFtZV9idXJ5IDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc0OQoJLy8gdGltZUluUG9vbCA8IGVwb2NoUm91bmRMZW5ndGgKCWZyYW1lX2RpZyAyNiAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJPAoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MAoJLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlICs9IGNtcFN0YWtlci5iYWxhbmNlCglmcmFtZV9kaWcgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJKwoJZnJhbWVfYnVyeSAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NTEKCS8vIHRpbWVQZXJjZW50YWdlID0gKHRpbWVJblBvb2wgKiAxMDAwKSAvIGVwb2NoUm91bmRMZW5ndGgKCWZyYW1lX2RpZyAyNiAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCWludCAxMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludCAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzU1CgkvLyBzdGFrZXJUb2tlblJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbCwgdGltZVBlcmNlbnRhZ2VdLAoJLy8gICAgICAgICAgICAgICAgICAgW3RoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlLCAxMDAwXQoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjggLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjIKCS8vIHRva2VuUmV3YXJkQXZhaWwgLT0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgktCglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCA0OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzY0CgkvLyB0b2tlblJld2FyZFBhaWRPdXQgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCippZjM4X2VuZDoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NgoJLy8gYWxnb1Jld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmMzlfZW5kCgoJLy8gKmlmMzlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2OAoJLy8gc3Rha2VyUmV3YXJkID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICAgICAgICAgICAgW2NtcFN0YWtlci5iYWxhbmNlLCBhbGdvUmV3YXJkQXZhaWwsIHRpbWVQZXJjZW50YWdlXSwKCS8vICAgICAgICAgICAgICAgICAgIFt0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSwgMTAwMF0KCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc5CgkvLyBjbXBTdGFrZXIudG90YWxSZXdhcmRlZCArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCA0MCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc4MAoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODMKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYzN19lbmQ6CgoqaWYzNl9lbmQ6CgoqaWYzNV9lbmQ6CgoqZm9yXzRfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzkxCgkvLyBuZXdQb29sVG90YWxTdGFrZSA9IHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC0gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgktCglmcmFtZV9idXJ5IDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTUKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID4gMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWludCAwCgk+CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDMxIC8vIGk6IHVpbnQ2NAoKKmZvcl81OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludCAyMDAKCTwKCWJ6ICpmb3JfNV9lbmQKCgkvLyAqaWY0MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTgKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnQgMjAwCgk8CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDIKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIGNtcFN0YWtlci5lbnRyeVJvdW5kIDwgdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCTwKCSYmCgoqc2tpcF9hbmQ0OgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMwoJLy8gdGltZUluUG9vbCA9IHRoaXNFcG9jaEJlZ2luIC0gY21wU3Rha2VyLmVudHJ5Um91bmQKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJLQoJZnJhbWVfYnVyeSAzMyAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDUKCS8vIHRpbWVJblBvb2wgPj0gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk+PQoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gKmlmNDRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODEwCgkvLyB0b2tlblJld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTEKCS8vIHN0YWtlclRva2VuUmV3YXJkID0gd2lkZVJhdGlvKFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgMzAgLy8gbmV3UG9vbFRvdGFsU3Rha2U6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCA0OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODE1CgkvLyB0b2tlblJld2FyZFBhaWRPdXQgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDM0IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCippZjQ0X2VuZDoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNwoJLy8gYWxnb1Jld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxOAoJLy8gc3Rha2VyUmV3YXJkID0gd2lkZVJhdGlvKFtjbXBTdGFrZXIuYmFsYW5jZSwgYWxnb1Jld2FyZEF2YWlsXSwgW25ld1Bvb2xUb3RhbFN0YWtlXSkKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMzUgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjIKCS8vIGNtcFN0YWtlci50b3RhbFJld2FyZGVkICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDQwIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgOAoJYnRvaQoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODIzCgkvLyBpbmNyZWFzZWRTdGFrZSArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CglmcmFtZV9kaWcgMzUgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKKmlmNDVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyNwoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjQzX2VuZDoKCippZjQyX2VuZDoKCipmb3JfNV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMzEgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCippZjQwX2VuZDoKCippZjMzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzcKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMzYgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODM4CgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSArPSBpbmNyZWFzZWRTdGFrZQoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzkKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoaW5jcmVhc2VkU3Rha2UgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDM2IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0MQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgKyBpbmNyZWFzZWRTdGFrZQoJYnl0ZSAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInJld2FyZEFjY3VtdWxhdG9yIgoJZHVwCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0NwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9LAoJLy8gICAgICAgICBpbmNyZWFzZWRTdGFrZSwKCS8vICAgICAgICAgdG9rZW5SZXdhcmRQYWlkT3V0LAoJLy8gICAgICAgICB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCwKCS8vICAgICAgICAgZXhjZXNzVG9GZWVTaW5rLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDkKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9LAoJLy8gICAgICAgICBpbmNyZWFzZWRTdGFrZSwKCS8vICAgICAgICAgdG9rZW5SZXdhcmRQYWlkT3V0LAoJLy8gICAgICAgICB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCwKCS8vICAgICAgICAgZXhjZXNzVG9GZWVTaW5rLAoJLy8gICAgICAgXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2dvT25saW5lOgoJLy8gdm90ZUtleURpbHV0aW9uOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDYKCWJ0b2kKCgkvLyB2b3RlTGFzdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gdm90ZUZpcnN0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBzdGF0ZVByb29mUEs6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBzZWxlY3Rpb25QSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIHZvdGVQSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGZlZVBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnQgMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODUKCS8vIHZvdGVQSzogdm90ZVBLCglmcmFtZV9kaWcgLTIgLy8gdm90ZVBLOiBieXRlcwoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg2CgkvLyBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEsKCWZyYW1lX2RpZyAtMyAvLyBzZWxlY3Rpb25QSzogYnl0ZXMKCWl0eG5fZmllbGQgU2VsZWN0aW9uUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg3CgkvLyBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSwoJZnJhbWVfZGlnIC00IC8vIHN0YXRlUHJvb2ZQSzogYnl0ZXMKCWl0eG5fZmllbGQgU3RhdGVQcm9vZlBLCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4OAoJLy8gdm90ZUZpcnN0OiB2b3RlRmlyc3QKCWZyYW1lX2RpZyAtNSAvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg5CgkvLyB2b3RlTGFzdDogdm90ZUxhc3QKCWZyYW1lX2RpZyAtNiAvLyB2b3RlTGFzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg5MAoJLy8gdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24KCWZyYW1lX2RpZyAtNyAvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkxCgkvLyBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT2ZmbGluZSgpdm9pZAoqYWJpX3JvdXRlX2dvT2ZmbGluZToKCS8vIGV4ZWN1dGUgZ29PZmZsaW5lKCl2b2lkCgljYWxsc3ViIGdvT2ZmbGluZQoJaW50IDEKCXJldHVybgoKLy8gZ29PZmZsaW5lKCk6IHZvaWQKLy8KLy8gTWFya3MgYSBzdGFraW5nIHBvb2wga2V5IE9GRkxJTkUuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KZ29PZmZsaW5lOgoJcHJvdG8gMCAwCgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTAzCgkvLyB0aGlzLnR4bi5zZW5kZXIgIT09IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCSE9CglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA0CgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCippZjQ2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDcKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50IDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglieXRlIDB4NzY2NTcyNjk2Njc5NWY2ZTY2NjQ1ZjYxNjQ2NDcyIC8vICJ2ZXJpZnlfbmZkX2FkZHIiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxOQoJLy8gYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCldCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbnMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NFsyNF0sdWludDY0KQoqYWJpX3JvdXRlX3Byb3hpZWRTZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBvb2xLZXkpIGZvciBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gaXMgbWVhbnQgdG8gYmUgY2FsbGVkIGJ5IHBvb2xzICE9IDEgLSBjYWxsaW5nIFVTLCBwb29sICMxCi8vIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgd2UgYXJlIGluIGZhY3QgYmVpbmcgY2FsbGVkIGJ5IGFub3RoZXIgb2YgT1VSIHBvb2xzIChub3QgdXMpCi8vIGFuZCB0aGVuIHdlJ2xsIGNhbGwgdGhlIHZhbGlkYXRvciBvbiB0aGVpciBiZWhhbGYgdG8gdXBkYXRlIHRoZSB0b2tlbiBwYXlvdXRzCi8vIEBwYXJhbSBwb29sS2V5IC0gVmFsaWRhdG9yUG9vbEtleSB0dXBsZQpwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9ySWQudmFsdWUgPT09IHBvb2xLZXkuaWQsICdjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEnKQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzEKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ2NhbGxlZSBtdXN0IGJlIHBvb2wgMScpCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgoJLy8gY2FsbGVlIG11c3QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgIT09IDEsICdjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxJykKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCSE9CgoJLy8gY2FsbGVyIG11c3QgTk9UIGJlIHBvb2wgMQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNAoJLy8gY2FsbGVyUG9vbEFwcElEID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRQb29sQXBwSWQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3Bvb2xLZXkuaWQsIHBvb2xLZXkucG9vbElkXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzT3duZXJPck1hbmFnZXJDYWxsZXIoKTogYm9vbGVhbgppc093bmVyT3JNYW5hZ2VyQ2FsbGVyOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQ4CgkvLyBPd25lckFuZE1hbmFnZXIgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcj4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk1MAoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyBPd25lckFuZE1hbmFnZXI6IChhZGRyZXNzLGFkZHJlc3MpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk1MgoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlciA9PT0gT3duZXJBbmRNYW5hZ2VyWzBdIHx8IHRoaXMudHhuLnNlbmRlciA9PT0gT3duZXJBbmRNYW5hZ2VyWzFdOwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoJZXh0cmFjdCAwIDMyCgk9PQoJZHVwCglibnogKnNraXBfb3IyCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBPd25lckFuZE1hbmFnZXI6IChhZGRyZXNzLGFkZHJlc3MpCglleHRyYWN0IDMyIDMyCgk9PQoJfHwKCipza2lwX29yMjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRGZWVTaW5rKCk6IEFkZHJlc3MKZ2V0RmVlU2luazoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTYKCS8vIHJldHVybiB0aGlzLmZlZVNpbmtBZGRyOwoJbG9hZCAyMDEgLy8gVE1QTF9mZWVTaW5rQWRkcgoJcmV0c3ViCgovLyBhbGdvU2F0dXJhdGlvbkxldmVsKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlIGJlZm9yZQovLyB0aGUgdmFsaWRhdG9yIGlzIGNvbnNpZGVyZWQgc2F0dXJhdGVkIC0gd2hlcmUgcmV3YXJkcyBhcmUgZGltaW5pc2hlZC4KYWxnb1NhdHVyYXRpb25MZXZlbDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk2NgoJLy8gb25saW5lID0gdGhpcy5nZXRDdXJyZW50T25saW5lU3Rha2UoKQoJY2FsbHN1YiBnZXRDdXJyZW50T25saW5lU3Rha2UKCWZyYW1lX2J1cnkgMCAvLyBvbmxpbmU6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjgKCS8vIHJldHVybiB3aWRlUmF0aW8oW29ubGluZSwgTUFYX1ZBTElEQVRPUl9TT0ZUX1BDVF9PRl9PTkxJTkVfMURFQ0lNQUxdLCBbMTAwMF0pOwoJZnJhbWVfZGlnIDAgLy8gb25saW5lOiB1aW50NjQKCWludCAxMDAKCW11bHcKCWludCAwCglpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0R29PbmxpbmVGZWUoKTogdWludDY0CmdldEdvT25saW5lRmVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc1CgkvLyBpc09ubGluZSA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGlzT25saW5lOiBib29sCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc2CgkvLyAhaXNPbmxpbmUKCWZyYW1lX2RpZyAwIC8vIGlzT25saW5lOiBib29sCgkhCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc4CgkvLyByZXR1cm4gMl8wMDBfMDAwOwoJaW50IDJfMDAwXzAwMAoJYiAqZ2V0R29PbmxpbmVGZWUqcmV0dXJuCgoqaWY0N19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTgwCgkvLyByZXR1cm4gMDsKCWludCAwCgoqZ2V0R29PbmxpbmVGZWUqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4NQoJLy8gcmV0dXJuIDJfMDAwXzAwMF8wMDBfMDAwXzAwMDsKCWludCAyXzAwMF8wMDBfMDAwXzAwMF8wMDAKCXJldHN1YgoKLy8gY2hlY2tJZkJpbkNsb3NlZCgpOiB2b2lkCi8vCi8vIENoZWNrcyBpZiB0aGUgY3VycmVudCByb3VuZCBpcyBpbiBhICduZXcgY2FsY3VsYXRpb24gYmluJyAoYXBwcm94aW1hdGVseSBkYWlseSkKY2hlY2tJZkJpbkNsb3NlZDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTkyCgkvLyBjdXJyZW50QmluU2l6ZSA9IHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglmcmFtZV9idXJ5IDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgoJLy8gKmlmNDhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTkzCgkvLyBnbG9iYWxzLnJvdW5kID49IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIChjdXJyZW50QmluU2l6ZSBhcyB1aW50NjQpCglnbG9iYWwgUm91bmQKCWJ5dGUgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAvLyAiYmluUm91bmRTdGFydCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMCAvLyBjdXJyZW50QmluU2l6ZTogdW5zYWZlIHVpbnQxMjgKCWR1cAoJYml0bGVuCglpbnQgNjQKCTw9CgoJLy8gY3VycmVudEJpblNpemUgYXMgdWludDY0IG92ZXJmbG93ZWQgNjQgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCgkrCgk+PQoJYnogKmlmNDhfZW5kCgoJLy8gKmlmNDhfY29uc2VxdWVudAoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTk0CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmNDlfZW5kCgoJLy8gKmlmNDlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NwoJLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOCA9IGN1cnJlbnRCaW5TaXplICogKDM2NSBhcyB1aW50MTI4KQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNmQKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMSAvLyBhcHByb3hSb3VuZHNQZXJZZWFyOiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgLyBjdXJyZW50QmluU2l6ZQoJYnl0ZSAweDczNzQ2MTZiNjU0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIC8vICJzdGFrZUFjY3VtdWxhdG9yIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJYi8KCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAvIGN1cnJlbnRCaW5TaXplIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDE2CgktCglzd2FwCglzdWJzdHJpbmczCglmcmFtZV9idXJ5IDIgLy8gYXZnU3Rha2U6IHVpbnQxMjgKCgkvLyAqaWY1MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTkKCS8vIGF2Z1N0YWtlICE9PSAwCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliIT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDAzCgkvLyBhcHI6IHVpbnQxMjggPQoJLy8gICAgICAgICAgICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICoKCS8vICAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKQoJYnl0ZSAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInJld2FyZEFjY3VtdWxhdG9yIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMAoJYioKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgliLwoJZnJhbWVfZGlnIDEgLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJYioKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICpcbiAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAzIC8vIGFwcjogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDA3CgkvLyBhbHBoYTogdWludDEyOCA9IDEwIGFzIHVpbnQxMjgKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYQoJZnJhbWVfYnVyeSA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjUxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMDkKCS8vIGF2Z1N0YWtlID4gMzAwMDAwMDAwMDAwCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NWQ5NjRiODAwCgliPgoJYnogKmlmNTFfZW5kCgoJLy8gKmlmNTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMTAKCS8vIGFscGhhID0gOTAgYXMgdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoqaWY1MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMgoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPQoJLy8gICAgICAgICAgICh0aGlzLndlaWdodGVkTW92aW5nQXZlcmFnZS52YWx1ZSAqICgoMTAwIGFzIHVpbnQxMjgpIC0gYWxwaGEpKSAvICgxMDAgYXMgdWludDEyOCkgKwoJLy8gICAgICAgICAgIChhcHIgKiBhbHBoYSkgLyAoMTAwIGFzIHVpbnQxMjgpCglieXRlIDB4NjU3NzZkNjEgLy8gImV3bWEiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKCWZyYW1lX2RpZyA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoJYi0KCWIqCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKCWIvCglmcmFtZV9kaWcgMyAvLyBhcHI6IHVpbnQxMjgKCWZyYW1lX2RpZyA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoJYioKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWIrCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICtcbiAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCippZjUwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE4CgkvLyB0aGlzLnNldFJvdW5kc1BlckRheSgpCgljYWxsc3ViIHNldFJvdW5kc1BlckRheQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYioKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vICh0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSBhcyB1aW50MTI4KSAqICh0aGlzLnJvdW5kc1BlckRheS52YWx1ZSBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyMAoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IDAKCWJ5dGUgMHg3MjY1Nzc2MTcyNjQ0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIC8vICJyZXdhcmRBY2N1bXVsYXRvciIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIxCgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGUgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAvLyAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJJQoJLQoJYXBwX2dsb2JhbF9wdXQKCippZjQ4X2VuZDoKCXJldHN1YgoKLy8gc2V0Um91bmRzUGVyRGF5KCk6IHZvaWQKc2V0Um91bmRzUGVyRGF5OgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMjYKCS8vIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlID0gQVZHX1JPVU5EU19QRVJfREFZCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglpbnQgMzA4NTcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImdhcygpdm9pZCIKCW1ldGhvZCAiaW5pdFN0b3JhZ2UocGF5KXZvaWQiCgltZXRob2QgImFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NCIKCW1ldGhvZCAicmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZCIKCW1ldGhvZCAiY2xhaW1Ub2tlbnMoKXZvaWQiCgltZXRob2QgImdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAidXBkYXRlQWxnb2RWZXIoc3RyaW5nKXZvaWQiCgltZXRob2QgImVwb2NoQmFsYW5jZVVwZGF0ZSgpdm9pZCIKCW1ldGhvZCAiZ29PbmxpbmUocGF5LGJ5dGVbXSxieXRlW10sYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImdvT2ZmbGluZSgpdm9pZCIKCW1ldGhvZCAibGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZCIKCW1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CgltZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQgMCAxIDYgNjQgMzIgMTYgMTI4IDFfMDAwXzAwMCAyXzEwMF8wMDAgMjAwIDMwMCAxMDAwCmJ5dGVjYmxvY2sgVE1QTF9mZWVTaW5rQWRkciAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAweDczNzQ2MTZiNjU0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYgMHg3Mzc0NjE2YjY1NzI3MyAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAweDcwNmY2ZjZjNDk2NCAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgMHg3Mzc0NjE2YjY1NjQgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAweDAwMDAwMDAwMDAwMDAwMDAgMHggMHgwYTgxMDEgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAweDZjNjE3Mzc0NTA2MTc5NmY3NTc0IDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NCAweDZkNjk2ZTQ1NmU3NDcyNzk1Mzc0NjE2YjY1IDB4NjU3MDZmNjM2ODRlNzU2ZDYyNjU3MiAweDc1YWZmNjFkIDB4NjU3NzZkNjEgMHgxNTFmN2M3NSAweGEyZGM1MWI1IDB4NTcyNzY3ZDEgMHg0ZGY4ZDg2ZSAweDBjMjI0NWUxIDB4MDAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgbGluZXMgb2YgVEVBTCBhcmUgdXNlZCB0byBpbml0aWFsaXplIHRlbXBsYXRlIHZhcmlhYmxlcyBpbiBzY3JhdGNoIHNsb3RzCmJ5dGVjIDAgLy8gVE1QTF9mZWVTaW5rQWRkcgppbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpLAoJLy8gICAgICAgJ1RlbXBvcmFyeTogY29udHJhY3QgaXMgdXBncmFkZWFibGUgYnV0IG9ubHkgZHVyaW5nIHRlc3RpbmcgYW5kIG9ubHkgZnJvbSBhIGRldmVsb3BtZW50IGFjY291bnQnCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludCAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJcHVzaGludCAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTcKCS8vIHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlID0gY3JlYXRpbmdDb250cmFjdElkCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjExOAoJLy8gdGhpcy52YWxpZGF0b3JJZC52YWx1ZSA9IHZhbGlkYXRvcklkCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE5CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9IHBvb2xJZAoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMgoJLy8gdGhpcy5taW5FbnRyeVN0YWtlLnZhbHVlID0gbWluRW50cnlTdGFrZQoJYnl0ZSAweDZkNjk2ZTQ1NmU3NDcyNzk1Mzc0NjE2YjY1IC8vICJtaW5FbnRyeVN0YWtlIgoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTIzCgkvLyB0aGlzLmxhc3RQYXlvdXQudmFsdWUgPSBnbG9iYWxzLnJvdW5kCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglnbG9iYWwgUm91bmQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNAoJLy8gdGhpcy5lcG9jaE51bWJlci52YWx1ZSA9IDAKCWJ5dGUgMHg2NTcwNmY2MzY4NGU3NTZkNjI2NTcyIC8vICJlcG9jaE51bWJlciIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjYKCS8vIHRoaXMuc2V0Um91bmRzUGVyRGF5KCkKCWNhbGxzdWIgc2V0Um91bmRzUGVyRGF5CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNwoJLy8gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlID0gZ2xvYmFscy5yb3VuZCAtIChnbG9iYWxzLnJvdW5kICUgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUpCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglnbG9iYWwgUm91bmQKCWdsb2JhbCBSb3VuZAoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSUKCS0KCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyOAoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gMCBhcyB1aW50MTI4CglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyOQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IDAKCWJ5dGUgMHg3MjY1Nzc2MTcyNjQ0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIC8vICJyZXdhcmRBY2N1bXVsYXRvciIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMzAKCS8vIHRoaXMud2VpZ2h0ZWRNb3ZpbmdBdmVyYWdlLnZhbHVlID0gMCBhcyB1aW50MTI4CglieXRlIDB4NjU3NzZkNjEgLy8gImV3bWEiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50IDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNDIKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJcHVzaGludCA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAobWJyUGF5bWVudCkgZm9yIGluaXRTdG9yYWdlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgaW5pdFN0b3JhZ2UocGF5KXZvaWQKCWNhbGxzdWIgaW5pdFN0b3JhZ2UKCWludCAxCglyZXR1cm4KCi8vIGluaXRTdG9yYWdlKG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gQ2FsbGVkIGFmdGVyIHdlJ3JlIGNyZWF0ZWQgYW5kIHRoZW4gZnVuZGVkLCBzbyB3ZSBjYW4gY3JlYXRlIG91ciBsYXJnZSBzdGFrZXJzIGxlZGdlciBzdG9yYWdlCi8vIENhbGxlciBoYXMgdG8gZ2V0IE1CUiBhbW91bnRzIGZyb20gVmFsaWRhdG9yUmVnaXN0cnkgdG8ga25vdyBob3cgbXVjaCB0byBmdW5kIHVzIHRvIGNvdmVyIHRoZSBib3ggc3RvcmFnZSBjb3N0Ci8vIElmIHRoaXMgaXMgcG9vbCAxIEFORCB0aGUgdmFsaWRhdG9yIGhhcyBzcGVjaWZpZWQgYSByZXdhcmQgdG9rZW4sIG9wdC1pbiB0byB0aGF0IHRva2VuCi8vIHNvIHRoYXQgdGhlIHZhbGlkYXRvciBjYW4gc2VlZCB0aGUgcG9vbCB3aXRoIGZ1dHVyZSByZXdhcmRzIG9mIHRoYXQgdG9rZW4uCi8vIEBwYXJhbSBtYnJQYXltZW50IHBheW1lbnQgZnJvbSBjYWxsZXIgd2hpY2ggY292ZXJzIG1iciBpbmNyZWFzZSBvZiBuZXcgc3Rha2luZyBwb29scycgc3RvcmFnZQppbml0U3RvcmFnZToKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTUzCgkvLyBhc3NlcnQoIXRoaXMuc3Rha2Vycy5leGlzdHMsICdzdGFraW5nIHBvb2wgYWxyZWFkeSBpbml0aWFsaXplZCcpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCglib3hfbGVuCglzd2FwCglwb3AKCSEKCgkvLyBzdGFraW5nIHBvb2wgYWxyZWFkeSBpbml0aWFsaXplZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NgoJLy8gdmFsaWRhdG9yQ29uZmlnID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JDb25maWc+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4NzVhZmY2MWQgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTU4CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MAoJLy8gaXNUb2tlbkVsaWdpYmxlID0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQgIT09IDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpbnQgMAoJIT0KCWZyYW1lX2J1cnkgMSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTYxCgkvLyBleHRyYU1CUiA9IGlzVG9rZW5FbGlnaWJsZSAmJiB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSA/IEFTU0VUX0hPTERJTkdfRkVFIDogMAoJZnJhbWVfZGlnIDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDAKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglwdXNoaW50IDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJcHVzaGludCAxMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGV4dHJhTUJSOiB1aW50NjQKCSsKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWZyYW1lX2J1cnkgMyAvLyBQb29sSW5pdE1icjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogUG9vbEluaXRNYnIgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyBQb29sSW5pdE1icjogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJQb29sSW5pdE1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTY5CgkvLyB0aGlzLnN0YWtlcnMuY3JlYXRlKCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCXB1c2hpbnQgMTI4MDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTcxCgkvLyBpc1Rva2VuRWxpZ2libGUgJiYgdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWZyYW1lX2RpZyAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQxCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NAoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc1CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NgoJLy8gYXNzZXRBbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIGFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0CgljYWxsc3ViIGFkZFN0YWtlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBzdGFrZXI6IEFkZHJlc3MpOiB1aW50NjQKLy8KLy8gQWRkcyBzdGFrZSB0byB0aGUgZ2l2ZW4gYWNjb3VudC4KLy8gQ2FuIE9OTFkgYmUgY2FsbGVkIGJ5IHRoZSB2YWxpZGF0b3IgY29udHJhY3QgdGhhdCBjcmVhdGVkIHVzCi8vIE11c3QgcmVjZWl2ZSBwYXltZW50IGZyb20gdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgYW1vdW50IGJlaW5nIHN0YWtlZC4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IHN0YWtlZEFtb3VudFBheW1lbnQgcHJpb3IgcGF5bWVudCBjb21pbmcgZnJvbSB2YWxpZGF0b3IgY29udHJhY3QgdG8gdXMgb24gYmVoYWxmIG9mIHN0YWtlci4KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWNjb3VudCBhZGRpbmcgbmV3IHN0YWtlCi8vIEB0aHJvd3Mge0Vycm9yfSAtIFRocm93cyBhbiBlcnJvciBpZiB0aGUgc3Rha2luZyBwb29sIGlzIGZ1bGwuCi8vIEByZXR1cm5zIHt1aW50NjR9IG5ldyAnZW50cnkgcm91bmQnIHJvdW5kIG51bWJlciBvZiBzdGFrZSBhZGQKYWRkU3Rha2U6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE5MgoJLy8gYXNzZXJ0KHRoaXMuc3Rha2Vycy5leGlzdHMsICdzdGFraW5nIHBvb2wgbXVzdCBiZSBpbml0aWFsaXplZCBmaXJzdCcpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBiZSBpbml0aWFsaXplZCBmaXJzdAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKS5hZGRyZXNzLAoJLy8gICAgICAgJ3N0YWtlIGNhbiBvbmx5IGJlIGFkZGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0JwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gc3Rha2UgY2FuIG9ubHkgYmUgYWRkZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTkKCS8vIGFzc2VydChzdGFrZXIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjAyCgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwNgoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKS5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6InN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50In0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTUKCS8vIGVudHJ5Um91bmQgPSBnbG9iYWxzLnJvdW5kICsgQUxHT1JBTkRfU1RBS0lOR19CTE9DS19ERUxBWQoJZ2xvYmFsIFJvdW5kCglwdXNoaW50IDMyMAoJKwoJZnJhbWVfYnVyeSAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTYKCS8vIGZpcnN0RW1wdHkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50CglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjAKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWZyYW1lX2RpZyAyIC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI5CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgNjQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzAKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzIKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCAzMiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzMKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID0gZW50cnlSb3VuZAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglwdXNoaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM4CgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJYiAqYWRkU3Rha2UqcmV0dXJuCgoqaWYzX2VuZDoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQwCgkvLyBmaXJzdEVtcHR5ID09PSAwICYmIGNtcFN0YWtlci5hY2NvdW50ID09PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJZHVwCglieiAqc2tpcF9hbmQyCglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDI6CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0MQoJLy8gZmlyc3RFbXB0eSA9IGkgKyAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoqaWY0X2VuZDoKCipmb3JfMF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0NQoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBTdGFraW5nIHBvb2wgZnVsbAoJZXJyCgoqaWY1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTIKCS8vIGFzc2VydChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCA+PSB0aGlzLm1pbkVudHJ5U3Rha2UudmFsdWUsICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnKQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NmQ2OTZlNDU2ZTc0NzI3OTUzNzQ2MTZiNjUgLy8gIm1pbkVudHJ5U3Rha2UiCglhcHBfZ2xvYmFsX2dldAoJPj0KCgkvLyBtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTQKCS8vIGFzc2VydCh0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAxCgktCglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCAzMgoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTUKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0gPSB7CgkvLyAgICAgICBhY2NvdW50OiBzdGFrZXIsCgkvLyAgICAgICBiYWxhbmNlOiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICAgIHRvdGFsUmV3YXJkZWQ6IDAsCgkvLyAgICAgICByZXdhcmRUb2tlbkJhbGFuY2U6IDAsCgkvLyAgICAgICBlbnRyeVJvdW5kOiBlbnRyeVJvdW5kLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50IDEKCS0KCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50IDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmN19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkzCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgNjQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTQKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vICppZjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk1CgkvLyBhbW91bnRUb1Vuc3Rha2UgPT09IDAKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NwoJLy8gYW1vdW50VG9VbnN0YWtlID0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9idXJ5IC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgoqaWY5X2VuZDoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5OQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPCBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCTwKCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIEluc3VmZmljaWVudCBiYWxhbmNlCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDIKCS8vIGNtcFN0YWtlci5iYWxhbmNlIC09IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJLQoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzAzCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtPSBhbW91bnRUb1Vuc3Rha2UKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNQoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNgoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA+IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnQgMAoJPgoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA4CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoJYnogKmlmMTJfZWxzZQoKCS8vICppZjEyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDkKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDc1YWZmNjFkIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxMQoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMyAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTcKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpLAoJLy8gICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiBzdGFrZXIsCgkvLyAgICAgICAgICAgICAgIGFzc2V0QW1vdW50OiBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNCAvLyBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTgKCS8vIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKQoJZnJhbWVfZGlnIDMgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTUzIDgKCWJ0b2kKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxOQoJLy8gYXNzZXRSZWNlaXZlcjogc3Rha2VyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIwCgkvLyBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMgoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYiAqaWYxMl9lbmQKCippZjEyX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzI4CgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDggOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXJlcGxhY2UyIDQ4CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoqaWYxMl9lbmQ6CgoqaWYxMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzM0CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgY21wU3Rha2VyLmJhbGFuY2UgPT09IDAgfHwgY21wU3Rha2VyLmJhbGFuY2UgPj0gdGhpcy5taW5FbnRyeVN0YWtlLnZhbHVlLAoJLy8gICAgICAgICAgICdjYW5ub3QgcmVkdWNlIGJhbGFuY2UgYmVsb3cgbWluaW11bSBhbGxvd2VkIHN0YWtlIHVubGVzcyBhbGwgaXMgcmVtb3ZlZCcKCS8vICAgICAgICAgKQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWludCAwCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJYnl0ZSAweDZkNjk2ZTQ1NmU3NDcyNzk1Mzc0NjE2YjY1IC8vICJtaW5FbnRyeVN0YWtlIgoJYXBwX2dsb2JhbF9nZXQKCT49Cgl8fAoKKnNraXBfb3IwOgoJLy8gY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZSwKCS8vICAgICAgICAgICByZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgIG5vdGU6ICd1bnN0YWtlZCcsCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQzCgkvLyBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDQKCS8vIHJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ1CgkvLyBub3RlOiAndW5zdGFrZWQnCglwdXNoYnl0ZXMgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCS0KCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTkKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgNSAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjAKCS8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4ID0gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAoYW1vdW50VG9VbnN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2MQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjgKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvVW5zdGFrZSwKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIHN0YWtlclJlbW92ZWQsCgkvLyAgICAgICAgICAgXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludCAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMTZfZW5kCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMAoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDAyCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA0CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoJYnogKmlmMTdfZWxzZQoKCS8vICppZjE3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDUKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDc1YWZmNjFkIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwNwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTIKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICAgIGFzc2V0QW1vdW50OiBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDQgLy8gYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDEzCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyA0IC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTQKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE1CgkvLyBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTgKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYiAqaWYxN19lbmQKCippZjE3X2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDIzCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDggOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyNAoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9IDAKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXJlcGxhY2UyIDQ4CglmcmFtZV9idXJ5IDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoqaWYxN19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDI4CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDMzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlUmVtb3ZlZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM0CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MzUKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDQzCgkvLyByZXR1cm47CglyZXRzdWIKCippZjE1X2VuZDoKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCglyZXRzdWIKCi8vIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0U3Rha2VySW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGdldFN0YWtlckluZm8gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0U3Rha2VySW5mbwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFN0YWtlckluZm8oc3Rha2VyOiBBZGRyZXNzKTogU3Rha2VkSW5mbwovLwovLyBSZXRyaWV2ZXMgdGhlIHN0YWtlZCBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHJldHVybnMge1N0YWtlZEluZm99IC0gVGhlIHN0YWtlZCBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIHN0YWtlci4KLy8gQHRocm93cyB7RXJyb3J9IC0gSWYgdGhlIHN0YWtlcidzIGFjY291bnQgaXMgbm90IGZvdW5kLgpnZXRTdGFrZXJJbmZvOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZm9yXzM6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpIDwgdGhpcy5zdGFrZXJzLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMjAwCgk8CglieiAqZm9yXzNfZW5kCgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU5CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDIwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDIwMAoJPAoJYnogKmlmMThfZW5kCgoJLy8gKmlmMThfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYxOF9lbmQ6CgkvLyAqaWYxOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjIKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXS5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgMzIKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmMTlfZW5kCgoJLy8gKmlmMTlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MwoJLy8gcmV0dXJuIHRoaXMuc3Rha2Vycy52YWx1ZVtpXTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCA2NAoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKmdldFN0YWtlckluZm8qcmV0dXJuCgoqaWYxOV9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoKKmdldFN0YWtlckluZm8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfcGF5VG9rZW5SZXdhcmQ6CgkvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHJld2FyZFRva2VuOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VyKSBmb3IgcGF5VG9rZW5SZXdhcmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgcGF5VG9rZW5SZXdhcmQKCWludCAxCglyZXR1cm4KCi8vIHBheVRva2VuUmV3YXJkKHN0YWtlcjogQWRkcmVzcywgcmV3YXJkVG9rZW46IHVpbnQ2NCwgYW1vdW50VG9TZW5kOiB1aW50NjQpOiB2b2lkCi8vCi8vIFtJbnRlcm5hbCBwcm90b2NvbCBtZXRob2RdIFJlbW92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgJ2NvbW11bml0eSB0b2tlbicgcmV3YXJkcyBmb3IgYSBzdGFrZXIuCi8vIFRoaXMgY2FuIE9OTFkgYmUgY2FsbGVkIGJ5IG91ciB2YWxpZGF0b3IgYW5kIG9ubHkgaWYgd2UncmUgcG9vbCAxIC0gd2l0aCB0aGUgdG9rZW4uCi8vIE5vdGU6IHRoaXMgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBhcyBwYXJ0IG9mIE9XTkVSIHdhbnRpbmcgdG8gc2VuZCB0aGUgcmV3YXJkIHRva2VucwovLyBzb21ld2hlcmUgZWxzZSAoaWUgaWYgdGhleSdyZSBzdW5zZXR0aW5nIHRoZWlyIHZhbGlkYXRvciBhbmQgbmVlZCB0aGUgcmV3YXJkIHRva2VucyBiYWNrKS4KLy8gSXQncyB1cCB0byB0aGUgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBiYWxhbmNlIGluIHJld2FyZFRva2VuSGVsZEJhY2sgaXMgaG9ub3JlZC4KLy8gQHBhcmFtIHN0YWtlciAtIHRoZSBzdGFrZXIgYWNjb3VudCB0byBzZW5kIHJld2FyZHMgdG8KLy8gQHBhcmFtIHJld2FyZFRva2VuIC0gaWQgb2YgcmV3YXJkIHRva2VuICh0byBhdm9pZCByZS1lbnRyYW5jeSBpbiBjYWxsaW5nIHZhbGlkYXRvciBiYWNrIHRvIGdldCBpZCkKLy8gQHBhcmFtIGFtb3VudFRvU2VuZCAtIGFtb3VudCB0byBzZW5kIHRoZSBzdGFrZXIgKHRoZXJlIGlzIHNpZ25pZmljYW50IHRydXN0IGhlcmUoISkgLSBhbHNvIHdoeSBvbmx5IHZhbGlkYXRvciBjYW4gY2FsbCB1cwpwYXlUb2tlblJld2FyZDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICd0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg1CgkvLyBhc3NlcnQodGhpcy5wb29sSWQudmFsdWUgPT09IDEsICdtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzJykKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCgkvLyBtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg2CgkvLyBhc3NlcnQocmV3YXJkVG9rZW4gIT09IDAsICdjYW4gb25seSBjbGFpbSB0b2tlbiByZXdhcmRzIGZyb20gdmFsaWRhdG9yIHRoYXQgaGFzIHRoZW0nKQoJZnJhbWVfZGlnIC0yIC8vIHJld2FyZFRva2VuOiB1aW50NjQKCWludCAwCgkhPQoKCS8vIGNhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MAoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pCglmcmFtZV9kaWcgLTIgLy8gcmV3YXJkVG9rZW46IHVpbnQ2NAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkxCgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTIKCS8vIGFzc2V0QW1vdW50OiBhbW91bnRUb1NlbmQKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gdXBkYXRlQWxnb2RWZXIoc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBbGdvZFZlcjoKCS8vIGFsZ29kVmVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoJY2FsbHN1YiB1cGRhdGVBbGdvZFZlcgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQWxnb2RWZXIoYWxnb2RWZXI6IHN0cmluZyk6IHZvaWQKLy8KLy8gVXBkYXRlIHRoZSAoaG9ub3Igc3lzdGVtKSBhbGdvZCB2ZXJzaW9uIGZvciB0aGUgbm9kZSBhc3NvY2lhdGVkIHRvIHRoaXMgcG9vbC4gIFRoZSBub2RlIG1hbmFnZW1lbnQgZGFlbW9uCi8vIHNob3VsZCBjb21wYXJlIGl0cyBjdXJyZW50IG5vZGVzIHZlcnNpb24gdG8gdGhlIHZlcnNpb24gc3RvcmVkIGluIGdsb2JhbCBzdGF0ZSwgdXBkYXRpbmcgd2hlbiBkaWZmZXJlbnQuCi8vIFRoZSByZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gdmVyc2lvbiBzdHJpbmcgdXNpbmcgZm9ybWF0OgovLyB7bWFqb3J9LnttaW5vcn0ue2J1aWxkfSB7YnJhbmNofSBbe2NvbW1pdCBoYXNofV0sCi8vIGllOiAzLjIyLjAgcmVsL3N0YWJsZSBbNmI1MDg5NzVdCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8gQHBhcmFtIHtzdHJpbmd9IGFsZ29kVmVyIC0gc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgYWxnb3JhbmQgbm9kZSBkYWVtb24gdmVyc2lvbiAocmV0aSBub2RlIGRhZW1vbiBjb21wb3NlcyBpdHMgb3duIG1ldGEgdmVyc2lvbikKdXBkYXRlQWxnb2RWZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTA2CgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTA3CgkvLyB0aGlzLmFsZ29kVmVyLnZhbHVlID0gYWxnb2RWZXIKCXB1c2hieXRlcyAweDYxNmM2NzZmNjQ1NjY1NzIgLy8gImFsZ29kVmVyIgoJZnJhbWVfZGlnIC0xIC8vIGFsZ29kVmVyOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGVwb2NoQmFsYW5jZVVwZGF0ZSgpdm9pZAoqYWJpX3JvdXRlX2Vwb2NoQmFsYW5jZVVwZGF0ZToKCS8vIGV4ZWN1dGUgZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCgljYWxsc3ViIGVwb2NoQmFsYW5jZVVwZGF0ZQoJaW50IDEKCXJldHVybgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgYmFsYW5jZSBvZiBzdGFrZXJzIGluIHRoZSBwb29sIGJhc2VkIG9uIHRoZSByZWNlaXZlZCAncmV3YXJkcycgKGN1cnJlbnQgYmFsYW5jZSB2cyBrbm93biBzdGFrZWQgYmFsYW5jZSkKLy8gc3Rha2VycyBvdXRzdGFuZGluZyBiYWxhbmNlIGlzIGFkanVzdGVkIGJhc2VkIG9uIHRoZWlyICUgb2Ygc3Rha2UgYW5kIHRpbWUgaW4gdGhlIGN1cnJlbnQgZXBvY2ggLSBzbyB0aGF0IGJhbGFuY2UKLy8gY29tcG91bmRzIG92ZXIgdGltZSBhbmQgc3Rha2VyIGNhbiByZW1vdmUgdGhhdCBhbW91bnQgYXQgd2lsbC4KLy8gVGhlIHZhbGlkYXRvciBpcyBwYWlkIHRoZWlyIHBlcmNlbnRhZ2UgZWFjaCBlcG9jaCBwYXlvdXQuCi8vCi8vIE5vdGU6IEFOWU9ORSBjYW4gY2FsbCB0aGlzLgplcG9jaEJhbGFuY2VVcGRhdGU6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzNgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjAKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDc1YWZmNjFkIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGUgMHg2YzYxNzM3NDUwNjE3OTZmNzU3NCAvLyAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgLy8gImVwb2NoTnVtYmVyIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglieXRlIDB4NjU3MDZmNjM2ODRlNzU2ZDYyNjU3MiAvLyAiZXBvY2hOdW1iZXIiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTEKCS8vIGlzVG9rZW5FbGlnaWJsZSA9IHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaW50IDAKCSE9CglmcmFtZV9idXJ5IDUgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MgoJLy8gcG9vbE9uZUFwcElEID0gdGhpcy5hcHAuaWQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTMKCS8vIHBvb2xPbmVBZGRyZXNzID0gdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OAoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OQoJLy8gdGhpcy5wb29sSWQudmFsdWUgIT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDU3Mjc2N2QxIC8vIG1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCAxXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU2NQoJLy8gcG9vbE9uZUFkZHJlc3MgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCkuYWRkcmVzcwoJZnJhbWVfZGlnIDYgLy8gcG9vbE9uZUFwcElEOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfYnVyeSA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCgoqaWYyMl9lbmQ6CgkvLyAqaWYyM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzAKCS8vIHRoaXMucG9vbElkLnZhbHVlID09PSAxCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CglieiAqaWYyM19lbHNlCgoJLy8gKmlmMjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MQoJLy8gdG9rZW5QYXlvdXRSYXRpbyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGUgMHg0ZGY4ZDg2ZSAvLyBtZXRob2QgInNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOCAvLyB0b2tlblBheW91dFJhdGlvOiBQb29sVG9rZW5QYXlvdXRSYXRpbwoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc3CgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGUgMHgwYzIyNDVlMSAvLyBtZXRob2QgInByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NFsyNF0sdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3OAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpCglmcmFtZV9kaWcgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3OQoJLy8gbWV0aG9kQXJnczogW3sgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfV0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCippZjIzX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODYKCS8vIHZhbGlkYXRvclN0YXRlID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JTdGF0ZT4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDFmMmYwMTA5IC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODgKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU5MAoJLy8gcmV3YXJkVG9rZW5IZWxkQmFjayA9IHZhbGlkYXRvclN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxOCA4CglidG9pCglmcmFtZV9idXJ5IDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTYKCS8vIGFsZ29SZXdhcmRBdmFpbCA9IHRoaXMuYXBwLmFkZHJlc3MuYmFsYW5jZSAtIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC0gdGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWZyYW1lX2J1cnkgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk3CgkvLyBpc1Bvb2xTYXR1cmF0ZWQgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU5OAoJLy8gYWxnb1NhdHVyYXRpb25BbXQgPSB0aGlzLmFsZ29TYXR1cmF0aW9uTGV2ZWwoKQoJY2FsbHN1YiBhbGdvU2F0dXJhdGlvbkxldmVsCglmcmFtZV9idXJ5IDEzIC8vIGFsZ29TYXR1cmF0aW9uQW10OiB1aW50NjQKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MDYKCS8vIHZhbGlkYXRvclN0YXRlLnRvdGFsQWxnb1N0YWtlZCA+IGFsZ29TYXR1cmF0aW9uQW10CglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTAgOAoJYnRvaQoJZnJhbWVfZGlnIDEzIC8vIGFsZ29TYXR1cmF0aW9uQW10OiB1aW50NjQKCT4KCWJ6ICppZjI0X2VuZAoKCS8vICppZjI0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MDcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDEyIC8vIGlzUG9vbFNhdHVyYXRlZDogYm9vbAoKKmlmMjRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxMwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTQKCS8vIHRva2VuUmV3YXJkUGFpZE91dCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNQoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNgoJLy8gZXhjZXNzVG9GZWVTaW5rID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCgkvLyAqaWYyNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTcKCS8vIGlzVG9rZW5FbGlnaWJsZQoJZnJhbWVfZGlnIDUgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglieiAqaWYyNV9lbmQKCgkvLyAqaWYyNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE4CgkvLyB0b2tlblJld2FyZEJhbCA9CgkvLyAgICAgICAgIHBvb2xPbmVBZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpKSAtIHJld2FyZFRva2VuSGVsZEJhY2sKCWZyYW1lX2RpZyA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAxMCAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYyMwoJLy8gdG9rZW5SZXdhcmRCYWwgPj0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dAoJZnJhbWVfZGlnIDE4IC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCgk+PQoJYnogKmlmMjZfZW5kCgoJLy8gKmlmMjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYyOQoJLy8gb3VyUG9vbFBjdE9mV2hvbGUgPSB0b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW3RoaXMucG9vbElkLnZhbHVlIC0gMV0KCWZyYW1lX2RpZyA4IC8vIHRva2VuUGF5b3V0UmF0aW86IFBvb2xUb2tlblBheW91dFJhdGlvCglpbnQgMAoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgktCglwdXNoaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJcHVzaGludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxXzAwMF8wMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKKmlmMjZfZW5kOgoKKmlmMjVfZW5kOgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjM1CgkvLyB0b2tlblJld2FyZEF2YWlsID09PSAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MAoJLy8gYWxnb1Jld2FyZEF2YWlsIDwgMV8wMDBfMDAwCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWludCAxXzAwMF8wMDAKCTwKCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDEKCS8vIGxvZygnIXRva2VuJiYhbm9hbGdvIHRvIHBheScpCglwdXNoYnl0ZXMgMHgyMTc0NmY2YjY1NmUyNjI2MjE2ZTZmNjE2YzY3NmYyMDc0NmYyMDcwNjE3OSAvLyAiIXRva2VuJiYhbm9hbGdvIHRvIHBheSIKCWxvZwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDIKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMjhfZW5kOgoKKmlmMjdfZW5kOgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQ2CgkvLyBpc1Bvb2xTYXR1cmF0ZWQKCWZyYW1lX2RpZyAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCWJ6ICppZjI5X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0OQoJLy8gZGltaW5pc2hlZFJld2FyZCA9IHdpZGVSYXRpbyhbYWxnb1Jld2FyZEF2YWlsLCBhbGdvU2F0dXJhdGlvbkFtdF0sIFt2YWxpZGF0b3JTdGF0ZS50b3RhbEFsZ29TdGFrZWRdKQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyMCAvLyBkaW1pbmlzaGVkUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjUxCgkvLyBleGNlc3NUb0ZlZVNpbmsgPSBhbGdvUmV3YXJkQXZhaWwgLSBkaW1pbmlzaGVkUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyMCAvLyBkaW1pbmlzaGVkUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjUyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgIGFtb3VudDogZXhjZXNzVG9GZWVTaW5rLAoJLy8gICAgICAgICByZWNlaXZlcjogdGhpcy5nZXRGZWVTaW5rKCksCgkvLyAgICAgICAgIG5vdGU6ICdwb29sIHNhdHVyYXRlZCwgZXhjZXNzIHRvIGZlZSBzaW5rJywKCS8vICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjUzCgkvLyBhbW91bnQ6IGV4Y2Vzc1RvRmVlU2luawoJZnJhbWVfZGlnIDE3IC8vIGV4Y2Vzc1RvRmVlU2luazogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTQKCS8vIHJlY2VpdmVyOiB0aGlzLmdldEZlZVNpbmsoKQoJY2FsbHN1YiBnZXRGZWVTaW5rCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1NQoJLy8gbm90ZTogJ3Bvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsnCglwdXNoYnl0ZXMgMHg3MDZmNmY2YzIwNzM2MTc0NzU3MjYxNzQ2NTY0MmMyMDY1Nzg2MzY1NzM3MzIwNzQ2ZjIwNjY2NTY1MjA3MzY5NmU2YiAvLyAicG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luayIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU4CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSBkaW1pbmlzaGVkUmV3YXJkCglmcmFtZV9kaWcgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU5CgkvLyB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjIKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0ID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICBbYWxnb1Jld2FyZEF2YWlsLCB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yIGFzIHVpbnQ2NF0sCgkvLyAgICAgICAgIFsxXzAwMF8wMDBdCgkvLyAgICAgICApCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3MyA0CglidG9pCgltdWx3CglpbnQgMAoJaW50IDFfMDAwXzAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjgKCS8vIGFsZ29SZXdhcmRBdmFpbCAtPSB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3NQoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NzgKCS8vIG1hbmFnZXJUb3BPZmYgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCgkvLyAqaWYzMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODAKCS8vIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSB2YWxpZGF0b3JDb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgJiYKCS8vICAgICAgICAgICB2YWxpZGF0b3JDb25maWcubWFuYWdlci5iYWxhbmNlIC0gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIubWluQmFsYW5jZSA8IDJfMTAwXzAwMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3NyAzMgoJIT0KCWR1cAoJYnogKnNraXBfYW5kMwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWludCAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnQgMl8xMDBfMDAwCgk8CglieiAqdGVybmFyeTFfZmFsc2UKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWludCAyXzEwMF8wMDAKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODQKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogbWFuYWdlclRvcE9mZiwKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB2YWxpZGF0b3JDb25maWcubWFuYWdlciwKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODUKCS8vIGFtb3VudDogbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg2CgkvLyByZWNlaXZlcjogdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NwoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzJwoJcHVzaGJ5dGVzIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyMjA3MjY1Nzc2MTcyNjQyMDc0NmYyMDZkNjE2ZTYxNjc2NTcyMjA2NjZmNzIyMDY2NzU2ZTY0Njk2ZTY3MjA2NTcwNmY2MzY4MjA3NTcwNjQ2MTc0NjU3MyAvLyAidmFsaWRhdG9yIHJld2FyZCB0byBtYW5hZ2VyIGZvciBmdW5kaW5nIGVwb2NoIHVwZGF0ZXMiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYzMV9lbmQ6CgkvLyAqaWYzMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2OTAKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZiA+IDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglmcmFtZV9kaWcgMjEgLy8gbWFuYWdlclRvcE9mZjogdWludDY0CgktCglpbnQgMAoJPgoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgYW1vdW50OiB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCAtIG1hbmFnZXJUb3BPZmYsCgkvLyAgICAgICAgICAgICByZWNlaXZlcjogdmFsaWRhdG9yQ29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzLAoJLy8gICAgICAgICAgICAgbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglwdXNoYnl0ZXMgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NCAvLyAidmFsaWRhdG9yIHJld2FyZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCippZjMwX2VuZDoKCippZjI5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MDYKCS8vIGluY3JlYXNlZFN0YWtlID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMAoJLy8gYWxnb1Jld2FyZEF2YWlsICE9PSAwIHx8IHRva2VuUmV3YXJkQXZhaWwgIT09IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCSE9CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludCAwCgkhPQoJfHwKCipza2lwX29yMToKCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzEKCS8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludCAyMDAKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNDAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYzNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzM2CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMjQgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzcKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczOAoJLy8gY21wU3Rha2VyLmVudHJ5Um91bmQgPj0gdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPj0KCWJ6ICppZjM2X2Vsc2UKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgliICppZjM2X2VuZAoKKmlmMzZfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NDUKCS8vIHRpbWVJblBvb2wgPSB0aGlzRXBvY2hCZWdpbiAtIGNtcFN0YWtlci5lbnRyeVJvdW5kCglmcmFtZV9kaWcgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCS0KCWZyYW1lX2J1cnkgMjYgLy8gdGltZUluUG9vbDogdWludDY0CgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ5CgkvLyB0aW1lSW5Qb29sIDwgZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk8CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUwCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MQoJLy8gdGltZVBlcmNlbnRhZ2UgPSAodGltZUluUG9vbCAqIDEwMDApIC8gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJaW50IDEwMDAKCSoKCWZyYW1lX2RpZyAxIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAyNyAvLyB0aW1lUGVyY2VudGFnZTogdWludDY0CgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUzCgkvLyB0b2tlblJld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjM4X2VuZAoKCS8vICppZjM4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NTUKCS8vIHN0YWtlclRva2VuUmV3YXJkID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICAgICAgICAgICAgW2NtcFN0YWtlci5iYWxhbmNlLCB0b2tlblJld2FyZEF2YWlsLCB0aW1lUGVyY2VudGFnZV0sCgkvLyAgICAgICAgICAgICAgICAgICBbdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUsIDEwMDBdCgkvLyAgICAgICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgltdWx3CglmcmFtZV9kaWcgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoJdW5jb3ZlciAyCglkaWcgMQoJKgoJY292ZXIgMgoJbXVsdwoJY292ZXIgMgoJKwoJc3dhcAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxMDAwCgltdWx3CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MgoJLy8gdG9rZW5SZXdhcmRBdmFpbCAtPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MwoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJcHVzaGludCA0OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzY0CgkvLyB0b2tlblJld2FyZFBhaWRPdXQgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCippZjM4X2VuZDoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NgoJLy8gYWxnb1Jld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmMzlfZW5kCgoJLy8gKmlmMzlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2OAoJLy8gc3Rha2VyUmV3YXJkID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICAgICAgICAgICAgW2NtcFN0YWtlci5iYWxhbmNlLCBhbGdvUmV3YXJkQXZhaWwsIHRpbWVQZXJjZW50YWdlXSwKCS8vICAgICAgICAgICAgICAgICAgIFt0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSwgMTAwMF0KCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc5CgkvLyBjbXBTdGFrZXIudG90YWxSZXdhcmRlZCArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCXB1c2hpbnQgNDAgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCA4CglidG9pCglmcmFtZV9kaWcgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODAKCS8vIGluY3JlYXNlZFN0YWtlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgoqaWYzOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzgzCgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmMzdfZW5kOgoKKmlmMzZfZW5kOgoKKmlmMzVfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSArPSAxCglmcmFtZV9kaWcgMjQgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyNCAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5MQoJLy8gbmV3UG9vbFRvdGFsU3Rha2UgPSB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZQoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CgoJLy8gKmlmNDBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk1CgkvLyBuZXdQb29sVG90YWxTdGFrZSA+IDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglpbnQgMAoJPgoJYnogKmlmNDBfZW5kCgoJLy8gKmlmNDBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAzMSAvLyBpOiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgMjAwCgk8CglieiAqZm9yXzVfZW5kCgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk4CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDIwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDIwMAoJPAoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5OQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDIKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIGNtcFN0YWtlci5lbnRyeVJvdW5kIDwgdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCTwKCSYmCgoqc2tpcF9hbmQ0OgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMwoJLy8gdGltZUluUG9vbCA9IHRoaXNFcG9jaEJlZ2luIC0gY21wU3Rha2VyLmVudHJ5Um91bmQKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJLQoJZnJhbWVfYnVyeSAzMyAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDUKCS8vIHRpbWVJblBvb2wgPj0gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk+PQoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gKmlmNDRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODEwCgkvLyB0b2tlblJld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTEKCS8vIHN0YWtlclRva2VuUmV3YXJkID0gd2lkZVJhdGlvKFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgMzAgLy8gbmV3UG9vbFRvdGFsU3Rha2U6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCXB1c2hpbnQgNDggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNQoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTcKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbyhbY21wU3Rha2VyLmJhbGFuY2UsIGFsZ29SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjEKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODIyCgkvLyBjbXBTdGFrZXIudG90YWxSZXdhcmRlZCArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCXB1c2hpbnQgNDAgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCA4CglidG9pCglmcmFtZV9kaWcgMzUgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjMKCS8vIGluY3JlYXNlZFN0YWtlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgoqaWY0NV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODI3CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmNDNfZW5kOgoKKmlmNDJfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAzMSAvLyBpOiB1aW50NjQKCWIgKmZvcl81CgoqZm9yXzVfZW5kOgoKKmlmNDBfZW5kOgoKKmlmMzNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgzNwoJLy8gcm91bmRzTGVmdEluQmluID0gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlICsgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgLSBnbG9iYWxzLnJvdW5kCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSsKCWdsb2JhbCBSb3VuZAoJLQoJZnJhbWVfYnVyeSAzNiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGluY3JlYXNlZFN0YWtlCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCSsKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgzOQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0KCS8vICAgICAgIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMzYgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCgliKwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKGluY3JlYXNlZFN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQxCgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSArIGluY3JlYXNlZFN0YWtlCglieXRlIDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAicmV3YXJkQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ3CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlVXBkYXRlZFZpYVJld2FyZHM+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgIGluY3JlYXNlZFN0YWtlLAoJLy8gICAgICAgICB0b2tlblJld2FyZFBhaWRPdXQsCgkvLyAgICAgICAgIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0LAoJLy8gICAgICAgICBleGNlc3NUb0ZlZVNpbmssCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHg0MThmY2VmYyAvLyBtZXRob2QgInN0YWtlVXBkYXRlZFZpYVJld2FyZHMoKHVpbnQ2NCx1aW50NjQsdWludDY0KSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0OAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ5CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE3IC8vIGV4Y2Vzc1RvRmVlU2luazogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZ29PbmxpbmUocGF5LGJ5dGVbXSxieXRlW10sYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9nb09ubGluZToKCS8vIHZvdGVLZXlEaWx1dGlvbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglidG9pCgoJLy8gdm90ZUxhc3Q6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIHZvdGVGaXJzdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gc3RhdGVQcm9vZlBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gc2VsZWN0aW9uUEs6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyB2b3RlUEs6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBmZWVQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnQgMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCAyIC8vIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODUKCS8vIHZvdGVQSzogdm90ZVBLCglmcmFtZV9kaWcgLTIgLy8gdm90ZVBLOiBieXRlcwoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg2CgkvLyBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEsKCWZyYW1lX2RpZyAtMyAvLyBzZWxlY3Rpb25QSzogYnl0ZXMKCWl0eG5fZmllbGQgU2VsZWN0aW9uUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg3CgkvLyBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSwoJZnJhbWVfZGlnIC00IC8vIHN0YXRlUHJvb2ZQSzogYnl0ZXMKCWl0eG5fZmllbGQgU3RhdGVQcm9vZlBLCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4OAoJLy8gdm90ZUZpcnN0OiB2b3RlRmlyc3QKCWZyYW1lX2RpZyAtNSAvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg5CgkvLyB2b3RlTGFzdDogdm90ZUxhc3QKCWZyYW1lX2RpZyAtNiAvLyB2b3RlTGFzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg5MAoJLy8gdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24KCWZyYW1lX2RpZyAtNyAvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkxCgkvLyBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT2ZmbGluZSgpdm9pZAoqYWJpX3JvdXRlX2dvT2ZmbGluZToKCS8vIGV4ZWN1dGUgZ29PZmZsaW5lKCl2b2lkCgljYWxsc3ViIGdvT2ZmbGluZQoJaW50IDEKCXJldHVybgoKLy8gZ29PZmZsaW5lKCk6IHZvaWQKLy8KLy8gTWFya3MgYSBzdGFraW5nIHBvb2wga2V5IE9GRkxJTkUuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KZ29PZmZsaW5lOgoJcHJvdG8gMCAwCgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTAzCgkvLyB0aGlzLnR4bi5zZW5kZXIgIT09IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCSE9CglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA0CgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCippZjQ2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDcKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJcHVzaGludCAyIC8vIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50IDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCkKCWludGMgMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglwdXNoYnl0ZXMgMHg3NjY1NzI2OTY2Nzk1ZjZlNjY2NDVmNjE2NDY0NzIgLy8gInZlcmlmeV9uZmRfYWRkciIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE5CgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBvb2xLZXkpIGZvciBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gaXMgbWVhbnQgdG8gYmUgY2FsbGVkIGJ5IHBvb2xzICE9IDEgLSBjYWxsaW5nIFVTLCBwb29sICMxCi8vIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgd2UgYXJlIGluIGZhY3QgYmVpbmcgY2FsbGVkIGJ5IGFub3RoZXIgb2YgT1VSIHBvb2xzIChub3QgdXMpCi8vIGFuZCB0aGVuIHdlJ2xsIGNhbGwgdGhlIHZhbGlkYXRvciBvbiB0aGVpciBiZWhhbGYgdG8gdXBkYXRlIHRoZSB0b2tlbiBwYXlvdXRzCi8vIEBwYXJhbSBwb29sS2V5IC0gVmFsaWRhdG9yUG9vbEtleSB0dXBsZQpwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9ySWQudmFsdWUgPT09IHBvb2xLZXkuaWQsICdjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEnKQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzEKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ2NhbGxlZSBtdXN0IGJlIHBvb2wgMScpCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgoJLy8gY2FsbGVlIG11c3QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgIT09IDEsICdjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxJykKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCSE9CgoJLy8gY2FsbGVyIG11c3QgTk9UIGJlIHBvb2wgMQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNAoJLy8gY2FsbGVyUG9vbEFwcElEID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRQb29sQXBwSWQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3Bvb2xLZXkuaWQsIHBvb2xLZXkucG9vbElkXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDU3Mjc2N2QxIC8vIG1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4NGRmOGQ4NmUgLy8gbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzT3duZXJPck1hbmFnZXJDYWxsZXIoKTogYm9vbGVhbgppc093bmVyT3JNYW5hZ2VyQ2FsbGVyOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQ4CgkvLyBPd25lckFuZE1hbmFnZXIgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcj4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDJmYTIyYzRiIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTUwCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTUyCgkvLyByZXR1cm4gdGhpcy50eG4uc2VuZGVyID09PSBPd25lckFuZE1hbmFnZXJbMF0gfHwgdGhpcy50eG4uc2VuZGVyID09PSBPd25lckFuZE1hbmFnZXJbMV07Cgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBPd25lckFuZE1hbmFnZXI6IChhZGRyZXNzLGFkZHJlc3MpCglleHRyYWN0IDAgMzIKCT09CglkdXAKCWJueiAqc2tpcF9vcjIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCWV4dHJhY3QgMzIgMzIKCT09Cgl8fAoKKnNraXBfb3IyOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEZlZVNpbmsoKTogQWRkcmVzcwpnZXRGZWVTaW5rOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk1NgoJLy8gcmV0dXJuIHRoaXMuZmVlU2lua0FkZHI7CglieXRlYyAwIC8vIFRNUExfZmVlU2lua0FkZHIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjYKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTY4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRHb09ubGluZUZlZSgpOiB1aW50NjQKZ2V0R29PbmxpbmVGZWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NzUKCS8vIGlzT25saW5lID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaXNPbmxpbmU6IGJvb2wKCgkvLyAqaWY0N19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NzYKCS8vICFpc09ubGluZQoJZnJhbWVfZGlnIDAgLy8gaXNPbmxpbmU6IGJvb2wKCSEKCWJ6ICppZjQ3X2VuZAoKCS8vICppZjQ3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NzgKCS8vIHJldHVybiAyXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMAoJYiAqZ2V0R29PbmxpbmVGZWUqcmV0dXJuCgoqaWY0N19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTgwCgkvLyByZXR1cm4gMDsKCWludCAwCgoqZ2V0R29PbmxpbmVGZWUqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4NQoJLy8gcmV0dXJuIDJfMDAwXzAwMF8wMDBfMDAwXzAwMDsKCXB1c2hpbnQgMl8wMDBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIGNoZWNrSWZCaW5DbG9zZWQoKTogdm9pZAovLwovLyBDaGVja3MgaWYgdGhlIGN1cnJlbnQgcm91bmQgaXMgaW4gYSAnbmV3IGNhbGN1bGF0aW9uIGJpbicgKGFwcHJveGltYXRlbHkgZGFpbHkpCmNoZWNrSWZCaW5DbG9zZWQ6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MgoJLy8gY3VycmVudEJpblNpemUgPSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSBhcyB1aW50MTI4CglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MwoJLy8gZ2xvYmFscy5yb3VuZCA+PSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyAoY3VycmVudEJpblNpemUgYXMgdWludDY0KQoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglkdXAKCWJpdGxlbgoJaW50IDY0Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoJKwoJPj0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vICppZjQ5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NwoJLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOCA9IGN1cnJlbnRCaW5TaXplICogKDM2NSBhcyB1aW50MTI4KQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2ZAoJYioKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplICogKDM2NSBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAxIC8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTk4CgkvLyBhdmdTdGFrZTogdWludDEyOCA9IHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAvIGN1cnJlbnRCaW5TaXplCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC8gY3VycmVudEJpblNpemUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMiAvLyBhdmdTdGFrZTogdWludDEyOAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OQoJLy8gYXZnU3Rha2UgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWIhPQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMDMKCS8vIGFwcjogdWludDEyOCA9CgkvLyAgICAgICAgICAgKCgodGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSBhcyB1aW50MTI4KSAqICgxMDAwMCBhcyB1aW50MTI4KSkgLyBhdmdTdGFrZSkgKgoJLy8gICAgICAgICAgIChhcHByb3hSb3VuZHNQZXJZZWFyIC8gY3VycmVudEJpblNpemUpCglieXRlIDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAicmV3YXJkQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3MTAKCWIqCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJYi8KCWZyYW1lX2RpZyAxIC8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjgKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJYi8KCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAoKCh0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlIGFzIHVpbnQxMjgpICogKDEwMDAwIGFzIHVpbnQxMjgpKSAvIGF2Z1N0YWtlKSAqXG4gICAgICAgICAgKGFwcHJveFJvdW5kc1BlclllYXIgLyBjdXJyZW50QmluU2l6ZSkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMyAvLyBhcHI6IHVpbnQxMjgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAwNwoJLy8gYWxwaGE6IHVpbnQxMjggPSAxMCBhcyB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYQoJZnJhbWVfYnVyeSA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjUxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMDkKCS8vIGF2Z1N0YWtlID4gMzAwMDAwMDAwMDAwCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1ZDk2NGI4MDAKCWI+CglieiAqaWY1MV9lbmQKCgkvLyAqaWY1MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMAoJLy8gYWxwaGEgPSA5MCBhcyB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1YQoJZnJhbWVfYnVyeSA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoKKmlmNTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMTIKCS8vIHRoaXMud2VpZ2h0ZWRNb3ZpbmdBdmVyYWdlLnZhbHVlID0KCS8vICAgICAgICAgICAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICsKCS8vICAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KQoJYnl0ZSAweDY1Nzc2ZDYxIC8vICJld21hIgoJZHVwCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWItCgliKgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CgliLwoJZnJhbWVfZGlnIDMgLy8gYXByOiB1aW50MTI4CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWIqCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKCWIvCgliKwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gKHRoaXMud2VpZ2h0ZWRNb3ZpbmdBdmVyYWdlLnZhbHVlICogKCgxMDAgYXMgdWludDEyOCkgLSBhbHBoYSkpIC8gKDEwMCBhcyB1aW50MTI4KSArXG4gICAgICAgICAgKGFwciAqIGFscGhhKSAvICgxMDAgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoqaWY1MF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxOAoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxOQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gKHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIGFzIHVpbnQxMjgpICogKHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMjAKCS8vIHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgPSAwCglieXRlIDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAicmV3YXJkQWNjdW11bGF0b3IiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyMQoJLy8gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlID0gZ2xvYmFscy5yb3VuZCAtIChnbG9iYWxzLnJvdW5kICUgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUpCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglnbG9iYWwgUm91bmQKCWdsb2JhbCBSb3VuZAoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSUKCS0KCWFwcF9nbG9iYWxfcHV0CgoqaWY0OF9lbmQ6CglyZXRzdWIKCi8vIHNldFJvdW5kc1BlckRheSgpOiB2b2lkCnNldFJvdW5kc1BlckRheToKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDI2CgkvLyB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSA9IEFWR19ST1VORFNfUEVSX0RBWQoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJcHVzaGludCAzMDg1NwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDdjZmNjMDQgLy8gbWV0aG9kICJpbml0U3RvcmFnZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJcHVzaGJ5dGVzIDB4NDIxYjVhYmUgLy8gbWV0aG9kICJyZW1vdmVTdGFrZShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjU4OTJkNTYgLy8gbWV0aG9kICJjbGFpbVRva2Vucygpdm9pZCIKCXB1c2hieXRlcyAweDVjZmJiMDU3IC8vIG1ldGhvZCAiZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg2M2YzZjI4YiAvLyBtZXRob2QgInBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODZhMzcyNWMgLy8gbWV0aG9kICJ1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGVmYzI2MDhkIC8vIG1ldGhvZCAiZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDAwZTE0ZmIgLy8gbWV0aG9kICJnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDUxZWYzYjIxIC8vIG1ldGhvZCAiZ29PZmZsaW5lKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTI0ZTI3MTcgLy8gbWV0aG9kICJsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkIgoJYnl0ZSAweDBjMjI0NWUxIC8vIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/reti/artifacts/StakingPool.arc56_draft.json b/examples/reti/artifacts/StakingPool.arc56_draft.json index 9ea3c5ad4..4de1b48fc 100644 --- a/examples/reti/artifacts/StakingPool.arc56_draft.json +++ b/examples/reti/artifacts/StakingPool.arc56_draft.json @@ -500,18932 +500,384 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 38, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293 - ] - }, - { - "teal": 9, - "source": 38, - "pc": [ - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327 - ] - }, - { - "teal": 10, - "source": 38, - "pc": [ - 328, - 329 - ] - }, - { - "teal": 11, - "source": 38, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 12, - "source": 38, - "pc": [ - 332 - ] - }, - { - "teal": 13, - "source": 38, - "pc": [ - 333, - 334 - ] - }, - { - "teal": 20, - "source": 38, - "pc": [ - 335, - 336 - ] - }, - { - "teal": 21, - "source": 38, - "pc": [ - 337 - ] - }, - { - "teal": 22, - "source": 38, - "pc": [ - 338 - ] - }, - { - "teal": 23, - "source": 38, - "pc": [ - 339 - ] - }, - { - "teal": 24, - "source": 38, - "pc": [ - 340, - 341 - ] - }, - { - "teal": 25, - "source": 38, - "pc": [ - 342 - ] - }, - { - "teal": 26, - "source": 38, - "pc": [ - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368 - ] - }, - { - "teal": 30, - "source": 38, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 369 - ] - }, - { - "teal": 35, - "source": 93, - "pc": [ - 370, - 371, - 372 - ] - }, - { - "teal": 36, - "source": 93, - "pc": [ - 373 - ] - }, - { - "teal": 37, - "source": 93, - "pc": [ - 374 - ] - }, - { - "teal": 41, - "source": 93, - "pc": [ - 375, - 376, - 377 - ] - }, - { - "teal": 48, - "source": 95, - "pc": [ - 378, - 379 - ] - }, - { - "teal": 49, - "source": 95, - "pc": [ - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413 - ] - }, - { - "teal": 50, - "source": 95, - "pc": [ - 414 - ] - }, - { - "teal": 53, - "source": 94, - "errorMessage": "Temporary: contract is upgradeable but only during testing and only from a development account", - "pc": [ - 415 - ] - }, - { - "teal": 54, - "source": 93, - "pc": [ - 416 - ] - }, - { - "teal": 59, - "source": 107, - "pc": [ - 417, - 418, - 419 - ] - }, - { - "teal": 60, - "source": 107, - "pc": [ - 420 - ] - }, - { - "teal": 63, - "source": 107, - "pc": [ - 421, - 422, - 423 - ] - }, - { - "teal": 64, - "source": 107, - "pc": [ - 424 - ] - }, - { - "teal": 67, - "source": 107, - "pc": [ - 425, - 426, - 427 - ] - }, - { - "teal": 68, - "source": 107, - "pc": [ - 428 - ] - }, - { - "teal": 71, - "source": 107, - "pc": [ - 429, - 430, - 431 - ] - }, - { - "teal": 72, - "source": 107, - "pc": [ - 432 - ] - }, - { - "teal": 75, - "source": 107, - "pc": [ - 433, - 434, - 435 - ] - }, - { - "teal": 76, - "source": 107, - "pc": [ - 436 - ] - }, - { - "teal": 77, - "source": 107, - "pc": [ - 437 - ] - }, - { - "teal": 87, - "source": 107, - "pc": [ - 438, - 439, - 440 - ] - }, - { - "teal": 92, - "source": 108, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 93, - "source": 108, - "pc": [ - 443 - ] - }, - { - "teal": 94, - "source": 108, - "pc": [ - 444 - ] - }, - { - "teal": 95, - "source": 108, - "pc": [ - 445, - 446, - 447 - ] - }, - { - "teal": 100, - "source": 110, - "pc": [ - 448, - 449 - ] - }, - { - "teal": 101, - "source": 110, - "pc": [ - 450 - ] - }, - { - "teal": 102, - "source": 110, - "pc": [ - 451 - ] - }, - { - "teal": 103, - "source": 110, - "pc": [ - 452 - ] - }, - { - "teal": 107, - "source": 111, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 108, - "source": 111, - "pc": [ - 455 - ] - }, - { - "teal": 109, - "source": 111, - "pc": [ - 456 - ] - }, - { - "teal": 110, - "source": 111, - "pc": [ - 457 - ] - }, - { - "teal": 111, - "source": 108, - "pc": [ - 458, - 459, - 460 - ] - }, - { - "teal": 116, - "source": 113, - "pc": [ - 461, - 462 - ] - }, - { - "teal": 117, - "source": 113, - "pc": [ - 463 - ] - }, - { - "teal": 118, - "source": 113, - "pc": [ - 464 - ] - }, - { - "teal": 119, - "source": 113, - "pc": [ - 465 - ] - }, - { - "teal": 123, - "source": 114, - "pc": [ - 466, - 467 - ] - }, - { - "teal": 124, - "source": 114, - "pc": [ - 468 - ] - }, - { - "teal": 125, - "source": 114, - "pc": [ - 469 - ] - }, - { - "teal": 126, - "source": 114, - "pc": [ - 470 - ] - }, - { - "teal": 131, - "source": 116, - "pc": [ - 471, - 472 - ] - }, - { - "teal": 132, - "source": 116, - "pc": [ - 473, - 474 - ] - }, - { - "teal": 133, - "source": 116, - "pc": [ - 475 - ] - }, - { - "teal": 136, - "source": 116, - "errorMessage": "staking pool must have minimum entry of 1 algo", - "pc": [ - 476 - ] - }, - { - "teal": 140, - "source": 117, - "pc": [ - 477 - ] - }, - { - "teal": 141, - "source": 117, - "pc": [ - 478, - 479 - ] - }, - { - "teal": 142, - "source": 117, - "pc": [ - 480 - ] - }, - { - "teal": 146, - "source": 118, - "pc": [ - 481 - ] - }, - { - "teal": 147, - "source": 118, - "pc": [ - 482, - 483 - ] - }, - { - "teal": 148, - "source": 118, - "pc": [ - 484 - ] - }, - { - "teal": 152, - "source": 119, - "pc": [ - 485 - ] - }, - { - "teal": 153, - "source": 119, - "pc": [ - 486, - 487 - ] - }, - { - "teal": 154, - "source": 119, - "pc": [ - 488 - ] - }, - { - "teal": 158, - "source": 120, - "pc": [ - 489, - 490 - ] - }, - { - "teal": 159, - "source": 120, - "pc": [ - 491 - ] - }, - { - "teal": 160, - "source": 120, - "pc": [ - 492 - ] - }, - { - "teal": 164, - "source": 121, - "pc": [ - 493, - 494 - ] - }, - { - "teal": 165, - "source": 121, - "pc": [ - 495 - ] - }, - { - "teal": 166, - "source": 121, - "pc": [ - 496 - ] - }, - { - "teal": 170, - "source": 122, - "pc": [ - 497, - 498 - ] - }, - { - "teal": 171, - "source": 122, - "pc": [ - 499, - 500 - ] - }, - { - "teal": 172, - "source": 122, - "pc": [ - 501 - ] - }, - { - "teal": 176, - "source": 123, - "pc": [ - 502, - 503 - ] - }, - { - "teal": 177, - "source": 123, - "pc": [ - 504, - 505 - ] - }, - { - "teal": 178, - "source": 123, - "pc": [ - 506 - ] - }, - { - "teal": 182, - "source": 124, - "pc": [ - 507, - 508 - ] - }, - { - "teal": 183, - "source": 124, - "pc": [ - 509 - ] - }, - { - "teal": 184, - "source": 124, - "pc": [ - 510 - ] - }, - { - "teal": 188, - "source": 126, - "pc": [ - 511, - 512, - 513 - ] - }, - { - "teal": 192, - "source": 127, - "pc": [ - 514, - 515 - ] - }, - { - "teal": 193, - "source": 127, - "pc": [ - 516, - 517 - ] - }, - { - "teal": 194, - "source": 127, - "pc": [ - 518, - 519 - ] - }, - { - "teal": 195, - "source": 127, - "pc": [ - 520, - 521 - ] - }, - { - "teal": 196, - "source": 127, - "pc": [ - 522 - ] - }, - { - "teal": 197, - "source": 127, - "pc": [ - 523 - ] - }, - { - "teal": 198, - "source": 127, - "pc": [ - 524 - ] - }, - { - "teal": 199, - "source": 127, - "pc": [ - 525 - ] - }, - { - "teal": 203, - "source": 128, - "pc": [ - 526, - 527 - ] - }, - { - "teal": 204, - "source": 128, - "pc": [ - 528, - 529 - ] - }, - { - "teal": 205, - "source": 128, - "pc": [ - 530 - ] - }, - { - "teal": 209, - "source": 129, - "pc": [ - 531, - 532 - ] - }, - { - "teal": 210, - "source": 129, - "pc": [ - 533 - ] - }, - { - "teal": 211, - "source": 129, - "pc": [ - 534 - ] - }, - { - "teal": 215, - "source": 130, - "pc": [ - 535, - 536 - ] - }, - { - "teal": 216, - "source": 130, - "pc": [ - 537, - 538 - ] - }, - { - "teal": 217, - "source": 130, - "pc": [ - 539 - ] - }, - { - "teal": 218, - "source": 107, - "pc": [ - 540 - ] - }, - { - "teal": 223, - "source": 136, - "pc": [ - 541, - 542, - 543 - ] - }, - { - "teal": 224, - "source": 136, - "pc": [ - 544 - ] - }, - { - "teal": 225, - "source": 136, - "pc": [ - 545 - ] - }, - { - "teal": 231, - "source": 136, - "pc": [ - 546, - 547, - 548 - ] - }, - { - "teal": 232, - "source": 136, - "pc": [ - 549 - ] - }, - { - "teal": 236, - "source": 138, - "pc": [ - 550, - 551, - 552 - ] - }, - { - "teal": 240, - "source": 142, - "pc": [ - 553, - 554, - 555 - ] - }, - { - "teal": 241, - "source": 142, - "pc": [ - 556, - 557 - ] - }, - { - "teal": 242, - "source": 142, - "pc": [ - 558, - 559 - ] - }, - { - "teal": 243, - "source": 142, - "pc": [ - 560 - ] - }, - { - "teal": 244, - "source": 142, - "pc": [ - 561 - ] - }, - { - "teal": 245, - "source": 138, - "pc": [ - 562 - ] - }, - { - "teal": 250, - "source": 152, - "pc": [ - 563, - 564 - ] - }, - { - "teal": 251, - "source": 152, - "pc": [ - 565 - ] - }, - { - "teal": 252, - "source": 152, - "pc": [ - 566 - ] - }, - { - "teal": 253, - "source": 152, - "pc": [ - 567 - ] - }, - { - "teal": 254, - "source": 152, - "pc": [ - 568, - 569 - ] - }, - { - "teal": 255, - "source": 152, - "pc": [ - 570 - ] - }, - { - "teal": 256, - "source": 152, - "pc": [ - 571 - ] - }, - { - "teal": 259, - "source": 152, - "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", - "pc": [ - 572 - ] - }, - { - "teal": 262, - "source": 152, - "pc": [ - 573, - 574, - 575 - ] - }, - { - "teal": 263, - "source": 152, - "pc": [ - 576 - ] - }, - { - "teal": 264, - "source": 152, - "pc": [ - 577 - ] - }, - { - "teal": 274, - "source": 152, - "pc": [ - 578, - 579, - 580 - ] - }, - { - "teal": 277, - "source": 152, - "pc": [ - 581, - 582 - ] - }, - { - "teal": 278, - "source": 152, - "pc": [ - 583, - 584 - ] - }, - { - "teal": 282, - "source": 153, - "pc": [ - 585 - ] - }, - { - "teal": 283, - "source": 153, - "pc": [ - 586 - ] - }, - { - "teal": 284, - "source": 153, - "pc": [ - 587 - ] - }, - { - "teal": 285, - "source": 153, - "pc": [ - 588 - ] - }, - { - "teal": 286, - "source": 153, - "pc": [ - 589 - ] - }, - { - "teal": 289, - "source": 153, - "errorMessage": "staking pool already initialized", - "pc": [ - 590 - ] - }, - { - "teal": 296, - "source": 156, - "pc": [ - 591 - ] - }, - { - "teal": 297, - "source": 156, - "pc": [ - 592 - ] - }, - { - "teal": 298, - "source": 156, - "pc": [ - 593, - 594 - ] - }, - { - "teal": 299, - "source": 156, - "pc": [ - 595, - 596 - ] - }, - { - "teal": 300, - "source": 156, - "pc": [ - 597, - 598 - ] - }, - { - "teal": 304, - "source": 157, - "pc": [ - 599 - ] - }, - { - "teal": 305, - "source": 157, - "pc": [ - 600 - ] - }, - { - "teal": 306, - "source": 157, - "pc": [ - 601, - 602 - ] - }, - { - "teal": 310, - "source": 158, - "pc": [ - 603 - ] - }, - { - "teal": 311, - "source": 158, - "pc": [ - 604 - ] - }, - { - "teal": 312, - "source": 158, - "pc": [ - 605 - ] - }, - { - "teal": 313, - "source": 158, - "pc": [ - 606, - 607 - ] - }, - { - "teal": 316, - "source": 156, - "pc": [ - 608 - ] - }, - { - "teal": 317, - "source": 156, - "pc": [ - 609, - 610 - ] - }, - { - "teal": 320, - "source": 156, - "pc": [ - 611 - ] - }, - { - "teal": 321, - "source": 156, - "pc": [ - 612, - 613 - ] - }, - { - "teal": 322, - "source": 156, - "pc": [ - 614 - ] - }, - { - "teal": 323, - "source": 156, - "pc": [ - 615 - ] - }, - { - "teal": 324, - "source": 156, - "pc": [ - 616, - 617 - ] - }, - { - "teal": 325, - "source": 156, - "pc": [ - 618, - 619, - 620 - ] - }, - { - "teal": 326, - "source": 156, - "pc": [ - 621, - 622 - ] - }, - { - "teal": 330, - "source": 160, - "pc": [ - 623, - 624 - ] - }, - { - "teal": 331, - "source": 160, - "pc": [ - 625, - 626, - 627 - ] - }, - { - "teal": 332, - "source": 160, - "pc": [ - 628 - ] - }, - { - "teal": 333, - "source": 160, - "pc": [ - 629 - ] - }, - { - "teal": 334, - "source": 160, - "pc": [ - 630 - ] - }, - { - "teal": 335, - "source": 160, - "pc": [ - 631, - 632 - ] - }, - { - "teal": 339, - "source": 161, - "pc": [ - 633, - 634 - ] - }, - { - "teal": 340, - "source": 161, - "pc": [ - 635 - ] - }, - { - "teal": 341, - "source": 161, - "pc": [ - 636, - 637, - 638 - ] - }, - { - "teal": 342, - "source": 161, - "pc": [ - 639 - ] - }, - { - "teal": 343, - "source": 161, - "pc": [ - 640 - ] - }, - { - "teal": 344, - "source": 161, - "pc": [ - 641 - ] - }, - { - "teal": 345, - "source": 161, - "pc": [ - 642 - ] - }, - { - "teal": 346, - "source": 161, - "pc": [ - 643 - ] - }, - { - "teal": 349, - "source": 161, - "pc": [ - 644, - 645, - 646 - ] - }, - { - "teal": 350, - "source": 161, - "pc": [ - 647, - 648 - ] - }, - { - "teal": 351, - "source": 161, - "pc": [ - 649, - 650, - 651 - ] - }, - { - "teal": 354, - "source": 161, - "pc": [ - 652 - ] - }, - { - "teal": 357, - "source": 161, - "pc": [ - 653, - 654 - ] - }, - { - "teal": 364, - "source": 163, - "pc": [ - 655, - 656 - ] - }, - { - "teal": 365, - "source": 164, - "pc": [ - 657, - 658 - ] - }, - { - "teal": 366, - "source": 163, - "pc": [ - 659 - ] - }, - { - "teal": 367, - "source": 165, - "pc": [ - 660, - 661, - 662 - ] - }, - { - "teal": 368, - "source": 165, - "pc": [ - 663, - 664, - 665 - ] - }, - { - "teal": 369, - "source": 164, - "pc": [ - 666 - ] - }, - { - "teal": 370, - "source": 162, - "pc": [ - 667, - 668 - ] - }, - { - "teal": 375, - "source": 168, - "pc": [ - 669, - 670 - ] - }, - { - "teal": 376, - "source": 168, - "pc": [ - 671, - 672 - ] - }, - { - "teal": 377, - "source": 168, - "pc": [ - 673, - 674 - ] - }, - { - "teal": 378, - "source": 168, - "pc": [ - 675 - ] - }, - { - "teal": 381, - "source": 168, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 676 - ] - }, - { - "teal": 384, - "source": 168, - "pc": [ - 677, - 678 - ] - }, - { - "teal": 385, - "source": 168, - "pc": [ - 679, - 680 - ] - }, - { - "teal": 386, - "source": 168, - "pc": [ - 681, - 682 - ] - }, - { - "teal": 387, - "source": 168, - "pc": [ - 683 - ] - }, - { - "teal": 390, - "source": 168, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", - "pc": [ - 684 - ] - }, - { - "teal": 394, - "source": 169, - "pc": [ - 685 - ] - }, - { - "teal": 395, - "source": 169, - "pc": [ - 686, - 687, - 688 - ] - }, - { - "teal": 396, - "source": 169, - "pc": [ - 689 - ] - }, - { - "teal": 397, - "source": 169, - "pc": [ - 690 - ] - }, - { - "teal": 402, - "source": 171, - "pc": [ - 691, - 692 - ] - }, - { - "teal": 403, - "source": 171, - "pc": [ - 693 - ] - }, - { - "teal": 404, - "source": 171, - "pc": [ - 694, - 695, - 696 - ] - }, - { - "teal": 405, - "source": 171, - "pc": [ - 697 - ] - }, - { - "teal": 406, - "source": 171, - "pc": [ - 698 - ] - }, - { - "teal": 407, - "source": 171, - "pc": [ - 699 - ] - }, - { - "teal": 408, - "source": 171, - "pc": [ - 700 - ] - }, - { - "teal": 409, - "source": 171, - "pc": [ - 701 - ] - }, - { - "teal": 412, - "source": 171, - "pc": [ - 702, - 703, - 704 - ] - }, - { - "teal": 421, - "source": 173, - "pc": [ - 705 - ] - }, - { - "teal": 422, - "source": 173, - "pc": [ - 706, - 707 - ] - }, - { - "teal": 423, - "source": 173, - "pc": [ - 708, - 709 - ] - }, - { - "teal": 427, - "source": 174, - "pc": [ - 710, - 711 - ] - }, - { - "teal": 428, - "source": 174, - "pc": [ - 712, - 713, - 714 - ] - }, - { - "teal": 429, - "source": 174, - "pc": [ - 715 - ] - }, - { - "teal": 430, - "source": 174, - "pc": [ - 716, - 717 - ] - }, - { - "teal": 434, - "source": 175, - "pc": [ - 718, - 719 - ] - }, - { - "teal": 435, - "source": 175, - "pc": [ - 720, - 721 - ] - }, - { - "teal": 439, - "source": 176, - "pc": [ - 722 - ] - }, - { - "teal": 440, - "source": 176, - "pc": [ - 723, - 724 - ] - }, - { - "teal": 443, - "source": 173, - "pc": [ - 725 - ] - }, - { - "teal": 444, - "source": 173, - "pc": [ - 726, - 727 - ] - }, - { - "teal": 447, - "source": 173, - "pc": [ - 728 - ] - }, - { - "teal": 450, - "source": 152, - "pc": [ - 729 - ] - }, - { - "teal": 455, - "source": 191, - "pc": [ - 730, - 731 - ] - }, - { - "teal": 458, - "source": 191, - "pc": [ - 732, - 733, - 734 - ] - }, - { - "teal": 459, - "source": 191, - "pc": [ - 735 - ] - }, - { - "teal": 460, - "source": 191, - "pc": [ - 736 - ] - }, - { - "teal": 461, - "source": 191, - "pc": [ - 737, - 738 - ] - }, - { - "teal": 462, - "source": 191, - "pc": [ - 739 - ] - }, - { - "teal": 465, - "source": 191, - "errorMessage": "argument 0 (staker) for addStake must be a address", - "pc": [ - 740 - ] - }, - { - "teal": 468, - "source": 191, - "pc": [ - 741, - 742 - ] - }, - { - "teal": 469, - "source": 191, - "pc": [ - 743 - ] - }, - { - "teal": 470, - "source": 191, - "pc": [ - 744 - ] - }, - { - "teal": 471, - "source": 191, - "pc": [ - 745 - ] - }, - { - "teal": 472, - "source": 191, - "pc": [ - 746, - 747 - ] - }, - { - "teal": 473, - "source": 191, - "pc": [ - 748 - ] - }, - { - "teal": 474, - "source": 191, - "pc": [ - 749 - ] - }, - { - "teal": 477, - "source": 191, - "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", - "pc": [ - 750 - ] - }, - { - "teal": 480, - "source": 191, - "pc": [ - 751, - 752, - 753 - ] - }, - { - "teal": 481, - "source": 191, - "pc": [ - 754 - ] - }, - { - "teal": 482, - "source": 191, - "pc": [ - 755 - ] - }, - { - "teal": 483, - "source": 191, - "pc": [ - 756 - ] - }, - { - "teal": 484, - "source": 191, - "pc": [ - 757 - ] - }, - { - "teal": 485, - "source": 191, - "pc": [ - 758 - ] - }, - { - "teal": 498, - "source": 191, - "pc": [ - 759, - 760, - 761 - ] - }, - { - "teal": 501, - "source": 191, - "pc": [ - 762, - 763 - ] - }, - { - "teal": 502, - "source": 191, - "pc": [ - 764, - 765 - ] - }, - { - "teal": 506, - "source": 192, - "pc": [ - 766 - ] - }, - { - "teal": 507, - "source": 192, - "pc": [ - 767 - ] - }, - { - "teal": 508, - "source": 192, - "pc": [ - 768 - ] - }, - { - "teal": 509, - "source": 192, - "pc": [ - 769 - ] - }, - { - "teal": 512, - "source": 192, - "errorMessage": "staking pool must be initialized first", - "pc": [ - 770 - ] - }, - { - "teal": 519, - "source": 196, - "pc": [ - 771, - 772 - ] - }, - { - "teal": 520, - "source": 196, - "pc": [ - 773 - ] - }, - { - "teal": 521, - "source": 196, - "pc": [ - 774 - ] - }, - { - "teal": 522, - "source": 196, - "pc": [ - 775, - 776 - ] - }, - { - "teal": 523, - "source": 196, - "pc": [ - 777 - ] - }, - { - "teal": 524, - "source": 196, - "pc": [ - 778 - ] - }, - { - "teal": 527, - "source": 195, - "errorMessage": "stake can only be added via the validator contract", - "pc": [ - 779 - ] - }, - { - "teal": 531, - "source": 199, - "pc": [ - 780, - 781 - ] - }, - { - "teal": 532, - "source": 199, - "pc": [ - 782, - 783 - ] - }, - { - "teal": 533, - "source": 199, - "pc": [ - 784 - ] - }, - { - "teal": 534, - "source": 199, - "pc": [ - 785 - ] - }, - { - "teal": 538, - "source": 202, - "pc": [ - 786, - 787, - 788 - ] - }, - { - "teal": 547, - "source": 206, - "pc": [ - 789, - 790 - ] - }, - { - "teal": 548, - "source": 207, - "pc": [ - 791, - 792 - ] - }, - { - "teal": 549, - "source": 207, - "pc": [ - 793 - ] - }, - { - "teal": 550, - "source": 207, - "pc": [ - 794 - ] - }, - { - "teal": 551, - "source": 207, - "pc": [ - 795, - 796 - ] - }, - { - "teal": 552, - "source": 207, - "pc": [ - 797 - ] - }, - { - "teal": 553, - "source": 207, - "pc": [ - 798 - ] - }, - { - "teal": 556, - "source": 207, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", - "pc": [ - 799 - ] - }, - { - "teal": 559, - "source": 206, - "pc": [ - 800, - 801 - ] - }, - { - "teal": 560, - "source": 208, - "pc": [ - 802, - 803 - ] - }, - { - "teal": 561, - "source": 208, - "pc": [ - 804, - 805 - ] - }, - { - "teal": 562, - "source": 208, - "pc": [ - 806 - ] - }, - { - "teal": 565, - "source": 208, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 807 - ] - }, - { - "teal": 568, - "source": 206, - "pc": [ - 808, - 809 - ] - }, - { - "teal": 569, - "source": 209, - "pc": [ - 810, - 811 - ] - }, - { - "teal": 570, - "source": 209, - "pc": [ - 812, - 813 - ] - }, - { - "teal": 571, - "source": 209, - "pc": [ - 814, - 815 - ] - }, - { - "teal": 572, - "source": 209, - "pc": [ - 816 - ] - }, - { - "teal": 575, - "source": 209, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", - "pc": [ - 817 - ] - }, - { - "teal": 579, - "source": 215, - "pc": [ - 818, - 819 - ] - }, - { - "teal": 580, - "source": 215, - "pc": [ - 820, - 821, - 822 - ] - }, - { - "teal": 581, - "source": 215, - "pc": [ - 823 - ] - }, - { - "teal": 582, - "source": 215, - "pc": [ - 824, - 825 - ] - }, - { - "teal": 586, - "source": 216, - "pc": [ - 826 - ] - }, - { - "teal": 587, - "source": 216, - "pc": [ - 827, - 828 - ] - }, - { - "teal": 591, - "source": 218, - "pc": [ - 829, - 830 - ] - }, - { - "teal": 592, - "source": 218, - "pc": [ - 831 - ] - }, - { - "teal": 593, - "source": 218, - "pc": [ - 832, - 833 - ] - }, - { - "teal": 594, - "source": 218, - "pc": [ - 834, - 835 - ] - }, - { - "teal": 595, - "source": 218, - "pc": [ - 836 - ] - }, - { - "teal": 596, - "source": 218, - "pc": [ - 837, - 838 - ] - }, - { - "teal": 597, - "source": 218, - "pc": [ - 839 - ] - }, - { - "teal": 598, - "source": 218, - "pc": [ - 840 - ] - }, - { - "teal": 602, - "source": 220, - "pc": [ - 841, - 842 - ] - }, - { - "teal": 603, - "source": 220, - "pc": [ - 843 - ] - }, - { - "teal": 604, - "source": 220, - "pc": [ - 844, - 845 - ] - }, - { - "teal": 605, - "source": 220, - "pc": [ - 846 - ] - }, - { - "teal": 606, - "source": 220, - "pc": [ - 847 - ] - }, - { - "teal": 607, - "source": 220, - "pc": [ - 848, - 849 - ] - }, - { - "teal": 608, - "source": 220, - "pc": [ - 850 - ] - }, - { - "teal": 609, - "source": 220, - "pc": [ - 851, - 852 - ] - }, - { - "teal": 614, - "source": 221, - "pc": [ - 853, - 854 - ] - }, - { - "teal": 615, - "source": 221, - "pc": [ - 855 - ] - }, - { - "teal": 616, - "source": 222, - "pc": [ - 856 - ] - }, - { - "teal": 617, - "source": 222, - "pc": [ - 857, - 858 - ] - }, - { - "teal": 618, - "source": 222, - "pc": [ - 859, - 860 - ] - }, - { - "teal": 619, - "source": 222, - "pc": [ - 861 - ] - }, - { - "teal": 620, - "source": 222, - "pc": [ - 862, - 863 - ] - }, - { - "teal": 621, - "source": 222, - "pc": [ - 864 - ] - }, - { - "teal": 622, - "source": 222, - "pc": [ - 865 - ] - }, - { - "teal": 623, - "source": 222, - "pc": [ - 866 - ] - }, - { - "teal": 624, - "source": 222, - "pc": [ - 867 - ] - }, - { - "teal": 625, - "source": 222, - "pc": [ - 868 - ] - }, - { - "teal": 626, - "source": 222, - "pc": [ - 869, - 870 - ] - }, - { - "teal": 627, - "source": 222, - "pc": [ - 871 - ] - }, - { - "teal": 630, - "source": 222, - "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", - "pc": [ - 872 - ] - }, - { - "teal": 631, - "source": 222, - "pc": [ - 873, - 874 - ] - }, - { - "teal": 632, - "source": 222, - "pc": [ - 875 - ] - }, - { - "teal": 633, - "source": 222, - "pc": [ - 876 - ] - }, - { - "teal": 634, - "source": 222, - "pc": [ - 877 - ] - }, - { - "teal": 635, - "source": 222, - "pc": [ - 878 - ] - }, - { - "teal": 636, - "source": 222, - "pc": [ - 879, - 880 - ] - }, - { - "teal": 637, - "source": 222, - "pc": [ - 881 - ] - }, - { - "teal": 638, - "source": 222, - "pc": [ - 882 - ] - }, - { - "teal": 639, - "source": 222, - "pc": [ - 883 - ] - }, - { - "teal": 640, - "source": 221, - "pc": [ - 884 - ] - }, - { - "teal": 644, - "source": 225, - "pc": [ - 885 - ] - }, - { - "teal": 645, - "source": 225, - "pc": [ - 886, - 887 - ] - }, - { - "teal": 650, - "source": 225, - "pc": [ - 888, - 889 - ] - }, - { - "teal": 651, - "source": 225, - "pc": [ - 890, - 891 - ] - }, - { - "teal": 652, - "source": 225, - "pc": [ - 892 - ] - }, - { - "teal": 653, - "source": 225, - "pc": [ - 893, - 894, - 895 - ] - }, - { - "teal": 658, - "source": 226, - "pc": [ - 896, - 897 - ] - }, - { - "teal": 659, - "source": 226, - "pc": [ - 898, - 899 - ] - }, - { - "teal": 660, - "source": 226, - "pc": [ - 900 - ] - }, - { - "teal": 661, - "source": 226, - "pc": [ - 901, - 902, - 903 - ] - }, - { - "teal": 666, - "source": 227, - "pc": [ - 904 - ] - }, - { - "teal": 667, - "source": 227, - "pc": [ - 905 - ] - }, - { - "teal": 668, - "source": 227, - "pc": [ - 906, - 907 - ] - }, - { - "teal": 669, - "source": 227, - "pc": [ - 908 - ] - }, - { - "teal": 670, - "source": 227, - "pc": [ - 909, - 910 - ] - }, - { - "teal": 671, - "source": 227, - "pc": [ - 911, - 912 - ] - }, - { - "teal": 672, - "source": 227, - "pc": [ - 913 - ] - }, - { - "teal": 673, - "source": 227, - "pc": [ - 914, - 915 - ] - }, - { - "teal": 674, - "source": 227, - "pc": [ - 916, - 917 - ] - }, - { - "teal": 675, - "source": 227, - "pc": [ - 918, - 919 - ] - }, - { - "teal": 676, - "source": 227, - "pc": [ - 920, - 921 - ] - }, - { - "teal": 677, - "source": 227, - "pc": [ - 922 - ] - }, - { - "teal": 682, - "source": 229, - "pc": [ - 923, - 924 - ] - }, - { - "teal": 683, - "source": 229, - "pc": [ - 925 - ] - }, - { - "teal": 684, - "source": 229, - "pc": [ - 926 - ] - }, - { - "teal": 685, - "source": 229, - "pc": [ - 927 - ] - }, - { - "teal": 686, - "source": 229, - "pc": [ - 928 - ] - }, - { - "teal": 687, - "source": 229, - "pc": [ - 929, - 930 - ] - }, - { - "teal": 688, - "source": 229, - "pc": [ - 931 - ] - }, - { - "teal": 689, - "source": 229, - "pc": [ - 932, - 933 - ] - }, - { - "teal": 694, - "source": 230, - "pc": [ - 934, - 935 - ] - }, - { - "teal": 695, - "source": 230, - "pc": [ - 936, - 937, - 938 - ] - }, - { - "teal": 696, - "source": 230, - "pc": [ - 939, - 940 - ] - }, - { - "teal": 697, - "source": 230, - "pc": [ - 941 - ] - }, - { - "teal": 698, - "source": 230, - "pc": [ - 942, - 943, - 944 - ] - }, - { - "teal": 703, - "source": 232, - "pc": [ - 945, - 946 - ] - }, - { - "teal": 704, - "source": 232, - "pc": [ - 947, - 948 - ] - }, - { - "teal": 705, - "source": 232, - "pc": [ - 949, - 950 - ] - }, - { - "teal": 706, - "source": 232, - "pc": [ - 951, - 952, - 953 - ] - }, - { - "teal": 707, - "source": 232, - "pc": [ - 954 - ] - }, - { - "teal": 708, - "source": 232, - "pc": [ - 955, - 956 - ] - }, - { - "teal": 709, - "source": 232, - "pc": [ - 957, - 958 - ] - }, - { - "teal": 710, - "source": 232, - "pc": [ - 959 - ] - }, - { - "teal": 711, - "source": 232, - "pc": [ - 960 - ] - }, - { - "teal": 712, - "source": 232, - "pc": [ - 961 - ] - }, - { - "teal": 713, - "source": 232, - "pc": [ - 962, - 963 - ] - }, - { - "teal": 717, - "source": 233, - "pc": [ - 964, - 965 - ] - }, - { - "teal": 718, - "source": 233, - "pc": [ - 966, - 967 - ] - }, - { - "teal": 719, - "source": 233, - "pc": [ - 968, - 969 - ] - }, - { - "teal": 720, - "source": 233, - "pc": [ - 970 - ] - }, - { - "teal": 721, - "source": 233, - "pc": [ - 971 - ] - }, - { - "teal": 722, - "source": 233, - "pc": [ - 972, - 973 - ] - }, - { - "teal": 726, - "source": 236, - "pc": [ - 974, - 975 - ] - }, - { - "teal": 727, - "source": 236, - "pc": [ - 976 - ] - }, - { - "teal": 728, - "source": 236, - "pc": [ - 977 - ] - }, - { - "teal": 729, - "source": 236, - "pc": [ - 978, - 979 - ] - }, - { - "teal": 730, - "source": 236, - "pc": [ - 980 - ] - }, - { - "teal": 731, - "source": 236, - "pc": [ - 981, - 982 - ] - }, - { - "teal": 732, - "source": 236, - "pc": [ - 983 - ] - }, - { - "teal": 736, - "source": 238, - "pc": [ - 984, - 985 - ] - }, - { - "teal": 737, - "source": 238, - "pc": [ - 986, - 987, - 988 - ] - }, - { - "teal": 743, - "source": 240, - "pc": [ - 989, - 990 - ] - }, - { - "teal": 744, - "source": 240, - "pc": [ - 991 - ] - }, - { - "teal": 745, - "source": 240, - "pc": [ - 992 - ] - }, - { - "teal": 746, - "source": 240, - "pc": [ - 993 - ] - }, - { - "teal": 747, - "source": 240, - "pc": [ - 994, - 995, - 996 - ] - }, - { - "teal": 748, - "source": 240, - "pc": [ - 997, - 998 - ] - }, - { - "teal": 749, - "source": 240, - "pc": [ - 999, - 1000, - 1001 - ] - }, - { - "teal": 750, - "source": 240, - "pc": [ - 1002, - 1003 - ] - }, - { - "teal": 751, - "source": 240, - "pc": [ - 1004 - ] - }, - { - "teal": 752, - "source": 240, - "pc": [ - 1005 - ] - }, - { - "teal": 755, - "source": 240, - "pc": [ - 1006, - 1007, - 1008 - ] - }, - { - "teal": 760, - "source": 241, - "pc": [ - 1009, - 1010 - ] - }, - { - "teal": 761, - "source": 241, - "pc": [ - 1011 - ] - }, - { - "teal": 762, - "source": 241, - "pc": [ - 1012 - ] - }, - { - "teal": 763, - "source": 241, - "pc": [ - 1013, - 1014 - ] - }, - { - "teal": 770, - "source": 225, - "pc": [ - 1015, - 1016 - ] - }, - { - "teal": 771, - "source": 225, - "pc": [ - 1017 - ] - }, - { - "teal": 772, - "source": 225, - "pc": [ - 1018 - ] - }, - { - "teal": 773, - "source": 225, - "pc": [ - 1019, - 1020 - ] - }, - { - "teal": 774, - "source": 225, - "pc": [ - 1021, - 1022, - 1023 - ] - }, - { - "teal": 780, - "source": 245, - "pc": [ - 1024, - 1025 - ] - }, - { - "teal": 781, - "source": 245, - "pc": [ - 1026 - ] - }, - { - "teal": 782, - "source": 245, - "pc": [ - 1027 - ] - }, - { - "teal": 783, - "source": 245, - "pc": [ - 1028, - 1029, - 1030 - ] - }, - { - "teal": 787, - "source": 247, - "errorMessage": "Staking pool full", - "pc": [ - 1031 - ] - }, - { - "teal": 792, - "source": 252, - "pc": [ - 1032, - 1033 - ] - }, - { - "teal": 793, - "source": 252, - "pc": [ - 1034, - 1035 - ] - }, - { - "teal": 794, - "source": 252, - "pc": [ - 1036, - 1037 - ] - }, - { - "teal": 795, - "source": 252, - "pc": [ - 1038 - ] - }, - { - "teal": 796, - "source": 252, - "pc": [ - 1039 - ] - }, - { - "teal": 799, - "source": 252, - "errorMessage": "must stake at least the minimum for this pool", - "pc": [ - 1040 - ] - }, - { - "teal": 803, - "source": 254, - "pc": [ - 1041, - 1042 - ] - }, - { - "teal": 804, - "source": 254, - "pc": [ - 1043 - ] - }, - { - "teal": 805, - "source": 254, - "pc": [ - 1044 - ] - }, - { - "teal": 806, - "source": 254, - "pc": [ - 1045 - ] - }, - { - "teal": 807, - "source": 254, - "pc": [ - 1046 - ] - }, - { - "teal": 808, - "source": 254, - "pc": [ - 1047 - ] - }, - { - "teal": 809, - "source": 254, - "pc": [ - 1048 - ] - }, - { - "teal": 810, - "source": 254, - "pc": [ - 1049, - 1050 - ] - }, - { - "teal": 811, - "source": 254, - "pc": [ - 1051 - ] - }, - { - "teal": 812, - "source": 254, - "pc": [ - 1052, - 1053 - ] - }, - { - "teal": 813, - "source": 254, - "pc": [ - 1054 - ] - }, - { - "teal": 814, - "source": 254, - "pc": [ - 1055, - 1056 - ] - }, - { - "teal": 815, - "source": 254, - "pc": [ - 1057 - ] - }, - { - "teal": 816, - "source": 254, - "pc": [ - 1058 - ] - }, - { - "teal": 826, - "source": 255, - "pc": [ - 1059, - 1060 - ] - }, - { - "teal": 827, - "source": 255, - "pc": [ - 1061 - ] - }, - { - "teal": 828, - "source": 255, - "pc": [ - 1062 - ] - }, - { - "teal": 829, - "source": 255, - "pc": [ - 1063 - ] - }, - { - "teal": 830, - "source": 255, - "pc": [ - 1064 - ] - }, - { - "teal": 831, - "source": 256, - "pc": [ - 1065, - 1066 - ] - }, - { - "teal": 832, - "source": 257, - "pc": [ - 1067, - 1068 - ] - }, - { - "teal": 833, - "source": 257, - "pc": [ - 1069, - 1070 - ] - }, - { - "teal": 834, - "source": 257, - "pc": [ - 1071 - ] - }, - { - "teal": 835, - "source": 257, - "pc": [ - 1072 - ] - }, - { - "teal": 836, - "source": 258, - "pc": [ - 1073, - 1074 - ] - }, - { - "teal": 837, - "source": 258, - "pc": [ - 1075 - ] - }, - { - "teal": 838, - "source": 259, - "pc": [ - 1076, - 1077 - ] - }, - { - "teal": 839, - "source": 259, - "pc": [ - 1078 - ] - }, - { - "teal": 840, - "source": 260, - "pc": [ - 1079, - 1080 - ] - }, - { - "teal": 841, - "source": 260, - "pc": [ - 1081 - ] - }, - { - "teal": 842, - "source": 260, - "pc": [ - 1082 - ] - }, - { - "teal": 843, - "source": 255, - "pc": [ - 1083 - ] - }, - { - "teal": 844, - "source": 255, - "pc": [ - 1084, - 1085 - ] - }, - { - "teal": 845, - "source": 255, - "pc": [ - 1086 - ] - }, - { - "teal": 849, - "source": 262, - "pc": [ - 1087, - 1088 - ] - }, - { - "teal": 850, - "source": 262, - "pc": [ - 1089 - ] - }, - { - "teal": 851, - "source": 262, - "pc": [ - 1090 - ] - }, - { - "teal": 852, - "source": 262, - "pc": [ - 1091 - ] - }, - { - "teal": 853, - "source": 262, - "pc": [ - 1092, - 1093 - ] - }, - { - "teal": 854, - "source": 262, - "pc": [ - 1094 - ] - }, - { - "teal": 855, - "source": 262, - "pc": [ - 1095 - ] - }, - { - "teal": 859, - "source": 263, - "pc": [ - 1096, - 1097 - ] - }, - { - "teal": 863, - "source": 191, - "pc": [ - 1098, - 1099 - ] - }, - { - "teal": 866, - "source": 191, - "pc": [ - 1100, - 1101 - ] - }, - { - "teal": 867, - "source": 191, - "pc": [ - 1102 - ] - }, - { - "teal": 872, - "source": 277, - "pc": [ - 1103, - 1104, - 1105 - ] - }, - { - "teal": 873, - "source": 277, - "pc": [ - 1106 - ] - }, - { - "teal": 876, - "source": 277, - "pc": [ - 1107, - 1108, - 1109 - ] - }, - { - "teal": 877, - "source": 277, - "pc": [ - 1110 - ] - }, - { - "teal": 878, - "source": 277, - "pc": [ - 1111 - ] - }, - { - "teal": 879, - "source": 277, - "pc": [ - 1112, - 1113 - ] - }, - { - "teal": 880, - "source": 277, - "pc": [ - 1114 - ] - }, - { - "teal": 883, - "source": 277, - "errorMessage": "argument 1 (staker) for removeStake must be a address", - "pc": [ - 1115 - ] - }, - { - "teal": 886, - "source": 277, - "pc": [ - 1116, - 1117, - 1118 - ] - }, - { - "teal": 887, - "source": 277, - "pc": [ - 1119 - ] - }, - { - "teal": 888, - "source": 277, - "pc": [ - 1120 - ] - }, - { - "teal": 902, - "source": 277, - "pc": [ - 1121, - 1122, - 1123 - ] - }, - { - "teal": 905, - "source": 277, - "pc": [ - 1124, - 1125 - ] - }, - { - "teal": 906, - "source": 277, - "pc": [ - 1126, - 1127 - ] - }, - { - "teal": 911, - "source": 280, - "pc": [ - 1128, - 1129 - ] - }, - { - "teal": 912, - "source": 280, - "pc": [ - 1130, - 1131 - ] - }, - { - "teal": 913, - "source": 280, - "pc": [ - 1132 - ] - }, - { - "teal": 914, - "source": 280, - "pc": [ - 1133, - 1134, - 1135 - ] - }, - { - "teal": 922, - "source": 282, - "pc": [ - 1136, - 1137, - 1138 - ] - }, - { - "teal": 925, - "source": 281, - "errorMessage": "If staker is not sender in removeStake call, then sender MUST be owner or manager of validator", - "pc": [ - 1139 - ] - }, - { - "teal": 930, - "source": 287, - "pc": [ - 1140, - 1141, - 1142 - ] - }, - { - "teal": 934, - "source": 289, - "pc": [ - 1143 - ] - }, - { - "teal": 935, - "source": 289, - "pc": [ - 1144, - 1145 - ] - }, - { - "teal": 940, - "source": 289, - "pc": [ - 1146, - 1147 - ] - }, - { - "teal": 941, - "source": 289, - "pc": [ - 1148, - 1149 - ] - }, - { - "teal": 942, - "source": 289, - "pc": [ - 1150 - ] - }, - { - "teal": 943, - "source": 289, - "pc": [ - 1151, - 1152, - 1153 - ] - }, - { - "teal": 948, - "source": 290, - "pc": [ - 1154, - 1155 - ] - }, - { - "teal": 949, - "source": 290, - "pc": [ - 1156, - 1157 - ] - }, - { - "teal": 950, - "source": 290, - "pc": [ - 1158 - ] - }, - { - "teal": 951, - "source": 290, - "pc": [ - 1159, - 1160, - 1161 - ] - }, - { - "teal": 956, - "source": 291, - "pc": [ - 1162 - ] - }, - { - "teal": 957, - "source": 291, - "pc": [ - 1163 - ] - }, - { - "teal": 958, - "source": 291, - "pc": [ - 1164, - 1165 - ] - }, - { - "teal": 959, - "source": 291, - "pc": [ - 1166 - ] - }, - { - "teal": 960, - "source": 291, - "pc": [ - 1167, - 1168 - ] - }, - { - "teal": 961, - "source": 291, - "pc": [ - 1169, - 1170 - ] - }, - { - "teal": 962, - "source": 291, - "pc": [ - 1171 - ] - }, - { - "teal": 963, - "source": 291, - "pc": [ - 1172, - 1173 - ] - }, - { - "teal": 964, - "source": 291, - "pc": [ - 1174, - 1175 - ] - }, - { - "teal": 965, - "source": 291, - "pc": [ - 1176, - 1177 - ] - }, - { - "teal": 966, - "source": 291, - "pc": [ - 1178, - 1179 - ] - }, - { - "teal": 967, - "source": 291, - "pc": [ - 1180 - ] - }, - { - "teal": 972, - "source": 293, - "pc": [ - 1181, - 1182 - ] - }, - { - "teal": 973, - "source": 293, - "pc": [ - 1183 - ] - }, - { - "teal": 974, - "source": 293, - "pc": [ - 1184 - ] - }, - { - "teal": 975, - "source": 293, - "pc": [ - 1185 - ] - }, - { - "teal": 976, - "source": 293, - "pc": [ - 1186 - ] - }, - { - "teal": 977, - "source": 293, - "pc": [ - 1187, - 1188 - ] - }, - { - "teal": 978, - "source": 293, - "pc": [ - 1189 - ] - }, - { - "teal": 979, - "source": 293, - "pc": [ - 1190, - 1191 - ] - }, - { - "teal": 984, - "source": 294, - "pc": [ - 1192, - 1193 - ] - }, - { - "teal": 985, - "source": 294, - "pc": [ - 1194, - 1195, - 1196 - ] - }, - { - "teal": 986, - "source": 294, - "pc": [ - 1197, - 1198 - ] - }, - { - "teal": 987, - "source": 294, - "pc": [ - 1199 - ] - }, - { - "teal": 988, - "source": 294, - "pc": [ - 1200, - 1201, - 1202 - ] - }, - { - "teal": 994, - "source": 295, - "pc": [ - 1203, - 1204 - ] - }, - { - "teal": 995, - "source": 295, - "pc": [ - 1205 - ] - }, - { - "teal": 996, - "source": 295, - "pc": [ - 1206 - ] - }, - { - "teal": 997, - "source": 295, - "pc": [ - 1207, - 1208, - 1209 - ] - }, - { - "teal": 1002, - "source": 297, - "pc": [ - 1210, - 1211 - ] - }, - { - "teal": 1003, - "source": 297, - "pc": [ - 1212, - 1213, - 1214 - ] - }, - { - "teal": 1004, - "source": 297, - "pc": [ - 1215 - ] - }, - { - "teal": 1005, - "source": 297, - "pc": [ - 1216, - 1217 - ] - }, - { - "teal": 1011, - "source": 299, - "pc": [ - 1218, - 1219 - ] - }, - { - "teal": 1012, - "source": 299, - "pc": [ - 1220, - 1221, - 1222 - ] - }, - { - "teal": 1013, - "source": 299, - "pc": [ - 1223 - ] - }, - { - "teal": 1014, - "source": 299, - "pc": [ - 1224, - 1225 - ] - }, - { - "teal": 1015, - "source": 299, - "pc": [ - 1226 - ] - }, - { - "teal": 1016, - "source": 299, - "pc": [ - 1227, - 1228, - 1229 - ] - }, - { - "teal": 1020, - "source": 300, - "errorMessage": "Insufficient balance", - "pc": [ - 1230 - ] - }, - { - "teal": 1025, - "source": 302, - "pc": [ - 1231, - 1232 - ] - }, - { - "teal": 1026, - "source": 302, - "pc": [ - 1233, - 1234 - ] - }, - { - "teal": 1027, - "source": 302, - "pc": [ - 1235, - 1236 - ] - }, - { - "teal": 1028, - "source": 302, - "pc": [ - 1237, - 1238, - 1239 - ] - }, - { - "teal": 1029, - "source": 302, - "pc": [ - 1240 - ] - }, - { - "teal": 1030, - "source": 302, - "pc": [ - 1241, - 1242 - ] - }, - { - "teal": 1031, - "source": 302, - "pc": [ - 1243 - ] - }, - { - "teal": 1032, - "source": 302, - "pc": [ - 1244 - ] - }, - { - "teal": 1033, - "source": 302, - "pc": [ - 1245 - ] - }, - { - "teal": 1034, - "source": 302, - "pc": [ - 1246, - 1247 - ] - }, - { - "teal": 1038, - "source": 303, - "pc": [ - 1248, - 1249 - ] - }, - { - "teal": 1039, - "source": 303, - "pc": [ - 1250 - ] - }, - { - "teal": 1040, - "source": 303, - "pc": [ - 1251, - 1252 - ] - }, - { - "teal": 1041, - "source": 303, - "pc": [ - 1253 - ] - }, - { - "teal": 1042, - "source": 303, - "pc": [ - 1254, - 1255 - ] - }, - { - "teal": 1043, - "source": 303, - "pc": [ - 1256 - ] - }, - { - "teal": 1044, - "source": 303, - "pc": [ - 1257 - ] - }, - { - "teal": 1048, - "source": 305, - "pc": [ - 1258 - ] - }, - { - "teal": 1049, - "source": 305, - "pc": [ - 1259, - 1260 - ] - }, - { - "teal": 1054, - "source": 306, - "pc": [ - 1261, - 1262 - ] - }, - { - "teal": 1055, - "source": 306, - "pc": [ - 1263, - 1264, - 1265 - ] - }, - { - "teal": 1056, - "source": 306, - "pc": [ - 1266 - ] - }, - { - "teal": 1057, - "source": 306, - "pc": [ - 1267 - ] - }, - { - "teal": 1058, - "source": 306, - "pc": [ - 1268 - ] - }, - { - "teal": 1059, - "source": 306, - "pc": [ - 1269, - 1270, - 1271 - ] - }, - { - "teal": 1065, - "source": 308, - "pc": [ - 1272 - ] - }, - { - "teal": 1066, - "source": 308, - "pc": [ - 1273 - ] - }, - { - "teal": 1067, - "source": 308, - "pc": [ - 1274 - ] - }, - { - "teal": 1068, - "source": 308, - "pc": [ - 1275 - ] - }, - { - "teal": 1069, - "source": 308, - "pc": [ - 1276, - 1277, - 1278 - ] - }, - { - "teal": 1077, - "source": 309, - "pc": [ - 1279 - ] - }, - { - "teal": 1078, - "source": 309, - "pc": [ - 1280 - ] - }, - { - "teal": 1079, - "source": 309, - "pc": [ - 1281, - 1282 - ] - }, - { - "teal": 1080, - "source": 309, - "pc": [ - 1283, - 1284 - ] - }, - { - "teal": 1081, - "source": 309, - "pc": [ - 1285, - 1286 - ] - }, - { - "teal": 1085, - "source": 310, - "pc": [ - 1287 - ] - }, - { - "teal": 1086, - "source": 310, - "pc": [ - 1288 - ] - }, - { - "teal": 1087, - "source": 310, - "pc": [ - 1289, - 1290 - ] - }, - { - "teal": 1091, - "source": 311, - "pc": [ - 1291 - ] - }, - { - "teal": 1092, - "source": 311, - "pc": [ - 1292 - ] - }, - { - "teal": 1093, - "source": 311, - "pc": [ - 1293 - ] - }, - { - "teal": 1094, - "source": 311, - "pc": [ - 1294, - 1295 - ] - }, - { - "teal": 1097, - "source": 309, - "pc": [ - 1296 - ] - }, - { - "teal": 1098, - "source": 309, - "pc": [ - 1297, - 1298 - ] - }, - { - "teal": 1101, - "source": 309, - "pc": [ - 1299 - ] - }, - { - "teal": 1102, - "source": 309, - "pc": [ - 1300, - 1301 - ] - }, - { - "teal": 1103, - "source": 309, - "pc": [ - 1302 - ] - }, - { - "teal": 1104, - "source": 309, - "pc": [ - 1303 - ] - }, - { - "teal": 1105, - "source": 309, - "pc": [ - 1304, - 1305 - ] - }, - { - "teal": 1106, - "source": 309, - "pc": [ - 1306, - 1307, - 1308 - ] - }, - { - "teal": 1107, - "source": 309, - "pc": [ - 1309, - 1310 - ] - }, - { - "teal": 1115, - "source": 317, - "pc": [ - 1311 - ] - }, - { - "teal": 1116, - "source": 317, - "pc": [ - 1312, - 1313 - ] - }, - { - "teal": 1117, - "source": 317, - "pc": [ - 1314, - 1315 - ] - }, - { - "teal": 1121, - "source": 318, - "pc": [ - 1316, - 1317 - ] - }, - { - "teal": 1122, - "source": 318, - "pc": [ - 1318, - 1319, - 1320 - ] - }, - { - "teal": 1123, - "source": 318, - "pc": [ - 1321 - ] - }, - { - "teal": 1124, - "source": 318, - "pc": [ - 1322, - 1323 - ] - }, - { - "teal": 1128, - "source": 319, - "pc": [ - 1324, - 1325 - ] - }, - { - "teal": 1129, - "source": 319, - "pc": [ - 1326, - 1327 - ] - }, - { - "teal": 1133, - "source": 320, - "pc": [ - 1328, - 1329 - ] - }, - { - "teal": 1134, - "source": 320, - "pc": [ - 1330, - 1331, - 1332 - ] - }, - { - "teal": 1135, - "source": 320, - "pc": [ - 1333 - ] - }, - { - "teal": 1136, - "source": 320, - "pc": [ - 1334, - 1335 - ] - }, - { - "teal": 1139, - "source": 317, - "pc": [ - 1336 - ] - }, - { - "teal": 1140, - "source": 317, - "pc": [ - 1337, - 1338 - ] - }, - { - "teal": 1143, - "source": 317, - "pc": [ - 1339 - ] - }, - { - "teal": 1147, - "source": 322, - "pc": [ - 1340, - 1341 - ] - }, - { - "teal": 1148, - "source": 322, - "pc": [ - 1342, - 1343, - 1344 - ] - }, - { - "teal": 1149, - "source": 322, - "pc": [ - 1345 - ] - }, - { - "teal": 1150, - "source": 322, - "pc": [ - 1346, - 1347 - ] - }, - { - "teal": 1154, - "source": 323, - "pc": [ - 1348, - 1349 - ] - }, - { - "teal": 1155, - "source": 323, - "pc": [ - 1350, - 1351 - ] - }, - { - "teal": 1156, - "source": 323, - "pc": [ - 1352, - 1353 - ] - }, - { - "teal": 1157, - "source": 323, - "pc": [ - 1354, - 1355 - ] - }, - { - "teal": 1158, - "source": 308, - "pc": [ - 1356, - 1357, - 1358 - ] - }, - { - "teal": 1163, - "source": 328, - "pc": [ - 1359, - 1360 - ] - }, - { - "teal": 1164, - "source": 328, - "pc": [ - 1361, - 1362, - 1363 - ] - }, - { - "teal": 1165, - "source": 328, - "pc": [ - 1364 - ] - }, - { - "teal": 1166, - "source": 328, - "pc": [ - 1365, - 1366 - ] - }, - { - "teal": 1170, - "source": 329, - "pc": [ - 1367, - 1368 - ] - }, - { - "teal": 1171, - "source": 329, - "pc": [ - 1369, - 1370 - ] - }, - { - "teal": 1172, - "source": 329, - "pc": [ - 1371, - 1372 - ] - }, - { - "teal": 1173, - "source": 329, - "pc": [ - 1373, - 1374 - ] - }, - { - "teal": 1183, - "source": 335, - "pc": [ - 1375, - 1376 - ] - }, - { - "teal": 1184, - "source": 335, - "pc": [ - 1377, - 1378, - 1379 - ] - }, - { - "teal": 1185, - "source": 335, - "pc": [ - 1380 - ] - }, - { - "teal": 1186, - "source": 335, - "pc": [ - 1381 - ] - }, - { - "teal": 1187, - "source": 335, - "pc": [ - 1382 - ] - }, - { - "teal": 1188, - "source": 335, - "pc": [ - 1383 - ] - }, - { - "teal": 1189, - "source": 335, - "pc": [ - 1384, - 1385, - 1386 - ] - }, - { - "teal": 1190, - "source": 335, - "pc": [ - 1387, - 1388 - ] - }, - { - "teal": 1191, - "source": 335, - "pc": [ - 1389, - 1390, - 1391 - ] - }, - { - "teal": 1192, - "source": 335, - "pc": [ - 1392 - ] - }, - { - "teal": 1193, - "source": 335, - "pc": [ - 1393, - 1394 - ] - }, - { - "teal": 1194, - "source": 335, - "pc": [ - 1395 - ] - }, - { - "teal": 1195, - "source": 335, - "pc": [ - 1396 - ] - }, - { - "teal": 1196, - "source": 335, - "pc": [ - 1397 - ] - }, - { - "teal": 1200, - "source": 334, - "errorMessage": "cannot reduce balance below minimum allowed stake unless all is removed", - "pc": [ - 1398 - ] - }, - { - "teal": 1208, - "source": 342, - "pc": [ - 1399 - ] - }, - { - "teal": 1209, - "source": 342, - "pc": [ - 1400 - ] - }, - { - "teal": 1210, - "source": 342, - "pc": [ - 1401, - 1402 - ] - }, - { - "teal": 1214, - "source": 343, - "pc": [ - 1403, - 1404 - ] - }, - { - "teal": 1215, - "source": 343, - "pc": [ - 1405, - 1406 - ] - }, - { - "teal": 1219, - "source": 344, - "pc": [ - 1407, - 1408 - ] - }, - { - "teal": 1220, - "source": 344, - "pc": [ - 1409, - 1410 - ] - }, - { - "teal": 1224, - "source": 345, - "pc": [ - 1411, - 1412, - 1413, - 1414, - 1415, - 1416, - 1417, - 1418, - 1419, - 1420 - ] - }, - { - "teal": 1225, - "source": 345, - "pc": [ - 1421, - 1422 - ] - }, - { - "teal": 1228, - "source": 342, - "pc": [ - 1423 - ] - }, - { - "teal": 1229, - "source": 342, - "pc": [ - 1424, - 1425 - ] - }, - { - "teal": 1232, - "source": 342, - "pc": [ - 1426 - ] - }, - { - "teal": 1236, - "source": 347, - "pc": [ - 1427 - ] - }, - { - "teal": 1237, - "source": 347, - "pc": [ - 1428, - 1429 - ] - }, - { - "teal": 1242, - "source": 348, - "pc": [ - 1430, - 1431 - ] - }, - { - "teal": 1243, - "source": 348, - "pc": [ - 1432, - 1433, - 1434 - ] - }, - { - "teal": 1244, - "source": 348, - "pc": [ - 1435 - ] - }, - { - "teal": 1245, - "source": 348, - "pc": [ - 1436 - ] - }, - { - "teal": 1246, - "source": 348, - "pc": [ - 1437 - ] - }, - { - "teal": 1247, - "source": 348, - "pc": [ - 1438, - 1439, - 1440 - ] - }, - { - "teal": 1252, - "source": 350, - "pc": [ - 1441, - 1442 - ] - }, - { - "teal": 1253, - "source": 350, - "pc": [ - 1443 - ] - }, - { - "teal": 1254, - "source": 350, - "pc": [ - 1444 - ] - }, - { - "teal": 1255, - "source": 350, - "pc": [ - 1445 - ] - }, - { - "teal": 1256, - "source": 350, - "pc": [ - 1446, - 1447 - ] - }, - { - "teal": 1257, - "source": 350, - "pc": [ - 1448 - ] - }, - { - "teal": 1258, - "source": 350, - "pc": [ - 1449 - ] - }, - { - "teal": 1262, - "source": 351, - "pc": [ - 1450, - 1451 - ] - }, - { - "teal": 1263, - "source": 351, - "pc": [ - 1452 - ] - }, - { - "teal": 1264, - "source": 351, - "pc": [ - 1453, - 1454 - ] - }, - { - "teal": 1265, - "source": 351, - "pc": [ - 1455 - ] - }, - { - "teal": 1266, - "source": 351, - "pc": [ - 1456, - 1457 - ] - }, - { - "teal": 1270, - "source": 352, - "pc": [ - 1458, - 1459 - ] - }, - { - "teal": 1271, - "source": 352, - "pc": [ - 1460, - 1461 - ] - }, - { - "teal": 1272, - "source": 352, - "pc": [ - 1462, - 1463 - ] - }, - { - "teal": 1273, - "source": 352, - "pc": [ - 1464, - 1465 - ] - }, - { - "teal": 1277, - "source": 353, - "pc": [ - 1466, - 1467 - ] - }, - { - "teal": 1278, - "source": 353, - "pc": [ - 1468, - 1469 - ] - }, - { - "teal": 1279, - "source": 353, - "pc": [ - 1470, - 1471 - ] - }, - { - "teal": 1280, - "source": 353, - "pc": [ - 1472, - 1473 - ] - }, - { - "teal": 1284, - "source": 354, - "pc": [ - 1474 - ] - }, - { - "teal": 1285, - "source": 354, - "pc": [ - 1475, - 1476 - ] - }, - { - "teal": 1290, - "source": 357, - "pc": [ - 1477, - 1478 - ] - }, - { - "teal": 1291, - "source": 357, - "pc": [ - 1479 - ] - }, - { - "teal": 1292, - "source": 357, - "pc": [ - 1480 - ] - }, - { - "teal": 1293, - "source": 357, - "pc": [ - 1481, - 1482 - ] - }, - { - "teal": 1294, - "source": 357, - "pc": [ - 1483 - ] - }, - { - "teal": 1295, - "source": 357, - "pc": [ - 1484, - 1485 - ] - }, - { - "teal": 1296, - "source": 357, - "pc": [ - 1486 - ] - }, - { - "teal": 1300, - "source": 359, - "pc": [ - 1487, - 1488 - ] - }, - { - "teal": 1301, - "source": 359, - "pc": [ - 1489 - ] - }, - { - "teal": 1302, - "source": 359, - "pc": [ - 1490, - 1491 - ] - }, - { - "teal": 1303, - "source": 359, - "pc": [ - 1492 - ] - }, - { - "teal": 1304, - "source": 359, - "pc": [ - 1493 - ] - }, - { - "teal": 1305, - "source": 359, - "pc": [ - 1494, - 1495 - ] - }, - { - "teal": 1306, - "source": 359, - "pc": [ - 1496 - ] - }, - { - "teal": 1307, - "source": 359, - "pc": [ - 1497, - 1498 - ] - }, - { - "teal": 1311, - "source": 360, - "pc": [ - 1499, - 1500 - ] - }, - { - "teal": 1312, - "source": 360, - "pc": [ - 1501 - ] - }, - { - "teal": 1313, - "source": 360, - "pc": [ - 1502, - 1503 - ] - }, - { - "teal": 1314, - "source": 360, - "pc": [ - 1504 - ] - }, - { - "teal": 1315, - "source": 360, - "pc": [ - 1505 - ] - }, - { - "teal": 1316, - "source": 360, - "pc": [ - 1506 - ] - }, - { - "teal": 1317, - "source": 360, - "pc": [ - 1507 - ] - }, - { - "teal": 1318, - "source": 360, - "pc": [ - 1508, - 1509 - ] - }, - { - "teal": 1319, - "source": 360, - "pc": [ - 1510 - ] - }, - { - "teal": 1322, - "source": 360, - "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", - "pc": [ - 1511 - ] - }, - { - "teal": 1323, - "source": 360, - "pc": [ - 1512, - 1513 - ] - }, - { - "teal": 1324, - "source": 360, - "pc": [ - 1514 - ] - }, - { - "teal": 1325, - "source": 360, - "pc": [ - 1515 - ] - }, - { - "teal": 1326, - "source": 360, - "pc": [ - 1516 - ] - }, - { - "teal": 1327, - "source": 360, - "pc": [ - 1517 - ] - }, - { - "teal": 1328, - "source": 360, - "pc": [ - 1518, - 1519 - ] - }, - { - "teal": 1329, - "source": 360, - "pc": [ - 1520 - ] - }, - { - "teal": 1330, - "source": 360, - "pc": [ - 1521 - ] - }, - { - "teal": 1331, - "source": 360, - "pc": [ - 1522 - ] - }, - { - "teal": 1332, - "source": 360, - "pc": [ - 1523, - 1524 - ] - }, - { - "teal": 1336, - "source": 361, - "pc": [ - 1525, - 1526 - ] - }, - { - "teal": 1337, - "source": 361, - "pc": [ - 1527 - ] - }, - { - "teal": 1338, - "source": 361, - "pc": [ - 1528 - ] - }, - { - "teal": 1339, - "source": 361, - "pc": [ - 1529, - 1530 - ] - }, - { - "teal": 1340, - "source": 361, - "pc": [ - 1531 - ] - }, - { - "teal": 1341, - "source": 361, - "pc": [ - 1532 - ] - }, - { - "teal": 1342, - "source": 361, - "pc": [ - 1533 - ] - }, - { - "teal": 1343, - "source": 361, - "pc": [ - 1534, - 1535 - ] - }, - { - "teal": 1344, - "source": 361, - "pc": [ - 1536 - ] - }, - { - "teal": 1347, - "source": 361, - "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", - "pc": [ - 1537 - ] - }, - { - "teal": 1348, - "source": 361, - "pc": [ - 1538, - 1539 - ] - }, - { - "teal": 1349, - "source": 361, - "pc": [ - 1540 - ] - }, - { - "teal": 1350, - "source": 361, - "pc": [ - 1541 - ] - }, - { - "teal": 1351, - "source": 361, - "pc": [ - 1542 - ] - }, - { - "teal": 1352, - "source": 361, - "pc": [ - 1543 - ] - }, - { - "teal": 1353, - "source": 361, - "pc": [ - 1544, - 1545 - ] - }, - { - "teal": 1354, - "source": 361, - "pc": [ - 1546 - ] - }, - { - "teal": 1355, - "source": 361, - "pc": [ - 1547 - ] - }, - { - "teal": 1356, - "source": 361, - "pc": [ - 1548 - ] - }, - { - "teal": 1357, - "source": 361, - "pc": [ - 1549 - ] - }, - { - "teal": 1370, - "source": 366, - "pc": [ - 1550 - ] - }, - { - "teal": 1371, - "source": 366, - "pc": [ - 1551 - ] - }, - { - "teal": 1372, - "source": 366, - "pc": [ - 1552, - 1553 - ] - }, - { - "teal": 1373, - "source": 366, - "pc": [ - 1554, - 1555 - ] - }, - { - "teal": 1374, - "source": 366, - "pc": [ - 1556, - 1557 - ] - }, - { - "teal": 1378, - "source": 367, - "pc": [ - 1558 - ] - }, - { - "teal": 1379, - "source": 367, - "pc": [ - 1559 - ] - }, - { - "teal": 1380, - "source": 367, - "pc": [ - 1560, - 1561 - ] - }, - { - "teal": 1390, - "source": 369, - "pc": [ - 1562 - ] - }, - { - "teal": 1391, - "source": 369, - "pc": [ - 1563 - ] - }, - { - "teal": 1392, - "source": 369, - "pc": [ - 1564 - ] - }, - { - "teal": 1393, - "source": 369, - "pc": [ - 1565 - ] - }, - { - "teal": 1394, - "source": 369, - "pc": [ - 1566 - ] - }, - { - "teal": 1395, - "source": 369, - "pc": [ - 1567 - ] - }, - { - "teal": 1396, - "source": 369, - "pc": [ - 1568 - ] - }, - { - "teal": 1397, - "source": 369, - "pc": [ - 1569, - 1570, - 1571 - ] - }, - { - "teal": 1398, - "source": 369, - "pc": [ - 1572 - ] - }, - { - "teal": 1399, - "source": 369, - "pc": [ - 1573 - ] - }, - { - "teal": 1400, - "source": 369, - "pc": [ - 1574, - 1575 - ] - }, - { - "teal": 1401, - "source": 370, - "pc": [ - 1576, - 1577 - ] - }, - { - "teal": 1402, - "source": 370, - "pc": [ - 1578, - 1579 - ] - }, - { - "teal": 1403, - "source": 371, - "pc": [ - 1580, - 1581 - ] - }, - { - "teal": 1404, - "source": 371, - "pc": [ - 1582 - ] - }, - { - "teal": 1405, - "source": 371, - "pc": [ - 1583, - 1584 - ] - }, - { - "teal": 1406, - "source": 372, - "pc": [ - 1585, - 1586 - ] - }, - { - "teal": 1407, - "source": 372, - "pc": [ - 1587 - ] - }, - { - "teal": 1408, - "source": 372, - "pc": [ - 1588, - 1589 - ] - }, - { - "teal": 1409, - "source": 373, - "pc": [ - 1590, - 1591 - ] - }, - { - "teal": 1410, - "source": 373, - "pc": [ - 1592, - 1593 - ] - }, - { - "teal": 1411, - "source": 373, - "pc": [ - 1594 - ] - }, - { - "teal": 1412, - "source": 373, - "pc": [ - 1595, - 1596 - ] - }, - { - "teal": 1413, - "source": 373, - "pc": [ - 1597 - ] - }, - { - "teal": 1414, - "source": 373, - "pc": [ - 1598, - 1599 - ] - }, - { - "teal": 1417, - "source": 366, - "pc": [ - 1600 - ] - }, - { - "teal": 1418, - "source": 366, - "pc": [ - 1601, - 1602 - ] - }, - { - "teal": 1421, - "source": 366, - "pc": [ - 1603 - ] - }, - { - "teal": 1425, - "source": 376, - "pc": [ - 1604 - ] - }, - { - "teal": 1432, - "source": 289, - "pc": [ - 1605, - 1606 - ] - }, - { - "teal": 1433, - "source": 289, - "pc": [ - 1607 - ] - }, - { - "teal": 1434, - "source": 289, - "pc": [ - 1608 - ] - }, - { - "teal": 1435, - "source": 289, - "pc": [ - 1609, - 1610 - ] - }, - { - "teal": 1436, - "source": 289, - "pc": [ - 1611, - 1612, - 1613 - ] - }, - { - "teal": 1440, - "source": 379, - "errorMessage": "account not found", - "pc": [ - 1614 - ] - }, - { - "teal": 1441, - "source": 277, - "pc": [ - 1615 - ] - }, - { - "teal": 1446, - "source": 387, - "pc": [ - 1616, - 1617, - 1618 - ] - }, - { - "teal": 1447, - "source": 387, - "pc": [ - 1619 - ] - }, - { - "teal": 1448, - "source": 387, - "pc": [ - 1620 - ] - }, - { - "teal": 1456, - "source": 387, - "pc": [ - 1621, - 1622, - 1623 - ] - }, - { - "teal": 1459, - "source": 387, - "pc": [ - 1624, - 1625 - ] - }, - { - "teal": 1460, - "source": 387, - "pc": [ - 1626, - 1627 - ] - }, - { - "teal": 1464, - "source": 391, - "pc": [ - 1628, - 1629 - ] - }, - { - "teal": 1465, - "source": 391, - "pc": [ - 1630, - 1631 - ] - }, - { - "teal": 1469, - "source": 393, - "pc": [ - 1632 - ] - }, - { - "teal": 1470, - "source": 393, - "pc": [ - 1633, - 1634 - ] - }, - { - "teal": 1475, - "source": 393, - "pc": [ - 1635, - 1636 - ] - }, - { - "teal": 1476, - "source": 393, - "pc": [ - 1637, - 1638 - ] - }, - { - "teal": 1477, - "source": 393, - "pc": [ - 1639 - ] - }, - { - "teal": 1478, - "source": 393, - "pc": [ - 1640, - 1641, - 1642 - ] - }, - { - "teal": 1483, - "source": 394, - "pc": [ - 1643, - 1644 - ] - }, - { - "teal": 1484, - "source": 394, - "pc": [ - 1645, - 1646 - ] - }, - { - "teal": 1485, - "source": 394, - "pc": [ - 1647 - ] - }, - { - "teal": 1486, - "source": 394, - "pc": [ - 1648, - 1649, - 1650 - ] - }, - { - "teal": 1491, - "source": 395, - "pc": [ - 1651 - ] - }, - { - "teal": 1492, - "source": 395, - "pc": [ - 1652 - ] - }, - { - "teal": 1493, - "source": 395, - "pc": [ - 1653, - 1654 - ] - }, - { - "teal": 1494, - "source": 395, - "pc": [ - 1655 - ] - }, - { - "teal": 1495, - "source": 395, - "pc": [ - 1656, - 1657 - ] - }, - { - "teal": 1496, - "source": 395, - "pc": [ - 1658, - 1659 - ] - }, - { - "teal": 1497, - "source": 395, - "pc": [ - 1660 - ] - }, - { - "teal": 1498, - "source": 395, - "pc": [ - 1661, - 1662 - ] - }, - { - "teal": 1499, - "source": 395, - "pc": [ - 1663, - 1664 - ] - }, - { - "teal": 1500, - "source": 395, - "pc": [ - 1665, - 1666 - ] - }, - { - "teal": 1501, - "source": 395, - "pc": [ - 1667, - 1668 - ] - }, - { - "teal": 1502, - "source": 395, - "pc": [ - 1669 - ] - }, - { - "teal": 1507, - "source": 397, - "pc": [ - 1670, - 1671 - ] - }, - { - "teal": 1508, - "source": 397, - "pc": [ - 1672 - ] - }, - { - "teal": 1509, - "source": 397, - "pc": [ - 1673 - ] - }, - { - "teal": 1510, - "source": 397, - "pc": [ - 1674 - ] - }, - { - "teal": 1511, - "source": 397, - "pc": [ - 1675 - ] - }, - { - "teal": 1512, - "source": 397, - "pc": [ - 1676, - 1677 - ] - }, - { - "teal": 1513, - "source": 397, - "pc": [ - 1678 - ] - }, - { - "teal": 1514, - "source": 397, - "pc": [ - 1679, - 1680 - ] - }, - { - "teal": 1519, - "source": 398, - "pc": [ - 1681, - 1682 - ] - }, - { - "teal": 1520, - "source": 398, - "pc": [ - 1683, - 1684, - 1685 - ] - }, - { - "teal": 1521, - "source": 398, - "pc": [ - 1686, - 1687 - ] - }, - { - "teal": 1522, - "source": 398, - "pc": [ - 1688 - ] - }, - { - "teal": 1523, - "source": 398, - "pc": [ - 1689, - 1690, - 1691 - ] - }, - { - "teal": 1529, - "source": 399, - "pc": [ - 1692, - 1693 - ] - }, - { - "teal": 1530, - "source": 399, - "pc": [ - 1694, - 1695, - 1696 - ] - }, - { - "teal": 1531, - "source": 399, - "pc": [ - 1697 - ] - }, - { - "teal": 1532, - "source": 399, - "pc": [ - 1698 - ] - }, - { - "teal": 1533, - "source": 399, - "pc": [ - 1699 - ] - }, - { - "teal": 1534, - "source": 399, - "pc": [ - 1700, - 1701, - 1702 - ] - }, - { - "teal": 1539, - "source": 400, - "pc": [ - 1703 - ] - }, - { - "teal": 1544, - "source": 402, - "pc": [ - 1704 - ] - }, - { - "teal": 1545, - "source": 402, - "pc": [ - 1705, - 1706 - ] - }, - { - "teal": 1550, - "source": 404, - "pc": [ - 1707 - ] - }, - { - "teal": 1551, - "source": 404, - "pc": [ - 1708 - ] - }, - { - "teal": 1552, - "source": 404, - "pc": [ - 1709 - ] - }, - { - "teal": 1553, - "source": 404, - "pc": [ - 1710 - ] - }, - { - "teal": 1554, - "source": 404, - "pc": [ - 1711, - 1712, - 1713 - ] - }, - { - "teal": 1562, - "source": 405, - "pc": [ - 1714 - ] - }, - { - "teal": 1563, - "source": 405, - "pc": [ - 1715 - ] - }, - { - "teal": 1564, - "source": 405, - "pc": [ - 1716, - 1717 - ] - }, - { - "teal": 1565, - "source": 405, - "pc": [ - 1718, - 1719 - ] - }, - { - "teal": 1566, - "source": 405, - "pc": [ - 1720, - 1721 - ] - }, - { - "teal": 1570, - "source": 406, - "pc": [ - 1722 - ] - }, - { - "teal": 1571, - "source": 406, - "pc": [ - 1723 - ] - }, - { - "teal": 1572, - "source": 406, - "pc": [ - 1724, - 1725 - ] - }, - { - "teal": 1576, - "source": 407, - "pc": [ - 1726 - ] - }, - { - "teal": 1577, - "source": 407, - "pc": [ - 1727 - ] - }, - { - "teal": 1578, - "source": 407, - "pc": [ - 1728 - ] - }, - { - "teal": 1579, - "source": 407, - "pc": [ - 1729, - 1730 - ] - }, - { - "teal": 1582, - "source": 405, - "pc": [ - 1731 - ] - }, - { - "teal": 1583, - "source": 405, - "pc": [ - 1732, - 1733 - ] - }, - { - "teal": 1586, - "source": 405, - "pc": [ - 1734 - ] - }, - { - "teal": 1587, - "source": 405, - "pc": [ - 1735, - 1736 - ] - }, - { - "teal": 1588, - "source": 405, - "pc": [ - 1737 - ] - }, - { - "teal": 1589, - "source": 405, - "pc": [ - 1738 - ] - }, - { - "teal": 1590, - "source": 405, - "pc": [ - 1739, - 1740 - ] - }, - { - "teal": 1591, - "source": 405, - "pc": [ - 1741, - 1742, - 1743 - ] - }, - { - "teal": 1592, - "source": 405, - "pc": [ - 1744, - 1745 - ] - }, - { - "teal": 1600, - "source": 412, - "pc": [ - 1746 - ] - }, - { - "teal": 1601, - "source": 412, - "pc": [ - 1747, - 1748 - ] - }, - { - "teal": 1602, - "source": 412, - "pc": [ - 1749, - 1750 - ] - }, - { - "teal": 1606, - "source": 413, - "pc": [ - 1751, - 1752 - ] - }, - { - "teal": 1607, - "source": 413, - "pc": [ - 1753, - 1754, - 1755 - ] - }, - { - "teal": 1608, - "source": 413, - "pc": [ - 1756 - ] - }, - { - "teal": 1609, - "source": 413, - "pc": [ - 1757, - 1758 - ] - }, - { - "teal": 1613, - "source": 414, - "pc": [ - 1759, - 1760 - ] - }, - { - "teal": 1614, - "source": 414, - "pc": [ - 1761, - 1762 - ] - }, - { - "teal": 1618, - "source": 415, - "pc": [ - 1763, - 1764 - ] - }, - { - "teal": 1619, - "source": 415, - "pc": [ - 1765, - 1766, - 1767 - ] - }, - { - "teal": 1620, - "source": 415, - "pc": [ - 1768 - ] - }, - { - "teal": 1621, - "source": 415, - "pc": [ - 1769, - 1770 - ] - }, - { - "teal": 1624, - "source": 412, - "pc": [ - 1771 - ] - }, - { - "teal": 1625, - "source": 412, - "pc": [ - 1772, - 1773 - ] - }, - { - "teal": 1628, - "source": 412, - "pc": [ - 1774 - ] - }, - { - "teal": 1632, - "source": 417, - "pc": [ - 1775, - 1776 - ] - }, - { - "teal": 1633, - "source": 417, - "pc": [ - 1777, - 1778, - 1779 - ] - }, - { - "teal": 1634, - "source": 417, - "pc": [ - 1780 - ] - }, - { - "teal": 1635, - "source": 417, - "pc": [ - 1781, - 1782 - ] - }, - { - "teal": 1639, - "source": 418, - "pc": [ - 1783, - 1784 - ] - }, - { - "teal": 1640, - "source": 418, - "pc": [ - 1785, - 1786 - ] - }, - { - "teal": 1641, - "source": 418, - "pc": [ - 1787, - 1788 - ] - }, - { - "teal": 1642, - "source": 418, - "pc": [ - 1789, - 1790 - ] - }, - { - "teal": 1643, - "source": 404, - "pc": [ - 1791, - 1792, - 1793 - ] - }, - { - "teal": 1648, - "source": 423, - "pc": [ - 1794, - 1795 - ] - }, - { - "teal": 1649, - "source": 423, - "pc": [ - 1796, - 1797, - 1798 - ] - }, - { - "teal": 1650, - "source": 423, - "pc": [ - 1799 - ] - }, - { - "teal": 1651, - "source": 423, - "pc": [ - 1800, - 1801 - ] - }, - { - "teal": 1655, - "source": 424, - "pc": [ - 1802, - 1803 - ] - }, - { - "teal": 1656, - "source": 424, - "pc": [ - 1804, - 1805 - ] - }, - { - "teal": 1657, - "source": 424, - "pc": [ - 1806, - 1807 - ] - }, - { - "teal": 1658, - "source": 424, - "pc": [ - 1808, - 1809 - ] - }, - { - "teal": 1663, - "source": 428, - "pc": [ - 1810, - 1811 - ] - }, - { - "teal": 1664, - "source": 428, - "pc": [ - 1812 - ] - }, - { - "teal": 1665, - "source": 428, - "pc": [ - 1813 - ] - }, - { - "teal": 1666, - "source": 428, - "pc": [ - 1814, - 1815 - ] - }, - { - "teal": 1667, - "source": 428, - "pc": [ - 1816 - ] - }, - { - "teal": 1668, - "source": 428, - "pc": [ - 1817, - 1818 - ] - }, - { - "teal": 1669, - "source": 428, - "pc": [ - 1819 - ] - }, - { - "teal": 1682, - "source": 433, - "pc": [ - 1820 - ] - }, - { - "teal": 1683, - "source": 433, - "pc": [ - 1821 - ] - }, - { - "teal": 1684, - "source": 433, - "pc": [ - 1822, - 1823 - ] - }, - { - "teal": 1685, - "source": 433, - "pc": [ - 1824, - 1825 - ] - }, - { - "teal": 1686, - "source": 433, - "pc": [ - 1826, - 1827 - ] - }, - { - "teal": 1690, - "source": 434, - "pc": [ - 1828 - ] - }, - { - "teal": 1691, - "source": 434, - "pc": [ - 1829 - ] - }, - { - "teal": 1692, - "source": 434, - "pc": [ - 1830, - 1831 - ] - }, - { - "teal": 1702, - "source": 436, - "pc": [ - 1832 - ] - }, - { - "teal": 1703, - "source": 436, - "pc": [ - 1833 - ] - }, - { - "teal": 1704, - "source": 436, - "pc": [ - 1834 - ] - }, - { - "teal": 1705, - "source": 436, - "pc": [ - 1835 - ] - }, - { - "teal": 1706, - "source": 436, - "pc": [ - 1836 - ] - }, - { - "teal": 1707, - "source": 436, - "pc": [ - 1837 - ] - }, - { - "teal": 1708, - "source": 436, - "pc": [ - 1838 - ] - }, - { - "teal": 1709, - "source": 436, - "pc": [ - 1839, - 1840, - 1841 - ] - }, - { - "teal": 1710, - "source": 436, - "pc": [ - 1842 - ] - }, - { - "teal": 1711, - "source": 436, - "pc": [ - 1843 - ] - }, - { - "teal": 1712, - "source": 436, - "pc": [ - 1844, - 1845 - ] - }, - { - "teal": 1713, - "source": 437, - "pc": [ - 1846, - 1847 - ] - }, - { - "teal": 1714, - "source": 437, - "pc": [ - 1848, - 1849 - ] - }, - { - "teal": 1715, - "source": 438, - "pc": [ - 1850, - 1851 - ] - }, - { - "teal": 1716, - "source": 438, - "pc": [ - 1852, - 1853 - ] - }, - { - "teal": 1717, - "source": 439, - "pc": [ - 1854, - 1855 - ] - }, - { - "teal": 1718, - "source": 439, - "pc": [ - 1856 - ] - }, - { - "teal": 1719, - "source": 439, - "pc": [ - 1857, - 1858 - ] - }, - { - "teal": 1720, - "source": 440, - "pc": [ - 1859 - ] - }, - { - "teal": 1721, - "source": 440, - "pc": [ - 1860, - 1861 - ] - }, - { - "teal": 1722, - "source": 440, - "pc": [ - 1862 - ] - }, - { - "teal": 1723, - "source": 440, - "pc": [ - 1863, - 1864 - ] - }, - { - "teal": 1724, - "source": 440, - "pc": [ - 1865 - ] - }, - { - "teal": 1725, - "source": 440, - "pc": [ - 1866, - 1867 - ] - }, - { - "teal": 1728, - "source": 433, - "pc": [ - 1868 - ] - }, - { - "teal": 1729, - "source": 433, - "pc": [ - 1869, - 1870 - ] - }, - { - "teal": 1732, - "source": 433, - "pc": [ - 1871 - ] - }, - { - "teal": 1736, - "source": 443, - "pc": [ - 1872 - ] - }, - { - "teal": 1743, - "source": 393, - "pc": [ - 1873, - 1874 - ] - }, - { - "teal": 1744, - "source": 393, - "pc": [ - 1875 - ] - }, - { - "teal": 1745, - "source": 393, - "pc": [ - 1876 - ] - }, - { - "teal": 1746, - "source": 393, - "pc": [ - 1877, - 1878 - ] - }, - { - "teal": 1747, - "source": 393, - "pc": [ - 1879, - 1880, - 1881 - ] - }, - { - "teal": 1751, - "source": 446, - "errorMessage": "account not found", - "pc": [ - 1882 - ] - }, - { - "teal": 1752, - "source": 387, - "pc": [ - 1883 - ] - }, - { - "teal": 1757, - "source": 457, - "pc": [ - 1884, - 1885 - ] - }, - { - "teal": 1760, - "source": 457, - "pc": [ - 1886, - 1887, - 1888 - ] - }, - { - "teal": 1761, - "source": 457, - "pc": [ - 1889 - ] - }, - { - "teal": 1762, - "source": 457, - "pc": [ - 1890 - ] - }, - { - "teal": 1763, - "source": 457, - "pc": [ - 1891, - 1892 - ] - }, - { - "teal": 1764, - "source": 457, - "pc": [ - 1893 - ] - }, - { - "teal": 1767, - "source": 457, - "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", - "pc": [ - 1894 - ] - }, - { - "teal": 1770, - "source": 457, - "pc": [ - 1895, - 1896, - 1897 - ] - }, - { - "teal": 1771, - "source": 457, - "pc": [ - 1898 - ] - }, - { - "teal": 1772, - "source": 457, - "pc": [ - 1899 - ] - }, - { - "teal": 1773, - "source": 457, - "pc": [ - 1900 - ] - }, - { - "teal": 1774, - "source": 457, - "pc": [ - 1901 - ] - }, - { - "teal": 1784, - "source": 457, - "pc": [ - 1902, - 1903, - 1904 - ] - }, - { - "teal": 1787, - "source": 457, - "pc": [ - 1905, - 1906 - ] - }, - { - "teal": 1791, - "source": 458, - "pc": [ - 1907 - ] - }, - { - "teal": 1792, - "source": 458, - "pc": [ - 1908, - 1909 - ] - }, - { - "teal": 1797, - "source": 458, - "pc": [ - 1910, - 1911 - ] - }, - { - "teal": 1798, - "source": 458, - "pc": [ - 1912, - 1913 - ] - }, - { - "teal": 1799, - "source": 458, - "pc": [ - 1914 - ] - }, - { - "teal": 1800, - "source": 458, - "pc": [ - 1915, - 1916, - 1917 - ] - }, - { - "teal": 1805, - "source": 459, - "pc": [ - 1918, - 1919 - ] - }, - { - "teal": 1806, - "source": 459, - "pc": [ - 1920, - 1921 - ] - }, - { - "teal": 1807, - "source": 459, - "pc": [ - 1922 - ] - }, - { - "teal": 1808, - "source": 459, - "pc": [ - 1923, - 1924, - 1925 - ] - }, - { - "teal": 1813, - "source": 460, - "pc": [ - 1926 - ] - }, - { - "teal": 1814, - "source": 460, - "pc": [ - 1927 - ] - }, - { - "teal": 1815, - "source": 460, - "pc": [ - 1928, - 1929 - ] - }, - { - "teal": 1816, - "source": 460, - "pc": [ - 1930 - ] - }, - { - "teal": 1817, - "source": 460, - "pc": [ - 1931, - 1932 - ] - }, - { - "teal": 1818, - "source": 460, - "pc": [ - 1933, - 1934 - ] - }, - { - "teal": 1819, - "source": 460, - "pc": [ - 1935 - ] - }, - { - "teal": 1820, - "source": 460, - "pc": [ - 1936, - 1937 - ] - }, - { - "teal": 1821, - "source": 460, - "pc": [ - 1938, - 1939 - ] - }, - { - "teal": 1822, - "source": 460, - "pc": [ - 1940, - 1941 - ] - }, - { - "teal": 1823, - "source": 460, - "pc": [ - 1942, - 1943 - ] - }, - { - "teal": 1824, - "source": 460, - "pc": [ - 1944 - ] - }, - { - "teal": 1830, - "source": 462, - "pc": [ - 1945, - 1946 - ] - }, - { - "teal": 1831, - "source": 462, - "pc": [ - 1947 - ] - }, - { - "teal": 1832, - "source": 462, - "pc": [ - 1948 - ] - }, - { - "teal": 1833, - "source": 462, - "pc": [ - 1949 - ] - }, - { - "teal": 1834, - "source": 462, - "pc": [ - 1950 - ] - }, - { - "teal": 1835, - "source": 462, - "pc": [ - 1951, - 1952 - ] - }, - { - "teal": 1836, - "source": 462, - "pc": [ - 1953 - ] - }, - { - "teal": 1837, - "source": 462, - "pc": [ - 1954, - 1955 - ] - }, - { - "teal": 1838, - "source": 462, - "pc": [ - 1956 - ] - }, - { - "teal": 1839, - "source": 462, - "pc": [ - 1957, - 1958 - ] - }, - { - "teal": 1840, - "source": 462, - "pc": [ - 1959 - ] - }, - { - "teal": 1841, - "source": 462, - "pc": [ - 1960, - 1961, - 1962 - ] - }, - { - "teal": 1846, - "source": 463, - "pc": [ - 1963, - 1964 - ] - }, - { - "teal": 1847, - "source": 463, - "pc": [ - 1965 - ] - }, - { - "teal": 1848, - "source": 463, - "pc": [ - 1966 - ] - }, - { - "teal": 1849, - "source": 463, - "pc": [ - 1967 - ] - }, - { - "teal": 1850, - "source": 463, - "pc": [ - 1968 - ] - }, - { - "teal": 1851, - "source": 463, - "pc": [ - 1969, - 1970 - ] - }, - { - "teal": 1852, - "source": 463, - "pc": [ - 1971 - ] - }, - { - "teal": 1853, - "source": 463, - "pc": [ - 1972, - 1973, - 1974 - ] - }, - { - "teal": 1860, - "source": 458, - "pc": [ - 1975, - 1976 - ] - }, - { - "teal": 1861, - "source": 458, - "pc": [ - 1977 - ] - }, - { - "teal": 1862, - "source": 458, - "pc": [ - 1978 - ] - }, - { - "teal": 1863, - "source": 458, - "pc": [ - 1979, - 1980 - ] - }, - { - "teal": 1864, - "source": 458, - "pc": [ - 1981, - 1982, - 1983 - ] - }, - { - "teal": 1868, - "source": 466, - "errorMessage": "account not found", - "pc": [ - 1984 - ] - }, - { - "teal": 1872, - "source": 457, - "pc": [ - 1985, - 1986 - ] - }, - { - "teal": 1873, - "source": 457, - "pc": [ - 1987 - ] - }, - { - "teal": 1878, - "source": 479, - "pc": [ - 1988, - 1989, - 1990 - ] - }, - { - "teal": 1879, - "source": 479, - "pc": [ - 1991 - ] - }, - { - "teal": 1882, - "source": 479, - "pc": [ - 1992, - 1993, - 1994 - ] - }, - { - "teal": 1883, - "source": 479, - "pc": [ - 1995 - ] - }, - { - "teal": 1886, - "source": 479, - "pc": [ - 1996, - 1997, - 1998 - ] - }, - { - "teal": 1887, - "source": 479, - "pc": [ - 1999 - ] - }, - { - "teal": 1888, - "source": 479, - "pc": [ - 2000 - ] - }, - { - "teal": 1889, - "source": 479, - "pc": [ - 2001, - 2002 - ] - }, - { - "teal": 1890, - "source": 479, - "pc": [ - 2003 - ] - }, - { - "teal": 1893, - "source": 479, - "errorMessage": "argument 2 (staker) for payTokenReward must be a address", - "pc": [ - 2004 - ] - }, - { - "teal": 1896, - "source": 479, - "pc": [ - 2005, - 2006, - 2007 - ] - }, - { - "teal": 1897, - "source": 479, - "pc": [ - 2008 - ] - }, - { - "teal": 1898, - "source": 479, - "pc": [ - 2009 - ] - }, - { - "teal": 1911, - "source": 479, - "pc": [ - 2010, - 2011, - 2012 - ] - }, - { - "teal": 1918, - "source": 482, - "pc": [ - 2013, - 2014 - ] - }, - { - "teal": 1919, - "source": 482, - "pc": [ - 2015 - ] - }, - { - "teal": 1920, - "source": 482, - "pc": [ - 2016 - ] - }, - { - "teal": 1921, - "source": 482, - "pc": [ - 2017, - 2018 - ] - }, - { - "teal": 1922, - "source": 482, - "pc": [ - 2019 - ] - }, - { - "teal": 1923, - "source": 482, - "pc": [ - 2020 - ] - }, - { - "teal": 1926, - "source": 481, - "errorMessage": "this can only be called via the validator contract", - "pc": [ - 2021 - ] - }, - { - "teal": 1930, - "source": 485, - "pc": [ - 2022 - ] - }, - { - "teal": 1931, - "source": 485, - "pc": [ - 2023 - ] - }, - { - "teal": 1932, - "source": 485, - "pc": [ - 2024 - ] - }, - { - "teal": 1933, - "source": 485, - "pc": [ - 2025 - ] - }, - { - "teal": 1936, - "source": 485, - "errorMessage": "must be pool 1 in order to be called to pay out token rewards", - "pc": [ - 2026 - ] - }, - { - "teal": 1940, - "source": 486, - "pc": [ - 2027, - 2028 - ] - }, - { - "teal": 1941, - "source": 486, - "pc": [ - 2029 - ] - }, - { - "teal": 1942, - "source": 486, - "pc": [ - 2030 - ] - }, - { - "teal": 1945, - "source": 486, - "errorMessage": "can only claim token rewards from validator that has them", - "pc": [ - 2031 - ] - }, - { - "teal": 1953, - "source": 489, - "pc": [ - 2032 - ] - }, - { - "teal": 1954, - "source": 489, - "pc": [ - 2033, - 2034 - ] - }, - { - "teal": 1955, - "source": 489, - "pc": [ - 2035, - 2036 - ] - }, - { - "teal": 1959, - "source": 490, - "pc": [ - 2037, - 2038 - ] - }, - { - "teal": 1960, - "source": 490, - "pc": [ - 2039, - 2040 - ] - }, - { - "teal": 1964, - "source": 491, - "pc": [ - 2041, - 2042 - ] - }, - { - "teal": 1965, - "source": 491, - "pc": [ - 2043, - 2044 - ] - }, - { - "teal": 1969, - "source": 492, - "pc": [ - 2045, - 2046 - ] - }, - { - "teal": 1970, - "source": 492, - "pc": [ - 2047, - 2048 - ] - }, - { - "teal": 1973, - "source": 489, - "pc": [ - 2049 - ] - }, - { - "teal": 1974, - "source": 489, - "pc": [ - 2050, - 2051 - ] - }, - { - "teal": 1977, - "source": 489, - "pc": [ - 2052 - ] - }, - { - "teal": 1978, - "source": 479, - "pc": [ - 2053 - ] - }, - { - "teal": 1983, - "source": 505, - "pc": [ - 2054, - 2055, - 2056 - ] - }, - { - "teal": 1984, - "source": 505, - "pc": [ - 2057, - 2058, - 2059 - ] - }, - { - "teal": 1987, - "source": 505, - "pc": [ - 2060, - 2061, - 2062 - ] - }, - { - "teal": 1988, - "source": 505, - "pc": [ - 2063 - ] - }, - { - "teal": 1989, - "source": 505, - "pc": [ - 2064 - ] - }, - { - "teal": 2001, - "source": 505, - "pc": [ - 2065, - 2066, - 2067 - ] - }, - { - "teal": 2005, - "source": 506, - "pc": [ - 2068, - 2069, - 2070 - ] - }, - { - "teal": 2008, - "source": 506, - "errorMessage": "can only be called by owner or manager of validator", - "pc": [ - 2071 - ] - }, - { - "teal": 2012, - "source": 507, - "pc": [ - 2072, - 2073, - 2074, - 2075, - 2076, - 2077, - 2078, - 2079, - 2080, - 2081 - ] - }, - { - "teal": 2013, - "source": 507, - "pc": [ - 2082, - 2083 - ] - }, - { - "teal": 2014, - "source": 507, - "pc": [ - 2084 - ] - }, - { - "teal": 2015, - "source": 505, - "pc": [ - 2085 - ] - }, - { - "teal": 2020, - "source": 518, - "pc": [ - 2086, - 2087, - 2088 - ] - }, - { - "teal": 2021, - "source": 518, - "pc": [ - 2089 - ] - }, - { - "teal": 2022, - "source": 518, - "pc": [ - 2090 - ] - }, - { - "teal": 2033, - "source": 518, - "pc": [ - 2091, - 2092, - 2093 - ] - }, - { - "teal": 2036, - "source": 518, - "pc": [ - 2094, - 2095 - ] - }, - { - "teal": 2037, - "source": 518, - "pc": [ - 2096, - 2097 - ] - }, - { - "teal": 2044, - "source": 520, - "pc": [ - 2098 - ] - }, - { - "teal": 2045, - "source": 520, - "pc": [ - 2099 - ] - }, - { - "teal": 2046, - "source": 520, - "pc": [ - 2100, - 2101 - ] - }, - { - "teal": 2047, - "source": 520, - "pc": [ - 2102, - 2103 - ] - }, - { - "teal": 2048, - "source": 520, - "pc": [ - 2104, - 2105 - ] - }, - { - "teal": 2052, - "source": 521, - "pc": [ - 2106 - ] - }, - { - "teal": 2053, - "source": 521, - "pc": [ - 2107 - ] - }, - { - "teal": 2054, - "source": 521, - "pc": [ - 2108, - 2109 - ] - }, - { - "teal": 2058, - "source": 522, - "pc": [ - 2110 - ] - }, - { - "teal": 2059, - "source": 522, - "pc": [ - 2111 - ] - }, - { - "teal": 2060, - "source": 522, - "pc": [ - 2112 - ] - }, - { - "teal": 2061, - "source": 522, - "pc": [ - 2113, - 2114 - ] - }, - { - "teal": 2064, - "source": 520, - "pc": [ - 2115 - ] - }, - { - "teal": 2065, - "source": 520, - "pc": [ - 2116, - 2117 - ] - }, - { - "teal": 2068, - "source": 520, - "pc": [ - 2118 - ] - }, - { - "teal": 2069, - "source": 520, - "pc": [ - 2119, - 2120 - ] - }, - { - "teal": 2070, - "source": 520, - "pc": [ - 2121 - ] - }, - { - "teal": 2071, - "source": 520, - "pc": [ - 2122 - ] - }, - { - "teal": 2072, - "source": 520, - "pc": [ - 2123, - 2124 - ] - }, - { - "teal": 2073, - "source": 520, - "pc": [ - 2125, - 2126, - 2127 - ] - }, - { - "teal": 2074, - "source": 520, - "pc": [ - 2128, - 2129 - ] - }, - { - "teal": 2078, - "source": 529, - "pc": [ - 2130, - 2131 - ] - }, - { - "teal": 2079, - "source": 529, - "pc": [ - 2132, - 2133, - 2134 - ] - }, - { - "teal": 2080, - "source": 529, - "pc": [ - 2135 - ] - }, - { - "teal": 2081, - "source": 529, - "pc": [ - 2136, - 2137 - ] - }, - { - "teal": 2085, - "source": 530, - "pc": [ - 2138, - 2139 - ] - }, - { - "teal": 2086, - "source": 530, - "pc": [ - 2140, - 2141 - ] - }, - { - "teal": 2090, - "source": 531, - "pc": [ - 2142, - 2143 - ] - }, - { - "teal": 2091, - "source": 531, - "pc": [ - 2144, - 2145 - ] - }, - { - "teal": 2092, - "source": 531, - "pc": [ - 2146, - 2147 - ] - }, - { - "teal": 2093, - "source": 531, - "pc": [ - 2148 - ] - }, - { - "teal": 2094, - "source": 531, - "pc": [ - 2149 - ] - }, - { - "teal": 2095, - "source": 531, - "pc": [ - 2150, - 2151 - ] - }, - { - "teal": 2100, - "source": 534, - "pc": [ - 2152, - 2153, - 2154 - ] - }, - { - "teal": 2101, - "source": 534, - "pc": [ - 2155, - 2156 - ] - }, - { - "teal": 2102, - "source": 534, - "pc": [ - 2157 - ] - }, - { - "teal": 2103, - "source": 534, - "pc": [ - 2158 - ] - }, - { - "teal": 2104, - "source": 534, - "pc": [ - 2159 - ] - }, - { - "teal": 2105, - "source": 534, - "pc": [ - 2160, - 2161, - 2162 - ] - }, - { - "teal": 2110, - "source": 535, - "pc": [ - 2163, - 2164 - ] - }, - { - "teal": 2111, - "source": 535, - "pc": [ - 2165 - ] - }, - { - "teal": 2112, - "source": 535, - "pc": [ - 2166, - 2167 - ] - }, - { - "teal": 2113, - "source": 535, - "pc": [ - 2168 - ] - }, - { - "teal": 2114, - "source": 535, - "pc": [ - 2169, - 2170 - ] - }, - { - "teal": 2115, - "source": 535, - "pc": [ - 2171 - ] - }, - { - "teal": 2116, - "source": 535, - "pc": [ - 2172 - ] - }, - { - "teal": 2117, - "source": 535, - "pc": [ - 2173, - 2174 - ] - }, - { - "teal": 2121, - "source": 539, - "pc": [ - 2175, - 2176 - ] - }, - { - "teal": 2122, - "source": 539, - "pc": [ - 2177, - 2178 - ] - }, - { - "teal": 2123, - "source": 539, - "pc": [ - 2179 - ] - }, - { - "teal": 2126, - "source": 539, - "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", - "pc": [ - 2180 - ] - }, - { - "teal": 2131, - "source": 542, - "pc": [ - 2181, - 2182, - 2183 - ] - }, - { - "teal": 2135, - "source": 545, - "pc": [ - 2184, - 2185 - ] - }, - { - "teal": 2136, - "source": 545, - "pc": [ - 2186, - 2187 - ] - }, - { - "teal": 2137, - "source": 545, - "pc": [ - 2188 - ] - }, - { - "teal": 2141, - "source": 546, - "pc": [ - 2189, - 2190 - ] - }, - { - "teal": 2142, - "source": 546, - "pc": [ - 2191 - ] - }, - { - "teal": 2143, - "source": 546, - "pc": [ - 2192 - ] - }, - { - "teal": 2144, - "source": 546, - "pc": [ - 2193 - ] - }, - { - "teal": 2145, - "source": 546, - "pc": [ - 2194, - 2195 - ] - }, - { - "teal": 2146, - "source": 546, - "pc": [ - 2196 - ] - }, - { - "teal": 2147, - "source": 546, - "pc": [ - 2197 - ] - }, - { - "teal": 2151, - "source": 551, - "pc": [ - 2198, - 2199 - ] - }, - { - "teal": 2152, - "source": 551, - "pc": [ - 2200, - 2201, - 2202 - ] - }, - { - "teal": 2153, - "source": 551, - "pc": [ - 2203 - ] - }, - { - "teal": 2154, - "source": 551, - "pc": [ - 2204 - ] - }, - { - "teal": 2155, - "source": 551, - "pc": [ - 2205 - ] - }, - { - "teal": 2156, - "source": 551, - "pc": [ - 2206, - 2207 - ] - }, - { - "teal": 2160, - "source": 552, - "pc": [ - 2208, - 2209, - 2210 - ] - }, - { - "teal": 2161, - "source": 552, - "pc": [ - 2211, - 2212 - ] - }, - { - "teal": 2165, - "source": 553, - "pc": [ - 2213, - 2214 - ] - }, - { - "teal": 2166, - "source": 553, - "pc": [ - 2215, - 2216 - ] - }, - { - "teal": 2171, - "source": 558, - "pc": [ - 2217, - 2218 - ] - }, - { - "teal": 2172, - "source": 558, - "pc": [ - 2219, - 2220, - 2221 - ] - }, - { - "teal": 2178, - "source": 559, - "pc": [ - 2222 - ] - }, - { - "teal": 2179, - "source": 559, - "pc": [ - 2223 - ] - }, - { - "teal": 2180, - "source": 559, - "pc": [ - 2224 - ] - }, - { - "teal": 2181, - "source": 559, - "pc": [ - 2225 - ] - }, - { - "teal": 2182, - "source": 559, - "pc": [ - 2226, - 2227, - 2228 - ] - }, - { - "teal": 2190, - "source": 561, - "pc": [ - 2229 - ] - }, - { - "teal": 2191, - "source": 561, - "pc": [ - 2230 - ] - }, - { - "teal": 2192, - "source": 561, - "pc": [ - 2231, - 2232 - ] - }, - { - "teal": 2193, - "source": 561, - "pc": [ - 2233, - 2234 - ] - }, - { - "teal": 2194, - "source": 561, - "pc": [ - 2235, - 2236 - ] - }, - { - "teal": 2198, - "source": 562, - "pc": [ - 2237 - ] - }, - { - "teal": 2199, - "source": 562, - "pc": [ - 2238 - ] - }, - { - "teal": 2200, - "source": 562, - "pc": [ - 2239, - 2240 - ] - }, - { - "teal": 2204, - "source": 563, - "pc": [ - 2241 - ] - }, - { - "teal": 2205, - "source": 563, - "pc": [ - 2242 - ] - }, - { - "teal": 2206, - "source": 563, - "pc": [ - 2243 - ] - }, - { - "teal": 2207, - "source": 563, - "pc": [ - 2244, - 2245 - ] - }, - { - "teal": 2208, - "source": 563, - "pc": [ - 2246, - 2247, - 2248, - 2249, - 2250, - 2251, - 2252, - 2253, - 2254, - 2255 - ] - }, - { - "teal": 2209, - "source": 563, - "pc": [ - 2256, - 2257 - ] - }, - { - "teal": 2212, - "source": 561, - "pc": [ - 2258 - ] - }, - { - "teal": 2213, - "source": 561, - "pc": [ - 2259, - 2260 - ] - }, - { - "teal": 2216, - "source": 561, - "pc": [ - 2261 - ] - }, - { - "teal": 2217, - "source": 561, - "pc": [ - 2262, - 2263 - ] - }, - { - "teal": 2218, - "source": 561, - "pc": [ - 2264 - ] - }, - { - "teal": 2219, - "source": 561, - "pc": [ - 2265 - ] - }, - { - "teal": 2220, - "source": 561, - "pc": [ - 2266, - 2267 - ] - }, - { - "teal": 2221, - "source": 561, - "pc": [ - 2268, - 2269, - 2270 - ] - }, - { - "teal": 2222, - "source": 561, - "pc": [ - 2271 - ] - }, - { - "teal": 2223, - "source": 561, - "pc": [ - 2272, - 2273 - ] - }, - { - "teal": 2227, - "source": 565, - "pc": [ - 2274, - 2275 - ] - }, - { - "teal": 2228, - "source": 565, - "pc": [ - 2276, - 2277 - ] - }, - { - "teal": 2229, - "source": 565, - "pc": [ - 2278 - ] - }, - { - "teal": 2230, - "source": 565, - "pc": [ - 2279, - 2280 - ] - }, - { - "teal": 2236, - "source": 570, - "pc": [ - 2281 - ] - }, - { - "teal": 2237, - "source": 570, - "pc": [ - 2282 - ] - }, - { - "teal": 2238, - "source": 570, - "pc": [ - 2283 - ] - }, - { - "teal": 2239, - "source": 570, - "pc": [ - 2284 - ] - }, - { - "teal": 2240, - "source": 570, - "pc": [ - 2285, - 2286, - 2287 - ] - }, - { - "teal": 2248, - "source": 571, - "pc": [ - 2288 - ] - }, - { - "teal": 2249, - "source": 571, - "pc": [ - 2289 - ] - }, - { - "teal": 2250, - "source": 571, - "pc": [ - 2290, - 2291 - ] - }, - { - "teal": 2251, - "source": 571, - "pc": [ - 2292, - 2293 - ] - }, - { - "teal": 2252, - "source": 571, - "pc": [ - 2294, - 2295 - ] - }, - { - "teal": 2256, - "source": 572, - "pc": [ - 2296 - ] - }, - { - "teal": 2257, - "source": 572, - "pc": [ - 2297 - ] - }, - { - "teal": 2258, - "source": 572, - "pc": [ - 2298, - 2299 - ] - }, - { - "teal": 2262, - "source": 573, - "pc": [ - 2300 - ] - }, - { - "teal": 2263, - "source": 573, - "pc": [ - 2301 - ] - }, - { - "teal": 2264, - "source": 573, - "pc": [ - 2302 - ] - }, - { - "teal": 2265, - "source": 573, - "pc": [ - 2303, - 2304 - ] - }, - { - "teal": 2268, - "source": 571, - "pc": [ - 2305 - ] - }, - { - "teal": 2269, - "source": 571, - "pc": [ - 2306, - 2307 - ] - }, - { - "teal": 2272, - "source": 571, - "pc": [ - 2308 - ] - }, - { - "teal": 2273, - "source": 571, - "pc": [ - 2309, - 2310 - ] - }, - { - "teal": 2274, - "source": 571, - "pc": [ - 2311 - ] - }, - { - "teal": 2275, - "source": 571, - "pc": [ - 2312 - ] - }, - { - "teal": 2276, - "source": 571, - "pc": [ - 2313, - 2314 - ] - }, - { - "teal": 2277, - "source": 571, - "pc": [ - 2315, - 2316, - 2317 - ] - }, - { - "teal": 2278, - "source": 571, - "pc": [ - 2318, - 2319 - ] - }, - { - "teal": 2279, - "source": 570, - "pc": [ - 2320, - 2321, - 2322 - ] - }, - { - "teal": 2287, - "source": 577, - "pc": [ - 2323 - ] - }, - { - "teal": 2288, - "source": 577, - "pc": [ - 2324 - ] - }, - { - "teal": 2289, - "source": 577, - "pc": [ - 2325, - 2326 - ] - }, - { - "teal": 2290, - "source": 577, - "pc": [ - 2327, - 2328 - ] - }, - { - "teal": 2291, - "source": 577, - "pc": [ - 2329, - 2330 - ] - }, - { - "teal": 2295, - "source": 578, - "pc": [ - 2331, - 2332 - ] - }, - { - "teal": 2296, - "source": 578, - "pc": [ - 2333, - 2334 - ] - }, - { - "teal": 2300, - "source": 579, - "pc": [ - 2335 - ] - }, - { - "teal": 2301, - "source": 579, - "pc": [ - 2336 - ] - }, - { - "teal": 2302, - "source": 579, - "pc": [ - 2337 - ] - }, - { - "teal": 2303, - "source": 579, - "pc": [ - 2338 - ] - }, - { - "teal": 2304, - "source": 579, - "pc": [ - 2339 - ] - }, - { - "teal": 2305, - "source": 579, - "pc": [ - 2340 - ] - }, - { - "teal": 2306, - "source": 579, - "pc": [ - 2341 - ] - }, - { - "teal": 2307, - "source": 579, - "pc": [ - 2342, - 2343, - 2344 - ] - }, - { - "teal": 2308, - "source": 579, - "pc": [ - 2345 - ] - }, - { - "teal": 2309, - "source": 579, - "pc": [ - 2346 - ] - }, - { - "teal": 2310, - "source": 579, - "pc": [ - 2347, - 2348 - ] - }, - { - "teal": 2313, - "source": 577, - "pc": [ - 2349 - ] - }, - { - "teal": 2314, - "source": 577, - "pc": [ - 2350, - 2351 - ] - }, - { - "teal": 2317, - "source": 577, - "pc": [ - 2352 - ] - }, - { - "teal": 2318, - "source": 577, - "pc": [ - 2353, - 2354 - ] - }, - { - "teal": 2319, - "source": 577, - "pc": [ - 2355 - ] - }, - { - "teal": 2320, - "source": 577, - "pc": [ - 2356 - ] - }, - { - "teal": 2321, - "source": 577, - "pc": [ - 2357, - 2358 - ] - }, - { - "teal": 2322, - "source": 577, - "pc": [ - 2359, - 2360, - 2361 - ] - }, - { - "teal": 2323, - "source": 577, - "pc": [ - 2362, - 2363 - ] - }, - { - "teal": 2333, - "source": 586, - "pc": [ - 2364 - ] - }, - { - "teal": 2334, - "source": 586, - "pc": [ - 2365 - ] - }, - { - "teal": 2335, - "source": 586, - "pc": [ - 2366, - 2367 - ] - }, - { - "teal": 2336, - "source": 586, - "pc": [ - 2368, - 2369, - 2370, - 2371, - 2372, - 2373 - ] - }, - { - "teal": 2337, - "source": 586, - "pc": [ - 2374, - 2375 - ] - }, - { - "teal": 2341, - "source": 587, - "pc": [ - 2376 - ] - }, - { - "teal": 2342, - "source": 587, - "pc": [ - 2377 - ] - }, - { - "teal": 2343, - "source": 587, - "pc": [ - 2378, - 2379 - ] - }, - { - "teal": 2347, - "source": 588, - "pc": [ - 2380 - ] - }, - { - "teal": 2348, - "source": 588, - "pc": [ - 2381 - ] - }, - { - "teal": 2349, - "source": 588, - "pc": [ - 2382 - ] - }, - { - "teal": 2350, - "source": 588, - "pc": [ - 2383, - 2384 - ] - }, - { - "teal": 2353, - "source": 586, - "pc": [ - 2385 - ] - }, - { - "teal": 2354, - "source": 586, - "pc": [ - 2386, - 2387 - ] - }, - { - "teal": 2357, - "source": 586, - "pc": [ - 2388 - ] - }, - { - "teal": 2358, - "source": 586, - "pc": [ - 2389, - 2390 - ] - }, - { - "teal": 2359, - "source": 586, - "pc": [ - 2391 - ] - }, - { - "teal": 2360, - "source": 586, - "pc": [ - 2392 - ] - }, - { - "teal": 2361, - "source": 586, - "pc": [ - 2393, - 2394 - ] - }, - { - "teal": 2362, - "source": 586, - "pc": [ - 2395, - 2396, - 2397 - ] - }, - { - "teal": 2363, - "source": 586, - "pc": [ - 2398, - 2399 - ] - }, - { - "teal": 2367, - "source": 590, - "pc": [ - 2400, - 2401 - ] - }, - { - "teal": 2368, - "source": 590, - "pc": [ - 2402, - 2403, - 2404 - ] - }, - { - "teal": 2369, - "source": 590, - "pc": [ - 2405 - ] - }, - { - "teal": 2370, - "source": 590, - "pc": [ - 2406, - 2407 - ] - }, - { - "teal": 2374, - "source": 596, - "pc": [ - 2408, - 2409 - ] - }, - { - "teal": 2375, - "source": 596, - "pc": [ - 2410, - 2411 - ] - }, - { - "teal": 2376, - "source": 596, - "pc": [ - 2412 - ] - }, - { - "teal": 2377, - "source": 596, - "pc": [ - 2413, - 2414 - ] - }, - { - "teal": 2378, - "source": 596, - "pc": [ - 2415 - ] - }, - { - "teal": 2379, - "source": 596, - "pc": [ - 2416 - ] - }, - { - "teal": 2380, - "source": 596, - "pc": [ - 2417, - 2418 - ] - }, - { - "teal": 2381, - "source": 596, - "pc": [ - 2419, - 2420 - ] - }, - { - "teal": 2382, - "source": 596, - "pc": [ - 2421 - ] - }, - { - "teal": 2383, - "source": 596, - "pc": [ - 2422 - ] - }, - { - "teal": 2384, - "source": 596, - "pc": [ - 2423, - 2424 - ] - }, - { - "teal": 2388, - "source": 597, - "pc": [ - 2425 - ] - }, - { - "teal": 2389, - "source": 597, - "pc": [ - 2426, - 2427 - ] - }, - { - "teal": 2393, - "source": 598, - "pc": [ - 2428, - 2429, - 2430 - ] - }, - { - "teal": 2394, - "source": 598, - "pc": [ - 2431, - 2432 - ] - }, - { - "teal": 2399, - "source": 606, - "pc": [ - 2433, - 2434 - ] - }, - { - "teal": 2400, - "source": 606, - "pc": [ - 2435, - 2436, - 2437 - ] - }, - { - "teal": 2401, - "source": 606, - "pc": [ - 2438 - ] - }, - { - "teal": 2402, - "source": 606, - "pc": [ - 2439, - 2440 - ] - }, - { - "teal": 2403, - "source": 606, - "pc": [ - 2441 - ] - }, - { - "teal": 2404, - "source": 606, - "pc": [ - 2442, - 2443, - 2444 - ] - }, - { - "teal": 2409, - "source": 607, - "pc": [ - 2445 - ] - }, - { - "teal": 2410, - "source": 607, - "pc": [ - 2446, - 2447 - ] - }, - { - "teal": 2415, - "source": 613, - "pc": [ - 2448 - ] - }, - { - "teal": 2416, - "source": 613, - "pc": [ - 2449, - 2450 - ] - }, - { - "teal": 2420, - "source": 614, - "pc": [ - 2451 - ] - }, - { - "teal": 2421, - "source": 614, - "pc": [ - 2452, - 2453 - ] - }, - { - "teal": 2425, - "source": 615, - "pc": [ - 2454 - ] - }, - { - "teal": 2426, - "source": 615, - "pc": [ - 2455, - 2456 - ] - }, - { - "teal": 2430, - "source": 616, - "pc": [ - 2457 - ] - }, - { - "teal": 2431, - "source": 616, - "pc": [ - 2458, - 2459 - ] - }, - { - "teal": 2436, - "source": 617, - "pc": [ - 2460, - 2461 - ] - }, - { - "teal": 2437, - "source": 617, - "pc": [ - 2462, - 2463, - 2464 - ] - }, - { - "teal": 2443, - "source": 619, - "pc": [ - 2465, - 2466 - ] - }, - { - "teal": 2444, - "source": 619, - "pc": [ - 2467, - 2468 - ] - }, - { - "teal": 2445, - "source": 619, - "pc": [ - 2469, - 2470, - 2471 - ] - }, - { - "teal": 2446, - "source": 619, - "pc": [ - 2472 - ] - }, - { - "teal": 2447, - "source": 619, - "pc": [ - 2473, - 2474 - ] - }, - { - "teal": 2448, - "source": 619, - "pc": [ - 2475 - ] - }, - { - "teal": 2449, - "source": 619, - "pc": [ - 2476, - 2477 - ] - }, - { - "teal": 2450, - "source": 619, - "pc": [ - 2478 - ] - }, - { - "teal": 2451, - "source": 618, - "pc": [ - 2479, - 2480 - ] - }, - { - "teal": 2456, - "source": 623, - "pc": [ - 2481, - 2482 - ] - }, - { - "teal": 2457, - "source": 623, - "pc": [ - 2483, - 2484 - ] - }, - { - "teal": 2458, - "source": 623, - "pc": [ - 2485, - 2486, - 2487 - ] - }, - { - "teal": 2459, - "source": 623, - "pc": [ - 2488 - ] - }, - { - "teal": 2460, - "source": 623, - "pc": [ - 2489 - ] - }, - { - "teal": 2461, - "source": 623, - "pc": [ - 2490, - 2491, - 2492 - ] - }, - { - "teal": 2466, - "source": 629, - "pc": [ - 2493, - 2494 - ] - }, - { - "teal": 2467, - "source": 629, - "pc": [ - 2495 - ] - }, - { - "teal": 2468, - "source": 629, - "pc": [ - 2496 - ] - }, - { - "teal": 2469, - "source": 629, - "pc": [ - 2497 - ] - }, - { - "teal": 2470, - "source": 629, - "pc": [ - 2498 - ] - }, - { - "teal": 2471, - "source": 629, - "pc": [ - 2499 - ] - }, - { - "teal": 2472, - "source": 629, - "pc": [ - 2500, - 2501 - ] - }, - { - "teal": 2473, - "source": 629, - "pc": [ - 2502 - ] - }, - { - "teal": 2474, - "source": 629, - "pc": [ - 2503 - ] - }, - { - "teal": 2475, - "source": 629, - "pc": [ - 2504, - 2505 - ] - }, - { - "teal": 2476, - "source": 629, - "pc": [ - 2506 - ] - }, - { - "teal": 2477, - "source": 629, - "pc": [ - 2507 - ] - }, - { - "teal": 2478, - "source": 629, - "pc": [ - 2508, - 2509 - ] - }, - { - "teal": 2482, - "source": 632, - "pc": [ - 2510, - 2511 - ] - }, - { - "teal": 2483, - "source": 632, - "pc": [ - 2512, - 2513, - 2514 - ] - }, - { - "teal": 2484, - "source": 632, - "pc": [ - 2515 - ] - }, - { - "teal": 2485, - "source": 632, - "pc": [ - 2516, - 2517 - ] - }, - { - "teal": 2486, - "source": 632, - "pc": [ - 2518 - ] - }, - { - "teal": 2487, - "source": 632, - "pc": [ - 2519 - ] - }, - { - "teal": 2488, - "source": 632, - "pc": [ - 2520, - 2521 - ] - }, - { - "teal": 2489, - "source": 632, - "pc": [ - 2522 - ] - }, - { - "teal": 2490, - "source": 632, - "pc": [ - 2523 - ] - }, - { - "teal": 2491, - "source": 632, - "pc": [ - 2524 - ] - }, - { - "teal": 2492, - "source": 632, - "pc": [ - 2525 - ] - }, - { - "teal": 2493, - "source": 632, - "pc": [ - 2526 - ] - }, - { - "teal": 2496, - "source": 632, - "errorMessage": "wideRatio failed", - "pc": [ - 2527 - ] - }, - { - "teal": 2497, - "source": 632, - "pc": [ - 2528, - 2529 - ] - }, - { - "teal": 2505, - "source": 635, - "pc": [ - 2530, - 2531 - ] - }, - { - "teal": 2506, - "source": 635, - "pc": [ - 2532 - ] - }, - { - "teal": 2507, - "source": 635, - "pc": [ - 2533 - ] - }, - { - "teal": 2508, - "source": 635, - "pc": [ - 2534, - 2535, - 2536 - ] - }, - { - "teal": 2514, - "source": 640, - "pc": [ - 2537, - 2538 - ] - }, - { - "teal": 2515, - "source": 640, - "pc": [ - 2539, - 2540 - ] - }, - { - "teal": 2516, - "source": 640, - "pc": [ - 2541 - ] - }, - { - "teal": 2517, - "source": 640, - "pc": [ - 2542, - 2543, - 2544 - ] - }, - { - "teal": 2522, - "source": 641, - "pc": [ - 2545, - 2546, - 2547, - 2548, - 2549, - 2550, - 2551, - 2552, - 2553, - 2554, - 2555, - 2556, - 2557, - 2558, - 2559, - 2560, - 2561, - 2562, - 2563, - 2564, - 2565, - 2566, - 2567, - 2568 - ] - }, - { - "teal": 2523, - "source": 641, - "pc": [ - 2569 - ] - }, - { - "teal": 2527, - "source": 642, - "pc": [ - 2570 - ] - }, - { - "teal": 2535, - "source": 646, - "pc": [ - 2571, - 2572 - ] - }, - { - "teal": 2536, - "source": 646, - "pc": [ - 2573, - 2574, - 2575 - ] - }, - { - "teal": 2541, - "source": 649, - "pc": [ - 2576, - 2577 - ] - }, - { - "teal": 2542, - "source": 649, - "pc": [ - 2578, - 2579 - ] - }, - { - "teal": 2543, - "source": 649, - "pc": [ - 2580 - ] - }, - { - "teal": 2544, - "source": 649, - "pc": [ - 2581 - ] - }, - { - "teal": 2545, - "source": 649, - "pc": [ - 2582, - 2583 - ] - }, - { - "teal": 2546, - "source": 649, - "pc": [ - 2584, - 2585, - 2586 - ] - }, - { - "teal": 2547, - "source": 649, - "pc": [ - 2587 - ] - }, - { - "teal": 2548, - "source": 649, - "pc": [ - 2588 - ] - }, - { - "teal": 2549, - "source": 649, - "pc": [ - 2589 - ] - }, - { - "teal": 2550, - "source": 649, - "pc": [ - 2590 - ] - }, - { - "teal": 2551, - "source": 649, - "pc": [ - 2591 - ] - }, - { - "teal": 2552, - "source": 649, - "pc": [ - 2592 - ] - }, - { - "teal": 2555, - "source": 649, - "errorMessage": "wideRatio failed", - "pc": [ - 2593 - ] - }, - { - "teal": 2556, - "source": 649, - "pc": [ - 2594, - 2595 - ] - }, - { - "teal": 2560, - "source": 651, - "pc": [ - 2596, - 2597 - ] - }, - { - "teal": 2561, - "source": 651, - "pc": [ - 2598, - 2599 - ] - }, - { - "teal": 2562, - "source": 651, - "pc": [ - 2600 - ] - }, - { - "teal": 2563, - "source": 651, - "pc": [ - 2601, - 2602 - ] - }, - { - "teal": 2571, - "source": 652, - "pc": [ - 2603 - ] - }, - { - "teal": 2572, - "source": 652, - "pc": [ - 2604 - ] - }, - { - "teal": 2573, - "source": 652, - "pc": [ - 2605, - 2606 - ] - }, - { - "teal": 2577, - "source": 653, - "pc": [ - 2607, - 2608 - ] - }, - { - "teal": 2578, - "source": 653, - "pc": [ - 2609, - 2610 - ] - }, - { - "teal": 2582, - "source": 654, - "pc": [ - 2611, - 2612, - 2613 - ] - }, - { - "teal": 2583, - "source": 654, - "pc": [ - 2614, - 2615 - ] - }, - { - "teal": 2587, - "source": 655, - "pc": [ - 2616, - 2617, - 2618, - 2619, - 2620, - 2621, - 2622, - 2623, - 2624, - 2625, - 2626, - 2627, - 2628, - 2629, - 2630, - 2631, - 2632, - 2633, - 2634, - 2635, - 2636, - 2637, - 2638, - 2639, - 2640, - 2641, - 2642, - 2643, - 2644, - 2645, - 2646, - 2647, - 2648, - 2649, - 2650, - 2651 - ] - }, - { - "teal": 2588, - "source": 655, - "pc": [ - 2652, - 2653 - ] - }, - { - "teal": 2591, - "source": 652, - "pc": [ - 2654 - ] - }, - { - "teal": 2592, - "source": 652, - "pc": [ - 2655, - 2656 - ] - }, - { - "teal": 2595, - "source": 652, - "pc": [ - 2657 - ] - }, - { - "teal": 2599, - "source": 658, - "pc": [ - 2658, - 2659 - ] - }, - { - "teal": 2600, - "source": 658, - "pc": [ - 2660, - 2661 - ] - }, - { - "teal": 2601, - "source": 646, - "pc": [ - 2662, - 2663, - 2664 - ] - }, - { - "teal": 2606, - "source": 659, - "pc": [ - 2665, - 2666 - ] - }, - { - "teal": 2607, - "source": 659, - "pc": [ - 2667, - 2668, - 2669 - ] - }, - { - "teal": 2608, - "source": 659, - "pc": [ - 2670 - ] - }, - { - "teal": 2609, - "source": 659, - "pc": [ - 2671 - ] - }, - { - "teal": 2610, - "source": 659, - "pc": [ - 2672 - ] - }, - { - "teal": 2611, - "source": 659, - "pc": [ - 2673, - 2674, - 2675 - ] - }, - { - "teal": 2619, - "source": 663, - "pc": [ - 2676, - 2677 - ] - }, - { - "teal": 2620, - "source": 663, - "pc": [ - 2678, - 2679 - ] - }, - { - "teal": 2621, - "source": 663, - "pc": [ - 2680, - 2681, - 2682 - ] - }, - { - "teal": 2622, - "source": 663, - "pc": [ - 2683 - ] - }, - { - "teal": 2623, - "source": 662, - "pc": [ - 2684 - ] - }, - { - "teal": 2624, - "source": 662, - "pc": [ - 2685 - ] - }, - { - "teal": 2625, - "source": 664, - "pc": [ - 2686, - 2687 - ] - }, - { - "teal": 2626, - "source": 662, - "pc": [ - 2688 - ] - }, - { - "teal": 2627, - "source": 662, - "pc": [ - 2689 - ] - }, - { - "teal": 2628, - "source": 662, - "pc": [ - 2690 - ] - }, - { - "teal": 2629, - "source": 662, - "pc": [ - 2691 - ] - }, - { - "teal": 2630, - "source": 662, - "pc": [ - 2692 - ] - }, - { - "teal": 2633, - "source": 662, - "errorMessage": "wideRatio failed", - "pc": [ - 2693 - ] - }, - { - "teal": 2634, - "source": 662, - "pc": [ - 2694, - 2695 - ] - }, - { - "teal": 2638, - "source": 668, - "pc": [ - 2696, - 2697 - ] - }, - { - "teal": 2639, - "source": 668, - "pc": [ - 2698, - 2699 - ] - }, - { - "teal": 2640, - "source": 668, - "pc": [ - 2700 - ] - }, - { - "teal": 2641, - "source": 668, - "pc": [ - 2701, - 2702 - ] - }, - { - "teal": 2646, - "source": 675, - "pc": [ - 2703, - 2704 - ] - }, - { - "teal": 2647, - "source": 675, - "pc": [ - 2705 - ] - }, - { - "teal": 2648, - "source": 675, - "pc": [ - 2706 - ] - }, - { - "teal": 2649, - "source": 675, - "pc": [ - 2707, - 2708, - 2709 - ] - }, - { - "teal": 2654, - "source": 678, - "pc": [ - 2710 - ] - }, - { - "teal": 2655, - "source": 678, - "pc": [ - 2711, - 2712 - ] - }, - { - "teal": 2661, - "source": 680, - "pc": [ - 2713, - 2714 - ] - }, - { - "teal": 2662, - "source": 680, - "pc": [ - 2715, - 2716, - 2717 - ] - }, - { - "teal": 2663, - "source": 680, - "pc": [ - 2718, - 2719 - ] - }, - { - "teal": 2664, - "source": 680, - "pc": [ - 2720, - 2721, - 2722 - ] - }, - { - "teal": 2665, - "source": 680, - "pc": [ - 2723 - ] - }, - { - "teal": 2666, - "source": 680, - "pc": [ - 2724 - ] - }, - { - "teal": 2667, - "source": 680, - "pc": [ - 2725, - 2726, - 2727 - ] - }, - { - "teal": 2668, - "source": 681, - "pc": [ - 2728, - 2729 - ] - }, - { - "teal": 2669, - "source": 681, - "pc": [ - 2730, - 2731, - 2732 - ] - }, - { - "teal": 2670, - "source": 681, - "pc": [ - 2733, - 2734 - ] - }, - { - "teal": 2671, - "source": 681, - "pc": [ - 2735 - ] - }, - { - "teal": 2672, - "source": 681, - "pc": [ - 2736, - 2737 - ] - }, - { - "teal": 2673, - "source": 681, - "pc": [ - 2738, - 2739, - 2740 - ] - }, - { - "teal": 2674, - "source": 681, - "pc": [ - 2741, - 2742 - ] - }, - { - "teal": 2675, - "source": 681, - "pc": [ - 2743 - ] - }, - { - "teal": 2676, - "source": 681, - "pc": [ - 2744 - ] - }, - { - "teal": 2677, - "source": 681, - "pc": [ - 2745, - 2746 - ] - }, - { - "teal": 2678, - "source": 681, - "pc": [ - 2747 - ] - }, - { - "teal": 2679, - "source": 680, - "pc": [ - 2748 - ] - }, - { - "teal": 2682, - "source": 679, - "pc": [ - 2749, - 2750, - 2751 - ] - }, - { - "teal": 2687, - "source": 683, - "pc": [ - 2752, - 2753 - ] - }, - { - "teal": 2688, - "source": 683, - "pc": [ - 2754, - 2755 - ] - }, - { - "teal": 2689, - "source": 683, - "pc": [ - 2756 - ] - }, - { - "teal": 2690, - "source": 683, - "pc": [ - 2757, - 2758, - 2759 - ] - }, - { - "teal": 2691, - "source": 683, - "pc": [ - 2760, - 2761 - ] - }, - { - "teal": 2692, - "source": 683, - "pc": [ - 2762, - 2763, - 2764 - ] - }, - { - "teal": 2695, - "source": 683, - "pc": [ - 2765, - 2766 - ] - }, - { - "teal": 2698, - "source": 683, - "pc": [ - 2767, - 2768 - ] - }, - { - "teal": 2706, - "source": 684, - "pc": [ - 2769 - ] - }, - { - "teal": 2707, - "source": 684, - "pc": [ - 2770 - ] - }, - { - "teal": 2708, - "source": 684, - "pc": [ - 2771, - 2772 - ] - }, - { - "teal": 2712, - "source": 685, - "pc": [ - 2773, - 2774 - ] - }, - { - "teal": 2713, - "source": 685, - "pc": [ - 2775, - 2776 - ] - }, - { - "teal": 2717, - "source": 686, - "pc": [ - 2777, - 2778 - ] - }, - { - "teal": 2718, - "source": 686, - "pc": [ - 2779, - 2780, - 2781 - ] - }, - { - "teal": 2719, - "source": 686, - "pc": [ - 2782, - 2783 - ] - }, - { - "teal": 2723, - "source": 687, - "pc": [ - 2784, - 2785, - 2786, - 2787, - 2788, - 2789, - 2790, - 2791, - 2792, - 2793, - 2794, - 2795, - 2796, - 2797, - 2798, - 2799, - 2800, - 2801, - 2802, - 2803, - 2804, - 2805, - 2806, - 2807, - 2808, - 2809, - 2810, - 2811, - 2812, - 2813, - 2814, - 2815, - 2816, - 2817, - 2818, - 2819, - 2820, - 2821, - 2822, - 2823, - 2824, - 2825, - 2826, - 2827, - 2828, - 2829, - 2830, - 2831, - 2832, - 2833, - 2834, - 2835, - 2836, - 2837, - 2838 - ] - }, - { - "teal": 2724, - "source": 687, - "pc": [ - 2839, - 2840 - ] - }, - { - "teal": 2727, - "source": 684, - "pc": [ - 2841 - ] - }, - { - "teal": 2728, - "source": 684, - "pc": [ - 2842, - 2843 - ] - }, - { - "teal": 2731, - "source": 684, - "pc": [ - 2844 - ] - }, - { - "teal": 2737, - "source": 690, - "pc": [ - 2845, - 2846 - ] - }, - { - "teal": 2738, - "source": 690, - "pc": [ - 2847, - 2848 - ] - }, - { - "teal": 2739, - "source": 690, - "pc": [ - 2849 - ] - }, - { - "teal": 2740, - "source": 690, - "pc": [ - 2850 - ] - }, - { - "teal": 2741, - "source": 690, - "pc": [ - 2851 - ] - }, - { - "teal": 2742, - "source": 690, - "pc": [ - 2852, - 2853, - 2854 - ] - }, - { - "teal": 2751, - "source": 691, - "pc": [ - 2855 - ] - }, - { - "teal": 2752, - "source": 691, - "pc": [ - 2856 - ] - }, - { - "teal": 2753, - "source": 691, - "pc": [ - 2857, - 2858 - ] - }, - { - "teal": 2757, - "source": 692, - "pc": [ - 2859, - 2860 - ] - }, - { - "teal": 2758, - "source": 692, - "pc": [ - 2861, - 2862 - ] - }, - { - "teal": 2759, - "source": 692, - "pc": [ - 2863 - ] - }, - { - "teal": 2760, - "source": 692, - "pc": [ - 2864, - 2865 - ] - }, - { - "teal": 2764, - "source": 693, - "pc": [ - 2866, - 2867 - ] - }, - { - "teal": 2765, - "source": 693, - "pc": [ - 2868, - 2869, - 2870 - ] - }, - { - "teal": 2766, - "source": 693, - "pc": [ - 2871, - 2872 - ] - }, - { - "teal": 2770, - "source": 694, - "pc": [ - 2873, - 2874, - 2875, - 2876, - 2877, - 2878, - 2879, - 2880, - 2881, - 2882, - 2883, - 2884, - 2885, - 2886, - 2887, - 2888, - 2889, - 2890 - ] - }, - { - "teal": 2771, - "source": 694, - "pc": [ - 2891, - 2892 - ] - }, - { - "teal": 2774, - "source": 691, - "pc": [ - 2893 - ] - }, - { - "teal": 2775, - "source": 691, - "pc": [ - 2894, - 2895 - ] - }, - { - "teal": 2778, - "source": 691, - "pc": [ - 2896 - ] - }, - { - "teal": 2787, - "source": 706, - "pc": [ - 2897 - ] - }, - { - "teal": 2788, - "source": 706, - "pc": [ - 2898, - 2899 - ] - }, - { - "teal": 2793, - "source": 730, - "pc": [ - 2900, - 2901 - ] - }, - { - "teal": 2794, - "source": 730, - "pc": [ - 2902 - ] - }, - { - "teal": 2795, - "source": 730, - "pc": [ - 2903 - ] - }, - { - "teal": 2796, - "source": 730, - "pc": [ - 2904 - ] - }, - { - "teal": 2797, - "source": 730, - "pc": [ - 2905, - 2906, - 2907 - ] - }, - { - "teal": 2798, - "source": 730, - "pc": [ - 2908, - 2909 - ] - }, - { - "teal": 2799, - "source": 730, - "pc": [ - 2910 - ] - }, - { - "teal": 2800, - "source": 730, - "pc": [ - 2911 - ] - }, - { - "teal": 2801, - "source": 730, - "pc": [ - 2912 - ] - }, - { - "teal": 2804, - "source": 730, - "pc": [ - 2913, - 2914, - 2915 - ] - }, - { - "teal": 2809, - "source": 731, - "pc": [ - 2916 - ] - }, - { - "teal": 2810, - "source": 731, - "pc": [ - 2917, - 2918 - ] - }, - { - "teal": 2814, - "source": 732, - "pc": [ - 2919 - ] - }, - { - "teal": 2815, - "source": 732, - "pc": [ - 2920, - 2921 - ] - }, - { - "teal": 2820, - "source": 732, - "pc": [ - 2922, - 2923 - ] - }, - { - "teal": 2821, - "source": 732, - "pc": [ - 2924, - 2925 - ] - }, - { - "teal": 2822, - "source": 732, - "pc": [ - 2926 - ] - }, - { - "teal": 2823, - "source": 732, - "pc": [ - 2927, - 2928, - 2929 - ] - }, - { - "teal": 2828, - "source": 733, - "pc": [ - 2930, - 2931 - ] - }, - { - "teal": 2829, - "source": 733, - "pc": [ - 2932, - 2933 - ] - }, - { - "teal": 2830, - "source": 733, - "pc": [ - 2934 - ] - }, - { - "teal": 2831, - "source": 733, - "pc": [ - 2935, - 2936, - 2937 - ] - }, - { - "teal": 2836, - "source": 734, - "pc": [ - 2938 - ] - }, - { - "teal": 2837, - "source": 734, - "pc": [ - 2939 - ] - }, - { - "teal": 2838, - "source": 734, - "pc": [ - 2940, - 2941 - ] - }, - { - "teal": 2839, - "source": 734, - "pc": [ - 2942 - ] - }, - { - "teal": 2840, - "source": 734, - "pc": [ - 2943, - 2944 - ] - }, - { - "teal": 2841, - "source": 734, - "pc": [ - 2945, - 2946 - ] - }, - { - "teal": 2842, - "source": 734, - "pc": [ - 2947 - ] - }, - { - "teal": 2843, - "source": 734, - "pc": [ - 2948, - 2949 - ] - }, - { - "teal": 2844, - "source": 734, - "pc": [ - 2950, - 2951 - ] - }, - { - "teal": 2845, - "source": 734, - "pc": [ - 2952, - 2953 - ] - }, - { - "teal": 2846, - "source": 734, - "pc": [ - 2954, - 2955 - ] - }, - { - "teal": 2847, - "source": 734, - "pc": [ - 2956 - ] - }, - { - "teal": 2852, - "source": 736, - "pc": [ - 2957, - 2958 - ] - }, - { - "teal": 2853, - "source": 736, - "pc": [ - 2959 - ] - }, - { - "teal": 2854, - "source": 736, - "pc": [ - 2960 - ] - }, - { - "teal": 2855, - "source": 736, - "pc": [ - 2961 - ] - }, - { - "teal": 2856, - "source": 736, - "pc": [ - 2962 - ] - }, - { - "teal": 2857, - "source": 736, - "pc": [ - 2963, - 2964 - ] - }, - { - "teal": 2858, - "source": 736, - "pc": [ - 2965 - ] - }, - { - "teal": 2859, - "source": 736, - "pc": [ - 2966, - 2967 - ] - }, - { - "teal": 2864, - "source": 737, - "pc": [ - 2968, - 2969 - ] - }, - { - "teal": 2865, - "source": 737, - "pc": [ - 2970, - 2971, - 2972 - ] - }, - { - "teal": 2866, - "source": 737, - "pc": [ - 2973, - 2974 - ] - }, - { - "teal": 2867, - "source": 737, - "pc": [ - 2975 - ] - }, - { - "teal": 2868, - "source": 737, - "pc": [ - 2976, - 2977, - 2978 - ] - }, - { - "teal": 2874, - "source": 738, - "pc": [ - 2979, - 2980 - ] - }, - { - "teal": 2875, - "source": 738, - "pc": [ - 2981, - 2982, - 2983 - ] - }, - { - "teal": 2876, - "source": 738, - "pc": [ - 2984 - ] - }, - { - "teal": 2877, - "source": 738, - "pc": [ - 2985, - 2986 - ] - }, - { - "teal": 2878, - "source": 738, - "pc": [ - 2987 - ] - }, - { - "teal": 2879, - "source": 738, - "pc": [ - 2988, - 2989, - 2990 - ] - }, - { - "teal": 2884, - "source": 741, - "pc": [ - 2991, - 2992 - ] - }, - { - "teal": 2885, - "source": 741, - "pc": [ - 2993, - 2994 - ] - }, - { - "teal": 2886, - "source": 741, - "pc": [ - 2995, - 2996, - 2997 - ] - }, - { - "teal": 2887, - "source": 741, - "pc": [ - 2998 - ] - }, - { - "teal": 2888, - "source": 741, - "pc": [ - 2999 - ] - }, - { - "teal": 2889, - "source": 741, - "pc": [ - 3000, - 3001 - ] - }, - { - "teal": 2890, - "source": 738, - "pc": [ - 3002, - 3003, - 3004 - ] - }, - { - "teal": 2895, - "source": 745, - "pc": [ - 3005, - 3006 - ] - }, - { - "teal": 2896, - "source": 745, - "pc": [ - 3007, - 3008 - ] - }, - { - "teal": 2897, - "source": 745, - "pc": [ - 3009, - 3010, - 3011 - ] - }, - { - "teal": 2898, - "source": 745, - "pc": [ - 3012 - ] - }, - { - "teal": 2899, - "source": 745, - "pc": [ - 3013 - ] - }, - { - "teal": 2900, - "source": 745, - "pc": [ - 3014, - 3015 - ] - }, - { - "teal": 2905, - "source": 749, - "pc": [ - 3016, - 3017 - ] - }, - { - "teal": 2906, - "source": 749, - "pc": [ - 3018, - 3019 - ] - }, - { - "teal": 2907, - "source": 749, - "pc": [ - 3020 - ] - }, - { - "teal": 2908, - "source": 749, - "pc": [ - 3021, - 3022, - 3023 - ] - }, - { - "teal": 2913, - "source": 750, - "pc": [ - 3024, - 3025 - ] - }, - { - "teal": 2914, - "source": 750, - "pc": [ - 3026, - 3027 - ] - }, - { - "teal": 2915, - "source": 750, - "pc": [ - 3028, - 3029, - 3030 - ] - }, - { - "teal": 2916, - "source": 750, - "pc": [ - 3031 - ] - }, - { - "teal": 2917, - "source": 750, - "pc": [ - 3032 - ] - }, - { - "teal": 2918, - "source": 750, - "pc": [ - 3033, - 3034 - ] - }, - { - "teal": 2922, - "source": 751, - "pc": [ - 3035, - 3036 - ] - }, - { - "teal": 2923, - "source": 751, - "pc": [ - 3037, - 3038 - ] - }, - { - "teal": 2924, - "source": 751, - "pc": [ - 3039 - ] - }, - { - "teal": 2925, - "source": 751, - "pc": [ - 3040, - 3041 - ] - }, - { - "teal": 2926, - "source": 751, - "pc": [ - 3042 - ] - }, - { - "teal": 2927, - "source": 751, - "pc": [ - 3043, - 3044 - ] - }, - { - "teal": 2932, - "source": 753, - "pc": [ - 3045, - 3046 - ] - }, - { - "teal": 2933, - "source": 753, - "pc": [ - 3047 - ] - }, - { - "teal": 2934, - "source": 753, - "pc": [ - 3048 - ] - }, - { - "teal": 2935, - "source": 753, - "pc": [ - 3049, - 3050, - 3051 - ] - }, - { - "teal": 2943, - "source": 756, - "pc": [ - 3052, - 3053 - ] - }, - { - "teal": 2944, - "source": 756, - "pc": [ - 3054, - 3055, - 3056 - ] - }, - { - "teal": 2945, - "source": 756, - "pc": [ - 3057 - ] - }, - { - "teal": 2946, - "source": 756, - "pc": [ - 3058, - 3059 - ] - }, - { - "teal": 2947, - "source": 755, - "pc": [ - 3060 - ] - }, - { - "teal": 2948, - "source": 756, - "pc": [ - 3061, - 3062 - ] - }, - { - "teal": 2949, - "source": 755, - "pc": [ - 3063, - 3064 - ] - }, - { - "teal": 2950, - "source": 755, - "pc": [ - 3065, - 3066 - ] - }, - { - "teal": 2951, - "source": 755, - "pc": [ - 3067 - ] - }, - { - "teal": 2952, - "source": 755, - "pc": [ - 3068, - 3069 - ] - }, - { - "teal": 2953, - "source": 755, - "pc": [ - 3070 - ] - }, - { - "teal": 2954, - "source": 755, - "pc": [ - 3071, - 3072 - ] - }, - { - "teal": 2955, - "source": 755, - "pc": [ - 3073 - ] - }, - { - "teal": 2956, - "source": 755, - "pc": [ - 3074 - ] - }, - { - "teal": 2957, - "source": 757, - "pc": [ - 3075, - 3076 - ] - }, - { - "teal": 2958, - "source": 757, - "pc": [ - 3077 - ] - }, - { - "teal": 2959, - "source": 757, - "pc": [ - 3078, - 3079 - ] - }, - { - "teal": 2960, - "source": 755, - "pc": [ - 3080 - ] - }, - { - "teal": 2961, - "source": 755, - "pc": [ - 3081 - ] - }, - { - "teal": 2962, - "source": 755, - "pc": [ - 3082 - ] - }, - { - "teal": 2963, - "source": 755, - "pc": [ - 3083 - ] - }, - { - "teal": 2964, - "source": 755, - "pc": [ - 3084 - ] - }, - { - "teal": 2965, - "source": 755, - "pc": [ - 3085 - ] - }, - { - "teal": 2968, - "source": 755, - "errorMessage": "wideRatio failed", - "pc": [ - 3086 - ] - }, - { - "teal": 2969, - "source": 755, - "pc": [ - 3087, - 3088 - ] - }, - { - "teal": 2973, - "source": 762, - "pc": [ - 3089, - 3090 - ] - }, - { - "teal": 2974, - "source": 762, - "pc": [ - 3091, - 3092 - ] - }, - { - "teal": 2975, - "source": 762, - "pc": [ - 3093 - ] - }, - { - "teal": 2976, - "source": 762, - "pc": [ - 3094, - 3095 - ] - }, - { - "teal": 2980, - "source": 763, - "pc": [ - 3096, - 3097 - ] - }, - { - "teal": 2981, - "source": 763, - "pc": [ - 3098, - 3099 - ] - }, - { - "teal": 2982, - "source": 763, - "pc": [ - 3100, - 3101 - ] - }, - { - "teal": 2983, - "source": 763, - "pc": [ - 3102, - 3103, - 3104 - ] - }, - { - "teal": 2984, - "source": 763, - "pc": [ - 3105 - ] - }, - { - "teal": 2985, - "source": 763, - "pc": [ - 3106, - 3107 - ] - }, - { - "teal": 2986, - "source": 763, - "pc": [ - 3108 - ] - }, - { - "teal": 2987, - "source": 763, - "pc": [ - 3109 - ] - }, - { - "teal": 2988, - "source": 763, - "pc": [ - 3110 - ] - }, - { - "teal": 2989, - "source": 763, - "pc": [ - 3111, - 3112 - ] - }, - { - "teal": 2993, - "source": 764, - "pc": [ - 3113, - 3114 - ] - }, - { - "teal": 2994, - "source": 764, - "pc": [ - 3115, - 3116 - ] - }, - { - "teal": 2995, - "source": 764, - "pc": [ - 3117 - ] - }, - { - "teal": 2996, - "source": 764, - "pc": [ - 3118, - 3119 - ] - }, - { - "teal": 3002, - "source": 766, - "pc": [ - 3120, - 3121 - ] - }, - { - "teal": 3003, - "source": 766, - "pc": [ - 3122 - ] - }, - { - "teal": 3004, - "source": 766, - "pc": [ - 3123 - ] - }, - { - "teal": 3005, - "source": 766, - "pc": [ - 3124, - 3125, - 3126 - ] - }, - { - "teal": 3013, - "source": 769, - "pc": [ - 3127, - 3128 - ] - }, - { - "teal": 3014, - "source": 769, - "pc": [ - 3129, - 3130, - 3131 - ] - }, - { - "teal": 3015, - "source": 769, - "pc": [ - 3132 - ] - }, - { - "teal": 3016, - "source": 769, - "pc": [ - 3133, - 3134 - ] - }, - { - "teal": 3017, - "source": 768, - "pc": [ - 3135 - ] - }, - { - "teal": 3018, - "source": 769, - "pc": [ - 3136, - 3137 - ] - }, - { - "teal": 3019, - "source": 768, - "pc": [ - 3138, - 3139 - ] - }, - { - "teal": 3020, - "source": 768, - "pc": [ - 3140, - 3141 - ] - }, - { - "teal": 3021, - "source": 768, - "pc": [ - 3142 - ] - }, - { - "teal": 3022, - "source": 768, - "pc": [ - 3143, - 3144 - ] - }, - { - "teal": 3023, - "source": 768, - "pc": [ - 3145 - ] - }, - { - "teal": 3024, - "source": 768, - "pc": [ - 3146, - 3147 - ] - }, - { - "teal": 3025, - "source": 768, - "pc": [ - 3148 - ] - }, - { - "teal": 3026, - "source": 768, - "pc": [ - 3149 - ] - }, - { - "teal": 3027, - "source": 770, - "pc": [ - 3150, - 3151 - ] - }, - { - "teal": 3028, - "source": 770, - "pc": [ - 3152 - ] - }, - { - "teal": 3029, - "source": 770, - "pc": [ - 3153, - 3154 - ] - }, - { - "teal": 3030, - "source": 768, - "pc": [ - 3155 - ] - }, - { - "teal": 3031, - "source": 768, - "pc": [ - 3156 - ] - }, - { - "teal": 3032, - "source": 768, - "pc": [ - 3157 - ] - }, - { - "teal": 3033, - "source": 768, - "pc": [ - 3158 - ] - }, - { - "teal": 3034, - "source": 768, - "pc": [ - 3159 - ] - }, - { - "teal": 3035, - "source": 768, - "pc": [ - 3160 - ] - }, - { - "teal": 3038, - "source": 768, - "errorMessage": "wideRatio failed", - "pc": [ - 3161 - ] - }, - { - "teal": 3039, - "source": 768, - "pc": [ - 3162, - 3163 - ] - }, - { - "teal": 3043, - "source": 775, - "pc": [ - 3164, - 3165 - ] - }, - { - "teal": 3044, - "source": 775, - "pc": [ - 3166, - 3167 - ] - }, - { - "teal": 3045, - "source": 775, - "pc": [ - 3168 - ] - }, - { - "teal": 3046, - "source": 775, - "pc": [ - 3169, - 3170 - ] - }, - { - "teal": 3050, - "source": 778, - "pc": [ - 3171, - 3172 - ] - }, - { - "teal": 3051, - "source": 778, - "pc": [ - 3173, - 3174 - ] - }, - { - "teal": 3052, - "source": 778, - "pc": [ - 3175, - 3176 - ] - }, - { - "teal": 3053, - "source": 778, - "pc": [ - 3177, - 3178, - 3179 - ] - }, - { - "teal": 3054, - "source": 778, - "pc": [ - 3180 - ] - }, - { - "teal": 3055, - "source": 778, - "pc": [ - 3181, - 3182 - ] - }, - { - "teal": 3056, - "source": 778, - "pc": [ - 3183 - ] - }, - { - "teal": 3057, - "source": 778, - "pc": [ - 3184 - ] - }, - { - "teal": 3058, - "source": 778, - "pc": [ - 3185 - ] - }, - { - "teal": 3059, - "source": 778, - "pc": [ - 3186, - 3187 - ] - }, - { - "teal": 3063, - "source": 779, - "pc": [ - 3188, - 3189 - ] - }, - { - "teal": 3064, - "source": 779, - "pc": [ - 3190, - 3191 - ] - }, - { - "teal": 3065, - "source": 779, - "pc": [ - 3192, - 3193 - ] - }, - { - "teal": 3066, - "source": 779, - "pc": [ - 3194, - 3195, - 3196 - ] - }, - { - "teal": 3067, - "source": 779, - "pc": [ - 3197 - ] - }, - { - "teal": 3068, - "source": 779, - "pc": [ - 3198, - 3199 - ] - }, - { - "teal": 3069, - "source": 779, - "pc": [ - 3200 - ] - }, - { - "teal": 3070, - "source": 779, - "pc": [ - 3201 - ] - }, - { - "teal": 3071, - "source": 779, - "pc": [ - 3202 - ] - }, - { - "teal": 3072, - "source": 779, - "pc": [ - 3203, - 3204 - ] - }, - { - "teal": 3076, - "source": 780, - "pc": [ - 3205, - 3206 - ] - }, - { - "teal": 3077, - "source": 780, - "pc": [ - 3207, - 3208 - ] - }, - { - "teal": 3078, - "source": 780, - "pc": [ - 3209 - ] - }, - { - "teal": 3079, - "source": 780, - "pc": [ - 3210, - 3211 - ] - }, - { - "teal": 3084, - "source": 783, - "pc": [ - 3212, - 3213 - ] - }, - { - "teal": 3085, - "source": 783, - "pc": [ - 3214 - ] - }, - { - "teal": 3086, - "source": 783, - "pc": [ - 3215 - ] - }, - { - "teal": 3087, - "source": 783, - "pc": [ - 3216, - 3217 - ] - }, - { - "teal": 3088, - "source": 783, - "pc": [ - 3218 - ] - }, - { - "teal": 3089, - "source": 783, - "pc": [ - 3219, - 3220 - ] - }, - { - "teal": 3090, - "source": 783, - "pc": [ - 3221 - ] - }, - { - "teal": 3101, - "source": 732, - "pc": [ - 3222, - 3223 - ] - }, - { - "teal": 3102, - "source": 732, - "pc": [ - 3224 - ] - }, - { - "teal": 3103, - "source": 732, - "pc": [ - 3225 - ] - }, - { - "teal": 3104, - "source": 732, - "pc": [ - 3226, - 3227 - ] - }, - { - "teal": 3105, - "source": 732, - "pc": [ - 3228, - 3229, - 3230 - ] - }, - { - "teal": 3110, - "source": 791, - "pc": [ - 3231, - 3232 - ] - }, - { - "teal": 3111, - "source": 791, - "pc": [ - 3233 - ] - }, - { - "teal": 3112, - "source": 791, - "pc": [ - 3234, - 3235 - ] - }, - { - "teal": 3113, - "source": 791, - "pc": [ - 3236 - ] - }, - { - "teal": 3114, - "source": 791, - "pc": [ - 3237, - 3238 - ] - }, - { - "teal": 3119, - "source": 795, - "pc": [ - 3239, - 3240 - ] - }, - { - "teal": 3120, - "source": 795, - "pc": [ - 3241 - ] - }, - { - "teal": 3121, - "source": 795, - "pc": [ - 3242 - ] - }, - { - "teal": 3122, - "source": 795, - "pc": [ - 3243, - 3244, - 3245 - ] - }, - { - "teal": 3127, - "source": 797, - "pc": [ - 3246 - ] - }, - { - "teal": 3128, - "source": 797, - "pc": [ - 3247, - 3248 - ] - }, - { - "teal": 3133, - "source": 797, - "pc": [ - 3249, - 3250 - ] - }, - { - "teal": 3134, - "source": 797, - "pc": [ - 3251, - 3252 - ] - }, - { - "teal": 3135, - "source": 797, - "pc": [ - 3253 - ] - }, - { - "teal": 3136, - "source": 797, - "pc": [ - 3254, - 3255, - 3256 - ] - }, - { - "teal": 3141, - "source": 798, - "pc": [ - 3257, - 3258 - ] - }, - { - "teal": 3142, - "source": 798, - "pc": [ - 3259, - 3260 - ] - }, - { - "teal": 3143, - "source": 798, - "pc": [ - 3261 - ] - }, - { - "teal": 3144, - "source": 798, - "pc": [ - 3262, - 3263, - 3264 - ] - }, - { - "teal": 3149, - "source": 799, - "pc": [ - 3265 - ] - }, - { - "teal": 3150, - "source": 799, - "pc": [ - 3266 - ] - }, - { - "teal": 3151, - "source": 799, - "pc": [ - 3267, - 3268 - ] - }, - { - "teal": 3152, - "source": 799, - "pc": [ - 3269 - ] - }, - { - "teal": 3153, - "source": 799, - "pc": [ - 3270, - 3271 - ] - }, - { - "teal": 3154, - "source": 799, - "pc": [ - 3272, - 3273 - ] - }, - { - "teal": 3155, - "source": 799, - "pc": [ - 3274 - ] - }, - { - "teal": 3156, - "source": 799, - "pc": [ - 3275, - 3276 - ] - }, - { - "teal": 3157, - "source": 799, - "pc": [ - 3277, - 3278 - ] - }, - { - "teal": 3158, - "source": 799, - "pc": [ - 3279, - 3280 - ] - }, - { - "teal": 3159, - "source": 799, - "pc": [ - 3281, - 3282 - ] - }, - { - "teal": 3160, - "source": 799, - "pc": [ - 3283 - ] - }, - { - "teal": 3165, - "source": 801, - "pc": [ - 3284, - 3285 - ] - }, - { - "teal": 3166, - "source": 801, - "pc": [ - 3286 - ] - }, - { - "teal": 3167, - "source": 801, - "pc": [ - 3287 - ] - }, - { - "teal": 3168, - "source": 801, - "pc": [ - 3288 - ] - }, - { - "teal": 3169, - "source": 801, - "pc": [ - 3289 - ] - }, - { - "teal": 3170, - "source": 801, - "pc": [ - 3290, - 3291 - ] - }, - { - "teal": 3171, - "source": 801, - "pc": [ - 3292 - ] - }, - { - "teal": 3172, - "source": 801, - "pc": [ - 3293, - 3294 - ] - }, - { - "teal": 3177, - "source": 802, - "pc": [ - 3295, - 3296 - ] - }, - { - "teal": 3178, - "source": 802, - "pc": [ - 3297, - 3298, - 3299 - ] - }, - { - "teal": 3179, - "source": 802, - "pc": [ - 3300, - 3301 - ] - }, - { - "teal": 3180, - "source": 802, - "pc": [ - 3302 - ] - }, - { - "teal": 3181, - "source": 802, - "pc": [ - 3303 - ] - }, - { - "teal": 3182, - "source": 802, - "pc": [ - 3304, - 3305, - 3306 - ] - }, - { - "teal": 3183, - "source": 802, - "pc": [ - 3307, - 3308 - ] - }, - { - "teal": 3184, - "source": 802, - "pc": [ - 3309, - 3310, - 3311 - ] - }, - { - "teal": 3185, - "source": 802, - "pc": [ - 3312 - ] - }, - { - "teal": 3186, - "source": 802, - "pc": [ - 3313, - 3314 - ] - }, - { - "teal": 3187, - "source": 802, - "pc": [ - 3315 - ] - }, - { - "teal": 3188, - "source": 802, - "pc": [ - 3316 - ] - }, - { - "teal": 3191, - "source": 802, - "pc": [ - 3317, - 3318, - 3319 - ] - }, - { - "teal": 3196, - "source": 803, - "pc": [ - 3320, - 3321 - ] - }, - { - "teal": 3197, - "source": 803, - "pc": [ - 3322, - 3323 - ] - }, - { - "teal": 3198, - "source": 803, - "pc": [ - 3324, - 3325, - 3326 - ] - }, - { - "teal": 3199, - "source": 803, - "pc": [ - 3327 - ] - }, - { - "teal": 3200, - "source": 803, - "pc": [ - 3328 - ] - }, - { - "teal": 3201, - "source": 803, - "pc": [ - 3329, - 3330 - ] - }, - { - "teal": 3206, - "source": 805, - "pc": [ - 3331, - 3332 - ] - }, - { - "teal": 3207, - "source": 805, - "pc": [ - 3333, - 3334 - ] - }, - { - "teal": 3208, - "source": 805, - "pc": [ - 3335 - ] - }, - { - "teal": 3209, - "source": 805, - "pc": [ - 3336, - 3337, - 3338 - ] - }, - { - "teal": 3215, - "source": 810, - "pc": [ - 3339, - 3340 - ] - }, - { - "teal": 3216, - "source": 810, - "pc": [ - 3341 - ] - }, - { - "teal": 3217, - "source": 810, - "pc": [ - 3342 - ] - }, - { - "teal": 3218, - "source": 810, - "pc": [ - 3343, - 3344, - 3345 - ] - }, - { - "teal": 3223, - "source": 811, - "pc": [ - 3346, - 3347 - ] - }, - { - "teal": 3224, - "source": 811, - "pc": [ - 3348, - 3349, - 3350 - ] - }, - { - "teal": 3225, - "source": 811, - "pc": [ - 3351 - ] - }, - { - "teal": 3226, - "source": 811, - "pc": [ - 3352, - 3353 - ] - }, - { - "teal": 3227, - "source": 811, - "pc": [ - 3354 - ] - }, - { - "teal": 3228, - "source": 811, - "pc": [ - 3355 - ] - }, - { - "teal": 3229, - "source": 811, - "pc": [ - 3356, - 3357 - ] - }, - { - "teal": 3230, - "source": 811, - "pc": [ - 3358 - ] - }, - { - "teal": 3231, - "source": 811, - "pc": [ - 3359 - ] - }, - { - "teal": 3232, - "source": 811, - "pc": [ - 3360 - ] - }, - { - "teal": 3233, - "source": 811, - "pc": [ - 3361 - ] - }, - { - "teal": 3234, - "source": 811, - "pc": [ - 3362 - ] - }, - { - "teal": 3237, - "source": 811, - "errorMessage": "wideRatio failed", - "pc": [ - 3363 - ] - }, - { - "teal": 3238, - "source": 811, - "pc": [ - 3364, - 3365 - ] - }, - { - "teal": 3242, - "source": 814, - "pc": [ - 3366, - 3367 - ] - }, - { - "teal": 3243, - "source": 814, - "pc": [ - 3368, - 3369 - ] - }, - { - "teal": 3244, - "source": 814, - "pc": [ - 3370, - 3371 - ] - }, - { - "teal": 3245, - "source": 814, - "pc": [ - 3372, - 3373, - 3374 - ] - }, - { - "teal": 3246, - "source": 814, - "pc": [ - 3375 - ] - }, - { - "teal": 3247, - "source": 814, - "pc": [ - 3376, - 3377 - ] - }, - { - "teal": 3248, - "source": 814, - "pc": [ - 3378 - ] - }, - { - "teal": 3249, - "source": 814, - "pc": [ - 3379 - ] - }, - { - "teal": 3250, - "source": 814, - "pc": [ - 3380 - ] - }, - { - "teal": 3251, - "source": 814, - "pc": [ - 3381, - 3382 - ] - }, - { - "teal": 3255, - "source": 815, - "pc": [ - 3383, - 3384 - ] - }, - { - "teal": 3256, - "source": 815, - "pc": [ - 3385, - 3386 - ] - }, - { - "teal": 3257, - "source": 815, - "pc": [ - 3387 - ] - }, - { - "teal": 3258, - "source": 815, - "pc": [ - 3388, - 3389 - ] - }, - { - "teal": 3264, - "source": 817, - "pc": [ - 3390, - 3391 - ] - }, - { - "teal": 3265, - "source": 817, - "pc": [ - 3392 - ] - }, - { - "teal": 3266, - "source": 817, - "pc": [ - 3393 - ] - }, - { - "teal": 3267, - "source": 817, - "pc": [ - 3394, - 3395, - 3396 - ] - }, - { - "teal": 3272, - "source": 818, - "pc": [ - 3397, - 3398 - ] - }, - { - "teal": 3273, - "source": 818, - "pc": [ - 3399, - 3400, - 3401 - ] - }, - { - "teal": 3274, - "source": 818, - "pc": [ - 3402 - ] - }, - { - "teal": 3275, - "source": 818, - "pc": [ - 3403, - 3404 - ] - }, - { - "teal": 3276, - "source": 818, - "pc": [ - 3405 - ] - }, - { - "teal": 3277, - "source": 818, - "pc": [ - 3406 - ] - }, - { - "teal": 3278, - "source": 818, - "pc": [ - 3407, - 3408 - ] - }, - { - "teal": 3279, - "source": 818, - "pc": [ - 3409 - ] - }, - { - "teal": 3280, - "source": 818, - "pc": [ - 3410 - ] - }, - { - "teal": 3281, - "source": 818, - "pc": [ - 3411 - ] - }, - { - "teal": 3282, - "source": 818, - "pc": [ - 3412 - ] - }, - { - "teal": 3283, - "source": 818, - "pc": [ - 3413 - ] - }, - { - "teal": 3286, - "source": 818, - "errorMessage": "wideRatio failed", - "pc": [ - 3414 - ] - }, - { - "teal": 3287, - "source": 818, - "pc": [ - 3415, - 3416 - ] - }, - { - "teal": 3291, - "source": 821, - "pc": [ - 3417, - 3418 - ] - }, - { - "teal": 3292, - "source": 821, - "pc": [ - 3419, - 3420 - ] - }, - { - "teal": 3293, - "source": 821, - "pc": [ - 3421, - 3422 - ] - }, - { - "teal": 3294, - "source": 821, - "pc": [ - 3423, - 3424, - 3425 - ] - }, - { - "teal": 3295, - "source": 821, - "pc": [ - 3426 - ] - }, - { - "teal": 3296, - "source": 821, - "pc": [ - 3427, - 3428 - ] - }, - { - "teal": 3297, - "source": 821, - "pc": [ - 3429 - ] - }, - { - "teal": 3298, - "source": 821, - "pc": [ - 3430 - ] - }, - { - "teal": 3299, - "source": 821, - "pc": [ - 3431 - ] - }, - { - "teal": 3300, - "source": 821, - "pc": [ - 3432, - 3433 - ] - }, - { - "teal": 3304, - "source": 822, - "pc": [ - 3434, - 3435 - ] - }, - { - "teal": 3305, - "source": 822, - "pc": [ - 3436, - 3437 - ] - }, - { - "teal": 3306, - "source": 822, - "pc": [ - 3438, - 3439 - ] - }, - { - "teal": 3307, - "source": 822, - "pc": [ - 3440, - 3441, - 3442 - ] - }, - { - "teal": 3308, - "source": 822, - "pc": [ - 3443 - ] - }, - { - "teal": 3309, - "source": 822, - "pc": [ - 3444, - 3445 - ] - }, - { - "teal": 3310, - "source": 822, - "pc": [ - 3446 - ] - }, - { - "teal": 3311, - "source": 822, - "pc": [ - 3447 - ] - }, - { - "teal": 3312, - "source": 822, - "pc": [ - 3448 - ] - }, - { - "teal": 3313, - "source": 822, - "pc": [ - 3449, - 3450 - ] - }, - { - "teal": 3317, - "source": 823, - "pc": [ - 3451, - 3452 - ] - }, - { - "teal": 3318, - "source": 823, - "pc": [ - 3453, - 3454 - ] - }, - { - "teal": 3319, - "source": 823, - "pc": [ - 3455 - ] - }, - { - "teal": 3320, - "source": 823, - "pc": [ - 3456, - 3457 - ] - }, - { - "teal": 3325, - "source": 827, - "pc": [ - 3458, - 3459 - ] - }, - { - "teal": 3326, - "source": 827, - "pc": [ - 3460 - ] - }, - { - "teal": 3327, - "source": 827, - "pc": [ - 3461 - ] - }, - { - "teal": 3328, - "source": 827, - "pc": [ - 3462, - 3463 - ] - }, - { - "teal": 3329, - "source": 827, - "pc": [ - 3464 - ] - }, - { - "teal": 3330, - "source": 827, - "pc": [ - 3465, - 3466 - ] - }, - { - "teal": 3331, - "source": 827, - "pc": [ - 3467 - ] - }, - { - "teal": 3340, - "source": 797, - "pc": [ - 3468, - 3469 - ] - }, - { - "teal": 3341, - "source": 797, - "pc": [ - 3470 - ] - }, - { - "teal": 3342, - "source": 797, - "pc": [ - 3471 - ] - }, - { - "teal": 3343, - "source": 797, - "pc": [ - 3472, - 3473 - ] - }, - { - "teal": 3344, - "source": 797, - "pc": [ - 3474, - 3475, - 3476 - ] - }, - { - "teal": 3353, - "source": 837, - "pc": [ - 3477, - 3478 - ] - }, - { - "teal": 3354, - "source": 837, - "pc": [ - 3479 - ] - }, - { - "teal": 3355, - "source": 837, - "pc": [ - 3480, - 3481 - ] - }, - { - "teal": 3356, - "source": 837, - "pc": [ - 3482 - ] - }, - { - "teal": 3357, - "source": 837, - "pc": [ - 3483 - ] - }, - { - "teal": 3358, - "source": 837, - "pc": [ - 3484, - 3485 - ] - }, - { - "teal": 3359, - "source": 837, - "pc": [ - 3486 - ] - }, - { - "teal": 3360, - "source": 837, - "pc": [ - 3487, - 3488 - ] - }, - { - "teal": 3364, - "source": 838, - "pc": [ - 3489, - 3490 - ] - }, - { - "teal": 3365, - "source": 838, - "pc": [ - 3491 - ] - }, - { - "teal": 3366, - "source": 838, - "pc": [ - 3492, - 3493 - ] - }, - { - "teal": 3367, - "source": 838, - "pc": [ - 3494 - ] - }, - { - "teal": 3368, - "source": 838, - "pc": [ - 3495, - 3496 - ] - }, - { - "teal": 3369, - "source": 838, - "pc": [ - 3497 - ] - }, - { - "teal": 3370, - "source": 838, - "pc": [ - 3498 - ] - }, - { - "teal": 3375, - "source": 839, - "pc": [ - 3499, - 3500 - ] - }, - { - "teal": 3376, - "source": 839, - "pc": [ - 3501 - ] - }, - { - "teal": 3377, - "source": 840, - "pc": [ - 3502 - ] - }, - { - "teal": 3378, - "source": 840, - "pc": [ - 3503, - 3504 - ] - }, - { - "teal": 3379, - "source": 840, - "pc": [ - 3505 - ] - }, - { - "teal": 3380, - "source": 840, - "pc": [ - 3506, - 3507 - ] - }, - { - "teal": 3381, - "source": 840, - "pc": [ - 3508 - ] - }, - { - "teal": 3382, - "source": 840, - "pc": [ - 3509 - ] - }, - { - "teal": 3383, - "source": 840, - "pc": [ - 3510 - ] - }, - { - "teal": 3384, - "source": 840, - "pc": [ - 3511 - ] - }, - { - "teal": 3385, - "source": 840, - "pc": [ - 3512 - ] - }, - { - "teal": 3386, - "source": 840, - "pc": [ - 3513, - 3514 - ] - }, - { - "teal": 3387, - "source": 840, - "pc": [ - 3515 - ] - }, - { - "teal": 3390, - "source": 840, - "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", - "pc": [ - 3516 - ] - }, - { - "teal": 3391, - "source": 840, - "pc": [ - 3517, - 3518 - ] - }, - { - "teal": 3392, - "source": 840, - "pc": [ - 3519 - ] - }, - { - "teal": 3393, - "source": 840, - "pc": [ - 3520 - ] - }, - { - "teal": 3394, - "source": 840, - "pc": [ - 3521 - ] - }, - { - "teal": 3395, - "source": 840, - "pc": [ - 3522 - ] - }, - { - "teal": 3396, - "source": 840, - "pc": [ - 3523, - 3524 - ] - }, - { - "teal": 3397, - "source": 840, - "pc": [ - 3525 - ] - }, - { - "teal": 3398, - "source": 840, - "pc": [ - 3526 - ] - }, - { - "teal": 3399, - "source": 840, - "pc": [ - 3527 - ] - }, - { - "teal": 3400, - "source": 839, - "pc": [ - 3528 - ] - }, - { - "teal": 3404, - "source": 841, - "pc": [ - 3529, - 3530 - ] - }, - { - "teal": 3405, - "source": 841, - "pc": [ - 3531 - ] - }, - { - "teal": 3406, - "source": 841, - "pc": [ - 3532 - ] - }, - { - "teal": 3407, - "source": 841, - "pc": [ - 3533, - 3534 - ] - }, - { - "teal": 3408, - "source": 841, - "pc": [ - 3535 - ] - }, - { - "teal": 3409, - "source": 841, - "pc": [ - 3536 - ] - }, - { - "teal": 3422, - "source": 847, - "pc": [ - 3537 - ] - }, - { - "teal": 3423, - "source": 847, - "pc": [ - 3538 - ] - }, - { - "teal": 3424, - "source": 847, - "pc": [ - 3539, - 3540 - ] - }, - { - "teal": 3425, - "source": 847, - "pc": [ - 3541, - 3542, - 3543, - 3544, - 3545, - 3546 - ] - }, - { - "teal": 3426, - "source": 847, - "pc": [ - 3547, - 3548 - ] - }, - { - "teal": 3430, - "source": 848, - "pc": [ - 3549 - ] - }, - { - "teal": 3431, - "source": 848, - "pc": [ - 3550 - ] - }, - { - "teal": 3432, - "source": 848, - "pc": [ - 3551, - 3552 - ] - }, - { - "teal": 3442, - "source": 850, - "pc": [ - 3553 - ] - }, - { - "teal": 3443, - "source": 850, - "pc": [ - 3554 - ] - }, - { - "teal": 3444, - "source": 850, - "pc": [ - 3555 - ] - }, - { - "teal": 3445, - "source": 850, - "pc": [ - 3556 - ] - }, - { - "teal": 3446, - "source": 850, - "pc": [ - 3557 - ] - }, - { - "teal": 3447, - "source": 850, - "pc": [ - 3558 - ] - }, - { - "teal": 3448, - "source": 850, - "pc": [ - 3559 - ] - }, - { - "teal": 3449, - "source": 850, - "pc": [ - 3560, - 3561, - 3562 - ] - }, - { - "teal": 3450, - "source": 850, - "pc": [ - 3563 - ] - }, - { - "teal": 3451, - "source": 850, - "pc": [ - 3564 - ] - }, - { - "teal": 3452, - "source": 850, - "pc": [ - 3565, - 3566 - ] - }, - { - "teal": 3453, - "source": 851, - "pc": [ - 3567, - 3568 - ] - }, - { - "teal": 3454, - "source": 851, - "pc": [ - 3569 - ] - }, - { - "teal": 3455, - "source": 851, - "pc": [ - 3570, - 3571 - ] - }, - { - "teal": 3456, - "source": 852, - "pc": [ - 3572, - 3573 - ] - }, - { - "teal": 3457, - "source": 852, - "pc": [ - 3574 - ] - }, - { - "teal": 3458, - "source": 852, - "pc": [ - 3575, - 3576 - ] - }, - { - "teal": 3459, - "source": 853, - "pc": [ - 3577, - 3578 - ] - }, - { - "teal": 3460, - "source": 853, - "pc": [ - 3579 - ] - }, - { - "teal": 3461, - "source": 853, - "pc": [ - 3580, - 3581 - ] - }, - { - "teal": 3462, - "source": 854, - "pc": [ - 3582, - 3583 - ] - }, - { - "teal": 3463, - "source": 854, - "pc": [ - 3584 - ] - }, - { - "teal": 3464, - "source": 854, - "pc": [ - 3585, - 3586 - ] - }, - { - "teal": 3467, - "source": 847, - "pc": [ - 3587 - ] - }, - { - "teal": 3468, - "source": 847, - "pc": [ - 3588, - 3589 - ] - }, - { - "teal": 3471, - "source": 847, - "pc": [ - 3590 - ] - }, - { - "teal": 3472, - "source": 518, - "pc": [ - 3591 - ] - }, - { - "teal": 3477, - "source": 879, - "pc": [ - 3592, - 3593, - 3594 - ] - }, - { - "teal": 3478, - "source": 879, - "pc": [ - 3595 - ] - }, - { - "teal": 3481, - "source": 878, - "pc": [ - 3596, - 3597, - 3598 - ] - }, - { - "teal": 3482, - "source": 878, - "pc": [ - 3599 - ] - }, - { - "teal": 3485, - "source": 877, - "pc": [ - 3600, - 3601, - 3602 - ] - }, - { - "teal": 3486, - "source": 877, - "pc": [ - 3603 - ] - }, - { - "teal": 3489, - "source": 876, - "pc": [ - 3604, - 3605, - 3606 - ] - }, - { - "teal": 3490, - "source": 876, - "pc": [ - 3607, - 3608, - 3609 - ] - }, - { - "teal": 3493, - "source": 875, - "pc": [ - 3610, - 3611, - 3612 - ] - }, - { - "teal": 3494, - "source": 875, - "pc": [ - 3613, - 3614, - 3615 - ] - }, - { - "teal": 3497, - "source": 874, - "pc": [ - 3616, - 3617, - 3618 - ] - }, - { - "teal": 3498, - "source": 874, - "pc": [ - 3619, - 3620, - 3621 - ] - }, - { - "teal": 3501, - "source": 873, - "pc": [ - 3622, - 3623 - ] - }, - { - "teal": 3502, - "source": 873, - "pc": [ - 3624 - ] - }, - { - "teal": 3503, - "source": 873, - "pc": [ - 3625 - ] - }, - { - "teal": 3504, - "source": 873, - "pc": [ - 3626 - ] - }, - { - "teal": 3505, - "source": 873, - "pc": [ - 3627, - 3628 - ] - }, - { - "teal": 3506, - "source": 873, - "pc": [ - 3629 - ] - }, - { - "teal": 3507, - "source": 873, - "pc": [ - 3630 - ] - }, - { - "teal": 3510, - "source": 873, - "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", - "pc": [ - 3631 - ] - }, - { - "teal": 3513, - "source": 872, - "pc": [ - 3632, - 3633, - 3634 - ] - }, - { - "teal": 3514, - "source": 872, - "pc": [ - 3635 - ] - }, - { - "teal": 3515, - "source": 872, - "pc": [ - 3636 - ] - }, - { - "teal": 3531, - "source": 872, - "pc": [ - 3637, - 3638, - 3639 - ] - }, - { - "teal": 3534, - "source": 872, - "pc": [ - 3640, - 3641 - ] - }, - { - "teal": 3538, - "source": 881, - "pc": [ - 3642, - 3643, - 3644 - ] - }, - { - "teal": 3541, - "source": 881, - "errorMessage": "can only be called by owner or manager of validator", - "pc": [ - 3645 - ] - }, - { - "teal": 3545, - "source": 882, - "pc": [ - 3646, - 3647, - 3648 - ] - }, - { - "teal": 3546, - "source": 882, - "pc": [ - 3649, - 3650 - ] - }, - { - "teal": 3551, - "source": 883, - "pc": [ - 3651, - 3652 - ] - }, - { - "teal": 3552, - "source": 883, - "pc": [ - 3653, - 3654 - ] - }, - { - "teal": 3553, - "source": 883, - "pc": [ - 3655, - 3656 - ] - }, - { - "teal": 3554, - "source": 883, - "pc": [ - 3657 - ] - }, - { - "teal": 3557, - "source": 883, - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 3658 - ] - }, - { - "teal": 3560, - "source": 883, - "pc": [ - 3659, - 3660 - ] - }, - { - "teal": 3561, - "source": 883, - "pc": [ - 3661, - 3662 - ] - }, - { - "teal": 3562, - "source": 883, - "pc": [ - 3663, - 3664 - ] - }, - { - "teal": 3563, - "source": 883, - "pc": [ - 3665 - ] - }, - { - "teal": 3566, - "source": 883, - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", - "pc": [ - 3666 - ] - }, - { - "teal": 3578, - "source": 884, - "pc": [ - 3667 - ] - }, - { - "teal": 3579, - "source": 884, - "pc": [ - 3668, - 3669 - ] - }, - { - "teal": 3580, - "source": 884, - "pc": [ - 3670, - 3671 - ] - }, - { - "teal": 3584, - "source": 885, - "pc": [ - 3672, - 3673 - ] - }, - { - "teal": 3585, - "source": 885, - "pc": [ - 3674, - 3675 - ] - }, - { - "teal": 3589, - "source": 886, - "pc": [ - 3676, - 3677 - ] - }, - { - "teal": 3590, - "source": 886, - "pc": [ - 3678, - 3679 - ] - }, - { - "teal": 3594, - "source": 887, - "pc": [ - 3680, - 3681 - ] - }, - { - "teal": 3595, - "source": 887, - "pc": [ - 3682, - 3683 - ] - }, - { - "teal": 3599, - "source": 888, - "pc": [ - 3684, - 3685 - ] - }, - { - "teal": 3600, - "source": 888, - "pc": [ - 3686, - 3687 - ] - }, - { - "teal": 3604, - "source": 889, - "pc": [ - 3688, - 3689 - ] - }, - { - "teal": 3605, - "source": 889, - "pc": [ - 3690, - 3691 - ] - }, - { - "teal": 3609, - "source": 890, - "pc": [ - 3692, - 3693 - ] - }, - { - "teal": 3610, - "source": 890, - "pc": [ - 3694, - 3695 - ] - }, - { - "teal": 3614, - "source": 891, - "pc": [ - 3696, - 3697, - 3698 - ] - }, - { - "teal": 3615, - "source": 891, - "pc": [ - 3699, - 3700 - ] - }, - { - "teal": 3618, - "source": 884, - "pc": [ - 3701 - ] - }, - { - "teal": 3619, - "source": 872, - "pc": [ - 3702 - ] - }, - { - "teal": 3624, - "source": 900, - "pc": [ - 3703, - 3704, - 3705 - ] - }, - { - "teal": 3625, - "source": 900, - "pc": [ - 3706 - ] - }, - { - "teal": 3626, - "source": 900, - "pc": [ - 3707 - ] - }, - { - "teal": 3633, - "source": 900, - "pc": [ - 3708, - 3709, - 3710 - ] - }, - { - "teal": 3638, - "source": 903, - "pc": [ - 3711, - 3712 - ] - }, - { - "teal": 3639, - "source": 903, - "pc": [ - 3713 - ] - }, - { - "teal": 3640, - "source": 903, - "pc": [ - 3714 - ] - }, - { - "teal": 3641, - "source": 903, - "pc": [ - 3715, - 3716 - ] - }, - { - "teal": 3642, - "source": 903, - "pc": [ - 3717 - ] - }, - { - "teal": 3643, - "source": 903, - "pc": [ - 3718 - ] - }, - { - "teal": 3644, - "source": 903, - "pc": [ - 3719, - 3720, - 3721 - ] - }, - { - "teal": 3649, - "source": 904, - "pc": [ - 3722, - 3723, - 3724 - ] - }, - { - "teal": 3652, - "source": 904, - "errorMessage": "can only be called by owner or manager of validator", - "pc": [ - 3725 - ] - }, - { - "teal": 3657, - "source": 907, - "pc": [ - 3726 - ] - }, - { - "teal": 3658, - "source": 907, - "pc": [ - 3727, - 3728 - ] - }, - { - "teal": 3659, - "source": 907, - "pc": [ - 3729, - 3730 - ] - }, - { - "teal": 3662, - "source": 907, - "pc": [ - 3731 - ] - }, - { - "teal": 3663, - "source": 907, - "pc": [ - 3732, - 3733 - ] - }, - { - "teal": 3666, - "source": 907, - "pc": [ - 3734 - ] - }, - { - "teal": 3667, - "source": 900, - "pc": [ - 3735 - ] - }, - { - "teal": 3672, - "source": 913, - "pc": [ - 3736, - 3737, - 3738 - ] - }, - { - "teal": 3673, - "source": 913, - "pc": [ - 3739, - 3740, - 3741 - ] - }, - { - "teal": 3676, - "source": 913, - "pc": [ - 3742, - 3743, - 3744 - ] - }, - { - "teal": 3677, - "source": 913, - "pc": [ - 3745 - ] - }, - { - "teal": 3680, - "source": 913, - "pc": [ - 3746, - 3747, - 3748 - ] - }, - { - "teal": 3681, - "source": 913, - "pc": [ - 3749 - ] - }, - { - "teal": 3682, - "source": 913, - "pc": [ - 3750 - ] - }, - { - "teal": 3686, - "source": 913, - "pc": [ - 3751, - 3752, - 3753 - ] - }, - { - "teal": 3690, - "source": 914, - "pc": [ - 3754, - 3755, - 3756 - ] - }, - { - "teal": 3693, - "source": 914, - "errorMessage": "can only be called by owner or manager of validator", - "pc": [ - 3757 - ] - }, - { - "teal": 3701, - "source": 916, - "pc": [ - 3758 - ] - }, - { - "teal": 3702, - "source": 916, - "pc": [ - 3759 - ] - }, - { - "teal": 3703, - "source": 916, - "pc": [ - 3760, - 3761 - ] - }, - { - "teal": 3707, - "source": 917, - "pc": [ - 3762, - 3763 - ] - }, - { - "teal": 3708, - "source": 917, - "pc": [ - 3764, - 3765 - ] - }, - { - "teal": 3712, - "source": 918, - "pc": [ - 3766, - 3767, - 3768, - 3769, - 3770, - 3771, - 3772, - 3773, - 3774, - 3775, - 3776, - 3777, - 3778, - 3779, - 3780, - 3781, - 3782 - ] - }, - { - "teal": 3713, - "source": 918, - "pc": [ - 3783, - 3784 - ] - }, - { - "teal": 3714, - "source": 918, - "pc": [ - 3785, - 3786 - ] - }, - { - "teal": 3715, - "source": 918, - "pc": [ - 3787, - 3788 - ] - }, - { - "teal": 3716, - "source": 918, - "pc": [ - 3789, - 3790 - ] - }, - { - "teal": 3717, - "source": 918, - "pc": [ - 3791 - ] - }, - { - "teal": 3718, - "source": 918, - "pc": [ - 3792, - 3793 - ] - }, - { - "teal": 3719, - "source": 918, - "pc": [ - 3794, - 3795 - ] - }, - { - "teal": 3720, - "source": 918, - "pc": [ - 3796, - 3797 - ] - }, - { - "teal": 3724, - "source": 919, - "pc": [ - 3798, - 3799 - ] - }, - { - "teal": 3725, - "source": 919, - "pc": [ - 3800, - 3801 - ] - }, - { - "teal": 3728, - "source": 916, - "pc": [ - 3802 - ] - }, - { - "teal": 3729, - "source": 916, - "pc": [ - 3803, - 3804 - ] - }, - { - "teal": 3732, - "source": 916, - "pc": [ - 3805 - ] - }, - { - "teal": 3733, - "source": 913, - "pc": [ - 3806 - ] - }, - { - "teal": 3738, - "source": 929, - "pc": [ - 3807, - 3808 - ] - }, - { - "teal": 3741, - "source": 929, - "pc": [ - 3809, - 3810, - 3811 - ] - }, - { - "teal": 3742, - "source": 929, - "pc": [ - 3812 - ] - }, - { - "teal": 3743, - "source": 929, - "pc": [ - 3813 - ] - }, - { - "teal": 3744, - "source": 929, - "pc": [ - 3814, - 3815 - ] - }, - { - "teal": 3745, - "source": 929, - "pc": [ - 3816 - ] - }, - { - "teal": 3748, - "source": 929, - "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", - "pc": [ - 3817 - ] - }, - { - "teal": 3751, - "source": 929, - "pc": [ - 3818, - 3819, - 3820 - ] - }, - { - "teal": 3752, - "source": 929, - "pc": [ - 3821 - ] - }, - { - "teal": 3753, - "source": 929, - "pc": [ - 3822 - ] - }, - { - "teal": 3754, - "source": 929, - "pc": [ - 3823 - ] - }, - { - "teal": 3755, - "source": 929, - "pc": [ - 3824 - ] - }, - { - "teal": 3764, - "source": 929, - "pc": [ - 3825, - 3826, - 3827 - ] - }, - { - "teal": 3767, - "source": 929, - "pc": [ - 3828, - 3829 - ] - }, - { - "teal": 3771, - "source": 930, - "pc": [ - 3830 - ] - }, - { - "teal": 3772, - "source": 930, - "pc": [ - 3831 - ] - }, - { - "teal": 3773, - "source": 930, - "pc": [ - 3832, - 3833 - ] - }, - { - "teal": 3774, - "source": 930, - "pc": [ - 3834, - 3835, - 3836 - ] - }, - { - "teal": 3775, - "source": 930, - "pc": [ - 3837 - ] - }, - { - "teal": 3776, - "source": 930, - "pc": [ - 3838 - ] - }, - { - "teal": 3779, - "source": 930, - "errorMessage": "caller must be part of same validator set!", - "pc": [ - 3839 - ] - }, - { - "teal": 3783, - "source": 931, - "pc": [ - 3840 - ] - }, - { - "teal": 3784, - "source": 931, - "pc": [ - 3841 - ] - }, - { - "teal": 3785, - "source": 931, - "pc": [ - 3842 - ] - }, - { - "teal": 3786, - "source": 931, - "pc": [ - 3843 - ] - }, - { - "teal": 3789, - "source": 931, - "errorMessage": "callee must be pool 1", - "pc": [ - 3844 - ] - }, - { - "teal": 3793, - "source": 932, - "pc": [ - 3845, - 3846 - ] - }, - { - "teal": 3794, - "source": 932, - "pc": [ - 3847, - 3848, - 3849 - ] - }, - { - "teal": 3795, - "source": 932, - "pc": [ - 3850 - ] - }, - { - "teal": 3796, - "source": 932, - "pc": [ - 3851 - ] - }, - { - "teal": 3797, - "source": 932, - "pc": [ - 3852 - ] - }, - { - "teal": 3800, - "source": 932, - "errorMessage": "caller must NOT be pool 1", - "pc": [ - 3853 - ] - }, - { - "teal": 3807, - "source": 934, - "pc": [ - 3854 - ] - }, - { - "teal": 3808, - "source": 934, - "pc": [ - 3855 - ] - }, - { - "teal": 3809, - "source": 934, - "pc": [ - 3856, - 3857 - ] - }, - { - "teal": 3810, - "source": 934, - "pc": [ - 3858, - 3859 - ] - }, - { - "teal": 3811, - "source": 934, - "pc": [ - 3860, - 3861 - ] - }, - { - "teal": 3815, - "source": 935, - "pc": [ - 3862 - ] - }, - { - "teal": 3816, - "source": 935, - "pc": [ - 3863 - ] - }, - { - "teal": 3817, - "source": 935, - "pc": [ - 3864, - 3865 - ] - }, - { - "teal": 3821, - "source": 936, - "pc": [ - 3866, - 3867 - ] - }, - { - "teal": 3822, - "source": 936, - "pc": [ - 3868, - 3869, - 3870 - ] - }, - { - "teal": 3823, - "source": 936, - "pc": [ - 3871 - ] - }, - { - "teal": 3824, - "source": 936, - "pc": [ - 3872 - ] - }, - { - "teal": 3825, - "source": 936, - "pc": [ - 3873, - 3874 - ] - }, - { - "teal": 3826, - "source": 936, - "pc": [ - 3875, - 3876 - ] - }, - { - "teal": 3827, - "source": 936, - "pc": [ - 3877, - 3878, - 3879 - ] - }, - { - "teal": 3828, - "source": 936, - "pc": [ - 3880 - ] - }, - { - "teal": 3829, - "source": 936, - "pc": [ - 3881 - ] - }, - { - "teal": 3830, - "source": 936, - "pc": [ - 3882, - 3883 - ] - }, - { - "teal": 3833, - "source": 934, - "pc": [ - 3884 - ] - }, - { - "teal": 3834, - "source": 934, - "pc": [ - 3885, - 3886 - ] - }, - { - "teal": 3837, - "source": 934, - "pc": [ - 3887 - ] - }, - { - "teal": 3838, - "source": 934, - "pc": [ - 3888, - 3889 - ] - }, - { - "teal": 3839, - "source": 934, - "pc": [ - 3890 - ] - }, - { - "teal": 3840, - "source": 934, - "pc": [ - 3891 - ] - }, - { - "teal": 3841, - "source": 934, - "pc": [ - 3892, - 3893 - ] - }, - { - "teal": 3842, - "source": 934, - "pc": [ - 3894, - 3895, - 3896 - ] - }, - { - "teal": 3843, - "source": 934, - "pc": [ - 3897 - ] - }, - { - "teal": 3844, - "source": 934, - "pc": [ - 3898, - 3899 - ] - }, - { - "teal": 3848, - "source": 938, - "pc": [ - 3900, - 3901 - ] - }, - { - "teal": 3849, - "source": 938, - "pc": [ - 3902, - 3903 - ] - }, - { - "teal": 3850, - "source": 938, - "pc": [ - 3904, - 3905, - 3906 - ] - }, - { - "teal": 3851, - "source": 938, - "pc": [ - 3907 - ] - }, - { - "teal": 3852, - "source": 938, - "pc": [ - 3908 - ] - }, - { - "teal": 3853, - "source": 938, - "pc": [ - 3909 - ] - }, - { - "teal": 3857, - "source": 939, - "pc": [ - 3910, - 3911 - ] - }, - { - "teal": 3858, - "source": 939, - "pc": [ - 3912, - 3913 - ] - }, - { - "teal": 3859, - "source": 939, - "pc": [ - 3914, - 3915, - 3916 - ] - }, - { - "teal": 3860, - "source": 939, - "pc": [ - 3917 - ] - }, - { - "teal": 3861, - "source": 939, - "pc": [ - 3918, - 3919 - ] - }, - { - "teal": 3862, - "source": 939, - "pc": [ - 3920 - ] - }, - { - "teal": 3863, - "source": 939, - "pc": [ - 3921 - ] - }, - { - "teal": 3864, - "source": 939, - "pc": [ - 3922 - ] - }, - { - "teal": 3871, - "source": 941, - "pc": [ - 3923 - ] - }, - { - "teal": 3872, - "source": 941, - "pc": [ - 3924 - ] - }, - { - "teal": 3873, - "source": 941, - "pc": [ - 3925, - 3926 - ] - }, - { - "teal": 3874, - "source": 941, - "pc": [ - 3927, - 3928 - ] - }, - { - "teal": 3875, - "source": 941, - "pc": [ - 3929, - 3930 - ] - }, - { - "teal": 3879, - "source": 942, - "pc": [ - 3931 - ] - }, - { - "teal": 3880, - "source": 942, - "pc": [ - 3932 - ] - }, - { - "teal": 3881, - "source": 942, - "pc": [ - 3933, - 3934 - ] - }, - { - "teal": 3885, - "source": 943, - "pc": [ - 3935 - ] - }, - { - "teal": 3886, - "source": 943, - "pc": [ - 3936 - ] - }, - { - "teal": 3887, - "source": 943, - "pc": [ - 3937 - ] - }, - { - "teal": 3888, - "source": 943, - "pc": [ - 3938, - 3939 - ] - }, - { - "teal": 3891, - "source": 941, - "pc": [ - 3940 - ] - }, - { - "teal": 3892, - "source": 941, - "pc": [ - 3941, - 3942 - ] - }, - { - "teal": 3895, - "source": 941, - "pc": [ - 3943 - ] - }, - { - "teal": 3896, - "source": 941, - "pc": [ - 3944, - 3945 - ] - }, - { - "teal": 3897, - "source": 941, - "pc": [ - 3946 - ] - }, - { - "teal": 3898, - "source": 941, - "pc": [ - 3947 - ] - }, - { - "teal": 3899, - "source": 941, - "pc": [ - 3948, - 3949 - ] - }, - { - "teal": 3900, - "source": 941, - "pc": [ - 3950, - 3951, - 3952 - ] - }, - { - "teal": 3903, - "source": 929, - "pc": [ - 3953, - 3954 - ] - }, - { - "teal": 3904, - "source": 929, - "pc": [ - 3955 - ] - }, - { - "teal": 3908, - "source": 947, - "pc": [ - 3956, - 3957, - 3958 - ] - }, - { - "teal": 3911, - "source": 947, - "pc": [ - 3959, - 3960 - ] - }, - { - "teal": 3918, - "source": 948, - "pc": [ - 3961 - ] - }, - { - "teal": 3919, - "source": 948, - "pc": [ - 3962 - ] - }, - { - "teal": 3920, - "source": 948, - "pc": [ - 3963, - 3964 - ] - }, - { - "teal": 3921, - "source": 948, - "pc": [ - 3965, - 3966, - 3967, - 3968, - 3969, - 3970 - ] - }, - { - "teal": 3922, - "source": 948, - "pc": [ - 3971, - 3972 - ] - }, - { - "teal": 3926, - "source": 949, - "pc": [ - 3973 - ] - }, - { - "teal": 3927, - "source": 949, - "pc": [ - 3974 - ] - }, - { - "teal": 3928, - "source": 949, - "pc": [ - 3975, - 3976 - ] - }, - { - "teal": 3932, - "source": 950, - "pc": [ - 3977 - ] - }, - { - "teal": 3933, - "source": 950, - "pc": [ - 3978 - ] - }, - { - "teal": 3934, - "source": 950, - "pc": [ - 3979 - ] - }, - { - "teal": 3935, - "source": 950, - "pc": [ - 3980, - 3981 - ] - }, - { - "teal": 3938, - "source": 948, - "pc": [ - 3982 - ] - }, - { - "teal": 3939, - "source": 948, - "pc": [ - 3983, - 3984 - ] - }, - { - "teal": 3942, - "source": 948, - "pc": [ - 3985 - ] - }, - { - "teal": 3943, - "source": 948, - "pc": [ - 3986, - 3987 - ] - }, - { - "teal": 3944, - "source": 948, - "pc": [ - 3988 - ] - }, - { - "teal": 3945, - "source": 948, - "pc": [ - 3989 - ] - }, - { - "teal": 3946, - "source": 948, - "pc": [ - 3990, - 3991 - ] - }, - { - "teal": 3947, - "source": 948, - "pc": [ - 3992, - 3993, - 3994 - ] - }, - { - "teal": 3948, - "source": 948, - "pc": [ - 3995, - 3996 - ] - }, - { - "teal": 3952, - "source": 952, - "pc": [ - 3997, - 3998 - ] - }, - { - "teal": 3953, - "source": 952, - "pc": [ - 3999, - 4000 - ] - }, - { - "teal": 3954, - "source": 952, - "pc": [ - 4001, - 4002, - 4003 - ] - }, - { - "teal": 3955, - "source": 952, - "pc": [ - 4004 - ] - }, - { - "teal": 3956, - "source": 952, - "pc": [ - 4005 - ] - }, - { - "teal": 3957, - "source": 952, - "pc": [ - 4006, - 4007, - 4008 - ] - }, - { - "teal": 3958, - "source": 952, - "pc": [ - 4009, - 4010 - ] - }, - { - "teal": 3959, - "source": 952, - "pc": [ - 4011, - 4012 - ] - }, - { - "teal": 3960, - "source": 952, - "pc": [ - 4013, - 4014, - 4015 - ] - }, - { - "teal": 3961, - "source": 952, - "pc": [ - 4016 - ] - }, - { - "teal": 3962, - "source": 952, - "pc": [ - 4017 - ] - }, - { - "teal": 3966, - "source": 947, - "pc": [ - 4018, - 4019 - ] - }, - { - "teal": 3967, - "source": 947, - "pc": [ - 4020 - ] - }, - { - "teal": 3971, - "source": 955, - "pc": [ - 4021, - 4022, - 4023 - ] - }, - { - "teal": 3975, - "source": 956, - "pc": [ - 4024, - 4025 - ] - }, - { - "teal": 3976, - "source": 955, - "pc": [ - 4026 - ] - }, - { - "teal": 3983, - "source": 965, - "pc": [ - 4027, - 4028, - 4029 - ] - }, - { - "teal": 3986, - "source": 965, - "pc": [ - 4030, - 4031 - ] - }, - { - "teal": 3990, - "source": 966, - "pc": [ - 4032, - 4033, - 4034 - ] - }, - { - "teal": 3991, - "source": 966, - "pc": [ - 4035, - 4036 - ] - }, - { - "teal": 3995, - "source": 968, - "pc": [ - 4037, - 4038 - ] - }, - { - "teal": 3996, - "source": 968, - "pc": [ - 4039, - 4040 - ] - }, - { - "teal": 3997, - "source": 968, - "pc": [ - 4041 - ] - }, - { - "teal": 3998, - "source": 968, - "pc": [ - 4042 - ] - }, - { - "teal": 3999, - "source": 968, - "pc": [ - 4043, - 4044 - ] - }, - { - "teal": 4000, - "source": 968, - "pc": [ - 4045 - ] - }, - { - "teal": 4001, - "source": 968, - "pc": [ - 4046 - ] - }, - { - "teal": 4002, - "source": 968, - "pc": [ - 4047 - ] - }, - { - "teal": 4003, - "source": 968, - "pc": [ - 4048 - ] - }, - { - "teal": 4004, - "source": 968, - "pc": [ - 4049 - ] - }, - { - "teal": 4007, - "source": 968, - "errorMessage": "wideRatio failed", - "pc": [ - 4050 - ] - }, - { - "teal": 4010, - "source": 965, - "pc": [ - 4051, - 4052 - ] - }, - { - "teal": 4011, - "source": 965, - "pc": [ - 4053 - ] - }, - { - "teal": 4015, - "source": 971, - "pc": [ - 4054, - 4055, - 4056 - ] - }, - { - "teal": 4018, - "source": 971, - "pc": [ - 4057, - 4058 - ] - }, - { - "teal": 4022, - "source": 975, - "pc": [ - 4059 - ] - }, - { - "teal": 4023, - "source": 975, - "pc": [ - 4060, - 4061 - ] - }, - { - "teal": 4028, - "source": 976, - "pc": [ - 4062, - 4063 - ] - }, - { - "teal": 4029, - "source": 976, - "pc": [ - 4064 - ] - }, - { - "teal": 4030, - "source": 976, - "pc": [ - 4065, - 4066, - 4067 - ] - }, - { - "teal": 4035, - "source": 978, - "pc": [ - 4068, - 4069, - 4070, - 4071 - ] - }, - { - "teal": 4036, - "source": 978, - "pc": [ - 4072, - 4073, - 4074 - ] - }, - { - "teal": 4041, - "source": 980, - "pc": [ - 4075 - ] - }, - { - "teal": 4045, - "source": 971, - "pc": [ - 4076, - 4077 - ] - }, - { - "teal": 4046, - "source": 971, - "pc": [ - 4078 - ] - }, - { - "teal": 4050, - "source": 983, - "pc": [ - 4079, - 4080, - 4081 - ] - }, - { - "teal": 4054, - "source": 985, - "pc": [ - 4082, - 4083, - 4084, - 4085, - 4086, - 4087, - 4088, - 4089, - 4090 - ] - }, - { - "teal": 4055, - "source": 983, - "pc": [ - 4091 - ] - }, - { - "teal": 4061, - "source": 991, - "pc": [ - 4092, - 4093, - 4094 - ] - }, - { - "teal": 4064, - "source": 991, - "pc": [ - 4095, - 4096 - ] - }, - { - "teal": 4065, - "source": 991, - "pc": [ - 4097, - 4098 - ] - }, - { - "teal": 4069, - "source": 992, - "pc": [ - 4099, - 4100 - ] - }, - { - "teal": 4070, - "source": 992, - "pc": [ - 4101 - ] - }, - { - "teal": 4071, - "source": 992, - "pc": [ - 4102 - ] - }, - { - "teal": 4072, - "source": 992, - "pc": [ - 4103, - 4104 - ] - }, - { - "teal": 4077, - "source": 993, - "pc": [ - 4105, - 4106 - ] - }, - { - "teal": 4078, - "source": 993, - "pc": [ - 4107, - 4108 - ] - }, - { - "teal": 4079, - "source": 993, - "pc": [ - 4109 - ] - }, - { - "teal": 4080, - "source": 993, - "pc": [ - 4110, - 4111 - ] - }, - { - "teal": 4081, - "source": 993, - "pc": [ - 4112 - ] - }, - { - "teal": 4082, - "source": 993, - "pc": [ - 4113 - ] - }, - { - "teal": 4083, - "source": 993, - "pc": [ - 4114 - ] - }, - { - "teal": 4084, - "source": 993, - "pc": [ - 4115 - ] - }, - { - "teal": 4087, - "source": 993, - "errorMessage": "currentBinSize as uint64 overflowed 64 bits", - "pc": [ - 4116 - ] - }, - { - "teal": 4088, - "source": 993, - "pc": [ - 4117, - 4118, - 4119, - 4120, - 4121, - 4122, - 4123, - 4124, - 4125, - 4126 - ] - }, - { - "teal": 4089, - "source": 993, - "pc": [ - 4127 - ] - }, - { - "teal": 4090, - "source": 993, - "pc": [ - 4128 - ] - }, - { - "teal": 4091, - "source": 993, - "pc": [ - 4129 - ] - }, - { - "teal": 4092, - "source": 993, - "pc": [ - 4130 - ] - }, - { - "teal": 4093, - "source": 993, - "pc": [ - 4131, - 4132 - ] - }, - { - "teal": 4094, - "source": 993, - "pc": [ - 4133 - ] - }, - { - "teal": 4095, - "source": 993, - "pc": [ - 4134 - ] - }, - { - "teal": 4096, - "source": 993, - "pc": [ - 4135 - ] - }, - { - "teal": 4097, - "source": 993, - "pc": [ - 4136 - ] - }, - { - "teal": 4098, - "source": 993, - "pc": [ - 4137 - ] - }, - { - "teal": 4099, - "source": 993, - "pc": [ - 4138 - ] - }, - { - "teal": 4100, - "source": 993, - "pc": [ - 4139, - 4140, - 4141 - ] - }, - { - "teal": 4106, - "source": 994, - "pc": [ - 4142, - 4143 - ] - }, - { - "teal": 4107, - "source": 994, - "pc": [ - 4144, - 4145 - ] - }, - { - "teal": 4108, - "source": 994, - "pc": [ - 4146 - ] - }, - { - "teal": 4109, - "source": 994, - "pc": [ - 4147, - 4148, - 4149 - ] - }, - { - "teal": 4114, - "source": 995, - "pc": [ - 4150 - ] - }, - { - "teal": 4115, - "source": 995, - "pc": [ - 4151 - ] - }, - { - "teal": 4116, - "source": 995, - "pc": [ - 4152, - 4153 - ] - }, - { - "teal": 4117, - "source": 995, - "pc": [ - 4154 - ] - }, - { - "teal": 4118, - "source": 995, - "pc": [ - 4155, - 4156 - ] - }, - { - "teal": 4119, - "source": 995, - "pc": [ - 4157, - 4158 - ] - }, - { - "teal": 4120, - "source": 995, - "pc": [ - 4159 - ] - }, - { - "teal": 4121, - "source": 995, - "pc": [ - 4160, - 4161 - ] - }, - { - "teal": 4122, - "source": 995, - "pc": [ - 4162, - 4163 - ] - }, - { - "teal": 4123, - "source": 995, - "pc": [ - 4164, - 4165 - ] - }, - { - "teal": 4124, - "source": 995, - "pc": [ - 4166, - 4167 - ] - }, - { - "teal": 4125, - "source": 995, - "pc": [ - 4168 - ] - }, - { - "teal": 4130, - "source": 997, - "pc": [ - 4169, - 4170 - ] - }, - { - "teal": 4131, - "source": 997, - "pc": [ - 4171, - 4172, - 4173, - 4174, - 4175, - 4176, - 4177, - 4178, - 4179, - 4180, - 4181, - 4182, - 4183, - 4184, - 4185, - 4186, - 4187, - 4188 - ] - }, - { - "teal": 4132, - "source": 997, - "pc": [ - 4189 - ] - }, - { - "teal": 4133, - "source": 997, - "pc": [ - 4190 - ] - }, - { - "teal": 4134, - "source": 997, - "pc": [ - 4191 - ] - }, - { - "teal": 4135, - "source": 997, - "pc": [ - 4192, - 4193 - ] - }, - { - "teal": 4136, - "source": 997, - "pc": [ - 4194 - ] - }, - { - "teal": 4139, - "source": 997, - "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", - "pc": [ - 4195 - ] - }, - { - "teal": 4140, - "source": 997, - "pc": [ - 4196, - 4197 - ] - }, - { - "teal": 4141, - "source": 997, - "pc": [ - 4198 - ] - }, - { - "teal": 4142, - "source": 997, - "pc": [ - 4199 - ] - }, - { - "teal": 4143, - "source": 997, - "pc": [ - 4200 - ] - }, - { - "teal": 4144, - "source": 997, - "pc": [ - 4201 - ] - }, - { - "teal": 4145, - "source": 997, - "pc": [ - 4202, - 4203 - ] - }, - { - "teal": 4146, - "source": 997, - "pc": [ - 4204 - ] - }, - { - "teal": 4147, - "source": 997, - "pc": [ - 4205 - ] - }, - { - "teal": 4148, - "source": 997, - "pc": [ - 4206 - ] - }, - { - "teal": 4149, - "source": 997, - "pc": [ - 4207, - 4208 - ] - }, - { - "teal": 4153, - "source": 998, - "pc": [ - 4209, - 4210 - ] - }, - { - "teal": 4154, - "source": 998, - "pc": [ - 4211 - ] - }, - { - "teal": 4155, - "source": 998, - "pc": [ - 4212, - 4213 - ] - }, - { - "teal": 4156, - "source": 998, - "pc": [ - 4214 - ] - }, - { - "teal": 4157, - "source": 998, - "pc": [ - 4215 - ] - }, - { - "teal": 4158, - "source": 998, - "pc": [ - 4216 - ] - }, - { - "teal": 4159, - "source": 998, - "pc": [ - 4217, - 4218 - ] - }, - { - "teal": 4160, - "source": 998, - "pc": [ - 4219 - ] - }, - { - "teal": 4163, - "source": 998, - "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", - "pc": [ - 4220 - ] - }, - { - "teal": 4164, - "source": 998, - "pc": [ - 4221, - 4222 - ] - }, - { - "teal": 4165, - "source": 998, - "pc": [ - 4223 - ] - }, - { - "teal": 4166, - "source": 998, - "pc": [ - 4224 - ] - }, - { - "teal": 4167, - "source": 998, - "pc": [ - 4225 - ] - }, - { - "teal": 4168, - "source": 998, - "pc": [ - 4226 - ] - }, - { - "teal": 4169, - "source": 998, - "pc": [ - 4227, - 4228 - ] - }, - { - "teal": 4170, - "source": 998, - "pc": [ - 4229 - ] - }, - { - "teal": 4171, - "source": 998, - "pc": [ - 4230 - ] - }, - { - "teal": 4172, - "source": 998, - "pc": [ - 4231 - ] - }, - { - "teal": 4173, - "source": 998, - "pc": [ - 4232, - 4233 - ] - }, - { - "teal": 4178, - "source": 999, - "pc": [ - 4234, - 4235 - ] - }, - { - "teal": 4179, - "source": 999, - "pc": [ - 4236, - 4237 - ] - }, - { - "teal": 4180, - "source": 999, - "pc": [ - 4238 - ] - }, - { - "teal": 4181, - "source": 999, - "pc": [ - 4239, - 4240, - 4241 - ] - }, - { - "teal": 4188, - "source": 1004, - "pc": [ - 4242, - 4243 - ] - }, - { - "teal": 4189, - "source": 1004, - "pc": [ - 4244 - ] - }, - { - "teal": 4190, - "source": 1004, - "pc": [ - 4245 - ] - }, - { - "teal": 4191, - "source": 1004, - "pc": [ - 4246, - 4247, - 4248, - 4249, - 4250, - 4251, - 4252, - 4253, - 4254, - 4255, - 4256, - 4257, - 4258, - 4259, - 4260, - 4261, - 4262, - 4263 - ] - }, - { - "teal": 4192, - "source": 1004, - "pc": [ - 4264 - ] - }, - { - "teal": 4193, - "source": 1004, - "pc": [ - 4265, - 4266 - ] - }, - { - "teal": 4194, - "source": 1004, - "pc": [ - 4267 - ] - }, - { - "teal": 4195, - "source": 1005, - "pc": [ - 4268, - 4269 - ] - }, - { - "teal": 4196, - "source": 1005, - "pc": [ - 4270, - 4271 - ] - }, - { - "teal": 4197, - "source": 1005, - "pc": [ - 4272 - ] - }, - { - "teal": 4198, - "source": 1004, - "pc": [ - 4273 - ] - }, - { - "teal": 4199, - "source": 1004, - "pc": [ - 4274 - ] - }, - { - "teal": 4200, - "source": 1004, - "pc": [ - 4275 - ] - }, - { - "teal": 4201, - "source": 1004, - "pc": [ - 4276, - 4277 - ] - }, - { - "teal": 4202, - "source": 1004, - "pc": [ - 4278 - ] - }, - { - "teal": 4205, - "source": 1004, - "errorMessage": "(((this.rewardAccumulator.value as uint128) * (10000 as uint128)) / avgStake) *\\n (approxRoundsPerYear / currentBinSize) overflowed 128 bits", - "pc": [ - 4279 - ] - }, - { - "teal": 4206, - "source": 1004, - "pc": [ - 4280, - 4281 - ] - }, - { - "teal": 4207, - "source": 1004, - "pc": [ - 4282 - ] - }, - { - "teal": 4208, - "source": 1004, - "pc": [ - 4283 - ] - }, - { - "teal": 4209, - "source": 1004, - "pc": [ - 4284 - ] - }, - { - "teal": 4210, - "source": 1004, - "pc": [ - 4285 - ] - }, - { - "teal": 4211, - "source": 1004, - "pc": [ - 4286, - 4287 - ] - }, - { - "teal": 4212, - "source": 1004, - "pc": [ - 4288 - ] - }, - { - "teal": 4213, - "source": 1004, - "pc": [ - 4289 - ] - }, - { - "teal": 4214, - "source": 1004, - "pc": [ - 4290 - ] - }, - { - "teal": 4215, - "source": 1003, - "pc": [ - 4291, - 4292 - ] - }, - { - "teal": 4219, - "source": 1007, - "pc": [ - 4293, - 4294, - 4295, - 4296, - 4297, - 4298, - 4299, - 4300, - 4301, - 4302, - 4303, - 4304, - 4305, - 4306, - 4307, - 4308, - 4309, - 4310 - ] - }, - { - "teal": 4220, - "source": 1007, - "pc": [ - 4311, - 4312 - ] - }, - { - "teal": 4225, - "source": 1009, - "pc": [ - 4313, - 4314 - ] - }, - { - "teal": 4226, - "source": 1009, - "pc": [ - 4315, - 4316, - 4317, - 4318, - 4319, - 4320, - 4321, - 4322, - 4323, - 4324, - 4325, - 4326, - 4327, - 4328, - 4329, - 4330, - 4331, - 4332 - ] - }, - { - "teal": 4227, - "source": 1009, - "pc": [ - 4333 - ] - }, - { - "teal": 4228, - "source": 1009, - "pc": [ - 4334, - 4335, - 4336 - ] - }, - { - "teal": 4233, - "source": 1010, - "pc": [ - 4337, - 4338, - 4339, - 4340, - 4341, - 4342, - 4343, - 4344, - 4345, - 4346, - 4347, - 4348, - 4349, - 4350, - 4351, - 4352, - 4353, - 4354 - ] - }, - { - "teal": 4234, - "source": 1010, - "pc": [ - 4355, - 4356 - ] - }, - { - "teal": 4241, - "source": 1012, - "pc": [ - 4357, - 4358 - ] - }, - { - "teal": 4242, - "source": 1012, - "pc": [ - 4359 - ] - }, - { - "teal": 4243, - "source": 1013, - "pc": [ - 4360 - ] - }, - { - "teal": 4244, - "source": 1013, - "pc": [ - 4361, - 4362 - ] - }, - { - "teal": 4245, - "source": 1013, - "pc": [ - 4363, - 4364 - ] - }, - { - "teal": 4246, - "source": 1013, - "pc": [ - 4365 - ] - }, - { - "teal": 4247, - "source": 1013, - "pc": [ - 4366 - ] - }, - { - "teal": 4248, - "source": 1013, - "pc": [ - 4367, - 4368 - ] - }, - { - "teal": 4249, - "source": 1013, - "pc": [ - 4369 - ] - }, - { - "teal": 4250, - "source": 1014, - "pc": [ - 4370, - 4371 - ] - }, - { - "teal": 4251, - "source": 1014, - "pc": [ - 4372, - 4373 - ] - }, - { - "teal": 4252, - "source": 1014, - "pc": [ - 4374 - ] - }, - { - "teal": 4253, - "source": 1014, - "pc": [ - 4375, - 4376 - ] - }, - { - "teal": 4254, - "source": 1014, - "pc": [ - 4377 - ] - }, - { - "teal": 4255, - "source": 1013, - "pc": [ - 4378 - ] - }, - { - "teal": 4256, - "source": 1013, - "pc": [ - 4379 - ] - }, - { - "teal": 4257, - "source": 1013, - "pc": [ - 4380 - ] - }, - { - "teal": 4258, - "source": 1013, - "pc": [ - 4381, - 4382 - ] - }, - { - "teal": 4259, - "source": 1013, - "pc": [ - 4383 - ] - }, - { - "teal": 4262, - "source": 1013, - "errorMessage": "(this.weightedMovingAverage.value * ((100 as uint128) - alpha)) / (100 as uint128) +\\n (apr * alpha) / (100 as uint128) overflowed 128 bits", - "pc": [ - 4384 - ] - }, - { - "teal": 4263, - "source": 1013, - "pc": [ - 4385, - 4386 - ] - }, - { - "teal": 4264, - "source": 1013, - "pc": [ - 4387 - ] - }, - { - "teal": 4265, - "source": 1013, - "pc": [ - 4388 - ] - }, - { - "teal": 4266, - "source": 1013, - "pc": [ - 4389 - ] - }, - { - "teal": 4267, - "source": 1013, - "pc": [ - 4390 - ] - }, - { - "teal": 4268, - "source": 1013, - "pc": [ - 4391, - 4392 - ] - }, - { - "teal": 4269, - "source": 1013, - "pc": [ - 4393 - ] - }, - { - "teal": 4270, - "source": 1013, - "pc": [ - 4394 - ] - }, - { - "teal": 4271, - "source": 1013, - "pc": [ - 4395 - ] - }, - { - "teal": 4272, - "source": 1012, - "pc": [ - 4396 - ] - }, - { - "teal": 4277, - "source": 1018, - "pc": [ - 4397, - 4398, - 4399 - ] - }, - { - "teal": 4281, - "source": 1019, - "pc": [ - 4400, - 4401 - ] - }, - { - "teal": 4282, - "source": 1019, - "pc": [ - 4402, - 4403 - ] - }, - { - "teal": 4283, - "source": 1019, - "pc": [ - 4404 - ] - }, - { - "teal": 4284, - "source": 1019, - "pc": [ - 4405 - ] - }, - { - "teal": 4285, - "source": 1019, - "pc": [ - 4406, - 4407 - ] - }, - { - "teal": 4286, - "source": 1019, - "pc": [ - 4408 - ] - }, - { - "teal": 4287, - "source": 1019, - "pc": [ - 4409 - ] - }, - { - "teal": 4288, - "source": 1019, - "pc": [ - 4410 - ] - }, - { - "teal": 4289, - "source": 1019, - "pc": [ - 4411 - ] - }, - { - "teal": 4290, - "source": 1019, - "pc": [ - 4412 - ] - }, - { - "teal": 4291, - "source": 1019, - "pc": [ - 4413, - 4414 - ] - }, - { - "teal": 4292, - "source": 1019, - "pc": [ - 4415 - ] - }, - { - "teal": 4295, - "source": 1019, - "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", - "pc": [ - 4416 - ] - }, - { - "teal": 4296, - "source": 1019, - "pc": [ - 4417, - 4418 - ] - }, - { - "teal": 4297, - "source": 1019, - "pc": [ - 4419 - ] - }, - { - "teal": 4298, - "source": 1019, - "pc": [ - 4420 - ] - }, - { - "teal": 4299, - "source": 1019, - "pc": [ - 4421 - ] - }, - { - "teal": 4300, - "source": 1019, - "pc": [ - 4422 - ] - }, - { - "teal": 4301, - "source": 1019, - "pc": [ - 4423, - 4424 - ] - }, - { - "teal": 4302, - "source": 1019, - "pc": [ - 4425 - ] - }, - { - "teal": 4303, - "source": 1019, - "pc": [ - 4426 - ] - }, - { - "teal": 4304, - "source": 1019, - "pc": [ - 4427 - ] - }, - { - "teal": 4305, - "source": 1019, - "pc": [ - 4428 - ] - }, - { - "teal": 4309, - "source": 1020, - "pc": [ - 4429, - 4430 - ] - }, - { - "teal": 4310, - "source": 1020, - "pc": [ - 4431 - ] - }, - { - "teal": 4311, - "source": 1020, - "pc": [ - 4432 - ] - }, - { - "teal": 4315, - "source": 1021, - "pc": [ - 4433, - 4434 - ] - }, - { - "teal": 4316, - "source": 1021, - "pc": [ - 4435, - 4436 - ] - }, - { - "teal": 4317, - "source": 1021, - "pc": [ - 4437, - 4438 - ] - }, - { - "teal": 4318, - "source": 1021, - "pc": [ - 4439, - 4440 - ] - }, - { - "teal": 4319, - "source": 1021, - "pc": [ - 4441 - ] - }, - { - "teal": 4320, - "source": 1021, - "pc": [ - 4442 - ] - }, - { - "teal": 4321, - "source": 1021, - "pc": [ - 4443 - ] - }, - { - "teal": 4322, - "source": 1021, - "pc": [ - 4444 - ] - }, - { - "teal": 4325, - "source": 991, - "pc": [ - 4445 - ] - }, - { - "teal": 4329, - "source": 1025, - "pc": [ - 4446, - 4447, - 4448 - ] - }, - { - "teal": 4333, - "source": 1026, - "pc": [ - 4449, - 4450 - ] - }, - { - "teal": 4334, - "source": 1026, - "pc": [ - 4451, - 4452, - 4453, - 4454 - ] - }, - { - "teal": 4335, - "source": 1026, - "pc": [ - 4455 - ] - }, - { - "teal": 4336, - "source": 1025, - "pc": [ - 4456 - ] - }, - { - "teal": 4339, - "source": 38, - "pc": [ - 4457, - 4458, - 4459, - 4460, - 4461, - 4462 - ] - }, - { - "teal": 4340, - "source": 38, - "pc": [ - 4463, - 4464, - 4465 - ] - }, - { - "teal": 4341, - "source": 38, - "pc": [ - 4466, - 4467, - 4468, - 4469 - ] - }, - { - "teal": 4344, - "source": 38, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 4470 - ] - }, - { - "teal": 4347, - "source": 38, - "pc": [ - 4471, - 4472, - 4473, - 4474, - 4475, - 4476 - ] - }, - { - "teal": 4348, - "source": 38, - "pc": [ - 4477, - 4478, - 4479, - 4480, - 4481, - 4482 - ] - }, - { - "teal": 4349, - "source": 38, - "pc": [ - 4483, - 4484, - 4485, - 4486, - 4487, - 4488 - ] - }, - { - "teal": 4350, - "source": 38, - "pc": [ - 4489, - 4490, - 4491, - 4492, - 4493, - 4494 - ] - }, - { - "teal": 4351, - "source": 38, - "pc": [ - 4495, - 4496, - 4497, - 4498, - 4499, - 4500 - ] - }, - { - "teal": 4352, - "source": 38, - "pc": [ - 4501, - 4502, - 4503, - 4504, - 4505, - 4506 - ] - }, - { - "teal": 4353, - "source": 38, - "pc": [ - 4507, - 4508, - 4509, - 4510, - 4511, - 4512 - ] - }, - { - "teal": 4354, - "source": 38, - "pc": [ - 4513, - 4514, - 4515, - 4516, - 4517, - 4518 - ] - }, - { - "teal": 4355, - "source": 38, - "pc": [ - 4519, - 4520, - 4521, - 4522, - 4523, - 4524 - ] - }, - { - "teal": 4356, - "source": 38, - "pc": [ - 4525, - 4526, - 4527, - 4528, - 4529, - 4530 - ] - }, - { - "teal": 4357, - "source": 38, - "pc": [ - 4531, - 4532, - 4533, - 4534, - 4535, - 4536 - ] - }, - { - "teal": 4358, - "source": 38, - "pc": [ - 4537, - 4538, - 4539, - 4540, - 4541, - 4542 - ] - }, - { - "teal": 4359, - "source": 38, - "pc": [ - 4543, - 4544 - ] - }, - { - "teal": 4360, - "source": 38, - "pc": [ - 4545, - 4546, - 4547 - ] - }, - { - "teal": 4361, - "source": 38, - "pc": [ - 4548, - 4549, - 4550, - 4551, - 4552, - 4553, - 4554, - 4555, - 4556, - 4557, - 4558, - 4559, - 4560, - 4561, - 4562, - 4563, - 4564, - 4565, - 4566, - 4567, - 4568, - 4569, - 4570, - 4571, - 4572, - 4573, - 4574, - 4575 - ] - }, - { - "teal": 4364, - "source": 38, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 4576 - ] - }, - { - "teal": 4367, - "source": 38, - "pc": [ - 4577, - 4578, - 4579, - 4580, - 4581, - 4582 - ] - }, - { - "teal": 4368, - "source": 38, - "pc": [ - 4583, - 4584, - 4585 - ] - }, - { - "teal": 4369, - "source": 38, - "pc": [ - 4586, - 4587, - 4588, - 4589 - ] - }, - { - "teal": 4372, - "source": 38, - "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", - "pc": [ - 4590 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 38 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 85 + ], + "errorMessage": "Temporary: contract is upgradeable but only during testing and only from a development account" + }, + { + "pc": [ + 154 + ], + "errorMessage": "staking pool must have minimum entry of 1 algo" + }, + { + "pc": [ + 432 + ], + "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction" + }, + { + "pc": [ + 459 + ], + "errorMessage": "staking pool already initialized" + }, + { + "pc": [ + 589 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 597 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}" + }, + { + "pc": [ + 675 + ], + "errorMessage": "argument 0 (staker) for addStake must be a address" + }, + { + "pc": [ + 687 + ], + "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction" + }, + { + "pc": [ + 716 + ], + "errorMessage": "staking pool must be initialized first" + }, + { + "pc": [ + 736 + ], + "errorMessage": "stake can only be added via the validator contract" + }, + { + "pc": [ + 767 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}" + }, + { + "pc": [ + 775 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 785 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}" + }, + { + "pc": [ + 895 + ], + "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits" + }, + { + "pc": [ + 1101 + ], + "errorMessage": "Staking pool full" + }, + { + "pc": [ + 1123 + ], + "errorMessage": "must stake at least the minimum for this pool" + }, + { + "pc": [ + 1256 + ], + "errorMessage": "argument 1 (staker) for removeStake must be a address" + }, + { + "pc": [ + 1281 + ], + "errorMessage": "If staker is not sender in removeStake call, then sender MUST be owner or manager of validator" + }, + { + "pc": [ + 1391 + ], + "errorMessage": "Insufficient balance" + }, + { + "pc": [ + 1642 + ], + "errorMessage": "cannot reduce balance below minimum allowed stake unless all is removed" + }, + { + "pc": [ + 1833 + ], + "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits" + }, + { + "pc": [ + 1892 + ], + "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits" + }, + { + "pc": [ + 2024 + ], + "errorMessage": "account not found" + }, + { + "pc": [ + 2425 + ], + "errorMessage": "account not found" + }, + { + "pc": [ + 2441 + ], + "errorMessage": "argument 0 (staker) for getStakerInfo must be a address" + }, + { + "pc": [ + 2561 + ], + "errorMessage": "account not found" + }, + { + "pc": [ + 2581 + ], + "errorMessage": "argument 2 (staker) for payTokenReward must be a address" + }, + { + "pc": [ + 2610 + ], + "errorMessage": "this can only be called via the validator contract" + }, + { + "pc": [ + 2623 + ], + "errorMessage": "must be pool 1 in order to be called to pay out token rewards" + }, + { + "pc": [ + 2629 + ], + "errorMessage": "can only claim token rewards from validator that has them" + }, + { + "pc": [ + 2671 + ], + "errorMessage": "can only be called by owner or manager of validator" + }, + { + "pc": [ + 2841 + ], + "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call" + }, + { + "pc": [ + 3374 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 3444 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 3550 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 3990 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 4073 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 4312 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 4365 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 4531 + ], + "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits" + }, + { + "pc": [ + 4713 + ], + "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction" + }, + { + "pc": [ + 4728 + ], + "errorMessage": "can only be called by owner or manager of validator" + }, + { + "pc": [ + 4741 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 4749 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}" + }, + { + "pc": [ + 4820 + ], + "errorMessage": "can only be called by owner or manager of validator" + }, + { + "pc": [ + 4854 + ], + "errorMessage": "can only be called by owner or manager of validator" + }, + { + "pc": [ + 4919 + ], + "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)" + }, + { + "pc": [ + 4954 + ], + "errorMessage": "caller must be part of same validator set!" + }, + { + "pc": [ + 4967 + ], + "errorMessage": "callee must be pool 1" + }, + { + "pc": [ + 4977 + ], + "errorMessage": "caller must NOT be pool 1" + }, + { + "pc": [ + 5249 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 5343 + ], + "errorMessage": "currentBinSize as uint64 overflowed 64 bits" + }, + { + "pc": [ + 5429 + ], + "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits" + }, + { + "pc": [ + 5487 + ], + "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits" + }, + { + "pc": [ + 5596 + ], + "errorMessage": "(((this.rewardAccumulator.value as uint128) * (10000 as uint128)) / avgStake) *\\n (approxRoundsPerYear / currentBinSize) overflowed 128 bits" + }, + { + "pc": [ + 5770 + ], + "errorMessage": "(this.weightedMovingAverage.value * ((100 as uint128) - alpha)) / (100 as uint128) +\\n (apr * alpha) / (100 as uint128) overflowed 128 bits" + }, + { + "pc": [ + 5853 + ], + "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits" + }, + { + "pc": [ + 5978 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 6088 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + }, + { + "pc": [ + 6102 + ], + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication" + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9mZWVTaW5rQWRkcgpzdG9yZSAyMDEKcHVzaGJ5dGVzIFRNUExfbmZkUmVnaXN0cnlBcHBJZApidG9pCnN0b3JlIDIwMAoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfVXBkYXRlQXBwbGljYXRpb24gKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfdXBkYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIHVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIHVwZGF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpOiB2b2lkCnVwZGF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IEFkZHJlc3MuZnJvbUFkZHJlc3MoJ0xaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEnKSwKCS8vICAgICAgICdUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50JwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWFkZHIgTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUQoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludCAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJaW50IDEwMDAwMDAKCT49CgoJLy8gc3Rha2luZyBwb29sIG11c3QgaGF2ZSBtaW5pbXVtIGVudHJ5IG9mIDEgYWxnbwoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjExNwoJLy8gdGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUgPSBjcmVhdGluZ0NvbnRyYWN0SWQKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE4CgkvLyB0aGlzLnZhbGlkYXRvcklkLnZhbHVlID0gdmFsaWRhdG9ySWQKCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTkKCS8vIHRoaXMucG9vbElkLnZhbHVlID0gcG9vbElkCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMAoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlID0gMAoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMQoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgPSAwCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTIyCgkvLyB0aGlzLm1pbkVudHJ5U3Rha2UudmFsdWUgPSBtaW5FbnRyeVN0YWtlCglieXRlIDB4NmQ2OTZlNDU2ZTc0NzI3OTUzNzQ2MTZiNjUgLy8gIm1pbkVudHJ5U3Rha2UiCglmcmFtZV9kaWcgLTQgLy8gbWluRW50cnlTdGFrZTogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjMKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGdsb2JhbHMucm91bmQKCWJ5dGUgMHg2YzYxNzM3NDUwNjE3OTZmNzU3NCAvLyAibGFzdFBheW91dCIKCWdsb2JhbCBSb3VuZAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI0CgkvLyB0aGlzLmVwb2NoTnVtYmVyLnZhbHVlID0gMAoJYnl0ZSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgLy8gImVwb2NoTnVtYmVyIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNgoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI3CgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGUgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAvLyAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJJQoJLQoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI4CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTI5CgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gMAoJYnl0ZSAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInJld2FyZEFjY3VtdWxhdG9yIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEzMAoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPSAwIGFzIHVpbnQxMjgKCWJ5dGUgMHg2NTc3NmQ2MSAvLyAiZXdtYSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2FzKCl2b2lkCiphYmlfcm91dGVfZ2FzOgoJLy8gZXhlY3V0ZSBnYXMoKXZvaWQKCWNhbGxzdWIgZ2FzCglpbnQgMQoJcmV0dXJuCgovLyBnYXMoKTogdm9pZAovLwovLyBnYXMgaXMgYSBkdW1teSBuby1vcCBjYWxsIHRoYXQgY2FuIGJlIHVzZWQgdG8gcG9vbC11cCByZXNvdXJjZSByZWZlcmVuY2VzIGFuZCBvcGNvZGUgY29zdApnYXM6Cglwcm90byAwIDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UodG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE0MgoJLy8gcmV0dXJuIFNDQk9YX1BFUkJPWCArIHRvdGFsTnVtQnl0ZXMgKiBTQ0JPWF9QRVJCWVRFOwoJaW50IDI1MDAKCWZyYW1lX2RpZyAtMSAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCWludCA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBpbml0U3RvcmFnZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGluaXRTdG9yYWdlKHBheSl2b2lkCgljYWxsc3ViIGluaXRTdG9yYWdlCglpbnQgMQoJcmV0dXJuCgovLyBpbml0U3RvcmFnZShtYnJQYXltZW50OiBQYXlUeG4pOiB2b2lkCi8vCi8vIENhbGxlZCBhZnRlciB3ZSdyZSBjcmVhdGVkIGFuZCB0aGVuIGZ1bmRlZCwgc28gd2UgY2FuIGNyZWF0ZSBvdXIgbGFyZ2Ugc3Rha2VycyBsZWRnZXIgc3RvcmFnZQovLyBDYWxsZXIgaGFzIHRvIGdldCBNQlIgYW1vdW50cyBmcm9tIFZhbGlkYXRvclJlZ2lzdHJ5IHRvIGtub3cgaG93IG11Y2ggdG8gZnVuZCB1cyB0byBjb3ZlciB0aGUgYm94IHN0b3JhZ2UgY29zdAovLyBJZiB0aGlzIGlzIHBvb2wgMSBBTkQgdGhlIHZhbGlkYXRvciBoYXMgc3BlY2lmaWVkIGEgcmV3YXJkIHRva2VuLCBvcHQtaW4gdG8gdGhhdCB0b2tlbgovLyBzbyB0aGF0IHRoZSB2YWxpZGF0b3IgY2FuIHNlZWQgdGhlIHBvb2wgd2l0aCBmdXR1cmUgcmV3YXJkcyBvZiB0aGF0IHRva2VuLgovLyBAcGFyYW0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgbmV3IHN0YWtpbmcgcG9vbHMnIHN0b3JhZ2UKaW5pdFN0b3JhZ2U6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1MwoJLy8gYXNzZXJ0KCF0aGlzLnN0YWtlcnMuZXhpc3RzLCAnc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQnKQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCgoJLy8gc3Rha2luZyBwb29sIGFscmVhZHkgaW5pdGlhbGl6ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTYKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNTcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1OAoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjAKCS8vIGlzVG9rZW5FbGlnaWJsZSA9IHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaW50IDAKCSE9CglmcmFtZV9idXJ5IDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MQoJLy8gZXh0cmFNQlIgPSBpc1Rva2VuRWxpZ2libGUgJiYgdGhpcy5wb29sSWQudmFsdWUgPT09IDEgPyBBU1NFVF9IT0xESU5HX0ZFRSA6IDAKCWZyYW1lX2RpZyAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQwCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgkmJgoKKnNraXBfYW5kMDoKCWJ6ICp0ZXJuYXJ5MF9mYWxzZQoJaW50IDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJaW50IDEwMDAwMAoJZnJhbWVfZGlnIDIgLy8gZXh0cmFNQlI6IHVpbnQ2NAoJKwoJaW50IDEyODA3CgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCgkrCglmcmFtZV9idXJ5IDMgLy8gUG9vbEluaXRNYnI6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNjgKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IFBvb2xJbml0TWJyIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDMgLy8gUG9vbEluaXRNYnI6IHVpbnQ2NAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoiUG9vbEluaXRNYnIifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OQoJLy8gdGhpcy5zdGFrZXJzLmNyZWF0ZSgpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCglpbnQgMTI4MDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTcxCgkvLyBpc1Rva2VuRWxpZ2libGUgJiYgdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWZyYW1lX2RpZyAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQxCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NAoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc1CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NgoJLy8gYXNzZXRBbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIGFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDEgKHN0YWtlZEFtb3VudFBheW1lbnQpIGZvciBhZGRTdGFrZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NAoJY2FsbHN1YiBhZGRTdGFrZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgc3Rha2VyOiBBZGRyZXNzKTogdWludDY0Ci8vCi8vIEFkZHMgc3Rha2UgdG8gdGhlIGdpdmVuIGFjY291bnQuCi8vIENhbiBPTkxZIGJlIGNhbGxlZCBieSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0IHRoYXQgY3JlYXRlZCB1cwovLyBNdXN0IHJlY2VpdmUgcGF5bWVudCBmcm9tIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIGFtb3VudCBiZWluZyBzdGFrZWQuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IHByaW9yIHBheW1lbnQgY29taW5nIGZyb20gdmFsaWRhdG9yIGNvbnRyYWN0IHRvIHVzIG9uIGJlaGFsZiBvZiBzdGFrZXIuCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFjY291bnQgYWRkaW5nIG5ldyBzdGFrZQovLyBAdGhyb3dzIHtFcnJvcn0gLSBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHN0YWtpbmcgcG9vbCBpcyBmdWxsLgovLyBAcmV0dXJucyB7dWludDY0fSBuZXcgJ2VudHJ5IHJvdW5kJyByb3VuZCBudW1iZXIgb2Ygc3Rha2UgYWRkCmFkZFN0YWtlOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTIKCS8vIGFzc2VydCh0aGlzLnN0YWtlcnMuZXhpc3RzLCAnc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QnKQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3Rha2luZyBwb29sIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTUKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICdzdGFrZSBjYW4gb25seSBiZSBhZGRlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHN0YWtlIGNhbiBvbmx5IGJlIGFkZGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTk5CgkvLyBhc3NlcnQoc3Rha2VyICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwMgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMDYKCS8vIHZlcmlmeVBheVR4bihzdGFrZWRBbW91bnRQYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoiQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjE1CgkvLyBlbnRyeVJvdW5kID0gZ2xvYmFscy5yb3VuZCArIEFMR09SQU5EX1NUQUtJTkdfQkxPQ0tfREVMQVkKCWdsb2JhbCBSb3VuZAoJaW50IDMyMAoJKwoJZnJhbWVfYnVyeSAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTYKCS8vIGZpcnN0RW1wdHkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50CglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjAKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWZyYW1lX2RpZyAyIC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyOQoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjMwCgkvLyBjbXBTdGFrZXIuYWNjb3VudCA9PT0gc3Rha2VyCglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjMyCgkvLyBjbXBTdGFrZXIuYmFsYW5jZSArPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjMzCgkvLyBjbXBTdGFrZXIuZW50cnlSb3VuZCA9IGVudHJ5Um91bmQKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM4CgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJYiAqYWRkU3Rha2UqcmV0dXJuCgoqaWYzX2VuZDoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQwCgkvLyBmaXJzdEVtcHR5ID09PSAwICYmIGNtcFN0YWtlci5hY2NvdW50ID09PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJZHVwCglieiAqc2tpcF9hbmQyCglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDI6CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0MQoJLy8gZmlyc3RFbXB0eSA9IGkgKyAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoqaWY0X2VuZDoKCipmb3JfMF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0NQoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBTdGFraW5nIHBvb2wgZnVsbAoJZXJyCgoqaWY1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTIKCS8vIGFzc2VydChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCA+PSB0aGlzLm1pbkVudHJ5U3Rha2UudmFsdWUsICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnKQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NmQ2OTZlNDU2ZTc0NzI3OTUzNzQ2MTZiNjUgLy8gIm1pbkVudHJ5U3Rha2UiCglhcHBfZ2xvYmFsX2dldAoJPj0KCgkvLyBtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTQKCS8vIGFzc2VydCh0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAxCgktCglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCAzMgoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTUKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0gPSB7CgkvLyAgICAgICBhY2NvdW50OiBzdGFrZXIsCgkvLyAgICAgICBiYWxhbmNlOiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICAgIHRvdGFsUmV3YXJkZWQ6IDAsCgkvLyAgICAgICByZXdhcmRUb2tlbkJhbGFuY2U6IDAsCgkvLyAgICAgICBlbnRyeVJvdW5kOiBlbnRyeVJvdW5kLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50IDEKCS0KCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50IDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5MwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk0CgkvLyBjbXBTdGFrZXIuYWNjb3VudCA9PT0gc3Rha2VyCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJPT0KCWJ6ICppZjhfZW5kCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NQoJLy8gYW1vdW50VG9VbnN0YWtlID09PSAwCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmOV9lbmQKCgkvLyAqaWY5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTcKCS8vIGFtb3VudFRvVW5zdGFrZSA9IGNtcFN0YWtlci5iYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfYnVyeSAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoKKmlmOV9lbmQ6CgkvLyAqaWYxMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTkKCS8vIGNtcFN0YWtlci5iYWxhbmNlIDwgYW1vdW50VG9VbnN0YWtlCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0Cgk8CglieiAqaWYxMF9lbmQKCgkvLyAqaWYxMF9jb25zZXF1ZW50CgkvLyBJbnN1ZmZpY2llbnQgYmFsYW5jZQoJZXJyCgoqaWYxMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzAyCgkvLyBjbXBTdGFrZXIuYmFsYW5jZSAtPSBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwMwoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLT0gYW1vdW50VG9VbnN0YWtlCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgktCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDUKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDYKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPiAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDggOAoJYnRvaQoJaW50IDAKCT4KCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwOAoJLy8gdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCWJ6ICppZjEyX2Vsc2UKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA5CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzEwCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTEKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDMgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgICAgICBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSwKCS8vICAgICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzE4CgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyAzIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTkKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMAoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjIKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIzCgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTJfZW5kCgoqaWYxMl9lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOAoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTJfZW5kOgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMzNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICAgIGNtcFN0YWtlci5iYWxhbmNlID09PSAwIHx8IGNtcFN0YWtlci5iYWxhbmNlID49IHRoaXMubWluRW50cnlTdGFrZS52YWx1ZSwKCS8vICAgICAgICAgICAnY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQnCgkvLyAgICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnQgMAoJPT0KCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWJ5dGUgMHg2ZDY5NmU0NTZlNzQ3Mjc5NTM3NDYxNmI2NSAvLyAibWluRW50cnlTdGFrZSIKCWFwcF9nbG9iYWxfZ2V0Cgk+PQoJfHwKCipza2lwX29yMDoKCS8vIGNhbm5vdCByZWR1Y2UgYmFsYW5jZSBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgc3Rha2UgdW5sZXNzIGFsbCBpcyByZW1vdmVkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgYW1vdW50OiBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgcmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICBub3RlOiAndW5zdGFrZWQnLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDMKCS8vIGFtb3VudDogYW1vdW50VG9VbnN0YWtlCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0NAoJLy8gcmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDUKCS8vIG5vdGU6ICd1bnN0YWtlZCcKCWJ5dGUgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCS0KCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTkKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgNSAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjAKCS8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4ID0gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAoYW1vdW50VG9VbnN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2MQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjgKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvVW5zdGFrZSwKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIHN0YWtlclJlbW92ZWQsCgkvLyAgICAgICAgICAgXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludCAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE0X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTcKCS8vIGNtcFN0YWtlciA9IGNsb25lKHRoaXMuc3Rha2Vycy52YWx1ZVtpXSkKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCA2NAoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTgKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCT09CglieiAqaWYxNV9lbmQKCgkvLyAqaWYxNV9jb25zZXF1ZW50CgkvLyAqaWYxNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTkKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjE2X2VuZAoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDAKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMTZfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMgoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjE3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwNAoJLy8gdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCWJ6ICppZjE3X2Vsc2UKCgkvLyAqaWYxN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA1CgkvLyB2YWxpZGF0b3JDb25maWcgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvckNvbmZpZz4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA2CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDcKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDQgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDEyCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCksCgkvLyAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSwKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxMwoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE0CgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNQoJLy8gYXNzZXRBbW91bnQ6IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTcKCS8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCA9IGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9idXJ5IDMgLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE4CgkvLyBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlID0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJcmVwbGFjZTIgNDgKCWZyYW1lX2J1cnkgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWIgKmlmMTdfZW5kCgoqaWYxN19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyMwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MjQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKKmlmMTdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyOAoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQzMwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAic3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQzNAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICAwLCAvLyBubyBhbGdvIHJlbW92ZWQKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIGZhbHNlLCAvLyBzdGFrZXIgaXNuJ3QgYmVpbmcgcmVtb3ZlZC4KCS8vICAgICAgICAgICBdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ0MwoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNV9lbmQ6CgoqZm9yXzJfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzkzCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoJcmV0c3ViCgovLyBnZXRTdGFrZXJJbmZvKGFkZHJlc3MpKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFN0YWtlckluZm86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZXJJbmZvIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFN0YWtlckluZm8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRTdGFrZXJJbmZvKHN0YWtlcjogQWRkcmVzcyk6IFN0YWtlZEluZm8KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gc3Rha2VyLgovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEByZXR1cm5zIHtTdGFrZWRJbmZvfSAtIFRoZSBzdGFrZWQgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiBzdGFrZXIuCi8vIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBzdGFrZXIncyBhY2NvdW50IGlzIG5vdCBmb3VuZC4KZ2V0U3Rha2VySW5mbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OAoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ1OQoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAyMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAyMDAKCTwKCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE4X2VuZDoKCS8vICppZjE5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MgoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCAzMgoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCT09CglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDYzCgkvLyByZXR1cm4gdGhpcy5zdGFrZXJzLnZhbHVlW2ldOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqZ2V0U3Rha2VySW5mbypyZXR1cm4KCippZjE5X2VuZDoKCipmb3JfM19jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NTgKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzMKCipmb3JfM19lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCgoqZ2V0U3Rha2VySW5mbypyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZDoKCS8vIGFtb3VudFRvU2VuZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gcmV3YXJkVG9rZW46IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAyIChzdGFrZXIpIGZvciBwYXlUb2tlblJld2FyZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBwYXlUb2tlblJld2FyZAoJaW50IDEKCXJldHVybgoKLy8gcGF5VG9rZW5SZXdhcmQoc3Rha2VyOiBBZGRyZXNzLCByZXdhcmRUb2tlbjogdWludDY0LCBhbW91bnRUb1NlbmQ6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gW0ludGVybmFsIHByb3RvY29sIG1ldGhvZF0gUmVtb3ZlIGEgc3BlY2lmaWVkIGFtb3VudCBvZiAnY29tbXVuaXR5IHRva2VuJyByZXdhcmRzIGZvciBhIHN0YWtlci4KLy8gVGhpcyBjYW4gT05MWSBiZSBjYWxsZWQgYnkgb3VyIHZhbGlkYXRvciBhbmQgb25seSBpZiB3ZSdyZSBwb29sIDEgLSB3aXRoIHRoZSB0b2tlbi4KLy8gTm90ZTogdGhpcyBjYW4gYWxzbyBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIGFzIHBhcnQgb2YgT1dORVIgd2FudGluZyB0byBzZW5kIHRoZSByZXdhcmQgdG9rZW5zCi8vIHNvbWV3aGVyZSBlbHNlIChpZSBpZiB0aGV5J3JlIHN1bnNldHRpbmcgdGhlaXIgdmFsaWRhdG9yIGFuZCBuZWVkIHRoZSByZXdhcmQgdG9rZW5zIGJhY2spLgovLyBJdCdzIHVwIHRvIHRoZSB2YWxpZGF0b3IgdG8gZW5zdXJlIHRoYXQgdGhlIGJhbGFuY2UgaW4gcmV3YXJkVG9rZW5IZWxkQmFjayBpcyBob25vcmVkLgovLyBAcGFyYW0gc3Rha2VyIC0gdGhlIHN0YWtlciBhY2NvdW50IHRvIHNlbmQgcmV3YXJkcyB0bwovLyBAcGFyYW0gcmV3YXJkVG9rZW4gLSBpZCBvZiByZXdhcmQgdG9rZW4gKHRvIGF2b2lkIHJlLWVudHJhbmN5IGluIGNhbGxpbmcgdmFsaWRhdG9yIGJhY2sgdG8gZ2V0IGlkKQovLyBAcGFyYW0gYW1vdW50VG9TZW5kIC0gYW1vdW50IHRvIHNlbmQgdGhlIHN0YWtlciAodGhlcmUgaXMgc2lnbmlmaWNhbnQgdHJ1c3QgaGVyZSghKSAtIGFsc28gd2h5IG9ubHkgdmFsaWRhdG9yIGNhbiBjYWxsIHVzCnBheVRva2VuUmV3YXJkOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4MQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKS5hZGRyZXNzLAoJLy8gICAgICAgJ3RoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0JwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gdGhpcyBjYW4gb25seSBiZSBjYWxsZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODUKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ211c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMnKQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoKCS8vIG11c3QgYmUgcG9vbCAxIGluIG9yZGVyIHRvIGJlIGNhbGxlZCB0byBwYXkgb3V0IHRva2VuIHJld2FyZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODYKCS8vIGFzc2VydChyZXdhcmRUb2tlbiAhPT0gMCwgJ2NhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbScpCglmcmFtZV9kaWcgLTIgLy8gcmV3YXJkVG9rZW46IHVpbnQ2NAoJaW50IDAKCSE9CgoJLy8gY2FuIG9ubHkgY2xhaW0gdG9rZW4gcmV3YXJkcyBmcm9tIHZhbGlkYXRvciB0aGF0IGhhcyB0aGVtCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg5CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbiksCgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiBzdGFrZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogYW1vdW50VG9TZW5kLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkwCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NChyZXdhcmRUb2tlbikKCWZyYW1lX2RpZyAtMiAvLyByZXdhcmRUb2tlbjogdWludDY0CglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTEKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MgoJLy8gYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU2VuZDogdWludDY0CglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyOgoJLy8gYWxnb2RWZXI6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUFsZ29kVmVyKHN0cmluZyl2b2lkCgljYWxsc3ViIHVwZGF0ZUFsZ29kVmVyCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVBbGdvZFZlcihhbGdvZFZlcjogc3RyaW5nKTogdm9pZAovLwovLyBVcGRhdGUgdGhlIChob25vciBzeXN0ZW0pIGFsZ29kIHZlcnNpb24gZm9yIHRoZSBub2RlIGFzc29jaWF0ZWQgdG8gdGhpcyBwb29sLiAgVGhlIG5vZGUgbWFuYWdlbWVudCBkYWVtb24KLy8gc2hvdWxkIGNvbXBhcmUgaXRzIGN1cnJlbnQgbm9kZXMgdmVyc2lvbiB0byB0aGUgdmVyc2lvbiBzdG9yZWQgaW4gZ2xvYmFsIHN0YXRlLCB1cGRhdGluZyB3aGVuIGRpZmZlcmVudC4KLy8gVGhlIHJldGkgbm9kZSBkYWVtb24gY29tcG9zZXMgaXRzIG93biB2ZXJzaW9uIHN0cmluZyB1c2luZyBmb3JtYXQ6Ci8vIHttYWpvcn0ue21pbm9yfS57YnVpbGR9IHticmFuY2h9IFt7Y29tbWl0IGhhc2h9XSwKLy8gaWU6IDMuMjIuMCByZWwvc3RhYmxlIFs2YjUwODk3NV0KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENBTEwgXQovLyBAcGFyYW0ge3N0cmluZ30gYWxnb2RWZXIgLSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhbGdvcmFuZCBub2RlIGRhZW1vbiB2ZXJzaW9uIChyZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gbWV0YSB2ZXJzaW9uKQp1cGRhdGVBbGdvZFZlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDYKCS8vIGFzc2VydCh0aGlzLmlzT3duZXJPck1hbmFnZXJDYWxsZXIoKSwgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicpCgljYWxsc3ViIGlzT3duZXJPck1hbmFnZXJDYWxsZXIKCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MDcKCS8vIHRoaXMuYWxnb2RWZXIudmFsdWUgPSBhbGdvZFZlcgoJYnl0ZSAweDYxNmM2NzZmNjQ1NjY1NzIgLy8gImFsZ29kVmVyIgoJZnJhbWVfZGlnIC0xIC8vIGFsZ29kVmVyOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGVwb2NoQmFsYW5jZVVwZGF0ZSgpdm9pZAoqYWJpX3JvdXRlX2Vwb2NoQmFsYW5jZVVwZGF0ZToKCS8vIGV4ZWN1dGUgZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCgljYWxsc3ViIGVwb2NoQmFsYW5jZVVwZGF0ZQoJaW50IDEKCXJldHVybgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgYmFsYW5jZSBvZiBzdGFrZXJzIGluIHRoZSBwb29sIGJhc2VkIG9uIHRoZSByZWNlaXZlZCAncmV3YXJkcycgKGN1cnJlbnQgYmFsYW5jZSB2cyBrbm93biBzdGFrZWQgYmFsYW5jZSkKLy8gc3Rha2VycyBvdXRzdGFuZGluZyBiYWxhbmNlIGlzIGFkanVzdGVkIGJhc2VkIG9uIHRoZWlyICUgb2Ygc3Rha2UgYW5kIHRpbWUgaW4gdGhlIGN1cnJlbnQgZXBvY2ggLSBzbyB0aGF0IGJhbGFuY2UKLy8gY29tcG91bmRzIG92ZXIgdGltZSBhbmQgc3Rha2VyIGNhbiByZW1vdmUgdGhhdCBhbW91bnQgYXQgd2lsbC4KLy8gVGhlIHZhbGlkYXRvciBpcyBwYWlkIHRoZWlyIHBlcmNlbnRhZ2UgZWFjaCBlcG9jaCBwYXlvdXQuCi8vCi8vIE5vdGU6IEFOWU9ORSBjYW4gY2FsbCB0aGlzLgplcG9jaEJhbGFuY2VVcGRhdGU6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzNgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjAKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGUgMHg2YzYxNzM3NDUwNjE3OTZmNzU3NCAvLyAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgLy8gImVwb2NoTnVtYmVyIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglieXRlIDB4NjU3MDZmNjM2ODRlNzU2ZDYyNjU3MiAvLyAiZXBvY2hOdW1iZXIiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTEKCS8vIGlzVG9rZW5FbGlnaWJsZSA9IHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaW50IDAKCSE9CglmcmFtZV9idXJ5IDUgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MgoJLy8gcG9vbE9uZUFwcElEID0gdGhpcy5hcHAuaWQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTMKCS8vIHBvb2xPbmVBZGRyZXNzID0gdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OAoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OQoJLy8gdGhpcy5wb29sSWQudmFsdWUgIT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCAxXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjUKCS8vIHBvb2xPbmVBZGRyZXNzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpLmFkZHJlc3MKCWZyYW1lX2RpZyA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcwCgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoJYnogKmlmMjNfZWxzZQoKCS8vICppZjIzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzEKCS8vIHRva2VuUGF5b3V0UmF0aW8gPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnNldFRva2VuUGF5b3V0UmF0aW8+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTcyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWIgKmlmMjNfZW5kCgoqaWYyM19lbHNlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3NwoJLy8gdG9rZW5QYXlvdXRSYXRpbyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUucHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3sgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfV0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzgKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKQoJZnJhbWVfZGlnIDYgLy8gcG9vbE9uZUFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzkKCS8vIG1ldGhvZEFyZ3M6IFt7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH1dCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJY29uY2F0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSA4IC8vIHRva2VuUGF5b3V0UmF0aW86IFBvb2xUb2tlblBheW91dFJhdGlvCgoqaWYyM19lbmQ6CgoqaWYyMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg2CgkvLyB2YWxpZGF0b3JTdGF0ZSA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yU3RhdGU+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODcKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU4OAoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTkwCgkvLyByZXdhcmRUb2tlbkhlbGRCYWNrID0gdmFsaWRhdG9yU3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMTAgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU5NgoJLy8gYWxnb1Jld2FyZEF2YWlsID0gdGhpcy5hcHAuYWRkcmVzcy5iYWxhbmNlIC0gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgLSB0aGlzLmFwcC5hZGRyZXNzLm1pbkJhbGFuY2UKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXBvcAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCS0KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk4CgkvLyBhbGdvU2F0dXJhdGlvbkFtdCA9IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpCgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWZyYW1lX2J1cnkgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoKCS8vICppZjI0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNgoJLy8gdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkID4gYWxnb1NhdHVyYXRpb25BbXQKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJPgoJYnogKmlmMjRfZW5kCgoJLy8gKmlmMjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYwNwoJLy8gaXNQb29sU2F0dXJhdGVkID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoqaWYyNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjEzCgkvLyB0b2tlblJld2FyZEF2YWlsID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNAoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE1CgkvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE2CgkvLyBleGNlc3NUb0ZlZVNpbmsgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxNyAvLyBleGNlc3NUb0ZlZVNpbms6IHVpbnQ2NAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNwoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTgKCS8vIHRva2VuUmV3YXJkQmFsID0KCS8vICAgICAgICAgcG9vbE9uZUFkZHJlc3MuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDcgLy8gcG9vbE9uZUFkZHJlc3M6IGFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxOCAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjIzCgkvLyB0b2tlblJld2FyZEJhbCA+PSB2YWxpZGF0b3JDb25maWcucmV3YXJkUGVyUGF5b3V0CglmcmFtZV9kaWcgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTYxIDgKCWJ0b2kKCT49CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjI5CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHRva2VuUGF5b3V0UmF0aW8ucG9vbFBjdE9mV2hvbGVbdGhpcy5wb29sSWQudmFsdWUgLSAxXQoJZnJhbWVfZGlnIDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCWludCAwCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCS0KCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxXzAwMF8wMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKKmlmMjZfZW5kOgoKKmlmMjVfZW5kOgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjM1CgkvLyB0b2tlblJld2FyZEF2YWlsID09PSAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MAoJLy8gYWxnb1Jld2FyZEF2YWlsIDwgMV8wMDBfMDAwCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWludCAxXzAwMF8wMDAKCTwKCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDEKCS8vIGxvZygnIXRva2VuJiYhbm9hbGdvIHRvIHBheScpCglieXRlIDB4MjE3NDZmNmI2NTZlMjYyNjIxNmU2ZjYxNmM2NzZmMjA3NDZmMjA3MDYxNzkgLy8gIiF0b2tlbiYmIW5vYWxnbyB0byBwYXkiCglsb2cKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQyCgkvLyByZXR1cm47CglyZXRzdWIKCippZjI4X2VuZDoKCippZjI3X2VuZDoKCS8vICppZjI5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0NgoJLy8gaXNQb29sU2F0dXJhdGVkCglmcmFtZV9kaWcgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCglieiAqaWYyOV9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjI5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDkKCS8vIGRpbWluaXNoZWRSZXdhcmQgPSB3aWRlUmF0aW8oW2FsZ29SZXdhcmRBdmFpbCwgYWxnb1NhdHVyYXRpb25BbXRdLCBbdmFsaWRhdG9yU3RhdGUudG90YWxBbGdvU3Rha2VkXSkKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDEzIC8vIGFsZ29TYXR1cmF0aW9uQW10OiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTAgOAoJYnRvaQoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MQoJLy8gZXhjZXNzVG9GZWVTaW5rID0gYWxnb1Jld2FyZEF2YWlsIC0gZGltaW5pc2hlZFJld2FyZAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CgktCglmcmFtZV9idXJ5IDE3IC8vIGV4Y2Vzc1RvRmVlU2luazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1MgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICBhbW91bnQ6IGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgICAgcmVjZWl2ZXI6IHRoaXMuZ2V0RmVlU2luaygpLAoJLy8gICAgICAgICBub3RlOiAncG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luaycsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTMKCS8vIGFtb3VudDogZXhjZXNzVG9GZWVTaW5rCglmcmFtZV9kaWcgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1NAoJLy8gcmVjZWl2ZXI6IHRoaXMuZ2V0RmVlU2luaygpCgljYWxsc3ViIGdldEZlZVNpbmsKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU1CgkvLyBub3RlOiAncG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luaycKCWJ5dGUgMHg3MDZmNmY2YzIwNzM2MTc0NzU3MjYxNzQ2NTY0MmMyMDY1Nzg2MzY1NzM3MzIwNzQ2ZjIwNjY2NTY1MjA3MzY5NmU2YiAvLyAicG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luayIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU4CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSBkaW1pbmlzaGVkUmV3YXJkCglmcmFtZV9kaWcgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU5CgkvLyB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjIKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0ID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICBbYWxnb1Jld2FyZEF2YWlsLCB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yIGFzIHVpbnQ2NF0sCgkvLyAgICAgICAgIFsxXzAwMF8wMDBdCgkvLyAgICAgICApCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3MyA0CglidG9pCgltdWx3CglpbnQgMAoJaW50IDFfMDAwXzAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjgKCS8vIGFsZ29SZXdhcmRBdmFpbCAtPSB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3NQoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NzgKCS8vIG1hbmFnZXJUb3BPZmYgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCgkvLyAqaWYzMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODAKCS8vIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSB2YWxpZGF0b3JDb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgJiYKCS8vICAgICAgICAgICB2YWxpZGF0b3JDb25maWcubWFuYWdlci5iYWxhbmNlIC0gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIubWluQmFsYW5jZSA8IDJfMTAwXzAwMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3NyAzMgoJIT0KCWR1cAoJYnogKnNraXBfYW5kMwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWludCAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnQgMl8xMDBfMDAwCgk8CglieiAqdGVybmFyeTFfZmFsc2UKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWludCAyXzEwMF8wMDAKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODQKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogbWFuYWdlclRvcE9mZiwKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB2YWxpZGF0b3JDb25maWcubWFuYWdlciwKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg1CgkvLyBhbW91bnQ6IG1hbmFnZXJUb3BPZmYKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NgoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODcKCS8vIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycKCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NDIwNzQ2ZjIwNmQ2MTZlNjE2NzY1NzIyMDY2NmY3MjIwNjY3NTZlNjQ2OTZlNjcyMDY1NzA2ZjYzNjgyMDc1NzA2NDYxNzQ2NTczIC8vICJ2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcyIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMxX2VuZDoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MAoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgLSBtYW5hZ2VyVG9wT2ZmID4gMAoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWludCAwCgk+CglieiAqaWYzMl9lbmQKCgkvLyAqaWYzMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkxCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgICAgICBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZiwKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB2YWxpZGF0b3JDb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MsCgkvLyAgICAgICAgICAgICBub3RlOiAndmFsaWRhdG9yIHJld2FyZCcsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyMjA3MjY1Nzc2MTcyNjQgLy8gInZhbGlkYXRvciByZXdhcmQiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYzMl9lbmQ6CgoqaWYzMF9lbmQ6CgoqaWYyOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzA2CgkvLyBpbmNyZWFzZWRTdGFrZSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzAKCS8vIGFsZ29SZXdhcmRBdmFpbCAhPT0gMCB8fCB0b2tlblJld2FyZEF2YWlsICE9PSAwCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWludCAwCgkhPQoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJIT0KCXx8Cgoqc2tpcF9vcjE6CglieiAqaWYzM19lbmQKCgkvLyAqaWYzM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyNCAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzIKCS8vIGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgMjQgLy8gaTogdWludDY0CglpbnQgMjAwCgk8CglieiAqZm9yXzRfZW5kCgoJLy8gKmlmMzRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMzCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDQwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNgoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCA2NAoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmMzVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzM3CgkvLyBjbXBTdGFrZXIuYWNjb3VudCAhPT0gZ2xvYmFscy56ZXJvQWRkcmVzcwoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglieiAqaWYzNV9lbmQKCgkvLyAqaWYzNV9jb25zZXF1ZW50CgkvLyAqaWYzNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzgKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID49IHRoaXNFcG9jaEJlZ2luCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCT49CglieiAqaWYzNl9lbHNlCgoJLy8gKmlmMzZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc0MQoJLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlICs9IGNtcFN0YWtlci5iYWxhbmNlCglmcmFtZV9kaWcgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJKwoJZnJhbWVfYnVyeSAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJYiAqaWYzNl9lbmQKCippZjM2X2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ1CgkvLyB0aW1lSW5Qb29sID0gdGhpc0Vwb2NoQmVnaW4gLSBjbXBTdGFrZXIuZW50cnlSb3VuZAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA1NiA4CglidG9pCgktCglmcmFtZV9idXJ5IDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoKCS8vICppZjM3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc0OQoJLy8gdGltZUluUG9vbCA8IGVwb2NoUm91bmRMZW5ndGgKCWZyYW1lX2RpZyAyNiAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJPAoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MAoJLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlICs9IGNtcFN0YWtlci5iYWxhbmNlCglmcmFtZV9kaWcgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJKwoJZnJhbWVfYnVyeSAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NTEKCS8vIHRpbWVQZXJjZW50YWdlID0gKHRpbWVJblBvb2wgKiAxMDAwKSAvIGVwb2NoUm91bmRMZW5ndGgKCWZyYW1lX2RpZyAyNiAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCWludCAxMDAwCgkqCglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludCAwCgk+CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzU1CgkvLyBzdGFrZXJUb2tlblJld2FyZCA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgICAgICAgICAgIFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbCwgdGltZVBlcmNlbnRhZ2VdLAoJLy8gICAgICAgICAgICAgICAgICAgW3RoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlLCAxMDAwXQoJLy8gICAgICAgICAgICAgICAgICkKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjggLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjIKCS8vIHRva2VuUmV3YXJkQXZhaWwgLT0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgktCglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NjMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCA0OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzY0CgkvLyB0b2tlblJld2FyZFBhaWRPdXQgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCippZjM4X2VuZDoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NgoJLy8gYWxnb1Jld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmMzlfZW5kCgoJLy8gKmlmMzlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2OAoJLy8gc3Rha2VyUmV3YXJkID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICAgICAgICAgICAgW2NtcFN0YWtlci5iYWxhbmNlLCBhbGdvUmV3YXJkQXZhaWwsIHRpbWVQZXJjZW50YWdlXSwKCS8vICAgICAgICAgICAgICAgICAgIFt0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSwgMTAwMF0KCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc5CgkvLyBjbXBTdGFrZXIudG90YWxSZXdhcmRlZCArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCA0MCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDgKCWJ0b2kKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc4MAoJLy8gaW5jcmVhc2VkU3Rha2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCippZjM5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODMKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDI0IC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYzN19lbmQ6CgoqaWYzNl9lbmQ6CgoqaWYzNV9lbmQ6CgoqZm9yXzRfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzkxCgkvLyBuZXdQb29sVG90YWxTdGFrZSA9IHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC0gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgktCglmcmFtZV9idXJ5IDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTUKCS8vIG5ld1Bvb2xUb3RhbFN0YWtlID4gMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWludCAwCgk+CglieiAqaWY0MF9lbmQKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDMxIC8vIGk6IHVpbnQ2NAoKKmZvcl81OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludCAyMDAKCTwKCWJ6ICpmb3JfNV9lbmQKCgkvLyAqaWY0MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTgKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMjAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglpbnQgMjAwCgk8CglieiAqaWY0MV9lbmQKCgkvLyAqaWY0MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDIKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIGNtcFN0YWtlci5lbnRyeVJvdW5kIDwgdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCTwKCSYmCgoqc2tpcF9hbmQ0OgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMwoJLy8gdGltZUluUG9vbCA9IHRoaXNFcG9jaEJlZ2luIC0gY21wU3Rha2VyLmVudHJ5Um91bmQKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJLQoJZnJhbWVfYnVyeSAzMyAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDUKCS8vIHRpbWVJblBvb2wgPj0gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk+PQoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gKmlmNDRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODEwCgkvLyB0b2tlblJld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTEKCS8vIHN0YWtlclRva2VuUmV3YXJkID0gd2lkZVJhdGlvKFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgMzAgLy8gbmV3UG9vbFRvdGFsU3Rha2U6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCA0OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODE1CgkvLyB0b2tlblJld2FyZFBhaWRPdXQgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDM0IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCippZjQ0X2VuZDoKCS8vICppZjQ1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNwoJLy8gYWxnb1Jld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxOAoJLy8gc3Rha2VyUmV3YXJkID0gd2lkZVJhdGlvKFtjbXBTdGFrZXIuYmFsYW5jZSwgYWxnb1Jld2FyZEF2YWlsXSwgW25ld1Bvb2xUb3RhbFN0YWtlXSkKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIDMwIC8vIG5ld1Bvb2xUb3RhbFN0YWtlOiB1aW50NjQKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyMQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgKz0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMzUgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjIKCS8vIGNtcFN0YWtlci50b3RhbFJld2FyZGVkICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDQwIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgOAoJYnRvaQoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODIzCgkvLyBpbmNyZWFzZWRTdGFrZSArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CglmcmFtZV9kaWcgMzUgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKKmlmNDVfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgyNwoJLy8gdGhpcy5zdGFrZXJzLnZhbHVlW2ldID0gY21wU3Rha2VyCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjQzX2VuZDoKCippZjQyX2VuZDoKCipmb3JfNV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMxIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMzEgLy8gaTogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCippZjQwX2VuZDoKCippZjMzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzcKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMzYgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODM4CgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSArPSBpbmNyZWFzZWRTdGFrZQoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzkKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoaW5jcmVhc2VkU3Rha2UgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDM2IC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0MQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgKyBpbmNyZWFzZWRTdGFrZQoJYnl0ZSAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInJld2FyZEFjY3VtdWxhdG9yIgoJZHVwCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0NwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9LAoJLy8gICAgICAgICBpbmNyZWFzZWRTdGFrZSwKCS8vICAgICAgICAgdG9rZW5SZXdhcmRQYWlkT3V0LAoJLy8gICAgICAgICB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCwKCS8vICAgICAgICAgZXhjZXNzVG9GZWVTaW5rLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4NDkKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9LAoJLy8gICAgICAgICBpbmNyZWFzZWRTdGFrZSwKCS8vICAgICAgICAgdG9rZW5SZXdhcmRQYWlkT3V0LAoJLy8gICAgICAgICB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCwKCS8vICAgICAgICAgZXhjZXNzVG9GZWVTaW5rLAoJLy8gICAgICAgXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2dvT25saW5lOgoJLy8gdm90ZUtleURpbHV0aW9uOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDYKCWJ0b2kKCgkvLyB2b3RlTGFzdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gdm90ZUZpcnN0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBzdGF0ZVByb29mUEs6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBzZWxlY3Rpb25QSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIHZvdGVQSzogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGZlZVBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnQgMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODUKCS8vIHZvdGVQSzogdm90ZVBLCglmcmFtZV9kaWcgLTIgLy8gdm90ZVBLOiBieXRlcwoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg2CgkvLyBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEsKCWZyYW1lX2RpZyAtMyAvLyBzZWxlY3Rpb25QSzogYnl0ZXMKCWl0eG5fZmllbGQgU2VsZWN0aW9uUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg3CgkvLyBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSwoJZnJhbWVfZGlnIC00IC8vIHN0YXRlUHJvb2ZQSzogYnl0ZXMKCWl0eG5fZmllbGQgU3RhdGVQcm9vZlBLCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4OAoJLy8gdm90ZUZpcnN0OiB2b3RlRmlyc3QKCWZyYW1lX2RpZyAtNSAvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg5CgkvLyB2b3RlTGFzdDogdm90ZUxhc3QKCWZyYW1lX2RpZyAtNiAvLyB2b3RlTGFzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg5MAoJLy8gdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24KCWZyYW1lX2RpZyAtNyAvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkxCgkvLyBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT2ZmbGluZSgpdm9pZAoqYWJpX3JvdXRlX2dvT2ZmbGluZToKCS8vIGV4ZWN1dGUgZ29PZmZsaW5lKCl2b2lkCgljYWxsc3ViIGdvT2ZmbGluZQoJaW50IDEKCXJldHVybgoKLy8gZ29PZmZsaW5lKCk6IHZvaWQKLy8KLy8gTWFya3MgYSBzdGFraW5nIHBvb2wga2V5IE9GRkxJTkUuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KZ29PZmZsaW5lOgoJcHJvdG8gMCAwCgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTAzCgkvLyB0aGlzLnR4bi5zZW5kZXIgIT09IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCSE9CglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA0CgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCippZjQ2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDcKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJaW50IGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50IDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglieXRlIDB4NzY2NTcyNjk2Njc5NWY2ZTY2NjQ1ZjYxNjQ2NDcyIC8vICJ2ZXJpZnlfbmZkX2FkZHIiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxOQoJLy8gYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJZCldCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbnMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NFsyNF0sdWludDY0KQoqYWJpX3JvdXRlX3Byb3hpZWRTZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBvb2xLZXkpIGZvciBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gaXMgbWVhbnQgdG8gYmUgY2FsbGVkIGJ5IHBvb2xzICE9IDEgLSBjYWxsaW5nIFVTLCBwb29sICMxCi8vIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgd2UgYXJlIGluIGZhY3QgYmVpbmcgY2FsbGVkIGJ5IGFub3RoZXIgb2YgT1VSIHBvb2xzIChub3QgdXMpCi8vIGFuZCB0aGVuIHdlJ2xsIGNhbGwgdGhlIHZhbGlkYXRvciBvbiB0aGVpciBiZWhhbGYgdG8gdXBkYXRlIHRoZSB0b2tlbiBwYXlvdXRzCi8vIEBwYXJhbSBwb29sS2V5IC0gVmFsaWRhdG9yUG9vbEtleSB0dXBsZQpwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9ySWQudmFsdWUgPT09IHBvb2xLZXkuaWQsICdjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEnKQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzEKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ2NhbGxlZSBtdXN0IGJlIHBvb2wgMScpCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgoJLy8gY2FsbGVlIG11c3QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgIT09IDEsICdjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxJykKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCSE9CgoJLy8gY2FsbGVyIG11c3QgTk9UIGJlIHBvb2wgMQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNAoJLy8gY2FsbGVyUG9vbEFwcElEID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRQb29sQXBwSWQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3Bvb2xLZXkuaWQsIHBvb2xLZXkucG9vbElkXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzT3duZXJPck1hbmFnZXJDYWxsZXIoKTogYm9vbGVhbgppc093bmVyT3JNYW5hZ2VyQ2FsbGVyOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQ4CgkvLyBPd25lckFuZE1hbmFnZXIgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcj4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk1MAoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyBPd25lckFuZE1hbmFnZXI6IChhZGRyZXNzLGFkZHJlc3MpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk1MgoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlciA9PT0gT3duZXJBbmRNYW5hZ2VyWzBdIHx8IHRoaXMudHhuLnNlbmRlciA9PT0gT3duZXJBbmRNYW5hZ2VyWzFdOwoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gT3duZXJBbmRNYW5hZ2VyOiAoYWRkcmVzcyxhZGRyZXNzKQoJZXh0cmFjdCAwIDMyCgk9PQoJZHVwCglibnogKnNraXBfb3IyCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBPd25lckFuZE1hbmFnZXI6IChhZGRyZXNzLGFkZHJlc3MpCglleHRyYWN0IDMyIDMyCgk9PQoJfHwKCipza2lwX29yMjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRGZWVTaW5rKCk6IEFkZHJlc3MKZ2V0RmVlU2luazoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NTYKCS8vIHJldHVybiB0aGlzLmZlZVNpbmtBZGRyOwoJbG9hZCAyMDEgLy8gVE1QTF9mZWVTaW5rQWRkcgoJcmV0c3ViCgovLyBhbGdvU2F0dXJhdGlvbkxldmVsKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlIGJlZm9yZQovLyB0aGUgdmFsaWRhdG9yIGlzIGNvbnNpZGVyZWQgc2F0dXJhdGVkIC0gd2hlcmUgcmV3YXJkcyBhcmUgZGltaW5pc2hlZC4KYWxnb1NhdHVyYXRpb25MZXZlbDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk2NgoJLy8gb25saW5lID0gdGhpcy5nZXRDdXJyZW50T25saW5lU3Rha2UoKQoJY2FsbHN1YiBnZXRDdXJyZW50T25saW5lU3Rha2UKCWZyYW1lX2J1cnkgMCAvLyBvbmxpbmU6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjgKCS8vIHJldHVybiB3aWRlUmF0aW8oW29ubGluZSwgTUFYX1ZBTElEQVRPUl9TT0ZUX1BDVF9PRl9PTkxJTkVfMURFQ0lNQUxdLCBbMTAwMF0pOwoJZnJhbWVfZGlnIDAgLy8gb25saW5lOiB1aW50NjQKCWludCAxMDAKCW11bHcKCWludCAwCglpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gZ2V0R29PbmxpbmVGZWUoKTogdWludDY0CmdldEdvT25saW5lRmVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc1CgkvLyBpc09ubGluZSA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGlzT25saW5lOiBib29sCgoJLy8gKmlmNDdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc2CgkvLyAhaXNPbmxpbmUKCWZyYW1lX2RpZyAwIC8vIGlzT25saW5lOiBib29sCgkhCglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTc4CgkvLyByZXR1cm4gMl8wMDBfMDAwOwoJaW50IDJfMDAwXzAwMAoJYiAqZ2V0R29PbmxpbmVGZWUqcmV0dXJuCgoqaWY0N19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTgwCgkvLyByZXR1cm4gMDsKCWludCAwCgoqZ2V0R29PbmxpbmVGZWUqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4NQoJLy8gcmV0dXJuIDJfMDAwXzAwMF8wMDBfMDAwXzAwMDsKCWludCAyXzAwMF8wMDBfMDAwXzAwMF8wMDAKCXJldHN1YgoKLy8gY2hlY2tJZkJpbkNsb3NlZCgpOiB2b2lkCi8vCi8vIENoZWNrcyBpZiB0aGUgY3VycmVudCByb3VuZCBpcyBpbiBhICduZXcgY2FsY3VsYXRpb24gYmluJyAoYXBwcm94aW1hdGVseSBkYWlseSkKY2hlY2tJZkJpbkNsb3NlZDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTkyCgkvLyBjdXJyZW50QmluU2l6ZSA9IHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglmcmFtZV9idXJ5IDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgoJLy8gKmlmNDhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTkzCgkvLyBnbG9iYWxzLnJvdW5kID49IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIChjdXJyZW50QmluU2l6ZSBhcyB1aW50NjQpCglnbG9iYWwgUm91bmQKCWJ5dGUgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAvLyAiYmluUm91bmRTdGFydCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMCAvLyBjdXJyZW50QmluU2l6ZTogdW5zYWZlIHVpbnQxMjgKCWR1cAoJYml0bGVuCglpbnQgNjQKCTw9CgoJLy8gY3VycmVudEJpblNpemUgYXMgdWludDY0IG92ZXJmbG93ZWQgNjQgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCgkrCgk+PQoJYnogKmlmNDhfZW5kCgoJLy8gKmlmNDhfY29uc2VxdWVudAoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTk0CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmNDlfZW5kCgoJLy8gKmlmNDlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NwoJLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOCA9IGN1cnJlbnRCaW5TaXplICogKDM2NSBhcyB1aW50MTI4KQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNmQKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyBjdXJyZW50QmluU2l6ZSAqICgzNjUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMSAvLyBhcHByb3hSb3VuZHNQZXJZZWFyOiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgLyBjdXJyZW50QmluU2l6ZQoJYnl0ZSAweDczNzQ2MTZiNjU0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIC8vICJzdGFrZUFjY3VtdWxhdG9yIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJYi8KCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAvIGN1cnJlbnRCaW5TaXplIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDE2CgktCglzd2FwCglzdWJzdHJpbmczCglmcmFtZV9idXJ5IDIgLy8gYXZnU3Rha2U6IHVpbnQxMjgKCgkvLyAqaWY1MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTkKCS8vIGF2Z1N0YWtlICE9PSAwCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliIT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDAzCgkvLyBhcHI6IHVpbnQxMjggPQoJLy8gICAgICAgICAgICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICoKCS8vICAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKQoJYnl0ZSAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInJld2FyZEFjY3VtdWxhdG9yIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMAoJYioKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgliLwoJZnJhbWVfZGlnIDEgLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJYioKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vICgoKHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgYXMgdWludDEyOCkgKiAoMTAwMDAgYXMgdWludDEyOCkpIC8gYXZnU3Rha2UpICpcbiAgICAgICAgICAoYXBwcm94Um91bmRzUGVyWWVhciAvIGN1cnJlbnRCaW5TaXplKSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAzIC8vIGFwcjogdWludDEyOAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDA3CgkvLyBhbHBoYTogdWludDEyOCA9IDEwIGFzIHVpbnQxMjgKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYQoJZnJhbWVfYnVyeSA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjUxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMDkKCS8vIGF2Z1N0YWtlID4gMzAwMDAwMDAwMDAwCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NWQ5NjRiODAwCgliPgoJYnogKmlmNTFfZW5kCgoJLy8gKmlmNTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMTAKCS8vIGFscGhhID0gOTAgYXMgdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVhCglmcmFtZV9idXJ5IDQgLy8gYWxwaGE6IHVuc2FmZSB1aW50MTI4CgoqaWY1MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMgoJLy8gdGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgPQoJLy8gICAgICAgICAgICh0aGlzLndlaWdodGVkTW92aW5nQXZlcmFnZS52YWx1ZSAqICgoMTAwIGFzIHVpbnQxMjgpIC0gYWxwaGEpKSAvICgxMDAgYXMgdWludDEyOCkgKwoJLy8gICAgICAgICAgIChhcHIgKiBhbHBoYSkgLyAoMTAwIGFzIHVpbnQxMjgpCglieXRlIDB4NjU3NzZkNjEgLy8gImV3bWEiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKCWZyYW1lX2RpZyA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoJYi0KCWIqCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKCWIvCglmcmFtZV9kaWcgMyAvLyBhcHI6IHVpbnQxMjgKCWZyYW1lX2RpZyA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoJYioKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAoJYi8KCWIrCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICtcbiAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCippZjUwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE4CgkvLyB0aGlzLnNldFJvdW5kc1BlckRheSgpCgljYWxsc3ViIHNldFJvdW5kc1BlckRheQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDE5CgkvLyB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgPSAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYioKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vICh0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSBhcyB1aW50MTI4KSAqICh0aGlzLnJvdW5kc1BlckRheS52YWx1ZSBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyMAoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IDAKCWJ5dGUgMHg3MjY1Nzc2MTcyNjQ0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIC8vICJyZXdhcmRBY2N1bXVsYXRvciIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDIxCgkvLyB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgPSBnbG9iYWxzLnJvdW5kIC0gKGdsb2JhbHMucm91bmQgJSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSkKCWJ5dGUgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAvLyAiYmluUm91bmRTdGFydCIKCWdsb2JhbCBSb3VuZAoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJJQoJLQoJYXBwX2dsb2JhbF9wdXQKCippZjQ4X2VuZDoKCXJldHN1YgoKLy8gc2V0Um91bmRzUGVyRGF5KCk6IHZvaWQKc2V0Um91bmRzUGVyRGF5OgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMjYKCS8vIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlID0gQVZHX1JPVU5EU19QRVJfREFZCglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglpbnQgMzA4NTcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImdhcygpdm9pZCIKCW1ldGhvZCAiaW5pdFN0b3JhZ2UocGF5KXZvaWQiCgltZXRob2QgImFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NCIKCW1ldGhvZCAicmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZCIKCW1ldGhvZCAiY2xhaW1Ub2tlbnMoKXZvaWQiCgltZXRob2QgImdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAidXBkYXRlQWxnb2RWZXIoc3RyaW5nKXZvaWQiCgltZXRob2QgImVwb2NoQmFsYW5jZVVwZGF0ZSgpdm9pZCIKCW1ldGhvZCAiZ29PbmxpbmUocGF5LGJ5dGVbXSxieXRlW10sYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImdvT2ZmbGluZSgpdm9pZCIKCW1ldGhvZCAibGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZCIKCW1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CgltZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQgMCAxIDYgNjQgMzIgMTYgMTI4IDFfMDAwXzAwMCAyXzEwMF8wMDAgMjAwIDMwMCAxMDAwCmJ5dGVjYmxvY2sgVE1QTF9mZWVTaW5rQWRkciAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAweDczNzQ2MTZiNjU0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYgMHg3Mzc0NjE2YjY1NzI3MyAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAweDcwNmY2ZjZjNDk2NCAweDcyNjU3NzYxNzI2NDQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgMHg3Mzc0NjE2YjY1NjQgMHg2MjY5NmU1MjZmNzU2ZTY0NTM3NDYxNzI3NCAweDAwMDAwMDAwMDAwMDAwMDAgMHggMHgwYTgxMDEgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAweDZjNjE3Mzc0NTA2MTc5NmY3NTc0IDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NCAweDZkNjk2ZTQ1NmU3NDcyNzk1Mzc0NjE2YjY1IDB4NjU3MDZmNjM2ODRlNzU2ZDYyNjU3MiAweDc1YWZmNjFkIDB4NjU3NzZkNjEgMHgxNTFmN2M3NSAweGEyZGM1MWI1IDB4NTcyNzY3ZDEgMHg0ZGY4ZDg2ZSAweDBjMjI0NWUxIDB4MDAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgbGluZXMgb2YgVEVBTCBhcmUgdXNlZCB0byBpbml0aWFsaXplIHRlbXBsYXRlIHZhcmlhYmxlcyBpbiBzY3JhdGNoIHNsb3RzCmJ5dGVjIDAgLy8gVE1QTF9mZWVTaW5rQWRkcgppbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQWRkcmVzcy5mcm9tQWRkcmVzcygnTFo0VjJJUlZMQ1hGSks0UkVKVjRUQUdFS0VZVEEyR01SNlRDMjM0NE9CM0wzQUYzTVdYWjZaQUZJUScpLAoJLy8gICAgICAgJ1RlbXBvcmFyeTogY29udHJhY3QgaXMgdXBncmFkZWFibGUgYnV0IG9ubHkgZHVyaW5nIHRlc3RpbmcgYW5kIG9ubHkgZnJvbSBhIGRldmVsb3BtZW50IGFjY291bnQnCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4NWU3OTVkMjIzNTU4YWU1NGFiOTEyMjZiYzk4MGM0NTEzMTMwNjhjYzhmYTYyZDZmOWM3MDc2YmQ4MGJiNjVhZiAvLyBhZGRyICJMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRIgoJPT0KCgkvLyBUZW1wb3Jhcnk6IGNvbnRyYWN0IGlzIHVwZ3JhZGVhYmxlIGJ1dCBvbmx5IGR1cmluZyB0ZXN0aW5nIGFuZCBvbmx5IGZyb20gYSBkZXZlbG9wbWVudCBhY2NvdW50Cglhc3NlcnQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGNyZWF0aW5nQ29udHJhY3RJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQsIHZhbGlkYXRvcklkOiB1aW50NjQsIHBvb2xJZDogdWludDY0LCBtaW5FbnRyeVN0YWtlOiB1aW50NjQpOiB2b2lkCi8vCi8vIEluaXRpYWxpemUgdGhlIHN0YWtpbmcgcG9vbCB3LyBvd25lciBhbmQgbWFuYWdlciwgYnV0IGNhbiBvbmx5IGJlIGNyZWF0ZWQgYnkgdGhlIHZhbGlkYXRvciBjb250cmFjdC4KLy8gQHBhcmFtIHt1aW50NjR9IGNyZWF0aW5nQ29udHJhY3RJZCAtIGlkIG9mIGNvbnRyYWN0IHRoYXQgY29uc3RydWN0ZWQgdXMgLSB0aGUgdmFsaWRhdG9yIGFwcGxpY2F0aW9uIChzaW5nbGUgZ2xvYmFsIGluc3RhbmNlKQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgLSBpZCBvZiB2YWxpZGF0b3Igd2UncmUgYSBzdGFraW5nIHBvb2wgb2YKLy8gQHBhcmFtIHt1aW50NjR9IHBvb2xJZCAtIHdoaWNoIHBvb2wgaWQgYXJlIHdlCi8vIEBwYXJhbSB7dWludDY0fSBtaW5FbnRyeVN0YWtlIC0gbWluaW11bSBhbW91bnQgdG8gYmUgaW4gcG9vbCwgYnV0IGFsc28gbWluaW11bSBhbW91bnQgYmFsYW5jZSBjYW4ndCBnbyBiZWxvdyAod2l0aG91dCByZW1vdmluZyBhbGwhKQpjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDQgMAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTA4CgkvLyBjcmVhdGluZ0NvbnRyYWN0SWQgPT09IDAKCWZyYW1lX2RpZyAtMSAvLyBjcmVhdGluZ0NvbnRyYWN0SWQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTAKCS8vIGFzc2VydCh2YWxpZGF0b3JJZCA9PT0gMCkKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpbnQgMAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTEKCS8vIGFzc2VydChwb29sSWQgPT09IDApCglmcmFtZV9kaWcgLTMgLy8gcG9vbElkOiB1aW50NjQKCWludCAwCgk9PQoJYXNzZXJ0CgliICppZjBfZW5kCgoqaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQocG9vbElkICE9PSAwKQoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQobWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJcHVzaGludCAxMDAwMDAwCgk+PQoKCS8vIHN0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMTcKCS8vIHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlID0gY3JlYXRpbmdDb250cmFjdElkCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglmcmFtZV9kaWcgLTEgLy8gY3JlYXRpbmdDb250cmFjdElkOiB1aW50NjQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjExOAoJLy8gdGhpcy52YWxpZGF0b3JJZC52YWx1ZSA9IHZhbGlkYXRvcklkCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTE5CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9IHBvb2xJZAoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJZnJhbWVfZGlnIC0zIC8vIHBvb2xJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyMgoJLy8gdGhpcy5taW5FbnRyeVN0YWtlLnZhbHVlID0gbWluRW50cnlTdGFrZQoJYnl0ZSAweDZkNjk2ZTQ1NmU3NDcyNzk1Mzc0NjE2YjY1IC8vICJtaW5FbnRyeVN0YWtlIgoJZnJhbWVfZGlnIC00IC8vIG1pbkVudHJ5U3Rha2U6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTIzCgkvLyB0aGlzLmxhc3RQYXlvdXQudmFsdWUgPSBnbG9iYWxzLnJvdW5kCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglnbG9iYWwgUm91bmQKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNAoJLy8gdGhpcy5lcG9jaE51bWJlci52YWx1ZSA9IDAKCWJ5dGUgMHg2NTcwNmY2MzY4NGU3NTZkNjI2NTcyIC8vICJlcG9jaE51bWJlciIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMjYKCS8vIHRoaXMuc2V0Um91bmRzUGVyRGF5KCkKCWNhbGxzdWIgc2V0Um91bmRzUGVyRGF5CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyNwoJLy8gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlID0gZ2xvYmFscy5yb3VuZCAtIChnbG9iYWxzLnJvdW5kICUgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUpCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglnbG9iYWwgUm91bmQKCWdsb2JhbCBSb3VuZAoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSUKCS0KCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyOAoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gMCBhcyB1aW50MTI4CglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEyOQoJLy8gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSA9IDAKCWJ5dGUgMHg3MjY1Nzc2MTcyNjQ0MTYzNjM3NTZkNzU2YzYxNzQ2ZjcyIC8vICJyZXdhcmRBY2N1bXVsYXRvciIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMzAKCS8vIHRoaXMud2VpZ2h0ZWRNb3ZpbmdBdmVyYWdlLnZhbHVlID0gMCBhcyB1aW50MTI4CglieXRlIDB4NjU3NzZkNjEgLy8gImV3bWEiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50IDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxNDIKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCXB1c2hpbnQgMjUwMAoJZnJhbWVfZGlnIC0xIC8vIHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NAoJcHVzaGludCA0MDAKCSoKCSsKCXJldHN1YgoKLy8gaW5pdFN0b3JhZ2UocGF5KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3RvcmFnZToKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMCAobWJyUGF5bWVudCkgZm9yIGluaXRTdG9yYWdlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgaW5pdFN0b3JhZ2UocGF5KXZvaWQKCWNhbGxzdWIgaW5pdFN0b3JhZ2UKCWludCAxCglyZXR1cm4KCi8vIGluaXRTdG9yYWdlKG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8gQ2FsbGVkIGFmdGVyIHdlJ3JlIGNyZWF0ZWQgYW5kIHRoZW4gZnVuZGVkLCBzbyB3ZSBjYW4gY3JlYXRlIG91ciBsYXJnZSBzdGFrZXJzIGxlZGdlciBzdG9yYWdlCi8vIENhbGxlciBoYXMgdG8gZ2V0IE1CUiBhbW91bnRzIGZyb20gVmFsaWRhdG9yUmVnaXN0cnkgdG8ga25vdyBob3cgbXVjaCB0byBmdW5kIHVzIHRvIGNvdmVyIHRoZSBib3ggc3RvcmFnZSBjb3N0Ci8vIElmIHRoaXMgaXMgcG9vbCAxIEFORCB0aGUgdmFsaWRhdG9yIGhhcyBzcGVjaWZpZWQgYSByZXdhcmQgdG9rZW4sIG9wdC1pbiB0byB0aGF0IHRva2VuCi8vIHNvIHRoYXQgdGhlIHZhbGlkYXRvciBjYW4gc2VlZCB0aGUgcG9vbCB3aXRoIGZ1dHVyZSByZXdhcmRzIG9mIHRoYXQgdG9rZW4uCi8vIEBwYXJhbSBtYnJQYXltZW50IHBheW1lbnQgZnJvbSBjYWxsZXIgd2hpY2ggY292ZXJzIG1iciBpbmNyZWFzZSBvZiBuZXcgc3Rha2luZyBwb29scycgc3RvcmFnZQppbml0U3RvcmFnZToKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTUzCgkvLyBhc3NlcnQoIXRoaXMuc3Rha2Vycy5leGlzdHMsICdzdGFraW5nIHBvb2wgYWxyZWFkeSBpbml0aWFsaXplZCcpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCglib3hfbGVuCglzd2FwCglwb3AKCSEKCgkvLyBzdGFraW5nIHBvb2wgYWxyZWFkeSBpbml0aWFsaXplZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NgoJLy8gdmFsaWRhdG9yQ29uZmlnID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JDb25maWc+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4NzVhZmY2MWQgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE1NwoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTU4CgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MAoJLy8gaXNUb2tlbkVsaWdpYmxlID0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQgIT09IDAKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpbnQgMAoJIT0KCWZyYW1lX2J1cnkgMSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTYxCgkvLyBleHRyYU1CUiA9IGlzVG9rZW5FbGlnaWJsZSAmJiB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSA/IEFTU0VUX0hPTERJTkdfRkVFIDogMAoJZnJhbWVfZGlnIDEgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglkdXAKCWJ6ICpza2lwX2FuZDAKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglwdXNoaW50IDEwMDAwMAoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMiAvLyBleHRyYU1CUjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2MgoJLy8gUG9vbEluaXRNYnIgPQoJLy8gICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICBleHRyYU1CUiArCgkvLyAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKQoJcHVzaGludCAxMDAwMDAKCWZyYW1lX2RpZyAyIC8vIGV4dHJhTUJSOiB1aW50NjQKCSsKCXB1c2hpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWZyYW1lX2J1cnkgMyAvLyBQb29sSW5pdE1icjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE2OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogUG9vbEluaXRNYnIgfSkKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgMyAvLyBQb29sSW5pdE1icjogdWludDY0Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJQb29sSW5pdE1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTY5CgkvLyB0aGlzLnN0YWtlcnMuY3JlYXRlKCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCXB1c2hpbnQgMTI4MDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTcxCgkvLyBpc1Rva2VuRWxpZ2libGUgJiYgdGhpcy5wb29sSWQudmFsdWUgPT09IDEKCWZyYW1lX2RpZyAxIC8vIGlzVG9rZW5FbGlnaWJsZTogYm9vbAoJZHVwCglieiAqc2tpcF9hbmQxCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTczCgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgICAgYXNzZXRBbW91bnQ6IDAsCgkvLyAgICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NAoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTc1CgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE3NgoJLy8gYXNzZXRBbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMV9lbmQ6CglyZXRzdWIKCi8vIGFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgYWRkU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0CgljYWxsc3ViIGFkZFN0YWtlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBzdGFrZXI6IEFkZHJlc3MpOiB1aW50NjQKLy8KLy8gQWRkcyBzdGFrZSB0byB0aGUgZ2l2ZW4gYWNjb3VudC4KLy8gQ2FuIE9OTFkgYmUgY2FsbGVkIGJ5IHRoZSB2YWxpZGF0b3IgY29udHJhY3QgdGhhdCBjcmVhdGVkIHVzCi8vIE11c3QgcmVjZWl2ZSBwYXltZW50IGZyb20gdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgYW1vdW50IGJlaW5nIHN0YWtlZC4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IHN0YWtlZEFtb3VudFBheW1lbnQgcHJpb3IgcGF5bWVudCBjb21pbmcgZnJvbSB2YWxpZGF0b3IgY29udHJhY3QgdG8gdXMgb24gYmVoYWxmIG9mIHN0YWtlci4KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWNjb3VudCBhZGRpbmcgbmV3IHN0YWtlCi8vIEB0aHJvd3Mge0Vycm9yfSAtIFRocm93cyBhbiBlcnJvciBpZiB0aGUgc3Rha2luZyBwb29sIGlzIGZ1bGwuCi8vIEByZXR1cm5zIHt1aW50NjR9IG5ldyAnZW50cnkgcm91bmQnIHJvdW5kIG51bWJlciBvZiBzdGFrZSBhZGQKYWRkU3Rha2U6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE5MgoJLy8gYXNzZXJ0KHRoaXMuc3Rha2Vycy5leGlzdHMsICdzdGFraW5nIHBvb2wgbXVzdCBiZSBpbml0aWFsaXplZCBmaXJzdCcpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBiZSBpbml0aWFsaXplZCBmaXJzdAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjE5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKS5hZGRyZXNzLAoJLy8gICAgICAgJ3N0YWtlIGNhbiBvbmx5IGJlIGFkZGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0JwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCT09CgoJLy8gc3Rha2UgY2FuIG9ubHkgYmUgYWRkZWQgdmlhIHRoZSB2YWxpZGF0b3IgY29udHJhY3QKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxOTkKCS8vIGFzc2VydChzdGFrZXIgIT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjAyCgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIwNgoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKS5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6InN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50In0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTUKCS8vIGVudHJ5Um91bmQgPSBnbG9iYWxzLnJvdW5kICsgQUxHT1JBTkRfU1RBS0lOR19CTE9DS19ERUxBWQoJZ2xvYmFsIFJvdW5kCglwdXNoaW50IDMyMAoJKwoJZnJhbWVfYnVyeSAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTYKCS8vIGZpcnN0RW1wdHkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMTgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50CglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjAKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgMiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjEKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSA9CgkvLyAgICAgICB0aGlzLnN0YWtlQWNjdW11bGF0b3IudmFsdWUgKyAoc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgYXMgdWludDEyOCkgKiAocm91bmRzTGVmdEluQmluIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWZyYW1lX2RpZyAyIC8vIHJvdW5kc0xlZnRJbkJpbjogdWludDY0CglpdG9iCgliKgoJYisKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjIyNQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjI5CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgNjQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzAKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmM19lbmQKCgkvLyAqaWYzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzIKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCAzMiAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMzMKCS8vIGNtcFN0YWtlci5lbnRyeVJvdW5kID0gZW50cnlSb3VuZAoJZnJhbWVfZGlnIDQgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglwdXNoaW50IDU2IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM2CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyA0IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjM4CgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoJYiAqYWRkU3Rha2UqcmV0dXJuCgoqaWYzX2VuZDoKCS8vICppZjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjQwCgkvLyBmaXJzdEVtcHR5ID09PSAwICYmIGNtcFN0YWtlci5hY2NvdW50ID09PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJZHVwCglieiAqc2tpcF9hbmQyCglmcmFtZV9kaWcgNCAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDI6CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0MQoJLy8gZmlyc3RFbXB0eSA9IGkgKyAxCglmcmFtZV9kaWcgMyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoqaWY0X2VuZDoKCipmb3JfMF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyMjUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDMgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAzIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI0NQoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjVfZW5kCgoJLy8gKmlmNV9jb25zZXF1ZW50CgkvLyBTdGFraW5nIHBvb2wgZnVsbAoJZXJyCgoqaWY1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTIKCS8vIGFzc2VydChzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCA+PSB0aGlzLm1pbkVudHJ5U3Rha2UudmFsdWUsICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnKQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglieXRlIDB4NmQ2OTZlNDU2ZTc0NzI3OTUzNzQ2MTZiNjUgLy8gIm1pbkVudHJ5U3Rha2UiCglhcHBfZ2xvYmFsX2dldAoJPj0KCgkvLyBtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTQKCS8vIGFzc2VydCh0aGlzLnN0YWtlcnMudmFsdWVbZmlyc3RFbXB0eSAtIDFdLmFjY291bnQgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAxCgktCglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCAzMgoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyNTUKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtmaXJzdEVtcHR5IC0gMV0gPSB7CgkvLyAgICAgICBhY2NvdW50OiBzdGFrZXIsCgkvLyAgICAgICBiYWxhbmNlOiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCwKCS8vICAgICAgIHRvdGFsUmV3YXJkZWQ6IDAsCgkvLyAgICAgICByZXdhcmRUb2tlbkJhbGFuY2U6IDAsCgkvLyAgICAgICBlbnRyeVJvdW5kOiBlbnRyeVJvdW5kLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50IDEKCS0KCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gZW50cnlSb3VuZDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI2MgoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlICs9IDEKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjYzCgkvLyByZXR1cm4gZW50cnlSb3VuZDsKCWZyYW1lX2RpZyAwIC8vIGVudHJ5Um91bmQ6IHVpbnQ2NAoKKmFkZFN0YWtlKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKLy8gcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX3JlbW92ZVN0YWtlOgoJLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgcmVtb3ZlU3Rha2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcmVtb3ZlU3Rha2UoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiByZW1vdmVTdGFrZQoJaW50IDEKCXJldHVybgoKLy8gcmVtb3ZlU3Rha2Uoc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gUmVtb3ZlcyBzdGFrZSBvbiBiZWhhbGYgb2YgY2FsbGVyIChyZW1vdmluZyBvd24gc3Rha2UpLiAgSWYgYW55IHRva2VuIHJld2FyZHMgZXhpc3QsIHRob3NlIGFyZSBhbHdheXMgc2VudCBpbgovLyBmdWxsLiBBbHNvIG5vdGlmaWVzIHRoZSB2YWxpZGF0b3IgY29udHJhY3QgZm9yIHRoaXMgcG9vbHMgdmFsaWRhdG9yIG9mIHRoZSBzdGFrZXIgLyBiYWxhbmNlIGNoYW5nZXMuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gYWNjb3VudCB0byByZW1vdmUuICBub3JtYWxseSBzYW1lIGFzIHNlbmRlciwgYnV0IHRoZSB2YWxpZGF0b3Igb3duZXIgb3IgbWFuYWdlciBjYW4gYWxzbyBjYWxsCi8vIHRoaXMgdG8gcmVtb3ZlIHRoZSBzcGVjaWZpZWQgc3Rha2VyIGV4cGxpY2l0bHkuIFRoZSByZW1vdmVkIHN0YWtlIE1VU1Qgb25seSBnbyB0byB0aGUgc3Rha2VyIG9mIGNvdXJzZS4gIFRoaXMgaXMKLy8gc28gYSB2YWxpZGF0b3IgY2FuIHNodXQgZG93biBhIHBvb29sIGFuZCByZWZ1bmQgdGhlIHN0YWtlcnMuICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGtpY2sgb3V0IHN0YWtlcnMgd2hvIG5vIGxvbmdlcgovLyBtZWV0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIChkZXRlcm1pbmVkIGJ5IHRoZSBub2RlIGRhZW1vbikuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1Vuc3Rha2UgLSBUaGUgYW1vdW50IG9mIHN0YWtlIHRvIGJlIHJlbW92ZWQuICBTcGVjaWZ5IDAgdG8gcmVtb3ZlIGFsbCBzdGFrZS4KLy8gQHRocm93cyB7RXJyb3J9IElmIHRoZSBhY2NvdW50IGhhcyBpbnN1ZmZpY2llbnQgYmFsYW5jZSBvciBpZiB0aGUgYWNjb3VudCBpcyBub3QgZm91bmQuCnJlbW92ZVN0YWtlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNgoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgwCgkvLyBzdGFrZXIgIT09IHRoaXMudHhuLnNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJIT0KCWJ6ICppZjZfZW5kCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLAoJLy8gICAgICAgICAnSWYgc3Rha2VyIGlzIG5vdCBzZW5kZXIgaW4gcmVtb3ZlU3Rha2UgY2FsbCwgdGhlbiBzZW5kZXIgTVVTVCBiZSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICAgICkKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIElmIHN0YWtlciBpcyBub3Qgc2VuZGVyIGluIHJlbW92ZVN0YWtlIGNhbGwsIHRoZW4gc2VuZGVyIE1VU1QgYmUgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmNoZWNrSWZCaW5DbG9zZWQoKQoJY2FsbHN1YiBjaGVja0lmQmluQ2xvc2VkCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8xX2VuZAoKCS8vICppZjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkwCgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDMwMAoJPAoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTEKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmN19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MjkzCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgNjQKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoyOTQKCS8vIGNtcFN0YWtlci5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAwIDMyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vICppZjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mjk1CgkvLyBhbW91bnRUb1Vuc3Rha2UgPT09IDAKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5NwoJLy8gYW1vdW50VG9VbnN0YWtlID0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9idXJ5IC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CgoqaWY5X2VuZDoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI5OQoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPCBhbW91bnRUb1Vuc3Rha2UKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCTwKCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIEluc3VmZmljaWVudCBiYWxhbmNlCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDIKCS8vIGNtcFN0YWtlci5iYWxhbmNlIC09IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglpbnQgMzIgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJLQoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzAzCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtPSBhbW91bnRUb1Vuc3Rha2UKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCS0KCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNQoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMwNgoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA+IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglpbnQgMAoJPgoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzA4CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoJYnogKmlmMTJfZWxzZQoKCS8vICppZjEyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMDkKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDc1YWZmNjFkIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTAKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxMQoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMyAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTcKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpLAoJLy8gICAgICAgICAgICAgICBhc3NldFJlY2VpdmVyOiBzdGFrZXIsCgkvLyAgICAgICAgICAgICAgIGFzc2V0QW1vdW50OiBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlLAoJLy8gICAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNCAvLyBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMTgKCS8vIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKQoJZnJhbWVfZGlnIDMgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTUzIDgKCWJ0b2kKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMxOQoJLy8gYXNzZXRSZWNlaXZlcjogc3Rha2VyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzIwCgkvLyBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyMgoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozMjMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYiAqaWYxMl9lbmQKCippZjEyX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzI4CgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDggOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjMyOQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXJlcGxhY2UyIDQ4CglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoqaWYxMl9lbmQ6CgoqaWYxMV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzM0CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgICAgY21wU3Rha2VyLmJhbGFuY2UgPT09IDAgfHwgY21wU3Rha2VyLmJhbGFuY2UgPj0gdGhpcy5taW5FbnRyeVN0YWtlLnZhbHVlLAoJLy8gICAgICAgICAgICdjYW5ub3QgcmVkdWNlIGJhbGFuY2UgYmVsb3cgbWluaW11bSBhbGxvd2VkIHN0YWtlIHVubGVzcyBhbGwgaXMgcmVtb3ZlZCcKCS8vICAgICAgICAgKQoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWludCAwCgk9PQoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJYnl0ZSAweDZkNjk2ZTQ1NmU3NDcyNzk1Mzc0NjE2YjY1IC8vICJtaW5FbnRyeVN0YWtlIgoJYXBwX2dsb2JhbF9nZXQKCT49Cgl8fAoKKnNraXBfb3IwOgoJLy8gY2Fubm90IHJlZHVjZSBiYWxhbmNlIGJlbG93IG1pbmltdW0gYWxsb3dlZCBzdGFrZSB1bmxlc3MgYWxsIGlzIHJlbW92ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDIKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZSwKCS8vICAgICAgICAgICByZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgICAgIG5vdGU6ICd1bnN0YWtlZCcsCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQzCgkvLyBhbW91bnQ6IGFtb3VudFRvVW5zdGFrZQoJZnJhbWVfZGlnIC0yIC8vIGFtb3VudFRvVW5zdGFrZTogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNDQKCS8vIHJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ1CgkvLyBub3RlOiAndW5zdGFrZWQnCglwdXNoYnl0ZXMgMHg3NTZlNzM3NDYxNmI2NTY0IC8vICJ1bnN0YWtlZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzQ3CgkvLyBzdGFrZXJSZW1vdmVkID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbAoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM0OAoJLy8gY21wU3Rha2VyLmJhbGFuY2UgPT09IDAKCWZyYW1lX2RpZyAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTAKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSAtPSAxCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCS0KCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MQoJLy8gY21wU3Rha2VyLmFjY291bnQgPSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWludCAwCglnbG9iYWwgWmVyb0FkZHJlc3MKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM1MgoJLy8gY21wU3Rha2VyLnRvdGFsUmV3YXJkZWQgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0MAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTMKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAxIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTQKCS8vIHN0YWtlclJlbW92ZWQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTcKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXSA9IGNtcFN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNTkKCS8vIHJvdW5kc0xlZnRJbkJpbiA9IHRoaXMuYmluUm91bmRTdGFydC52YWx1ZSArIHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIC0gZ2xvYmFscy5yb3VuZAoJYnl0ZSAweDYyNjk2ZTUyNmY3NTZlNjQ1Mzc0NjE3Mjc0IC8vICJiaW5Sb3VuZFN0YXJ0IgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg3MjZmNzU2ZTY0NzM1MDY1NzI0NDYxNzkgLy8gInJvdW5kc1BlckRheSIKCWFwcF9nbG9iYWxfZ2V0CgkrCglnbG9iYWwgUm91bmQKCS0KCWZyYW1lX2J1cnkgNSAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjAKCS8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4ID0gKGFtb3VudFRvVW5zdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkKCWZyYW1lX2RpZyAtMiAvLyBhbW91bnRUb1Vuc3Rha2U6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIDUgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAoYW1vdW50VG9VbnN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2MQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyA2IC8vIHN1YnRyYWN0QW1vdW50OiB1aW50MTI4CgliLQoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC0gc3VidHJhY3RBbW91bnQgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM2NgoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5zdGFrZVJlbW92ZWQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgICAgICBzdGFrZXIsCgkvLyAgICAgICAgICAgICBhbW91bnRUb1Vuc3Rha2UsCgkvLyAgICAgICAgICAgICBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQsCgkvLyAgICAgICAgICAgICBzdGFrZXJSZW1vdmVkLAoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MzY3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozNjgKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIGFtb3VudFRvVW5zdGFrZSwKCS8vICAgICAgICAgICAgIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZCwKCS8vICAgICAgICAgICAgIHN0YWtlclJlbW92ZWQsCgkvLyAgICAgICAgICAgXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWNvbmNhdAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gYW1vdW50VG9VbnN0YWtlOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMiAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyA0IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Mzc2CgkvLyByZXR1cm47CglyZXRzdWIKCippZjhfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjI4OQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGFjY291bnQgbm90IGZvdW5kCgllcnIKCXJldHN1YgoKLy8gY2xhaW1Ub2tlbnMoKXZvaWQKKmFiaV9yb3V0ZV9jbGFpbVRva2VuczoKCS8vIGV4ZWN1dGUgY2xhaW1Ub2tlbnMoKXZvaWQKCWNhbGxzdWIgY2xhaW1Ub2tlbnMKCWludCAxCglyZXR1cm4KCi8vIGNsYWltVG9rZW5zKCk6IHZvaWQKLy8KLy8gQ2xhaW1zIGFsbCB0aGUgYXZhaWxhYmxlIHJld2FyZCB0b2tlbnMgYSBzdGFrZXIgaGFzIGF2YWlsYWJsZSwgc2VuZGluZyB0aGVpciBlbnRpcmUgYmFsYW5jZSB0byB0aGUgc3Rha2VyIGZyb20KLy8gcG9vbCAxIChlaXRoZXIgZGlyZWN0bHksIG9yIHZpYSB2YWxpZGF0b3ItPnBvb2wxIHRvIHBheSBpdCBvdXQpCi8vIEFsc28gbm90aWZpZXMgdGhlIHZhbGlkYXRvciBjb250cmFjdCBmb3IgdGhpcyBwb29scyB2YWxpZGF0b3Igb2YgdGhlIHN0YWtlciAvIGJhbGFuY2UgY2hhbmdlcy4KY2xhaW1Ub2tlbnM6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5MwoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDIwMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjE0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMTRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5NwoJLy8gY21wU3Rha2VyID0gY2xvbmUodGhpcy5zdGFrZXJzLnZhbHVlW2ldKQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OAoJLy8gY21wU3Rha2VyLmFjY291bnQgPT09IHN0YWtlcgoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjM5OQoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9PT0gMAoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMTZfZW5kCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwMAoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWYxNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDAyCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDA0CgkvLyB0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMQoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgk9PQoJYnogKmlmMTdfZWxzZQoKCS8vICppZjE3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDUKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDc1YWZmNjFkIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MDYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQwNwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgNCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTIKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkKSwKCS8vICAgICAgICAgICAgIGFzc2V0UmVjZWl2ZXI6IHN0YWtlciwKCS8vICAgICAgICAgICAgIGFzc2V0QW1vdW50OiBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDQgLy8gYXhmZXIKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDEzCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcucmV3YXJkVG9rZW5JZCkKCWZyYW1lX2RpZyA0IC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE1MyA4CglidG9pCglpdHhuX2ZpZWxkIFhmZXJBc3NldAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTQKCS8vIGFzc2V0UmVjZWl2ZXI6IHN0YWtlcgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDE1CgkvLyBhc3NldEFtb3VudDogY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQxNwoJLy8gYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkID0gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZQoJZnJhbWVfZGlnIDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MTgKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgPSAwCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglyZXBsYWNlMiA0OAoJZnJhbWVfYnVyeSAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYiAqaWYxN19lbmQKCippZjE3X2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDIzCgkvLyBhbW91bnRSZXdhcmRUb2tlblJlbW92ZWQgPSBjbXBTdGFrZXIucmV3YXJkVG9rZW5CYWxhbmNlCglmcmFtZV9kaWcgMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDggOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQyNAoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSA9IDAKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXJlcGxhY2UyIDQ4CglmcmFtZV9idXJ5IDIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoqaWYxN19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDI4CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAxIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDMzCgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlUmVtb3ZlZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDM0CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0MzUKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgICAgIHN0YWtlciwKCS8vICAgICAgICAgICAgIDAsIC8vIG5vIGFsZ28gcmVtb3ZlZAoJLy8gICAgICAgICAgICAgYW1vdW50UmV3YXJkVG9rZW5SZW1vdmVkLAoJLy8gICAgICAgICAgICAgZmFsc2UsIC8vIHN0YWtlciBpc24ndCBiZWluZyByZW1vdmVkLgoJLy8gICAgICAgICAgIF0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIGFtb3VudFJld2FyZFRva2VuUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDQzCgkvLyByZXR1cm47CglyZXRzdWIKCippZjE1X2VuZDoKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czozOTMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBhY2NvdW50IG5vdCBmb3VuZAoJZXJyCglyZXRzdWIKCi8vIGdldFN0YWtlckluZm8oYWRkcmVzcykoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0U3Rha2VySW5mbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGdldFN0YWtlckluZm8gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0U3Rha2VySW5mbwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFN0YWtlckluZm8oc3Rha2VyOiBBZGRyZXNzKTogU3Rha2VkSW5mbwovLwovLyBSZXRyaWV2ZXMgdGhlIHN0YWtlZCBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHJldHVybnMge1N0YWtlZEluZm99IC0gVGhlIHN0YWtlZCBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIHN0YWtlci4KLy8gQHRocm93cyB7RXJyb3J9IC0gSWYgdGhlIHN0YWtlcidzIGFjY291bnQgaXMgbm90IGZvdW5kLgpnZXRTdGFrZXJJbmZvOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZm9yXzM6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpIDwgdGhpcy5zdGFrZXJzLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMjAwCgk8CglieiAqZm9yXzNfZW5kCgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU5CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDIwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDIwMAoJPAoJYnogKmlmMThfZW5kCgoJLy8gKmlmMThfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYxOF9lbmQ6CgkvLyAqaWYxOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0NjIKCS8vIHRoaXMuc3Rha2Vycy52YWx1ZVtpXS5hY2NvdW50ID09PSBzdGFrZXIKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgMzIKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgk9PQoJYnogKmlmMTlfZW5kCgoJLy8gKmlmMTlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ2MwoJLy8gcmV0dXJuIHRoaXMuc3Rha2Vycy52YWx1ZVtpXTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDY0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCA2NAoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWIgKmdldFN0YWtlckluZm8qcmV0dXJuCgoqaWYxOV9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDU4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoJLy8gYWNjb3VudCBub3QgZm91bmQKCWVycgoKKmdldFN0YWtlckluZm8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfcGF5VG9rZW5SZXdhcmQ6CgkvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHJld2FyZFRva2VuOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VyKSBmb3IgcGF5VG9rZW5SZXdhcmQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgcGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgcGF5VG9rZW5SZXdhcmQKCWludCAxCglyZXR1cm4KCi8vIHBheVRva2VuUmV3YXJkKHN0YWtlcjogQWRkcmVzcywgcmV3YXJkVG9rZW46IHVpbnQ2NCwgYW1vdW50VG9TZW5kOiB1aW50NjQpOiB2b2lkCi8vCi8vIFtJbnRlcm5hbCBwcm90b2NvbCBtZXRob2RdIFJlbW92ZSBhIHNwZWNpZmllZCBhbW91bnQgb2YgJ2NvbW11bml0eSB0b2tlbicgcmV3YXJkcyBmb3IgYSBzdGFrZXIuCi8vIFRoaXMgY2FuIE9OTFkgYmUgY2FsbGVkIGJ5IG91ciB2YWxpZGF0b3IgYW5kIG9ubHkgaWYgd2UncmUgcG9vbCAxIC0gd2l0aCB0aGUgdG9rZW4uCi8vIE5vdGU6IHRoaXMgY2FuIGFsc28gYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBhcyBwYXJ0IG9mIE9XTkVSIHdhbnRpbmcgdG8gc2VuZCB0aGUgcmV3YXJkIHRva2VucwovLyBzb21ld2hlcmUgZWxzZSAoaWUgaWYgdGhleSdyZSBzdW5zZXR0aW5nIHRoZWlyIHZhbGlkYXRvciBhbmQgbmVlZCB0aGUgcmV3YXJkIHRva2VucyBiYWNrKS4KLy8gSXQncyB1cCB0byB0aGUgdmFsaWRhdG9yIHRvIGVuc3VyZSB0aGF0IHRoZSBiYWxhbmNlIGluIHJld2FyZFRva2VuSGVsZEJhY2sgaXMgaG9ub3JlZC4KLy8gQHBhcmFtIHN0YWtlciAtIHRoZSBzdGFrZXIgYWNjb3VudCB0byBzZW5kIHJld2FyZHMgdG8KLy8gQHBhcmFtIHJld2FyZFRva2VuIC0gaWQgb2YgcmV3YXJkIHRva2VuICh0byBhdm9pZCByZS1lbnRyYW5jeSBpbiBjYWxsaW5nIHZhbGlkYXRvciBiYWNrIHRvIGdldCBpZCkKLy8gQHBhcmFtIGFtb3VudFRvU2VuZCAtIGFtb3VudCB0byBzZW5kIHRoZSBzdGFrZXIgKHRoZXJlIGlzIHNpZ25pZmljYW50IHRydXN0IGhlcmUoISkgLSBhbHNvIHdoeSBvbmx5IHZhbGlkYXRvciBjYW4gY2FsbCB1cwpwYXlUb2tlblJld2FyZDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0ODEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkuYWRkcmVzcywKCS8vICAgICAgICd0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB2aWEgdGhlIHZhbGlkYXRvciBjb250cmFjdCcKCS8vICAgICApCgl0eG4gU2VuZGVyCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoKCS8vIHRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIHZpYSB0aGUgdmFsaWRhdG9yIGNvbnRyYWN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg1CgkvLyBhc3NlcnQodGhpcy5wb29sSWQudmFsdWUgPT09IDEsICdtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzJykKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJPT0KCgkvLyBtdXN0IGJlIHBvb2wgMSBpbiBvcmRlciB0byBiZSBjYWxsZWQgdG8gcGF5IG91dCB0b2tlbiByZXdhcmRzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDg2CgkvLyBhc3NlcnQocmV3YXJkVG9rZW4gIT09IDAsICdjYW4gb25seSBjbGFpbSB0b2tlbiByZXdhcmRzIGZyb20gdmFsaWRhdG9yIHRoYXQgaGFzIHRoZW0nKQoJZnJhbWVfZGlnIC0yIC8vIHJld2FyZFRva2VuOiB1aW50NjQKCWludCAwCgkhPQoKCS8vIGNhbiBvbmx5IGNsYWltIHRva2VuIHJld2FyZHMgZnJvbSB2YWxpZGF0b3IgdGhhdCBoYXMgdGhlbQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogc3Rha2VyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudFRvU2VuZCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjQ5MAoJLy8geGZlckFzc2V0OiBBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW4pCglmcmFtZV9kaWcgLTIgLy8gcmV3YXJkVG9rZW46IHVpbnQ2NAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NDkxCgkvLyBhc3NldFJlY2VpdmVyOiBzdGFrZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo0OTIKCS8vIGFzc2V0QW1vdW50OiBhbW91bnRUb1NlbmQKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1NlbmQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gdXBkYXRlQWxnb2RWZXIoc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBbGdvZFZlcjoKCS8vIGFsZ29kVmVyOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZAoJY2FsbHN1YiB1cGRhdGVBbGdvZFZlcgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQWxnb2RWZXIoYWxnb2RWZXI6IHN0cmluZyk6IHZvaWQKLy8KLy8gVXBkYXRlIHRoZSAoaG9ub3Igc3lzdGVtKSBhbGdvZCB2ZXJzaW9uIGZvciB0aGUgbm9kZSBhc3NvY2lhdGVkIHRvIHRoaXMgcG9vbC4gIFRoZSBub2RlIG1hbmFnZW1lbnQgZGFlbW9uCi8vIHNob3VsZCBjb21wYXJlIGl0cyBjdXJyZW50IG5vZGVzIHZlcnNpb24gdG8gdGhlIHZlcnNpb24gc3RvcmVkIGluIGdsb2JhbCBzdGF0ZSwgdXBkYXRpbmcgd2hlbiBkaWZmZXJlbnQuCi8vIFRoZSByZXRpIG5vZGUgZGFlbW9uIGNvbXBvc2VzIGl0cyBvd24gdmVyc2lvbiBzdHJpbmcgdXNpbmcgZm9ybWF0OgovLyB7bWFqb3J9LnttaW5vcn0ue2J1aWxkfSB7YnJhbmNofSBbe2NvbW1pdCBoYXNofV0sCi8vIGllOiAzLjIyLjAgcmVsL3N0YWJsZSBbNmI1MDg5NzVdCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8gQHBhcmFtIHtzdHJpbmd9IGFsZ29kVmVyIC0gc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgYWxnb3JhbmQgbm9kZSBkYWVtb24gdmVyc2lvbiAocmV0aSBub2RlIGRhZW1vbiBjb21wb3NlcyBpdHMgb3duIG1ldGEgdmVyc2lvbikKdXBkYXRlQWxnb2RWZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTA2CgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTA3CgkvLyB0aGlzLmFsZ29kVmVyLnZhbHVlID0gYWxnb2RWZXIKCXB1c2hieXRlcyAweDYxNmM2NzZmNjQ1NjY1NzIgLy8gImFsZ29kVmVyIgoJZnJhbWVfZGlnIC0xIC8vIGFsZ29kVmVyOiBzdHJpbmcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGVwb2NoQmFsYW5jZVVwZGF0ZSgpdm9pZAoqYWJpX3JvdXRlX2Vwb2NoQmFsYW5jZVVwZGF0ZToKCS8vIGV4ZWN1dGUgZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkCgljYWxsc3ViIGVwb2NoQmFsYW5jZVVwZGF0ZQoJaW50IDEKCXJldHVybgoKLy8gZXBvY2hCYWxhbmNlVXBkYXRlKCk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgYmFsYW5jZSBvZiBzdGFrZXJzIGluIHRoZSBwb29sIGJhc2VkIG9uIHRoZSByZWNlaXZlZCAncmV3YXJkcycgKGN1cnJlbnQgYmFsYW5jZSB2cyBrbm93biBzdGFrZWQgYmFsYW5jZSkKLy8gc3Rha2VycyBvdXRzdGFuZGluZyBiYWxhbmNlIGlzIGFkanVzdGVkIGJhc2VkIG9uIHRoZWlyICUgb2Ygc3Rha2UgYW5kIHRpbWUgaW4gdGhlIGN1cnJlbnQgZXBvY2ggLSBzbyB0aGF0IGJhbGFuY2UKLy8gY29tcG91bmRzIG92ZXIgdGltZSBhbmQgc3Rha2VyIGNhbiByZW1vdmUgdGhhdCBhbW91bnQgYXQgd2lsbC4KLy8gVGhlIHZhbGlkYXRvciBpcyBwYWlkIHRoZWlyIHBlcmNlbnRhZ2UgZWFjaCBlcG9jaCBwYXlvdXQuCi8vCi8vIE5vdGU6IEFOWU9ORSBjYW4gY2FsbCB0aGlzLgplcG9jaEJhbGFuY2VVcGRhdGU6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzNgoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjAKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0VmFsaWRhdG9yQ29uZmlnPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKSwKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDc1YWZmNjFkIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUyMgoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1MjkKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB2YWxpZGF0b3JDb25maWcuZXBvY2hSb3VuZExlbmd0aCBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2OSA0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMiAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjUzMQoJLy8gdGhpc0Vwb2NoQmVnaW4gPSBjdXJSb3VuZCAtIChjdXJSb3VuZCAlIGVwb2NoUm91bmRMZW5ndGgpCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglmcmFtZV9kaWcgMSAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCSUKCS0KCWZyYW1lX2J1cnkgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM0CgkvLyB0aGlzLmxhc3RQYXlvdXQuZXhpc3RzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM1CgkvLyBsYXN0UGF5b3V0RXBvY2ggPSB0aGlzLmxhc3RQYXlvdXQudmFsdWUgLSAodGhpcy5sYXN0UGF5b3V0LnZhbHVlICUgZXBvY2hSb3VuZExlbmd0aCkKCWJ5dGUgMHg2YzYxNzM3NDUwNjE3OTZmNzU3NCAvLyAibGFzdFBheW91dCIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0CgklCgktCglmcmFtZV9idXJ5IDQgLy8gbGFzdFBheW91dEVwb2NoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTM5CgkvLyBhc3NlcnQobGFzdFBheW91dEVwb2NoICE9PSB0aGlzRXBvY2hCZWdpbiwgImNhbid0IGNhbGwgZXBvY2hCYWxhbmNlVXBkYXRlIGluIHNhbWUgZXBvY2ggYXMgcHJpb3IgY2FsbCIpCglmcmFtZV9kaWcgNCAvLyBsYXN0UGF5b3V0RXBvY2g6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJIT0KCgkvLyBjYW4ndCBjYWxsIGVwb2NoQmFsYW5jZVVwZGF0ZSBpbiBzYW1lIGVwb2NoIGFzIHByaW9yIGNhbGwKCWFzc2VydAoKKmlmMjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU0MgoJLy8gdGhpcy5jaGVja0lmQmluQ2xvc2VkKCkKCWNhbGxzdWIgY2hlY2tJZkJpbkNsb3NlZAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDUKCS8vIHRoaXMubGFzdFBheW91dC52YWx1ZSA9IGN1clJvdW5kCglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglmcmFtZV9kaWcgMiAvLyBjdXJSb3VuZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NDYKCS8vIHRoaXMuZXBvY2hOdW1iZXIudmFsdWUgKz0gMQoJYnl0ZSAweDY1NzA2ZjYzNjg0ZTc1NmQ2MjY1NzIgLy8gImVwb2NoTnVtYmVyIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglieXRlIDB4NjU3MDZmNjM2ODRlNzU2ZDYyNjU3MiAvLyAiZXBvY2hOdW1iZXIiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTEKCS8vIGlzVG9rZW5FbGlnaWJsZSA9IHZhbGlkYXRvckNvbmZpZy5yZXdhcmRUb2tlbklkICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJaW50IDAKCSE9CglmcmFtZV9idXJ5IDUgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1MgoJLy8gcG9vbE9uZUFwcElEID0gdGhpcy5hcHAuaWQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2J1cnkgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NTMKCS8vIHBvb2xPbmVBZGRyZXNzID0gdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgNyAvLyBwb29sT25lQWRkcmVzczogYWRkcmVzcwoKCS8vICppZjIxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OAoJLy8gaXNUb2tlbkVsaWdpYmxlCglmcmFtZV9kaWcgNSAvLyBpc1Rva2VuRWxpZ2libGU6IGJvb2wKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU1OQoJLy8gdGhpcy5wb29sSWQudmFsdWUgIT09IDEKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJIT0KCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjEKCS8vIHBvb2xPbmVBcHBJRCA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuZ2V0UG9vbEFwcElkPih7CgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWUsIDFdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDU3Mjc2N2QxIC8vIG1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTYyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NjMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCAxXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIHBvb2xPbmVBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU2NQoJLy8gcG9vbE9uZUFkZHJlc3MgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xPbmVBcHBJRCkuYWRkcmVzcwoJZnJhbWVfZGlnIDYgLy8gcG9vbE9uZUFwcElEOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfYnVyeSA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCgoqaWYyMl9lbmQ6CgkvLyAqaWYyM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzAKCS8vIHRoaXMucG9vbElkLnZhbHVlID09PSAxCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CglieiAqaWYyM19lbHNlCgoJLy8gKmlmMjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MQoJLy8gdG9rZW5QYXlvdXRSYXRpbyA9IHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGUgMHg0ZGY4ZDg2ZSAvLyBtZXRob2QgInNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1NzIKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpCglieXRlIDB4NjM3MjY1NjE3NDZmNzI0MTcwNzAgLy8gImNyZWF0b3JBcHAiCglhcHBfZ2xvYmFsX2dldAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3MwoJLy8gbWV0aG9kQXJnczogW3RoaXMudmFsaWRhdG9ySWQudmFsdWVdCglieXRlIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWZyYW1lX2J1cnkgOCAvLyB0b2tlblBheW91dFJhdGlvOiBQb29sVG9rZW5QYXlvdXRSYXRpbwoJYiAqaWYyM19lbmQKCippZjIzX2Vsc2U6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTc3CgkvLyB0b2tlblBheW91dFJhdGlvID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbE9uZUFwcElEKSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbeyBpZDogdGhpcy52YWxpZGF0b3JJZC52YWx1ZSwgcG9vbElkOiB0aGlzLnBvb2xJZC52YWx1ZSwgcG9vbEFwcElkOiB0aGlzLmFwcC5pZCB9XSwKCS8vICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWJ5dGUgMHgwYzIyNDVlMSAvLyBtZXRob2QgInByb3hpZWRTZXRUb2tlblBheW91dFJhdGlvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NFsyNF0sdWludDY0KSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3OAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sT25lQXBwSUQpCglmcmFtZV9kaWcgNiAvLyBwb29sT25lQXBwSUQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU3OQoJLy8gbWV0aG9kQXJnczogW3sgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfV0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDggLy8gdG9rZW5QYXlvdXRSYXRpbzogUG9vbFRva2VuUGF5b3V0UmF0aW8KCippZjIzX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODYKCS8vIHZhbGlkYXRvclN0YXRlID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRWYWxpZGF0b3JTdGF0ZT4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDFmMmYwMTA5IC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTg3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1ODgKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglmcmFtZV9idXJ5IDkgLy8gdmFsaWRhdG9yU3RhdGU6ICh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU5MAoJLy8gcmV3YXJkVG9rZW5IZWxkQmFjayA9IHZhbGlkYXRvclN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxOCA4CglidG9pCglmcmFtZV9idXJ5IDEwIC8vIHJld2FyZFRva2VuSGVsZEJhY2s6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo1OTYKCS8vIGFsZ29SZXdhcmRBdmFpbCA9IHRoaXMuYXBwLmFkZHJlc3MuYmFsYW5jZSAtIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC0gdGhpcy5hcHAuYWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWZyYW1lX2J1cnkgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NTk3CgkvLyBpc1Bvb2xTYXR1cmF0ZWQgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgMTIgLy8gaXNQb29sU2F0dXJhdGVkOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjU5OAoJLy8gYWxnb1NhdHVyYXRpb25BbXQgPSB0aGlzLmFsZ29TYXR1cmF0aW9uTGV2ZWwoKQoJY2FsbHN1YiBhbGdvU2F0dXJhdGlvbkxldmVsCglmcmFtZV9idXJ5IDEzIC8vIGFsZ29TYXR1cmF0aW9uQW10OiB1aW50NjQKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MDYKCS8vIHZhbGlkYXRvclN0YXRlLnRvdGFsQWxnb1N0YWtlZCA+IGFsZ29TYXR1cmF0aW9uQW10CglmcmFtZV9kaWcgOSAvLyB2YWxpZGF0b3JTdGF0ZTogKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTAgOAoJYnRvaQoJZnJhbWVfZGlnIDEzIC8vIGFsZ29TYXR1cmF0aW9uQW10OiB1aW50NjQKCT4KCWJ6ICppZjI0X2VuZAoKCS8vICppZjI0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MDcKCS8vIGlzUG9vbFNhdHVyYXRlZCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDEyIC8vIGlzUG9vbFNhdHVyYXRlZDogYm9vbAoKKmlmMjRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxMwoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTQKCS8vIHRva2VuUmV3YXJkUGFpZE91dCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNQoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYxNgoJLy8gZXhjZXNzVG9GZWVTaW5rID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCgkvLyAqaWYyNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2MTcKCS8vIGlzVG9rZW5FbGlnaWJsZQoJZnJhbWVfZGlnIDUgLy8gaXNUb2tlbkVsaWdpYmxlOiBib29sCglieiAqaWYyNV9lbmQKCgkvLyAqaWYyNV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjE4CgkvLyB0b2tlblJld2FyZEJhbCA9CgkvLyAgICAgICAgIHBvb2xPbmVBZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLnJld2FyZFRva2VuSWQpKSAtIHJld2FyZFRva2VuSGVsZEJhY2sKCWZyYW1lX2RpZyA3IC8vIHBvb2xPbmVBZGRyZXNzOiBhZGRyZXNzCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNTMgOAoJYnRvaQoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAxMCAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTggLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vICppZjI2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYyMwoJLy8gdG9rZW5SZXdhcmRCYWwgPj0gdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dAoJZnJhbWVfZGlnIDE4IC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCgk+PQoJYnogKmlmMjZfZW5kCgoJLy8gKmlmMjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYyOQoJLy8gb3VyUG9vbFBjdE9mV2hvbGUgPSB0b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW3RoaXMucG9vbElkLnZhbHVlIC0gMV0KCWZyYW1lX2RpZyA4IC8vIHRva2VuUGF5b3V0UmF0aW86IFBvb2xUb2tlblBheW91dFJhdGlvCglpbnQgMAoJYnl0ZSAweDcwNmY2ZjZjNDk2NCAvLyAicG9vbElkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgktCglwdXNoaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJcHVzaGludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfYnVyeSAxOSAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjYzMgoJLy8gdG9rZW5SZXdhcmRBdmFpbCA9IHdpZGVSYXRpbyhbdmFsaWRhdG9yQ29uZmlnLnJld2FyZFBlclBheW91dCwgb3VyUG9vbFBjdE9mV2hvbGVdLCBbMV8wMDBfMDAwXSkKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE2MSA4CglidG9pCglmcmFtZV9kaWcgMTkgLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxXzAwMF8wMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CglmcmFtZV9idXJ5IDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoKKmlmMjZfZW5kOgoKKmlmMjVfZW5kOgoJLy8gKmlmMjdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjM1CgkvLyB0b2tlblJld2FyZEF2YWlsID09PSAwCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjI3X2VuZAoKCS8vICppZjI3X2NvbnNlcXVlbnQKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0MAoJLy8gYWxnb1Jld2FyZEF2YWlsIDwgMV8wMDBfMDAwCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWludCAxXzAwMF8wMDAKCTwKCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDEKCS8vIGxvZygnIXRva2VuJiYhbm9hbGdvIHRvIHBheScpCglwdXNoYnl0ZXMgMHgyMTc0NmY2YjY1NmUyNjI2MjE2ZTZmNjE2YzY3NmYyMDc0NmYyMDcwNjE3OSAvLyAiIXRva2VuJiYhbm9hbGdvIHRvIHBheSIKCWxvZwoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NDIKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMjhfZW5kOgoKKmlmMjdfZW5kOgoJLy8gKmlmMjlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjQ2CgkvLyBpc1Bvb2xTYXR1cmF0ZWQKCWZyYW1lX2RpZyAxMiAvLyBpc1Bvb2xTYXR1cmF0ZWQ6IGJvb2wKCWJ6ICppZjI5X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY0OQoJLy8gZGltaW5pc2hlZFJld2FyZCA9IHdpZGVSYXRpbyhbYWxnb1Jld2FyZEF2YWlsLCBhbGdvU2F0dXJhdGlvbkFtdF0sIFt2YWxpZGF0b3JTdGF0ZS50b3RhbEFsZ29TdGFrZWRdKQoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMTMgLy8gYWxnb1NhdHVyYXRpb25BbXQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyA5IC8vIHZhbGlkYXRvclN0YXRlOiAodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMCA4CglidG9pCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyMCAvLyBkaW1pbmlzaGVkUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjUxCgkvLyBleGNlc3NUb0ZlZVNpbmsgPSBhbGdvUmV3YXJkQXZhaWwgLSBkaW1pbmlzaGVkUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyMCAvLyBkaW1pbmlzaGVkUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTcgLy8gZXhjZXNzVG9GZWVTaW5rOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjUyCgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICAgIGFtb3VudDogZXhjZXNzVG9GZWVTaW5rLAoJLy8gICAgICAgICByZWNlaXZlcjogdGhpcy5nZXRGZWVTaW5rKCksCgkvLyAgICAgICAgIG5vdGU6ICdwb29sIHNhdHVyYXRlZCwgZXhjZXNzIHRvIGZlZSBzaW5rJywKCS8vICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjUzCgkvLyBhbW91bnQ6IGV4Y2Vzc1RvRmVlU2luawoJZnJhbWVfZGlnIDE3IC8vIGV4Y2Vzc1RvRmVlU2luazogdWludDY0CglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NTQKCS8vIHJlY2VpdmVyOiB0aGlzLmdldEZlZVNpbmsoKQoJY2FsbHN1YiBnZXRGZWVTaW5rCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY1NQoJLy8gbm90ZTogJ3Bvb2wgc2F0dXJhdGVkLCBleGNlc3MgdG8gZmVlIHNpbmsnCglwdXNoYnl0ZXMgMHg3MDZmNmY2YzIwNzM2MTc0NzU3MjYxNzQ2NTY0MmMyMDY1Nzg2MzY1NzM3MzIwNzQ2ZjIwNjY2NTY1MjA3MzY5NmU2YiAvLyAicG9vbCBzYXR1cmF0ZWQsIGV4Y2VzcyB0byBmZWUgc2luayIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU4CgkvLyBhbGdvUmV3YXJkQXZhaWwgPSBkaW1pbmlzaGVkUmV3YXJkCglmcmFtZV9kaWcgMjAgLy8gZGltaW5pc2hlZFJld2FyZDogdWludDY0CglmcmFtZV9idXJ5IDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CgliICppZjI5X2VuZAoKKmlmMjlfZWxzZWlmMV9jb25kaXRpb246CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjU5CgkvLyB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxNzMgNAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjIKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0ID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICBbYWxnb1Jld2FyZEF2YWlsLCB2YWxpZGF0b3JDb25maWcucGVyY2VudFRvVmFsaWRhdG9yIGFzIHVpbnQ2NF0sCgkvLyAgICAgICAgIFsxXzAwMF8wMDBdCgkvLyAgICAgICApCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3MyA0CglidG9pCgltdWx3CglpbnQgMAoJaW50IDFfMDAwXzAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NjgKCS8vIGFsZ29SZXdhcmRBdmFpbCAtPSB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vICppZjMwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY3NQoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgPiAwCglmcmFtZV9kaWcgMTYgLy8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQ6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjMwX2VuZAoKCS8vICppZjMwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2NzgKCS8vIG1hbmFnZXJUb3BPZmYgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCgkvLyAqaWYzMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODAKCS8vIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSB2YWxpZGF0b3JDb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgJiYKCS8vICAgICAgICAgICB2YWxpZGF0b3JDb25maWcubWFuYWdlci5iYWxhbmNlIC0gdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIubWluQmFsYW5jZSA8IDJfMTAwXzAwMAoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDE3NyAzMgoJIT0KCWR1cAoJYnogKnNraXBfYW5kMwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNDAgMzIKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JDb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCAzMgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCS0KCWludCAyXzEwMF8wMDAKCTwKCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMzFfZW5kCgoJLy8gKmlmMzFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4MwoJLy8gbWFuYWdlclRvcE9mZiA9IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IDwgMl8xMDBfMDAwID8gdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQgOiAyXzEwMF8wMDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpbnQgMl8xMDBfMDAwCgk8CglieiAqdGVybmFyeTFfZmFsc2UKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWludCAyXzEwMF8wMDAKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODQKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgICAgICAgIGFtb3VudDogbWFuYWdlclRvcE9mZiwKCS8vICAgICAgICAgICAgIHJlY2VpdmVyOiB2YWxpZGF0b3JDb25maWcubWFuYWdlciwKCS8vICAgICAgICAgICAgIG5vdGU6ICd2YWxpZGF0b3IgcmV3YXJkIHRvIG1hbmFnZXIgZm9yIGZ1bmRpbmcgZXBvY2ggdXBkYXRlcycsCgkvLyAgICAgICAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2ODUKCS8vIGFtb3VudDogbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDIxIC8vIG1hbmFnZXJUb3BPZmY6IHVpbnQ2NAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Njg2CgkvLyByZWNlaXZlcjogdmFsaWRhdG9yQ29uZmlnLm1hbmFnZXIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvckNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQwIDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY4NwoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQgdG8gbWFuYWdlciBmb3IgZnVuZGluZyBlcG9jaCB1cGRhdGVzJwoJcHVzaGJ5dGVzIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyMjA3MjY1Nzc2MTcyNjQyMDc0NmYyMDZkNjE2ZTYxNjc2NTcyMjA2NjZmNzIyMDY2NzU2ZTY0Njk2ZTY3MjA2NTcwNmY2MzY4MjA3NTcwNjQ2MTc0NjU3MyAvLyAidmFsaWRhdG9yIHJld2FyZCB0byBtYW5hZ2VyIGZvciBmdW5kaW5nIGVwb2NoIHVwZGF0ZXMiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYzMV9lbmQ6CgkvLyAqaWYzMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo2OTAKCS8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZiA+IDAKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglmcmFtZV9kaWcgMjEgLy8gbWFuYWdlclRvcE9mZjogdWludDY0CgktCglpbnQgMAoJPgoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgICAgICAgYW1vdW50OiB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dCAtIG1hbmFnZXJUb3BPZmYsCgkvLyAgICAgICAgICAgICByZWNlaXZlcjogdmFsaWRhdG9yQ29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzLAoJLy8gICAgICAgICAgICAgbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NjkyCgkvLyBhbW91bnQ6IHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0IC0gbWFuYWdlclRvcE9mZgoJZnJhbWVfZGlnIDE2IC8vIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAyMSAvLyBtYW5hZ2VyVG9wT2ZmOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5MwoJLy8gcmVjZWl2ZXI6IHZhbGlkYXRvckNvbmZpZy52YWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9yQ29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTc3IDMyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjY5NAoJLy8gbm90ZTogJ3ZhbGlkYXRvciByZXdhcmQnCglwdXNoYnl0ZXMgMHg3NjYxNmM2OTY0NjE3NDZmNzIyMDcyNjU3NzYxNzI2NCAvLyAidmFsaWRhdG9yIHJld2FyZCIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjMyX2VuZDoKCippZjMwX2VuZDoKCippZjI5X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MDYKCS8vIGluY3JlYXNlZFN0YWtlID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMAoJLy8gYWxnb1Jld2FyZEF2YWlsICE9PSAwIHx8IHRva2VuUmV3YXJkQXZhaWwgIT09IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCSE9CglkdXAKCWJueiAqc2tpcF9vcjEKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCWludCAwCgkhPQoJfHwKCipza2lwX29yMToKCWJ6ICppZjMzX2VuZAoKCS8vICppZjMzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzEKCS8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMjMgLy8gcGFydGlhbFN0YWtlcnNUb3RhbFN0YWtlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzMyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDI0IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSA8IHRoaXMuc3Rha2Vycy52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludCAyMDAKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNDAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDQwMAoJPAoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczNAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYzNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzM2CgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMjQgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3MzcKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDAgMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczOAoJLy8gY21wU3Rha2VyLmVudHJ5Um91bmQgPj0gdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPj0KCWJ6ICppZjM2X2Vsc2UKCgkvLyAqaWYzNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQxCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgliICppZjM2X2VuZAoKKmlmMzZfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NDUKCS8vIHRpbWVJblBvb2wgPSB0aGlzRXBvY2hCZWdpbiAtIGNtcFN0YWtlci5lbnRyeVJvdW5kCglmcmFtZV9kaWcgMyAvLyB0aGlzRXBvY2hCZWdpbjogdWludDY0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCS0KCWZyYW1lX2J1cnkgMjYgLy8gdGltZUluUG9vbDogdWludDY0CgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzQ5CgkvLyB0aW1lSW5Qb29sIDwgZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk8CglieiAqaWYzN19lbmQKCgkvLyAqaWYzN19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUwCgkvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2UgKz0gY21wU3Rha2VyLmJhbGFuY2UKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9idXJ5IDIzIC8vIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc1MQoJLy8gdGltZVBlcmNlbnRhZ2UgPSAodGltZUluUG9vbCAqIDEwMDApIC8gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDI2IC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJaW50IDEwMDAKCSoKCWZyYW1lX2RpZyAxIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJLwoJZnJhbWVfYnVyeSAyNyAvLyB0aW1lUGVyY2VudGFnZTogdWludDY0CgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzUzCgkvLyB0b2tlblJld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjM4X2VuZAoKCS8vICppZjM4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NTUKCS8vIHN0YWtlclRva2VuUmV3YXJkID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICAgICAgICAgICAgW2NtcFN0YWtlci5iYWxhbmNlLCB0b2tlblJld2FyZEF2YWlsLCB0aW1lUGVyY2VudGFnZV0sCgkvLyAgICAgICAgICAgICAgICAgICBbdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUsIDEwMDBdCgkvLyAgICAgICAgICAgICAgICAgKQoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAzMiA4CglidG9pCglmcmFtZV9kaWcgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgltdWx3CglmcmFtZV9kaWcgMjcgLy8gdGltZVBlcmNlbnRhZ2U6IHVpbnQ2NAoJdW5jb3ZlciAyCglkaWcgMQoJKgoJY292ZXIgMgoJbXVsdwoJY292ZXIgMgoJKwoJc3dhcAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxMDAwCgltdWx3CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MgoJLy8gdG9rZW5SZXdhcmRBdmFpbCAtPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMTQgLy8gdG9rZW5SZXdhcmRBdmFpbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2MwoJLy8gY21wU3Rha2VyLnJld2FyZFRva2VuQmFsYW5jZSArPSBzdGFrZXJUb2tlblJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJcHVzaGludCA0OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDQ4IDgKCWJ0b2kKCWZyYW1lX2RpZyAyOCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzY0CgkvLyB0b2tlblJld2FyZFBhaWRPdXQgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDI4IC8vIHN0YWtlclRva2VuUmV3YXJkOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCippZjM4X2VuZDoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2NgoJLy8gYWxnb1Jld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDExIC8vIGFsZ29SZXdhcmRBdmFpbDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmMzlfZW5kCgoJLy8gKmlmMzlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc2OAoJLy8gc3Rha2VyUmV3YXJkID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICAgICAgICAgICAgW2NtcFN0YWtlci5iYWxhbmNlLCBhbGdvUmV3YXJkQXZhaWwsIHRpbWVQZXJjZW50YWdlXSwKCS8vICAgICAgICAgICAgICAgICAgIFt0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSwgMTAwMF0KCS8vICAgICAgICAgICAgICAgICApCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIDI3IC8vIHRpbWVQZXJjZW50YWdlOiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTAwMAoJbXVsdwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc1CgkvLyBhbGdvUmV3YXJkQXZhaWwgLT0gc3Rha2VyUmV3YXJkCglmcmFtZV9kaWcgMTEgLy8gYWxnb1Jld2FyZEF2YWlsOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3NzgKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDI5IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzc5CgkvLyBjbXBTdGFrZXIudG90YWxSZXdhcmRlZCArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAyNSAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCXB1c2hpbnQgNDAgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCA4CglidG9pCglmcmFtZV9kaWcgMjkgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDI1IC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3ODAKCS8vIGluY3JlYXNlZFN0YWtlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAyOSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgoqaWYzOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6NzgzCgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAyNCAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMjUgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmMzdfZW5kOgoKKmlmMzZfZW5kOgoKKmlmMzVfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjczMgoJLy8gaSArPSAxCglmcmFtZV9kaWcgMjQgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyNCAvLyBpOiB1aW50NjQKCWIgKmZvcl80CgoqZm9yXzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5MQoJLy8gbmV3UG9vbFRvdGFsU3Rha2UgPSB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtIHBhcnRpYWxTdGFrZXJzVG90YWxTdGFrZQoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMyAvLyBwYXJ0aWFsU3Rha2Vyc1RvdGFsU3Rha2U6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CgoJLy8gKmlmNDBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk1CgkvLyBuZXdQb29sVG90YWxTdGFrZSA+IDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglpbnQgMAoJPgoJYnogKmlmNDBfZW5kCgoJLy8gKmlmNDBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAzMSAvLyBpOiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo3OTcKCS8vIGkgPCB0aGlzLnN0YWtlcnMudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgMjAwCgk8CglieiAqZm9yXzVfZW5kCgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6Nzk4CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDIwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJaW50IDIwMAoJPAoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5OQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODAxCgkvLyBjbXBTdGFrZXIgPSBjbG9uZSh0aGlzLnN0YWtlcnMudmFsdWVbaV0pCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgNjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDY0CglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDIKCS8vIGNtcFN0YWtlci5hY2NvdW50ICE9PSBnbG9iYWxzLnplcm9BZGRyZXNzICYmIGNtcFN0YWtlci5lbnRyeVJvdW5kIDwgdGhpc0Vwb2NoQmVnaW4KCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDU2IDgKCWJ0b2kKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCTwKCSYmCgoqc2tpcF9hbmQ0OgoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgwMwoJLy8gdGltZUluUG9vbCA9IHRoaXNFcG9jaEJlZ2luIC0gY21wU3Rha2VyLmVudHJ5Um91bmQKCWZyYW1lX2RpZyAzIC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgNTYgOAoJYnRvaQoJLQoJZnJhbWVfYnVyeSAzMyAvLyB0aW1lSW5Qb29sOiB1aW50NjQKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MDUKCS8vIHRpbWVJblBvb2wgPj0gZXBvY2hSb3VuZExlbmd0aAoJZnJhbWVfZGlnIDMzIC8vIHRpbWVJblBvb2w6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gZXBvY2hSb3VuZExlbmd0aDogdWludDY0Cgk+PQoJYnogKmlmNDNfZW5kCgoJLy8gKmlmNDNfY29uc2VxdWVudAoJLy8gKmlmNDRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODEwCgkvLyB0b2tlblJld2FyZEF2YWlsID4gMAoJZnJhbWVfZGlnIDE0IC8vIHRva2VuUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjQ0X2VuZAoKCS8vICppZjQ0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTEKCS8vIHN0YWtlclRva2VuUmV3YXJkID0gd2lkZVJhdGlvKFtjbXBTdGFrZXIuYmFsYW5jZSwgdG9rZW5SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxNCAvLyB0b2tlblJld2FyZEF2YWlsOiB1aW50NjQKCW11bHcKCWludCAwCglmcmFtZV9kaWcgMzAgLy8gbmV3UG9vbFRvdGFsU3Rha2U6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTQKCS8vIGNtcFN0YWtlci5yZXdhcmRUb2tlbkJhbGFuY2UgKz0gc3Rha2VyVG9rZW5SZXdhcmQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCXB1c2hpbnQgNDggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0OCA4CglidG9pCglmcmFtZV9kaWcgMzQgLy8gc3Rha2VyVG9rZW5SZXdhcmQ6IHVpbnQ2NAoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgxNQoJLy8gdG9rZW5SZXdhcmRQYWlkT3V0ICs9IHN0YWtlclRva2VuUmV3YXJkCglmcmFtZV9kaWcgMTUgLy8gdG9rZW5SZXdhcmRQYWlkT3V0OiB1aW50NjQKCWZyYW1lX2RpZyAzNCAvLyBzdGFrZXJUb2tlblJld2FyZDogdWludDY0CgkrCglmcmFtZV9idXJ5IDE1IC8vIHRva2VuUmV3YXJkUGFpZE91dDogdWludDY0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTcKCS8vIGFsZ29SZXdhcmRBdmFpbCA+IDAKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJaW50IDAKCT4KCWJ6ICppZjQ1X2VuZAoKCS8vICppZjQ1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MTgKCS8vIHN0YWtlclJld2FyZCA9IHdpZGVSYXRpbyhbY21wU3Rha2VyLmJhbGFuY2UsIGFsZ29SZXdhcmRBdmFpbF0sIFtuZXdQb29sVG90YWxTdGFrZV0pCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDMyIDgKCWJ0b2kKCWZyYW1lX2RpZyAxMSAvLyBhbGdvUmV3YXJkQXZhaWw6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyAzMCAvLyBuZXdQb29sVG90YWxTdGFrZTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoJZnJhbWVfYnVyeSAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjEKCS8vIGNtcFN0YWtlci5iYWxhbmNlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMzIgOAoJYnRvaQoJZnJhbWVfZGlnIDM1IC8vIHN0YWtlclJld2FyZDogdWludDY0CgkrCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODIyCgkvLyBjbXBTdGFrZXIudG90YWxSZXdhcmRlZCArPSBzdGFrZXJSZXdhcmQKCWZyYW1lX2RpZyAzMiAvLyBjbXBTdGFrZXI6IChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCXB1c2hpbnQgNDAgLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA0MCA4CglidG9pCglmcmFtZV9kaWcgMzUgLy8gc3Rha2VyUmV3YXJkOiB1aW50NjQKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDMyIC8vIGNtcFN0YWtlcjogKGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MjMKCS8vIGluY3JlYXNlZFN0YWtlICs9IHN0YWtlclJld2FyZAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCWZyYW1lX2RpZyAzNSAvLyBzdGFrZXJSZXdhcmQ6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CgoqaWY0NV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODI3CgkvLyB0aGlzLnN0YWtlcnMudmFsdWVbaV0gPSBjbXBTdGFrZXIKCWZyYW1lX2RpZyAzMSAvLyBpOiB1aW50NjQKCWludCA2NAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgMzIgLy8gY21wU3Rha2VyOiAoYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCglieXRlIDB4NzM3NDYxNmI2NTcyNzMgLy8gInN0YWtlcnMiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmNDNfZW5kOgoKKmlmNDJfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjc5NwoJLy8gaSArPSAxCglmcmFtZV9kaWcgMzEgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAzMSAvLyBpOiB1aW50NjQKCWIgKmZvcl81CgoqZm9yXzVfZW5kOgoKKmlmNDBfZW5kOgoKKmlmMzNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgzNwoJLy8gcm91bmRzTGVmdEluQmluID0gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlICsgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgLSBnbG9iYWxzLnJvdW5kCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSsKCWdsb2JhbCBSb3VuZAoJLQoJZnJhbWVfYnVyeSAzNiAvLyByb3VuZHNMZWZ0SW5CaW46IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4MzgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGluY3JlYXNlZFN0YWtlCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDIyIC8vIGluY3JlYXNlZFN0YWtlOiB1aW50NjQKCSsKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjgzOQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0KCS8vICAgICAgIHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSArIChpbmNyZWFzZWRTdGFrZSBhcyB1aW50MTI4KSAqIChyb3VuZHNMZWZ0SW5CaW4gYXMgdWludDEyOCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAic3Rha2VBY2N1bXVsYXRvciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAyMiAvLyBpbmNyZWFzZWRTdGFrZTogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMzYgLy8gcm91bmRzTGVmdEluQmluOiB1aW50NjQKCWl0b2IKCWIqCgliKwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlICsgKGluY3JlYXNlZFN0YWtlIGFzIHVpbnQxMjgpICogKHJvdW5kc0xlZnRJbkJpbiBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQxCgkvLyB0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlID0gdGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSArIGluY3JlYXNlZFN0YWtlCglieXRlIDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAicmV3YXJkQWNjdW11bGF0b3IiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ3CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLnN0YWtlVXBkYXRlZFZpYVJld2FyZHM+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICB7IGlkOiB0aGlzLnZhbGlkYXRvcklkLnZhbHVlLCBwb29sSWQ6IHRoaXMucG9vbElkLnZhbHVlLCBwb29sQXBwSWQ6IHRoaXMuYXBwLmlkIH0sCgkvLyAgICAgICAgIGluY3JlYXNlZFN0YWtlLAoJLy8gICAgICAgICB0b2tlblJld2FyZFBhaWRPdXQsCgkvLyAgICAgICAgIHZhbGlkYXRvckNvbW1pc3Npb25QYWlkT3V0LAoJLy8gICAgICAgICBleGNlc3NUb0ZlZVNpbmssCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHg0MThmY2VmYyAvLyBtZXRob2QgInN0YWtlVXBkYXRlZFZpYVJld2FyZHMoKHVpbnQ2NCx1aW50NjQsdWludDY0KSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg0OAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODQ5CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgaWQ6IHRoaXMudmFsaWRhdG9ySWQudmFsdWUsIHBvb2xJZDogdGhpcy5wb29sSWQudmFsdWUsIHBvb2xBcHBJZDogdGhpcy5hcHAuaWQgfSwKCS8vICAgICAgICAgaW5jcmVhc2VkU3Rha2UsCgkvLyAgICAgICAgIHRva2VuUmV3YXJkUGFpZE91dCwKCS8vICAgICAgICAgdmFsaWRhdG9yQ29tbWlzc2lvblBhaWRPdXQsCgkvLyAgICAgICAgIGV4Y2Vzc1RvRmVlU2luaywKCS8vICAgICAgIF0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCgljb25jYXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMjIgLy8gaW5jcmVhc2VkU3Rha2U6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNSAvLyB0b2tlblJld2FyZFBhaWRPdXQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAxNiAvLyB2YWxpZGF0b3JDb21taXNzaW9uUGFpZE91dDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDE3IC8vIGV4Y2Vzc1RvRmVlU2luazogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gZ29PbmxpbmUocGF5LGJ5dGVbXSxieXRlW10sYnl0ZVtdLHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9nb09ubGluZToKCS8vIHZvdGVLZXlEaWx1dGlvbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglidG9pCgoJLy8gdm90ZUxhc3Q6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIHZvdGVGaXJzdDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gc3RhdGVQcm9vZlBLOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gc2VsZWN0aW9uUEs6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyB2b3RlUEs6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBmZWVQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDYgKGZlZVBheW1lbnQpIGZvciBnb09ubGluZSBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGdvT25saW5lKHBheSxieXRlW10sYnl0ZVtdLGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGdvT25saW5lCglpbnQgMQoJcmV0dXJuCgovLyBnb09ubGluZShmZWVQYXltZW50OiBQYXlUeG4sIHZvdGVQSzogYnl0ZXMsIHNlbGVjdGlvblBLOiBieXRlcywgc3RhdGVQcm9vZlBLOiBieXRlcywgdm90ZUZpcnN0OiB1aW50NjQsIHZvdGVMYXN0OiB1aW50NjQsIHZvdGVLZXlEaWx1dGlvbjogdWludDY0KTogdm9pZAovLwovLyBSZWdpc3RlcnMgYSBzdGFraW5nIHBvb2wga2V5IG9ubGluZSBhZ2FpbnN0IGEgcGFydGljaXBhdGlvbiBrZXkuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KLy8KLy8gQHBhcmFtIHtQYXlUeG59IGZlZVBheW1lbnQgLSBwYXltZW50IHRvIGNvdmVyIGV4dHJhIGZlZSBvZiBnb2luZyBvbmxpbmUgaWYgb2ZmbGluZSAtIG9yIDAgaWYgbm90IHJlbmV3YWwKLy8gQHBhcmFtIHtieXRlc30gdm90ZVBLIC0gVGhlIHZvdGUgcHVibGljIGtleS4KLy8gQHBhcmFtIHtieXRlc30gc2VsZWN0aW9uUEsgLSBUaGUgc2VsZWN0aW9uIHB1YmxpYyBrZXkuCi8vIEBwYXJhbSB7Ynl0ZXN9IHN0YXRlUHJvb2ZQSyAtIFRoZSBzdGF0ZSBwcm9vZiBwdWJsaWMga2V5LgovLyBAcGFyYW0ge3VpbnQ2NH0gdm90ZUZpcnN0IC0gVGhlIGZpcnN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlTGFzdCAtIFRoZSBsYXN0IHZvdGUgaW5kZXguCi8vIEBwYXJhbSB7dWludDY0fSB2b3RlS2V5RGlsdXRpb24gLSBUaGUgdm90ZSBrZXkgZGlsdXRpb24gdmFsdWUuCi8vIEB0aHJvd3Mge0Vycm9yfSBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjYWxsZXIgaXMgbm90IHRoZSBvd25lciBvciBhIG1hbmFnZXIuCmdvT25saW5lOgoJcHJvdG8gNyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgxCgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgyCgkvLyBleHRyYUZlZSA9IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJZnJhbWVfYnVyeSAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODgzCgkvLyB2ZXJpZnlQYXlUeG4oZmVlUGF5bWVudCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiBleHRyYUZlZSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gZmVlUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAwIC8vIGV4dHJhRmVlOiB1aW50NjQKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJmZWVQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6ImV4dHJhRmVlIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODQKCS8vIHNlbmRPbmxpbmVLZXlSZWdpc3RyYXRpb24oewoJLy8gICAgICAgdm90ZVBLOiB2b3RlUEssCgkvLyAgICAgICBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEssCgkvLyAgICAgICBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSywKCS8vICAgICAgIHZvdGVGaXJzdDogdm90ZUZpcnN0LAoJLy8gICAgICAgdm90ZUxhc3Q6IHZvdGVMYXN0LAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24sCgkvLyAgICAgICBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCAyIC8vIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo4ODUKCS8vIHZvdGVQSzogdm90ZVBLCglmcmFtZV9kaWcgLTIgLy8gdm90ZVBLOiBieXRlcwoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg2CgkvLyBzZWxlY3Rpb25QSzogc2VsZWN0aW9uUEsKCWZyYW1lX2RpZyAtMyAvLyBzZWxlY3Rpb25QSzogYnl0ZXMKCWl0eG5fZmllbGQgU2VsZWN0aW9uUEsKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg3CgkvLyBzdGF0ZVByb29mUEs6IHN0YXRlUHJvb2ZQSwoJZnJhbWVfZGlnIC00IC8vIHN0YXRlUHJvb2ZQSzogYnl0ZXMKCWl0eG5fZmllbGQgU3RhdGVQcm9vZlBLCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg4OAoJLy8gdm90ZUZpcnN0OiB2b3RlRmlyc3QKCWZyYW1lX2RpZyAtNSAvLyB2b3RlRmlyc3Q6IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODg5CgkvLyB2b3RlTGFzdDogdm90ZUxhc3QKCWZyYW1lX2RpZyAtNiAvLyB2b3RlTGFzdDogdWludDY0CglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjg5MAoJLy8gdm90ZUtleURpbHV0aW9uOiB2b3RlS2V5RGlsdXRpb24KCWZyYW1lX2RpZyAtNyAvLyB2b3RlS2V5RGlsdXRpb246IHVpbnQ2NAoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6ODkxCgkvLyBmZWU6IHRoaXMuZ2V0R29PbmxpbmVGZWUoKQoJY2FsbHN1YiBnZXRHb09ubGluZUZlZQoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGdvT2ZmbGluZSgpdm9pZAoqYWJpX3JvdXRlX2dvT2ZmbGluZToKCS8vIGV4ZWN1dGUgZ29PZmZsaW5lKCl2b2lkCgljYWxsc3ViIGdvT2ZmbGluZQoJaW50IDEKCXJldHVybgoKLy8gZ29PZmZsaW5lKCk6IHZvaWQKLy8KLy8gTWFya3MgYSBzdGFraW5nIHBvb2wga2V5IE9GRkxJTkUuCi8vIFsgT05MWSBPV05FUiBPUiBNQU5BR0VSIENBTiBDQUxMIF0KZ29PZmZsaW5lOgoJcHJvdG8gMCAwCgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTAzCgkvLyB0aGlzLnR4bi5zZW5kZXIgIT09IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLmFkZHJlc3MKCXR4biBTZW5kZXIKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCSE9CglieiAqaWY0Nl9lbmQKCgkvLyAqaWY0Nl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTA0CgkvLyBhc3NlcnQodGhpcy5pc093bmVyT3JNYW5hZ2VyQ2FsbGVyKCksICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InKQoJY2FsbHN1YiBpc093bmVyT3JNYW5hZ2VyQ2FsbGVyCgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCippZjQ2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MDcKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJcHVzaGludCAyIC8vIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbGlua1RvTkZEKHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2xpbmtUb05GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGxpbmtUb05GRAoJaW50IDEKCXJldHVybgoKLy8gbGlua1RvTkZEKG5mZEFwcElkOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKbGlua1RvTkZEOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNAoJLy8gYXNzZXJ0KHRoaXMuaXNPd25lck9yTWFuYWdlckNhbGxlcigpLCAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJykKCWNhbGxzdWIgaXNPd25lck9yTWFuYWdlckNhbGxlcgoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkxNgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3ZlcmlmeV9uZmRfYWRkcicsIG5mZE5hbWUsIGl0b2IobmZkQXBwSWQpLCByYXdCeXRlcyh0aGlzLmFwcC5hZGRyZXNzKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE3CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCkKCWludGMgMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MTgKCS8vIGFwcGxpY2F0aW9uQXJnczogWyd2ZXJpZnlfbmZkX2FkZHInLCBuZmROYW1lLCBpdG9iKG5mZEFwcElkKSwgcmF3Qnl0ZXModGhpcy5hcHAuYWRkcmVzcyldCglwdXNoYnl0ZXMgMHg3NjY1NzI2OTY2Nzk1ZjZlNjY2NDVmNjE2NDY0NzIgLy8gInZlcmlmeV9uZmRfYWRkciIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTIgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElkOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTE5CgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElkKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBvb2xLZXkpIGZvciBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gcHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8gaXMgbWVhbnQgdG8gYmUgY2FsbGVkIGJ5IHBvb2xzICE9IDEgLSBjYWxsaW5nIFVTLCBwb29sICMxCi8vIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgd2UgYXJlIGluIGZhY3QgYmVpbmcgY2FsbGVkIGJ5IGFub3RoZXIgb2YgT1VSIHBvb2xzIChub3QgdXMpCi8vIGFuZCB0aGVuIHdlJ2xsIGNhbGwgdGhlIHZhbGlkYXRvciBvbiB0aGVpciBiZWhhbGYgdG8gdXBkYXRlIHRoZSB0b2tlbiBwYXlvdXRzCi8vIEBwYXJhbSBwb29sS2V5IC0gVmFsaWRhdG9yUG9vbEtleSB0dXBsZQpwcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9ySWQudmFsdWUgPT09IHBvb2xLZXkuaWQsICdjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEnKQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyBjYWxsZXIgbXVzdCBiZSBwYXJ0IG9mIHNhbWUgdmFsaWRhdG9yIHNldCEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzEKCS8vIGFzc2VydCh0aGlzLnBvb2xJZC52YWx1ZSA9PT0gMSwgJ2NhbGxlZSBtdXN0IGJlIHBvb2wgMScpCglieXRlIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCT09CgoJLy8gY2FsbGVlIG11c3QgYmUgcG9vbCAxCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTMyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgIT09IDEsICdjYWxsZXIgbXVzdCBOT1QgYmUgcG9vbCAxJykKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCSE9CgoJLy8gY2FsbGVyIG11c3QgTk9UIGJlIHBvb2wgMQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjkzNAoJLy8gY2FsbGVyUG9vbEFwcElEID0gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFZhbGlkYXRvclJlZ2lzdHJ5LnByb3RvdHlwZS5nZXRQb29sQXBwSWQ+KHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5jcmVhdGluZ1ZhbGlkYXRvckNvbnRyYWN0QXBwSWQudmFsdWUpLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3Bvb2xLZXkuaWQsIHBvb2xLZXkucG9vbElkXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDU3Mjc2N2QxIC8vIG1ldGhvZCAiZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzYKCS8vIG1ldGhvZEFyZ3M6IFtwb29sS2V5LmlkLCBwb29sS2V5LnBvb2xJZF0KCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBjYWxsZXJQb29sQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5MzgKCS8vIGFzc2VydChjYWxsZXJQb29sQXBwSUQgPT09IHBvb2xLZXkucG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gY2FsbGVyUG9vbEFwcElEOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTM5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0MQoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBWYWxpZGF0b3JSZWdpc3RyeS5wcm90b3R5cGUuc2V0VG9rZW5QYXlvdXRSYXRpbz4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4NGRmOGQ4NmUgLy8gbWV0aG9kICJzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQyCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMuY3JlYXRpbmdWYWxpZGF0b3JDb250cmFjdEFwcElkLnZhbHVlKQoJYnl0ZSAweDYzNzI2NTYxNzQ2ZjcyNDE3MDcwIC8vICJjcmVhdG9yQXBwIgoJYXBwX2dsb2JhbF9nZXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NDMKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLnZhbGlkYXRvcklkLnZhbHVlXQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGlzT3duZXJPck1hbmFnZXJDYWxsZXIoKTogYm9vbGVhbgppc093bmVyT3JNYW5hZ2VyQ2FsbGVyOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTQ4CgkvLyBPd25lckFuZE1hbmFnZXIgPSBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgVmFsaWRhdG9yUmVnaXN0cnkucHJvdG90eXBlLmdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcj4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDJmYTIyYzRiIC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLmNyZWF0aW5nVmFsaWRhdG9yQ29udHJhY3RBcHBJZC52YWx1ZSkKCWJ5dGUgMHg2MzcyNjU2MTc0NmY3MjQxNzA3MCAvLyAiY3JlYXRvckFwcCIKCWFwcF9nbG9iYWxfZ2V0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTUwCgkvLyBtZXRob2RBcmdzOiBbdGhpcy52YWxpZGF0b3JJZC52YWx1ZV0KCWJ5dGUgMHg3NjYxNmM2OTY0NjE3NDZmNzI0OTY0IC8vICJ2YWxpZGF0b3JJZCIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJZnJhbWVfYnVyeSAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTUyCgkvLyByZXR1cm4gdGhpcy50eG4uc2VuZGVyID09PSBPd25lckFuZE1hbmFnZXJbMF0gfHwgdGhpcy50eG4uc2VuZGVyID09PSBPd25lckFuZE1hbmFnZXJbMV07Cgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBPd25lckFuZE1hbmFnZXI6IChhZGRyZXNzLGFkZHJlc3MpCglleHRyYWN0IDAgMzIKCT09CglkdXAKCWJueiAqc2tpcF9vcjIKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIE93bmVyQW5kTWFuYWdlcjogKGFkZHJlc3MsYWRkcmVzcykKCWV4dHJhY3QgMzIgMzIKCT09Cgl8fAoKKnNraXBfb3IyOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEZlZVNpbmsoKTogQWRkcmVzcwpnZXRGZWVTaW5rOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk1NgoJLy8gcmV0dXJuIHRoaXMuZmVlU2lua0FkZHI7CglieXRlYyAwIC8vIFRNUExfZmVlU2lua0FkZHIKCXJldHN1YgoKLy8gYWxnb1NhdHVyYXRpb25MZXZlbCgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZSBiZWZvcmUKLy8gdGhlIHZhbGlkYXRvciBpcyBjb25zaWRlcmVkIHNhdHVyYXRlZCAtIHdoZXJlIHJld2FyZHMgYXJlIGRpbWluaXNoZWQuCmFsZ29TYXR1cmF0aW9uTGV2ZWw6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NjYKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTY4CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfU09GVF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDEwMAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBnZXRHb09ubGluZUZlZSgpOiB1aW50NjQKZ2V0R29PbmxpbmVGZWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NzUKCS8vIGlzT25saW5lID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaXNPbmxpbmU6IGJvb2wKCgkvLyAqaWY0N19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NzYKCS8vICFpc09ubGluZQoJZnJhbWVfZGlnIDAgLy8gaXNPbmxpbmU6IGJvb2wKCSEKCWJ6ICppZjQ3X2VuZAoKCS8vICppZjQ3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5NzgKCS8vIHJldHVybiAyXzAwMF8wMDA7CglwdXNoaW50IDJfMDAwXzAwMAoJYiAqZ2V0R29PbmxpbmVGZWUqcmV0dXJuCgoqaWY0N19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTgwCgkvLyByZXR1cm4gMDsKCWludCAwCgoqZ2V0R29PbmxpbmVGZWUqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk4NQoJLy8gcmV0dXJuIDJfMDAwXzAwMF8wMDBfMDAwXzAwMDsKCXB1c2hpbnQgMl8wMDBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIGNoZWNrSWZCaW5DbG9zZWQoKTogdm9pZAovLwovLyBDaGVja3MgaWYgdGhlIGN1cnJlbnQgcm91bmQgaXMgaW4gYSAnbmV3IGNhbGN1bGF0aW9uIGJpbicgKGFwcHJveGltYXRlbHkgZGFpbHkpCmNoZWNrSWZCaW5DbG9zZWQ6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MgoJLy8gY3VycmVudEJpblNpemUgPSB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSBhcyB1aW50MTI4CglieXRlIDB4NzI2Zjc1NmU2NDczNTA2NTcyNDQ2MTc5IC8vICJyb3VuZHNQZXJEYXkiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5MwoJLy8gZ2xvYmFscy5yb3VuZCA+PSB0aGlzLmJpblJvdW5kU3RhcnQudmFsdWUgKyAoY3VycmVudEJpblNpemUgYXMgdWludDY0KQoJZ2xvYmFsIFJvdW5kCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglkdXAKCWJpdGxlbgoJaW50IDY0Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgOAoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJYnRvaQoJKwoJPj0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vICppZjQ5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NAoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czo5OTUKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmNDlfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5NwoJLy8gYXBwcm94Um91bmRzUGVyWWVhcjogdWludDEyOCA9IGN1cnJlbnRCaW5TaXplICogKDM2NSBhcyB1aW50MTI4KQoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2ZAoJYioKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIGN1cnJlbnRCaW5TaXplICogKDM2NSBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAxIC8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6OTk4CgkvLyBhdmdTdGFrZTogdWludDEyOCA9IHRoaXMuc3Rha2VBY2N1bXVsYXRvci52YWx1ZSAvIGN1cnJlbnRCaW5TaXplCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIDAgLy8gY3VycmVudEJpblNpemU6IHVuc2FmZSB1aW50MTI4CgliLwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlIC8gY3VycmVudEJpblNpemUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMiAvLyBhdmdTdGFrZTogdWludDEyOAoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjk5OQoJLy8gYXZnU3Rha2UgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGF2Z1N0YWtlOiB1aW50MTI4CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWIhPQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMDMKCS8vIGFwcjogdWludDEyOCA9CgkvLyAgICAgICAgICAgKCgodGhpcy5yZXdhcmRBY2N1bXVsYXRvci52YWx1ZSBhcyB1aW50MTI4KSAqICgxMDAwMCBhcyB1aW50MTI4KSkgLyBhdmdTdGFrZSkgKgoJLy8gICAgICAgICAgIChhcHByb3hSb3VuZHNQZXJZZWFyIC8gY3VycmVudEJpblNpemUpCglieXRlIDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAicmV3YXJkQWNjdW11bGF0b3IiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3MTAKCWIqCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJYi8KCWZyYW1lX2RpZyAxIC8vIGFwcHJveFJvdW5kc1BlclllYXI6IHVpbnQxMjgKCWZyYW1lX2RpZyAwIC8vIGN1cnJlbnRCaW5TaXplOiB1bnNhZmUgdWludDEyOAoJYi8KCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAoKCh0aGlzLnJld2FyZEFjY3VtdWxhdG9yLnZhbHVlIGFzIHVpbnQxMjgpICogKDEwMDAwIGFzIHVpbnQxMjgpKSAvIGF2Z1N0YWtlKSAqXG4gICAgICAgICAgKGFwcHJveFJvdW5kc1BlclllYXIgLyBjdXJyZW50QmluU2l6ZSkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWZyYW1lX2J1cnkgMyAvLyBhcHI6IHVpbnQxMjgKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAwNwoJLy8gYWxwaGE6IHVpbnQxMjggPSAxMCBhcyB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYQoJZnJhbWVfYnVyeSA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoKCS8vICppZjUxX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMDkKCS8vIGF2Z1N0YWtlID4gMzAwMDAwMDAwMDAwCglmcmFtZV9kaWcgMiAvLyBhdmdTdGFrZTogdWludDEyOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1ZDk2NGI4MDAKCWI+CglieiAqaWY1MV9lbmQKCgkvLyAqaWY1MV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxMAoJLy8gYWxwaGEgPSA5MCBhcyB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1YQoJZnJhbWVfYnVyeSA0IC8vIGFscGhhOiB1bnNhZmUgdWludDEyOAoKKmlmNTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMTIKCS8vIHRoaXMud2VpZ2h0ZWRNb3ZpbmdBdmVyYWdlLnZhbHVlID0KCS8vICAgICAgICAgICAodGhpcy53ZWlnaHRlZE1vdmluZ0F2ZXJhZ2UudmFsdWUgKiAoKDEwMCBhcyB1aW50MTI4KSAtIGFscGhhKSkgLyAoMTAwIGFzIHVpbnQxMjgpICsKCS8vICAgICAgICAgICAoYXByICogYWxwaGEpIC8gKDEwMCBhcyB1aW50MTI4KQoJYnl0ZSAweDY1Nzc2ZDYxIC8vICJld21hIgoJZHVwCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWItCgliKgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0CgliLwoJZnJhbWVfZGlnIDMgLy8gYXByOiB1aW50MTI4CglmcmFtZV9kaWcgNCAvLyBhbHBoYTogdW5zYWZlIHVpbnQxMjgKCWIqCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKCWIvCgliKwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8gKHRoaXMud2VpZ2h0ZWRNb3ZpbmdBdmVyYWdlLnZhbHVlICogKCgxMDAgYXMgdWludDEyOCkgLSBhbHBoYSkpIC8gKDEwMCBhcyB1aW50MTI4KSArXG4gICAgICAgICAgKGFwciAqIGFscGhhKSAvICgxMDAgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoqaWY1MF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxOAoJLy8gdGhpcy5zZXRSb3VuZHNQZXJEYXkoKQoJY2FsbHN1YiBzZXRSb3VuZHNQZXJEYXkKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAxOQoJLy8gdGhpcy5zdGFrZUFjY3VtdWxhdG9yLnZhbHVlID0gKHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIGFzIHVpbnQxMjgpICogKHRoaXMucm91bmRzUGVyRGF5LnZhbHVlIGFzIHVpbnQxMjgpCglieXRlIDB4NzM3NDYxNmI2NTQxNjM2Mzc1NmQ3NTZjNjE3NDZmNzIgLy8gInN0YWtlQWNjdW11bGF0b3IiCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWIqCglkdXAKCWJpdGxlbgoJaW50IDEyOAoJPD0KCgkvLyAodGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgYXMgdWludDEyOCkgKiAodGhpcy5yb3VuZHNQZXJEYXkudmFsdWUgYXMgdWludDEyOCkgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS9zdGFraW5nUG9vbC5hbGdvLnRzOjEwMjAKCS8vIHRoaXMucmV3YXJkQWNjdW11bGF0b3IudmFsdWUgPSAwCglieXRlIDB4NzI2NTc3NjE3MjY0NDE2MzYzNzU2ZDc1NmM2MTc0NmY3MiAvLyAicmV3YXJkQWNjdW11bGF0b3IiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3N0YWtpbmdQb29sLmFsZ28udHM6MTAyMQoJLy8gdGhpcy5iaW5Sb3VuZFN0YXJ0LnZhbHVlID0gZ2xvYmFscy5yb3VuZCAtIChnbG9iYWxzLnJvdW5kICUgdGhpcy5yb3VuZHNQZXJEYXkudmFsdWUpCglieXRlIDB4NjI2OTZlNTI2Zjc1NmU2NDUzNzQ2MTcyNzQgLy8gImJpblJvdW5kU3RhcnQiCglnbG9iYWwgUm91bmQKCWdsb2JhbCBSb3VuZAoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJYXBwX2dsb2JhbF9nZXQKCSUKCS0KCWFwcF9nbG9iYWxfcHV0CgoqaWY0OF9lbmQ6CglyZXRzdWIKCi8vIHNldFJvdW5kc1BlckRheSgpOiB2b2lkCnNldFJvdW5kc1BlckRheToKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL3JldGkvc3Rha2luZ1Bvb2wuYWxnby50czoxMDI2CgkvLyB0aGlzLnJvdW5kc1BlckRheS52YWx1ZSA9IEFWR19ST1VORFNfUEVSX0RBWQoJYnl0ZSAweDcyNmY3NTZlNjQ3MzUwNjU3MjQ0NjE3OSAvLyAicm91bmRzUGVyRGF5IgoJcHVzaGludCAzMDg1NwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4NTllOTBhYTYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDMxNzJjYTlkIC8vIG1ldGhvZCAiZ2FzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDdjZmNjMDQgLy8gbWV0aG9kICJpbml0U3RvcmFnZShwYXkpdm9pZCIKCXB1c2hieXRlcyAweGY5YzcwY2JkIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJcHVzaGJ5dGVzIDB4NDIxYjVhYmUgLy8gbWV0aG9kICJyZW1vdmVTdGFrZShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjU4OTJkNTYgLy8gbWV0aG9kICJjbGFpbVRva2Vucygpdm9pZCIKCXB1c2hieXRlcyAweDVjZmJiMDU3IC8vIG1ldGhvZCAiZ2V0U3Rha2VySW5mbyhhZGRyZXNzKShhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg2M2YzZjI4YiAvLyBtZXRob2QgInBheVRva2VuUmV3YXJkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODZhMzcyNWMgLy8gbWV0aG9kICJ1cGRhdGVBbGdvZFZlcihzdHJpbmcpdm9pZCIKCXB1c2hieXRlcyAweGVmYzI2MDhkIC8vIG1ldGhvZCAiZXBvY2hCYWxhbmNlVXBkYXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDAwZTE0ZmIgLy8gbWV0aG9kICJnb09ubGluZShwYXksYnl0ZVtdLGJ5dGVbXSxieXRlW10sdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDUxZWYzYjIxIC8vIG1ldGhvZCAiZ29PZmZsaW5lKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTI0ZTI3MTcgLy8gbWV0aG9kICJsaW5rVG9ORkQodWludDY0LHN0cmluZyl2b2lkIgoJYnl0ZSAweDBjMjI0NWUxIC8vIG1ldGhvZCAicHJveGllZFNldFRva2VuUGF5b3V0UmF0aW8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0WzI0XSx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9nYXMgKmFiaV9yb3V0ZV9pbml0U3RvcmFnZSAqYWJpX3JvdXRlX2FkZFN0YWtlICphYmlfcm91dGVfcmVtb3ZlU3Rha2UgKmFiaV9yb3V0ZV9jbGFpbVRva2VucyAqYWJpX3JvdXRlX2dldFN0YWtlckluZm8gKmFiaV9yb3V0ZV9wYXlUb2tlblJld2FyZCAqYWJpX3JvdXRlX3VwZGF0ZUFsZ29kVmVyICphYmlfcm91dGVfZXBvY2hCYWxhbmNlVXBkYXRlICphYmlfcm91dGVfZ29PbmxpbmUgKmFiaV9yb3V0ZV9nb09mZmxpbmUgKmFiaV9yb3V0ZV9saW5rVG9ORkQgKmFiaV9yb3V0ZV9wcm94aWVkU2V0VG9rZW5QYXlvdXRSYXRpbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKmNhbGxfVXBkYXRlQXBwbGljYXRpb246CglwdXNoYnl0ZXMgMHg0NmY3NjUzMyAvLyBtZXRob2QgInVwZGF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIFVwZGF0ZUFwcGxpY2F0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/examples/reti/artifacts/StakingPool.src_map.json b/examples/reti/artifacts/StakingPool.src_map.json index ee9469297..3a8b57224 100644 --- a/examples/reti/artifacts/StakingPool.src_map.json +++ b/examples/reti/artifacts/StakingPool.src_map.json @@ -1,18922 +1,20421 @@ [ { "teal": 1, - "source": 38, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293 - ] + "source": "examples/reti/stakingPool.algo.ts:38" }, { - "teal": 9, - "source": 38, - "pc": [ - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327 - ] + "teal": 2, + "source": "examples/reti/stakingPool.algo.ts:38" }, { - "teal": 10, - "source": 38, - "pc": [ - 328, - 329 - ] + "teal": 3, + "source": "examples/reti/stakingPool.algo.ts:38" }, { "teal": 11, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 330, - 331 + 1 ] }, { "teal": 12, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 332 + 2 ] }, { - "teal": 13, - "source": 38, + "teal": 19, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 333, - 334 + 3, + 4 ] }, { "teal": 20, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 335, - 336 + 5 ] }, { "teal": 21, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 337 + 6, + 7 ] }, { "teal": 22, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 338 + 8 ] }, { "teal": 23, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 339 + 9, + 10 ] }, { "teal": 24, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 340, - 341 + 11 ] }, { "teal": 25, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 342 + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 ] }, { - "teal": 26, - "source": 38, + "teal": 29, + "source": "examples/reti/stakingPool.algo.ts:38", + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368 + 38 ] }, { - "teal": 30, - "source": 38, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "teal": 34, + "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 369 + 39, + 40, + 41 ] }, { "teal": 35, - "source": 93, + "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 370, - 371, - 372 + 42, + 43 ] }, { "teal": 36, - "source": 93, + "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 373 + 44 ] }, { - "teal": 37, - "source": 93, + "teal": 40, + "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 374 + 45, + 46, + 47 ] }, { - "teal": 41, - "source": 93, + "teal": 47, + "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 375, - 376, - 377 + 48, + 49 ] }, { "teal": 48, - "source": 95, + "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 378, - 379 + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83 ] }, { "teal": 49, - "source": 95, + "source": "examples/reti/stakingPool.algo.ts:95", "pc": [ - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413 + 84 ] }, { - "teal": 50, - "source": 95, + "teal": 52, + "source": "examples/reti/stakingPool.algo.ts:94", + "errorMessage": "Temporary: contract is upgradeable but only during testing and only from a development account", "pc": [ - 414 + 85 ] }, { "teal": 53, - "source": 94, - "errorMessage": "Temporary: contract is upgradeable but only during testing and only from a development account", + "source": "examples/reti/stakingPool.algo.ts:93", "pc": [ - 415 + 86 ] }, { - "teal": 54, - "source": 93, + "teal": 58, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 416 + 87, + 88, + 89 ] }, { "teal": 59, - "source": 107, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 417, - 418, - 419 + 90 ] }, { - "teal": 60, - "source": 107, + "teal": 62, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 420 + 91, + 92, + 93 ] }, { "teal": 63, - "source": 107, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 421, - 422, - 423 + 94 ] }, { - "teal": 64, - "source": 107, + "teal": 66, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 424 + 95, + 96, + 97 ] }, { "teal": 67, - "source": 107, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 425, - 426, - 427 + 98 ] }, { - "teal": 68, - "source": 107, + "teal": 70, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 428 + 99, + 100, + 101 ] }, { "teal": 71, - "source": 107, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 429, - 430, - 431 + 102 ] }, { - "teal": 72, - "source": 107, + "teal": 74, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 432 + 103, + 104, + 105 ] }, { "teal": 75, - "source": 107, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 433, - 434, - 435 + 106, + 107 ] }, { "teal": 76, - "source": 107, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 436 + 108 ] }, { - "teal": 77, - "source": 107, + "teal": 86, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 437 + 109, + 110, + 111 ] }, { - "teal": 87, - "source": 107, + "teal": 91, + "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 438, - 439, - 440 + 112, + 113 ] }, { "teal": 92, - "source": 108, + "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 441, - 442 + 114, + 115 ] }, { "teal": 93, - "source": 108, + "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 443 + 116 ] }, { "teal": 94, - "source": 108, + "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 444 + 117, + 118, + 119 ] }, { - "teal": 95, - "source": 108, + "teal": 99, + "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 445, - 446, - 447 + 120, + 121 ] }, { "teal": 100, - "source": 110, + "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 448, - 449 + 122, + 123 ] }, { "teal": 101, - "source": 110, + "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 450 + 124 ] }, { "teal": 102, - "source": 110, + "source": "examples/reti/stakingPool.algo.ts:110", "pc": [ - 451 + 125 ] }, { - "teal": 103, - "source": 110, + "teal": 106, + "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 452 + 126, + 127 ] }, { "teal": 107, - "source": 111, + "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 453, - 454 + 128, + 129 ] }, { "teal": 108, - "source": 111, + "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 455 + 130 ] }, { "teal": 109, - "source": 111, + "source": "examples/reti/stakingPool.algo.ts:111", "pc": [ - 456 + 131 ] }, { "teal": 110, - "source": 111, + "source": "examples/reti/stakingPool.algo.ts:108", "pc": [ - 457 + 132, + 133, + 134 ] }, { - "teal": 111, - "source": 108, + "teal": 115, + "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 458, - 459, - 460 + 135, + 136 ] }, { "teal": 116, - "source": 113, + "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 461, - 462 + 137, + 138 ] }, { "teal": 117, - "source": 113, + "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 463 + 139 ] }, { "teal": 118, - "source": 113, + "source": "examples/reti/stakingPool.algo.ts:113", "pc": [ - 464 + 140 ] }, { - "teal": 119, - "source": 113, + "teal": 122, + "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 465 + 141, + 142 ] }, { "teal": 123, - "source": 114, + "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 466, - 467 + 143, + 144 ] }, { "teal": 124, - "source": 114, + "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 468 + 145 ] }, { "teal": 125, - "source": 114, + "source": "examples/reti/stakingPool.algo.ts:114", "pc": [ - 469 + 146 ] }, { - "teal": 126, - "source": 114, + "teal": 130, + "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 470 + 147, + 148 ] }, { "teal": 131, - "source": 116, + "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 471, - 472 + 149, + 150, + 151, + 152 ] }, { "teal": 132, - "source": 116, + "source": "examples/reti/stakingPool.algo.ts:116", "pc": [ - 473, - 474 + 153 ] }, { - "teal": 133, - "source": 116, + "teal": 135, + "source": "examples/reti/stakingPool.algo.ts:116", + "errorMessage": "staking pool must have minimum entry of 1 algo", "pc": [ - 475 + 154 ] }, { - "teal": 136, - "source": 116, - "errorMessage": "staking pool must have minimum entry of 1 algo", + "teal": 139, + "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 476 + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166 ] }, { "teal": 140, - "source": 117, + "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 477 + 167, + 168 ] }, { "teal": 141, - "source": 117, + "source": "examples/reti/stakingPool.algo.ts:117", "pc": [ - 478, - 479 + 169 ] }, { - "teal": 142, - "source": 117, + "teal": 145, + "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 480 + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182 ] }, { "teal": 146, - "source": 118, + "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 481 + 183, + 184 ] }, { "teal": 147, - "source": 118, + "source": "examples/reti/stakingPool.algo.ts:118", "pc": [ - 482, - 483 + 185 ] }, { - "teal": 148, - "source": 118, + "teal": 151, + "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 484 + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193 ] }, { "teal": 152, - "source": 119, + "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 485 + 194, + 195 ] }, { "teal": 153, - "source": 119, + "source": "examples/reti/stakingPool.algo.ts:119", "pc": [ - 486, - 487 + 196 ] }, { - "teal": 154, - "source": 119, + "teal": 157, + "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 488 + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208 ] }, { "teal": 158, - "source": 120, + "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 489, - 490 + 209, + 210 ] }, { "teal": 159, - "source": 120, + "source": "examples/reti/stakingPool.algo.ts:120", "pc": [ - 491 + 211 ] }, { - "teal": 160, - "source": 120, + "teal": 163, + "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 492 + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219 ] }, { "teal": 164, - "source": 121, + "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 493, - 494 + 220, + 221 ] }, { "teal": 165, - "source": 121, + "source": "examples/reti/stakingPool.algo.ts:121", "pc": [ - 495 + 222 ] }, { - "teal": 166, - "source": 121, + "teal": 169, + "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 496 + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237 ] }, { "teal": 170, - "source": 122, + "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 497, - 498 + 238, + 239 ] }, { "teal": 171, - "source": 122, + "source": "examples/reti/stakingPool.algo.ts:122", "pc": [ - 499, - 500 + 240 ] }, { - "teal": 172, - "source": 122, + "teal": 175, + "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 501 + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252 ] }, { "teal": 176, - "source": 123, + "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 502, - 503 + 253, + 254 ] }, { "teal": 177, - "source": 123, + "source": "examples/reti/stakingPool.algo.ts:123", "pc": [ - 504, - 505 + 255 ] }, { - "teal": 178, - "source": 123, + "teal": 181, + "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 506 + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268 ] }, { "teal": 182, - "source": 124, + "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 507, - 508 + 269, + 270 ] }, { "teal": 183, - "source": 124, + "source": "examples/reti/stakingPool.algo.ts:124", "pc": [ - 509 + 271 ] }, { - "teal": 184, - "source": 124, + "teal": 187, + "source": "examples/reti/stakingPool.algo.ts:126", "pc": [ - 510 + 272, + 273, + 274 ] }, { - "teal": 188, - "source": 126, + "teal": 191, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 511, - 512, - 513 + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289 ] }, { "teal": 192, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 514, - 515 + 290, + 291 ] }, { "teal": 193, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 516, - 517 + 292, + 293 ] }, { "teal": 194, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 518, - 519 + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307 ] }, { "teal": 195, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 520, - 521 + 308 ] }, { "teal": 196, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 522 + 309 ] }, { "teal": 197, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 523 + 310 ] }, { "teal": 198, - "source": 127, + "source": "examples/reti/stakingPool.algo.ts:127", "pc": [ - 524 + 311 ] }, { - "teal": 199, - "source": 127, + "teal": 202, + "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 525 + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329 ] }, { "teal": 203, - "source": 128, + "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 526, - 527 + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347 ] }, { "teal": 204, - "source": 128, + "source": "examples/reti/stakingPool.algo.ts:128", "pc": [ - 528, - 529 + 348 ] }, { - "teal": 205, - "source": 128, + "teal": 208, + "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 530 + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367 ] }, { "teal": 209, - "source": 129, + "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 531, - 532 + 368, + 369 ] }, { "teal": 210, - "source": 129, + "source": "examples/reti/stakingPool.algo.ts:129", "pc": [ - 533 + 370 ] }, { - "teal": 211, - "source": 129, + "teal": 214, + "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 534 + 371, + 372, + 373, + 374, + 375, + 376 ] }, { "teal": 215, - "source": 130, + "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 535, - 536 + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394 ] }, { "teal": 216, - "source": 130, + "source": "examples/reti/stakingPool.algo.ts:130", "pc": [ - 537, - 538 + 395 ] }, { "teal": 217, - "source": 130, + "source": "examples/reti/stakingPool.algo.ts:107", "pc": [ - 539 + 396 ] }, { - "teal": 218, - "source": 107, + "teal": 222, + "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 540 + 397, + 398, + 399 ] }, { "teal": 223, - "source": 136, + "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 541, - 542, - 543 + 400, + 401 ] }, { "teal": 224, - "source": 136, + "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 544 + 402 ] }, { - "teal": 225, - "source": 136, + "teal": 230, + "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 545 + 403, + 404, + 405 ] }, { "teal": 231, - "source": 136, + "source": "examples/reti/stakingPool.algo.ts:136", "pc": [ - 546, - 547, - 548 + 406 ] }, { - "teal": 232, - "source": 136, + "teal": 235, + "source": "examples/reti/stakingPool.algo.ts:138", "pc": [ - 549 + 407, + 408, + 409 ] }, { - "teal": 236, - "source": 138, + "teal": 239, + "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 550, - 551, - 552 + 410, + 411, + 412 ] }, { "teal": 240, - "source": 142, + "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 553, - 554, - 555 + 413, + 414 ] }, { "teal": 241, - "source": 142, + "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 556, - 557 + 415, + 416, + 417 ] }, { "teal": 242, - "source": 142, + "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 558, - 559 + 418 ] }, { "teal": 243, - "source": 142, + "source": "examples/reti/stakingPool.algo.ts:142", "pc": [ - 560 + 419 ] }, { "teal": 244, - "source": 142, + "source": "examples/reti/stakingPool.algo.ts:138", "pc": [ - 561 + 420 ] }, { - "teal": 245, - "source": 138, + "teal": 249, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 562 + 421, + 422 ] }, { "teal": 250, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 563, - 564 + 423, + 424 ] }, { "teal": 251, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 565 + 425 ] }, { "teal": 252, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 566 + 426 ] }, { "teal": 253, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 567 + 427, + 428 ] }, { "teal": 254, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 568, - 569 + 429, + 430 ] }, { "teal": 255, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 570 + 431 ] }, { - "teal": 256, - "source": 152, + "teal": 258, + "source": "examples/reti/stakingPool.algo.ts:152", + "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", "pc": [ - 571 + 432 ] }, { - "teal": 259, - "source": 152, - "errorMessage": "argument 0 (mbrPayment) for initStorage must be a pay transaction", + "teal": 261, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 572 + 433, + 434, + 435 ] }, { "teal": 262, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 573, - 574, - 575 + 436, + 437 ] }, { "teal": 263, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 576 + 438 ] }, { - "teal": 264, - "source": 152, + "teal": 273, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 577 + 439, + 440, + 441 ] }, { - "teal": 274, - "source": 152, + "teal": 276, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 578, - 579, - 580 + 442, + 443 ] }, { "teal": 277, - "source": 152, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 581, - 582 + 444, + 445 ] }, { - "teal": 278, - "source": 152, + "teal": 281, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 583, - 584 + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454 ] }, { "teal": 282, - "source": 153, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 585 + 455 ] }, { "teal": 283, - "source": 153, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 586 + 456 ] }, { "teal": 284, - "source": 153, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 587 + 457 ] }, { "teal": 285, - "source": 153, + "source": "examples/reti/stakingPool.algo.ts:153", "pc": [ - 588 + 458 ] }, { - "teal": 286, - "source": 153, + "teal": 288, + "source": "examples/reti/stakingPool.algo.ts:153", + "errorMessage": "staking pool already initialized", "pc": [ - 589 + 459 ] }, { - "teal": 289, - "source": 153, - "errorMessage": "staking pool already initialized", + "teal": 295, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 590 + 460 ] }, { "teal": 296, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 591 + 461, + 462 ] }, { "teal": 297, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 592 + 463, + 464 ] }, { "teal": 298, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 593, - 594 + 465, + 466, + 467, + 468, + 469, + 470 ] }, { "teal": 299, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 595, - 596 + 471, + 472 ] }, { - "teal": 300, - "source": 156, + "teal": 303, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ - 597, - 598 + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484 ] }, { "teal": 304, - "source": 157, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ - 599 + 485 ] }, { "teal": 305, - "source": 157, + "source": "examples/reti/stakingPool.algo.ts:157", "pc": [ - 600 + 486, + 487 ] }, { - "teal": 306, - "source": 157, + "teal": 309, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ - 601, - 602 + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500 ] }, { "teal": 310, - "source": 158, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ - 603 + 501 ] }, { "teal": 311, - "source": 158, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ - 604 + 502 ] }, { "teal": 312, - "source": 158, + "source": "examples/reti/stakingPool.algo.ts:158", "pc": [ - 605 + 503, + 504 ] }, { - "teal": 313, - "source": 158, + "teal": 315, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 606, - 607 + 505, + 506 ] }, { "teal": 316, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 608 + 507, + 508 ] }, { - "teal": 317, - "source": 156, + "teal": 319, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 609, - 610 + 509 ] }, { "teal": 320, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 611 + 510, + 511 ] }, { "teal": 321, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 612, - 613 + 512, + 513 ] }, { "teal": 322, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 614 + 514 ] }, { "teal": 323, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 615 + 515, + 516 ] }, { "teal": 324, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 616, - 617 + 517, + 518, + 519 ] }, { "teal": 325, - "source": 156, + "source": "examples/reti/stakingPool.algo.ts:156", "pc": [ - 618, - 619, - 620 + 520, + 521 ] }, { - "teal": 326, - "source": 156, + "teal": 329, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 621, - 622 + 522, + 523 ] }, { "teal": 330, - "source": 160, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 623, - 624 + 524, + 525, + 526 ] }, { "teal": 331, - "source": 160, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 625, - 626, - 627 + 527 ] }, { "teal": 332, - "source": 160, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 628 + 528, + 529 ] }, { "teal": 333, - "source": 160, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 629 + 530 ] }, { "teal": 334, - "source": 160, + "source": "examples/reti/stakingPool.algo.ts:160", "pc": [ - 630 + 531, + 532 ] }, { - "teal": 335, - "source": 160, + "teal": 338, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 631, - 632 + 533, + 534 ] }, { "teal": 339, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 633, - 634 + 535 ] }, { "teal": 340, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 635 + 536, + 537, + 538 ] }, { "teal": 341, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 636, - 637, - 638 + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546 ] }, { "teal": 342, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 639 + 547 ] }, { "teal": 343, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 640 + 548, + 549 ] }, { "teal": 344, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 641 + 550 ] }, { "teal": 345, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 642 + 551 ] }, { - "teal": 346, - "source": 161, + "teal": 348, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 643 + 552, + 553, + 554 ] }, { "teal": 349, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 644, - 645, - 646 + 555, + 556, + 557, + 558 ] }, { "teal": 350, - "source": 161, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 647, - 648 + 559, + 560, + 561 ] }, { - "teal": 351, - "source": 161, + "teal": 353, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 649, - 650, - 651 + 562, + 563 ] }, { - "teal": 354, - "source": 161, + "teal": 356, + "source": "examples/reti/stakingPool.algo.ts:161", "pc": [ - 652 + 564, + 565 ] }, { - "teal": 357, - "source": 161, + "teal": 363, + "source": "examples/reti/stakingPool.algo.ts:163", "pc": [ - 653, - 654 + 566, + 567, + 568, + 569 ] }, { "teal": 364, - "source": 163, + "source": "examples/reti/stakingPool.algo.ts:164", "pc": [ - 655, - 656 + 570, + 571 ] }, { "teal": 365, - "source": 164, + "source": "examples/reti/stakingPool.algo.ts:163", "pc": [ - 657, - 658 + 572 ] }, { "teal": 366, - "source": 163, + "source": "examples/reti/stakingPool.algo.ts:165", "pc": [ - 659 + 573, + 574, + 575 ] }, { "teal": 367, - "source": 165, + "source": "examples/reti/stakingPool.algo.ts:165", "pc": [ - 660, - 661, - 662 + 576, + 577, + 578 ] }, { "teal": 368, - "source": 165, + "source": "examples/reti/stakingPool.algo.ts:164", "pc": [ - 663, - 664, - 665 + 579 ] }, { "teal": 369, - "source": 164, + "source": "examples/reti/stakingPool.algo.ts:162", "pc": [ - 666 + 580, + 581 ] }, { - "teal": 370, - "source": 162, + "teal": 374, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 667, - 668 + 582, + 583 ] }, { "teal": 375, - "source": 168, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 669, - 670 + 584, + 585 ] }, { "teal": 376, - "source": 168, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 671, - 672 + 586, + 587 ] }, { "teal": 377, - "source": 168, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 673, - 674 + 588 ] }, { - "teal": 378, - "source": 168, + "teal": 380, + "source": "examples/reti/stakingPool.algo.ts:168", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 675 + 589 ] }, { - "teal": 381, - "source": 168, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 383, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 676 + 590, + 591 ] }, { "teal": 384, - "source": 168, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 677, - 678 + 592, + 593 ] }, { "teal": 385, - "source": 168, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 679, - 680 + 594, + 595 ] }, { "teal": 386, - "source": 168, + "source": "examples/reti/stakingPool.algo.ts:168", "pc": [ - 681, - 682 + 596 ] }, { - "teal": 387, - "source": 168, + "teal": 389, + "source": "examples/reti/stakingPool.algo.ts:168", + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", "pc": [ - 683 + 597 ] }, { - "teal": 390, - "source": 168, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"PoolInitMbr\"}", + "teal": 393, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 684 + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606 ] }, { "teal": 394, - "source": 169, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 685 + 607, + 608, + 609 ] }, { "teal": 395, - "source": 169, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 686, - 687, - 688 + 610 ] }, { "teal": 396, - "source": 169, + "source": "examples/reti/stakingPool.algo.ts:169", "pc": [ - 689 + 611 ] }, { - "teal": 397, - "source": 169, + "teal": 401, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 690 + 612, + 613 ] }, { "teal": 402, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 691, - 692 + 614 ] }, { "teal": 403, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 693 + 615, + 616, + 617 ] }, { "teal": 404, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 694, - 695, - 696 + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625 ] }, { "teal": 405, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 697 + 626 ] }, { "teal": 406, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 698 + 627, + 628 ] }, { "teal": 407, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 699 + 629 ] }, { "teal": 408, - "source": 171, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 700 + 630 ] }, { - "teal": 409, - "source": 171, + "teal": 411, + "source": "examples/reti/stakingPool.algo.ts:171", "pc": [ - 701 + 631, + 632, + 633 ] }, { - "teal": 412, - "source": 171, + "teal": 420, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 702, - 703, - 704 + 634 ] }, { "teal": 421, - "source": 173, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 705 + 635, + 636 ] }, { "teal": 422, - "source": 173, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 706, - 707 + 637, + 638 ] }, { - "teal": 423, - "source": 173, + "teal": 426, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ - 708, - 709 + 639, + 640 ] }, { "teal": 427, - "source": 174, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ - 710, - 711 + 641, + 642, + 643 ] }, { "teal": 428, - "source": 174, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ - 712, - 713, - 714 + 644 ] }, { "teal": 429, - "source": 174, + "source": "examples/reti/stakingPool.algo.ts:174", "pc": [ - 715 + 645, + 646 ] }, { - "teal": 430, - "source": 174, + "teal": 433, + "source": "examples/reti/stakingPool.algo.ts:175", "pc": [ - 716, - 717 + 647, + 648 ] }, { "teal": 434, - "source": 175, + "source": "examples/reti/stakingPool.algo.ts:175", "pc": [ - 718, - 719 + 649, + 650 ] }, { - "teal": 435, - "source": 175, + "teal": 438, + "source": "examples/reti/stakingPool.algo.ts:176", "pc": [ - 720, - 721 + 651, + 652 ] }, { "teal": 439, - "source": 176, + "source": "examples/reti/stakingPool.algo.ts:176", "pc": [ - 722 + 653, + 654 ] }, { - "teal": 440, - "source": 176, + "teal": 442, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 723, - 724 + 655, + 656 ] }, { "teal": 443, - "source": 173, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 725 + 657, + 658 ] }, { - "teal": 444, - "source": 173, + "teal": 446, + "source": "examples/reti/stakingPool.algo.ts:173", "pc": [ - 726, - 727 + 659 ] }, { - "teal": 447, - "source": 173, + "teal": 449, + "source": "examples/reti/stakingPool.algo.ts:152", "pc": [ - 728 + 660 ] }, { - "teal": 450, - "source": 152, + "teal": 454, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 729 + 661, + 662, + 663, + 664, + 665, + 666 ] }, { - "teal": 455, - "source": 191, + "teal": 457, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 730, - 731 + 667, + 668, + 669 ] }, { "teal": 458, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 732, - 733, - 734 + 670 ] }, { "teal": 459, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 735 + 671 ] }, { "teal": 460, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 736 + 672, + 673 ] }, { "teal": 461, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 737, - 738 + 674 ] }, { - "teal": 462, - "source": 191, + "teal": 464, + "source": "examples/reti/stakingPool.algo.ts:191", + "errorMessage": "argument 0 (staker) for addStake must be a address", "pc": [ - 739 + 675 ] }, { - "teal": 465, - "source": 191, - "errorMessage": "argument 0 (staker) for addStake must be a address", + "teal": 467, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 740 + 676, + 677 ] }, { "teal": 468, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 741, - 742 + 678, + 679 ] }, { "teal": 469, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 743 + 680 ] }, { "teal": 470, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 744 + 681 ] }, { "teal": 471, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 745 + 682, + 683 ] }, { "teal": 472, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 746, - 747 + 684, + 685 ] }, { "teal": 473, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 748 + 686 ] }, { - "teal": 474, - "source": 191, + "teal": 476, + "source": "examples/reti/stakingPool.algo.ts:191", + "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 749 + 687 ] }, { - "teal": 477, - "source": 191, - "errorMessage": "argument 1 (stakedAmountPayment) for addStake must be a pay transaction", + "teal": 479, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 750 + 688, + 689, + 690 ] }, { "teal": 480, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 751, - 752, - 753 + 691 ] }, { "teal": 481, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 754 + 692 ] }, { "teal": 482, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 755 + 693 ] }, { "teal": 483, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 756 + 694, + 695 ] }, { "teal": 484, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 757 + 696 ] }, { - "teal": 485, - "source": 191, + "teal": 497, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 758 + 697, + 698, + 699 ] }, { - "teal": 498, - "source": 191, + "teal": 500, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 759, - 760, - 761 + 700, + 701 ] }, { "teal": 501, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 762, - 763 + 702, + 703 ] }, { - "teal": 502, - "source": 191, + "teal": 505, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 764, - 765 + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712 ] }, { "teal": 506, - "source": 192, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 766 + 713 ] }, { "teal": 507, - "source": 192, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 767 + 714 ] }, { "teal": 508, - "source": 192, + "source": "examples/reti/stakingPool.algo.ts:192", "pc": [ - 768 + 715 ] }, { - "teal": 509, - "source": 192, + "teal": 511, + "source": "examples/reti/stakingPool.algo.ts:192", + "errorMessage": "staking pool must be initialized first", "pc": [ - 769 + 716 ] }, { - "teal": 512, - "source": 192, - "errorMessage": "staking pool must be initialized first", + "teal": 518, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ - 770 + 717, + 718 ] }, { "teal": 519, - "source": 196, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ - 771, - 772 + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730 ] }, { "teal": 520, - "source": 196, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ - 773 + 731 ] }, { "teal": 521, - "source": 196, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ - 774 + 732, + 733 ] }, { "teal": 522, - "source": 196, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ - 775, - 776 + 734 ] }, { "teal": 523, - "source": 196, + "source": "examples/reti/stakingPool.algo.ts:196", "pc": [ - 777 + 735 ] }, { - "teal": 524, - "source": 196, + "teal": 526, + "source": "examples/reti/stakingPool.algo.ts:195", + "errorMessage": "stake can only be added via the validator contract", "pc": [ - 778 + 736 ] }, { - "teal": 527, - "source": 195, - "errorMessage": "stake can only be added via the validator contract", + "teal": 530, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 779 + 737, + 738 ] }, { "teal": 531, - "source": 199, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 780, - 781 + 739, + 740 ] }, { "teal": 532, - "source": 199, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 782, - 783 + 741 ] }, { "teal": 533, - "source": 199, + "source": "examples/reti/stakingPool.algo.ts:199", "pc": [ - 784 + 742 ] }, { - "teal": 534, - "source": 199, + "teal": 537, + "source": "examples/reti/stakingPool.algo.ts:202", "pc": [ - 785 + 743, + 744, + 745 ] }, { - "teal": 538, - "source": 202, + "teal": 546, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 786, - 787, - 788 + 746, + 747 ] }, { "teal": 547, - "source": 206, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 789, - 790 + 748, + 749 ] }, { "teal": 548, - "source": 207, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 791, - 792 + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761 ] }, { "teal": 549, - "source": 207, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 793 + 762 ] }, { "teal": 550, - "source": 207, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 794 + 763, + 764 ] }, { "teal": 551, - "source": 207, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 795, - 796 + 765 ] }, { "teal": 552, - "source": 207, + "source": "examples/reti/stakingPool.algo.ts:207", "pc": [ - 797 + 766 ] }, { - "teal": 553, - "source": 207, + "teal": 555, + "source": "examples/reti/stakingPool.algo.ts:207", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", "pc": [ - 798 + 767 ] }, { - "teal": 556, - "source": 207, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"AppID.fromUint64(this.creatingValidatorContractAppId.value).address\"}", + "teal": 558, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 799 + 768, + 769 ] }, { "teal": 559, - "source": 206, + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ - 800, - 801 + 770, + 771 ] }, { "teal": 560, - "source": 208, + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ - 802, - 803 + 772, + 773 ] }, { "teal": 561, - "source": 208, + "source": "examples/reti/stakingPool.algo.ts:208", "pc": [ - 804, - 805 + 774 ] }, { - "teal": 562, - "source": 208, + "teal": 564, + "source": "examples/reti/stakingPool.algo.ts:208", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 806 + 775 ] }, { - "teal": 565, - "source": 208, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 567, + "source": "examples/reti/stakingPool.algo.ts:206", "pc": [ - 807 + 776, + 777 ] }, { "teal": 568, - "source": 206, + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ - 808, - 809 + 778, + 779 ] }, { "teal": 569, - "source": 209, + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ - 810, - 811 + 780, + 781 ] }, { "teal": 570, - "source": 209, + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ - 812, - 813 + 782, + 783 ] }, { "teal": 571, - "source": 209, + "source": "examples/reti/stakingPool.algo.ts:209", "pc": [ - 814, - 815 + 784 ] }, { - "teal": 572, - "source": 209, + "teal": 574, + "source": "examples/reti/stakingPool.algo.ts:209", + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", "pc": [ - 816 + 785 ] }, { - "teal": 575, - "source": 209, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"amount\",\"expected\":\"stakedAmountPayment.amount\"}", + "teal": 578, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 817 + 786, + 787 ] }, { "teal": 579, - "source": 215, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 818, - 819 + 788, + 789, + 790 ] }, { "teal": 580, - "source": 215, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 820, - 821, - 822 + 791 ] }, { "teal": 581, - "source": 215, + "source": "examples/reti/stakingPool.algo.ts:215", "pc": [ - 823 + 792, + 793 ] }, { - "teal": 582, - "source": 215, + "teal": 585, + "source": "examples/reti/stakingPool.algo.ts:216", "pc": [ - 824, - 825 + 794, + 795 ] }, { "teal": 586, - "source": 216, + "source": "examples/reti/stakingPool.algo.ts:216", "pc": [ - 826 + 796, + 797 ] }, { - "teal": 587, - "source": 216, + "teal": 590, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 827, - 828 + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805 ] }, { "teal": 591, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 829, - 830 + 806 ] }, { "teal": 592, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 831 + 807, + 808 ] }, { "teal": 593, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 832, - 833 + 809, + 810 ] }, { "teal": 594, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 834, - 835 + 811 ] }, { "teal": 595, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 836 + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819 ] }, { "teal": 596, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 837, - 838 + 820 ] }, { "teal": 597, - "source": 218, + "source": "examples/reti/stakingPool.algo.ts:218", "pc": [ - 839 + 821 ] }, { - "teal": 598, - "source": 218, + "teal": 601, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 840 + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836 ] }, { "teal": 602, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 841, - 842 + 837 ] }, { "teal": 603, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 843 + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851 ] }, { "teal": 604, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 844, - 845 + 852 ] }, { "teal": 605, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 846 + 853 ] }, { "teal": 606, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 847 + 854, + 855 ] }, { "teal": 607, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 848, - 849 + 856 ] }, { "teal": 608, - "source": 220, + "source": "examples/reti/stakingPool.algo.ts:220", "pc": [ - 850 + 857, + 858 ] }, { - "teal": 609, - "source": 220, + "teal": 613, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 851, - 852 + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876 ] }, { "teal": 614, - "source": 221, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 853, - 854 + 877 ] }, { "teal": 615, - "source": 221, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 855 + 878 ] }, { "teal": 616, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 856 + 879, + 880 ] }, { "teal": 617, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 857, - 858 + 881, + 882 ] }, { "teal": 618, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 859, - 860 + 883 ] }, { "teal": 619, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 861 + 884, + 885 ] }, { "teal": 620, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 862, - 863 + 886 ] }, { "teal": 621, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 864 + 887 ] }, { "teal": 622, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 865 + 888 ] }, { "teal": 623, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 866 + 889 ] }, { "teal": 624, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 867 + 890 ] }, { "teal": 625, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 868 + 891, + 892, + 893 ] }, { "teal": 626, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 869, - 870 + 894 ] }, { - "teal": 627, - "source": 222, + "teal": 629, + "source": "examples/reti/stakingPool.algo.ts:222", + "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ - 871 + 895 ] }, { "teal": 630, - "source": 222, - "errorMessage": "this.stakeAccumulator.value + (stakedAmountPayment.amount as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 872 + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913 ] }, { "teal": 631, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 873, - 874 + 914 ] }, { "teal": 632, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 875 + 915 ] }, { "teal": 633, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 876 + 916 ] }, { "teal": 634, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 877 + 917 ] }, { "teal": 635, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 878 + 918, + 919 ] }, { "teal": 636, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 879, - 880 + 920 ] }, { "teal": 637, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 881 + 921 ] }, { "teal": 638, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:222", "pc": [ - 882 + 922 ] }, { "teal": 639, - "source": 222, + "source": "examples/reti/stakingPool.algo.ts:221", "pc": [ - 883 + 923 ] }, { - "teal": 640, - "source": 221, + "teal": 643, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 884 + 924, + 925 ] }, { "teal": 644, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 885 + 926, + 927 ] }, { - "teal": 645, - "source": 225, + "teal": 649, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 886, - 887 + 928, + 929 ] }, { "teal": 650, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 888, - 889 + 930, + 931, + 932 ] }, { "teal": 651, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 890, - 891 + 933 ] }, { "teal": 652, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 892 + 934, + 935, + 936 ] }, { - "teal": 653, - "source": 225, + "teal": 657, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 893, - 894, - 895 + 937, + 938 ] }, { "teal": 658, - "source": 226, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 896, - 897 + 939, + 940, + 941 ] }, { "teal": 659, - "source": 226, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 898, - 899 + 942 ] }, { "teal": 660, - "source": 226, + "source": "examples/reti/stakingPool.algo.ts:226", "pc": [ - 900 + 943, + 944, + 945 ] }, { - "teal": 661, - "source": 226, + "teal": 665, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 901, - 902, - 903 + 946 ] }, { "teal": 666, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 904 + 947, + 948 ] }, { "teal": 667, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 905 + 949, + 950 ] }, { "teal": 668, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 906, - 907 + 951, + 952 ] }, { "teal": 669, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 908 + 953, + 954 ] }, { "teal": 670, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 909, - 910 + 955, + 956, + 957, + 958, + 959 ] }, { "teal": 671, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 911, - 912 + 960 ] }, { "teal": 672, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 913 + 961, + 962 ] }, { "teal": 673, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 914, - 915 + 963, + 964 ] }, { "teal": 674, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 916, - 917 + 965, + 966 ] }, { "teal": 675, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 918, - 919 + 967, + 968 ] }, { "teal": 676, - "source": 227, + "source": "examples/reti/stakingPool.algo.ts:227", "pc": [ - 920, - 921 + 969 ] }, { - "teal": 677, - "source": 227, + "teal": 681, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 922 + 970, + 971 ] }, { "teal": 682, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 923, - 924 + 972, + 973 ] }, { "teal": 683, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 925 + 974 ] }, { "teal": 684, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 926 + 975, + 976 ] }, { "teal": 685, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 927 + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985 ] }, { "teal": 686, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 928 + 986, + 987 ] }, { "teal": 687, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 929, - 930 + 988 ] }, { "teal": 688, - "source": 229, + "source": "examples/reti/stakingPool.algo.ts:229", "pc": [ - 931 + 989, + 990 ] }, { - "teal": 689, - "source": 229, + "teal": 693, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 932, - 933 + 991, + 992 ] }, { "teal": 694, - "source": 230, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 934, - 935 + 993, + 994, + 995 ] }, { "teal": 695, - "source": 230, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 936, - 937, - 938 + 996, + 997 ] }, { "teal": 696, - "source": 230, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 939, - 940 + 998 ] }, { "teal": 697, - "source": 230, + "source": "examples/reti/stakingPool.algo.ts:230", "pc": [ - 941 + 999, + 1000, + 1001 ] }, { - "teal": 698, - "source": 230, + "teal": 702, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 942, - 943, - 944 + 1002, + 1003 ] }, { "teal": 703, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 945, - 946 + 1004, + 1005 ] }, { "teal": 704, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 947, - 948 + 1006, + 1007 ] }, { "teal": 705, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 949, - 950 + 1008, + 1009, + 1010 ] }, { "teal": 706, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 951, - 952, - 953 + 1011 ] }, { "teal": 707, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 954 + 1012, + 1013 ] }, { "teal": 708, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 955, - 956 + 1014, + 1015 ] }, { "teal": 709, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 957, - 958 + 1016 ] }, { "teal": 710, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 959 + 1017 ] }, { "teal": 711, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 960 + 1018 ] }, { "teal": 712, - "source": 232, + "source": "examples/reti/stakingPool.algo.ts:232", "pc": [ - 961 + 1019, + 1020 ] }, { - "teal": 713, - "source": 232, + "teal": 716, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 962, - 963 + 1021, + 1022 ] }, { "teal": 717, - "source": 233, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 964, - 965 + 1023, + 1024 ] }, { "teal": 718, - "source": 233, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 966, - 967 + 1025, + 1026 ] }, { "teal": 719, - "source": 233, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 968, - 969 + 1027 ] }, { "teal": 720, - "source": 233, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 970 + 1028 ] }, { "teal": 721, - "source": 233, + "source": "examples/reti/stakingPool.algo.ts:233", "pc": [ - 971 + 1029, + 1030 ] }, { - "teal": 722, - "source": 233, + "teal": 725, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 972, - 973 + 1031, + 1032 ] }, { "teal": 726, - "source": 236, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 974, - 975 + 1033, + 1034 ] }, { "teal": 727, - "source": 236, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 976 + 1035 ] }, { "teal": 728, - "source": 236, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 977 + 1036, + 1037 ] }, { "teal": 729, - "source": 236, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 978, - 979 + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046 ] }, { "teal": 730, - "source": 236, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 980 + 1047, + 1048 ] }, { "teal": 731, - "source": 236, + "source": "examples/reti/stakingPool.algo.ts:236", "pc": [ - 981, - 982 + 1049 ] }, { - "teal": 732, - "source": 236, + "teal": 735, + "source": "examples/reti/stakingPool.algo.ts:238", "pc": [ - 983 + 1050, + 1051 ] }, { "teal": 736, - "source": 238, + "source": "examples/reti/stakingPool.algo.ts:238", "pc": [ - 984, - 985 + 1052, + 1053, + 1054 ] }, { - "teal": 737, - "source": 238, + "teal": 742, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 986, - 987, - 988 + 1055, + 1056 ] }, { "teal": 743, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 989, - 990 + 1057, + 1058 ] }, { "teal": 744, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 991 + 1059 ] }, { "teal": 745, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 992 + 1060 ] }, { "teal": 746, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 993 + 1061, + 1062, + 1063 ] }, { "teal": 747, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 994, - 995, - 996 + 1064, + 1065 ] }, { "teal": 748, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 997, - 998 + 1066, + 1067, + 1068 ] }, { "teal": 749, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 999, - 1000, - 1001 + 1069, + 1070 ] }, { "teal": 750, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 1002, - 1003 + 1071 ] }, { "teal": 751, - "source": 240, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 1004 + 1072 ] }, { - "teal": 752, - "source": 240, + "teal": 754, + "source": "examples/reti/stakingPool.algo.ts:240", "pc": [ - 1005 + 1073, + 1074, + 1075 ] }, { - "teal": 755, - "source": 240, + "teal": 759, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 1006, - 1007, - 1008 + 1076, + 1077 ] }, { "teal": 760, - "source": 241, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 1009, - 1010 + 1078, + 1079 ] }, { "teal": 761, - "source": 241, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 1011 + 1080 ] }, { "teal": 762, - "source": 241, + "source": "examples/reti/stakingPool.algo.ts:241", "pc": [ - 1012 + 1081, + 1082 ] }, { - "teal": 763, - "source": 241, + "teal": 769, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 1013, - 1014 + 1083, + 1084 ] }, { "teal": 770, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 1015, - 1016 + 1085, + 1086 ] }, { "teal": 771, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 1017 + 1087 ] }, { "teal": 772, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 1018 + 1088, + 1089 ] }, { "teal": 773, - "source": 225, + "source": "examples/reti/stakingPool.algo.ts:225", "pc": [ - 1019, - 1020 + 1090, + 1091, + 1092 ] }, { - "teal": 774, - "source": 225, + "teal": 779, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 1021, - 1022, - 1023 + 1093, + 1094 ] }, { "teal": 780, - "source": 245, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 1024, - 1025 + 1095, + 1096 ] }, { "teal": 781, - "source": 245, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 1026 + 1097 ] }, { "teal": 782, - "source": 245, + "source": "examples/reti/stakingPool.algo.ts:245", "pc": [ - 1027 + 1098, + 1099, + 1100 ] }, { - "teal": 783, - "source": 245, + "teal": 786, + "source": "examples/reti/stakingPool.algo.ts:247", + "errorMessage": "Staking pool full", "pc": [ - 1028, - 1029, - 1030 + 1101 ] }, { - "teal": 787, - "source": 247, - "errorMessage": "Staking pool full", + "teal": 791, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 1031 + 1102, + 1103 ] }, { "teal": 792, - "source": 252, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 1032, - 1033 + 1104, + 1105 ] }, { "teal": 793, - "source": 252, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 1034, - 1035 + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120 ] }, { "teal": 794, - "source": 252, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 1036, - 1037 + 1121 ] }, { "teal": 795, - "source": 252, + "source": "examples/reti/stakingPool.algo.ts:252", "pc": [ - 1038 + 1122 ] }, { - "teal": 796, - "source": 252, + "teal": 798, + "source": "examples/reti/stakingPool.algo.ts:252", + "errorMessage": "must stake at least the minimum for this pool", "pc": [ - 1039 + 1123 ] }, { - "teal": 799, - "source": 252, - "errorMessage": "must stake at least the minimum for this pool", + "teal": 802, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1040 + 1124, + 1125 ] }, { "teal": 803, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1041, - 1042 + 1126, + 1127 ] }, { "teal": 804, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1043 + 1128 ] }, { "teal": 805, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1044 + 1129, + 1130 ] }, { "teal": 806, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1045 + 1131 ] }, { "teal": 807, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1046 + 1132, + 1133 ] }, { "teal": 808, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1047 + 1134 ] }, { "teal": 809, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1048 + 1135, + 1136 ] }, { "teal": 810, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1049, - 1050 + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145 ] }, { "teal": 811, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1051 + 1146, + 1147 ] }, { "teal": 812, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1052, - 1053 + 1148 ] }, { "teal": 813, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1054 + 1149, + 1150 ] }, { "teal": 814, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1055, - 1056 + 1151 ] }, { "teal": 815, - "source": 254, + "source": "examples/reti/stakingPool.algo.ts:254", "pc": [ - 1057 + 1152 ] }, { - "teal": 816, - "source": 254, + "teal": 825, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1058 + 1153, + 1154 ] }, { "teal": 826, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1059, - 1060 + 1155, + 1156 ] }, { "teal": 827, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1061 + 1157 ] }, { "teal": 828, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1062 + 1158, + 1159 ] }, { "teal": 829, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1063 + 1160 ] }, { "teal": 830, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:256", "pc": [ - 1064 + 1161, + 1162 ] }, { "teal": 831, - "source": 256, + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 1065, - 1066 + 1163, + 1164 ] }, { "teal": 832, - "source": 257, + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 1067, - 1068 + 1165, + 1166 ] }, { "teal": 833, - "source": 257, + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 1069, - 1070 + 1167 ] }, { "teal": 834, - "source": 257, + "source": "examples/reti/stakingPool.algo.ts:257", "pc": [ - 1071 + 1168 ] }, { "teal": 835, - "source": 257, + "source": "examples/reti/stakingPool.algo.ts:258", "pc": [ - 1072 + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178 ] }, { "teal": 836, - "source": 258, + "source": "examples/reti/stakingPool.algo.ts:258", "pc": [ - 1073, - 1074 + 1179 ] }, { "teal": 837, - "source": 258, + "source": "examples/reti/stakingPool.algo.ts:259", "pc": [ - 1075 + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189 ] }, { "teal": 838, - "source": 259, + "source": "examples/reti/stakingPool.algo.ts:259", "pc": [ - 1076, - 1077 + 1190 ] }, { "teal": 839, - "source": 259, + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 1078 + 1191, + 1192 ] }, { "teal": 840, - "source": 260, + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 1079, - 1080 + 1193 ] }, { "teal": 841, - "source": 260, + "source": "examples/reti/stakingPool.algo.ts:260", "pc": [ - 1081 + 1194 ] }, { "teal": 842, - "source": 260, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1082 + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203 ] }, { "teal": 843, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1083 + 1204, + 1205 ] }, { "teal": 844, - "source": 255, + "source": "examples/reti/stakingPool.algo.ts:255", "pc": [ - 1084, - 1085 + 1206 ] }, { - "teal": 845, - "source": 255, + "teal": 848, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1086 + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218 ] }, { "teal": 849, - "source": 262, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1087, - 1088 + 1219 ] }, { "teal": 850, - "source": 262, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1089 + 1220, + 1221 ] }, { "teal": 851, - "source": 262, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1090 + 1222 ] }, { "teal": 852, - "source": 262, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1091 + 1223, + 1224, + 1225, + 1226, + 1227, + 1228, + 1229, + 1230, + 1231, + 1232, + 1233, + 1234 ] }, { "teal": 853, - "source": 262, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1092, - 1093 + 1235 ] }, { "teal": 854, - "source": 262, + "source": "examples/reti/stakingPool.algo.ts:262", "pc": [ - 1094 + 1236 ] }, { - "teal": 855, - "source": 262, + "teal": 858, + "source": "examples/reti/stakingPool.algo.ts:263", "pc": [ - 1095 + 1237, + 1238 ] }, { - "teal": 859, - "source": 263, + "teal": 862, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 1096, - 1097 + 1239, + 1240 ] }, { - "teal": 863, - "source": 191, + "teal": 865, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 1098, - 1099 + 1241, + 1242 ] }, { "teal": 866, - "source": 191, + "source": "examples/reti/stakingPool.algo.ts:191", "pc": [ - 1100, - 1101 + 1243 ] }, { - "teal": 867, - "source": 191, + "teal": 871, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1102 + 1244, + 1245, + 1246 ] }, { "teal": 872, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1103, - 1104, - 1105 + 1247 ] }, { - "teal": 873, - "source": 277, + "teal": 875, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1106 + 1248, + 1249, + 1250 ] }, { "teal": 876, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1107, - 1108, - 1109 + 1251 ] }, { "teal": 877, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1110 + 1252 ] }, { "teal": 878, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1111 + 1253, + 1254 ] }, { "teal": 879, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1112, - 1113 + 1255 ] }, { - "teal": 880, - "source": 277, + "teal": 882, + "source": "examples/reti/stakingPool.algo.ts:277", + "errorMessage": "argument 1 (staker) for removeStake must be a address", "pc": [ - 1114 + 1256 ] }, { - "teal": 883, - "source": 277, - "errorMessage": "argument 1 (staker) for removeStake must be a address", + "teal": 885, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1115 + 1257, + 1258, + 1259 ] }, { "teal": 886, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1116, - 1117, - 1118 + 1260, + 1261 ] }, { "teal": 887, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1119 + 1262 ] }, { - "teal": 888, - "source": 277, + "teal": 901, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1120 + 1263, + 1264, + 1265 ] }, { - "teal": 902, - "source": 277, + "teal": 904, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1121, - 1122, - 1123 + 1266, + 1267 ] }, { "teal": 905, - "source": 277, + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1124, - 1125 + 1268, + 1269 ] }, { - "teal": 906, - "source": 277, + "teal": 910, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ - 1126, - 1127 + 1270, + 1271 ] }, { "teal": 911, - "source": 280, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ - 1128, - 1129 + 1272, + 1273 ] }, { "teal": 912, - "source": 280, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ - 1130, - 1131 + 1274 ] }, { "teal": 913, - "source": 280, + "source": "examples/reti/stakingPool.algo.ts:280", "pc": [ - 1132 + 1275, + 1276, + 1277 ] }, { - "teal": 914, - "source": 280, + "teal": 921, + "source": "examples/reti/stakingPool.algo.ts:282", "pc": [ - 1133, - 1134, - 1135 + 1278, + 1279, + 1280 ] }, { - "teal": 922, - "source": 282, + "teal": 924, + "source": "examples/reti/stakingPool.algo.ts:281", + "errorMessage": "If staker is not sender in removeStake call, then sender MUST be owner or manager of validator", "pc": [ - 1136, - 1137, - 1138 + 1281 ] }, { - "teal": 925, - "source": 281, - "errorMessage": "If staker is not sender in removeStake call, then sender MUST be owner or manager of validator", + "teal": 929, + "source": "examples/reti/stakingPool.algo.ts:287", "pc": [ - 1139 + 1282, + 1283, + 1284 ] }, { - "teal": 930, - "source": 287, + "teal": 933, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1140, - 1141, - 1142 + 1285, + 1286 ] }, { "teal": 934, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1143 + 1287, + 1288 ] }, { - "teal": 935, - "source": 289, + "teal": 939, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1144, - 1145 + 1289, + 1290 ] }, { "teal": 940, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1146, - 1147 + 1291, + 1292, + 1293 ] }, { "teal": 941, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1148, - 1149 + 1294 ] }, { "teal": 942, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1150 + 1295, + 1296, + 1297 ] }, { - "teal": 943, - "source": 289, + "teal": 947, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 1151, - 1152, - 1153 + 1298, + 1299 ] }, { "teal": 948, - "source": 290, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 1154, - 1155 + 1300, + 1301, + 1302 ] }, { "teal": 949, - "source": 290, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 1156, - 1157 + 1303 ] }, { "teal": 950, - "source": 290, + "source": "examples/reti/stakingPool.algo.ts:290", "pc": [ - 1158 + 1304, + 1305, + 1306 ] }, { - "teal": 951, - "source": 290, + "teal": 955, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1159, - 1160, - 1161 + 1307 ] }, { "teal": 956, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1162 + 1308, + 1309 ] }, { "teal": 957, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1163 + 1310, + 1311 ] }, { "teal": 958, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1164, - 1165 + 1312, + 1313 ] }, { "teal": 959, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1166 + 1314, + 1315 ] }, { "teal": 960, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1167, - 1168 + 1316, + 1317, + 1318, + 1319, + 1320 ] }, { "teal": 961, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1169, - 1170 + 1321 ] }, { "teal": 962, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1171 + 1322, + 1323 ] }, { "teal": 963, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1172, - 1173 + 1324, + 1325 ] }, { "teal": 964, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1174, - 1175 + 1326, + 1327 ] }, { "teal": 965, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1176, - 1177 + 1328, + 1329 ] }, { "teal": 966, - "source": 291, + "source": "examples/reti/stakingPool.algo.ts:291", "pc": [ - 1178, - 1179 + 1330 ] }, { - "teal": 967, - "source": 291, + "teal": 971, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1180 + 1331, + 1332 ] }, { "teal": 972, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1181, - 1182 + 1333, + 1334 ] }, { "teal": 973, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1183 + 1335 ] }, { "teal": 974, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1184 + 1336, + 1337 ] }, { "teal": 975, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1185 + 1338, + 1339, + 1340, + 1341, + 1342, + 1343, + 1344, + 1345, + 1346 ] }, { "teal": 976, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1186 + 1347, + 1348 ] }, { "teal": 977, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1187, - 1188 + 1349 ] }, { "teal": 978, - "source": 293, + "source": "examples/reti/stakingPool.algo.ts:293", "pc": [ - 1189 + 1350, + 1351 ] }, { - "teal": 979, - "source": 293, + "teal": 983, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 1190, - 1191 + 1352, + 1353 ] }, { "teal": 984, - "source": 294, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 1192, - 1193 + 1354, + 1355, + 1356 ] }, { "teal": 985, - "source": 294, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 1194, - 1195, - 1196 + 1357, + 1358 ] }, { "teal": 986, - "source": 294, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 1197, - 1198 + 1359 ] }, { "teal": 987, - "source": 294, + "source": "examples/reti/stakingPool.algo.ts:294", "pc": [ - 1199 + 1360, + 1361, + 1362 ] }, { - "teal": 988, - "source": 294, + "teal": 993, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 1200, - 1201, - 1202 + 1363, + 1364 ] }, { "teal": 994, - "source": 295, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 1203, - 1204 + 1365, + 1366 ] }, { "teal": 995, - "source": 295, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 1205 + 1367 ] }, { "teal": 996, - "source": 295, + "source": "examples/reti/stakingPool.algo.ts:295", "pc": [ - 1206 + 1368, + 1369, + 1370 ] }, { - "teal": 997, - "source": 295, + "teal": 1001, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 1207, - 1208, - 1209 + 1371, + 1372 ] }, { "teal": 1002, - "source": 297, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 1210, - 1211 + 1373, + 1374, + 1375 ] }, { "teal": 1003, - "source": 297, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 1212, - 1213, - 1214 + 1376 ] }, { "teal": 1004, - "source": 297, + "source": "examples/reti/stakingPool.algo.ts:297", "pc": [ - 1215 + 1377, + 1378 ] }, { - "teal": 1005, - "source": 297, + "teal": 1010, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 1216, - 1217 + 1379, + 1380 ] }, { "teal": 1011, - "source": 299, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 1218, - 1219 + 1381, + 1382, + 1383 ] }, { "teal": 1012, - "source": 299, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 1220, - 1221, - 1222 + 1384 ] }, { "teal": 1013, - "source": 299, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 1223 + 1385, + 1386 ] }, { "teal": 1014, - "source": 299, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 1224, - 1225 + 1387 ] }, { "teal": 1015, - "source": 299, + "source": "examples/reti/stakingPool.algo.ts:299", "pc": [ - 1226 + 1388, + 1389, + 1390 ] }, { - "teal": 1016, - "source": 299, + "teal": 1019, + "source": "examples/reti/stakingPool.algo.ts:300", + "errorMessage": "Insufficient balance", "pc": [ - 1227, - 1228, - 1229 + 1391 ] }, { - "teal": 1020, - "source": 300, - "errorMessage": "Insufficient balance", + "teal": 1024, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1230 + 1392, + 1393 ] }, { "teal": 1025, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1231, - 1232 + 1394, + 1395 ] }, { "teal": 1026, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1233, - 1234 + 1396, + 1397 ] }, { "teal": 1027, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1235, - 1236 + 1398, + 1399, + 1400 ] }, { "teal": 1028, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1237, - 1238, - 1239 + 1401 ] }, { "teal": 1029, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1240 + 1402, + 1403 ] }, { "teal": 1030, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1241, - 1242 + 1404 ] }, { "teal": 1031, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1243 + 1405 ] }, { "teal": 1032, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1244 + 1406 ] }, { "teal": 1033, - "source": 302, + "source": "examples/reti/stakingPool.algo.ts:302", "pc": [ - 1245 + 1407, + 1408 ] }, { - "teal": 1034, - "source": 302, + "teal": 1037, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1246, - 1247 + 1409, + 1410, + 1411, + 1412, + 1413, + 1414, + 1415, + 1416 ] }, { "teal": 1038, - "source": 303, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1248, - 1249 + 1417 ] }, { "teal": 1039, - "source": 303, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1250 + 1418, + 1419 ] }, { "teal": 1040, - "source": 303, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1251, - 1252 + 1420 ] }, { "teal": 1041, - "source": 303, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1253 + 1421, + 1422, + 1423, + 1424, + 1425, + 1426, + 1427, + 1428 ] }, { "teal": 1042, - "source": 303, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1254, - 1255 + 1429 ] }, { "teal": 1043, - "source": 303, + "source": "examples/reti/stakingPool.algo.ts:303", "pc": [ - 1256 + 1430 ] }, { - "teal": 1044, - "source": 303, + "teal": 1047, + "source": "examples/reti/stakingPool.algo.ts:305", "pc": [ - 1257 + 1431, + 1432 ] }, { "teal": 1048, - "source": 305, + "source": "examples/reti/stakingPool.algo.ts:305", "pc": [ - 1258 + 1433, + 1434 ] }, { - "teal": 1049, - "source": 305, + "teal": 1053, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 1259, - 1260 + 1435, + 1436 ] }, { "teal": 1054, - "source": 306, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 1261, - 1262 + 1437, + 1438, + 1439 ] }, { "teal": 1055, - "source": 306, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 1263, - 1264, - 1265 + 1440 ] }, { "teal": 1056, - "source": 306, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 1266 + 1441, + 1442 ] }, { "teal": 1057, - "source": 306, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 1267 + 1443 ] }, { "teal": 1058, - "source": 306, + "source": "examples/reti/stakingPool.algo.ts:306", "pc": [ - 1268 + 1444, + 1445, + 1446 ] }, { - "teal": 1059, - "source": 306, + "teal": 1064, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 1269, - 1270, - 1271 + 1447, + 1448, + 1449, + 1450, + 1451, + 1452, + 1453, + 1454 ] }, { "teal": 1065, - "source": 308, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 1272 + 1455 ] }, { "teal": 1066, - "source": 308, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 1273 + 1456, + 1457 ] }, { "teal": 1067, - "source": 308, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 1274 + 1458 ] }, { "teal": 1068, - "source": 308, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 1275 + 1459, + 1460, + 1461 ] }, { - "teal": 1069, - "source": 308, + "teal": 1076, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1276, - 1277, - 1278 + 1462 ] }, { "teal": 1077, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1279 + 1463, + 1464 ] }, { "teal": 1078, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1280 + 1465, + 1466 ] }, { "teal": 1079, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1281, - 1282 + 1467, + 1468, + 1469, + 1470, + 1471, + 1472 ] }, { "teal": 1080, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1283, - 1284 + 1473, + 1474 ] }, { - "teal": 1081, - "source": 309, + "teal": 1084, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 1285, - 1286 + 1475, + 1476, + 1477, + 1478, + 1479, + 1480, + 1481, + 1482, + 1483, + 1484, + 1485, + 1486 ] }, { "teal": 1085, - "source": 310, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 1287 + 1487 ] }, { "teal": 1086, - "source": 310, + "source": "examples/reti/stakingPool.algo.ts:310", "pc": [ - 1288 + 1488, + 1489 ] }, { - "teal": 1087, - "source": 310, + "teal": 1090, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 1289, - 1290 + 1490, + 1491, + 1492, + 1493, + 1494, + 1495, + 1496, + 1497, + 1498, + 1499, + 1500, + 1501, + 1502 ] }, { "teal": 1091, - "source": 311, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 1291 + 1503 ] }, { "teal": 1092, - "source": 311, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 1292 + 1504 ] }, { "teal": 1093, - "source": 311, + "source": "examples/reti/stakingPool.algo.ts:311", "pc": [ - 1293 + 1505, + 1506 ] }, { - "teal": 1094, - "source": 311, + "teal": 1096, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1294, - 1295 + 1507, + 1508 ] }, { "teal": 1097, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1296 + 1509, + 1510 ] }, { - "teal": 1098, - "source": 309, + "teal": 1100, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1297, - 1298 + 1511 ] }, { "teal": 1101, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1299 + 1512, + 1513 ] }, { "teal": 1102, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1300, - 1301 + 1514, + 1515 ] }, { "teal": 1103, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1302 + 1516 ] }, { "teal": 1104, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1303 + 1517, + 1518 ] }, { "teal": 1105, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1304, - 1305 + 1519, + 1520, + 1521 ] }, { "teal": 1106, - "source": 309, + "source": "examples/reti/stakingPool.algo.ts:309", "pc": [ - 1306, - 1307, - 1308 + 1522, + 1523 ] }, { - "teal": 1107, - "source": 309, + "teal": 1114, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1309, - 1310 + 1524 ] }, { "teal": 1115, - "source": 317, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1311 + 1525, + 1526 ] }, { "teal": 1116, - "source": 317, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1312, - 1313 + 1527, + 1528 ] }, { - "teal": 1117, - "source": 317, + "teal": 1120, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ - 1314, - 1315 + 1529, + 1530 ] }, { "teal": 1121, - "source": 318, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ - 1316, - 1317 + 1531, + 1532, + 1533 ] }, { "teal": 1122, - "source": 318, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ - 1318, - 1319, - 1320 + 1534 ] }, { "teal": 1123, - "source": 318, + "source": "examples/reti/stakingPool.algo.ts:318", "pc": [ - 1321 + 1535, + 1536 ] }, { - "teal": 1124, - "source": 318, + "teal": 1127, + "source": "examples/reti/stakingPool.algo.ts:319", "pc": [ - 1322, - 1323 + 1537, + 1538 ] }, { "teal": 1128, - "source": 319, + "source": "examples/reti/stakingPool.algo.ts:319", "pc": [ - 1324, - 1325 + 1539, + 1540 ] }, { - "teal": 1129, - "source": 319, + "teal": 1132, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ - 1326, - 1327 + 1541, + 1542 ] }, { "teal": 1133, - "source": 320, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ - 1328, - 1329 + 1543, + 1544, + 1545 ] }, { "teal": 1134, - "source": 320, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ - 1330, - 1331, - 1332 + 1546 ] }, { "teal": 1135, - "source": 320, + "source": "examples/reti/stakingPool.algo.ts:320", "pc": [ - 1333 + 1547, + 1548 ] }, { - "teal": 1136, - "source": 320, + "teal": 1138, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1334, - 1335 + 1549, + 1550 ] }, { "teal": 1139, - "source": 317, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1336 + 1551, + 1552 ] }, { - "teal": 1140, - "source": 317, + "teal": 1142, + "source": "examples/reti/stakingPool.algo.ts:317", "pc": [ - 1337, - 1338 + 1553 ] }, { - "teal": 1143, - "source": 317, + "teal": 1146, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1339 + 1554, + 1555 ] }, { "teal": 1147, - "source": 322, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1340, - 1341 + 1556, + 1557, + 1558 ] }, { "teal": 1148, - "source": 322, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1342, - 1343, - 1344 + 1559 ] }, { "teal": 1149, - "source": 322, + "source": "examples/reti/stakingPool.algo.ts:322", "pc": [ - 1345 + 1560, + 1561 ] }, { - "teal": 1150, - "source": 322, + "teal": 1153, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ - 1346, - 1347 + 1562, + 1563 ] }, { "teal": 1154, - "source": 323, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ - 1348, - 1349 + 1564, + 1565, + 1566, + 1567, + 1568, + 1569, + 1570, + 1571, + 1572, + 1573 ] }, { "teal": 1155, - "source": 323, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ - 1350, - 1351 + 1574, + 1575 ] }, { "teal": 1156, - "source": 323, + "source": "examples/reti/stakingPool.algo.ts:323", "pc": [ - 1352, - 1353 + 1576, + 1577 ] }, { "teal": 1157, - "source": 323, + "source": "examples/reti/stakingPool.algo.ts:308", "pc": [ - 1354, - 1355 + 1578, + 1579, + 1580 ] }, { - "teal": 1158, - "source": 308, + "teal": 1162, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1356, - 1357, - 1358 + 1581, + 1582 ] }, { "teal": 1163, - "source": 328, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1359, - 1360 + 1583, + 1584, + 1585 ] }, { "teal": 1164, - "source": 328, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1361, - 1362, - 1363 + 1586 ] }, { "teal": 1165, - "source": 328, + "source": "examples/reti/stakingPool.algo.ts:328", "pc": [ - 1364 + 1587, + 1588 ] }, { - "teal": 1166, - "source": 328, + "teal": 1169, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ - 1365, - 1366 + 1589, + 1590 ] }, { "teal": 1170, - "source": 329, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ - 1367, - 1368 + 1591, + 1592, + 1593, + 1594, + 1595, + 1596, + 1597, + 1598, + 1599, + 1600 ] }, { "teal": 1171, - "source": 329, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ - 1369, - 1370 + 1601, + 1602 ] }, { "teal": 1172, - "source": 329, + "source": "examples/reti/stakingPool.algo.ts:329", "pc": [ - 1371, - 1372 + 1603, + 1604 ] }, { - "teal": 1173, - "source": 329, + "teal": 1182, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1373, - 1374 + 1605, + 1606 ] }, { "teal": 1183, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1375, - 1376 + 1607, + 1608, + 1609 ] }, { "teal": 1184, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1377, - 1378, - 1379 + 1610 ] }, { "teal": 1185, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1380 + 1611, + 1612 ] }, { "teal": 1186, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1381 + 1613 ] }, { "teal": 1187, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1382 + 1614 ] }, { "teal": 1188, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1383 + 1615, + 1616, + 1617 ] }, { "teal": 1189, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1384, - 1385, - 1386 + 1618, + 1619 ] }, { "teal": 1190, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1387, - 1388 + 1620, + 1621, + 1622 ] }, { "teal": 1191, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1389, - 1390, - 1391 + 1623 ] }, { "teal": 1192, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1392 + 1624, + 1625, + 1626, + 1627, + 1628, + 1629, + 1630, + 1631, + 1632, + 1633, + 1634, + 1635, + 1636, + 1637, + 1638 ] }, { "teal": 1193, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1393, - 1394 + 1639 ] }, { "teal": 1194, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1395 + 1640 ] }, { "teal": 1195, - "source": 335, + "source": "examples/reti/stakingPool.algo.ts:335", "pc": [ - 1396 + 1641 ] }, { - "teal": 1196, - "source": 335, + "teal": 1199, + "source": "examples/reti/stakingPool.algo.ts:334", + "errorMessage": "cannot reduce balance below minimum allowed stake unless all is removed", "pc": [ - 1397 + 1642 ] }, { - "teal": 1200, - "source": 334, - "errorMessage": "cannot reduce balance below minimum allowed stake unless all is removed", + "teal": 1207, + "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1398 + 1643 ] }, { "teal": 1208, - "source": 342, + "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1399 + 1644, + 1645 ] }, { "teal": 1209, - "source": 342, + "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1400 + 1646, + 1647 ] }, { - "teal": 1210, - "source": 342, + "teal": 1213, + "source": "examples/reti/stakingPool.algo.ts:343", "pc": [ - 1401, - 1402 + 1648, + 1649 ] }, { "teal": 1214, - "source": 343, + "source": "examples/reti/stakingPool.algo.ts:343", "pc": [ - 1403, - 1404 + 1650, + 1651 ] }, { - "teal": 1215, - "source": 343, + "teal": 1218, + "source": "examples/reti/stakingPool.algo.ts:344", "pc": [ - 1405, - 1406 + 1652, + 1653 ] }, { "teal": 1219, - "source": 344, + "source": "examples/reti/stakingPool.algo.ts:344", "pc": [ - 1407, - 1408 + 1654, + 1655 ] }, { - "teal": 1220, - "source": 344, + "teal": 1223, + "source": "examples/reti/stakingPool.algo.ts:345", "pc": [ - 1409, - 1410 + 1656, + 1657, + 1658, + 1659, + 1660, + 1661, + 1662, + 1663, + 1664, + 1665 ] }, { "teal": 1224, - "source": 345, + "source": "examples/reti/stakingPool.algo.ts:345", "pc": [ - 1411, - 1412, - 1413, - 1414, - 1415, - 1416, - 1417, - 1418, - 1419, - 1420 + 1666, + 1667 ] }, { - "teal": 1225, - "source": 345, + "teal": 1227, + "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1421, - 1422 + 1668, + 1669 ] }, { "teal": 1228, - "source": 342, + "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1423 + 1670, + 1671 ] }, { - "teal": 1229, - "source": 342, + "teal": 1231, + "source": "examples/reti/stakingPool.algo.ts:342", "pc": [ - 1424, - 1425 + 1672 ] }, { - "teal": 1232, - "source": 342, + "teal": 1235, + "source": "examples/reti/stakingPool.algo.ts:347", "pc": [ - 1426 + 1673, + 1674 ] }, { "teal": 1236, - "source": 347, + "source": "examples/reti/stakingPool.algo.ts:347", "pc": [ - 1427 + 1675, + 1676 ] }, { - "teal": 1237, - "source": 347, + "teal": 1241, + "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1428, - 1429 + 1677, + 1678 ] }, { "teal": 1242, - "source": 348, + "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1430, - 1431 + 1679, + 1680, + 1681 ] }, { "teal": 1243, - "source": 348, + "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1432, - 1433, - 1434 + 1682 ] }, { "teal": 1244, - "source": 348, + "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1435 + 1683, + 1684 ] }, { "teal": 1245, - "source": 348, + "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1436 + 1685 ] }, { "teal": 1246, - "source": 348, + "source": "examples/reti/stakingPool.algo.ts:348", "pc": [ - 1437 + 1686, + 1687, + 1688 ] }, { - "teal": 1247, - "source": 348, + "teal": 1251, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1438, - 1439, - 1440 + 1689, + 1690, + 1691, + 1692, + 1693, + 1694, + 1695, + 1696, + 1697, + 1698, + 1699, + 1700 ] }, { "teal": 1252, - "source": 350, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1441, - 1442 + 1701 ] }, { "teal": 1253, - "source": 350, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1443 + 1702, + 1703 ] }, { "teal": 1254, - "source": 350, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1444 + 1704 ] }, { "teal": 1255, - "source": 350, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1445 + 1705, + 1706, + 1707, + 1708, + 1709, + 1710, + 1711, + 1712, + 1713, + 1714, + 1715, + 1716 ] }, { "teal": 1256, - "source": 350, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1446, - 1447 + 1717 ] }, { "teal": 1257, - "source": 350, + "source": "examples/reti/stakingPool.algo.ts:350", "pc": [ - 1448 + 1718 ] }, { - "teal": 1258, - "source": 350, + "teal": 1261, + "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1449 + 1719, + 1720 ] }, { "teal": 1262, - "source": 351, + "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1450, - 1451 + 1721, + 1722 ] }, { "teal": 1263, - "source": 351, + "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1452 + 1723, + 1724 ] }, { "teal": 1264, - "source": 351, + "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1453, - 1454 + 1725 ] }, { "teal": 1265, - "source": 351, + "source": "examples/reti/stakingPool.algo.ts:351", "pc": [ - 1455 + 1726, + 1727 ] }, { - "teal": 1266, - "source": 351, + "teal": 1269, + "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ - 1456, - 1457 + 1728, + 1729 ] }, { "teal": 1270, - "source": 352, + "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ - 1458, - 1459 + 1730, + 1731, + 1732, + 1733, + 1734, + 1735, + 1736, + 1737, + 1738, + 1739 ] }, { "teal": 1271, - "source": 352, + "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ - 1460, - 1461 + 1740, + 1741 ] }, { "teal": 1272, - "source": 352, + "source": "examples/reti/stakingPool.algo.ts:352", "pc": [ - 1462, - 1463 + 1742, + 1743 ] }, { - "teal": 1273, - "source": 352, + "teal": 1276, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ - 1464, - 1465 + 1744, + 1745 ] }, { "teal": 1277, - "source": 353, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ - 1466, - 1467 + 1746, + 1747, + 1748, + 1749, + 1750, + 1751, + 1752, + 1753, + 1754, + 1755 ] }, { "teal": 1278, - "source": 353, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ - 1468, - 1469 + 1756, + 1757 ] }, { "teal": 1279, - "source": 353, + "source": "examples/reti/stakingPool.algo.ts:353", "pc": [ - 1470, - 1471 + 1758, + 1759 ] }, { - "teal": 1280, - "source": 353, + "teal": 1283, + "source": "examples/reti/stakingPool.algo.ts:354", "pc": [ - 1472, - 1473 + 1760, + 1761 ] }, { "teal": 1284, - "source": 354, + "source": "examples/reti/stakingPool.algo.ts:354", "pc": [ - 1474 + 1762, + 1763 ] }, { - "teal": 1285, - "source": 354, + "teal": 1289, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1475, - 1476 + 1764, + 1765 ] }, { "teal": 1290, - "source": 357, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1477, - 1478 + 1766, + 1767 ] }, { "teal": 1291, - "source": 357, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1479 + 1768 ] }, { "teal": 1292, - "source": 357, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1480 + 1769, + 1770 ] }, { "teal": 1293, - "source": 357, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1481, - 1482 + 1771, + 1772, + 1773, + 1774, + 1775, + 1776, + 1777, + 1778, + 1779 ] }, { "teal": 1294, - "source": 357, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1483 + 1780, + 1781 ] }, { "teal": 1295, - "source": 357, + "source": "examples/reti/stakingPool.algo.ts:357", "pc": [ - 1484, - 1485 + 1782 ] }, { - "teal": 1296, - "source": 357, + "teal": 1299, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1486 + 1783, + 1784, + 1785, + 1786, + 1787, + 1788, + 1789, + 1790, + 1791, + 1792, + 1793, + 1794, + 1795, + 1796, + 1797 ] }, { "teal": 1300, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1487, - 1488 + 1798 ] }, { "teal": 1301, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1489 + 1799, + 1800, + 1801, + 1802, + 1803, + 1804, + 1805, + 1806, + 1807, + 1808, + 1809, + 1810, + 1811, + 1812 ] }, { "teal": 1302, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1490, - 1491 + 1813 ] }, { "teal": 1303, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1492 + 1814 ] }, { "teal": 1304, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1493 + 1815, + 1816 ] }, { "teal": 1305, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1494, - 1495 + 1817 ] }, { "teal": 1306, - "source": 359, + "source": "examples/reti/stakingPool.algo.ts:359", "pc": [ - 1496 + 1818, + 1819 ] }, { - "teal": 1307, - "source": 359, + "teal": 1310, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1497, - 1498 + 1820, + 1821 ] }, { "teal": 1311, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1499, - 1500 + 1822 ] }, { "teal": 1312, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1501 + 1823, + 1824 ] }, { "teal": 1313, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1502, - 1503 + 1825 ] }, { "teal": 1314, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1504 + 1826 ] }, { "teal": 1315, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1505 + 1827 ] }, { "teal": 1316, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1506 + 1828 ] }, { "teal": 1317, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1507 + 1829, + 1830, + 1831 ] }, { "teal": 1318, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1508, - 1509 + 1832 ] }, { - "teal": 1319, - "source": 360, + "teal": 1321, + "source": "examples/reti/stakingPool.algo.ts:360", + "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ - 1510 + 1833 ] }, { "teal": 1322, - "source": 360, - "errorMessage": "(amountToUnstake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1511 + 1834, + 1835, + 1836, + 1837, + 1838, + 1839, + 1840, + 1841, + 1842, + 1843, + 1844, + 1845, + 1846, + 1847, + 1848, + 1849, + 1850, + 1851 ] }, { "teal": 1323, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1512, - 1513 + 1852 ] }, { "teal": 1324, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1514 + 1853 ] }, { "teal": 1325, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1515 + 1854 ] }, { "teal": 1326, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1516 + 1855 ] }, { "teal": 1327, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1517 + 1856, + 1857 ] }, { "teal": 1328, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1518, - 1519 + 1858 ] }, { "teal": 1329, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1520 + 1859 ] }, { "teal": 1330, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1521 + 1860 ] }, { "teal": 1331, - "source": 360, + "source": "examples/reti/stakingPool.algo.ts:360", "pc": [ - 1522 + 1861, + 1862 ] }, { - "teal": 1332, - "source": 360, + "teal": 1335, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1523, - 1524 + 1863, + 1864, + 1865, + 1866, + 1867, + 1868, + 1869, + 1870, + 1871, + 1872, + 1873, + 1874, + 1875, + 1876, + 1877, + 1878, + 1879, + 1880 ] }, { "teal": 1336, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1525, - 1526 + 1881 ] }, { "teal": 1337, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1527 + 1882 ] }, { "teal": 1338, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1528 + 1883, + 1884 ] }, { "teal": 1339, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1529, - 1530 + 1885 ] }, { "teal": 1340, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1531 + 1886 ] }, { "teal": 1341, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1532 + 1887 ] }, { "teal": 1342, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1533 + 1888, + 1889, + 1890 ] }, { "teal": 1343, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1534, - 1535 + 1891 ] }, { - "teal": 1344, - "source": 361, + "teal": 1346, + "source": "examples/reti/stakingPool.algo.ts:361", + "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", "pc": [ - 1536 + 1892 ] }, { "teal": 1347, - "source": 361, - "errorMessage": "this.stakeAccumulator.value - subtractAmount overflowed 128 bits", + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1537 + 1893, + 1894, + 1895, + 1896, + 1897, + 1898, + 1899, + 1900, + 1901, + 1902, + 1903, + 1904, + 1905, + 1906, + 1907, + 1908, + 1909, + 1910 ] }, { "teal": 1348, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1538, - 1539 + 1911 ] }, { "teal": 1349, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1540 + 1912 ] }, { "teal": 1350, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1541 + 1913 ] }, { "teal": 1351, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1542 + 1914 ] }, { "teal": 1352, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1543 + 1915, + 1916 ] }, { "teal": 1353, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1544, - 1545 + 1917 ] }, { "teal": 1354, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1546 + 1918 ] }, { "teal": 1355, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1547 + 1919 ] }, { "teal": 1356, - "source": 361, + "source": "examples/reti/stakingPool.algo.ts:361", "pc": [ - 1548 + 1920 ] }, { - "teal": 1357, - "source": 361, + "teal": 1369, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1549 + 1921 ] }, { "teal": 1370, - "source": 366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1550 + 1922, + 1923 ] }, { "teal": 1371, - "source": 366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1551 + 1924, + 1925 ] }, { "teal": 1372, - "source": 366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1552, - 1553 + 1926, + 1927, + 1928, + 1929, + 1930, + 1931 ] }, { "teal": 1373, - "source": 366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1554, - 1555 + 1932, + 1933 ] }, { - "teal": 1374, - "source": 366, + "teal": 1377, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1556, - 1557 + 1934, + 1935, + 1936, + 1937, + 1938, + 1939, + 1940, + 1941, + 1942, + 1943, + 1944, + 1945 ] }, { "teal": 1378, - "source": 367, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1558 + 1946 ] }, { "teal": 1379, - "source": 367, + "source": "examples/reti/stakingPool.algo.ts:367", "pc": [ - 1559 + 1947, + 1948 ] }, { - "teal": 1380, - "source": 367, + "teal": 1389, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1560, - 1561 + 1949, + 1950, + 1951, + 1952, + 1953, + 1954, + 1955, + 1956, + 1957, + 1958, + 1959, + 1960, + 1961 ] }, { "teal": 1390, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1562 + 1962 ] }, { "teal": 1391, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1563 + 1963 ] }, { "teal": 1392, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1564 + 1964, + 1965, + 1966, + 1967, + 1968, + 1969, + 1970, + 1971 ] }, { "teal": 1393, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1565 + 1972 ] }, { "teal": 1394, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1566 + 1973 ] }, { "teal": 1395, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1567 + 1974 ] }, { "teal": 1396, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1568 + 1975, + 1976, + 1977 ] }, { "teal": 1397, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1569, - 1570, - 1571 + 1978 ] }, { "teal": 1398, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1572 + 1979 ] }, { "teal": 1399, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:369", "pc": [ - 1573 + 1980, + 1981 ] }, { "teal": 1400, - "source": 369, + "source": "examples/reti/stakingPool.algo.ts:370", "pc": [ - 1574, - 1575 + 1982, + 1983 ] }, { "teal": 1401, - "source": 370, + "source": "examples/reti/stakingPool.algo.ts:370", "pc": [ - 1576, - 1577 + 1984, + 1985 ] }, { "teal": 1402, - "source": 370, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1578, - 1579 + 1986, + 1987 ] }, { "teal": 1403, - "source": 371, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1580, - 1581 + 1988 ] }, { "teal": 1404, - "source": 371, + "source": "examples/reti/stakingPool.algo.ts:371", "pc": [ - 1582 + 1989, + 1990 ] }, { "teal": 1405, - "source": 371, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1583, - 1584 + 1991, + 1992 ] }, { "teal": 1406, - "source": 372, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1585, - 1586 + 1993 ] }, { "teal": 1407, - "source": 372, + "source": "examples/reti/stakingPool.algo.ts:372", "pc": [ - 1587 + 1994, + 1995 ] }, { "teal": 1408, - "source": 372, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1588, - 1589 + 1996, + 1997 ] }, { "teal": 1409, - "source": 373, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1590, - 1591 + 1998, + 1999, + 2000 ] }, { "teal": 1410, - "source": 373, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1592, - 1593 + 2001, + 2002 ] }, { "teal": 1411, - "source": 373, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1594 + 2003, + 2004 ] }, { "teal": 1412, - "source": 373, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1595, - 1596 + 2005 ] }, { "teal": 1413, - "source": 373, + "source": "examples/reti/stakingPool.algo.ts:373", "pc": [ - 1597 + 2006, + 2007 ] }, { - "teal": 1414, - "source": 373, + "teal": 1416, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1598, - 1599 + 2008, + 2009 ] }, { "teal": 1417, - "source": 366, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1600 + 2010, + 2011 ] }, { - "teal": 1418, - "source": 366, + "teal": 1420, + "source": "examples/reti/stakingPool.algo.ts:366", "pc": [ - 1601, - 1602 + 2012 ] }, { - "teal": 1421, - "source": 366, + "teal": 1424, + "source": "examples/reti/stakingPool.algo.ts:376", "pc": [ - 1603 + 2013 ] }, { - "teal": 1425, - "source": 376, + "teal": 1431, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1604 + 2014, + 2015 ] }, { "teal": 1432, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1605, - 1606 + 2016, + 2017 ] }, { "teal": 1433, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1607 + 2018 ] }, { "teal": 1434, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1608 + 2019, + 2020 ] }, { "teal": 1435, - "source": 289, + "source": "examples/reti/stakingPool.algo.ts:289", "pc": [ - 1609, - 1610 + 2021, + 2022, + 2023 ] }, { - "teal": 1436, - "source": 289, + "teal": 1439, + "source": "examples/reti/stakingPool.algo.ts:379", + "errorMessage": "account not found", "pc": [ - 1611, - 1612, - 1613 + 2024 ] }, { "teal": 1440, - "source": 379, - "errorMessage": "account not found", + "source": "examples/reti/stakingPool.algo.ts:277", "pc": [ - 1614 + 2025 ] }, { - "teal": 1441, - "source": 277, + "teal": 1445, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1615 + 2026, + 2027, + 2028 ] }, { "teal": 1446, - "source": 387, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1616, - 1617, - 1618 + 2029, + 2030 ] }, { "teal": 1447, - "source": 387, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1619 + 2031 ] }, { - "teal": 1448, - "source": 387, + "teal": 1455, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1620 + 2032, + 2033, + 2034 ] }, { - "teal": 1456, - "source": 387, + "teal": 1458, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1621, - 1622, - 1623 + 2035, + 2036 ] }, { "teal": 1459, - "source": 387, + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1624, - 1625 + 2037, + 2038 ] }, { - "teal": 1460, - "source": 387, + "teal": 1463, + "source": "examples/reti/stakingPool.algo.ts:391", "pc": [ - 1626, - 1627 + 2039, + 2040 ] }, { "teal": 1464, - "source": 391, + "source": "examples/reti/stakingPool.algo.ts:391", "pc": [ - 1628, - 1629 + 2041, + 2042 ] }, { - "teal": 1465, - "source": 391, + "teal": 1468, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1630, - 1631 + 2043, + 2044 ] }, { "teal": 1469, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1632 + 2045, + 2046 ] }, { - "teal": 1470, - "source": 393, + "teal": 1474, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1633, - 1634 + 2047, + 2048 ] }, { "teal": 1475, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1635, - 1636 + 2049, + 2050, + 2051 ] }, { "teal": 1476, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1637, - 1638 + 2052 ] }, { "teal": 1477, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1639 + 2053, + 2054, + 2055 ] }, { - "teal": 1478, - "source": 393, + "teal": 1482, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1640, - 1641, - 1642 + 2056, + 2057 ] }, { "teal": 1483, - "source": 394, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1643, - 1644 + 2058, + 2059, + 2060 ] }, { "teal": 1484, - "source": 394, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1645, - 1646 + 2061 ] }, { "teal": 1485, - "source": 394, + "source": "examples/reti/stakingPool.algo.ts:394", "pc": [ - 1647 + 2062, + 2063, + 2064 ] }, { - "teal": 1486, - "source": 394, + "teal": 1490, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1648, - 1649, - 1650 + 2065 ] }, { "teal": 1491, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1651 + 2066, + 2067 ] }, { "teal": 1492, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1652 + 2068, + 2069 ] }, { "teal": 1493, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1653, - 1654 + 2070, + 2071 ] }, { "teal": 1494, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1655 + 2072, + 2073 ] }, { "teal": 1495, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1656, - 1657 + 2074, + 2075, + 2076, + 2077, + 2078 ] }, { "teal": 1496, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1658, - 1659 + 2079 ] }, { "teal": 1497, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1660 + 2080, + 2081 ] }, { "teal": 1498, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1661, - 1662 + 2082, + 2083 ] }, { "teal": 1499, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1663, - 1664 + 2084, + 2085 ] }, { "teal": 1500, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1665, - 1666 + 2086, + 2087 ] }, { "teal": 1501, - "source": 395, + "source": "examples/reti/stakingPool.algo.ts:395", "pc": [ - 1667, - 1668 + 2088 ] }, { - "teal": 1502, - "source": 395, + "teal": 1506, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1669 + 2089, + 2090 ] }, { "teal": 1507, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1670, - 1671 + 2091, + 2092 ] }, { "teal": 1508, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1672 + 2093 ] }, { "teal": 1509, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1673 + 2094, + 2095 ] }, { "teal": 1510, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1674 + 2096, + 2097, + 2098, + 2099, + 2100, + 2101, + 2102, + 2103, + 2104 ] }, { "teal": 1511, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1675 + 2105, + 2106 ] }, { "teal": 1512, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1676, - 1677 + 2107 ] }, { "teal": 1513, - "source": 397, + "source": "examples/reti/stakingPool.algo.ts:397", "pc": [ - 1678 + 2108, + 2109 ] }, { - "teal": 1514, - "source": 397, + "teal": 1518, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1679, - 1680 + 2110, + 2111 ] }, { "teal": 1519, - "source": 398, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1681, - 1682 + 2112, + 2113, + 2114 ] }, { "teal": 1520, - "source": 398, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1683, - 1684, - 1685 + 2115, + 2116 ] }, { "teal": 1521, - "source": 398, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1686, - 1687 + 2117 ] }, { "teal": 1522, - "source": 398, + "source": "examples/reti/stakingPool.algo.ts:398", "pc": [ - 1688 + 2118, + 2119, + 2120 ] }, { - "teal": 1523, - "source": 398, + "teal": 1528, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1689, - 1690, - 1691 + 2121, + 2122 ] }, { "teal": 1529, - "source": 399, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1692, - 1693 + 2123, + 2124, + 2125 ] }, { "teal": 1530, - "source": 399, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1694, - 1695, - 1696 + 2126 ] }, { "teal": 1531, - "source": 399, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1697 + 2127, + 2128 ] }, { "teal": 1532, - "source": 399, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1698 + 2129 ] }, { "teal": 1533, - "source": 399, + "source": "examples/reti/stakingPool.algo.ts:399", "pc": [ - 1699 + 2130, + 2131, + 2132 ] }, { - "teal": 1534, - "source": 399, + "teal": 1538, + "source": "examples/reti/stakingPool.algo.ts:400", "pc": [ - 1700, - 1701, - 1702 + 2133 ] }, { - "teal": 1539, - "source": 400, + "teal": 1543, + "source": "examples/reti/stakingPool.algo.ts:402", "pc": [ - 1703 + 2134, + 2135 ] }, { "teal": 1544, - "source": 402, + "source": "examples/reti/stakingPool.algo.ts:402", "pc": [ - 1704 + 2136, + 2137 ] }, { - "teal": 1545, - "source": 402, + "teal": 1549, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1705, - 1706 + 2138, + 2139, + 2140, + 2141, + 2142, + 2143, + 2144, + 2145 ] }, { "teal": 1550, - "source": 404, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1707 + 2146 ] }, { "teal": 1551, - "source": 404, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1708 + 2147, + 2148 ] }, { "teal": 1552, - "source": 404, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1709 + 2149 ] }, { "teal": 1553, - "source": 404, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1710 + 2150, + 2151, + 2152 ] }, { - "teal": 1554, - "source": 404, + "teal": 1561, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1711, - 1712, - 1713 + 2153 ] }, { "teal": 1562, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1714 + 2154, + 2155 ] }, { "teal": 1563, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1715 + 2156, + 2157 ] }, { "teal": 1564, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1716, - 1717 + 2158, + 2159, + 2160, + 2161, + 2162, + 2163 ] }, { "teal": 1565, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1718, - 1719 + 2164, + 2165 ] }, { - "teal": 1566, - "source": 405, + "teal": 1569, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ - 1720, - 1721 + 2166, + 2167, + 2168, + 2169, + 2170, + 2171, + 2172, + 2173, + 2174, + 2175, + 2176, + 2177 ] }, { "teal": 1570, - "source": 406, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ - 1722 + 2178 ] }, { "teal": 1571, - "source": 406, + "source": "examples/reti/stakingPool.algo.ts:406", "pc": [ - 1723 + 2179, + 2180 ] }, { - "teal": 1572, - "source": 406, + "teal": 1575, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ - 1724, - 1725 + 2181, + 2182, + 2183, + 2184, + 2185, + 2186, + 2187, + 2188, + 2189, + 2190, + 2191, + 2192, + 2193 ] }, { "teal": 1576, - "source": 407, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ - 1726 + 2194 ] }, { "teal": 1577, - "source": 407, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ - 1727 + 2195 ] }, { "teal": 1578, - "source": 407, + "source": "examples/reti/stakingPool.algo.ts:407", "pc": [ - 1728 + 2196, + 2197 ] }, { - "teal": 1579, - "source": 407, + "teal": 1581, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1729, - 1730 + 2198, + 2199 ] }, { "teal": 1582, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1731 + 2200, + 2201 ] }, { - "teal": 1583, - "source": 405, + "teal": 1585, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1732, - 1733 + 2202 ] }, { "teal": 1586, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1734 + 2203, + 2204 ] }, { "teal": 1587, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1735, - 1736 + 2205, + 2206 ] }, { "teal": 1588, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1737 + 2207 ] }, { "teal": 1589, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1738 + 2208, + 2209 ] }, { "teal": 1590, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1739, - 1740 + 2210, + 2211, + 2212 ] }, { "teal": 1591, - "source": 405, + "source": "examples/reti/stakingPool.algo.ts:405", "pc": [ - 1741, - 1742, - 1743 + 2213, + 2214 ] }, { - "teal": 1592, - "source": 405, + "teal": 1599, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1744, - 1745 + 2215 ] }, { "teal": 1600, - "source": 412, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1746 + 2216, + 2217 ] }, { "teal": 1601, - "source": 412, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1747, - 1748 + 2218, + 2219 ] }, { - "teal": 1602, - "source": 412, + "teal": 1605, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ - 1749, - 1750 + 2220, + 2221 ] }, { "teal": 1606, - "source": 413, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ - 1751, - 1752 + 2222, + 2223, + 2224 ] }, { "teal": 1607, - "source": 413, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ - 1753, - 1754, - 1755 + 2225 ] }, { "teal": 1608, - "source": 413, + "source": "examples/reti/stakingPool.algo.ts:413", "pc": [ - 1756 + 2226, + 2227 ] }, { - "teal": 1609, - "source": 413, + "teal": 1612, + "source": "examples/reti/stakingPool.algo.ts:414", "pc": [ - 1757, - 1758 + 2228, + 2229 ] }, { "teal": 1613, - "source": 414, + "source": "examples/reti/stakingPool.algo.ts:414", "pc": [ - 1759, - 1760 + 2230, + 2231 ] }, { - "teal": 1614, - "source": 414, + "teal": 1617, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ - 1761, - 1762 + 2232, + 2233 ] }, { "teal": 1618, - "source": 415, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ - 1763, - 1764 + 2234, + 2235, + 2236 ] }, { "teal": 1619, - "source": 415, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ - 1765, - 1766, - 1767 + 2237 ] }, { "teal": 1620, - "source": 415, + "source": "examples/reti/stakingPool.algo.ts:415", "pc": [ - 1768 + 2238, + 2239 ] }, { - "teal": 1621, - "source": 415, + "teal": 1623, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1769, - 1770 + 2240, + 2241 ] }, { "teal": 1624, - "source": 412, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1771 + 2242, + 2243 ] }, { - "teal": 1625, - "source": 412, + "teal": 1627, + "source": "examples/reti/stakingPool.algo.ts:412", "pc": [ - 1772, - 1773 + 2244 ] }, { - "teal": 1628, - "source": 412, + "teal": 1631, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1774 + 2245, + 2246 ] }, { "teal": 1632, - "source": 417, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1775, - 1776 + 2247, + 2248, + 2249 ] }, { "teal": 1633, - "source": 417, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1777, - 1778, - 1779 + 2250 ] }, { "teal": 1634, - "source": 417, + "source": "examples/reti/stakingPool.algo.ts:417", "pc": [ - 1780 + 2251, + 2252 ] }, { - "teal": 1635, - "source": 417, + "teal": 1638, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ - 1781, - 1782 + 2253, + 2254 ] }, { "teal": 1639, - "source": 418, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ - 1783, - 1784 + 2255, + 2256, + 2257, + 2258, + 2259, + 2260, + 2261, + 2262, + 2263, + 2264 ] }, { "teal": 1640, - "source": 418, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ - 1785, - 1786 + 2265, + 2266 ] }, { "teal": 1641, - "source": 418, + "source": "examples/reti/stakingPool.algo.ts:418", "pc": [ - 1787, - 1788 + 2267, + 2268 ] }, { "teal": 1642, - "source": 418, + "source": "examples/reti/stakingPool.algo.ts:404", "pc": [ - 1789, - 1790 + 2269, + 2270, + 2271 ] }, { - "teal": 1643, - "source": 404, + "teal": 1647, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1791, - 1792, - 1793 + 2272, + 2273 ] }, { "teal": 1648, - "source": 423, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1794, - 1795 + 2274, + 2275, + 2276 ] }, { "teal": 1649, - "source": 423, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1796, - 1797, - 1798 + 2277 ] }, { "teal": 1650, - "source": 423, + "source": "examples/reti/stakingPool.algo.ts:423", "pc": [ - 1799 + 2278, + 2279 ] }, { - "teal": 1651, - "source": 423, + "teal": 1654, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ - 1800, - 1801 + 2280, + 2281 ] }, { "teal": 1655, - "source": 424, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ - 1802, - 1803 + 2282, + 2283, + 2284, + 2285, + 2286, + 2287, + 2288, + 2289, + 2290, + 2291 ] }, { "teal": 1656, - "source": 424, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ - 1804, - 1805 + 2292, + 2293 ] }, { "teal": 1657, - "source": 424, + "source": "examples/reti/stakingPool.algo.ts:424", "pc": [ - 1806, - 1807 + 2294, + 2295 ] }, { - "teal": 1658, - "source": 424, + "teal": 1662, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1808, - 1809 + 2296, + 2297 ] }, { "teal": 1663, - "source": 428, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1810, - 1811 + 2298, + 2299 ] }, { "teal": 1664, - "source": 428, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1812 + 2300 ] }, { "teal": 1665, - "source": 428, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1813 + 2301, + 2302 ] }, { "teal": 1666, - "source": 428, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1814, - 1815 + 2303, + 2304, + 2305, + 2306, + 2307, + 2308, + 2309, + 2310, + 2311 ] }, { "teal": 1667, - "source": 428, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1816 + 2312, + 2313 ] }, { "teal": 1668, - "source": 428, + "source": "examples/reti/stakingPool.algo.ts:428", "pc": [ - 1817, - 1818 + 2314 ] }, { - "teal": 1669, - "source": 428, + "teal": 1681, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1819 + 2315 ] }, { "teal": 1682, - "source": 433, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1820 + 2316, + 2317 ] }, { "teal": 1683, - "source": 433, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1821 + 2318, + 2319 ] }, { "teal": 1684, - "source": 433, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1822, - 1823 + 2320, + 2321, + 2322, + 2323, + 2324, + 2325 ] }, { "teal": 1685, - "source": 433, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1824, - 1825 + 2326, + 2327 ] }, { - "teal": 1686, - "source": 433, + "teal": 1689, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1826, - 1827 + 2328, + 2329, + 2330, + 2331, + 2332, + 2333, + 2334, + 2335, + 2336, + 2337, + 2338, + 2339 ] }, { "teal": 1690, - "source": 434, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1828 + 2340 ] }, { "teal": 1691, - "source": 434, + "source": "examples/reti/stakingPool.algo.ts:434", "pc": [ - 1829 + 2341, + 2342 ] }, { - "teal": 1692, - "source": 434, + "teal": 1701, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1830, - 1831 + 2343, + 2344, + 2345, + 2346, + 2347, + 2348, + 2349, + 2350, + 2351, + 2352, + 2353, + 2354, + 2355 ] }, { "teal": 1702, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1832 + 2356 ] }, { "teal": 1703, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1833 + 2357 ] }, { "teal": 1704, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1834 + 2358, + 2359, + 2360, + 2361, + 2362, + 2363, + 2364, + 2365 ] }, { "teal": 1705, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1835 + 2366 ] }, { "teal": 1706, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1836 + 2367 ] }, { "teal": 1707, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1837 + 2368 ] }, { "teal": 1708, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1838 + 2369, + 2370, + 2371 ] }, { "teal": 1709, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1839, - 1840, - 1841 + 2372 ] }, { "teal": 1710, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1842 + 2373 ] }, { "teal": 1711, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:436", "pc": [ - 1843 + 2374, + 2375 ] }, { "teal": 1712, - "source": 436, + "source": "examples/reti/stakingPool.algo.ts:437", "pc": [ - 1844, - 1845 + 2376, + 2377 ] }, { "teal": 1713, - "source": 437, + "source": "examples/reti/stakingPool.algo.ts:437", "pc": [ - 1846, - 1847 + 2378, + 2379 ] }, { "teal": 1714, - "source": 437, + "source": "examples/reti/stakingPool.algo.ts:438", "pc": [ - 1848, - 1849 + 2380, + 2381, + 2382, + 2383, + 2384, + 2385, + 2386, + 2387, + 2388, + 2389 ] }, { "teal": 1715, - "source": 438, + "source": "examples/reti/stakingPool.algo.ts:438", "pc": [ - 1850, - 1851 + 2390, + 2391 ] }, { "teal": 1716, - "source": 438, + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1852, - 1853 + 2392, + 2393 ] }, { "teal": 1717, - "source": 439, + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1854, - 1855 + 2394 ] }, { "teal": 1718, - "source": 439, + "source": "examples/reti/stakingPool.algo.ts:439", "pc": [ - 1856 + 2395, + 2396 ] }, { "teal": 1719, - "source": 439, + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1857, - 1858 + 2397, + 2398 ] }, { "teal": 1720, - "source": 440, + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1859 + 2399, + 2400, + 2401 ] }, { "teal": 1721, - "source": 440, + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1860, - 1861 + 2402, + 2403 ] }, { "teal": 1722, - "source": 440, + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1862 + 2404, + 2405 ] }, { "teal": 1723, - "source": 440, + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1863, - 1864 + 2406 ] }, { "teal": 1724, - "source": 440, + "source": "examples/reti/stakingPool.algo.ts:440", "pc": [ - 1865 + 2407, + 2408 ] }, { - "teal": 1725, - "source": 440, + "teal": 1727, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1866, - 1867 + 2409, + 2410 ] }, { "teal": 1728, - "source": 433, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1868 + 2411, + 2412 ] }, { - "teal": 1729, - "source": 433, + "teal": 1731, + "source": "examples/reti/stakingPool.algo.ts:433", "pc": [ - 1869, - 1870 + 2413 ] }, { - "teal": 1732, - "source": 433, + "teal": 1735, + "source": "examples/reti/stakingPool.algo.ts:443", "pc": [ - 1871 + 2414 ] }, { - "teal": 1736, - "source": 443, + "teal": 1742, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1872 + 2415, + 2416 ] }, { "teal": 1743, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1873, - 1874 + 2417, + 2418 ] }, { "teal": 1744, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1875 + 2419 ] }, { "teal": 1745, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1876 + 2420, + 2421 ] }, { "teal": 1746, - "source": 393, + "source": "examples/reti/stakingPool.algo.ts:393", "pc": [ - 1877, - 1878 + 2422, + 2423, + 2424 ] }, { - "teal": 1747, - "source": 393, + "teal": 1750, + "source": "examples/reti/stakingPool.algo.ts:446", + "errorMessage": "account not found", "pc": [ - 1879, - 1880, - 1881 + 2425 ] }, { "teal": 1751, - "source": 446, - "errorMessage": "account not found", + "source": "examples/reti/stakingPool.algo.ts:387", "pc": [ - 1882 + 2426 ] }, { - "teal": 1752, - "source": 387, + "teal": 1756, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1883 + 2427, + 2428, + 2429, + 2430, + 2431, + 2432 ] }, { - "teal": 1757, - "source": 457, + "teal": 1759, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1884, - 1885 + 2433, + 2434, + 2435 ] }, { "teal": 1760, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1886, - 1887, - 1888 + 2436 ] }, { "teal": 1761, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1889 + 2437 ] }, { "teal": 1762, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1890 + 2438, + 2439 ] }, { "teal": 1763, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1891, - 1892 + 2440 ] }, { - "teal": 1764, - "source": 457, + "teal": 1766, + "source": "examples/reti/stakingPool.algo.ts:457", + "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", "pc": [ - 1893 + 2441 ] }, { - "teal": 1767, - "source": 457, - "errorMessage": "argument 0 (staker) for getStakerInfo must be a address", + "teal": 1769, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1894 + 2442, + 2443, + 2444 ] }, { "teal": 1770, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1895, - 1896, - 1897 + 2445 ] }, { "teal": 1771, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1898 + 2446 ] }, { "teal": 1772, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1899 + 2447, + 2448 ] }, { "teal": 1773, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1900 + 2449 ] }, { - "teal": 1774, - "source": 457, + "teal": 1783, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1901 + 2450, + 2451, + 2452 ] }, { - "teal": 1784, - "source": 457, + "teal": 1786, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1902, - 1903, - 1904 + 2453, + 2454 ] }, { - "teal": 1787, - "source": 457, + "teal": 1790, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1905, - 1906 + 2455, + 2456 ] }, { "teal": 1791, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1907 + 2457, + 2458 ] }, { - "teal": 1792, - "source": 458, + "teal": 1796, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1908, - 1909 + 2459, + 2460 ] }, { "teal": 1797, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1910, - 1911 + 2461, + 2462, + 2463 ] }, { "teal": 1798, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1912, - 1913 + 2464 ] }, { "teal": 1799, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1914 + 2465, + 2466, + 2467 ] }, { - "teal": 1800, - "source": 458, + "teal": 1804, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1915, - 1916, - 1917 + 2468, + 2469 ] }, { "teal": 1805, - "source": 459, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1918, - 1919 + 2470, + 2471, + 2472 ] }, { "teal": 1806, - "source": 459, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1920, - 1921 + 2473 ] }, { "teal": 1807, - "source": 459, + "source": "examples/reti/stakingPool.algo.ts:459", "pc": [ - 1922 + 2474, + 2475, + 2476 ] }, { - "teal": 1808, - "source": 459, + "teal": 1812, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1923, - 1924, - 1925 + 2477 ] }, { "teal": 1813, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1926 + 2478, + 2479 ] }, { "teal": 1814, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1927 + 2480, + 2481 ] }, { "teal": 1815, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1928, - 1929 + 2482, + 2483 ] }, { "teal": 1816, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1930 + 2484, + 2485 ] }, { "teal": 1817, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1931, - 1932 + 2486, + 2487, + 2488, + 2489, + 2490 ] }, { "teal": 1818, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1933, - 1934 + 2491 ] }, { "teal": 1819, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1935 + 2492, + 2493 ] }, { "teal": 1820, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1936, - 1937 + 2494, + 2495 ] }, { "teal": 1821, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1938, - 1939 + 2496, + 2497 ] }, { "teal": 1822, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1940, - 1941 + 2498, + 2499 ] }, { "teal": 1823, - "source": 460, + "source": "examples/reti/stakingPool.algo.ts:460", "pc": [ - 1942, - 1943 + 2500 ] }, { - "teal": 1824, - "source": 460, + "teal": 1829, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1944 + 2501, + 2502 ] }, { "teal": 1830, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1945, - 1946 + 2503, + 2504 ] }, { "teal": 1831, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1947 + 2505 ] }, { "teal": 1832, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1948 + 2506, + 2507 ] }, { "teal": 1833, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1949 + 2508 ] }, { "teal": 1834, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1950 + 2509, + 2510 ] }, { "teal": 1835, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1951, - 1952 + 2511, + 2512, + 2513, + 2514, + 2515, + 2516, + 2517, + 2518, + 2519 ] }, { "teal": 1836, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1953 + 2520, + 2521 ] }, { "teal": 1837, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1954, - 1955 + 2522 ] }, { "teal": 1838, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1956 + 2523, + 2524 ] }, { "teal": 1839, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1957, - 1958 + 2525 ] }, { "teal": 1840, - "source": 462, + "source": "examples/reti/stakingPool.algo.ts:462", "pc": [ - 1959 + 2526, + 2527, + 2528 ] }, { - "teal": 1841, - "source": 462, + "teal": 1845, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1960, - 1961, - 1962 + 2529, + 2530 ] }, { "teal": 1846, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1963, - 1964 + 2531, + 2532 ] }, { "teal": 1847, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1965 + 2533 ] }, { "teal": 1848, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1966 + 2534, + 2535 ] }, { "teal": 1849, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1967 + 2536, + 2537, + 2538, + 2539, + 2540, + 2541, + 2542, + 2543, + 2544 ] }, { "teal": 1850, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1968 + 2545, + 2546 ] }, { "teal": 1851, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1969, - 1970 + 2547 ] }, { "teal": 1852, - "source": 463, + "source": "examples/reti/stakingPool.algo.ts:463", "pc": [ - 1971 + 2548, + 2549, + 2550 ] }, { - "teal": 1853, - "source": 463, + "teal": 1859, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1972, - 1973, - 1974 + 2551, + 2552 ] }, { "teal": 1860, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1975, - 1976 + 2553, + 2554 ] }, { "teal": 1861, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1977 + 2555 ] }, { "teal": 1862, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1978 + 2556, + 2557 ] }, { "teal": 1863, - "source": 458, + "source": "examples/reti/stakingPool.algo.ts:458", "pc": [ - 1979, - 1980 + 2558, + 2559, + 2560 ] }, { - "teal": 1864, - "source": 458, + "teal": 1867, + "source": "examples/reti/stakingPool.algo.ts:466", + "errorMessage": "account not found", "pc": [ - 1981, - 1982, - 1983 + 2561 ] }, { - "teal": 1868, - "source": 466, - "errorMessage": "account not found", + "teal": 1871, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1984 + 2562, + 2563 ] }, { "teal": 1872, - "source": 457, + "source": "examples/reti/stakingPool.algo.ts:457", "pc": [ - 1985, - 1986 + 2564 ] }, { - "teal": 1873, - "source": 457, + "teal": 1877, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1987 + 2565, + 2566, + 2567 ] }, { "teal": 1878, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1988, - 1989, - 1990 + 2568 ] }, { - "teal": 1879, - "source": 479, + "teal": 1881, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1991 + 2569, + 2570, + 2571 ] }, { "teal": 1882, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1992, - 1993, - 1994 + 2572 ] }, { - "teal": 1883, - "source": 479, + "teal": 1885, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1995 + 2573, + 2574, + 2575 ] }, { "teal": 1886, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1996, - 1997, - 1998 + 2576 ] }, { "teal": 1887, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 1999 + 2577 ] }, { "teal": 1888, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2000 + 2578, + 2579 ] }, { "teal": 1889, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2001, - 2002 + 2580 ] }, { - "teal": 1890, - "source": 479, + "teal": 1892, + "source": "examples/reti/stakingPool.algo.ts:479", + "errorMessage": "argument 2 (staker) for payTokenReward must be a address", "pc": [ - 2003 + 2581 ] }, { - "teal": 1893, - "source": 479, - "errorMessage": "argument 2 (staker) for payTokenReward must be a address", + "teal": 1895, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2004 + 2582, + 2583, + 2584 ] }, { "teal": 1896, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2005, - 2006, - 2007 + 2585, + 2586 ] }, { "teal": 1897, - "source": 479, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2008 + 2587 ] }, { - "teal": 1898, - "source": 479, + "teal": 1910, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2009 + 2588, + 2589, + 2590 ] }, { - "teal": 1911, - "source": 479, + "teal": 1917, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 2010, - 2011, - 2012 + 2591, + 2592 ] }, { "teal": 1918, - "source": 482, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 2013, - 2014 + 2593, + 2594, + 2595, + 2596, + 2597, + 2598, + 2599, + 2600, + 2601, + 2602, + 2603, + 2604 ] }, { "teal": 1919, - "source": 482, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 2015 + 2605 ] }, { "teal": 1920, - "source": 482, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 2016 + 2606, + 2607 ] }, { "teal": 1921, - "source": 482, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 2017, - 2018 + 2608 ] }, { "teal": 1922, - "source": 482, + "source": "examples/reti/stakingPool.algo.ts:482", "pc": [ - 2019 + 2609 ] }, { - "teal": 1923, - "source": 482, + "teal": 1925, + "source": "examples/reti/stakingPool.algo.ts:481", + "errorMessage": "this can only be called via the validator contract", "pc": [ - 2020 + 2610 ] }, { - "teal": 1926, - "source": 481, - "errorMessage": "this can only be called via the validator contract", + "teal": 1929, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ - 2021 + 2611, + 2612, + 2613, + 2614, + 2615, + 2616, + 2617, + 2618 ] }, { "teal": 1930, - "source": 485, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ - 2022 + 2619 ] }, { "teal": 1931, - "source": 485, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ - 2023 + 2620, + 2621 ] }, { "teal": 1932, - "source": 485, + "source": "examples/reti/stakingPool.algo.ts:485", "pc": [ - 2024 + 2622 ] }, { - "teal": 1933, - "source": 485, + "teal": 1935, + "source": "examples/reti/stakingPool.algo.ts:485", + "errorMessage": "must be pool 1 in order to be called to pay out token rewards", "pc": [ - 2025 + 2623 ] }, { - "teal": 1936, - "source": 485, - "errorMessage": "must be pool 1 in order to be called to pay out token rewards", + "teal": 1939, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ - 2026 + 2624, + 2625 ] }, { "teal": 1940, - "source": 486, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ - 2027, - 2028 + 2626, + 2627 ] }, { "teal": 1941, - "source": 486, + "source": "examples/reti/stakingPool.algo.ts:486", "pc": [ - 2029 + 2628 ] }, { - "teal": 1942, - "source": 486, + "teal": 1944, + "source": "examples/reti/stakingPool.algo.ts:486", + "errorMessage": "can only claim token rewards from validator that has them", "pc": [ - 2030 + 2629 ] }, { - "teal": 1945, - "source": 486, - "errorMessage": "can only claim token rewards from validator that has them", + "teal": 1952, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 2031 + 2630 ] }, { "teal": 1953, - "source": 489, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 2032 + 2631, + 2632 ] }, { "teal": 1954, - "source": 489, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 2033, - 2034 + 2633, + 2634 ] }, { - "teal": 1955, - "source": 489, + "teal": 1958, + "source": "examples/reti/stakingPool.algo.ts:490", "pc": [ - 2035, - 2036 + 2635, + 2636 ] }, { "teal": 1959, - "source": 490, + "source": "examples/reti/stakingPool.algo.ts:490", "pc": [ - 2037, - 2038 + 2637, + 2638 ] }, { - "teal": 1960, - "source": 490, + "teal": 1963, + "source": "examples/reti/stakingPool.algo.ts:491", "pc": [ - 2039, - 2040 + 2639, + 2640 ] }, { "teal": 1964, - "source": 491, + "source": "examples/reti/stakingPool.algo.ts:491", "pc": [ - 2041, - 2042 + 2641, + 2642 ] }, { - "teal": 1965, - "source": 491, + "teal": 1968, + "source": "examples/reti/stakingPool.algo.ts:492", "pc": [ - 2043, - 2044 + 2643, + 2644 ] }, { "teal": 1969, - "source": 492, + "source": "examples/reti/stakingPool.algo.ts:492", "pc": [ - 2045, - 2046 + 2645, + 2646 ] }, { - "teal": 1970, - "source": 492, + "teal": 1972, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 2047, - 2048 + 2647, + 2648 ] }, { "teal": 1973, - "source": 489, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 2049 + 2649, + 2650 ] }, { - "teal": 1974, - "source": 489, + "teal": 1976, + "source": "examples/reti/stakingPool.algo.ts:489", "pc": [ - 2050, - 2051 + 2651 ] }, { "teal": 1977, - "source": 489, + "source": "examples/reti/stakingPool.algo.ts:479", "pc": [ - 2052 + 2652 ] }, { - "teal": 1978, - "source": 479, + "teal": 1982, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2053 + 2653, + 2654, + 2655 ] }, { "teal": 1983, - "source": 505, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2054, - 2055, - 2056 + 2656, + 2657, + 2658 ] }, { - "teal": 1984, - "source": 505, + "teal": 1986, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2057, - 2058, - 2059 + 2659, + 2660, + 2661 ] }, { "teal": 1987, - "source": 505, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2060, - 2061, - 2062 + 2662, + 2663 ] }, { "teal": 1988, - "source": 505, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2063 + 2664 ] }, { - "teal": 1989, - "source": 505, + "teal": 2000, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2064 + 2665, + 2666, + 2667 ] }, { - "teal": 2001, - "source": 505, + "teal": 2004, + "source": "examples/reti/stakingPool.algo.ts:506", "pc": [ - 2065, - 2066, - 2067 + 2668, + 2669, + 2670 ] }, { - "teal": 2005, - "source": 506, + "teal": 2007, + "source": "examples/reti/stakingPool.algo.ts:506", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 2068, - 2069, - 2070 + 2671 ] }, { - "teal": 2008, - "source": 506, - "errorMessage": "can only be called by owner or manager of validator", + "teal": 2011, + "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 2071 + 2672, + 2673, + 2674, + 2675, + 2676, + 2677, + 2678, + 2679, + 2680, + 2681 ] }, { "teal": 2012, - "source": 507, + "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 2072, - 2073, - 2074, - 2075, - 2076, - 2077, - 2078, - 2079, - 2080, - 2081 + 2682, + 2683 ] }, { "teal": 2013, - "source": 507, + "source": "examples/reti/stakingPool.algo.ts:507", "pc": [ - 2082, - 2083 + 2684 ] }, { "teal": 2014, - "source": 507, + "source": "examples/reti/stakingPool.algo.ts:505", "pc": [ - 2084 + 2685 ] }, { - "teal": 2015, - "source": 505, + "teal": 2019, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 2085 + 2686, + 2687, + 2688 ] }, { "teal": 2020, - "source": 518, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 2086, - 2087, - 2088 + 2689, + 2690 ] }, { "teal": 2021, - "source": 518, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 2089 + 2691 ] }, { - "teal": 2022, - "source": 518, + "teal": 2032, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 2090 + 2692, + 2693, + 2694 ] }, { - "teal": 2033, - "source": 518, + "teal": 2035, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 2091, - 2092, - 2093 + 2695, + 2696 ] }, { "teal": 2036, - "source": 518, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 2094, - 2095 + 2697, + 2698 ] }, { - "teal": 2037, - "source": 518, + "teal": 2043, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2096, - 2097 + 2699 ] }, { "teal": 2044, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2098 + 2700, + 2701 ] }, { "teal": 2045, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2099 + 2702, + 2703 ] }, { "teal": 2046, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2100, - 2101 + 2704, + 2705, + 2706, + 2707, + 2708, + 2709 ] }, { "teal": 2047, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2102, - 2103 + 2710, + 2711 ] }, { - "teal": 2048, - "source": 520, + "teal": 2051, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ - 2104, - 2105 + 2712, + 2713, + 2714, + 2715, + 2716, + 2717, + 2718, + 2719, + 2720, + 2721, + 2722, + 2723 ] }, { "teal": 2052, - "source": 521, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ - 2106 + 2724 ] }, { "teal": 2053, - "source": 521, + "source": "examples/reti/stakingPool.algo.ts:521", "pc": [ - 2107 + 2725, + 2726 ] }, { - "teal": 2054, - "source": 521, + "teal": 2057, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ - 2108, - 2109 + 2727, + 2728, + 2729, + 2730, + 2731, + 2732, + 2733, + 2734, + 2735, + 2736, + 2737, + 2738, + 2739 ] }, { "teal": 2058, - "source": 522, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ - 2110 + 2740 ] }, { "teal": 2059, - "source": 522, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ - 2111 + 2741 ] }, { "teal": 2060, - "source": 522, + "source": "examples/reti/stakingPool.algo.ts:522", "pc": [ - 2112 + 2742, + 2743 ] }, { - "teal": 2061, - "source": 522, + "teal": 2063, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2113, - 2114 + 2744, + 2745 ] }, { "teal": 2064, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2115 + 2746, + 2747 ] }, { - "teal": 2065, - "source": 520, + "teal": 2067, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2116, - 2117 + 2748 ] }, { "teal": 2068, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2118 + 2749, + 2750 ] }, { "teal": 2069, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2119, - 2120 + 2751, + 2752 ] }, { "teal": 2070, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2121 + 2753 ] }, { "teal": 2071, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2122 + 2754, + 2755 ] }, { "teal": 2072, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2123, - 2124 + 2756, + 2757, + 2758 ] }, { "teal": 2073, - "source": 520, + "source": "examples/reti/stakingPool.algo.ts:520", "pc": [ - 2125, - 2126, - 2127 + 2759, + 2760 ] }, { - "teal": 2074, - "source": 520, + "teal": 2077, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 2128, - 2129 + 2761, + 2762 ] }, { "teal": 2078, - "source": 529, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 2130, - 2131 + 2763, + 2764, + 2765 ] }, { "teal": 2079, - "source": 529, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 2132, - 2133, - 2134 + 2766 ] }, { "teal": 2080, - "source": 529, + "source": "examples/reti/stakingPool.algo.ts:529", "pc": [ - 2135 + 2767, + 2768 ] }, { - "teal": 2081, - "source": 529, + "teal": 2084, + "source": "examples/reti/stakingPool.algo.ts:530", "pc": [ - 2136, - 2137 + 2769, + 2770 ] }, { "teal": 2085, - "source": 530, + "source": "examples/reti/stakingPool.algo.ts:530", "pc": [ - 2138, - 2139 + 2771, + 2772 ] }, { - "teal": 2086, - "source": 530, + "teal": 2089, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 2140, - 2141 + 2773, + 2774 ] }, { "teal": 2090, - "source": 531, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 2142, - 2143 + 2775, + 2776 ] }, { "teal": 2091, - "source": 531, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 2144, - 2145 + 2777, + 2778 ] }, { "teal": 2092, - "source": 531, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 2146, - 2147 + 2779 ] }, { "teal": 2093, - "source": 531, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 2148 + 2780 ] }, { "teal": 2094, - "source": 531, + "source": "examples/reti/stakingPool.algo.ts:531", "pc": [ - 2149 + 2781, + 2782 ] }, { - "teal": 2095, - "source": 531, + "teal": 2099, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 2150, - 2151 + 2783, + 2784, + 2785 ] }, { "teal": 2100, - "source": 534, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 2152, - 2153, - 2154 + 2786, + 2787, + 2788, + 2789, + 2790, + 2791, + 2792, + 2793, + 2794, + 2795, + 2796, + 2797 ] }, { "teal": 2101, - "source": 534, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 2155, - 2156 + 2798 ] }, { "teal": 2102, - "source": 534, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 2157 + 2799 ] }, { "teal": 2103, - "source": 534, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 2158 + 2800 ] }, { "teal": 2104, - "source": 534, + "source": "examples/reti/stakingPool.algo.ts:534", "pc": [ - 2159 + 2801, + 2802, + 2803 ] }, { - "teal": 2105, - "source": 534, + "teal": 2109, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2160, - 2161, - 2162 + 2804, + 2805, + 2806, + 2807, + 2808, + 2809, + 2810, + 2811, + 2812, + 2813, + 2814, + 2815 ] }, { "teal": 2110, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2163, - 2164 + 2816 ] }, { "teal": 2111, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2165 + 2817, + 2818, + 2819, + 2820, + 2821, + 2822, + 2823, + 2824, + 2825, + 2826, + 2827, + 2828 ] }, { "teal": 2112, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2166, - 2167 + 2829 ] }, { "teal": 2113, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2168 + 2830, + 2831 ] }, { "teal": 2114, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2169, - 2170 + 2832 ] }, { "teal": 2115, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2171 + 2833 ] }, { "teal": 2116, - "source": 535, + "source": "examples/reti/stakingPool.algo.ts:535", "pc": [ - 2172 + 2834, + 2835 ] }, { - "teal": 2117, - "source": 535, + "teal": 2120, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ - 2173, - 2174 + 2836, + 2837 ] }, { "teal": 2121, - "source": 539, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ - 2175, - 2176 + 2838, + 2839 ] }, { "teal": 2122, - "source": 539, + "source": "examples/reti/stakingPool.algo.ts:539", "pc": [ - 2177, - 2178 + 2840 ] }, { - "teal": 2123, - "source": 539, + "teal": 2125, + "source": "examples/reti/stakingPool.algo.ts:539", + "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", "pc": [ - 2179 + 2841 ] }, { - "teal": 2126, - "source": 539, - "errorMessage": "can't call epochBalanceUpdate in same epoch as prior call", + "teal": 2130, + "source": "examples/reti/stakingPool.algo.ts:542", "pc": [ - 2180 + 2842, + 2843, + 2844 ] }, { - "teal": 2131, - "source": 542, + "teal": 2134, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 2181, - 2182, - 2183 + 2845, + 2846, + 2847, + 2848, + 2849, + 2850, + 2851, + 2852, + 2853, + 2854, + 2855, + 2856 ] }, { "teal": 2135, - "source": 545, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 2184, - 2185 + 2857, + 2858 ] }, { "teal": 2136, - "source": 545, + "source": "examples/reti/stakingPool.algo.ts:545", "pc": [ - 2186, - 2187 + 2859 ] }, { - "teal": 2137, - "source": 545, + "teal": 2140, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2188 + 2860, + 2861, + 2862, + 2863, + 2864, + 2865, + 2866, + 2867, + 2868, + 2869, + 2870, + 2871, + 2872 ] }, { "teal": 2141, - "source": 546, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2189, - 2190 + 2873 ] }, { "teal": 2142, - "source": 546, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2191 + 2874, + 2875 ] }, { "teal": 2143, - "source": 546, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2192 + 2876 ] }, { "teal": 2144, - "source": 546, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2193 + 2877, + 2878, + 2879, + 2880, + 2881, + 2882, + 2883, + 2884, + 2885, + 2886, + 2887, + 2888, + 2889 ] }, { "teal": 2145, - "source": 546, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2194, - 2195 + 2890 ] }, { "teal": 2146, - "source": 546, + "source": "examples/reti/stakingPool.algo.ts:546", "pc": [ - 2196 + 2891 ] }, { - "teal": 2147, - "source": 546, + "teal": 2150, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 2197 + 2892, + 2893 ] }, { "teal": 2151, - "source": 551, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 2198, - 2199 + 2894, + 2895, + 2896 ] }, { "teal": 2152, - "source": 551, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 2200, - 2201, - 2202 + 2897 ] }, { "teal": 2153, - "source": 551, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 2203 + 2898, + 2899 ] }, { "teal": 2154, - "source": 551, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 2204 + 2900 ] }, { "teal": 2155, - "source": 551, + "source": "examples/reti/stakingPool.algo.ts:551", "pc": [ - 2205 + 2901, + 2902 ] }, { - "teal": 2156, - "source": 551, + "teal": 2159, + "source": "examples/reti/stakingPool.algo.ts:552", "pc": [ - 2206, - 2207 + 2903, + 2904, + 2905 ] }, { "teal": 2160, - "source": 552, + "source": "examples/reti/stakingPool.algo.ts:552", "pc": [ - 2208, - 2209, - 2210 + 2906, + 2907 ] }, { - "teal": 2161, - "source": 552, + "teal": 2164, + "source": "examples/reti/stakingPool.algo.ts:553", "pc": [ - 2211, - 2212 + 2908, + 2909 ] }, { "teal": 2165, - "source": 553, + "source": "examples/reti/stakingPool.algo.ts:553", "pc": [ - 2213, - 2214 + 2910, + 2911 ] }, { - "teal": 2166, - "source": 553, + "teal": 2170, + "source": "examples/reti/stakingPool.algo.ts:558", "pc": [ - 2215, - 2216 + 2912, + 2913 ] }, { "teal": 2171, - "source": 558, + "source": "examples/reti/stakingPool.algo.ts:558", "pc": [ - 2217, - 2218 + 2914, + 2915, + 2916 ] }, { - "teal": 2172, - "source": 558, + "teal": 2177, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 2219, - 2220, - 2221 + 2917, + 2918, + 2919, + 2920, + 2921, + 2922, + 2923, + 2924 ] }, { "teal": 2178, - "source": 559, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 2222 + 2925 ] }, { "teal": 2179, - "source": 559, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 2223 + 2926, + 2927 ] }, { "teal": 2180, - "source": 559, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 2224 + 2928 ] }, { "teal": 2181, - "source": 559, + "source": "examples/reti/stakingPool.algo.ts:559", "pc": [ - 2225 + 2929, + 2930, + 2931 ] }, { - "teal": 2182, - "source": 559, + "teal": 2189, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2226, - 2227, - 2228 + 2932 ] }, { "teal": 2190, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2229 + 2933, + 2934 ] }, { "teal": 2191, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2230 + 2935, + 2936 ] }, { "teal": 2192, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2231, - 2232 + 2937, + 2938, + 2939, + 2940, + 2941, + 2942 ] }, { "teal": 2193, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2233, - 2234 + 2943, + 2944 ] }, { - "teal": 2194, - "source": 561, + "teal": 2197, + "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 2235, - 2236 + 2945, + 2946, + 2947, + 2948, + 2949, + 2950, + 2951, + 2952, + 2953, + 2954, + 2955, + 2956 ] }, { "teal": 2198, - "source": 562, + "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 2237 + 2957 ] }, { "teal": 2199, - "source": 562, + "source": "examples/reti/stakingPool.algo.ts:562", "pc": [ - 2238 + 2958, + 2959 ] }, { - "teal": 2200, - "source": 562, + "teal": 2203, + "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 2239, - 2240 + 2960, + 2961, + 2962, + 2963, + 2964, + 2965, + 2966, + 2967, + 2968, + 2969, + 2970, + 2971, + 2972 ] }, { "teal": 2204, - "source": 563, + "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 2241 + 2973 ] }, { "teal": 2205, - "source": 563, + "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 2242 + 2974 ] }, { "teal": 2206, - "source": 563, + "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 2243 + 2975, + 2976 ] }, { "teal": 2207, - "source": 563, + "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 2244, - 2245 + 2977, + 2978, + 2979, + 2980, + 2981, + 2982, + 2983, + 2984, + 2985, + 2986 ] }, { "teal": 2208, - "source": 563, + "source": "examples/reti/stakingPool.algo.ts:563", "pc": [ - 2246, - 2247, - 2248, - 2249, - 2250, - 2251, - 2252, - 2253, - 2254, - 2255 + 2987, + 2988 ] }, { - "teal": 2209, - "source": 563, + "teal": 2211, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2256, - 2257 + 2989, + 2990 ] }, { "teal": 2212, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2258 + 2991, + 2992 ] }, { - "teal": 2213, - "source": 561, + "teal": 2215, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2259, - 2260 + 2993 ] }, { "teal": 2216, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2261 + 2994, + 2995 ] }, { "teal": 2217, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2262, - 2263 + 2996, + 2997 ] }, { "teal": 2218, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2264 + 2998 ] }, { "teal": 2219, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2265 + 2999, + 3000 ] }, { "teal": 2220, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2266, - 2267 + 3001, + 3002, + 3003 ] }, { "teal": 2221, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2268, - 2269, - 2270 + 3004 ] }, { "teal": 2222, - "source": 561, + "source": "examples/reti/stakingPool.algo.ts:561", "pc": [ - 2271 + 3005, + 3006 ] }, { - "teal": 2223, - "source": 561, + "teal": 2226, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 2272, - 2273 + 3007, + 3008 ] }, { "teal": 2227, - "source": 565, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 2274, - 2275 + 3009, + 3010 ] }, { "teal": 2228, - "source": 565, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 2276, - 2277 + 3011 ] }, { "teal": 2229, - "source": 565, + "source": "examples/reti/stakingPool.algo.ts:565", "pc": [ - 2278 + 3012, + 3013 ] }, { - "teal": 2230, - "source": 565, + "teal": 2235, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 2279, - 2280 + 3014, + 3015, + 3016, + 3017, + 3018, + 3019, + 3020, + 3021 ] }, { "teal": 2236, - "source": 570, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 2281 + 3022 ] }, { "teal": 2237, - "source": 570, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 2282 + 3023, + 3024 ] }, { "teal": 2238, - "source": 570, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 2283 + 3025 ] }, { "teal": 2239, - "source": 570, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 2284 + 3026, + 3027, + 3028 ] }, { - "teal": 2240, - "source": 570, + "teal": 2247, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2285, - 2286, - 2287 + 3029 ] }, { "teal": 2248, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2288 + 3030, + 3031 ] }, { "teal": 2249, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2289 + 3032, + 3033 ] }, { "teal": 2250, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2290, - 2291 + 3034, + 3035, + 3036, + 3037, + 3038, + 3039 ] }, { "teal": 2251, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2292, - 2293 + 3040, + 3041 ] }, { - "teal": 2252, - "source": 571, + "teal": 2255, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ - 2294, - 2295 + 3042, + 3043, + 3044, + 3045, + 3046, + 3047, + 3048, + 3049, + 3050, + 3051, + 3052, + 3053 ] }, { "teal": 2256, - "source": 572, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ - 2296 + 3054 ] }, { "teal": 2257, - "source": 572, + "source": "examples/reti/stakingPool.algo.ts:572", "pc": [ - 2297 + 3055, + 3056 ] }, { - "teal": 2258, - "source": 572, + "teal": 2261, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ - 2298, - 2299 + 3057, + 3058, + 3059, + 3060, + 3061, + 3062, + 3063, + 3064, + 3065, + 3066, + 3067, + 3068, + 3069 ] }, { "teal": 2262, - "source": 573, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ - 2300 + 3070 ] }, { "teal": 2263, - "source": 573, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ - 2301 + 3071 ] }, { "teal": 2264, - "source": 573, + "source": "examples/reti/stakingPool.algo.ts:573", "pc": [ - 2302 + 3072, + 3073 ] }, { - "teal": 2265, - "source": 573, + "teal": 2267, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2303, - 2304 + 3074, + 3075 ] }, { "teal": 2268, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2305 + 3076, + 3077 ] }, { - "teal": 2269, - "source": 571, + "teal": 2271, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2306, - 2307 + 3078 ] }, { "teal": 2272, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2308 + 3079, + 3080 ] }, { "teal": 2273, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2309, - 2310 + 3081, + 3082 ] }, { "teal": 2274, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2311 + 3083 ] }, { "teal": 2275, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2312 + 3084, + 3085 ] }, { "teal": 2276, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2313, - 2314 + 3086, + 3087, + 3088 ] }, { "teal": 2277, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:571", "pc": [ - 2315, - 2316, - 2317 + 3089, + 3090 ] }, { "teal": 2278, - "source": 571, + "source": "examples/reti/stakingPool.algo.ts:570", "pc": [ - 2318, - 2319 + 3091, + 3092, + 3093 ] }, { - "teal": 2279, - "source": 570, + "teal": 2286, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2320, - 2321, - 2322 + 3094 ] }, { "teal": 2287, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2323 + 3095, + 3096 ] }, { "teal": 2288, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2324 + 3097, + 3098 ] }, { "teal": 2289, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2325, - 2326 + 3099, + 3100, + 3101, + 3102, + 3103, + 3104 ] }, { "teal": 2290, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2327, - 2328 + 3105, + 3106 ] }, { - "teal": 2291, - "source": 577, + "teal": 2294, + "source": "examples/reti/stakingPool.algo.ts:578", "pc": [ - 2329, - 2330 + 3107, + 3108 ] }, { "teal": 2295, - "source": 578, + "source": "examples/reti/stakingPool.algo.ts:578", "pc": [ - 2331, - 2332 + 3109, + 3110 ] }, { - "teal": 2296, - "source": 578, + "teal": 2299, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2333, - 2334 + 3111, + 3112, + 3113, + 3114, + 3115, + 3116, + 3117, + 3118, + 3119, + 3120, + 3121, + 3122, + 3123 ] }, { "teal": 2300, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2335 + 3124 ] }, { "teal": 2301, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2336 + 3125 ] }, { "teal": 2302, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2337 + 3126, + 3127, + 3128, + 3129, + 3130, + 3131, + 3132, + 3133 ] }, { "teal": 2303, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2338 + 3134 ] }, { "teal": 2304, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2339 + 3135 ] }, { "teal": 2305, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2340 + 3136 ] }, { "teal": 2306, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2341 + 3137, + 3138, + 3139 ] }, { "teal": 2307, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2342, - 2343, - 2344 + 3140 ] }, { "teal": 2308, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2345 + 3141 ] }, { "teal": 2309, - "source": 579, + "source": "examples/reti/stakingPool.algo.ts:579", "pc": [ - 2346 + 3142, + 3143 ] }, { - "teal": 2310, - "source": 579, + "teal": 2312, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2347, - 2348 + 3144, + 3145 ] }, { "teal": 2313, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2349 + 3146, + 3147 ] }, { - "teal": 2314, - "source": 577, + "teal": 2316, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2350, - 2351 + 3148 ] }, { "teal": 2317, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2352 + 3149, + 3150 ] }, { "teal": 2318, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2353, - 2354 + 3151, + 3152 ] }, { "teal": 2319, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2355 + 3153 ] }, { "teal": 2320, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2356 + 3154, + 3155 ] }, { "teal": 2321, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2357, - 2358 + 3156, + 3157, + 3158 ] }, { "teal": 2322, - "source": 577, + "source": "examples/reti/stakingPool.algo.ts:577", "pc": [ - 2359, - 2360, - 2361 + 3159, + 3160 ] }, { - "teal": 2323, - "source": 577, + "teal": 2332, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2362, - 2363 + 3161 ] }, { "teal": 2333, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2364 + 3162, + 3163 ] }, { "teal": 2334, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2365 + 3164, + 3165 ] }, { "teal": 2335, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2366, - 2367 + 3166, + 3167, + 3168, + 3169, + 3170, + 3171 ] }, { "teal": 2336, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2368, - 2369, - 2370, - 2371, - 2372, - 2373 + 3172, + 3173 ] }, { - "teal": 2337, - "source": 586, + "teal": 2340, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2374, - 2375 + 3174, + 3175, + 3176, + 3177, + 3178, + 3179, + 3180, + 3181, + 3182, + 3183, + 3184, + 3185 ] }, { "teal": 2341, - "source": 587, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2376 + 3186 ] }, { "teal": 2342, - "source": 587, + "source": "examples/reti/stakingPool.algo.ts:587", "pc": [ - 2377 + 3187, + 3188 ] }, { - "teal": 2343, - "source": 587, + "teal": 2346, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ - 2378, - 2379 + 3189, + 3190, + 3191, + 3192, + 3193, + 3194, + 3195, + 3196, + 3197, + 3198, + 3199, + 3200, + 3201 ] }, { "teal": 2347, - "source": 588, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ - 2380 + 3202 ] }, { "teal": 2348, - "source": 588, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ - 2381 + 3203 ] }, { "teal": 2349, - "source": 588, + "source": "examples/reti/stakingPool.algo.ts:588", "pc": [ - 2382 + 3204, + 3205 ] }, { - "teal": 2350, - "source": 588, + "teal": 2352, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2383, - 2384 + 3206, + 3207 ] }, { "teal": 2353, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2385 + 3208, + 3209 ] }, { - "teal": 2354, - "source": 586, + "teal": 2356, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2386, - 2387 + 3210 ] }, { "teal": 2357, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2388 + 3211, + 3212 ] }, { "teal": 2358, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2389, - 2390 + 3213, + 3214 ] }, { "teal": 2359, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2391 + 3215 ] }, { "teal": 2360, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2392 + 3216, + 3217 ] }, { "teal": 2361, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2393, - 2394 + 3218, + 3219, + 3220 ] }, { "teal": 2362, - "source": 586, + "source": "examples/reti/stakingPool.algo.ts:586", "pc": [ - 2395, - 2396, - 2397 + 3221, + 3222 ] }, { - "teal": 2363, - "source": 586, + "teal": 2366, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2398, - 2399 + 3223, + 3224 ] }, { "teal": 2367, - "source": 590, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2400, - 2401 + 3225, + 3226, + 3227 ] }, { "teal": 2368, - "source": 590, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2402, - 2403, - 2404 + 3228 ] }, { "teal": 2369, - "source": 590, + "source": "examples/reti/stakingPool.algo.ts:590", "pc": [ - 2405 + 3229, + 3230 ] }, { - "teal": 2370, - "source": 590, + "teal": 2373, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2406, - 2407 + 3231, + 3232 ] }, { "teal": 2374, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2408, - 2409 + 3233, + 3234 ] }, { "teal": 2375, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2410, - 2411 + 3235 ] }, { "teal": 2376, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2412 + 3236, + 3237, + 3238, + 3239, + 3240, + 3241, + 3242, + 3243 ] }, { "teal": 2377, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2413, - 2414 + 3244 ] }, { "teal": 2378, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2415 + 3245 ] }, { "teal": 2379, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2416 + 3246, + 3247 ] }, { "teal": 2380, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2417, - 2418 + 3248, + 3249 ] }, { "teal": 2381, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2419, - 2420 + 3250 ] }, { "teal": 2382, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2421 + 3251 ] }, { "teal": 2383, - "source": 596, + "source": "examples/reti/stakingPool.algo.ts:596", "pc": [ - 2422 + 3252, + 3253 ] }, { - "teal": 2384, - "source": 596, + "teal": 2387, + "source": "examples/reti/stakingPool.algo.ts:597", "pc": [ - 2423, - 2424 + 3254, + 3255 ] }, { "teal": 2388, - "source": 597, + "source": "examples/reti/stakingPool.algo.ts:597", "pc": [ - 2425 + 3256, + 3257 ] }, { - "teal": 2389, - "source": 597, + "teal": 2392, + "source": "examples/reti/stakingPool.algo.ts:598", "pc": [ - 2426, - 2427 + 3258, + 3259, + 3260 ] }, { "teal": 2393, - "source": 598, + "source": "examples/reti/stakingPool.algo.ts:598", "pc": [ - 2428, - 2429, - 2430 + 3261, + 3262 ] }, { - "teal": 2394, - "source": 598, + "teal": 2398, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2431, - 2432 + 3263, + 3264 ] }, { "teal": 2399, - "source": 606, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2433, - 2434 + 3265, + 3266, + 3267 ] }, { "teal": 2400, - "source": 606, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2435, - 2436, - 2437 + 3268 ] }, { "teal": 2401, - "source": 606, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2438 + 3269, + 3270 ] }, { "teal": 2402, - "source": 606, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2439, - 2440 + 3271 ] }, { "teal": 2403, - "source": 606, + "source": "examples/reti/stakingPool.algo.ts:606", "pc": [ - 2441 + 3272, + 3273, + 3274 ] }, { - "teal": 2404, - "source": 606, + "teal": 2408, + "source": "examples/reti/stakingPool.algo.ts:607", "pc": [ - 2442, - 2443, - 2444 + 3275, + 3276 ] }, { "teal": 2409, - "source": 607, + "source": "examples/reti/stakingPool.algo.ts:607", "pc": [ - 2445 + 3277, + 3278 ] }, { - "teal": 2410, - "source": 607, + "teal": 2414, + "source": "examples/reti/stakingPool.algo.ts:613", "pc": [ - 2446, - 2447 + 3279, + 3280 ] }, { "teal": 2415, - "source": 613, + "source": "examples/reti/stakingPool.algo.ts:613", "pc": [ - 2448 + 3281, + 3282 ] }, { - "teal": 2416, - "source": 613, + "teal": 2419, + "source": "examples/reti/stakingPool.algo.ts:614", "pc": [ - 2449, - 2450 + 3283, + 3284 ] }, { "teal": 2420, - "source": 614, + "source": "examples/reti/stakingPool.algo.ts:614", "pc": [ - 2451 + 3285, + 3286 ] }, { - "teal": 2421, - "source": 614, + "teal": 2424, + "source": "examples/reti/stakingPool.algo.ts:615", "pc": [ - 2452, - 2453 + 3287, + 3288 ] }, { "teal": 2425, - "source": 615, + "source": "examples/reti/stakingPool.algo.ts:615", "pc": [ - 2454 + 3289, + 3290 ] }, { - "teal": 2426, - "source": 615, + "teal": 2429, + "source": "examples/reti/stakingPool.algo.ts:616", "pc": [ - 2455, - 2456 + 3291, + 3292 ] }, { "teal": 2430, - "source": 616, + "source": "examples/reti/stakingPool.algo.ts:616", "pc": [ - 2457 + 3293, + 3294 ] }, { - "teal": 2431, - "source": 616, + "teal": 2435, + "source": "examples/reti/stakingPool.algo.ts:617", "pc": [ - 2458, - 2459 + 3295, + 3296 ] }, { "teal": 2436, - "source": 617, + "source": "examples/reti/stakingPool.algo.ts:617", "pc": [ - 2460, - 2461 + 3297, + 3298, + 3299 ] }, { - "teal": 2437, - "source": 617, + "teal": 2442, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2462, - 2463, - 2464 + 3300, + 3301 ] }, { "teal": 2443, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2465, - 2466 + 3302, + 3303 ] }, { "teal": 2444, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2467, - 2468 + 3304, + 3305, + 3306 ] }, { "teal": 2445, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2469, - 2470, - 2471 + 3307 ] }, { "teal": 2446, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2472 + 3308, + 3309 ] }, { "teal": 2447, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2473, - 2474 + 3310 ] }, { "teal": 2448, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2475 + 3311, + 3312 ] }, { "teal": 2449, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:619", "pc": [ - 2476, - 2477 + 3313 ] }, { "teal": 2450, - "source": 619, + "source": "examples/reti/stakingPool.algo.ts:618", "pc": [ - 2478 + 3314, + 3315 ] }, { - "teal": 2451, - "source": 618, + "teal": 2455, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2479, - 2480 + 3316, + 3317 ] }, { "teal": 2456, - "source": 623, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2481, - 2482 + 3318, + 3319 ] }, { "teal": 2457, - "source": 623, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2483, - 2484 + 3320, + 3321, + 3322 ] }, { "teal": 2458, - "source": 623, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2485, - 2486, - 2487 + 3323 ] }, { "teal": 2459, - "source": 623, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2488 + 3324 ] }, { "teal": 2460, - "source": 623, + "source": "examples/reti/stakingPool.algo.ts:623", "pc": [ - 2489 + 3325, + 3326, + 3327 ] }, { - "teal": 2461, - "source": 623, + "teal": 2465, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2490, - 2491, - 2492 + 3328, + 3329 ] }, { "teal": 2466, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2493, - 2494 + 3330, + 3331 ] }, { "teal": 2467, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2495 + 3332, + 3333, + 3334, + 3335, + 3336, + 3337, + 3338, + 3339 ] }, { "teal": 2468, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2496 + 3340 ] }, { "teal": 2469, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2497 + 3341, + 3342 ] }, { "teal": 2470, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2498 + 3343 ] }, { "teal": 2471, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2499 + 3344, + 3345 ] }, { "teal": 2472, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2500, - 2501 + 3346 ] }, { "teal": 2473, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2502 + 3347 ] }, { "teal": 2474, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2503 + 3348, + 3349 ] }, { "teal": 2475, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2504, - 2505 + 3350 ] }, { "teal": 2476, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2506 + 3351 ] }, { "teal": 2477, - "source": 629, + "source": "examples/reti/stakingPool.algo.ts:629", "pc": [ - 2507 + 3352, + 3353 ] }, { - "teal": 2478, - "source": 629, + "teal": 2481, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2508, - 2509 + 3354, + 3355 ] }, { "teal": 2482, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2510, - 2511 + 3356, + 3357, + 3358 ] }, { "teal": 2483, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2512, - 2513, - 2514 + 3359 ] }, { "teal": 2484, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2515 + 3360, + 3361 ] }, { "teal": 2485, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2516, - 2517 + 3362 ] }, { "teal": 2486, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2518 + 3363, + 3364 ] }, { "teal": 2487, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2519 + 3365, + 3366, + 3367, + 3368 ] }, { "teal": 2488, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2520, - 2521 + 3369 ] }, { "teal": 2489, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2522 + 3370 ] }, { "teal": 2490, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2523 + 3371 ] }, { "teal": 2491, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2524 + 3372 ] }, { "teal": 2492, - "source": 632, + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2525 + 3373 ] }, { - "teal": 2493, - "source": 632, + "teal": 2495, + "source": "examples/reti/stakingPool.algo.ts:632", + "errorMessage": "wideRatio failed", "pc": [ - 2526 + 3374 ] }, { "teal": 2496, - "source": 632, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:632", "pc": [ - 2527 + 3375, + 3376 ] }, { - "teal": 2497, - "source": 632, + "teal": 2504, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2528, - 2529 + 3377, + 3378 ] }, { "teal": 2505, - "source": 635, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2530, - 2531 + 3379, + 3380 ] }, { "teal": 2506, - "source": 635, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2532 + 3381 ] }, { "teal": 2507, - "source": 635, + "source": "examples/reti/stakingPool.algo.ts:635", "pc": [ - 2533 + 3382, + 3383, + 3384 ] }, { - "teal": 2508, - "source": 635, + "teal": 2513, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2534, - 2535, - 2536 + 3385, + 3386 ] }, { "teal": 2514, - "source": 640, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2537, - 2538 + 3387, + 3388, + 3389, + 3390 ] }, { "teal": 2515, - "source": 640, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2539, - 2540 + 3391 ] }, { "teal": 2516, - "source": 640, + "source": "examples/reti/stakingPool.algo.ts:640", "pc": [ - 2541 + 3392, + 3393, + 3394 ] }, { - "teal": 2517, - "source": 640, + "teal": 2521, + "source": "examples/reti/stakingPool.algo.ts:641", "pc": [ - 2542, - 2543, - 2544 + 3395, + 3396, + 3397, + 3398, + 3399, + 3400, + 3401, + 3402, + 3403, + 3404, + 3405, + 3406, + 3407, + 3408, + 3409, + 3410, + 3411, + 3412, + 3413, + 3414, + 3415, + 3416, + 3417, + 3418 ] }, { "teal": 2522, - "source": 641, + "source": "examples/reti/stakingPool.algo.ts:641", "pc": [ - 2545, - 2546, - 2547, - 2548, - 2549, - 2550, - 2551, - 2552, - 2553, - 2554, - 2555, - 2556, - 2557, - 2558, - 2559, - 2560, - 2561, - 2562, - 2563, - 2564, - 2565, - 2566, - 2567, - 2568 + 3419 ] }, { - "teal": 2523, - "source": 641, + "teal": 2526, + "source": "examples/reti/stakingPool.algo.ts:642", "pc": [ - 2569 + 3420 ] }, { - "teal": 2527, - "source": 642, + "teal": 2534, + "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2570 + 3421, + 3422 ] }, { "teal": 2535, - "source": 646, + "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2571, - 2572 + 3423, + 3424, + 3425 ] }, { - "teal": 2536, - "source": 646, + "teal": 2540, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2573, - 2574, - 2575 + 3426, + 3427 ] }, { "teal": 2541, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2576, - 2577 + 3428, + 3429 ] }, { "teal": 2542, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2578, - 2579 + 3430 ] }, { "teal": 2543, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2580 + 3431, + 3432 ] }, { "teal": 2544, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2581 + 3433, + 3434 ] }, { "teal": 2545, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2582, - 2583 + 3435, + 3436, + 3437 ] }, { "teal": 2546, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2584, - 2585, - 2586 + 3438 ] }, { "teal": 2547, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2587 + 3439 ] }, { "teal": 2548, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2588 + 3440 ] }, { "teal": 2549, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2589 + 3441 ] }, { "teal": 2550, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2590 + 3442 ] }, { "teal": 2551, - "source": 649, + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2591 + 3443 ] }, { - "teal": 2552, - "source": 649, + "teal": 2554, + "source": "examples/reti/stakingPool.algo.ts:649", + "errorMessage": "wideRatio failed", "pc": [ - 2592 + 3444 ] }, { "teal": 2555, - "source": 649, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:649", "pc": [ - 2593 + 3445, + 3446 ] }, { - "teal": 2556, - "source": 649, + "teal": 2559, + "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2594, - 2595 + 3447, + 3448 ] }, { "teal": 2560, - "source": 651, + "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2596, - 2597 + 3449, + 3450 ] }, { "teal": 2561, - "source": 651, + "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2598, - 2599 + 3451 ] }, { "teal": 2562, - "source": 651, + "source": "examples/reti/stakingPool.algo.ts:651", "pc": [ - 2600 + 3452, + 3453 ] }, { - "teal": 2563, - "source": 651, + "teal": 2570, + "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2601, - 2602 + 3454 ] }, { "teal": 2571, - "source": 652, + "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2603 + 3455, + 3456 ] }, { "teal": 2572, - "source": 652, + "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2604 + 3457, + 3458 ] }, { - "teal": 2573, - "source": 652, + "teal": 2576, + "source": "examples/reti/stakingPool.algo.ts:653", "pc": [ - 2605, - 2606 + 3459, + 3460 ] }, { "teal": 2577, - "source": 653, + "source": "examples/reti/stakingPool.algo.ts:653", "pc": [ - 2607, - 2608 + 3461, + 3462 ] }, { - "teal": 2578, - "source": 653, + "teal": 2581, + "source": "examples/reti/stakingPool.algo.ts:654", "pc": [ - 2609, - 2610 + 3463, + 3464, + 3465 ] }, { "teal": 2582, - "source": 654, + "source": "examples/reti/stakingPool.algo.ts:654", "pc": [ - 2611, - 2612, - 2613 + 3466, + 3467 ] }, { - "teal": 2583, - "source": 654, + "teal": 2586, + "source": "examples/reti/stakingPool.algo.ts:655", "pc": [ - 2614, - 2615 + 3468, + 3469, + 3470, + 3471, + 3472, + 3473, + 3474, + 3475, + 3476, + 3477, + 3478, + 3479, + 3480, + 3481, + 3482, + 3483, + 3484, + 3485, + 3486, + 3487, + 3488, + 3489, + 3490, + 3491, + 3492, + 3493, + 3494, + 3495, + 3496, + 3497, + 3498, + 3499, + 3500, + 3501, + 3502, + 3503 ] }, { "teal": 2587, - "source": 655, + "source": "examples/reti/stakingPool.algo.ts:655", "pc": [ - 2616, - 2617, - 2618, - 2619, - 2620, - 2621, - 2622, - 2623, - 2624, - 2625, - 2626, - 2627, - 2628, - 2629, - 2630, - 2631, - 2632, - 2633, - 2634, - 2635, - 2636, - 2637, - 2638, - 2639, - 2640, - 2641, - 2642, - 2643, - 2644, - 2645, - 2646, - 2647, - 2648, - 2649, - 2650, - 2651 + 3504, + 3505 ] }, { - "teal": 2588, - "source": 655, + "teal": 2590, + "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2652, - 2653 + 3506, + 3507 ] }, { "teal": 2591, - "source": 652, + "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2654 + 3508, + 3509 ] }, { - "teal": 2592, - "source": 652, + "teal": 2594, + "source": "examples/reti/stakingPool.algo.ts:652", "pc": [ - 2655, - 2656 + 3510 ] }, { - "teal": 2595, - "source": 652, + "teal": 2598, + "source": "examples/reti/stakingPool.algo.ts:658", "pc": [ - 2657 + 3511, + 3512 ] }, { "teal": 2599, - "source": 658, + "source": "examples/reti/stakingPool.algo.ts:658", "pc": [ - 2658, - 2659 + 3513, + 3514 ] }, { "teal": 2600, - "source": 658, + "source": "examples/reti/stakingPool.algo.ts:646", "pc": [ - 2660, - 2661 + 3515, + 3516, + 3517 ] }, { - "teal": 2601, - "source": 646, + "teal": 2605, + "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2662, - 2663, - 2664 + 3518, + 3519 ] }, { "teal": 2606, - "source": 659, + "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2665, - 2666 + 3520, + 3521, + 3522 ] }, { "teal": 2607, - "source": 659, + "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2667, - 2668, - 2669 + 3523 ] }, { "teal": 2608, - "source": 659, + "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2670 + 3524, + 3525 ] }, { "teal": 2609, - "source": 659, + "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2671 + 3526 ] }, { "teal": 2610, - "source": 659, + "source": "examples/reti/stakingPool.algo.ts:659", "pc": [ - 2672 + 3527, + 3528, + 3529 ] }, { - "teal": 2611, - "source": 659, + "teal": 2618, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2673, - 2674, - 2675 + 3530, + 3531 ] }, { "teal": 2619, - "source": 663, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2676, - 2677 + 3532, + 3533 ] }, { "teal": 2620, - "source": 663, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2678, - 2679 + 3534, + 3535, + 3536 ] }, { "teal": 2621, - "source": 663, + "source": "examples/reti/stakingPool.algo.ts:663", "pc": [ - 2680, - 2681, - 2682 + 3537 ] }, { "teal": 2622, - "source": 663, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2683 + 3538 ] }, { "teal": 2623, - "source": 662, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2684 + 3539, + 3540 ] }, { "teal": 2624, - "source": 662, + "source": "examples/reti/stakingPool.algo.ts:664", "pc": [ - 2685 + 3541, + 3542, + 3543, + 3544 ] }, { "teal": 2625, - "source": 664, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2686, - 2687 + 3545 ] }, { "teal": 2626, - "source": 662, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2688 + 3546 ] }, { "teal": 2627, - "source": 662, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2689 + 3547 ] }, { "teal": 2628, - "source": 662, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2690 + 3548 ] }, { "teal": 2629, - "source": 662, + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2691 + 3549 ] }, { - "teal": 2630, - "source": 662, + "teal": 2632, + "source": "examples/reti/stakingPool.algo.ts:662", + "errorMessage": "wideRatio failed", "pc": [ - 2692 + 3550 ] }, { "teal": 2633, - "source": 662, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:662", "pc": [ - 2693 + 3551, + 3552 ] }, { - "teal": 2634, - "source": 662, + "teal": 2637, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2694, - 2695 + 3553, + 3554 ] }, { "teal": 2638, - "source": 668, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2696, - 2697 + 3555, + 3556 ] }, { "teal": 2639, - "source": 668, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2698, - 2699 + 3557 ] }, { "teal": 2640, - "source": 668, + "source": "examples/reti/stakingPool.algo.ts:668", "pc": [ - 2700 + 3558, + 3559 ] }, { - "teal": 2641, - "source": 668, + "teal": 2645, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2701, - 2702 + 3560, + 3561 ] }, { "teal": 2646, - "source": 675, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2703, - 2704 + 3562, + 3563 ] }, { "teal": 2647, - "source": 675, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2705 + 3564 ] }, { "teal": 2648, - "source": 675, + "source": "examples/reti/stakingPool.algo.ts:675", "pc": [ - 2706 + 3565, + 3566, + 3567 ] }, { - "teal": 2649, - "source": 675, + "teal": 2653, + "source": "examples/reti/stakingPool.algo.ts:678", "pc": [ - 2707, - 2708, - 2709 + 3568, + 3569 ] }, { "teal": 2654, - "source": 678, + "source": "examples/reti/stakingPool.algo.ts:678", "pc": [ - 2710 + 3570, + 3571 ] }, { - "teal": 2655, - "source": 678, + "teal": 2660, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2711, - 2712 + 3572, + 3573 ] }, { "teal": 2661, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2713, - 2714 + 3574, + 3575, + 3576 ] }, { "teal": 2662, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2715, - 2716, - 2717 + 3577, + 3578 ] }, { "teal": 2663, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2718, - 2719 + 3579, + 3580, + 3581 ] }, { "teal": 2664, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2720, - 2721, - 2722 + 3582 ] }, { "teal": 2665, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2723 + 3583 ] }, { "teal": 2666, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2724 + 3584, + 3585, + 3586 ] }, { "teal": 2667, - "source": 680, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2725, - 2726, - 2727 + 3587, + 3588 ] }, { "teal": 2668, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2728, - 2729 + 3589, + 3590, + 3591 ] }, { "teal": 2669, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2730, - 2731, - 2732 + 3592, + 3593 ] }, { "teal": 2670, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2733, - 2734 + 3594 ] }, { "teal": 2671, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2735 + 3595, + 3596 ] }, { "teal": 2672, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2736, - 2737 + 3597, + 3598, + 3599 ] }, { "teal": 2673, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2738, - 2739, - 2740 + 3600, + 3601 ] }, { "teal": 2674, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2741, - 2742 + 3602 ] }, { "teal": 2675, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2743 + 3603 ] }, { "teal": 2676, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2744 + 3604, + 3605, + 3606, + 3607, + 3608 ] }, { "teal": 2677, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:681", "pc": [ - 2745, - 2746 + 3609 ] }, { "teal": 2678, - "source": 681, + "source": "examples/reti/stakingPool.algo.ts:680", "pc": [ - 2747 + 3610 ] }, { - "teal": 2679, - "source": 680, + "teal": 2681, + "source": "examples/reti/stakingPool.algo.ts:679", "pc": [ - 2748 + 3611, + 3612, + 3613 ] }, { - "teal": 2682, - "source": 679, + "teal": 2686, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2749, - 2750, - 2751 + 3614, + 3615 ] }, { "teal": 2687, - "source": 683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2752, - 2753 + 3616, + 3617, + 3618, + 3619, + 3620 ] }, { "teal": 2688, - "source": 683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2754, - 2755 + 3621 ] }, { "teal": 2689, - "source": 683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2756 + 3622, + 3623, + 3624 ] }, { "teal": 2690, - "source": 683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2757, - 2758, - 2759 + 3625, + 3626 ] }, { "teal": 2691, - "source": 683, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2760, - 2761 + 3627, + 3628, + 3629 ] }, { - "teal": 2692, - "source": 683, + "teal": 2694, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2762, - 2763, - 2764 + 3630, + 3631, + 3632, + 3633, + 3634 ] }, { - "teal": 2695, - "source": 683, + "teal": 2697, + "source": "examples/reti/stakingPool.algo.ts:683", "pc": [ - 2765, - 2766 + 3635, + 3636 ] }, { - "teal": 2698, - "source": 683, + "teal": 2705, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2767, - 2768 + 3637 ] }, { "teal": 2706, - "source": 684, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2769 + 3638, + 3639 ] }, { "teal": 2707, - "source": 684, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2770 + 3640, + 3641 ] }, { - "teal": 2708, - "source": 684, + "teal": 2711, + "source": "examples/reti/stakingPool.algo.ts:685", "pc": [ - 2771, - 2772 + 3642, + 3643 ] }, { "teal": 2712, - "source": 685, + "source": "examples/reti/stakingPool.algo.ts:685", "pc": [ - 2773, - 2774 + 3644, + 3645 ] }, { - "teal": 2713, - "source": 685, + "teal": 2716, + "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2775, - 2776 + 3646, + 3647 ] }, { "teal": 2717, - "source": 686, + "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2777, - 2778 + 3648, + 3649, + 3650 ] }, { "teal": 2718, - "source": 686, + "source": "examples/reti/stakingPool.algo.ts:686", "pc": [ - 2779, - 2780, - 2781 + 3651, + 3652 ] }, { - "teal": 2719, - "source": 686, + "teal": 2722, + "source": "examples/reti/stakingPool.algo.ts:687", "pc": [ - 2782, - 2783 + 3653, + 3654, + 3655, + 3656, + 3657, + 3658, + 3659, + 3660, + 3661, + 3662, + 3663, + 3664, + 3665, + 3666, + 3667, + 3668, + 3669, + 3670, + 3671, + 3672, + 3673, + 3674, + 3675, + 3676, + 3677, + 3678, + 3679, + 3680, + 3681, + 3682, + 3683, + 3684, + 3685, + 3686, + 3687, + 3688, + 3689, + 3690, + 3691, + 3692, + 3693, + 3694, + 3695, + 3696, + 3697, + 3698, + 3699, + 3700, + 3701, + 3702, + 3703, + 3704, + 3705, + 3706, + 3707 ] }, { "teal": 2723, - "source": 687, + "source": "examples/reti/stakingPool.algo.ts:687", "pc": [ - 2784, - 2785, - 2786, - 2787, - 2788, - 2789, - 2790, - 2791, - 2792, - 2793, - 2794, - 2795, - 2796, - 2797, - 2798, - 2799, - 2800, - 2801, - 2802, - 2803, - 2804, - 2805, - 2806, - 2807, - 2808, - 2809, - 2810, - 2811, - 2812, - 2813, - 2814, - 2815, - 2816, - 2817, - 2818, - 2819, - 2820, - 2821, - 2822, - 2823, - 2824, - 2825, - 2826, - 2827, - 2828, - 2829, - 2830, - 2831, - 2832, - 2833, - 2834, - 2835, - 2836, - 2837, - 2838 + 3708, + 3709 ] }, { - "teal": 2724, - "source": 687, + "teal": 2726, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2839, - 2840 + 3710, + 3711 ] }, { "teal": 2727, - "source": 684, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2841 + 3712, + 3713 ] }, { - "teal": 2728, - "source": 684, + "teal": 2730, + "source": "examples/reti/stakingPool.algo.ts:684", "pc": [ - 2842, - 2843 + 3714 ] }, { - "teal": 2731, - "source": 684, + "teal": 2736, + "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2844 + 3715, + 3716 ] }, { "teal": 2737, - "source": 690, + "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2845, - 2846 + 3717, + 3718 ] }, { "teal": 2738, - "source": 690, + "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2847, - 2848 + 3719 ] }, { "teal": 2739, - "source": 690, + "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2849 + 3720, + 3721 ] }, { "teal": 2740, - "source": 690, + "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2850 + 3722 ] }, { "teal": 2741, - "source": 690, + "source": "examples/reti/stakingPool.algo.ts:690", "pc": [ - 2851 + 3723, + 3724, + 3725 ] }, { - "teal": 2742, - "source": 690, + "teal": 2750, + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2852, - 2853, - 2854 + 3726 ] }, { "teal": 2751, - "source": 691, + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2855 + 3727, + 3728 ] }, { "teal": 2752, - "source": 691, + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2856 + 3729, + 3730 ] }, { - "teal": 2753, - "source": 691, + "teal": 2756, + "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2857, - 2858 + 3731, + 3732 ] }, { "teal": 2757, - "source": 692, + "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2859, - 2860 + 3733, + 3734 ] }, { "teal": 2758, - "source": 692, + "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2861, - 2862 + 3735 ] }, { "teal": 2759, - "source": 692, + "source": "examples/reti/stakingPool.algo.ts:692", "pc": [ - 2863 + 3736, + 3737 ] }, { - "teal": 2760, - "source": 692, + "teal": 2763, + "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2864, - 2865 + 3738, + 3739 ] }, { "teal": 2764, - "source": 693, + "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2866, - 2867 + 3740, + 3741, + 3742 ] }, { "teal": 2765, - "source": 693, + "source": "examples/reti/stakingPool.algo.ts:693", "pc": [ - 2868, - 2869, - 2870 + 3743, + 3744 ] }, { - "teal": 2766, - "source": 693, + "teal": 2769, + "source": "examples/reti/stakingPool.algo.ts:694", "pc": [ - 2871, - 2872 + 3745, + 3746, + 3747, + 3748, + 3749, + 3750, + 3751, + 3752, + 3753, + 3754, + 3755, + 3756, + 3757, + 3758, + 3759, + 3760, + 3761, + 3762 ] }, { "teal": 2770, - "source": 694, + "source": "examples/reti/stakingPool.algo.ts:694", "pc": [ - 2873, - 2874, - 2875, - 2876, - 2877, - 2878, - 2879, - 2880, - 2881, - 2882, - 2883, - 2884, - 2885, - 2886, - 2887, - 2888, - 2889, - 2890 + 3763, + 3764 ] }, { - "teal": 2771, - "source": 694, + "teal": 2773, + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2891, - 2892 + 3765, + 3766 ] }, { "teal": 2774, - "source": 691, + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2893 + 3767, + 3768 ] }, { - "teal": 2775, - "source": 691, + "teal": 2777, + "source": "examples/reti/stakingPool.algo.ts:691", "pc": [ - 2894, - 2895 + 3769 ] }, { - "teal": 2778, - "source": 691, + "teal": 2786, + "source": "examples/reti/stakingPool.algo.ts:706", "pc": [ - 2896 + 3770, + 3771 ] }, { "teal": 2787, - "source": 706, + "source": "examples/reti/stakingPool.algo.ts:706", "pc": [ - 2897 + 3772, + 3773 ] }, { - "teal": 2788, - "source": 706, + "teal": 2792, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2898, - 2899 + 3774, + 3775 ] }, { "teal": 2793, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2900, - 2901 + 3776, + 3777 ] }, { "teal": 2794, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2902 + 3778 ] }, { "teal": 2795, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2903 + 3779 ] }, { "teal": 2796, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2904 + 3780, + 3781, + 3782 ] }, { "teal": 2797, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2905, - 2906, - 2907 + 3783, + 3784 ] }, { "teal": 2798, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2908, - 2909 + 3785, + 3786 ] }, { "teal": 2799, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2910 + 3787 ] }, { "teal": 2800, - "source": 730, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2911 + 3788 ] }, { - "teal": 2801, - "source": 730, + "teal": 2803, + "source": "examples/reti/stakingPool.algo.ts:730", "pc": [ - 2912 + 3789, + 3790, + 3791 ] }, { - "teal": 2804, - "source": 730, + "teal": 2808, + "source": "examples/reti/stakingPool.algo.ts:731", "pc": [ - 2913, - 2914, - 2915 + 3792, + 3793 ] }, { "teal": 2809, - "source": 731, + "source": "examples/reti/stakingPool.algo.ts:731", "pc": [ - 2916 + 3794, + 3795 ] }, { - "teal": 2810, - "source": 731, + "teal": 2813, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2917, - 2918 + 3796, + 3797 ] }, { "teal": 2814, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2919 + 3798, + 3799 ] }, { - "teal": 2815, - "source": 732, + "teal": 2819, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2920, - 2921 + 3800, + 3801 ] }, { "teal": 2820, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2922, - 2923 + 3802, + 3803, + 3804 ] }, { "teal": 2821, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2924, - 2925 + 3805 ] }, { "teal": 2822, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 2926 + 3806, + 3807, + 3808 ] }, { - "teal": 2823, - "source": 732, + "teal": 2827, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2927, - 2928, - 2929 + 3809, + 3810 ] }, { "teal": 2828, - "source": 733, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2930, - 2931 + 3811, + 3812, + 3813 ] }, { "teal": 2829, - "source": 733, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2932, - 2933 + 3814 ] }, { "teal": 2830, - "source": 733, + "source": "examples/reti/stakingPool.algo.ts:733", "pc": [ - 2934 + 3815, + 3816, + 3817 ] }, { - "teal": 2831, - "source": 733, + "teal": 2835, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2935, - 2936, - 2937 + 3818 ] }, { "teal": 2836, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2938 + 3819, + 3820 ] }, { "teal": 2837, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2939 + 3821, + 3822 ] }, { "teal": 2838, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2940, - 2941 + 3823, + 3824 ] }, { "teal": 2839, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2942 + 3825, + 3826 ] }, { "teal": 2840, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2943, - 2944 + 3827, + 3828, + 3829, + 3830, + 3831 ] }, { "teal": 2841, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2945, - 2946 + 3832 ] }, { "teal": 2842, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2947 + 3833, + 3834 ] }, { "teal": 2843, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2948, - 2949 + 3835, + 3836 ] }, { "teal": 2844, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2950, - 2951 + 3837, + 3838 ] }, { "teal": 2845, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2952, - 2953 + 3839, + 3840 ] }, { "teal": 2846, - "source": 734, + "source": "examples/reti/stakingPool.algo.ts:734", "pc": [ - 2954, - 2955 + 3841 ] }, { - "teal": 2847, - "source": 734, + "teal": 2851, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2956 + 3842, + 3843 ] }, { "teal": 2852, - "source": 736, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2957, - 2958 + 3844, + 3845 ] }, { "teal": 2853, - "source": 736, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2959 + 3846 ] }, { "teal": 2854, - "source": 736, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2960 + 3847, + 3848 ] }, { "teal": 2855, - "source": 736, - "pc": [ - 2961 + "source": "examples/reti/stakingPool.algo.ts:736", + "pc": [ + 3849, + 3850, + 3851, + 3852, + 3853, + 3854, + 3855, + 3856, + 3857 ] }, { "teal": 2856, - "source": 736, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2962 + 3858, + 3859 ] }, { "teal": 2857, - "source": 736, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2963, - 2964 + 3860 ] }, { "teal": 2858, - "source": 736, + "source": "examples/reti/stakingPool.algo.ts:736", "pc": [ - 2965 + 3861, + 3862 ] }, { - "teal": 2859, - "source": 736, + "teal": 2863, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2966, - 2967 + 3863, + 3864 ] }, { "teal": 2864, - "source": 737, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2968, - 2969 + 3865, + 3866, + 3867 ] }, { "teal": 2865, - "source": 737, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2970, - 2971, - 2972 + 3868, + 3869 ] }, { "teal": 2866, - "source": 737, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2973, - 2974 + 3870 ] }, { "teal": 2867, - "source": 737, + "source": "examples/reti/stakingPool.algo.ts:737", "pc": [ - 2975 + 3871, + 3872, + 3873 ] }, { - "teal": 2868, - "source": 737, + "teal": 2873, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2976, - 2977, - 2978 + 3874, + 3875 ] }, { "teal": 2874, - "source": 738, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2979, - 2980 + 3876, + 3877, + 3878 ] }, { "teal": 2875, - "source": 738, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2981, - 2982, - 2983 + 3879 ] }, { "teal": 2876, - "source": 738, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2984 + 3880, + 3881 ] }, { "teal": 2877, - "source": 738, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2985, - 2986 + 3882 ] }, { "teal": 2878, - "source": 738, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 2987 + 3883, + 3884, + 3885 ] }, { - "teal": 2879, - "source": 738, + "teal": 2883, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2988, - 2989, - 2990 + 3886, + 3887 ] }, { "teal": 2884, - "source": 741, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2991, - 2992 + 3888, + 3889 ] }, { "teal": 2885, - "source": 741, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2993, - 2994 + 3890, + 3891, + 3892 ] }, { "teal": 2886, - "source": 741, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2995, - 2996, - 2997 + 3893 ] }, { "teal": 2887, - "source": 741, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2998 + 3894 ] }, { "teal": 2888, - "source": 741, + "source": "examples/reti/stakingPool.algo.ts:741", "pc": [ - 2999 + 3895, + 3896 ] }, { "teal": 2889, - "source": 741, + "source": "examples/reti/stakingPool.algo.ts:738", "pc": [ - 3000, - 3001 + 3897, + 3898, + 3899 ] }, { - "teal": 2890, - "source": 738, + "teal": 2894, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 3002, - 3003, - 3004 + 3900, + 3901 ] }, { "teal": 2895, - "source": 745, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 3005, - 3006 + 3902, + 3903 ] }, { "teal": 2896, - "source": 745, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 3007, - 3008 + 3904, + 3905, + 3906 ] }, { "teal": 2897, - "source": 745, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 3009, - 3010, - 3011 + 3907 ] }, { "teal": 2898, - "source": 745, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 3012 + 3908 ] }, { "teal": 2899, - "source": 745, + "source": "examples/reti/stakingPool.algo.ts:745", "pc": [ - 3013 + 3909, + 3910 ] }, { - "teal": 2900, - "source": 745, + "teal": 2904, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ - 3014, - 3015 + 3911, + 3912 ] }, { "teal": 2905, - "source": 749, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ - 3016, - 3017 + 3913, + 3914 ] }, { "teal": 2906, - "source": 749, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ - 3018, - 3019 + 3915 ] }, { "teal": 2907, - "source": 749, + "source": "examples/reti/stakingPool.algo.ts:749", "pc": [ - 3020 + 3916, + 3917, + 3918 ] }, { - "teal": 2908, - "source": 749, + "teal": 2912, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 3021, - 3022, - 3023 + 3919, + 3920 ] }, { "teal": 2913, - "source": 750, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 3024, - 3025 + 3921, + 3922 ] }, { "teal": 2914, - "source": 750, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 3026, - 3027 + 3923, + 3924, + 3925 ] }, { "teal": 2915, - "source": 750, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 3028, - 3029, - 3030 + 3926 ] }, { "teal": 2916, - "source": 750, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 3031 + 3927 ] }, { "teal": 2917, - "source": 750, + "source": "examples/reti/stakingPool.algo.ts:750", "pc": [ - 3032 + 3928, + 3929 ] }, { - "teal": 2918, - "source": 750, + "teal": 2921, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 3033, - 3034 + 3930, + 3931 ] }, { "teal": 2922, - "source": 751, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 3035, - 3036 + 3932, + 3933, + 3934 ] }, { "teal": 2923, - "source": 751, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 3037, - 3038 + 3935 ] }, { "teal": 2924, - "source": 751, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 3039 + 3936, + 3937 ] }, { "teal": 2925, - "source": 751, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 3040, - 3041 + 3938 ] }, { "teal": 2926, - "source": 751, + "source": "examples/reti/stakingPool.algo.ts:751", "pc": [ - 3042 + 3939, + 3940 ] }, { - "teal": 2927, - "source": 751, + "teal": 2931, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 3043, - 3044 + 3941, + 3942 ] }, { "teal": 2932, - "source": 753, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 3045, - 3046 + 3943, + 3944 ] }, { "teal": 2933, - "source": 753, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 3047 + 3945 ] }, { "teal": 2934, - "source": 753, + "source": "examples/reti/stakingPool.algo.ts:753", "pc": [ - 3048 + 3946, + 3947, + 3948 ] }, { - "teal": 2935, - "source": 753, + "teal": 2942, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 3049, - 3050, - 3051 + 3949, + 3950 ] }, { "teal": 2943, - "source": 756, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 3052, - 3053 + 3951, + 3952, + 3953 ] }, { "teal": 2944, - "source": 756, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 3054, - 3055, - 3056 + 3954 ] }, { "teal": 2945, - "source": 756, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 3057 + 3955, + 3956 ] }, { "teal": 2946, - "source": 756, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3058, - 3059 + 3957 ] }, { "teal": 2947, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:756", "pc": [ - 3060 + 3958, + 3959 ] }, { "teal": 2948, - "source": 756, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3061, - 3062 + 3960, + 3961 ] }, { "teal": 2949, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3063, - 3064 + 3962, + 3963 ] }, { "teal": 2950, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3065, - 3066 + 3964 ] }, { "teal": 2951, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3067 + 3965, + 3966 ] }, { "teal": 2952, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3068, - 3069 + 3967 ] }, { "teal": 2953, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3070 + 3968, + 3969 ] }, { "teal": 2954, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3071, - 3072 + 3970 ] }, { "teal": 2955, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3073 + 3971 ] }, { "teal": 2956, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 3074 + 3972, + 3973, + 3974, + 3975, + 3976, + 3977, + 3978, + 3979 ] }, { "teal": 2957, - "source": 757, + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 3075, - 3076 + 3980 ] }, { "teal": 2958, - "source": 757, + "source": "examples/reti/stakingPool.algo.ts:757", "pc": [ - 3077 + 3981, + 3982, + 3983 ] }, { "teal": 2959, - "source": 757, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3078, - 3079 + 3984 ] }, { "teal": 2960, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3080 + 3985 ] }, { "teal": 2961, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3081 + 3986 ] }, { "teal": 2962, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3082 + 3987 ] }, { "teal": 2963, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3083 + 3988 ] }, { "teal": 2964, - "source": 755, + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3084 + 3989 ] }, { - "teal": 2965, - "source": 755, + "teal": 2967, + "source": "examples/reti/stakingPool.algo.ts:755", + "errorMessage": "wideRatio failed", "pc": [ - 3085 + 3990 ] }, { "teal": 2968, - "source": 755, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:755", "pc": [ - 3086 + 3991, + 3992 ] }, { - "teal": 2969, - "source": 755, + "teal": 2972, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 3087, - 3088 + 3993, + 3994 ] }, { "teal": 2973, - "source": 762, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 3089, - 3090 + 3995, + 3996 ] }, { "teal": 2974, - "source": 762, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 3091, - 3092 + 3997 ] }, { "teal": 2975, - "source": 762, + "source": "examples/reti/stakingPool.algo.ts:762", "pc": [ - 3093 + 3998, + 3999 ] }, { - "teal": 2976, - "source": 762, + "teal": 2979, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3094, - 3095 + 4000, + 4001 ] }, { "teal": 2980, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3096, - 3097 + 4002, + 4003 ] }, { "teal": 2981, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3098, - 3099 + 4004, + 4005 ] }, { "teal": 2982, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3100, - 3101 + 4006, + 4007, + 4008 ] }, { "teal": 2983, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3102, - 3103, - 3104 + 4009 ] }, { "teal": 2984, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3105 + 4010, + 4011 ] }, { "teal": 2985, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3106, - 3107 + 4012 ] }, { "teal": 2986, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3108 + 4013 ] }, { "teal": 2987, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3109 + 4014 ] }, { "teal": 2988, - "source": 763, + "source": "examples/reti/stakingPool.algo.ts:763", "pc": [ - 3110 + 4015, + 4016 ] }, { - "teal": 2989, - "source": 763, + "teal": 2992, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 3111, - 3112 + 4017, + 4018 ] }, { "teal": 2993, - "source": 764, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 3113, - 3114 + 4019, + 4020 ] }, { "teal": 2994, - "source": 764, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 3115, - 3116 + 4021 ] }, { "teal": 2995, - "source": 764, + "source": "examples/reti/stakingPool.algo.ts:764", "pc": [ - 3117 + 4022, + 4023 ] }, { - "teal": 2996, - "source": 764, + "teal": 3001, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 3118, - 3119 + 4024, + 4025 ] }, { "teal": 3002, - "source": 766, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 3120, - 3121 + 4026, + 4027 ] }, { "teal": 3003, - "source": 766, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 3122 + 4028 ] }, { "teal": 3004, - "source": 766, + "source": "examples/reti/stakingPool.algo.ts:766", "pc": [ - 3123 + 4029, + 4030, + 4031 ] }, { - "teal": 3005, - "source": 766, + "teal": 3012, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 3124, - 3125, - 3126 + 4032, + 4033 ] }, { "teal": 3013, - "source": 769, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 3127, - 3128 + 4034, + 4035, + 4036 ] }, { "teal": 3014, - "source": 769, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 3129, - 3130, - 3131 + 4037 ] }, { "teal": 3015, - "source": 769, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 3132 + 4038, + 4039 ] }, { "teal": 3016, - "source": 769, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3133, - 3134 + 4040 ] }, { "teal": 3017, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:769", "pc": [ - 3135 + 4041, + 4042 ] }, { "teal": 3018, - "source": 769, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3136, - 3137 + 4043, + 4044 ] }, { "teal": 3019, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3138, - 3139 + 4045, + 4046 ] }, { "teal": 3020, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3140, - 3141 + 4047 ] }, { "teal": 3021, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3142 + 4048, + 4049 ] }, { "teal": 3022, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3143, - 3144 + 4050 ] }, { "teal": 3023, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3145 + 4051, + 4052 ] }, { "teal": 3024, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3146, - 3147 + 4053 ] }, { "teal": 3025, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3148 + 4054 ] }, { "teal": 3026, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 3149 + 4055, + 4056, + 4057, + 4058, + 4059, + 4060, + 4061, + 4062 ] }, { "teal": 3027, - "source": 770, + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 3150, - 3151 + 4063 ] }, { "teal": 3028, - "source": 770, + "source": "examples/reti/stakingPool.algo.ts:770", "pc": [ - 3152 + 4064, + 4065, + 4066 ] }, { "teal": 3029, - "source": 770, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3153, - 3154 + 4067 ] }, { "teal": 3030, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3155 + 4068 ] }, { "teal": 3031, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3156 + 4069 ] }, { "teal": 3032, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3157 + 4070 ] }, { "teal": 3033, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3158 + 4071 ] }, { "teal": 3034, - "source": 768, + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3159 + 4072 ] }, { - "teal": 3035, - "source": 768, + "teal": 3037, + "source": "examples/reti/stakingPool.algo.ts:768", + "errorMessage": "wideRatio failed", "pc": [ - 3160 + 4073 ] }, { "teal": 3038, - "source": 768, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:768", "pc": [ - 3161 + 4074, + 4075 ] }, { - "teal": 3039, - "source": 768, + "teal": 3042, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 3162, - 3163 + 4076, + 4077 ] }, { "teal": 3043, - "source": 775, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 3164, - 3165 + 4078, + 4079 ] }, { "teal": 3044, - "source": 775, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 3166, - 3167 + 4080 ] }, { "teal": 3045, - "source": 775, + "source": "examples/reti/stakingPool.algo.ts:775", "pc": [ - 3168 + 4081, + 4082 ] }, { - "teal": 3046, - "source": 775, + "teal": 3049, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3169, - 3170 + 4083, + 4084 ] }, { "teal": 3050, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3171, - 3172 + 4085, + 4086 ] }, { "teal": 3051, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3173, - 3174 + 4087, + 4088 ] }, { "teal": 3052, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3175, - 3176 + 4089, + 4090, + 4091 ] }, { "teal": 3053, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3177, - 3178, - 3179 + 4092 ] }, { "teal": 3054, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3180 + 4093, + 4094 ] }, { "teal": 3055, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3181, - 3182 + 4095 ] }, { "teal": 3056, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3183 + 4096 ] }, { "teal": 3057, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3184 + 4097 ] }, { "teal": 3058, - "source": 778, + "source": "examples/reti/stakingPool.algo.ts:778", "pc": [ - 3185 + 4098, + 4099 ] }, { - "teal": 3059, - "source": 778, + "teal": 3062, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3186, - 3187 + 4100, + 4101 ] }, { "teal": 3063, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3188, - 3189 + 4102, + 4103 ] }, { "teal": 3064, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3190, - 3191 + 4104, + 4105 ] }, { "teal": 3065, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3192, - 3193 + 4106, + 4107, + 4108 ] }, { "teal": 3066, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3194, - 3195, - 3196 + 4109 ] }, { "teal": 3067, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3197 + 4110, + 4111 ] }, { "teal": 3068, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3198, - 3199 + 4112 ] }, { "teal": 3069, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3200 + 4113 ] }, { "teal": 3070, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3201 + 4114 ] }, { "teal": 3071, - "source": 779, + "source": "examples/reti/stakingPool.algo.ts:779", "pc": [ - 3202 + 4115, + 4116 ] }, { - "teal": 3072, - "source": 779, + "teal": 3075, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 3203, - 3204 + 4117, + 4118 ] }, { "teal": 3076, - "source": 780, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 3205, - 3206 + 4119, + 4120 ] }, { "teal": 3077, - "source": 780, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 3207, - 3208 + 4121 ] }, { "teal": 3078, - "source": 780, + "source": "examples/reti/stakingPool.algo.ts:780", "pc": [ - 3209 + 4122, + 4123 ] }, { - "teal": 3079, - "source": 780, + "teal": 3083, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3210, - 3211 + 4124, + 4125 ] }, { "teal": 3084, - "source": 783, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3212, - 3213 + 4126, + 4127 ] }, { "teal": 3085, - "source": 783, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3214 + 4128 ] }, { "teal": 3086, - "source": 783, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3215 + 4129, + 4130 ] }, { "teal": 3087, - "source": 783, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3216, - 3217 + 4131, + 4132, + 4133, + 4134, + 4135, + 4136, + 4137, + 4138, + 4139 ] }, { "teal": 3088, - "source": 783, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3218 + 4140, + 4141 ] }, { "teal": 3089, - "source": 783, + "source": "examples/reti/stakingPool.algo.ts:783", "pc": [ - 3219, - 3220 + 4142 ] }, { - "teal": 3090, - "source": 783, + "teal": 3100, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 3221 + 4143, + 4144 ] }, { "teal": 3101, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 3222, - 3223 + 4145, + 4146 ] }, { "teal": 3102, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 3224 + 4147 ] }, { "teal": 3103, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 3225 + 4148, + 4149 ] }, { "teal": 3104, - "source": 732, + "source": "examples/reti/stakingPool.algo.ts:732", "pc": [ - 3226, - 3227 + 4150, + 4151, + 4152 ] }, { - "teal": 3105, - "source": 732, + "teal": 3109, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 3228, - 3229, - 3230 + 4153, + 4154, + 4155, + 4156, + 4157, + 4158, + 4159, + 4160 ] }, { "teal": 3110, - "source": 791, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 3231, - 3232 + 4161 ] }, { "teal": 3111, - "source": 791, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 3233 + 4162, + 4163 ] }, { "teal": 3112, - "source": 791, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 3234, - 3235 + 4164 ] }, { "teal": 3113, - "source": 791, + "source": "examples/reti/stakingPool.algo.ts:791", "pc": [ - 3236 + 4165, + 4166 ] }, { - "teal": 3114, - "source": 791, + "teal": 3118, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 3237, - 3238 + 4167, + 4168 ] }, { "teal": 3119, - "source": 795, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 3239, - 3240 + 4169, + 4170 ] }, { "teal": 3120, - "source": 795, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 3241 + 4171 ] }, { "teal": 3121, - "source": 795, + "source": "examples/reti/stakingPool.algo.ts:795", "pc": [ - 3242 + 4172, + 4173, + 4174 ] }, { - "teal": 3122, - "source": 795, + "teal": 3126, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3243, - 3244, - 3245 + 4175, + 4176 ] }, { "teal": 3127, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3246 + 4177, + 4178 ] }, { - "teal": 3128, - "source": 797, + "teal": 3132, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3247, - 3248 + 4179, + 4180 ] }, { "teal": 3133, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3249, - 3250 + 4181, + 4182, + 4183 ] }, { "teal": 3134, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3251, - 3252 + 4184 ] }, { "teal": 3135, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3253 + 4185, + 4186, + 4187 ] }, { - "teal": 3136, - "source": 797, + "teal": 3140, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 3254, - 3255, - 3256 + 4188, + 4189 ] }, { "teal": 3141, - "source": 798, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 3257, - 3258 + 4190, + 4191, + 4192 ] }, { "teal": 3142, - "source": 798, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 3259, - 3260 + 4193 ] }, { "teal": 3143, - "source": 798, + "source": "examples/reti/stakingPool.algo.ts:798", "pc": [ - 3261 + 4194, + 4195, + 4196 ] }, { - "teal": 3144, - "source": 798, + "teal": 3148, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3262, - 3263, - 3264 + 4197 ] }, { "teal": 3149, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3265 + 4198, + 4199 ] }, { "teal": 3150, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3266 + 4200, + 4201 ] }, { "teal": 3151, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3267, - 3268 + 4202, + 4203 ] }, { "teal": 3152, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3269 + 4204, + 4205 ] }, { "teal": 3153, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3270, - 3271 + 4206, + 4207, + 4208, + 4209, + 4210 ] }, { "teal": 3154, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3272, - 3273 + 4211 ] }, { "teal": 3155, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3274 + 4212, + 4213 ] }, { "teal": 3156, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3275, - 3276 + 4214, + 4215 ] }, { "teal": 3157, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3277, - 3278 + 4216, + 4217 ] }, { "teal": 3158, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3279, - 3280 + 4218, + 4219 ] }, { "teal": 3159, - "source": 799, + "source": "examples/reti/stakingPool.algo.ts:799", "pc": [ - 3281, - 3282 + 4220 ] }, { - "teal": 3160, - "source": 799, + "teal": 3164, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3283 + 4221, + 4222 ] }, { "teal": 3165, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3284, - 3285 + 4223, + 4224 ] }, { "teal": 3166, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3286 + 4225 ] }, { "teal": 3167, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3287 + 4226, + 4227 ] }, { "teal": 3168, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3288 + 4228, + 4229, + 4230, + 4231, + 4232, + 4233, + 4234, + 4235, + 4236 ] }, { "teal": 3169, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3289 + 4237, + 4238 ] }, { "teal": 3170, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3290, - 3291 + 4239 ] }, { "teal": 3171, - "source": 801, + "source": "examples/reti/stakingPool.algo.ts:801", "pc": [ - 3292 + 4240, + 4241 ] }, { - "teal": 3172, - "source": 801, + "teal": 3176, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3293, - 3294 + 4242, + 4243 ] }, { "teal": 3177, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3295, - 3296 + 4244, + 4245, + 4246 ] }, { "teal": 3178, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3297, - 3298, - 3299 + 4247, + 4248 ] }, { "teal": 3179, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3300, - 3301 + 4249 ] }, { "teal": 3180, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3302 + 4250 ] }, { "teal": 3181, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3303 + 4251, + 4252, + 4253 ] }, { "teal": 3182, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3304, - 3305, - 3306 + 4254, + 4255 ] }, { "teal": 3183, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3307, - 3308 + 4256, + 4257, + 4258 ] }, { "teal": 3184, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3309, - 3310, - 3311 + 4259 ] }, { "teal": 3185, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3312 + 4260, + 4261 ] }, { "teal": 3186, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3313, - 3314 + 4262 ] }, { "teal": 3187, - "source": 802, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3315 + 4263 ] }, { - "teal": 3188, - "source": 802, + "teal": 3190, + "source": "examples/reti/stakingPool.algo.ts:802", "pc": [ - 3316 + 4264, + 4265, + 4266 ] }, { - "teal": 3191, - "source": 802, + "teal": 3195, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3317, - 3318, - 3319 + 4267, + 4268 ] }, { "teal": 3196, - "source": 803, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3320, - 3321 + 4269, + 4270 ] }, { "teal": 3197, - "source": 803, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3322, - 3323 + 4271, + 4272, + 4273 ] }, { "teal": 3198, - "source": 803, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3324, - 3325, - 3326 + 4274 ] }, { "teal": 3199, - "source": 803, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3327 + 4275 ] }, { "teal": 3200, - "source": 803, + "source": "examples/reti/stakingPool.algo.ts:803", "pc": [ - 3328 + 4276, + 4277 ] }, { - "teal": 3201, - "source": 803, + "teal": 3205, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ - 3329, - 3330 + 4278, + 4279 ] }, { "teal": 3206, - "source": 805, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ - 3331, - 3332 + 4280, + 4281 ] }, { "teal": 3207, - "source": 805, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ - 3333, - 3334 + 4282 ] }, { "teal": 3208, - "source": 805, + "source": "examples/reti/stakingPool.algo.ts:805", "pc": [ - 3335 + 4283, + 4284, + 4285 ] }, { - "teal": 3209, - "source": 805, + "teal": 3214, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3336, - 3337, - 3338 + 4286, + 4287 ] }, { "teal": 3215, - "source": 810, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3339, - 3340 + 4288, + 4289 ] }, { "teal": 3216, - "source": 810, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3341 + 4290 ] }, { "teal": 3217, - "source": 810, + "source": "examples/reti/stakingPool.algo.ts:810", "pc": [ - 3342 + 4291, + 4292, + 4293 ] }, { - "teal": 3218, - "source": 810, + "teal": 3222, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3343, - 3344, - 3345 + 4294, + 4295 ] }, { "teal": 3223, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3346, - 3347 + 4296, + 4297, + 4298 ] }, { "teal": 3224, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3348, - 3349, - 3350 + 4299 ] }, { "teal": 3225, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3351 + 4300, + 4301 ] }, { "teal": 3226, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3352, - 3353 + 4302 ] }, { "teal": 3227, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3354 + 4303, + 4304 ] }, { "teal": 3228, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3355 + 4305, + 4306 ] }, { "teal": 3229, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3356, - 3357 + 4307 ] }, { "teal": 3230, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3358 + 4308 ] }, { "teal": 3231, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3359 + 4309 ] }, { "teal": 3232, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3360 + 4310 ] }, { "teal": 3233, - "source": 811, + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3361 + 4311 ] }, { - "teal": 3234, - "source": 811, + "teal": 3236, + "source": "examples/reti/stakingPool.algo.ts:811", + "errorMessage": "wideRatio failed", "pc": [ - 3362 + 4312 ] }, { "teal": 3237, - "source": 811, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:811", "pc": [ - 3363 + 4313, + 4314 ] }, { - "teal": 3238, - "source": 811, + "teal": 3241, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3364, - 3365 + 4315, + 4316 ] }, { "teal": 3242, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3366, - 3367 + 4317, + 4318 ] }, { "teal": 3243, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3368, - 3369 + 4319, + 4320 ] }, { "teal": 3244, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3370, - 3371 + 4321, + 4322, + 4323 ] }, { "teal": 3245, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3372, - 3373, - 3374 + 4324 ] }, { "teal": 3246, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3375 + 4325, + 4326 ] }, { "teal": 3247, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3376, - 3377 + 4327 ] }, { "teal": 3248, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3378 + 4328 ] }, { "teal": 3249, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3379 + 4329 ] }, { "teal": 3250, - "source": 814, + "source": "examples/reti/stakingPool.algo.ts:814", "pc": [ - 3380 + 4330, + 4331 ] }, { - "teal": 3251, - "source": 814, + "teal": 3254, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3381, - 3382 + 4332, + 4333 ] }, { "teal": 3255, - "source": 815, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3383, - 3384 + 4334, + 4335 ] }, { "teal": 3256, - "source": 815, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3385, - 3386 + 4336 ] }, { "teal": 3257, - "source": 815, + "source": "examples/reti/stakingPool.algo.ts:815", "pc": [ - 3387 + 4337, + 4338 ] }, { - "teal": 3258, - "source": 815, + "teal": 3263, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3388, - 3389 + 4339, + 4340 ] }, { "teal": 3264, - "source": 817, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3390, - 3391 + 4341, + 4342 ] }, { "teal": 3265, - "source": 817, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3392 + 4343 ] }, { "teal": 3266, - "source": 817, + "source": "examples/reti/stakingPool.algo.ts:817", "pc": [ - 3393 + 4344, + 4345, + 4346 ] }, { - "teal": 3267, - "source": 817, + "teal": 3271, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3394, - 3395, - 3396 + 4347, + 4348 ] }, { "teal": 3272, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3397, - 3398 + 4349, + 4350, + 4351 ] }, { "teal": 3273, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3399, - 3400, - 3401 + 4352 ] }, { "teal": 3274, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3402 + 4353, + 4354 ] }, { "teal": 3275, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3403, - 3404 + 4355 ] }, { "teal": 3276, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3405 + 4356, + 4357 ] }, { "teal": 3277, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3406 + 4358, + 4359 ] }, { "teal": 3278, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3407, - 3408 + 4360 ] }, { "teal": 3279, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3409 + 4361 ] }, { "teal": 3280, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3410 + 4362 ] }, { "teal": 3281, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3411 + 4363 ] }, { "teal": 3282, - "source": 818, + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3412 + 4364 ] }, { - "teal": 3283, - "source": 818, + "teal": 3285, + "source": "examples/reti/stakingPool.algo.ts:818", + "errorMessage": "wideRatio failed", "pc": [ - 3413 + 4365 ] }, { "teal": 3286, - "source": 818, - "errorMessage": "wideRatio failed", + "source": "examples/reti/stakingPool.algo.ts:818", "pc": [ - 3414 + 4366, + 4367 ] }, { - "teal": 3287, - "source": 818, + "teal": 3290, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3415, - 3416 + 4368, + 4369 ] }, { "teal": 3291, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3417, - 3418 + 4370, + 4371 ] }, { "teal": 3292, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3419, - 3420 + 4372, + 4373 ] }, { "teal": 3293, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3421, - 3422 + 4374, + 4375, + 4376 ] }, { "teal": 3294, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3423, - 3424, - 3425 + 4377 ] }, { "teal": 3295, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3426 + 4378, + 4379 ] }, { "teal": 3296, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3427, - 3428 + 4380 ] }, { "teal": 3297, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3429 + 4381 ] }, { "teal": 3298, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3430 + 4382 ] }, { "teal": 3299, - "source": 821, + "source": "examples/reti/stakingPool.algo.ts:821", "pc": [ - 3431 + 4383, + 4384 ] }, { - "teal": 3300, - "source": 821, + "teal": 3303, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3432, - 3433 + 4385, + 4386 ] }, { "teal": 3304, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3434, - 3435 + 4387, + 4388 ] }, { "teal": 3305, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3436, - 3437 + 4389, + 4390 ] }, { "teal": 3306, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3438, - 3439 + 4391, + 4392, + 4393 ] }, { "teal": 3307, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3440, - 3441, - 3442 + 4394 ] }, { "teal": 3308, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3443 + 4395, + 4396 ] }, { "teal": 3309, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3444, - 3445 + 4397 ] }, { "teal": 3310, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3446 + 4398 ] }, { "teal": 3311, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3447 + 4399 ] }, { "teal": 3312, - "source": 822, + "source": "examples/reti/stakingPool.algo.ts:822", "pc": [ - 3448 + 4400, + 4401 ] }, { - "teal": 3313, - "source": 822, + "teal": 3316, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3449, - 3450 + 4402, + 4403 ] }, { "teal": 3317, - "source": 823, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3451, - 3452 + 4404, + 4405 ] }, { "teal": 3318, - "source": 823, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3453, - 3454 + 4406 ] }, { "teal": 3319, - "source": 823, + "source": "examples/reti/stakingPool.algo.ts:823", "pc": [ - 3455 + 4407, + 4408 ] }, { - "teal": 3320, - "source": 823, + "teal": 3324, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3456, - 3457 + 4409, + 4410 ] }, { "teal": 3325, - "source": 827, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3458, - 3459 + 4411, + 4412 ] }, { "teal": 3326, - "source": 827, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3460 + 4413 ] }, { "teal": 3327, - "source": 827, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3461 + 4414, + 4415 ] }, { "teal": 3328, - "source": 827, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3462, - 3463 + 4416, + 4417, + 4418, + 4419, + 4420, + 4421, + 4422, + 4423, + 4424 ] }, { "teal": 3329, - "source": 827, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3464 + 4425, + 4426 ] }, { "teal": 3330, - "source": 827, + "source": "examples/reti/stakingPool.algo.ts:827", "pc": [ - 3465, - 3466 + 4427 ] }, { - "teal": 3331, - "source": 827, + "teal": 3339, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3467 + 4428, + 4429 ] }, { "teal": 3340, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3468, - 3469 + 4430, + 4431 ] }, { "teal": 3341, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3470 + 4432 ] }, { "teal": 3342, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3471 + 4433, + 4434 ] }, { "teal": 3343, - "source": 797, + "source": "examples/reti/stakingPool.algo.ts:797", "pc": [ - 3472, - 3473 + 4435, + 4436, + 4437 ] }, { - "teal": 3344, - "source": 797, + "teal": 3352, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3474, - 3475, - 3476 + 4438, + 4439, + 4440, + 4441, + 4442, + 4443, + 4444, + 4445, + 4446, + 4447, + 4448, + 4449, + 4450, + 4451, + 4452 ] }, { "teal": 3353, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3477, - 3478 + 4453 ] }, { "teal": 3354, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3479 + 4454, + 4455, + 4456, + 4457, + 4458, + 4459, + 4460, + 4461, + 4462, + 4463, + 4464, + 4465, + 4466, + 4467 ] }, { "teal": 3355, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3480, - 3481 + 4468 ] }, { "teal": 3356, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3482 + 4469 ] }, { "teal": 3357, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3483 + 4470, + 4471 ] }, { "teal": 3358, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3484, - 3485 + 4472 ] }, { "teal": 3359, - "source": 837, + "source": "examples/reti/stakingPool.algo.ts:837", "pc": [ - 3486 + 4473, + 4474 ] }, { - "teal": 3360, - "source": 837, + "teal": 3363, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3487, - 3488 + 4475, + 4476, + 4477, + 4478, + 4479, + 4480, + 4481, + 4482 ] }, { "teal": 3364, - "source": 838, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3489, - 3490 + 4483 ] }, { "teal": 3365, - "source": 838, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3491 + 4484, + 4485 ] }, { "teal": 3366, - "source": 838, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3492, - 3493 + 4486 ] }, { "teal": 3367, - "source": 838, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3494 + 4487, + 4488, + 4489, + 4490, + 4491, + 4492, + 4493, + 4494 ] }, { "teal": 3368, - "source": 838, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3495, - 3496 + 4495 ] }, { "teal": 3369, - "source": 838, + "source": "examples/reti/stakingPool.algo.ts:838", "pc": [ - 3497 + 4496 ] }, { - "teal": 3370, - "source": 838, + "teal": 3374, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ - 3498 + 4497, + 4498, + 4499, + 4500, + 4501, + 4502, + 4503, + 4504, + 4505, + 4506, + 4507, + 4508, + 4509, + 4510, + 4511, + 4512, + 4513, + 4514 ] }, { "teal": 3375, - "source": 839, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ - 3499, - 3500 + 4515 ] }, { "teal": 3376, - "source": 839, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3501 + 4516 ] }, { "teal": 3377, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3502 + 4517, + 4518 ] }, { "teal": 3378, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3503, - 3504 + 4519 ] }, { "teal": 3379, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3505 + 4520, + 4521 ] }, { "teal": 3380, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3506, - 3507 + 4522 ] }, { "teal": 3381, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3508 + 4523 ] }, { "teal": 3382, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3509 + 4524 ] }, { "teal": 3383, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3510 + 4525 ] }, { "teal": 3384, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3511 + 4526 ] }, { "teal": 3385, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3512 + 4527, + 4528, + 4529 ] }, { "teal": 3386, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3513, - 3514 + 4530 ] }, { - "teal": 3387, - "source": 840, + "teal": 3389, + "source": "examples/reti/stakingPool.algo.ts:840", + "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", "pc": [ - 3515 + 4531 ] }, { "teal": 3390, - "source": 840, - "errorMessage": "this.stakeAccumulator.value + (increasedStake as uint128) * (roundsLeftInBin as uint128) overflowed 128 bits", + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3516 + 4532, + 4533, + 4534, + 4535, + 4536, + 4537, + 4538, + 4539, + 4540, + 4541, + 4542, + 4543, + 4544, + 4545, + 4546, + 4547, + 4548, + 4549 ] }, { "teal": 3391, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3517, - 3518 + 4550 ] }, { "teal": 3392, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3519 + 4551 ] }, { "teal": 3393, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3520 + 4552 ] }, { "teal": 3394, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3521 + 4553 ] }, { "teal": 3395, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3522 + 4554, + 4555 ] }, { "teal": 3396, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3523, - 3524 + 4556 ] }, { "teal": 3397, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3525 + 4557 ] }, { "teal": 3398, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:840", "pc": [ - 3526 + 4558 ] }, { "teal": 3399, - "source": 840, + "source": "examples/reti/stakingPool.algo.ts:839", "pc": [ - 3527 + 4559 ] }, { - "teal": 3400, - "source": 839, + "teal": 3403, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ - 3528 + 4560, + 4561, + 4562, + 4563, + 4564, + 4565, + 4566, + 4567, + 4568, + 4569, + 4570, + 4571, + 4572, + 4573, + 4574, + 4575, + 4576, + 4577, + 4578 ] }, { "teal": 3404, - "source": 841, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ - 3529, - 3530 + 4579 ] }, { "teal": 3405, - "source": 841, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ - 3531 + 4580 ] }, { "teal": 3406, - "source": 841, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ - 3532 + 4581, + 4582 ] }, { "teal": 3407, - "source": 841, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ - 3533, - 3534 + 4583 ] }, { "teal": 3408, - "source": 841, + "source": "examples/reti/stakingPool.algo.ts:841", "pc": [ - 3535 + 4584 ] }, { - "teal": 3409, - "source": 841, + "teal": 3421, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3536 + 4585 ] }, { "teal": 3422, - "source": 847, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3537 + 4586, + 4587 ] }, { "teal": 3423, - "source": 847, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3538 + 4588, + 4589 ] }, { "teal": 3424, - "source": 847, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3539, - 3540 + 4590, + 4591, + 4592, + 4593, + 4594, + 4595 ] }, { "teal": 3425, - "source": 847, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3541, - 3542, - 3543, - 3544, - 3545, - 3546 + 4596, + 4597 ] }, { - "teal": 3426, - "source": 847, + "teal": 3429, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3547, - 3548 + 4598, + 4599, + 4600, + 4601, + 4602, + 4603, + 4604, + 4605, + 4606, + 4607, + 4608, + 4609 ] }, { "teal": 3430, - "source": 848, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3549 + 4610 ] }, { "teal": 3431, - "source": 848, + "source": "examples/reti/stakingPool.algo.ts:848", "pc": [ - 3550 + 4611, + 4612 ] }, { - "teal": 3432, - "source": 848, + "teal": 3441, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3551, - 3552 + 4613, + 4614, + 4615, + 4616, + 4617, + 4618, + 4619, + 4620, + 4621, + 4622, + 4623, + 4624, + 4625 ] }, { "teal": 3442, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3553 + 4626 ] }, { "teal": 3443, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3554 + 4627 ] }, { "teal": 3444, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3555 + 4628, + 4629, + 4630, + 4631, + 4632, + 4633, + 4634, + 4635 ] }, { "teal": 3445, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3556 + 4636 ] }, { "teal": 3446, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3557 + 4637 ] }, { "teal": 3447, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3558 + 4638 ] }, { "teal": 3448, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3559 + 4639, + 4640, + 4641 ] }, { "teal": 3449, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3560, - 3561, - 3562 + 4642 ] }, { "teal": 3450, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3563 + 4643 ] }, { "teal": 3451, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:850", "pc": [ - 3564 + 4644, + 4645 ] }, { "teal": 3452, - "source": 850, + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3565, - 3566 + 4646, + 4647 ] }, { "teal": 3453, - "source": 851, + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3567, - 3568 + 4648 ] }, { "teal": 3454, - "source": 851, + "source": "examples/reti/stakingPool.algo.ts:851", "pc": [ - 3569 + 4649, + 4650 ] }, { "teal": 3455, - "source": 851, + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3570, - 3571 + 4651, + 4652 ] }, { "teal": 3456, - "source": 852, + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3572, - 3573 + 4653 ] }, { "teal": 3457, - "source": 852, + "source": "examples/reti/stakingPool.algo.ts:852", "pc": [ - 3574 + 4654, + 4655 ] }, { "teal": 3458, - "source": 852, + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3575, - 3576 + 4656, + 4657 ] }, { "teal": 3459, - "source": 853, + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3577, - 3578 + 4658 ] }, { "teal": 3460, - "source": 853, + "source": "examples/reti/stakingPool.algo.ts:853", "pc": [ - 3579 + 4659, + 4660 ] }, { "teal": 3461, - "source": 853, + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3580, - 3581 + 4661, + 4662 ] }, { "teal": 3462, - "source": 854, + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3582, - 3583 + 4663 ] }, { "teal": 3463, - "source": 854, + "source": "examples/reti/stakingPool.algo.ts:854", "pc": [ - 3584 + 4664, + 4665 ] }, { - "teal": 3464, - "source": 854, + "teal": 3466, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3585, - 3586 + 4666, + 4667 ] }, { "teal": 3467, - "source": 847, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3587 + 4668, + 4669 ] }, { - "teal": 3468, - "source": 847, + "teal": 3470, + "source": "examples/reti/stakingPool.algo.ts:847", "pc": [ - 3588, - 3589 + 4670 ] }, { "teal": 3471, - "source": 847, + "source": "examples/reti/stakingPool.algo.ts:518", "pc": [ - 3590 + 4671 ] }, { - "teal": 3472, - "source": 518, + "teal": 3476, + "source": "examples/reti/stakingPool.algo.ts:879", "pc": [ - 3591 + 4672, + 4673, + 4674 ] }, { "teal": 3477, - "source": 879, + "source": "examples/reti/stakingPool.algo.ts:879", "pc": [ - 3592, - 3593, - 3594 + 4675 ] }, { - "teal": 3478, - "source": 879, + "teal": 3480, + "source": "examples/reti/stakingPool.algo.ts:878", "pc": [ - 3595 + 4676, + 4677, + 4678 ] }, { "teal": 3481, - "source": 878, + "source": "examples/reti/stakingPool.algo.ts:878", "pc": [ - 3596, - 3597, - 3598 + 4679 ] }, { - "teal": 3482, - "source": 878, + "teal": 3484, + "source": "examples/reti/stakingPool.algo.ts:877", "pc": [ - 3599 + 4680, + 4681, + 4682 ] }, { "teal": 3485, - "source": 877, + "source": "examples/reti/stakingPool.algo.ts:877", "pc": [ - 3600, - 3601, - 3602 + 4683 ] }, { - "teal": 3486, - "source": 877, + "teal": 3488, + "source": "examples/reti/stakingPool.algo.ts:876", "pc": [ - 3603 + 4684, + 4685, + 4686 ] }, { "teal": 3489, - "source": 876, + "source": "examples/reti/stakingPool.algo.ts:876", "pc": [ - 3604, - 3605, - 3606 + 4687, + 4688, + 4689 ] }, { - "teal": 3490, - "source": 876, + "teal": 3492, + "source": "examples/reti/stakingPool.algo.ts:875", "pc": [ - 3607, - 3608, - 3609 + 4690, + 4691, + 4692 ] }, { "teal": 3493, - "source": 875, + "source": "examples/reti/stakingPool.algo.ts:875", "pc": [ - 3610, - 3611, - 3612 + 4693, + 4694, + 4695 ] }, { - "teal": 3494, - "source": 875, + "teal": 3496, + "source": "examples/reti/stakingPool.algo.ts:874", "pc": [ - 3613, - 3614, - 3615 + 4696, + 4697, + 4698 ] }, { "teal": 3497, - "source": 874, + "source": "examples/reti/stakingPool.algo.ts:874", "pc": [ - 3616, - 3617, - 3618 + 4699, + 4700, + 4701 ] }, { - "teal": 3498, - "source": 874, + "teal": 3500, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3619, - 3620, - 3621 + 4702, + 4703 ] }, { "teal": 3501, - "source": 873, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3622, - 3623 + 4704, + 4705 ] }, { "teal": 3502, - "source": 873, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3624 + 4706 ] }, { "teal": 3503, - "source": 873, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3625 + 4707 ] }, { "teal": 3504, - "source": 873, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3626 + 4708, + 4709 ] }, { "teal": 3505, - "source": 873, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3627, - 3628 + 4710, + 4711 ] }, { "teal": 3506, - "source": 873, + "source": "examples/reti/stakingPool.algo.ts:873", "pc": [ - 3629 + 4712 ] }, { - "teal": 3507, - "source": 873, + "teal": 3509, + "source": "examples/reti/stakingPool.algo.ts:873", + "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", "pc": [ - 3630 + 4713 ] }, { - "teal": 3510, - "source": 873, - "errorMessage": "argument 6 (feePayment) for goOnline must be a pay transaction", + "teal": 3512, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3631 + 4714, + 4715, + 4716 ] }, { "teal": 3513, - "source": 872, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3632, - 3633, - 3634 + 4717, + 4718 ] }, { "teal": 3514, - "source": 872, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3635 + 4719 ] }, { - "teal": 3515, - "source": 872, + "teal": 3530, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3636 + 4720, + 4721, + 4722 ] }, { - "teal": 3531, - "source": 872, + "teal": 3533, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3637, - 3638, - 3639 + 4723, + 4724 ] }, { - "teal": 3534, - "source": 872, + "teal": 3537, + "source": "examples/reti/stakingPool.algo.ts:881", "pc": [ - 3640, - 3641 + 4725, + 4726, + 4727 ] }, { - "teal": 3538, - "source": 881, + "teal": 3540, + "source": "examples/reti/stakingPool.algo.ts:881", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3642, - 3643, - 3644 + 4728 ] }, { - "teal": 3541, - "source": 881, - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3544, + "source": "examples/reti/stakingPool.algo.ts:882", "pc": [ - 3645 + 4729, + 4730, + 4731 ] }, { "teal": 3545, - "source": 882, + "source": "examples/reti/stakingPool.algo.ts:882", "pc": [ - 3646, - 3647, - 3648 + 4732, + 4733 ] }, { - "teal": 3546, - "source": 882, + "teal": 3550, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3649, - 3650 + 4734, + 4735 ] }, { "teal": 3551, - "source": 883, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3651, - 3652 + 4736, + 4737 ] }, { "teal": 3552, - "source": 883, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3653, - 3654 + 4738, + 4739 ] }, { "teal": 3553, - "source": 883, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3655, - 3656 + 4740 ] }, { - "teal": 3554, - "source": 883, + "teal": 3556, + "source": "examples/reti/stakingPool.algo.ts:883", + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 3657 + 4741 ] }, { - "teal": 3557, - "source": 883, - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", + "teal": 3559, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3658 + 4742, + 4743 ] }, { "teal": 3560, - "source": 883, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3659, - 3660 + 4744, + 4745 ] }, { "teal": 3561, - "source": 883, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3661, - 3662 + 4746, + 4747 ] }, { "teal": 3562, - "source": 883, + "source": "examples/reti/stakingPool.algo.ts:883", "pc": [ - 3663, - 3664 + 4748 ] }, { - "teal": 3563, - "source": 883, + "teal": 3565, + "source": "examples/reti/stakingPool.algo.ts:883", + "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", "pc": [ - 3665 + 4749 ] }, { - "teal": 3566, - "source": 883, - "errorMessage": "transaction verification failed: {\"txn\":\"feePayment\",\"field\":\"amount\",\"expected\":\"extraFee\"}", + "teal": 3577, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3666 + 4750 ] }, { "teal": 3578, - "source": 884, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3667 + 4751, + 4752 ] }, { "teal": 3579, - "source": 884, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3668, - 3669 + 4753, + 4754 ] }, { - "teal": 3580, - "source": 884, + "teal": 3583, + "source": "examples/reti/stakingPool.algo.ts:885", "pc": [ - 3670, - 3671 + 4755, + 4756 ] }, { "teal": 3584, - "source": 885, + "source": "examples/reti/stakingPool.algo.ts:885", "pc": [ - 3672, - 3673 + 4757, + 4758 ] }, { - "teal": 3585, - "source": 885, + "teal": 3588, + "source": "examples/reti/stakingPool.algo.ts:886", "pc": [ - 3674, - 3675 + 4759, + 4760 ] }, { "teal": 3589, - "source": 886, + "source": "examples/reti/stakingPool.algo.ts:886", "pc": [ - 3676, - 3677 + 4761, + 4762 ] }, { - "teal": 3590, - "source": 886, + "teal": 3593, + "source": "examples/reti/stakingPool.algo.ts:887", "pc": [ - 3678, - 3679 + 4763, + 4764 ] }, { "teal": 3594, - "source": 887, + "source": "examples/reti/stakingPool.algo.ts:887", "pc": [ - 3680, - 3681 + 4765, + 4766 ] }, { - "teal": 3595, - "source": 887, + "teal": 3598, + "source": "examples/reti/stakingPool.algo.ts:888", "pc": [ - 3682, - 3683 + 4767, + 4768 ] }, { "teal": 3599, - "source": 888, + "source": "examples/reti/stakingPool.algo.ts:888", "pc": [ - 3684, - 3685 + 4769, + 4770 ] }, { - "teal": 3600, - "source": 888, + "teal": 3603, + "source": "examples/reti/stakingPool.algo.ts:889", "pc": [ - 3686, - 3687 + 4771, + 4772 ] }, { "teal": 3604, - "source": 889, + "source": "examples/reti/stakingPool.algo.ts:889", "pc": [ - 3688, - 3689 + 4773, + 4774 ] }, { - "teal": 3605, - "source": 889, + "teal": 3608, + "source": "examples/reti/stakingPool.algo.ts:890", "pc": [ - 3690, - 3691 + 4775, + 4776 ] }, { "teal": 3609, - "source": 890, + "source": "examples/reti/stakingPool.algo.ts:890", "pc": [ - 3692, - 3693 + 4777, + 4778 ] }, { - "teal": 3610, - "source": 890, + "teal": 3613, + "source": "examples/reti/stakingPool.algo.ts:891", "pc": [ - 3694, - 3695 + 4779, + 4780, + 4781 ] }, { "teal": 3614, - "source": 891, + "source": "examples/reti/stakingPool.algo.ts:891", "pc": [ - 3696, - 3697, - 3698 + 4782, + 4783 ] }, { - "teal": 3615, - "source": 891, + "teal": 3617, + "source": "examples/reti/stakingPool.algo.ts:884", "pc": [ - 3699, - 3700 + 4784 ] }, { "teal": 3618, - "source": 884, + "source": "examples/reti/stakingPool.algo.ts:872", "pc": [ - 3701 + 4785 ] }, { - "teal": 3619, - "source": 872, + "teal": 3623, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3702 + 4786, + 4787, + 4788 ] }, { "teal": 3624, - "source": 900, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3703, - 3704, - 3705 + 4789, + 4790 ] }, { "teal": 3625, - "source": 900, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3706 + 4791 ] }, { - "teal": 3626, - "source": 900, + "teal": 3632, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3707 + 4792, + 4793, + 4794 ] }, { - "teal": 3633, - "source": 900, + "teal": 3637, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3708, - 3709, - 3710 + 4795, + 4796 ] }, { "teal": 3638, - "source": 903, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3711, - 3712 + 4797, + 4798, + 4799, + 4800, + 4801, + 4802, + 4803, + 4804, + 4805, + 4806, + 4807, + 4808 ] }, { "teal": 3639, - "source": 903, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3713 + 4809 ] }, { "teal": 3640, - "source": 903, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3714 + 4810, + 4811 ] }, { "teal": 3641, - "source": 903, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3715, - 3716 + 4812 ] }, { "teal": 3642, - "source": 903, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3717 + 4813 ] }, { "teal": 3643, - "source": 903, + "source": "examples/reti/stakingPool.algo.ts:903", "pc": [ - 3718 + 4814, + 4815, + 4816 ] }, { - "teal": 3644, - "source": 903, + "teal": 3648, + "source": "examples/reti/stakingPool.algo.ts:904", "pc": [ - 3719, - 3720, - 3721 + 4817, + 4818, + 4819 ] }, { - "teal": 3649, - "source": 904, + "teal": 3651, + "source": "examples/reti/stakingPool.algo.ts:904", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3722, - 3723, - 3724 + 4820 ] }, { - "teal": 3652, - "source": 904, - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3656, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3725 + 4821 ] }, { "teal": 3657, - "source": 907, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3726 + 4822, + 4823 ] }, { "teal": 3658, - "source": 907, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3727, - 3728 + 4824, + 4825 ] }, { - "teal": 3659, - "source": 907, + "teal": 3661, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3729, - 3730 + 4826, + 4827 ] }, { "teal": 3662, - "source": 907, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3731 + 4828, + 4829 ] }, { - "teal": 3663, - "source": 907, + "teal": 3665, + "source": "examples/reti/stakingPool.algo.ts:907", "pc": [ - 3732, - 3733 + 4830 ] }, { "teal": 3666, - "source": 907, + "source": "examples/reti/stakingPool.algo.ts:900", "pc": [ - 3734 + 4831 ] }, { - "teal": 3667, - "source": 900, + "teal": 3671, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3735 + 4832, + 4833, + 4834 ] }, { "teal": 3672, - "source": 913, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3736, - 3737, - 3738 + 4835, + 4836, + 4837 ] }, { - "teal": 3673, - "source": 913, + "teal": 3675, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3739, - 3740, - 3741 + 4838, + 4839, + 4840 ] }, { "teal": 3676, - "source": 913, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3742, - 3743, - 3744 + 4841 ] }, { - "teal": 3677, - "source": 913, + "teal": 3679, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3745 + 4842, + 4843, + 4844 ] }, { "teal": 3680, - "source": 913, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3746, - 3747, - 3748 + 4845, + 4846 ] }, { "teal": 3681, - "source": 913, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3749 + 4847 ] }, { - "teal": 3682, - "source": 913, + "teal": 3685, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3750 + 4848, + 4849, + 4850 ] }, { - "teal": 3686, - "source": 913, + "teal": 3689, + "source": "examples/reti/stakingPool.algo.ts:914", "pc": [ - 3751, - 3752, - 3753 + 4851, + 4852, + 4853 ] }, { - "teal": 3690, - "source": 914, + "teal": 3692, + "source": "examples/reti/stakingPool.algo.ts:914", + "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3754, - 3755, - 3756 + 4854 ] }, { - "teal": 3693, - "source": 914, - "errorMessage": "can only be called by owner or manager of validator", + "teal": 3700, + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3757 + 4855 ] }, { "teal": 3701, - "source": 916, + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3758 + 4856, + 4857 ] }, { "teal": 3702, - "source": 916, + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3759 + 4858, + 4859 ] }, { - "teal": 3703, - "source": 916, + "teal": 3706, + "source": "examples/reti/stakingPool.algo.ts:917", "pc": [ - 3760, - 3761 + 4860 ] }, { "teal": 3707, - "source": 917, + "source": "examples/reti/stakingPool.algo.ts:917", "pc": [ - 3762, - 3763 + 4861, + 4862 ] }, { - "teal": 3708, - "source": 917, + "teal": 3711, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3764, - 3765 + 4863, + 4864, + 4865, + 4866, + 4867, + 4868, + 4869, + 4870, + 4871, + 4872, + 4873, + 4874, + 4875, + 4876, + 4877, + 4878, + 4879 ] }, { "teal": 3712, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3766, - 3767, - 3768, - 3769, - 3770, - 3771, - 3772, - 3773, - 3774, - 3775, - 3776, - 3777, - 3778, - 3779, - 3780, - 3781, - 3782 + 4880, + 4881 ] }, { "teal": 3713, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3783, - 3784 + 4882, + 4883 ] }, { "teal": 3714, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3785, - 3786 + 4884, + 4885 ] }, { "teal": 3715, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3787, - 3788 + 4886, + 4887 ] }, { "teal": 3716, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3789, - 3790 + 4888 ] }, { "teal": 3717, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3791 + 4889, + 4890 ] }, { "teal": 3718, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3792, - 3793 + 4891, + 4892 ] }, { "teal": 3719, - "source": 918, + "source": "examples/reti/stakingPool.algo.ts:918", "pc": [ - 3794, - 3795 + 4893, + 4894 ] }, { - "teal": 3720, - "source": 918, + "teal": 3723, + "source": "examples/reti/stakingPool.algo.ts:919", "pc": [ - 3796, - 3797 + 4895, + 4896 ] }, { "teal": 3724, - "source": 919, + "source": "examples/reti/stakingPool.algo.ts:919", "pc": [ - 3798, - 3799 + 4897, + 4898 ] }, { - "teal": 3725, - "source": 919, + "teal": 3727, + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3800, - 3801 + 4899, + 4900 ] }, { "teal": 3728, - "source": 916, + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3802 + 4901, + 4902 ] }, { - "teal": 3729, - "source": 916, + "teal": 3731, + "source": "examples/reti/stakingPool.algo.ts:916", "pc": [ - 3803, - 3804 + 4903 ] }, { "teal": 3732, - "source": 916, + "source": "examples/reti/stakingPool.algo.ts:913", "pc": [ - 3805 + 4904 ] }, { - "teal": 3733, - "source": 913, + "teal": 3737, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3806 + 4905, + 4906, + 4907, + 4908, + 4909, + 4910 ] }, { - "teal": 3738, - "source": 929, + "teal": 3740, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3807, - 3808 + 4911, + 4912, + 4913 ] }, { "teal": 3741, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3809, - 3810, - 3811 + 4914 ] }, { "teal": 3742, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3812 + 4915 ] }, { "teal": 3743, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3813 + 4916, + 4917 ] }, { "teal": 3744, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3814, - 3815 + 4918 ] }, { - "teal": 3745, - "source": 929, + "teal": 3747, + "source": "examples/reti/stakingPool.algo.ts:929", + "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", "pc": [ - 3816 + 4919 ] }, { - "teal": 3748, - "source": 929, - "errorMessage": "argument 0 (poolKey) for proxiedSetTokenPayoutRatio must be a (uint64,uint64,uint64)", + "teal": 3750, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3817 + 4920, + 4921, + 4922 ] }, { "teal": 3751, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3818, - 3819, - 3820 + 4923 ] }, { "teal": 3752, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3821 + 4924 ] }, { "teal": 3753, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3822 + 4925, + 4926 ] }, { "teal": 3754, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3823 + 4927 ] }, { - "teal": 3755, - "source": 929, + "teal": 3763, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3824 + 4928, + 4929, + 4930 ] }, { - "teal": 3764, - "source": 929, + "teal": 3766, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3825, - 3826, - 3827 + 4931, + 4932 ] }, { - "teal": 3767, - "source": 929, + "teal": 3770, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3828, - 3829 + 4933, + 4934, + 4935, + 4936, + 4937, + 4938, + 4939, + 4940, + 4941, + 4942, + 4943, + 4944, + 4945 ] }, { "teal": 3771, - "source": 930, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3830 + 4946 ] }, { "teal": 3772, - "source": 930, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3831 + 4947, + 4948 ] }, { "teal": 3773, - "source": 930, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3832, - 3833 + 4949, + 4950, + 4951 ] }, { "teal": 3774, - "source": 930, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3834, - 3835, - 3836 + 4952 ] }, { "teal": 3775, - "source": 930, + "source": "examples/reti/stakingPool.algo.ts:930", "pc": [ - 3837 + 4953 ] }, { - "teal": 3776, - "source": 930, + "teal": 3778, + "source": "examples/reti/stakingPool.algo.ts:930", + "errorMessage": "caller must be part of same validator set!", "pc": [ - 3838 + 4954 ] }, { - "teal": 3779, - "source": 930, - "errorMessage": "caller must be part of same validator set!", + "teal": 3782, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3839 + 4955, + 4956, + 4957, + 4958, + 4959, + 4960, + 4961, + 4962 ] }, { "teal": 3783, - "source": 931, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3840 + 4963 ] }, { "teal": 3784, - "source": 931, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3841 + 4964, + 4965 ] }, { "teal": 3785, - "source": 931, + "source": "examples/reti/stakingPool.algo.ts:931", "pc": [ - 3842 + 4966 ] }, { - "teal": 3786, - "source": 931, + "teal": 3788, + "source": "examples/reti/stakingPool.algo.ts:931", + "errorMessage": "callee must be pool 1", "pc": [ - 3843 + 4967 ] }, { - "teal": 3789, - "source": 931, - "errorMessage": "callee must be pool 1", + "teal": 3792, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3844 + 4968, + 4969 ] }, { "teal": 3793, - "source": 932, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3845, - 3846 + 4970, + 4971, + 4972 ] }, { "teal": 3794, - "source": 932, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3847, - 3848, - 3849 + 4973 ] }, { "teal": 3795, - "source": 932, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3850 + 4974, + 4975 ] }, { "teal": 3796, - "source": 932, + "source": "examples/reti/stakingPool.algo.ts:932", "pc": [ - 3851 + 4976 ] }, { - "teal": 3797, - "source": 932, + "teal": 3799, + "source": "examples/reti/stakingPool.algo.ts:932", + "errorMessage": "caller must NOT be pool 1", "pc": [ - 3852 + 4977 ] }, { - "teal": 3800, - "source": 932, - "errorMessage": "caller must NOT be pool 1", + "teal": 3806, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3853 + 4978 ] }, { "teal": 3807, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3854 + 4979, + 4980 ] }, { "teal": 3808, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3855 + 4981, + 4982 ] }, { "teal": 3809, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3856, - 3857 + 4983, + 4984, + 4985, + 4986, + 4987, + 4988 ] }, { "teal": 3810, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3858, - 3859 + 4989, + 4990 ] }, { - "teal": 3811, - "source": 934, + "teal": 3814, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3860, - 3861 + 4991, + 4992, + 4993, + 4994, + 4995, + 4996, + 4997, + 4998, + 4999, + 5000, + 5001, + 5002 ] }, { "teal": 3815, - "source": 935, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3862 + 5003 ] }, { "teal": 3816, - "source": 935, + "source": "examples/reti/stakingPool.algo.ts:935", "pc": [ - 3863 + 5004, + 5005 ] }, { - "teal": 3817, - "source": 935, + "teal": 3820, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3864, - 3865 + 5006, + 5007 ] }, { "teal": 3821, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3866, - 3867 + 5008, + 5009, + 5010 ] }, { "teal": 3822, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3868, - 3869, - 3870 + 5011 ] }, { "teal": 3823, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3871 + 5012 ] }, { "teal": 3824, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3872 + 5013, + 5014 ] }, { "teal": 3825, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3873, - 3874 + 5015, + 5016 ] }, { "teal": 3826, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3875, - 3876 + 5017, + 5018, + 5019 ] }, { "teal": 3827, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3877, - 3878, - 3879 + 5020 ] }, { "teal": 3828, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3880 + 5021 ] }, { "teal": 3829, - "source": 936, + "source": "examples/reti/stakingPool.algo.ts:936", "pc": [ - 3881 + 5022, + 5023 ] }, { - "teal": 3830, - "source": 936, + "teal": 3832, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3882, - 3883 + 5024, + 5025 ] }, { "teal": 3833, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3884 + 5026, + 5027 ] }, { - "teal": 3834, - "source": 934, + "teal": 3836, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3885, - 3886 + 5028 ] }, { "teal": 3837, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3887 + 5029, + 5030 ] }, { "teal": 3838, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3888, - 3889 + 5031, + 5032 ] }, { "teal": 3839, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3890 + 5033 ] }, { "teal": 3840, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3891 + 5034, + 5035 ] }, { "teal": 3841, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3892, - 3893 + 5036, + 5037, + 5038 ] }, { "teal": 3842, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3894, - 3895, - 3896 + 5039 ] }, { "teal": 3843, - "source": 934, + "source": "examples/reti/stakingPool.algo.ts:934", "pc": [ - 3897 + 5040, + 5041 ] }, { - "teal": 3844, - "source": 934, + "teal": 3847, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3898, - 3899 + 5042, + 5043 ] }, { "teal": 3848, - "source": 938, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3900, - 3901 + 5044, + 5045 ] }, { "teal": 3849, - "source": 938, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3902, - 3903 + 5046, + 5047, + 5048 ] }, { "teal": 3850, - "source": 938, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3904, - 3905, - 3906 + 5049 ] }, { "teal": 3851, - "source": 938, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3907 + 5050 ] }, { "teal": 3852, - "source": 938, + "source": "examples/reti/stakingPool.algo.ts:938", "pc": [ - 3908 + 5051 ] }, { - "teal": 3853, - "source": 938, + "teal": 3856, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3909 + 5052, + 5053 ] }, { "teal": 3857, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3910, - 3911 + 5054, + 5055 ] }, { "teal": 3858, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3912, - 3913 + 5056, + 5057, + 5058 ] }, { "teal": 3859, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3914, - 3915, - 3916 + 5059 ] }, { "teal": 3860, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3917 + 5060, + 5061 ] }, { "teal": 3861, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3918, - 3919 + 5062 ] }, { "teal": 3862, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3920 + 5063 ] }, { "teal": 3863, - "source": 939, + "source": "examples/reti/stakingPool.algo.ts:939", "pc": [ - 3921 + 5064 ] }, { - "teal": 3864, - "source": 939, + "teal": 3870, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3922 + 5065 ] }, { "teal": 3871, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3923 + 5066, + 5067 ] }, { "teal": 3872, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3924 + 5068, + 5069 ] }, { "teal": 3873, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3925, - 3926 + 5070, + 5071, + 5072, + 5073, + 5074, + 5075 ] }, { "teal": 3874, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3927, - 3928 + 5076, + 5077 ] }, { - "teal": 3875, - "source": 941, + "teal": 3878, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ - 3929, - 3930 + 5078, + 5079, + 5080, + 5081, + 5082, + 5083, + 5084, + 5085, + 5086, + 5087, + 5088, + 5089 ] }, { "teal": 3879, - "source": 942, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ - 3931 + 5090 ] }, { "teal": 3880, - "source": 942, + "source": "examples/reti/stakingPool.algo.ts:942", "pc": [ - 3932 + 5091, + 5092 ] }, { - "teal": 3881, - "source": 942, + "teal": 3884, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ - 3933, - 3934 + 5093, + 5094, + 5095, + 5096, + 5097, + 5098, + 5099, + 5100, + 5101, + 5102, + 5103, + 5104, + 5105 ] }, { "teal": 3885, - "source": 943, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ - 3935 + 5106 ] }, { "teal": 3886, - "source": 943, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ - 3936 + 5107 ] }, { "teal": 3887, - "source": 943, + "source": "examples/reti/stakingPool.algo.ts:943", "pc": [ - 3937 + 5108, + 5109 ] }, { - "teal": 3888, - "source": 943, + "teal": 3890, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3938, - 3939 + 5110, + 5111 ] }, { "teal": 3891, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3940 + 5112, + 5113 ] }, { - "teal": 3892, - "source": 941, + "teal": 3894, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3941, - 3942 + 5114 ] }, { "teal": 3895, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3943 + 5115, + 5116 ] }, { "teal": 3896, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3944, - 3945 + 5117, + 5118 ] }, { "teal": 3897, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3946 + 5119 ] }, { "teal": 3898, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3947 + 5120, + 5121 ] }, { "teal": 3899, - "source": 941, + "source": "examples/reti/stakingPool.algo.ts:941", "pc": [ - 3948, - 3949 + 5122, + 5123, + 5124 ] }, { - "teal": 3900, - "source": 941, + "teal": 3902, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3950, - 3951, - 3952 + 5125, + 5126 ] }, { "teal": 3903, - "source": 929, + "source": "examples/reti/stakingPool.algo.ts:929", "pc": [ - 3953, - 3954 + 5127 ] }, { - "teal": 3904, - "source": 929, + "teal": 3907, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 3955 + 5128, + 5129, + 5130 ] }, { - "teal": 3908, - "source": 947, + "teal": 3910, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 3956, - 3957, - 3958 + 5131, + 5132 ] }, { - "teal": 3911, - "source": 947, + "teal": 3917, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3959, - 3960 + 5133 ] }, { "teal": 3918, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3961 + 5134, + 5135 ] }, { "teal": 3919, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3962 + 5136, + 5137 ] }, { "teal": 3920, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3963, - 3964 + 5138, + 5139, + 5140, + 5141, + 5142, + 5143 ] }, { "teal": 3921, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3965, - 3966, - 3967, - 3968, - 3969, - 3970 + 5144, + 5145 ] }, { - "teal": 3922, - "source": 948, + "teal": 3925, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ - 3971, - 3972 + 5146, + 5147, + 5148, + 5149, + 5150, + 5151, + 5152, + 5153, + 5154, + 5155, + 5156, + 5157 ] }, { "teal": 3926, - "source": 949, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ - 3973 + 5158 ] }, { "teal": 3927, - "source": 949, + "source": "examples/reti/stakingPool.algo.ts:949", "pc": [ - 3974 + 5159, + 5160 ] }, { - "teal": 3928, - "source": 949, + "teal": 3931, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ - 3975, - 3976 + 5161, + 5162, + 5163, + 5164, + 5165, + 5166, + 5167, + 5168, + 5169, + 5170, + 5171, + 5172, + 5173 ] }, { "teal": 3932, - "source": 950, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ - 3977 + 5174 ] }, { "teal": 3933, - "source": 950, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ - 3978 + 5175 ] }, { "teal": 3934, - "source": 950, + "source": "examples/reti/stakingPool.algo.ts:950", "pc": [ - 3979 + 5176, + 5177 ] }, { - "teal": 3935, - "source": 950, + "teal": 3937, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3980, - 3981 + 5178, + 5179 ] }, { "teal": 3938, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3982 + 5180, + 5181 ] }, { - "teal": 3939, - "source": 948, + "teal": 3941, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3983, - 3984 + 5182 ] }, { "teal": 3942, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3985 + 5183, + 5184 ] }, { "teal": 3943, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3986, - 3987 + 5185, + 5186 ] }, { "teal": 3944, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3988 + 5187 ] }, { "teal": 3945, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3989 + 5188, + 5189 ] }, { "teal": 3946, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3990, - 3991 + 5190, + 5191, + 5192 ] }, { "teal": 3947, - "source": 948, + "source": "examples/reti/stakingPool.algo.ts:948", "pc": [ - 3992, - 3993, - 3994 + 5193, + 5194 ] }, { - "teal": 3948, - "source": 948, + "teal": 3951, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3995, - 3996 + 5195, + 5196 ] }, { "teal": 3952, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3997, - 3998 + 5197, + 5198 ] }, { "teal": 3953, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 3999, - 4000 + 5199, + 5200, + 5201 ] }, { "teal": 3954, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4001, - 4002, - 4003 + 5202 ] }, { "teal": 3955, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4004 + 5203 ] }, { "teal": 3956, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4005 + 5204, + 5205, + 5206 ] }, { "teal": 3957, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4006, - 4007, - 4008 + 5207, + 5208 ] }, { "teal": 3958, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4009, - 4010 + 5209, + 5210 ] }, { "teal": 3959, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4011, - 4012 + 5211, + 5212, + 5213 ] }, { "teal": 3960, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4013, - 4014, - 4015 + 5214 ] }, { "teal": 3961, - "source": 952, + "source": "examples/reti/stakingPool.algo.ts:952", "pc": [ - 4016 + 5215 ] }, { - "teal": 3962, - "source": 952, + "teal": 3965, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 4017 + 5216, + 5217 ] }, { "teal": 3966, - "source": 947, + "source": "examples/reti/stakingPool.algo.ts:947", "pc": [ - 4018, - 4019 + 5218 ] }, { - "teal": 3967, - "source": 947, + "teal": 3970, + "source": "examples/reti/stakingPool.algo.ts:955", "pc": [ - 4020 + 5219, + 5220, + 5221 ] }, { - "teal": 3971, - "source": 955, + "teal": 3974, + "source": "examples/reti/stakingPool.algo.ts:956", "pc": [ - 4021, - 4022, - 4023 + 5222 ] }, { "teal": 3975, - "source": 956, + "source": "examples/reti/stakingPool.algo.ts:955", "pc": [ - 4024, - 4025 + 5223 ] }, { - "teal": 3976, - "source": 955, + "teal": 3982, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 4026 + 5224, + 5225, + 5226 ] }, { - "teal": 3983, - "source": 965, + "teal": 3985, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 4027, - 4028, - 4029 + 5227, + 5228 ] }, { - "teal": 3986, - "source": 965, + "teal": 3989, + "source": "examples/reti/stakingPool.algo.ts:966", "pc": [ - 4030, - 4031 + 5229, + 5230, + 5231 ] }, { "teal": 3990, - "source": 966, + "source": "examples/reti/stakingPool.algo.ts:966", "pc": [ - 4032, - 4033, - 4034 + 5232, + 5233 ] }, { - "teal": 3991, - "source": 966, + "teal": 3994, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4035, - 4036 + 5234, + 5235 ] }, { "teal": 3995, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4037, - 4038 + 5236, + 5237 ] }, { "teal": 3996, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4039, - 4040 + 5238 ] }, { "teal": 3997, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4041 + 5239, + 5240 ] }, { "teal": 3998, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4042 + 5241, + 5242, + 5243 ] }, { "teal": 3999, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4043, - 4044 + 5244 ] }, { "teal": 4000, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4045 + 5245 ] }, { "teal": 4001, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4046 + 5246 ] }, { "teal": 4002, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4047 + 5247 ] }, { "teal": 4003, - "source": 968, + "source": "examples/reti/stakingPool.algo.ts:968", "pc": [ - 4048 + 5248 ] }, { - "teal": 4004, - "source": 968, + "teal": 4006, + "source": "examples/reti/stakingPool.algo.ts:968", + "errorMessage": "wideRatio failed", "pc": [ - 4049 + 5249 ] }, { - "teal": 4007, - "source": 968, - "errorMessage": "wideRatio failed", + "teal": 4009, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 4050 + 5250, + 5251 ] }, { "teal": 4010, - "source": 965, + "source": "examples/reti/stakingPool.algo.ts:965", "pc": [ - 4051, - 4052 + 5252 ] }, { - "teal": 4011, - "source": 965, + "teal": 4014, + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 4053 + 5253, + 5254, + 5255 ] }, { - "teal": 4015, - "source": 971, + "teal": 4017, + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 4054, - 4055, - 4056 + 5256, + 5257 ] }, { - "teal": 4018, - "source": 971, + "teal": 4021, + "source": "examples/reti/stakingPool.algo.ts:975", "pc": [ - 4057, - 4058 + 5258, + 5259 ] }, { "teal": 4022, - "source": 975, + "source": "examples/reti/stakingPool.algo.ts:975", "pc": [ - 4059 + 5260, + 5261 ] }, { - "teal": 4023, - "source": 975, + "teal": 4027, + "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 4060, - 4061 + 5262, + 5263 ] }, { "teal": 4028, - "source": 976, + "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 4062, - 4063 + 5264 ] }, { "teal": 4029, - "source": 976, + "source": "examples/reti/stakingPool.algo.ts:976", "pc": [ - 4064 + 5265, + 5266, + 5267 ] }, { - "teal": 4030, - "source": 976, + "teal": 4034, + "source": "examples/reti/stakingPool.algo.ts:978", "pc": [ - 4065, - 4066, - 4067 + 5268, + 5269, + 5270, + 5271 ] }, { "teal": 4035, - "source": 978, + "source": "examples/reti/stakingPool.algo.ts:978", "pc": [ - 4068, - 4069, - 4070, - 4071 + 5272, + 5273, + 5274 ] }, { - "teal": 4036, - "source": 978, + "teal": 4040, + "source": "examples/reti/stakingPool.algo.ts:980", "pc": [ - 4072, - 4073, - 4074 + 5275, + 5276 ] }, { - "teal": 4041, - "source": 980, + "teal": 4044, + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 4075 + 5277, + 5278 ] }, { "teal": 4045, - "source": 971, + "source": "examples/reti/stakingPool.algo.ts:971", "pc": [ - 4076, - 4077 + 5279 ] }, { - "teal": 4046, - "source": 971, + "teal": 4049, + "source": "examples/reti/stakingPool.algo.ts:983", "pc": [ - 4078 + 5280, + 5281, + 5282 ] }, { - "teal": 4050, - "source": 983, + "teal": 4053, + "source": "examples/reti/stakingPool.algo.ts:985", "pc": [ - 4079, - 4080, - 4081 + 5283, + 5284, + 5285, + 5286, + 5287, + 5288, + 5289, + 5290, + 5291 ] }, { "teal": 4054, - "source": 985, + "source": "examples/reti/stakingPool.algo.ts:983", "pc": [ - 4082, - 4083, - 4084, - 4085, - 4086, - 4087, - 4088, - 4089, - 4090 + 5292 ] }, { - "teal": 4055, - "source": 983, + "teal": 4060, + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ - 4091 + 5293, + 5294, + 5295 ] }, { - "teal": 4061, - "source": 991, + "teal": 4063, + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ - 4092, - 4093, - 4094 + 5296, + 5297 ] }, { "teal": 4064, - "source": 991, + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ - 4095, - 4096 + 5298, + 5299 ] }, { - "teal": 4065, - "source": 991, + "teal": 4068, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 4097, - 4098 + 5300, + 5301, + 5302, + 5303, + 5304, + 5305, + 5306, + 5307, + 5308, + 5309, + 5310, + 5311, + 5312, + 5313 ] }, { "teal": 4069, - "source": 992, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 4099, - 4100 + 5314 ] }, { "teal": 4070, - "source": 992, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 4101 + 5315 ] }, { "teal": 4071, - "source": 992, + "source": "examples/reti/stakingPool.algo.ts:992", "pc": [ - 4102 + 5316, + 5317 ] }, { - "teal": 4072, - "source": 992, + "teal": 4076, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4103, - 4104 + 5318, + 5319 ] }, { "teal": 4077, - "source": 993, - "pc": [ - 4105, - 4106 + "source": "examples/reti/stakingPool.algo.ts:993", + "pc": [ + 5320, + 5321, + 5322, + 5323, + 5324, + 5325, + 5326, + 5327, + 5328, + 5329, + 5330, + 5331, + 5332, + 5333, + 5334 ] }, { "teal": 4078, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4107, - 4108 + 5335 ] }, { "teal": 4079, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4109 + 5336, + 5337 ] }, { "teal": 4080, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4110, - 4111 + 5338 ] }, { "teal": 4081, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4112 + 5339 ] }, { "teal": 4082, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4113 + 5340, + 5341 ] }, { "teal": 4083, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4114 + 5342 ] }, { - "teal": 4084, - "source": 993, + "teal": 4086, + "source": "examples/reti/stakingPool.algo.ts:993", + "errorMessage": "currentBinSize as uint64 overflowed 64 bits", "pc": [ - 4115 + 5343 ] }, { "teal": 4087, - "source": 993, - "errorMessage": "currentBinSize as uint64 overflowed 64 bits", + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4116 + 5344, + 5345, + 5346, + 5347, + 5348, + 5349, + 5350, + 5351, + 5352, + 5353 ] }, { "teal": 4088, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4117, - 4118, - 4119, - 4120, - 4121, - 4122, - 4123, - 4124, - 4125, - 4126 + 5354 ] }, { "teal": 4089, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4127 + 5355 ] }, { "teal": 4090, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4128 + 5356 ] }, { "teal": 4091, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4129 + 5357 ] }, { "teal": 4092, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4130 + 5358, + 5359 ] }, { "teal": 4093, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4131, - 4132 + 5360 ] }, { "teal": 4094, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4133 + 5361 ] }, { "teal": 4095, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4134 + 5362 ] }, { "teal": 4096, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4135 + 5363 ] }, { "teal": 4097, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4136 + 5364 ] }, { "teal": 4098, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4137 + 5365 ] }, { "teal": 4099, - "source": 993, + "source": "examples/reti/stakingPool.algo.ts:993", "pc": [ - 4138 + 5366, + 5367, + 5368 ] }, { - "teal": 4100, - "source": 993, + "teal": 4105, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 4139, - 4140, - 4141 + 5369, + 5370 ] }, { "teal": 4106, - "source": 994, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 4142, - 4143 + 5371, + 5372, + 5373 ] }, { "teal": 4107, - "source": 994, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 4144, - 4145 + 5374 ] }, { "teal": 4108, - "source": 994, + "source": "examples/reti/stakingPool.algo.ts:994", "pc": [ - 4146 + 5375, + 5376, + 5377 ] }, { - "teal": 4109, - "source": 994, + "teal": 4113, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4147, - 4148, - 4149 + 5378 ] }, { "teal": 4114, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4150 + 5379, + 5380 ] }, { "teal": 4115, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4151 + 5381, + 5382 ] }, { "teal": 4116, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4152, - 4153 + 5383, + 5384 ] }, { "teal": 4117, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4154 + 5385, + 5386 ] }, { "teal": 4118, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4155, - 4156 + 5387, + 5388, + 5389, + 5390, + 5391 ] }, { "teal": 4119, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4157, - 4158 + 5392 ] }, { "teal": 4120, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4159 + 5393, + 5394 ] }, { "teal": 4121, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4160, - 4161 + 5395, + 5396 ] }, { "teal": 4122, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4162, - 4163 + 5397, + 5398 ] }, { "teal": 4123, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4164, - 4165 + 5399, + 5400 ] }, { "teal": 4124, - "source": 995, - "pc": [ - 4166, - 4167 - ] - }, - { - "teal": 4125, - "source": 995, + "source": "examples/reti/stakingPool.algo.ts:995", "pc": [ - 4168 + 5401 ] }, { - "teal": 4130, - "source": 997, + "teal": 4129, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4169, - 4170 + 5402, + 5403 ] - }, - { - "teal": 4131, - "source": 997, - "pc": [ - 4171, - 4172, - 4173, - 4174, - 4175, - 4176, - 4177, - 4178, - 4179, - 4180, - 4181, - 4182, - 4183, - 4184, - 4185, - 4186, - 4187, - 4188 + }, + { + "teal": 4130, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 5404, + 5405, + 5406, + 5407, + 5408, + 5409, + 5410, + 5411, + 5412, + 5413, + 5414, + 5415, + 5416, + 5417, + 5418, + 5419, + 5420, + 5421 + ] + }, + { + "teal": 4131, + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 5422 ] }, { "teal": 4132, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4189 + 5423 ] }, { "teal": 4133, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4190 + 5424 ] }, { "teal": 4134, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4191 + 5425, + 5426, + 5427 ] }, { "teal": 4135, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4192, - 4193 + 5428 ] }, { - "teal": 4136, - "source": 997, + "teal": 4138, + "source": "examples/reti/stakingPool.algo.ts:997", + "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", "pc": [ - 4194 + 5429 ] }, { "teal": 4139, - "source": 997, - "errorMessage": "currentBinSize * (365 as uint128) overflowed 128 bits", - "pc": [ - 4195 + "source": "examples/reti/stakingPool.algo.ts:997", + "pc": [ + 5430, + 5431, + 5432, + 5433, + 5434, + 5435, + 5436, + 5437, + 5438, + 5439, + 5440, + 5441, + 5442, + 5443, + 5444, + 5445, + 5446, + 5447 ] }, { "teal": 4140, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4196, - 4197 + 5448 ] }, { "teal": 4141, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4198 + 5449 ] }, { "teal": 4142, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4199 + 5450 ] }, { "teal": 4143, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4200 + 5451 ] }, { "teal": 4144, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4201 + 5452, + 5453 ] }, { "teal": 4145, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4202, - 4203 + 5454 ] }, { "teal": 4146, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4204 + 5455 ] }, { "teal": 4147, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4205 + 5456 ] }, { "teal": 4148, - "source": 997, + "source": "examples/reti/stakingPool.algo.ts:997", "pc": [ - 4206 + 5457, + 5458 ] }, { - "teal": 4149, - "source": 997, + "teal": 4152, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4207, - 4208 + 5459, + 5460, + 5461, + 5462, + 5463, + 5464, + 5465, + 5466, + 5467, + 5468, + 5469, + 5470, + 5471, + 5472, + 5473, + 5474, + 5475, + 5476 ] }, { "teal": 4153, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4209, - 4210 + 5477 ] }, { "teal": 4154, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4211 + 5478, + 5479 ] }, { "teal": 4155, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4212, - 4213 + 5480 ] }, { "teal": 4156, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4214 + 5481 ] }, { "teal": 4157, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4215 + 5482 ] }, { "teal": 4158, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4216 + 5483, + 5484, + 5485 ] }, { "teal": 4159, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4217, - 4218 + 5486 ] }, { - "teal": 4160, - "source": 998, + "teal": 4162, + "source": "examples/reti/stakingPool.algo.ts:998", + "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", "pc": [ - 4219 + 5487 ] }, { "teal": 4163, - "source": 998, - "errorMessage": "this.stakeAccumulator.value / currentBinSize overflowed 128 bits", - "pc": [ - 4220 + "source": "examples/reti/stakingPool.algo.ts:998", + "pc": [ + 5488, + 5489, + 5490, + 5491, + 5492, + 5493, + 5494, + 5495, + 5496, + 5497, + 5498, + 5499, + 5500, + 5501, + 5502, + 5503, + 5504, + 5505 ] }, { "teal": 4164, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4221, - 4222 + 5506 ] }, { "teal": 4165, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4223 + 5507 ] }, { "teal": 4166, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4224 + 5508 ] }, { "teal": 4167, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4225 + 5509 ] }, { "teal": 4168, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4226 + 5510, + 5511 ] }, { "teal": 4169, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4227, - 4228 + 5512 ] }, { "teal": 4170, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4229 + 5513 ] }, { "teal": 4171, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4230 + 5514 ] }, { "teal": 4172, - "source": 998, + "source": "examples/reti/stakingPool.algo.ts:998", "pc": [ - 4231 + 5515, + 5516 ] }, { - "teal": 4173, - "source": 998, + "teal": 4177, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ - 4232, - 4233 + 5517, + 5518 ] }, { "teal": 4178, - "source": 999, - "pc": [ - 4234, - 4235 + "source": "examples/reti/stakingPool.algo.ts:999", + "pc": [ + 5519, + 5520, + 5521, + 5522, + 5523, + 5524, + 5525, + 5526, + 5527, + 5528, + 5529, + 5530, + 5531, + 5532, + 5533, + 5534, + 5535, + 5536 ] }, { "teal": 4179, - "source": 999, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ - 4236, - 4237 + 5537 ] }, { "teal": 4180, - "source": 999, + "source": "examples/reti/stakingPool.algo.ts:999", "pc": [ - 4238 + 5538, + 5539, + 5540 ] }, { - "teal": 4181, - "source": 999, + "teal": 4187, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4239, - 4240, - 4241 + 5541, + 5542, + 5543, + 5544, + 5545, + 5546, + 5547, + 5548, + 5549, + 5550, + 5551, + 5552, + 5553, + 5554, + 5555, + 5556, + 5557, + 5558, + 5559 ] }, { "teal": 4188, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4242, - 4243 + 5560 ] }, { "teal": 4189, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4244 + 5561 ] }, { "teal": 4190, - "source": 1004, - "pc": [ - 4245 + "source": "examples/reti/stakingPool.algo.ts:1004", + "pc": [ + 5562, + 5563, + 5564, + 5565, + 5566, + 5567, + 5568, + 5569, + 5570, + 5571, + 5572, + 5573, + 5574, + 5575, + 5576, + 5577, + 5578, + 5579 ] }, { "teal": 4191, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4246, - 4247, - 4248, - 4249, - 4250, - 4251, - 4252, - 4253, - 4254, - 4255, - 4256, - 4257, - 4258, - 4259, - 4260, - 4261, - 4262, - 4263 + 5580 ] }, { "teal": 4192, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4264 + 5581, + 5582 ] }, { "teal": 4193, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4265, - 4266 + 5583 ] }, { "teal": 4194, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 4267 + 5584, + 5585 ] }, { "teal": 4195, - "source": 1005, + "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 4268, - 4269 + 5586, + 5587 ] }, { "teal": 4196, - "source": 1005, + "source": "examples/reti/stakingPool.algo.ts:1005", "pc": [ - 4270, - 4271 + 5588 ] }, { "teal": 4197, - "source": 1005, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4272 + 5589 ] }, { "teal": 4198, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4273 + 5590 ] }, { "teal": 4199, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4274 + 5591 ] }, { "teal": 4200, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4275 + 5592, + 5593, + 5594 ] }, { "teal": 4201, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4276, - 4277 + 5595 ] }, { - "teal": 4202, - "source": 1004, + "teal": 4204, + "source": "examples/reti/stakingPool.algo.ts:1004", + "errorMessage": "(((this.rewardAccumulator.value as uint128) * (10000 as uint128)) / avgStake) *\\n (approxRoundsPerYear / currentBinSize) overflowed 128 bits", "pc": [ - 4278 + 5596 ] }, { "teal": 4205, - "source": 1004, - "errorMessage": "(((this.rewardAccumulator.value as uint128) * (10000 as uint128)) / avgStake) *\\n (approxRoundsPerYear / currentBinSize) overflowed 128 bits", - "pc": [ - 4279 + "source": "examples/reti/stakingPool.algo.ts:1004", + "pc": [ + 5597, + 5598, + 5599, + 5600, + 5601, + 5602, + 5603, + 5604, + 5605, + 5606, + 5607, + 5608, + 5609, + 5610, + 5611, + 5612, + 5613, + 5614 ] }, { "teal": 4206, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4280, - 4281 + 5615 ] }, { "teal": 4207, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4282 + 5616 ] }, { "teal": 4208, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4283 + 5617 ] }, { "teal": 4209, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4284 + 5618 ] }, { "teal": 4210, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4285 + 5619, + 5620 ] }, { "teal": 4211, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4286, - 4287 + 5621 ] }, { "teal": 4212, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4288 + 5622 ] }, { "teal": 4213, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1004", "pc": [ - 4289 + 5623 ] }, { "teal": 4214, - "source": 1004, + "source": "examples/reti/stakingPool.algo.ts:1003", "pc": [ - 4290 + 5624, + 5625 ] }, { - "teal": 4215, - "source": 1003, + "teal": 4218, + "source": "examples/reti/stakingPool.algo.ts:1007", "pc": [ - 4291, - 4292 + 5626, + 5627, + 5628, + 5629, + 5630, + 5631, + 5632, + 5633, + 5634, + 5635, + 5636, + 5637, + 5638, + 5639, + 5640, + 5641, + 5642, + 5643 ] }, { "teal": 4219, - "source": 1007, + "source": "examples/reti/stakingPool.algo.ts:1007", "pc": [ - 4293, - 4294, - 4295, - 4296, - 4297, - 4298, - 4299, - 4300, - 4301, - 4302, - 4303, - 4304, - 4305, - 4306, - 4307, - 4308, - 4309, - 4310 + 5644, + 5645 ] }, { - "teal": 4220, - "source": 1007, + "teal": 4224, + "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4311, - 4312 + 5646, + 5647 ] }, { "teal": 4225, - "source": 1009, - "pc": [ - 4313, - 4314 + "source": "examples/reti/stakingPool.algo.ts:1009", + "pc": [ + 5648, + 5649, + 5650, + 5651, + 5652, + 5653, + 5654, + 5655, + 5656, + 5657, + 5658, + 5659, + 5660, + 5661, + 5662, + 5663, + 5664, + 5665 ] }, { "teal": 4226, - "source": 1009, + "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4315, - 4316, - 4317, - 4318, - 4319, - 4320, - 4321, - 4322, - 4323, - 4324, - 4325, - 4326, - 4327, - 4328, - 4329, - 4330, - 4331, - 4332 + 5666 ] }, { "teal": 4227, - "source": 1009, + "source": "examples/reti/stakingPool.algo.ts:1009", "pc": [ - 4333 + 5667, + 5668, + 5669 ] }, { - "teal": 4228, - "source": 1009, + "teal": 4232, + "source": "examples/reti/stakingPool.algo.ts:1010", "pc": [ - 4334, - 4335, - 4336 + 5670, + 5671, + 5672, + 5673, + 5674, + 5675, + 5676, + 5677, + 5678, + 5679, + 5680, + 5681, + 5682, + 5683, + 5684, + 5685, + 5686, + 5687 ] }, { "teal": 4233, - "source": 1010, + "source": "examples/reti/stakingPool.algo.ts:1010", "pc": [ - 4337, - 4338, - 4339, - 4340, - 4341, - 4342, - 4343, - 4344, - 4345, - 4346, - 4347, - 4348, - 4349, - 4350, - 4351, - 4352, - 4353, - 4354 + 5688, + 5689 ] }, { - "teal": 4234, - "source": 1010, + "teal": 4240, + "source": "examples/reti/stakingPool.algo.ts:1012", "pc": [ - 4355, - 4356 + 5690, + 5691, + 5692, + 5693, + 5694, + 5695 ] }, { "teal": 4241, - "source": 1012, + "source": "examples/reti/stakingPool.algo.ts:1012", "pc": [ - 4357, - 4358 + 5696 ] }, { "teal": 4242, - "source": 1012, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4359 + 5697 ] }, { "teal": 4243, - "source": 1013, - "pc": [ - 4360 + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 5698, + 5699, + 5700, + 5701, + 5702, + 5703, + 5704, + 5705, + 5706, + 5707, + 5708, + 5709, + 5710, + 5711, + 5712, + 5713, + 5714, + 5715 ] }, { "teal": 4244, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4361, - 4362 + 5716, + 5717 ] }, { "teal": 4245, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4363, - 4364 + 5718 ] }, { "teal": 4246, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4365 + 5719 ] }, { "teal": 4247, - "source": 1013, - "pc": [ - 4366 + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 5720, + 5721, + 5722, + 5723, + 5724, + 5725, + 5726, + 5727, + 5728, + 5729, + 5730, + 5731, + 5732, + 5733, + 5734, + 5735, + 5736, + 5737 ] }, { "teal": 4248, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4367, - 4368 + 5738 ] }, { "teal": 4249, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4369 + 5739, + 5740 ] }, { "teal": 4250, - "source": 1014, + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4370, - 4371 + 5741, + 5742 ] }, { "teal": 4251, - "source": 1014, + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4372, - 4373 + 5743 ] }, { "teal": 4252, - "source": 1014, - "pc": [ - 4374 + "source": "examples/reti/stakingPool.algo.ts:1014", + "pc": [ + 5744, + 5745, + 5746, + 5747, + 5748, + 5749, + 5750, + 5751, + 5752, + 5753, + 5754, + 5755, + 5756, + 5757, + 5758, + 5759, + 5760, + 5761 ] }, { "teal": 4253, - "source": 1014, + "source": "examples/reti/stakingPool.algo.ts:1014", "pc": [ - 4375, - 4376 + 5762 ] }, { "teal": 4254, - "source": 1014, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4377 + 5763 ] }, { "teal": 4255, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4378 + 5764 ] }, { "teal": 4256, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4379 + 5765 ] }, { "teal": 4257, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4380 + 5766, + 5767, + 5768 ] }, { "teal": 4258, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4381, - 4382 + 5769 ] }, { - "teal": 4259, - "source": 1013, + "teal": 4261, + "source": "examples/reti/stakingPool.algo.ts:1013", + "errorMessage": "(this.weightedMovingAverage.value * ((100 as uint128) - alpha)) / (100 as uint128) +\\n (apr * alpha) / (100 as uint128) overflowed 128 bits", "pc": [ - 4383 + 5770 ] }, { "teal": 4262, - "source": 1013, - "errorMessage": "(this.weightedMovingAverage.value * ((100 as uint128) - alpha)) / (100 as uint128) +\\n (apr * alpha) / (100 as uint128) overflowed 128 bits", - "pc": [ - 4384 + "source": "examples/reti/stakingPool.algo.ts:1013", + "pc": [ + 5771, + 5772, + 5773, + 5774, + 5775, + 5776, + 5777, + 5778, + 5779, + 5780, + 5781, + 5782, + 5783, + 5784, + 5785, + 5786, + 5787, + 5788 ] }, { "teal": 4263, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4385, - 4386 + 5789 ] }, { "teal": 4264, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4387 + 5790 ] }, { "teal": 4265, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4388 + 5791 ] }, { "teal": 4266, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4389 + 5792 ] }, { "teal": 4267, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4390 + 5793, + 5794 ] }, { "teal": 4268, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4391, - 4392 + 5795 ] }, { "teal": 4269, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4393 + 5796 ] }, { "teal": 4270, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1013", "pc": [ - 4394 + 5797 ] }, { "teal": 4271, - "source": 1013, + "source": "examples/reti/stakingPool.algo.ts:1012", "pc": [ - 4395 + 5798 ] }, { - "teal": 4272, - "source": 1012, + "teal": 4276, + "source": "examples/reti/stakingPool.algo.ts:1018", "pc": [ - 4396 + 5799, + 5800, + 5801 ] }, { - "teal": 4277, - "source": 1018, + "teal": 4280, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4397, - 4398, - 4399 + 5802, + 5803, + 5804, + 5805, + 5806, + 5807, + 5808, + 5809, + 5810, + 5811, + 5812, + 5813, + 5814, + 5815, + 5816, + 5817, + 5818, + 5819 ] }, { "teal": 4281, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4400, - 4401 + 5820, + 5821, + 5822, + 5823, + 5824, + 5825, + 5826, + 5827 ] }, { "teal": 4282, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4402, - 4403 + 5828 ] }, { "teal": 4283, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4404 + 5829 ] }, { "teal": 4284, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4405 + 5830, + 5831, + 5832, + 5833, + 5834, + 5835, + 5836, + 5837, + 5838, + 5839, + 5840, + 5841, + 5842, + 5843 ] }, { "teal": 4285, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4406, - 4407 + 5844 ] }, { "teal": 4286, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4408 + 5845 ] }, { "teal": 4287, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4409 + 5846 ] }, { "teal": 4288, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4410 + 5847 ] }, { "teal": 4289, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4411 + 5848 ] }, { "teal": 4290, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4412 + 5849, + 5850, + 5851 ] }, { "teal": 4291, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4413, - 4414 + 5852 ] }, { - "teal": 4292, - "source": 1019, + "teal": 4294, + "source": "examples/reti/stakingPool.algo.ts:1019", + "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", "pc": [ - 4415 + 5853 ] }, { "teal": 4295, - "source": 1019, - "errorMessage": "(this.totalAlgoStaked.value as uint128) * (this.roundsPerDay.value as uint128) overflowed 128 bits", - "pc": [ - 4416 + "source": "examples/reti/stakingPool.algo.ts:1019", + "pc": [ + 5854, + 5855, + 5856, + 5857, + 5858, + 5859, + 5860, + 5861, + 5862, + 5863, + 5864, + 5865, + 5866, + 5867, + 5868, + 5869, + 5870, + 5871 ] }, { "teal": 4296, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4417, - 4418 + 5872 ] }, { "teal": 4297, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4419 + 5873 ] }, { "teal": 4298, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4420 + 5874 ] }, { "teal": 4299, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4421 + 5875 ] }, { "teal": 4300, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4422 + 5876, + 5877 ] }, { "teal": 4301, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4423, - 4424 + 5878 ] }, { "teal": 4302, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4425 + 5879 ] }, { "teal": 4303, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4426 + 5880 ] }, { "teal": 4304, - "source": 1019, + "source": "examples/reti/stakingPool.algo.ts:1019", "pc": [ - 4427 + 5881 ] }, { - "teal": 4305, - "source": 1019, + "teal": 4308, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ - 4428 + 5882, + 5883, + 5884, + 5885, + 5886, + 5887, + 5888, + 5889, + 5890, + 5891, + 5892, + 5893, + 5894, + 5895, + 5896, + 5897, + 5898, + 5899, + 5900 ] }, { "teal": 4309, - "source": 1020, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ - 4429, - 4430 + 5901, + 5902 ] }, { "teal": 4310, - "source": 1020, + "source": "examples/reti/stakingPool.algo.ts:1020", "pc": [ - 4431 + 5903 ] }, { - "teal": 4311, - "source": 1020, + "teal": 4314, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4432 + 5904, + 5905, + 5906, + 5907, + 5908, + 5909, + 5910, + 5911, + 5912, + 5913, + 5914, + 5915, + 5916, + 5917, + 5918 ] }, { "teal": 4315, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4433, - 4434 + 5919, + 5920 ] }, { "teal": 4316, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4435, - 4436 + 5921, + 5922 ] }, { "teal": 4317, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4437, - 4438 + 5923, + 5924, + 5925, + 5926, + 5927, + 5928, + 5929, + 5930, + 5931, + 5932, + 5933, + 5934, + 5935, + 5936 ] }, { "teal": 4318, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4439, - 4440 + 5937 ] }, { "teal": 4319, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4441 + 5938 ] }, { "teal": 4320, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4442 + 5939 ] }, { "teal": 4321, - "source": 1021, + "source": "examples/reti/stakingPool.algo.ts:1021", "pc": [ - 4443 + 5940 ] }, { - "teal": 4322, - "source": 1021, + "teal": 4324, + "source": "examples/reti/stakingPool.algo.ts:991", "pc": [ - 4444 + 5941 ] }, { - "teal": 4325, - "source": 991, + "teal": 4328, + "source": "examples/reti/stakingPool.algo.ts:1025", "pc": [ - 4445 + 5942, + 5943, + 5944 ] }, { - "teal": 4329, - "source": 1025, + "teal": 4332, + "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4446, - 4447, - 4448 + 5945, + 5946, + 5947, + 5948, + 5949, + 5950, + 5951, + 5952, + 5953, + 5954, + 5955, + 5956, + 5957, + 5958 ] }, { "teal": 4333, - "source": 1026, + "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4449, - 4450 + 5959, + 5960, + 5961, + 5962 ] }, { "teal": 4334, - "source": 1026, + "source": "examples/reti/stakingPool.algo.ts:1026", "pc": [ - 4451, - 4452, - 4453, - 4454 + 5963 ] }, { "teal": 4335, - "source": 1026, + "source": "examples/reti/stakingPool.algo.ts:1025", "pc": [ - 4455 + 5964 ] }, { - "teal": 4336, - "source": 1025, + "teal": 4338, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4456 + 5965, + 5966, + 5967, + 5968, + 5969, + 5970 ] }, { "teal": 4339, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4457, - 4458, - 4459, - 4460, - 4461, - 4462 + 5971, + 5972, + 5973 ] }, { "teal": 4340, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4463, - 4464, - 4465 + 5974, + 5975, + 5976, + 5977 ] }, { - "teal": 4341, - "source": 38, + "teal": 4343, + "source": "examples/reti/stakingPool.algo.ts:38", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 4466, - 4467, - 4468, - 4469 + 5978 ] }, { - "teal": 4344, - "source": 38, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 4346, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4470 + 5979, + 5980, + 5981, + 5982, + 5983, + 5984 ] }, { "teal": 4347, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4471, - 4472, - 4473, - 4474, - 4475, - 4476 + 5985, + 5986, + 5987, + 5988, + 5989, + 5990 ] }, { "teal": 4348, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4477, - 4478, - 4479, - 4480, - 4481, - 4482 + 5991, + 5992, + 5993, + 5994, + 5995, + 5996 ] }, { "teal": 4349, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4483, - 4484, - 4485, - 4486, - 4487, - 4488 + 5997, + 5998, + 5999, + 6000, + 6001, + 6002 ] }, { "teal": 4350, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4489, - 4490, - 4491, - 4492, - 4493, - 4494 + 6003, + 6004, + 6005, + 6006, + 6007, + 6008 ] }, { "teal": 4351, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4495, - 4496, - 4497, - 4498, - 4499, - 4500 + 6009, + 6010, + 6011, + 6012, + 6013, + 6014 ] }, { "teal": 4352, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4501, - 4502, - 4503, - 4504, - 4505, - 4506 + 6015, + 6016, + 6017, + 6018, + 6019, + 6020 ] }, { "teal": 4353, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4507, - 4508, - 4509, - 4510, - 4511, - 4512 + 6021, + 6022, + 6023, + 6024, + 6025, + 6026 ] }, { "teal": 4354, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4513, - 4514, - 4515, - 4516, - 4517, - 4518 + 6027, + 6028, + 6029, + 6030, + 6031, + 6032 ] }, { "teal": 4355, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4519, - 4520, - 4521, - 4522, - 4523, - 4524 + 6033, + 6034, + 6035, + 6036, + 6037, + 6038 ] }, { "teal": 4356, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4525, - 4526, - 4527, - 4528, - 4529, - 4530 + 6039, + 6040, + 6041, + 6042, + 6043, + 6044 ] }, { "teal": 4357, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4531, - 4532, - 4533, - 4534, - 4535, - 4536 + 6045, + 6046, + 6047, + 6048, + 6049, + 6050 ] }, { "teal": 4358, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4537, - 4538, - 4539, - 4540, - 4541, - 4542 + 6051, + 6052, + 6053, + 6054, + 6055, + 6056 ] }, { "teal": 4359, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4543, - 4544 + 6057, + 6058, + 6059 ] }, { "teal": 4360, - "source": 38, - "pc": [ - 4545, - 4546, - 4547 - ] - }, - { - "teal": 4361, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", + "pc": [ + 6060, + 6061, + 6062, + 6063, + 6064, + 6065, + 6066, + 6067, + 6068, + 6069, + 6070, + 6071, + 6072, + 6073, + 6074, + 6075, + 6076, + 6077, + 6078, + 6079, + 6080, + 6081, + 6082, + 6083, + 6084, + 6085, + 6086, + 6087 + ] + }, + { + "teal": 4363, + "source": "examples/reti/stakingPool.algo.ts:38", + "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 4548, - 4549, - 4550, - 4551, - 4552, - 4553, - 4554, - 4555, - 4556, - 4557, - 4558, - 4559, - 4560, - 4561, - 4562, - 4563, - 4564, - 4565, - 4566, - 4567, - 4568, - 4569, - 4570, - 4571, - 4572, - 4573, - 4574, - 4575 + 6088 ] }, { - "teal": 4364, - "source": 38, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "teal": 4366, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4576 + 6089, + 6090, + 6091, + 6092, + 6093, + 6094 ] }, { "teal": 4367, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4577, - 4578, - 4579, - 4580, - 4581, - 4582 + 6095, + 6096, + 6097 ] }, { "teal": 4368, - "source": 38, + "source": "examples/reti/stakingPool.algo.ts:38", "pc": [ - 4583, - 4584, - 4585 - ] - }, - { - "teal": 4369, - "source": 38, - "pc": [ - 4586, - 4587, - 4588, - 4589 + 6098, + 6099, + 6100, + 6101 ] }, { - "teal": 4372, - "source": 38, + "teal": 4371, + "source": "examples/reti/stakingPool.algo.ts:38", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ - 4590 + 6102 ] } ] \ No newline at end of file diff --git a/examples/reti/artifacts/ValidatorRegistry.approval.teal b/examples/reti/artifacts/ValidatorRegistry.approval.teal index d23434067..7f8e36dc7 100644 --- a/examples/reti/artifacts/ValidatorRegistry.approval.teal +++ b/examples/reti/artifacts/ValidatorRegistry.approval.teal @@ -1,14 +1,14 @@ #pragma version 10 +intcblock TMPL_nfdRegistryAppId 0 1 8 268 24 32 18 6 100000 260 700 242 900 3 1000000 2 10 252 +bytecblock 0x76 0x706f6f6c54656d706c617465417070726f76616c4279746573 0x151f7c75 0x 0x6e756d5374616b657273 0x69735f76616c69645f6e66645f6170706964 0x7374616b6564 0x737073 0x692e6f776e65722e61 0x0000000000000000 0x0a8101 0x696e6974 0x6e756d56 0x00 0x63f3f28b -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] // The following lines of TEAL are used to initialize template variables in scratch slots -pushbytes TMPL_nfdRegistryAppId -btoi -store 200 +intc 0 // TMPL_nfdRegistryAppId // The following ten lines of TEAL handle initial program flow // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed @@ -41,7 +41,7 @@ updateApplication: // examples/reti/validatorRegistry.algo.ts:202 // assert(this.txn.sender === Address.fromAddress('LZ4V2IRVLCXFJK4REJV4TAGEKEYTA2GMR6TC2344OB3L3AF3MWXZ6ZAFIQ')) txn Sender - addr LZ4V2IRVLCXFJK4REJV4TAGEKEYTA2GMR6TC2344OB3L3AF3MWXZ6ZAFIQ + pushbytes 0x5e795d223558ae54ab91226bc980c451313068cc8fa62d6f9c7076bd80bb65af // addr "LZ4V2IRVLCXFJK4REJV4TAGEKEYTA2GMR6TC2344OB3L3AF3MWXZ6ZAFIQ" == assert @@ -241,11 +241,11 @@ getMbrAmounts: // // how much to charge for first time a staker adds stake - since we add a tracking box per staker // this.costForBoxStorage(3 /* 'sps' prefix */ + len
() + len() * MAX_POOLS_PER_STAKER), // size of key + all values // }; - int 1101 + pushint 1101 callsub costForBoxStorage itob int 3 - int 11 + pushint 11 int 0 dupn 2 int 3 @@ -254,12 +254,12 @@ getMbrAmounts: itob concat int 100000 - int 12807 + pushint 12807 callsub costForBoxStorage + itob concat - int 179 + pushint 179 callsub costForBoxStorage itob concat @@ -297,7 +297,7 @@ getProtocolConstraints: // maxPoolsPerNode: MAX_POOLS_PER_NODE, // maxStakersPerPool: MAX_STAKERS_PER_POOL, // }; - byte 0x000000000000000100000000000f4240000000000000000000000000000f424000000000000f4240 + pushbytes 0x000000000000000100000000000f4240000000000000000000000000000f424000000000000f4240 callsub maxAlgoAllowedPerPool itob concat @@ -307,11 +307,11 @@ getProtocolConstraints: callsub algoSaturationLevel itob concat - byte 0x0000000000000008 + pushbytes 0x0000000000000008 concat - byte 0x0000000000000003 + pushbytes 0x0000000000000003 concat - byte 0x00000000000000c8 + pushbytes 0x00000000000000c8 concat retsub @@ -395,7 +395,7 @@ getValidatorState: // examples/reti/validatorRegistry.algo.ts:302 // return this.validatorList(validatorId).value.state; int 242 // headOffset - int 26 + pushint 26 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -434,7 +434,7 @@ getValidatorOwnerAndManager: concat cover 2 box_extract - int 40 + pushint 40 int 32 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -490,7 +490,7 @@ getPools: // examples/reti/validatorRegistry.algo.ts:319 // poolSet = clone(this.validatorList(validatorId).value.pools) int 268 // headOffset - int 432 + pushint 432 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -731,7 +731,7 @@ getCurMaxStakePerPool: // examples/reti/validatorRegistry.algo.ts:357 // maxPerPool: uint64 = this.validatorList(validatorId).value.config.maxAlgoPerPool - int 217 + pushint 217 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1000,7 +1000,7 @@ getTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:405 // return this.validatorList(validatorId).value.tokenPayoutRatio; int 700 // headOffset - int 200 + pushint 200 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -1045,7 +1045,7 @@ getNodePoolAssignments: // examples/reti/validatorRegistry.algo.ts:412 // return this.validatorList(validatorId).value.nodePoolAssignments; int 900 // headOffset - int 192 + pushint 192 byte 0x76 // "v" frame_dig -1 // validatorId: uint64 itob @@ -1073,7 +1073,7 @@ getNFDRegistryID: // examples/reti/validatorRegistry.algo.ts:416 // return this.nfdRegistryAppId; - load 200 // TMPL_nfdRegistryAppId + intc 0 // TMPL_nfdRegistryAppId retsub // addValidator(pay,string,(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64))uint64 @@ -1101,7 +1101,7 @@ getNFDRegistryID: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 2 (mbrPayment) for addValidator must be a pay transaction @@ -1178,7 +1178,7 @@ addValidator: // assert(mbrPayment.fee > 10 * 1000000, 'fee must be 10 ALGO or more to prevent spamming of validators') frame_dig -1 // mbrPayment: PayTxn gtxns Fee - int 10000000 + pushint 10000000 > // fee must be 10 ALGO or more to prevent spamming of validators @@ -1204,7 +1204,7 @@ addValidator: frame_dig 0 // validatorId: uint64 itob concat - int 1092 + pushint 1092 box_create pop @@ -1249,12 +1249,12 @@ addValidator: // applications: [AppID.fromUint64(config.nfdForInfo)], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum // examples/reti/validatorRegistry.algo.ts:449 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - load 200 // TMPL_nfdRegistryAppId + intc 0 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/validatorRegistry.algo.ts:450 @@ -1327,7 +1327,7 @@ addValidator: frame_dig -3 // config: ValidatorConfig extract 80 1 btoi - int 4 + pushint 4 == || @@ -1406,7 +1406,7 @@ changeValidatorManager: // examples/reti/validatorRegistry.algo.ts:483 // this.validatorList(validatorId).value.config.manager = manager - int 40 + pushint 40 frame_dig -2 // manager: Address byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1467,7 +1467,7 @@ changeValidatorSunsetInfo: // examples/reti/validatorRegistry.algo.ts:499 // this.validatorList(validatorId).value.config.sunsettingOn = sunsettingOn - int 226 + pushint 226 frame_dig -2 // sunsettingOn: uint64 itob byte 0x76 // "v" @@ -1479,7 +1479,7 @@ changeValidatorSunsetInfo: // examples/reti/validatorRegistry.algo.ts:500 // this.validatorList(validatorId).value.config.sunsettingTo = sunsettingTo - int 234 + pushint 234 frame_dig -3 // sunsettingTo: ValidatorIdType itob byte 0x76 // "v" @@ -1546,12 +1546,12 @@ changeValidatorNFD: // applications: [AppID.fromUint64(nfdAppID)], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum // examples/reti/validatorRegistry.algo.ts:519 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - load 200 // TMPL_nfdRegistryAppId + intc 0 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/validatorRegistry.algo.ts:520 @@ -1595,7 +1595,7 @@ changeValidatorNFD: // examples/reti/validatorRegistry.algo.ts:528 // this.validatorList(validatorId).value.config.nfdForInfo = nfdAppID - int 72 + pushint 72 frame_dig -2 // nfdAppID: uint64 itob byte 0x76 // "v" @@ -1662,7 +1662,7 @@ changeValidatorCommissionAddress: // examples/reti/validatorRegistry.algo.ts:541 // this.validatorList(validatorId).value.config.validatorCommissionAddress = commissionAddress - int 177 + pushint 177 frame_dig -2 // commissionAddress: Address byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1750,7 +1750,7 @@ changeValidatorRewardInfo: // examples/reti/validatorRegistry.algo.ts:561 // this.validatorList(validatorId).value.config.entryGatingType = EntryGatingType - int 80 + pushint 80 frame_dig -2 // EntryGatingType: uint8 itob extract 7 1 @@ -1763,7 +1763,7 @@ changeValidatorRewardInfo: // examples/reti/validatorRegistry.algo.ts:562 // this.validatorList(validatorId).value.config.entryGatingAddress = EntryGatingAddress - int 81 + pushint 81 frame_dig -3 // EntryGatingAddress: Address byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1774,7 +1774,7 @@ changeValidatorRewardInfo: // examples/reti/validatorRegistry.algo.ts:563 // this.validatorList(validatorId).value.config.entryGatingAssets = EntryGatingAssets - int 113 + pushint 113 frame_dig -4 // EntryGatingAssets: StaticArray byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -1785,7 +1785,7 @@ changeValidatorRewardInfo: // examples/reti/validatorRegistry.algo.ts:564 // this.validatorList(validatorId).value.config.gatingAssetMinBalance = GatingAssetMinBalance - int 145 + pushint 145 frame_dig -5 // GatingAssetMinBalance: uint64 itob byte 0x76 // "v" @@ -1797,7 +1797,7 @@ changeValidatorRewardInfo: // examples/reti/validatorRegistry.algo.ts:565 // this.validatorList(validatorId).value.config.rewardPerPayout = RewardPerPayout - int 161 + pushint 161 frame_dig -6 // RewardPerPayout: uint64 itob byte 0x76 // "v" @@ -1827,7 +1827,7 @@ changeValidatorRewardInfo: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 2 (mbrPayment) for addPool must be a pay transaction @@ -1876,7 +1876,7 @@ addPool: dup bnz *skip_or1 txn Sender - int 40 + pushint 40 int 32 byte 0x76 // "v" frame_dig -2 // validatorId: ValidatorIdType @@ -1980,7 +1980,7 @@ addPool: // ], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum // examples/reti/validatorRegistry.algo.ts:600 @@ -1995,29 +1995,29 @@ addPool: // ] byte 0x706f6f6c54656d706c617465417070726f76616c4279746573 // "poolTemplateApprovalBytes" int 0 - int 4096 + pushint 4096 box_extract itxn_field ApprovalProgramPages byte 0x706f6f6c54656d706c617465417070726f76616c4279746573 // "poolTemplateApprovalBytes" - int 4096 + pushint 4096 byte 0x706f6f6c54656d706c617465417070726f76616c4279746573 // "poolTemplateApprovalBytes" box_len // box value does not exist: this.stakingPoolApprovalProgram.size assert - int 4096 + pushint 4096 - box_extract itxn_field ApprovalProgramPages // examples/reti/validatorRegistry.algo.ts:605 // clearStateProgram: StakingPool.clearProgram() - byte b64 Cg== + pushbytes 0x0a itxn_field ClearStateProgram // examples/reti/validatorRegistry.algo.ts:606 // globalNumUint: StakingPool.schema.global.numUint - int 11 + pushint 11 itxn_field GlobalNumUint // examples/reti/validatorRegistry.algo.ts:607 @@ -2039,7 +2039,7 @@ addPool: // itob(numPools as uint64), // itob(this.validatorList(validatorId).value.config.minEntryStake), // ] - method "createApplication(uint64,uint64,uint64,uint64)void" + pushbytes 0x59e90aa6 // method "createApplication(uint64,uint64,uint64,uint64)void" itxn_field ApplicationArgs txna Applications 0 itob @@ -2050,7 +2050,7 @@ addPool: frame_dig 0 // numPools: uint64 itob itxn_field ApplicationArgs - int 209 + pushint 209 int 8 byte 0x76 // "v" frame_dig -2 // validatorId: ValidatorIdType @@ -2151,7 +2151,7 @@ addPool: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 2 (stakedAmountPayment) for addStake must be a pay transaction @@ -2196,7 +2196,7 @@ addStake: // *if8_condition // examples/reti/validatorRegistry.algo.ts:648 // this.validatorList(validatorId).value.config.sunsettingOn > 0 - int 226 + pushint 226 int 8 byte 0x76 // "v" frame_dig -2 // validatorId: ValidatorIdType @@ -2215,7 +2215,7 @@ addStake: // this.validatorList(validatorId).value.config.sunsettingOn < globals.latestTimestamp, // "can't stake with a validator that is past its sunsetting time" // ) - int 226 + pushint 226 int 8 byte 0x76 // "v" frame_dig -2 // validatorId: ValidatorIdType @@ -2328,7 +2328,7 @@ addStake: byte 0x737073 // "sps" frame_dig 0 // staker: address concat - int 144 + pushint 144 box_create pop @@ -2348,7 +2348,7 @@ addStake: frame_dig 3 // findRet: ((uint64,uint64,uint64),bool,bool) store 255 // full array load 255 // full array - int 192 + pushint 192 getbit frame_bury 4 // isNewStakerToValidator: bool @@ -2357,7 +2357,7 @@ addStake: frame_dig 3 // findRet: ((uint64,uint64,uint64),bool,bool) store 255 // full array load 255 // full array - int 193 + pushint 193 getbit frame_bury 5 // isNewStakerToProtocol: bool @@ -2491,7 +2491,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:738 // return this.validatorList(validatorId).value.tokenPayoutRatio; int 700 // headOffset - int 200 + pushint 200 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2508,7 +2508,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:745 // lastPayoutUpdate = this.validatorList(validatorId).value.tokenPayoutRatio.updatedForPayout - int 892 + pushint 892 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -2532,7 +2532,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:748 // (AppID.fromUint64(pool1AppID).globalState('lastPayout') as uint64) === lastPayoutUpdate frame_dig 0 // pool1AppID: uint64 - byte 0x6c6173745061796f7574 // "lastPayout" + pushbytes 0x6c6173745061796f7574 // "lastPayout" app_global_get_ex // global state value does not exist: AppID.fromUint64(pool1AppID).globalState('lastPayout') @@ -2545,7 +2545,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:749 // return this.validatorList(validatorId).value.tokenPayoutRatio; int 700 // headOffset - int 200 + pushint 200 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2557,8 +2557,8 @@ setTokenPayoutRatio: *if13_end: // examples/reti/validatorRegistry.algo.ts:751 // epochRoundLength = this.validatorList(validatorId).value.config.epochRoundLength as uint64 - int 169 - int 4 + pushint 169 + pushint 4 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2593,7 +2593,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:755 // return this.validatorList(validatorId).value.tokenPayoutRatio; int 700 // headOffset - int 200 + pushint 200 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2607,7 +2607,7 @@ setTokenPayoutRatio: *if12_end: // examples/reti/validatorRegistry.algo.ts:758 // this.validatorList(validatorId).value.tokenPayoutRatio.updatedForPayout = curRound - int 892 + pushint 892 frame_dig 1 // curRound: uint64 itob byte 0x76 // "v" @@ -2676,7 +2676,7 @@ setTokenPayoutRatio: cover 2 box_extract btoi - int 1_000_000 + pushint 1_000_000 mulw int 0 frame_dig 6 // totalStakeForValidator: uint64 @@ -2719,7 +2719,7 @@ setTokenPayoutRatio: // examples/reti/validatorRegistry.algo.ts:773 // return this.validatorList(validatorId).value.tokenPayoutRatio; int 700 // headOffset - int 200 + pushint 200 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -2973,7 +2973,7 @@ stakeRemoved: // examples/reti/validatorRegistry.algo.ts:836 // globals.opcodeBudget < 300 global OpcodeBudget - int 300 + pushint 300 < bz *if15_end @@ -2981,15 +2981,15 @@ stakeRemoved: // examples/reti/validatorRegistry.algo.ts:837 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -3108,7 +3108,7 @@ stakeRemoved: // *if16_consequent // examples/reti/validatorRegistry.algo.ts:851 // rewardTokenID = this.validatorList(poolKey.id).value.config.rewardTokenId - int 153 + pushint 153 int 8 byte 0x76 // "v" frame_dig -1 // poolKey: ValidatorPoolKey @@ -3195,9 +3195,9 @@ stakeRemoved: // methodArgs: [staker, rewardTokenID, rewardRemoved], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "payTokenReward(address,uint64,uint64)void" + byte 0x63f3f28b // method "payTokenReward(address,uint64,uint64)void" itxn_field ApplicationArgs // examples/reti/validatorRegistry.algo.ts:866 @@ -3344,8 +3344,8 @@ stakeRemoved: // *if19_consequent // examples/reti/validatorRegistry.algo.ts:905 // this.validatorList(poolKey.id).value.state.totalStakers -= 1 - int 244 - dup + pushint 244 + pushint 244 int 8 byte 0x76 // "v" frame_dig -1 // poolKey: ValidatorPoolKey @@ -3502,7 +3502,7 @@ findPoolForStaker: // examples/reti/validatorRegistry.algo.ts:946 // globals.opcodeBudget < 300 global OpcodeBudget - int 300 + pushint 300 < bz *if22_end @@ -3510,15 +3510,15 @@ findPoolForStaker: // examples/reti/validatorRegistry.algo.ts:947 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -3646,7 +3646,7 @@ findPoolForStaker: // 'must stake at least the minimum for this pool' // ) frame_dig -3 // amountToStake: uint64 - int 209 + pushint 209 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -3663,7 +3663,7 @@ findPoolForStaker: // examples/reti/validatorRegistry.algo.ts:973 // pools = clone(this.validatorList(validatorId).value.pools) int 268 // headOffset - int 432 + pushint 432 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -3844,7 +3844,7 @@ movePoolToNode: dup bnz *skip_or3 txn Sender - int 40 + pushint 40 int 32 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -3862,7 +3862,7 @@ movePoolToNode: // examples/reti/validatorRegistry.algo.ts:1007 // nodePoolAssignments = clone(this.validatorList(validatorId).value.nodePoolAssignments) int 900 // headOffset - int 192 + pushint 192 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -3973,9 +3973,9 @@ movePoolToNode: // applicationID: AppID.fromUint64(poolAppId), // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "goOffline()void" + pushbytes 0x51ef3b21 // method "goOffline()void" itxn_field ApplicationArgs // examples/reti/validatorRegistry.algo.ts:1019 @@ -4094,7 +4094,7 @@ emptyTokenRewards: // examples/reti/validatorRegistry.algo.ts:1047 // rewardTokenId = this.validatorList(validatorId).value.config.rewardTokenId - int 153 + pushint 153 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -4158,9 +4158,9 @@ emptyTokenRewards: // methodArgs: [receiver, rewardTokenId, tokenRewardBal], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "payTokenReward(address,uint64,uint64)void" + byte 0x63f3f28b // method "payTokenReward(address,uint64,uint64)void" itxn_field ApplicationArgs // examples/reti/validatorRegistry.algo.ts:1056 @@ -4337,7 +4337,7 @@ verifyPoolKeyCaller: frame_dig -1 // poolKey: ValidatorPoolKey extract 16 8 btoi - byte 0x76616c696461746f724964 // "validatorId" + pushbytes 0x76616c696461746f724964 // "validatorId" app_global_get_ex // global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('validatorId') @@ -4353,7 +4353,7 @@ verifyPoolKeyCaller: frame_dig -1 // poolKey: ValidatorPoolKey extract 16 8 btoi - byte 0x706f6f6c4964 // "poolId" + pushbytes 0x706f6f6c4964 // "poolId" app_global_get_ex // global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('poolId') @@ -4386,7 +4386,7 @@ reverifyNFDOwnership: // *if28_condition // examples/reti/validatorRegistry.algo.ts:1188 // validatorConfig.nfdForInfo !== 0 - int 72 + pushint 72 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -4402,7 +4402,7 @@ reverifyNFDOwnership: // *if28_consequent // examples/reti/validatorRegistry.algo.ts:1191 // nfdOwner = AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a') as Address - int 72 + pushint 72 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -4433,7 +4433,7 @@ reverifyNFDOwnership: != dup bz *skip_and3 - int 40 + pushint 40 int 32 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -4451,7 +4451,7 @@ reverifyNFDOwnership: // *if29_consequent // examples/reti/validatorRegistry.algo.ts:1195 // this.validatorList(validatorId).value.config.nfdForInfo = 0 - int 72 + pushint 72 byte 0x0000000000000000 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -4484,7 +4484,7 @@ validateConfig: frame_dig -1 // config: ValidatorConfig extract 80 1 btoi - int 4 + pushint 4 <= && @@ -4677,7 +4677,7 @@ callPoolAddStake: // ], // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // examples/reti/validatorRegistry.algo.ts:1258 @@ -4699,9 +4699,9 @@ callPoolAddStake: int 0 itxn_field Fee itxn_next - int appl + int 6 // appl itxn_field TypeEnum - method "addStake(pay,address)uint64" + pushbytes 0xf9c70cbd // method "addStake(pay,address)uint64" itxn_field ApplicationArgs // examples/reti/validatorRegistry.algo.ts:1254 @@ -4738,7 +4738,7 @@ callPoolAddStake: // examples/reti/validatorRegistry.algo.ts:1263 // globals.opcodeBudget < 500 global OpcodeBudget - int 500 + pushint 500 < bz *if32_end @@ -4746,15 +4746,15 @@ callPoolAddStake: // examples/reti/validatorRegistry.algo.ts:1264 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit @@ -4837,8 +4837,8 @@ callPoolAddStake: // *if33_consequent // examples/reti/validatorRegistry.algo.ts:1275 // this.validatorList(poolKey.id).value.state.totalStakers += 1 - int 244 - dup + pushint 244 + pushint 244 int 8 byte 0x76 // "v" frame_dig -2 // poolKey: ValidatorPoolKey @@ -5185,7 +5185,7 @@ removeFromStakerPoolSet: frame_dig 4 // i: uint64 int 24 * // acc * typeLength - byte 0x000000000000000000000000000000000000000000000000 + pushbytes 0x000000000000000000000000000000000000000000000000 byte 0x737073 // "sps" frame_dig -1 // staker: Address concat @@ -5259,7 +5259,7 @@ addPoolToNode: // examples/reti/validatorRegistry.algo.ts:1342 // nodePoolAssignments = clone(this.validatorList(validatorId).value.nodePoolAssignments) int 900 // headOffset - int 192 + pushint 192 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType itob @@ -5270,7 +5270,7 @@ addPoolToNode: // examples/reti/validatorRegistry.algo.ts:1343 // maxPoolsPerNodeForThisValidator = this.validatorList(validatorId).value.config.poolsPerNode as uint64 - int 225 + pushint 225 int 1 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -5395,7 +5395,7 @@ doesStakerMeetGating: // examples/reti/validatorRegistry.algo.ts:1365 // type = this.validatorList(validatorId).value.config.entryGatingType - int 80 + pushint 80 int 1 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -5473,7 +5473,7 @@ doesStakerMeetGating: // examples/reti/validatorRegistry.algo.ts:1379 // balRequired = this.validatorList(validatorId).value.config.gatingAssetMinBalance - int 145 + pushint 145 int 8 byte 0x76 // "v" frame_dig -1 // validatorId: ValidatorIdType @@ -5648,7 +5648,7 @@ doesStakerMeetGating: // examples/reti/validatorRegistry.algo.ts:1413 // type === GATING_TYPE_SEGMENT_OF_NFD frame_dig 0 // type: uint8 - int 4 + pushint 4 == bz *if50_end @@ -5698,7 +5698,7 @@ doesStakerMeetGating: // 'specified nfd must be a segment of the nfd the validator specified as a requirement' // ) frame_dig 8 // userOfferedNFDAppID: uint64 - byte 0x692e706172656e744170704944 // "i.parentAppID" + pushbytes 0x692e706172656e744170704944 // "i.parentAppID" app_global_get_ex // global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.parentAppID') @@ -5733,7 +5733,7 @@ isNFDAppIDValid: // examples/reti/validatorRegistry.algo.ts:1445 // userOfferedNFDName = AppID.fromUint64(nfdAppID).globalState('i.name') as string frame_dig -1 // nfdAppID: uint64 - byte 0x692e6e616d65 // "i.name" + pushbytes 0x692e6e616d65 // "i.name" app_global_get_ex // global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.name') @@ -5747,12 +5747,12 @@ isNFDAppIDValid: // applications: [AppID.fromUint64(nfdAppID)], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum // examples/reti/validatorRegistry.algo.ts:1448 // applicationID: AppID.fromUint64(this.nfdRegistryAppId) - load 200 // TMPL_nfdRegistryAppId + intc 0 // TMPL_nfdRegistryAppId itxn_field ApplicationID // examples/reti/validatorRegistry.algo.ts:1449 @@ -5809,7 +5809,7 @@ isAddressInNFDCAAlgoList: // applicationArgs: ['read_property', 'v.caAlgo.0.as'], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum // examples/reti/validatorRegistry.algo.ts:1465 @@ -5819,9 +5819,9 @@ isAddressInNFDCAAlgoList: // examples/reti/validatorRegistry.algo.ts:1466 // applicationArgs: ['read_property', 'v.caAlgo.0.as'] - byte 0x726561645f70726f7065727479 // "read_property" + pushbytes 0x726561645f70726f7065727479 // "read_property" itxn_field ApplicationArgs - byte 0x762e6361416c676f2e302e6173 // "v.caAlgo.0.as" + pushbytes 0x762e6361416c676f2e302e6173 // "v.caAlgo.0.as" itxn_field ApplicationArgs // Fee field not set, defaulting to 0 @@ -5923,10 +5923,10 @@ algoSaturationLevel: // examples/reti/validatorRegistry.algo.ts:1486 // return wideRatio([online, MAX_VALIDATOR_SOFT_PCT_OF_ONLINE_1DECIMAL], [1000]); frame_dig 0 // online: uint64 - int 100 + pushint 100 mulw int 0 - int 1000 + pushint 1000 divmodw pop pop @@ -5958,10 +5958,10 @@ maxAllowedStake: // examples/reti/validatorRegistry.algo.ts:1496 // return wideRatio([online, MAX_VALIDATOR_HARD_PCT_OF_ONLINE_1DECIMAL], [1000]); frame_dig 0 // online: uint64 - int 150 + pushint 150 mulw int 0 - int 1000 + pushint 1000 divmodw pop pop @@ -5983,7 +5983,7 @@ maxAlgoAllowedPerPool: // examples/reti/validatorRegistry.algo.ts:1504 // return 70_000_000_000_000; - int 70_000_000_000_000 + pushint 70_000_000_000_000 retsub // getCurrentOnlineStake(): uint64 @@ -5992,7 +5992,7 @@ getCurrentOnlineStake: // examples/reti/validatorRegistry.algo.ts:1509 // return 2_000_000_000_000_000; - int 2_000_000_000_000_000 + pushint 2_000_000_000_000_000 retsub // minBalanceForAccount(contracts: uint64, extraPages: uint64, assets: uint64, localInts: uint64, localBytes: uint64, globalInts: uint64, globalBytes: uint64): uint64 @@ -6038,7 +6038,7 @@ minBalanceForAccount: // minBal += localInts * SSC_VALUE_UINT frame_dig 0 // minBal: uint64 frame_dig -4 // localInts: uint64 - int 28500 + pushint 28500 * + frame_bury 0 // minBal: uint64 @@ -6047,7 +6047,7 @@ minBalanceForAccount: // minBal += globalInts * SSC_VALUE_UINT frame_dig 0 // minBal: uint64 frame_dig -6 // globalInts: uint64 - int 28500 + pushint 28500 * + frame_bury 0 // minBal: uint64 @@ -6056,7 +6056,7 @@ minBalanceForAccount: // minBal += localBytes * SSC_VALUE_BYTES frame_dig 0 // minBal: uint64 frame_dig -5 // localBytes: uint64 - int 50000 + pushint 50000 * + frame_bury 0 // minBal: uint64 @@ -6065,7 +6065,7 @@ minBalanceForAccount: // minBal += globalBytes * SSC_VALUE_BYTES frame_dig 0 // minBal: uint64 frame_dig -7 // globalBytes: uint64 - int 50000 + pushint 50000 * + frame_bury 0 // minBal: uint64 @@ -6084,15 +6084,15 @@ costForBoxStorage: // examples/reti/validatorRegistry.algo.ts:1536 // return SCBOX_PERBOX + totalNumBytes * SCBOX_PERBYTE; - int 2500 + pushint 2500 frame_dig -1 // totalNumBytes: uint64 - int 400 + pushint 400 * + retsub *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -6100,39 +6100,39 @@ costForBoxStorage: err *call_NoOp: - method "initStakingContract(uint64)void" - method "loadStakingContractData(uint64,byte[])void" - method "finalizeStakingContract()void" - method "gas()void" - method "getMbrAmounts()(uint64,uint64,uint64,uint64)" - method "getProtocolConstraints()(uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64)" - method "getNumValidators()uint64" - method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" - method "getValidatorState(uint64)(uint16,uint64,uint64,uint64)" - method "getValidatorOwnerAndManager(uint64)(address,address)" - method "getPools(uint64)(uint64,uint16,uint64)[]" - method "getPoolAppId(uint64,uint64)uint64" - method "getPoolInfo((uint64,uint64,uint64))(uint64,uint16,uint64)" - method "getCurMaxStakePerPool(uint64)uint64" - method "doesStakerNeedToPayMBR(address)bool" - method "getStakedPoolsForAccount(address)(uint64,uint64,uint64)[]" - method "getTokenPayoutRatio(uint64)(uint64[24],uint64)" - method "getNodePoolAssignments(uint64)((uint64[3])[8])" - method "getNFDRegistryID()uint64" - method "addValidator(pay,string,(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64))uint64" - method "changeValidatorManager(uint64,address)void" - method "changeValidatorSunsetInfo(uint64,uint64,uint64)void" - method "changeValidatorNFD(uint64,uint64,string)void" - method "changeValidatorCommissionAddress(uint64,address)void" - method "changeValidatorRewardInfo(uint64,uint8,address,uint64[4],uint64,uint64)void" - method "addPool(pay,uint64,uint64)(uint64,uint64,uint64)" - method "addStake(pay,uint64,uint64)(uint64,uint64,uint64)" - method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" - method "stakeUpdatedViaRewards((uint64,uint64,uint64),uint64,uint64,uint64,uint64)void" - method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" - method "findPoolForStaker(uint64,address,uint64)((uint64,uint64,uint64),bool,bool)" - method "movePoolToNode(uint64,uint64,uint64)void" - method "emptyTokenRewards(uint64,address)uint64" + pushbytes 0x1b5e82c6 // method "initStakingContract(uint64)void" + pushbytes 0x79472d83 // method "loadStakingContractData(uint64,byte[])void" + pushbytes 0x5f7acfd9 // method "finalizeStakingContract()void" + pushbytes 0x3172ca9d // method "gas()void" + pushbytes 0x8a87142d // method "getMbrAmounts()(uint64,uint64,uint64,uint64)" + pushbytes 0xd1366cc3 // method "getProtocolConstraints()(uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64)" + pushbytes 0x3b045c5c // method "getNumValidators()uint64" + pushbytes 0x75aff61d // method "getValidatorConfig(uint64)(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" + pushbytes 0x1f2f0109 // method "getValidatorState(uint64)(uint16,uint64,uint64,uint64)" + pushbytes 0x2fa22c4b // method "getValidatorOwnerAndManager(uint64)(address,address)" + pushbytes 0x910e94ac // method "getPools(uint64)(uint64,uint16,uint64)[]" + pushbytes 0x572767d1 // method "getPoolAppId(uint64,uint64)uint64" + pushbytes 0x9b504aaf // method "getPoolInfo((uint64,uint64,uint64))(uint64,uint16,uint64)" + pushbytes 0xfbc63178 // method "getCurMaxStakePerPool(uint64)uint64" + pushbytes 0x24498cf4 // method "doesStakerNeedToPayMBR(address)bool" + pushbytes 0xf846dd7a // method "getStakedPoolsForAccount(address)(uint64,uint64,uint64)[]" + pushbytes 0x83050501 // method "getTokenPayoutRatio(uint64)(uint64[24],uint64)" + pushbytes 0x7bbb6c8d // method "getNodePoolAssignments(uint64)((uint64[3])[8])" + pushbytes 0xf839414a // method "getNFDRegistryID()uint64" + pushbytes 0x0c317cfb // method "addValidator(pay,string,(uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64))uint64" + pushbytes 0x3e288972 // method "changeValidatorManager(uint64,address)void" + pushbytes 0xdd5faada // method "changeValidatorSunsetInfo(uint64,uint64,uint64)void" + pushbytes 0x18aac7a7 // method "changeValidatorNFD(uint64,uint64,string)void" + pushbytes 0xf99ef54d // method "changeValidatorCommissionAddress(uint64,address)void" + pushbytes 0x10809d4d // method "changeValidatorRewardInfo(uint64,uint8,address,uint64[4],uint64,uint64)void" + pushbytes 0xe778dd5a // method "addPool(pay,uint64,uint64)(uint64,uint64,uint64)" + pushbytes 0xbf5259d0 // method "addStake(pay,uint64,uint64)(uint64,uint64,uint64)" + pushbytes 0x4df8d86e // method "setTokenPayoutRatio(uint64)(uint64[24],uint64)" + pushbytes 0x418fcefc // method "stakeUpdatedViaRewards((uint64,uint64,uint64),uint64,uint64,uint64,uint64)void" + pushbytes 0xa2dc51b5 // method "stakeRemoved((uint64,uint64,uint64),address,uint64,uint64,bool)void" + pushbytes 0x2873f504 // method "findPoolForStaker(uint64,address,uint64)((uint64,uint64,uint64),bool,bool)" + pushbytes 0x0547f4fe // method "movePoolToNode(uint64,uint64,uint64)void" + pushbytes 0xcb668358 // method "emptyTokenRewards(uint64,address)uint64" txna ApplicationArgs 0 match *abi_route_initStakingContract *abi_route_loadStakingContractData *abi_route_finalizeStakingContract *abi_route_gas *abi_route_getMbrAmounts *abi_route_getProtocolConstraints *abi_route_getNumValidators *abi_route_getValidatorConfig *abi_route_getValidatorState *abi_route_getValidatorOwnerAndManager *abi_route_getPools *abi_route_getPoolAppId *abi_route_getPoolInfo *abi_route_getCurMaxStakePerPool *abi_route_doesStakerNeedToPayMBR *abi_route_getStakedPoolsForAccount *abi_route_getTokenPayoutRatio *abi_route_getNodePoolAssignments *abi_route_getNFDRegistryID *abi_route_addValidator *abi_route_changeValidatorManager *abi_route_changeValidatorSunsetInfo *abi_route_changeValidatorNFD *abi_route_changeValidatorCommissionAddress *abi_route_changeValidatorRewardInfo *abi_route_addPool *abi_route_addStake *abi_route_setTokenPayoutRatio *abi_route_stakeUpdatedViaRewards *abi_route_stakeRemoved *abi_route_findPoolForStaker *abi_route_movePoolToNode *abi_route_emptyTokenRewards @@ -6140,7 +6140,7 @@ costForBoxStorage: err *call_UpdateApplication: - method "updateApplication()void" + pushbytes 0x46f76533 // method "updateApplication()void" txna ApplicationArgs 0 match *abi_route_updateApplication diff --git a/examples/reti/artifacts/ValidatorRegistry.arc32.json b/examples/reti/artifacts/ValidatorRegistry.arc32.json index 70ade3e42..4bc3146b6 100644 --- a/examples/reti/artifacts/ValidatorRegistry.arc32.json +++ b/examples/reti/artifacts/ValidatorRegistry.arc32.json @@ -221,7 +221,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9uZmRSZWdpc3RyeUFwcElkCmJ0b2kKc3RvcmUgMjAwCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjAyCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21BZGRyZXNzKCdMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRJykpCgl0eG4gU2VuZGVyCglhZGRyIExaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjA0CgkvLyB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmRlbGV0ZSgpCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfZGVsCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGUgMHg2OTZlNjk3NCAvLyAiaW5pdCIKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjA5CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSBmYWxzZQoJYnl0ZSAweDY5NmU2OTc0IC8vICJpbml0IgoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTAKCS8vIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSA9IDAKCWJ5dGUgMHg2ZTc1NmQ1NiAvLyAibnVtViIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTEKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTIKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0OgoJLy8gYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluaXRTdGFraW5nQ29udHJhY3QKCWludCAxCglyZXR1cm4KCi8vIGluaXRTdGFraW5nQ29udHJhY3QoYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0KTogdm9pZAppbml0U3Rha2luZ0NvbnRyYWN0OgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIxNwoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5jcmVhdGUoYXBwcm92YWxQcm9ncmFtU2l6ZSkKCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWZyYW1lX2RpZyAtMSAvLyBhcHByb3ZhbFByb2dyYW1TaXplOiB1aW50NjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSh1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV9sb2FkU3Rha2luZ0NvbnRyYWN0RGF0YToKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIGxvYWRTdGFraW5nQ29udHJhY3REYXRhCglpbnQgMQoJcmV0dXJuCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YShvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCmxvYWRTdGFraW5nQ29udHJhY3REYXRhOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMQoJLy8gYXNzZXJ0KCF0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUpCglieXRlIDB4Njk2ZTY5NzQgLy8gImluaXQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCWdldGJpdAoJIQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMgoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpdm9pZAoqYWJpX3JvdXRlX2ZpbmFsaXplU3Rha2luZ0NvbnRyYWN0OgoJLy8gZXhlY3V0ZSBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpdm9pZAoJY2FsbHN1YiBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdAoJaW50IDEKCXJldHVybgoKLy8gZmluYWxpemVTdGFraW5nQ29udHJhY3QoKTogdm9pZApmaW5hbGl6ZVN0YWtpbmdDb250cmFjdDoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMjYKCS8vIHRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSA9IHRydWUKCWJ5dGUgMHg2OTZlNjk3NCAvLyAiaW5pdCIKCWludCAxCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2FzKCl2b2lkCiphYmlfcm91dGVfZ2FzOgoJLy8gZXhlY3V0ZSBnYXMoKXZvaWQKCWNhbGxzdWIgZ2FzCglpbnQgMQoJcmV0dXJuCgovLyBnYXMoKTogdm9pZAovLwovLyBnYXMgaXMgYSBkdW1teSBuby1vcCBjYWxsIHRoYXQgY2FuIGJlIHVzZWQgdG8gcG9vbC11cCByZXNvdXJjZSByZWZlcmVuY2VzIGFuZCBvcGNvZGUgY29zdApnYXM6Cglwcm90byAwIDAKCXJldHN1YgoKLy8gZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRNYnJBbW91bnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE1ickFtb3VudHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldE1ickFtb3VudHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRNYnJBbW91bnRzKCk6IE1ickFtb3VudHMKLy8KLy8gUmV0dXJucyB0aGUgTUJSIGFtb3VudHMgbmVlZGVkIGZvciB2YXJpb3VzIGFjdGlvbnM6Ci8vIFsKLy8gYWRkVmFsaWRhdG9yTWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGFkZCBhIG5ldyB2YWxpZGF0b3IgLSBwYWlkIHRvIHZhbGlkYXRvciBjb250cmFjdAovLyBhZGRQb29sTWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGFkZCBhIG5ldyBwb29sIC0gcGFpZCB0byB2YWxpZGF0b3IKLy8gcG9vbEluaXRNYnI6IHVpbnQ2NCAtIG1iciBuZWVkZWQgdG8gaW5pdFN0b3JhZ2UoKSBvZiBwb29sIC0gcGFpZCB0byBwb29sIGl0c2VsZgovLyBhZGRTdGFrZXJNYnI6IHVpbnQ2NCAtIG1iciBzdGFrZXIgbmVlZHMgdG8gYWRkIHRvIGZpcnN0IHN0YWtpbmcgcGF5bWVudCAoc3RheXMgdy8gdmFsaWRhdG9yKQovLyBdCmdldE1ickFtb3VudHM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjQ2CgkvLyByZXR1cm4gewoJLy8gICAgICAgYWRkVmFsaWRhdG9yTWJyOiB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDEgLyogdiBwcmVmaXggKi8gKyBsZW48VmFsaWRhdG9ySWRUeXBlPigpICsgbGVuPFZhbGlkYXRvckluZm8+KCkpLAoJLy8gICAgICAgYWRkUG9vbE1icjogdGhpcy5taW5CYWxhbmNlRm9yQWNjb3VudCgKCS8vICAgICAgICAgMSwKCS8vICAgICAgICAgLy8gd2UgY291bGQgY2FsY3VsYXRlIHRoaXMgZGlyZWN0bHkgYnkgcmVmZXJlbmNpbmcgdGhlIHNpemUgb2Ygc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0gYnV0IGl0IHdvdWxkCgkvLyAgICAgICAgIC8vIG1lYW4gb3VyIGNhbGxlcnMgd291bGQgaGF2ZSB0byByZWZlcmVuY2UgdGhlIGJveCBBTkQgYnV5IHVwIGkvbyAtIHNvIGp1c3QgZ28gbWF4IG9uIGV4dHJhIHBhZ2VzCgkvLyAgICAgICAgIDMsCgkvLyAgICAgICAgIDAsCgkvLyAgICAgICAgIDAsCgkvLyAgICAgICAgIDAsCgkvLyAgICAgICAgIFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICAgICAgU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCS8vICAgICAgICksCgkvLyAgICAgICBwb29sSW5pdE1icjoKCS8vICAgICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICAgIHRoaXMuY29zdEZvckJveFN0b3JhZ2UoNyAvKiAnc3Rha2VycycgbmFtZSAqLyArIGxlbjxTdGFrZWRJbmZvPigpICogTUFYX1NUQUtFUlNfUEVSX1BPT0wpLAoJLy8gICAgICAgYWRkU3Rha2VyTWJyOgoJLy8gICAgICAgICAvLyBob3cgbXVjaCB0byBjaGFyZ2UgZm9yIGZpcnN0IHRpbWUgYSBzdGFrZXIgYWRkcyBzdGFrZSAtIHNpbmNlIHdlIGFkZCBhIHRyYWNraW5nIGJveCBwZXIgc3Rha2VyCgkvLyAgICAgICAgIHRoaXMuY29zdEZvckJveFN0b3JhZ2UoMyAvKiAnc3BzJyBwcmVmaXggKi8gKyBsZW48QWRkcmVzcz4oKSArIGxlbjxWYWxpZGF0b3JQb29sS2V5PigpICogTUFYX1BPT0xTX1BFUl9TVEFLRVIpLCAvLyBzaXplIG9mIGtleSArIGFsbCB2YWx1ZXMKCS8vICAgICB9OwoJaW50IDExMDEKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWludCAzCglpbnQgMTEKCWludCAwCglkdXBuIDIKCWludCAzCglpbnQgMQoJY2FsbHN1YiBtaW5CYWxhbmNlRm9yQWNjb3VudAoJaXRvYgoJY29uY2F0CglpbnQgMTAwMDAwCglpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWl0b2IKCWNvbmNhdAoJaW50IDE3OQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJY29uY2F0CglyZXRzdWIKCi8vIGdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFByb3RvY29sQ29uc3RyYWludHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFByb3RvY29sQ29uc3RyYWludHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCk6IENvbnN0cmFpbnRzCi8vCi8vIFJldHVybnMgdGhlIHByb3RvY29sIGNvbnN0cmFpbnRzIHNvIHRoYXQgVUlzIGNhbiBsaW1pdCB3aGF0IHVzZXJzIHNwZWNpZnkgZm9yIHZhbGlkYXRvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCmdldFByb3RvY29sQ29uc3RyYWludHM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjcyCgkvLyByZXR1cm4gewoJLy8gICAgICAgZXBvY2hQYXlvdXRSb3VuZHNNaW46IE1JTl9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICBlcG9jaFBheW91dFJvdW5kc01heDogTUFYX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgIG1pblBjdFRvVmFsaWRhdG9yV0ZvdXJEZWNpbWFsczogTUlOX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICBtYXhQY3RUb1ZhbGlkYXRvcldGb3VyRGVjaW1hbHM6IE1BWF9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgbWluRW50cnlTdGFrZTogTUlOX0FMR09fU1RBS0VfUEVSX1BPT0wsCgkvLyAgICAgICBtYXhBbGdvUGVyUG9vbDogdGhpcy5tYXhBbGdvQWxsb3dlZFBlclBvb2woKSwKCS8vICAgICAgIG1heEFsZ29QZXJWYWxpZGF0b3I6IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICBhbXRDb25zaWRlcmVkU2F0dXJhdGVkOiB0aGlzLmFsZ29TYXR1cmF0aW9uTGV2ZWwoKSwKCS8vICAgICAgIG1heE5vZGVzOiBNQVhfTk9ERVMsCgkvLyAgICAgICBtYXhQb29sc1Blck5vZGU6IE1BWF9QT09MU19QRVJfTk9ERSwKCS8vICAgICAgIG1heFN0YWtlcnNQZXJQb29sOiBNQVhfU1RBS0VSU19QRVJfUE9PTCwKCS8vICAgICB9OwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMGY0MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAwMDAwMDAwMDAwMGY0MjQwCgljYWxsc3ViIG1heEFsZ29BbGxvd2VkUGVyUG9vbAoJaXRvYgoJY29uY2F0CgljYWxsc3ViIG1heEFsbG93ZWRTdGFrZQoJaXRvYgoJY29uY2F0CgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwYzgKCWNvbmNhdAoJcmV0c3ViCgovLyBnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXROdW1WYWxpZGF0b3JzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE51bVZhbGlkYXRvcnMoKXVpbnQ2NAoJY2FsbHN1YiBnZXROdW1WYWxpZGF0b3JzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0TnVtVmFsaWRhdG9ycygpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgY3VycmVudCBudW1iZXIgb2YgdmFsaWRhdG9ycwpnZXROdW1WYWxpZGF0b3JzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI5MgoJLy8gcmV0dXJuIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZTsKCWJ5dGUgMHg2ZTc1NmQ1NiAvLyAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yQ29uZmlnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JDb25maWcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JDb25maWcodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFZhbGlkYXRvckNvbmZpZwpnZXRWYWxpZGF0b3JDb25maWc6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mjk3CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWc7CglpbnQgMAoJaW50IDI0MgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yU3RhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFZhbGlkYXRvclN0YXRlKHVpbnQ2NCkodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JTdGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFZhbGlkYXRvclN0YXRlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBWYWxpZGF0b3JDdXJTdGF0ZQpnZXRWYWxpZGF0b3JTdGF0ZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMDIKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlOwoJaW50IDI0MiAvLyBoZWFkT2Zmc2V0CglpbnQgMjYKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykKKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBbQWRkcmVzcywgQWRkcmVzc10KZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMwNwoJLy8gcmV0dXJuIFt0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlcl07CglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFBvb2xzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdCgljYWxsc3ViIGdldFBvb2xzCglkdXAKCWxlbgoJaW50IDE4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0UG9vbHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xJbmZvW10KLy8KLy8gUmV0dXJuIGxpc3Qgb2YgYWxsIHBvb2xzIGZvciB0aGlzIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkCi8vIEByZXR1cm4ge1Bvb2xJbmZvW119IC0gYXJyYXkgb2YgcG9vbHMKLy8gTm90IGNhbGxhYmxlIGZyb20gb3RoZXIgY29udHJhY3RzIGJlY2F1c2UgPjFLIHJldHVybiBidXQgY2FuIGJlIGNhbGxlZCB3LyBzaW11bGF0ZSB3aGljaCBidW1wcyBsb2cgcmV0dXJucwpnZXRQb29sczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzE4CgkvLyByZXREYXRhOiBQb29sSW5mb1tdID0gW10KCWJ5dGUgMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOQoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWludCA0MzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIxCgkvLyBwb29sU2V0W2ldLnBvb2xBcHBJZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvcl8wX2VuZAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzI1CgkvLyByZXREYXRhLnB1c2gocG9vbFNldFtpXSkKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFBvb2xJbmZvW10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMTgKCWV4dHJhY3QzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoqZm9yXzBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGdldFBvb2xBcHBJZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFBvb2xBcHBJZCh2YWxpZGF0b3JJZDogdWludDY0LCBwb29sSWQ6IHVpbnQ2NCk6IHVpbnQ2NApnZXRQb29sQXBwSWQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM1CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sSWQgIT09IDAgJiYgcG9vbElkIDw9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMubGVuZ3RoLAoJLy8gICAgICAgJ3Bvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3InCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnQgMAoJIT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnQgMjQKCTw9CgkmJgoKKnNraXBfYW5kMDoKCS8vIHBvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMzkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xJZCAtIDFdLnBvb2xBcHBJZDsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpCiphYmlfcm91dGVfZ2V0UG9vbEluZm86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMjQKCT09CgoJLy8gYXJndW1lbnQgMCAocG9vbEtleSkgZm9yIGdldFBvb2xJbmZvIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJY2FsbHN1YiBnZXRQb29sSW5mbwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFBvb2xJbmZvKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiBQb29sSW5mbwpnZXRQb29sSW5mbzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNDQKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXTsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldEN1ck1heFN0YWtlUGVyUG9vbCh1aW50NjQpdWludDY0CiphYmlfcm91dGVfZ2V0Q3VyTWF4U3Rha2VQZXJQb29sOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NAoJY2FsbHN1YiBnZXRDdXJNYXhTdGFrZVBlclBvb2wKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRDdXJNYXhTdGFrZVBlclBvb2wodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGUgdGhlIG1heGltdW0gc3Rha2UgcGVyIHBvb2wgZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yLgovLyBOb3JtYWxseSB0aGlzIHdvdWxkIGJlIG1heEFsZ29QZXJQb29sLCBidXQgaXQgc2hvdWxkIGFsc28gbmV2ZXIgZ28gYWJvdmUgTWF4QWxsb3dlZFN0YWtlIC8gbnVtUG9vbHMgc28KLy8gYXMgcG9vbHMgYXJlIGFkZGVkIHRoZSBtYXggYWxsb3dlZCBwZXIgcG9vbCBjYW4gcmVkdWNlLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KZ2V0Q3VyTWF4U3Rha2VQZXJQb29sOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTUKCS8vIG51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIG51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU2CgkvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scyA9IHRoaXMubWF4QWxsb3dlZFN0YWtlKCkgLyBudW1Qb29scwoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMSAvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NwoJLy8gbWF4UGVyUG9vbDogdWludDY0ID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWF4QWxnb1BlclBvb2wKCWludCAyMTcKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU4CgkvLyBtYXhQZXJQb29sID09PSAwCglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmMV9lbmQKCgkvLyAqaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTkKCS8vIG1heFBlclBvb2wgPSB0aGlzLm1heEFsZ29BbGxvd2VkUGVyUG9vbCgpCgljYWxsc3ViIG1heEFsZ29BbGxvd2VkUGVyUG9vbAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKKmlmMV9lbmQ6CgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM2MQoJLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMgPCBtYXhQZXJQb29sCglmcmFtZV9kaWcgMSAvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29sczogdWludDY0CglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCTwKCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzYyCgkvLyBtYXhQZXJQb29sID0gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMKCWZyYW1lX2RpZyAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCippZjJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM2NAoJLy8gcmV0dXJuIG1heFBlclBvb2w7CglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sCiphYmlfcm91dGVfZG9lc1N0YWtlck5lZWRUb1BheU1CUjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wKCWNhbGxzdWIgZG9lc1N0YWtlck5lZWRUb1BheU1CUgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKHN0YWtlcjogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gSGVscGVyIGNhbGxlcnMgY2FuIGNhbGwgdy8gc2ltdWxhdGUgdG8gZGV0ZXJtaW5lIGlmICdBZGRTdGFrZXInIE1CUiBzaG91bGQgYmUgaW5jbHVkZWQgdy8gc3Rha2luZyBhbW91bnQKLy8gQHBhcmFtIHN0YWtlcgpkb2VzU3Rha2VyTmVlZFRvUGF5TUJSOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM3MwoJLy8gcmV0dXJuICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHM7CglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJcmV0c3ViCgovLyBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KGFkZHJlc3MpKHVpbnQ2NCx1aW50NjQsdWludDY0KVtdCgljYWxsc3ViIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudAoJZHVwCglsZW4KCWludCAyNAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChzdGFrZXI6IEFkZHJlc3MpOiBWYWxpZGF0b3JQb29sS2V5W10KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgcG9vbHMgZm9yIGFuIGFjY291bnQuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFjY291bnQgdG8gcmV0cmlldmUgc3Rha2VkIHBvb2xzIGZvci4KLy8gQHJldHVybiB7VmFsaWRhdG9yUG9vbEtleVtdfSAtIFRoZSBhcnJheSBvZiBzdGFrZWQgcG9vbHMgZm9yIHRoZSBhY2NvdW50LgpnZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODMKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIFtdOwoJYnl0ZSAweAoJYiAqZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KnJldHVybgoKKmlmM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg2CgkvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10gPSBbXQoJYnl0ZSAweAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OAoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA2Cgk8CglieiAqZm9yXzFfZW5kCgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODkKCS8vIHBvb2xTZXRbaV0uaWQgIT09IDAKCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozOTAKCS8vIHJldERhdGEucHVzaChwb29sU2V0W2ldKQoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMjQKCWV4dHJhY3QzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCippZjRfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OAoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozOTMKCS8vIHJldHVybiByZXREYXRhOwoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCgoqZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoqYWJpX3JvdXRlX2dldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VG9rZW5QYXlvdXRSYXRpbwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFRva2VuUGF5b3V0UmF0aW8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIFJldHJpZXZlcyB0aGUgdG9rZW4gcGF5b3V0IHJhdGlvIGZvciBhIGdpdmVuIHZhbGlkYXRvciAtIHJldHVybmluZyB0aGUgcG9vbCByYXRpb3Mgb2Ygd2hvbGUgc28gdGhhdCB0b2tlbgovLyBwYXlvdXRzIGFjcm9zcyBwb29scyBjYW4gYmUgYmFzZWQgb24gYSBzdGFibGUgc25hcGhvc3Qgb2Ygc3Rha2UuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcmV0dXJuIHtQb29sVG9rZW5QYXlvdXRSYXRpb30gLSBUaGUgdG9rZW4gcGF5b3V0IHJhdGlvIGZvciB0aGUgdmFsaWRhdG9yLgpnZXRUb2tlblBheW91dFJhdGlvOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQwNQoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpbzsKCWludCA3MDAgLy8gaGVhZE9mZnNldAoJaW50IDIwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoqYWJpX3JvdXRlX2dldE5vZGVQb29sQXNzaWdubWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkKCWNhbGxzdWIgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE5vZGVQb29sQXNzaWdubWVudHModmFsaWRhdG9ySWQ6IHVpbnQ2NCk6IE5vZGVQb29sQXNzaWdubWVudENvbmZpZwpnZXROb2RlUG9vbEFzc2lnbm1lbnRzOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAidGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyB0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBkb2Vzbid0IGV4aXN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDEyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzOwoJaW50IDkwMCAvLyBoZWFkT2Zmc2V0CglpbnQgMTkyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRORkRSZWdpc3RyeUlEKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRORkRSZWdpc3RyeUlEOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NAoJY2FsbHN1YiBnZXRORkRSZWdpc3RyeUlECglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0TkZEUmVnaXN0cnlJRCgpOiB1aW50NjQKZ2V0TkZEUmVnaXN0cnlJRDoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MTYKCS8vIHJldHVybiB0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQ7Cglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCXJldHN1YgoKLy8gYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NAoqYWJpX3JvdXRlX2FkZFZhbGlkYXRvcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMjQyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNvbmZpZykgZm9yIGFkZFZhbGlkYXRvciBtdXN0IGJlIGEgKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAobWJyUGF5bWVudCkgZm9yIGFkZFZhbGlkYXRvciBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFZhbGlkYXRvcihwYXksc3RyaW5nLCh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSl1aW50NjQKCWNhbGxzdWIgYWRkVmFsaWRhdG9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkVmFsaWRhdG9yKG1iclBheW1lbnQ6IFBheVR4biwgbmZkTmFtZTogc3RyaW5nLCBjb25maWc6IFZhbGlkYXRvckNvbmZpZyk6IHVpbnQ2NAovLwovLyBBZGRzIGEgbmV3IHZhbGlkYXRvcgovLyBSZXF1aXJlcyBhdCBsZWFzdCAxMCBBTEdPIGFzIHRoZSAnZmVlJyBmb3IgdGhlIHRyYW5zYWN0aW9uIHRvIGhlbHAgZGlzc3VhZGUgc3BhbW1lZCB2YWxpZGF0b3IgYWRkcy4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyB2YWxpZGF0b3Igc3RvcmFnZQovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAoT3B0aW9uYWwpIE5hbWUgb2YgbmZkICh1c2VkIGFzIGRvdWJsZS1jaGVjayBhZ2FpbnN0IGlkIHNwZWNpZmllZCBpbiBjb25maWcpCi8vIEBwYXJhbSB7VmFsaWRhdG9yQ29uZmlnfSBjb25maWcgVmFsaWRhdG9yQ29uZmlnIHN0cnVjdAovLyBAcmV0dXJucyB7dWludDY0fSB2YWxpZGF0b3IgaWQKYWRkVmFsaWRhdG9yOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDI4CgkvLyB0aGlzLnZhbGlkYXRlQ29uZmlnKGNvbmZpZykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJY2FsbHN1YiB2YWxpZGF0ZUNvbmZpZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MjkKCS8vIGFzc2VydChjb25maWcub3duZXIgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMAoJLy8gYXNzZXJ0KGNvbmZpZy5tYW5hZ2VyICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDQwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMxCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBjb25maWcub3duZXIsICdzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcicpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMwoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgYW1vdW50OiB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRWYWxpZGF0b3JNYnIgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkVmFsaWRhdG9yTWJyIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzUKCS8vIGFzc2VydChtYnJQYXltZW50LmZlZSA+IDEwICogMTAwMDAwMCwgJ2ZlZSBtdXN0IGJlIDEwIEFMR08gb3IgbW9yZSB0byBwcmV2ZW50IHNwYW1taW5nIG9mIHZhbGlkYXRvcnMnKQoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgRmVlCglpbnQgMTAwMDAwMDAKCT4KCgkvLyBmZWUgbXVzdCBiZSAxMCBBTEdPIG9yIG1vcmUgdG8gcHJldmVudCBzcGFtbWluZyBvZiB2YWxpZGF0b3JzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM4CgkvLyB2YWxpZGF0b3JJZCA9IHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSArIDEKCWJ5dGUgMHg2ZTc1NmQ1NiAvLyAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM5CgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSB2YWxpZGF0b3JJZAoJYnl0ZSAweDZlNzU2ZDU2IC8vICJudW1WIgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmNyZWF0ZSgpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWludCAxMDkyCglib3hfY3JlYXRlCglwb3AKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZyA9IGNvbmZpZwoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmlkID0gdmFsaWRhdG9ySWQKCWludCAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDYKCS8vIGNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWY1X2VuZAoKCS8vICppZjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKGNvbmZpZy5uZmRGb3JJbmZvKV0sCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXSwKCS8vICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJbG9hZCAyMDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUwCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihjb25maWcubmZkRm9ySW5mbyldCglieXRlIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IC8vICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTMKCS8vIGFzc2VydChidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMSwgInByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZCIpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWludCAxCgk9PQoKCS8vIHByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY1X2VuZDoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDYxCgkvLyBjb25maWcuZW50cnlHYXRpbmdUeXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMgfHwKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50IDMKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnQgNAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KHRoaXMuaXNORkRBcHBJRFZhbGlkKGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSksICdwcm92aWRlZCBORkQgQXBwIGlkIGZvciBnYXRpbmcgbXVzdCBiZSB2YWxpZCBORkQnKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzTkZEQXBwSURWYWxpZAoKCS8vIHByb3ZpZGVkIE5GRCBBcHAgaWQgZm9yIGdhdGluZyBtdXN0IGJlIHZhbGlkIE5GRAoJYXNzZXJ0CgoqaWY2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjgKCS8vIHJldHVybiB2YWxpZGF0b3JJZDsKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCS8vIG1hbmFnZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAobWFuYWdlcikgZm9yIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyCglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG1hbmFnZXI6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIENoYW5nZXMgdGhlIFZhbGlkYXRvciBtYW5hZ2VyIGZvciBhIHNwZWNpZmljIFZhbGlkYXRvciBpZC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byBjaGFuZ2UgdGhlIG1hbmFnZXIgZm9yLgovLyBAcGFyYW0ge0FkZHJlc3N9IG1hbmFnZXIgLSBUaGUgbmV3IG1hbmFnZXIgYWRkcmVzcy4KY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NzkKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDgzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyID0gbWFuYWdlcgoJaW50IDQwCglmcmFtZV9kaWcgLTIgLy8gbWFuYWdlcjogQWRkcmVzcwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbzoKCS8vIHN1bnNldHRpbmdUbzogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gc3Vuc2V0dGluZ09uOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbwoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBzdW5zZXR0aW5nT246IHVpbnQ2NCwgc3Vuc2V0dGluZ1RvOiBWYWxpZGF0b3JJZFR5cGUpOiB2b2lkCi8vCi8vIFVwZGF0ZXMgdGhlIHN1bnNldCBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiB2YWxpZGF0b3IuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IgdG8gdXBkYXRlLgovLyBAcGFyYW0ge3VpbnQ2NH0gc3Vuc2V0dGluZ09uIC0gVGhlIG5ldyBzdW5zZXQgdGltZXN0YW1wLgovLyBAcGFyYW0ge3VpbnQ2NH0gc3Vuc2V0dGluZ1RvIC0gVGhlIG5ldyBzdW5zZXQgdG8gdmFsaWRhdG9yIGlkLgpjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0OTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdPbiA9IHN1bnNldHRpbmdPbgoJaW50IDIyNgoJZnJhbWVfZGlnIC0yIC8vIHN1bnNldHRpbmdPbjogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MDAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdUbyA9IHN1bnNldHRpbmdUbwoJaW50IDIzNAoJZnJhbWVfZGlnIC0zIC8vIHN1bnNldHRpbmdUbzogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodWludDY0LHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yTkZECglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbmZkQXBwSUQ6IHVpbnQ2NCwgbmZkTmFtZTogc3RyaW5nKTogdm9pZAovLwovLyBDaGFuZ2VzIHRoZSBORkQgZm9yIGEgdmFsaWRhdG9yIGluIHRoZSB2YWxpZGF0b3JMaXN0IGNvbnRyYWN0LgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIHVwZGF0ZS4KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElEIC0gVGhlIGFwcGxpY2F0aW9uIGlkIG9mIHRoZSBORkQgdG8gYXNzaWduIHRvIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE5GRCAod2hpY2ggbXVzdCBtYXRjaCkKY2hhbmdlVmFsaWRhdG9yTkZEOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxMwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjAKCS8vIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGUgMHg2OTczNWY3NjYxNmM2OTY0NWY2ZTY2NjQ1ZjYxNzA3MDY5NjQgLy8gImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyMQoJLy8gYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCldCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbnMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSAoQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MpLAoJLy8gICAgICAgJ0lmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyOAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IG5mZEFwcElECglpbnQgNzIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3M6CgkvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjb21taXNzaW9uQWRkcmVzcykgZm9yIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzCglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ2hhbmdlIHRoZSBjb21taXNzaW9uIGFkZHJlc3MgdGhhdCB2YWxpZGF0b3IgcmV3YXJkcyBhcmUgc2VudCB0by4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQpjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MzYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTQwCgkvLyBhc3NlcnQoY29tbWlzc2lvbkFkZHJlc3MgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gY29tbWlzc2lvbkFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NDEKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzID0gY29tbWlzc2lvbkFkZHJlc3MKCWludCAxNzcKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCS8vIFJld2FyZFBlclBheW91dDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglidG9pCgoJLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBFbnRyeUdhdGluZ0Fzc2V0czogdWludDY0WzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKEVudHJ5R2F0aW5nQXNzZXRzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgdWludDY0WzRdCglhc3NlcnQKCgkvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoRW50cnlHYXRpbmdBZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gRW50cnlHYXRpbmdUeXBlOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDQgKEVudHJ5R2F0aW5nVHlwZSkgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbwoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4LCBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MsIEVudHJ5R2F0aW5nQXNzZXRzOiBTdGF0aWNBcnJheTx1aW50NjQsIDQ+LCBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NCwgUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQpOiB2b2lkCi8vCi8vIEFsbG93IHRoZSBhZGRpdGlvbmFsIHJld2FyZHMgKGdhdGluZyBlbnRyeSwgYWRkaXRpb25hbCB0b2tlbiByZXdhcmRzKSBpbmZvcm1hdGlvbiBiZSBjaGFuZ2VkIGF0IHdpbGwuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCXByb3RvIDYgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NTYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPSBFbnRyeUdhdGluZ1R5cGUKCWludCA4MAoJZnJhbWVfZGlnIC0yIC8vIEVudHJ5R2F0aW5nVHlwZTogdWludDgKCWl0b2IKCWV4dHJhY3QgNyAxCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjIKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQWRkcmVzcyA9IEVudHJ5R2F0aW5nQWRkcmVzcwoJaW50IDgxCglmcmFtZV9kaWcgLTMgLy8gRW50cnlHYXRpbmdBZGRyZXNzOiBBZGRyZXNzCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzID0gRW50cnlHYXRpbmdBc3NldHMKCWludCAxMTMKCWZyYW1lX2RpZyAtNCAvLyBFbnRyeUdhdGluZ0Fzc2V0czogU3RhdGljQXJyYXk8dWludDY0LCA0PgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UgPSBHYXRpbmdBc3NldE1pbkJhbGFuY2UKCWludCAxNDUKCWZyYW1lX2RpZyAtNSAvLyBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRQZXJQYXlvdXQgPSBSZXdhcmRQZXJQYXlvdXQKCWludCAxNjEKCWZyYW1lX2RpZyAtNiAvLyBSZXdhcmRQZXJQYXlvdXQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfYWRkUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDIgKG1iclBheW1lbnQpIGZvciBhZGRQb29sIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGFkZFBvb2wKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhZGRQb29sKG1iclBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbm9kZU51bTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIGEgbmV3IHBvb2wgdG8gYSB2YWxpZGF0b3IncyBwb29sIHNldCwgcmV0dXJuaW5nIHRoZSAna2V5JyB0byByZWZlcmVuY2UgdGhlIHBvb2wgaW4gdGhlIGZ1dHVyZSBmb3Igc3Rha2luZywgZXRjLgovLyBUaGUgY2FsbGVyIG11c3QgcGF5IHRoZSBjb3N0IG9mIHRoZSB2YWxpZGF0b3JzIE1CUiBpbmNyZWFzZSBhcyB3ZWxsIGFzIHRoZSBNQlIgdGhhdCB3aWxsIGJlIG5lZWRlZCBmb3IgdGhlIHBvb2wgaXRzZWxmLgovLwovLyBbIE9OTFkgT1dORVIgT1IgTUFOQUdFUiBDQU4gY2FsbCBdCi8vIEBwYXJhbSB7UGF5VHhufSBtYnJQYXltZW50IHBheW1lbnQgZnJvbSBjYWxsZXIgd2hpY2ggY292ZXJzIG1iciBpbmNyZWFzZSBvZiBhZGRpbmcgYSBuZXcgcG9vbAovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgaXMgaWQgb2YgdmFsaWRhdG9yIHRvIHBvb2wgdG8gKG11c3QgYmUgb3duZXIgb3IgbWFuYWdlcikKLy8gQHBhcmFtIHt1aW50NjR9IG5vZGVOdW0gaXMgbm9kZSBudW1iZXIgdG8gYWRkIHRvCi8vIEByZXR1cm5zIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sIGtleSB0byBjcmVhdGVkIHBvb2wKYWRkUG9vbDoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyIHx8CgkvLyAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCXR4biBTZW5kZXIKCWludCA0MAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjE6CgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1ODgKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IGFtb3VudDogdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDggOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmV4aXN0cywgInNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQiKQoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MgoJLy8gbnVtUG9vbHM6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gKmlmN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTMKCS8vIChudW1Qb29scyBhcyB1aW50NjQpID49IE1BWF9QT09MUwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50IDI0Cgk+PQoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGFscmVhZHkgYXQgbWF4IHBvb2wgc2l6ZQoJZXJyCgoqaWY3X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTYKCS8vIG51bVBvb2xzICs9IDEKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTkKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoNDA5NiwgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplIC0gNDA5NiksCgkvLyAgICAgICBdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgIC8vIGNyZWF0aW5nQ29udHJhY3RJRCwgdmFsaWRhdG9ySWQsIHBvb2xJZCwgbWluRW50cnlTdGFrZQoJLy8gICAgICAgICBtZXRob2QoJ2NyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkJyksCgkvLyAgICAgICAgIGl0b2IodGhpcy5hcHAuaWQpLAoJLy8gICAgICAgICBpdG9iKHZhbGlkYXRvcklkKSwKCS8vICAgICAgICAgaXRvYihudW1Qb29scyBhcyB1aW50NjQpLAoJLy8gICAgICAgICBpdG9iKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1pbkVudHJ5U3Rha2UpLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjAwCgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnQgMCAvLyBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDEKCS8vIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0KCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWludCAwCglpbnQgNDA5NgoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWludCA0MDk2CglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUKCWFzc2VydAoJaW50IDQwOTYKCS0KCWJveF9leHRyYWN0CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNgoJLy8gZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMTEKCWl0eG5fZmllbGQgR2xvYmFsTnVtVWludAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDcKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCWludCAzCglpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDgKCS8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzCglpbnQgMwoJaXR4bl9maWVsZCBFeHRyYVByb2dyYW1QYWdlcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDkKCS8vIGFwcGxpY2F0aW9uQXJnczogWwoJLy8gICAgICAgICAvLyBjcmVhdGluZ0NvbnRyYWN0SUQsIHZhbGlkYXRvcklkLCBwb29sSWQsIG1pbkVudHJ5U3Rha2UKCS8vICAgICAgICAgbWV0aG9kKCdjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCcpLAoJLy8gICAgICAgICBpdG9iKHRoaXMuYXBwLmlkKSwKCS8vICAgICAgICAgaXRvYih2YWxpZGF0b3JJZCksCgkvLyAgICAgICAgIGl0b2IobnVtUG9vbHMgYXMgdWludDY0KSwKCS8vICAgICAgICAgaXRvYih0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlKSwKCS8vICAgICAgIF0KCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWludCAyMDkKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYxOQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyA9IG51bVBvb2xzIGFzIHVpbnQxNgoJaW50IDI0MgoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMgoJLy8gcG9vbEFwcElkID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklELmlkCglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjIzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW251bVBvb2xzIC0gMV0ucG9vbEFwcElkID0gcG9vbEFwcElkCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDAKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjQKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGFkZFBvb2xUb05vZGUKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjMyCgkvLyByZXR1cm4geyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogbnVtUG9vbHMgYXMgdWludDY0LCBwb29sQXBwSWQ6IHRoaXMuaXR4biEuY3JlYXRlZEFwcGxpY2F0aW9uSUQuaWQgfTsKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCgljb25jYXQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWl0b2IKCWNvbmNhdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gc3Rha2VkQW1vdW50UGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRTdGFrZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIHN0YWtlIHRvIGEgdmFsaWRhdG9yIHBvb2wuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gb25seSBpZiB2YWxpZGF0b3IgaGFzIGdhdGluZyB0byBlbnRlciAtIHRoaXMgaXMgYXNzZXQgaWQgb3IgbmZkIGlkIHRoYXQgY29ycmVzcG9uZHMgdG8gZ2F0aW5nLgovLyBUeG4gc2VuZGVyIGlzIGZhY3RvcmVkIGluIGFzIHdlbGwgaWYgdGhhdCBpcyBwYXJ0IG9mIGdhdGluZy4KLy8gKiBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KYWRkU3Rha2U6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA1CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0NQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID4gMAoJaW50IDIyNgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMAoJPgoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NDkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uIDwgZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAsCgkvLyAgICAgICAgICJjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lIgoJLy8gICAgICAgKQoJaW50IDIyNgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCgk8CgoJLy8gY2FuJ3Qgc3Rha2Ugd2l0aCBhIHZhbGlkYXRvciB0aGF0IGlzIHBhc3QgaXRzIHN1bnNldHRpbmcgdGltZQoJYXNzZXJ0CgoqaWY4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTUKCS8vIHN0YWtlciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0YWtlcjogYWRkcmVzcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTkKCS8vIHZlcmlmeVBheVR4bihzdGFrZWRBbW91bnRQYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHN0YWtlciwKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoic3Rha2VyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY2NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgPCB0aGlzLm1heEFsbG93ZWRTdGFrZSgpLAoJLy8gICAgICAgJ3RvdGFsIHN0YWtlZCBmb3IgYWxsIG9mIGEgdmFsaWRhdG9ycyBwb29scyBtYXkgbm90IGV4Y2VlZCBoYXJkIGNhcCcKCS8vICAgICApCglpbnQgMjUyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCgk8CgoJLy8gdG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjczCgkvLyB0aGlzLmRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkLCB2YWx1ZVRvVmVyaWZ5KQoJZnJhbWVfZGlnIC0zIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZG9lc1N0YWtlck1lZXRHYXRpbmcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njc1CgkvLyByZWFsQW1vdW50ID0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfYnVyeSAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzYKCS8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgoJLy8gKmlmOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzgKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjlfZW5kCgoJLy8gKmlmOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgxCgkvLyBtYnJBbXRMZWZ0QmVoaW5kID0gdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkU3Rha2VyTWJyCgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODIKCS8vIHJlYWxBbW91bnQgLT0gbWJyQW10TGVmdEJlaGluZAoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgzCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5jcmVhdGUoKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgljb25jYXQKCWludCAxNDQKCWJveF9jcmVhdGUKCXBvcAoKKmlmOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg3CgkvLyBmaW5kUmV0ID0gdGhpcy5maW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZCwgc3Rha2VyLCByZWFsQW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCglmcmFtZV9idXJ5IDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODgKCS8vIHBvb2xLZXkgPSBmaW5kUmV0WzBdCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg5CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmluZFJldFsxXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxOTIKCWdldGJpdAoJZnJhbWVfYnVyeSA0IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjkwCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmaW5kUmV0WzJdCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MwoJZ2V0Yml0CglmcmFtZV9idXJ5IDUgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjkxCgkvLyBwb29sS2V5LnBvb2xJZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIE5vIHBvb2wgYXZhaWxhYmxlIHdpdGggZnJlZSBzdGFrZS4gIFZhbGlkYXRvciBuZWVkcyB0byBhZGQgYW5vdGhlciBwb29sCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTYKCS8vIHRoaXMudXBkYXRlU3Rha2VyUG9vbFNldChzdGFrZXIsIHBvb2xLZXkpCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNhbGxzdWIgdXBkYXRlU3Rha2VyUG9vbFNldAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTkKCS8vIHRoaXMuY2FsbFBvb2xBZGRTdGFrZSgKCS8vICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQsCgkvLyAgICAgICBwb29sS2V5LAoJLy8gICAgICAgbWJyQW10TGVmdEJlaGluZCwKCS8vICAgICAgIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IsCgkvLyAgICAgICBpc05ld1N0YWtlclRvUHJvdG9jb2wKCS8vICAgICApCglmcmFtZV9kaWcgNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCWZyYW1lX2RpZyA0IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCWZyYW1lX2RpZyAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyNAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJY2FsbHN1YiBjYWxsUG9vbEFkZFN0YWtlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjcxNAoJLy8gcmV0dXJuIHBvb2xLZXk7CglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNQoJcmV0c3ViCgovLyBzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfc2V0VG9rZW5QYXlvdXRSYXRpbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoJY2FsbHN1YiBzZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2V0VG9rZW5QYXlvdXRSYXRpbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gc2V0VG9rZW5QYXlvdXRSYXRpbyBpcyBjYWxsZWQgYnkgU3Rha2luZyBQb29sICMgMSAoT05MWSkgdG8gYXNrIHRoZSB2YWxpZGF0b3IgKHVzKSB0byBjYWxjdWxhdGUgdGhlIHJhdGlvcwovLyBvZiBzdGFrZSBpbiB0aGUgcG9vbHMgZm9yIHN1YnNlcXVlbnQgdG9rZW4gcGF5b3V0cyAoaWU6IDIgcG9vbHMsICcxMDAnIGFsZ28gdG90YWwgc3Rha2VkLCA2MCBpbiBwb29sIDEsIGFuZCA0MAovLyBpbiBwb29sIDIpICBUaGlzIGlzIGRvbmUgc28gd2UgaGF2ZSBhIHN0YWJsZSBzbmFwc2hvdCBvZiBzdGFrZSAtIHRha2VuIG9uY2UgcGVyIGVwb2NoIC0gb25seSB0cmlnZ2VyZWQgYnkKLy8gcG9vbCAxIGRvaW5nIHBheW91dC4gIHBvb2xzIG90aGVyIHRoYW4gMSBkb2luZyBwYXlvdXQgY2FsbCBwb29sIDEgdG8gYXNrIGl0IGRvIGl0IGZpcnN0LgovLyBJdCB3b3VsZCBiZSA2MC80MCUgaW4gdGhlIHBvb2xQY3RPZldob2xlIHZhbHVlcy4gIFRoZSB0b2tlbiByZXdhcmQgcGF5b3V0cyB0aGVuIHVzZSB0aGVzZSB2YWx1ZXMgaW5zdGVhZCBvZgovLyB0aGVpciAnY3VycmVudCcgc3Rha2Ugd2hpY2ggY2hhbmdlcyBhcyBwYXJ0IG9mIHRoZSBwYXlvdXRzIHRoZW1zZWx2ZXMgKGFuZCBwZW9wbGUgY291bGQgYmUgY2hhbmdpbmcgc3Rha2UKLy8gZHVyaW5nIHRoZSBlcG9jaCB1cGRhdGVzIGFjcm9zcyBwb29scykKLy8KLy8gTXVsdGlwbGUgcG9vbHMgd2lsbCBjYWxsIHVzIHZpYSBwb29sIDEgKHBvb2wyLT5wb29sMS0+dmFsaWRhdG9yLCBldGMuKSBzbyBkb24ndCBhc3NlcnQgb24gcG9vbDEgY2FsbGluZyBtdWx0aXBsZQovLyB0aW1lcyBpbiBzYW1lIGVwb2NoLiAgSnVzdCByZXR1cm4uCi8vCi8vIEBwYXJhbSB2YWxpZGF0b3JJZCAtIHZhbGlkYXRvciBpZCAoYW5kIHRodXMgcG9vbCkgY2FsbGluZyB1cy4gIFZlcmlmaWVkIHNvIHRoYXQgc2VuZGVyIE1VU1QgYmUgcG9vbCAxIG9mIHRoaXMgdmFsaWRhdG9yLgovLyBAcmV0dXJucyBQb29sVG9rZW5QYXlvdXRSYXRpbyAtIHRoZSBmaW5pc2hlZCByYXRpbyBkYXRhCnNldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczNAoJLy8gcG9vbDFBcHBJRCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkCglpbnQgMjY4CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM1CgkvLyBhc3NlcnQocG9vbDFBcHBJRCAhPT0gMCkKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzcKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5hZGRyZXNzCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJIT0KCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzgKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCWludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMSAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NQoJLy8gbGFzdFBheW91dFVwZGF0ZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0CglpbnQgODkyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDYKCS8vIGxhc3RQYXlvdXRVcGRhdGUgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJaW50IDAKCSE9CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyAqaWYxM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDgKCS8vIChBcHBJRC5mcm9tVWludDY0KHBvb2wxQXBwSUQpLmdsb2JhbFN0YXRlKCdsYXN0UGF5b3V0JykgYXMgdWludDY0KSA9PT0gbGFzdFBheW91dFVwZGF0ZQoJZnJhbWVfZGlnIDAgLy8gcG9vbDFBcHBJRDogdWludDY0CglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCWludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1MQoJLy8gZXBvY2hSb3VuZExlbmd0aCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVwb2NoUm91bmRMZW5ndGggYXMgdWludDY0CglpbnQgMTY5CglpbnQgNAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzRXBvY2hCZWdpbiA9IGN1clJvdW5kIC0gKGN1clJvdW5kICUgZXBvY2hSb3VuZExlbmd0aCkKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfYnVyeSA0IC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTQKCS8vIGxhc3RQYXlvdXRVcGRhdGUgLSAobGFzdFBheW91dFVwZGF0ZSAlIGVwb2NoUm91bmRMZW5ndGgpID09PSB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfZGlnIDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPT0KCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCWludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTRfZW5kOgoKKmlmMTJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnVwZGF0ZWRGb3JQYXlvdXQgPSBjdXJSb3VuZAoJaW50IDg5MgoJZnJhbWVfZGlnIDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYwCgkvLyBjdXJOdW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNSAvLyBjdXJOdW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MQoJLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkCglpbnQgMjUyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyB0b3RhbFN0YWtlRm9yVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzY3CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbaV0udG90YWxBbGdvU3Rha2VkLCAxXzAwMF8wMDBdLAoJLy8gICAgICAgICBbdG90YWxTdGFrZUZvclZhbGlkYXRvcl0KCS8vICAgICAgICkKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDFfMDAwXzAwMAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgOCAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW2ldID0gb3VyUG9vbFBjdE9mV2hvbGUKCWludCA3MDAKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIDggLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzczCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50IDcwMCAvLyBoZWFkT2Zmc2V0CglpbnQgMjAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoKKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gOAoJcmV0c3ViCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJLy8gc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYWxnb1RvQWRkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YWtlVXBkYXRlZFZpYVJld2FyZHMoKHVpbnQ2NCx1aW50NjQsdWludDY0KSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzCglpbnQgMQoJcmV0dXJuCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIGFsZ29Ub0FkZDogdWludDY0LCByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkOiB1aW50NjQsIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NCwgc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0KTogdm9pZAovLwovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIGlzIGNhbGxlZCBieSBTdGFraW5nIHBvb2xzIHRvIGluZm9ybSB0aGUgdmFsaWRhdG9yICh1cykgdGhhdCBhIHBhcnRpY3VsYXIgYW1vdW50IG9mIHRvdGFsCi8vIHN0YWtlIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIFRoZSBjYWxsaW5nIEFwcCBpZCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBvdXIgcG9vbCBsaXN0IGFzIHdlbGwuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHlwZQovLyBAcGFyYW0ge3VpbnQ2NH0gYWxnb1RvQWRkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzCi8vIEBwYXJhbSB7dWludDY0fSByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzICh0aGF0IHNob3VsZCBiZQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9yQ29tbWlzc2lvbiAtIHRoZSBjb21taXNzaW9uIGFtb3VudCB0aGUgdmFsaWRhdG9yIHdhcyBwYWlkLCBpZiBhbnkKLy8gQHBhcmFtIHt1aW50NjR9IHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbmsgLSBpZiB0aGUgcG9vbCB3YXMgaW4gc2F0dXJhdGVkIHN0YXRlLCB0aGUgYW1vdW50IHNlbnQgYmFjayB0byB0aGUgZmVlIHNpbmsuCi8vIHNlZW4gYXMgJ2FjY291bnRlZCBmb3IvcGVuZGluZyBzcGVudCcpCnN0YWtlVXBkYXRlZFZpYVJld2FyZHM6Cglwcm90byA1IDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk0CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgKz0gYWxnb1RvQWRkCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCArPSBhbGdvVG9BZGQKCWludCAyNTIKCWR1cAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGFsZ29Ub0FkZDogdWludDY0CgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjayArPSByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkCglpbnQgMjYwCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MDEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGFsZ29Ub0FkZAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODA0CgkvLyB0aGlzLnJldmVyaWZ5TkZET3duZXJzaGlwKHBvb2xLZXkuaWQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWNhbGxzdWIgcmV2ZXJpZnlORkRPd25lcnNoaXAKCXJldHN1YgoKLy8gc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoqYWJpX3JvdXRlX3N0YWtlUmVtb3ZlZDoKCS8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXJSZW1vdmVkKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoc3Rha2VyKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBzdGFrZVJlbW92ZWQKCWludCAxCglyZXR1cm4KCi8vIHN0YWtlUmVtb3ZlZChwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBzdGFrZXI6IEFkZHJlc3MsIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NCwgcmV3YXJkUmVtb3ZlZDogdWludDY0LCBzdGFrZXJSZW1vdmVkOiBib29sZWFuKTogdm9pZAovLwovLyBzdGFrZVJlbW92ZWQgaXMgY2FsbGVkIGJ5IFN0YWtpbmcgcG9vbHMgdG8gaW5mb3JtIHRoZSB2YWxpZGF0b3IgKHVzKSB0aGF0IGEgcGFydGljdWxhciBhbW91bnQgb2YgdG90YWwgc3Rha2UgaGFzIGJlZW4gcmVtb3ZlZAovLyBmcm9tIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIElmIGFueSBhbW91bnQgb2YgcmV3YXJkUmVtb3ZlZCBpcyBzcGVjaWZpZWQsIHRoZW4gdGhhdCBhbW91bnQgb2YgcmV3YXJkIGlzIHNlbnQgdG8gdGhlIHVzZQovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgY2FsbGluZyB1cyBmcm9tIHdoaWNoIHN0YWtlIHdhcyByZW1vdmVkCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRSZW1vdmVkIC0gYWxnbyBhbW91bnQgcmVtb3ZlZAovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkUmVtb3ZlZCAtIGlmIGFwcGxpY2FibGUsIGFtb3VudCBvZiB0b2tlbiByZXdhcmQgcmVtb3ZlZCAoYnkgcG9vbCAxIGNhbGxlcikgb3IgVE8gcmVtb3ZlIGFuZCBwYXkgb3V0ICh2aWEgcG9vbCAxIGZyb20gZGlmZmVyZW50IHBvb2wgY2FsbGVyKQovLyBAcGFyYW0ge2Jvb2xlYW59IHN0YWtlclJlbW92ZWQKc3Rha2VSZW1vdmVkOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzNgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzkKCS8vIHRoaXMudmVyaWZ5UG9vbEtleUNhbGxlcihwb29sS2V5KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWNhbGxzdWIgdmVyaWZ5UG9vbEtleUNhbGxlcgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDMKCS8vIGFzc2VydChhbW91bnRSZW1vdmVkID4gMCB8fCByZXdhcmRSZW1vdmVkID4gMCwgJ3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBpZiBhbGdvIG9yIHJld2FyZCB3YXMgcmVtb3ZlZCcpCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CglpbnQgMAoJPgoJZHVwCglibnogKnNraXBfb3IyCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpbnQgMAoJPgoJfHwKCipza2lwX29yMjoKCS8vIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpZiBhbGdvIG9yIHJld2FyZCB3YXMgcmVtb3ZlZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0NgoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkIC09IGFtb3VudFJlbW92ZWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJLQoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnQgMjUyCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC09IGFtb3VudFJlbW92ZWQKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MAoJLy8gcmV3YXJkUmVtb3ZlZCA+IDAKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCWludCAwCgk+CglieiAqaWYxNl9lbHNlCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MQoJLy8gcmV3YXJkVG9rZW5JRCA9IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5jb25maWcucmV3YXJkVG9rZW5JZAoJaW50IDE1MwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHJld2FyZFRva2VuSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTIKCS8vIGFzc2VydChyZXdhcmRUb2tlbklEICE9PSAwLCAicmV3YXJkUmVtb3ZlZCBjYW4ndCBiZSBzZXQgaWYgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSByZXdhcmQgdG9rZW4hIikKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSUQ6IHVpbnQ2NAoJaW50IDAKCSE9CgoJLy8gcmV3YXJkUmVtb3ZlZCBjYW4ndCBiZSBzZXQgaWYgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSByZXdhcmQgdG9rZW4hCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUzCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrID49IHJld2FyZFJlbW92ZWQsCgkvLyAgICAgICAgICdyZXdhcmQgYmVpbmcgcmVtb3ZlZCBtdXN0IGJlIGNvdmVyZWQgYnkgaG9sZCBiYWNrIGFtb3VudCcKCS8vICAgICAgICkKCWludCAyNjAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCT49CgoJLy8gcmV3YXJkIGJlaW5nIHJlbW92ZWQgbXVzdCBiZSBjb3ZlcmVkIGJ5IGhvbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrIC09IHJld2FyZFJlbW92ZWQKCWludCAyNjAKCWR1cAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJLQoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY0CgkvLyBwb29sS2V5LnBvb2xJZCAhPT0gMQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJIT0KCWJ6ICppZjE3X2VuZAoKCS8vICppZjE3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjUKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUucGF5VG9rZW5SZXdhcmQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFtzdGFrZXIsIHJld2FyZFRva2VuSUQsIHJld2FyZFJlbW92ZWRdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCkKCWludCAyNjgKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjcKCS8vIG1ldGhvZEFyZ3M6IFtzdGFrZXIsIHJld2FyZFRva2VuSUQsIHJld2FyZFJlbW92ZWRdCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYxN19lbmQ6CgliICppZjE2X2VuZAoKKmlmMTZfZWxzZToKCippZjE2X2VuZDoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5MgoJLy8gc3Rha2VyUmVtb3ZlZAoJZnJhbWVfZGlnIC01IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2xlYW4KCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4OTQKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsU3Rha2VycyAtPSAxCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgOCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgOCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJLQoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4OTYKCS8vIHJlbW92ZVJldCA9IHRoaXMucmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQoc3Rha2VyLCA8VmFsaWRhdG9yUG9vbEtleT57CgkvLyAgICAgICAgIGlkOiBwb29sS2V5LmlkLAoJLy8gICAgICAgICBwb29sSWQ6IHBvb2xLZXkucG9vbElkLAoJLy8gICAgICAgICBwb29sQXBwSWQ6IHBvb2xLZXkucG9vbEFwcElkLAoJLy8gICAgICAgfSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY2FsbHN1YiByZW1vdmVGcm9tU3Rha2VyUG9vbFNldAoJZnJhbWVfYnVyeSAxIC8vIHJlbW92ZVJldDogKGJvb2wsYm9vbCkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTAxCgkvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3IgPSByZW1vdmVSZXRbMF0KCWZyYW1lX2RpZyAxIC8vIHJlbW92ZVJldDogKGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZ2V0Yml0CglmcmFtZV9idXJ5IDIgLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwMgoJLy8gc3Rha2VyT3V0T2ZQcm90b2NvbCA9IHJlbW92ZVJldFsxXQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxCglnZXRiaXQKCWZyYW1lX2J1cnkgMyAvLyBzdGFrZXJPdXRPZlByb3RvY29sOiBib29sCgoJLy8gKmlmMTlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA0CgkvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3IKCWZyYW1lX2RpZyAyIC8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcjogYm9vbAoJYnogKmlmMTlfZW5kCgoJLy8gKmlmMTlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwNQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsU3Rha2VycyAtPSAxCglpbnQgMjQ0CglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgktCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjE5X2VuZDoKCS8vICppZjIwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOAoJLy8gc3Rha2VyT3V0T2ZQcm90b2NvbAoJZnJhbWVfZGlnIDMgLy8gc3Rha2VyT3V0T2ZQcm90b2NvbDogYm9vbAoJYnogKmlmMjBfZW5kCgoJLy8gKmlmMjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlIC09IDEKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJLQoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCippZjIwX2VuZDoKCippZjE4X2VuZDoKCXJldHN1YgoKLy8gZmluZFBvb2xGb3JTdGFrZXIodWludDY0LGFkZHJlc3MsdWludDY0KSgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9maW5kUG9vbEZvclN0YWtlcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYW1vdW50VG9TdGFrZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKHN0YWtlcikgZm9yIGZpbmRQb29sRm9yU3Rha2VyIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJY2FsbHN1YiBmaW5kUG9vbEZvclN0YWtlcgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGZpbmRQb29sRm9yU3Rha2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHN0YWtlcjogQWRkcmVzcywgYW1vdW50VG9TdGFrZTogdWludDY0KTogW1ZhbGlkYXRvclBvb2xLZXksIGJvb2xlYW4sIGJvb2xlYW5dCi8vCi8vIEZpbmRzIHRoZSBwb29sIGZvciBhIHN0YWtlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdmFsaWRhdG9yIGlkLCBzdGFrZXIgYWRkcmVzcywgYW5kIGFtb3VudCB0byBzdGFrZS4KLy8gRmlyc3QgY2hlY2tzIHRoZSBzdGFrZXJzICdhbHJlYWR5IHN0YWtlZCBsaXN0JyBmb3IgdGhlIHZhbGlkYXRvciBwcmVmZXJyaW5nIHRob3NlIChhZGRpbmcgaWYgcG9zc2libGUpIHRoZW4gYWRkcwovLyB0byBuZXcgcG9vbCBpZiBuZWNlc3NhcnkuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1N0YWtlIC0gVGhlIGFtb3VudCB0byBzdGFrZS4KLy8gQHJldHVybnMge1ZhbGlkYXRvclBvb2xLZXksIGJvb2xlYW4sIGJvb2xlYW59IC0gVGhlIHBvb2wgZm9yIHRoZSBzdGFrZXIsIHRydWUvZmFsc2Ugb24gd2hldGhlciB0aGUgc3Rha2VyIGlzICduZXcnCi8vIHRvIHRoaXMgVkFMSURBVE9SLCBhbmQgdHJ1ZS9mYWxzZSBpZiBzdGFrZXIgaXMgbmV3IHRvIHRoZSBwcm90b2NvbC4KZmluZFBvb2xGb3JTdGFrZXI6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA3CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzMAoJLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MzEKCS8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzOQoJLy8gbWF4UGVyUG9vbCA9IHRoaXMuZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHZhbGlkYXRvcklkKQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gKmlmMjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQyCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyMV9lbmQKCgkvLyAqaWYyMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQzCgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NAoJLy8gYXNzZXJ0KHZhbGlkYXRvcklkICE9PSAwKQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWludCAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfMzoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDUKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgNgoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjIyX2VuZDoKCS8vICppZjIzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0OQoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCT09CglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgliICpmb3JfM19jb250aW51ZQoKKmlmMjNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1MgoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gKmlmMjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUzCgkvLyBwb29sU2V0W2ldLmlkID09PSB2YWxpZGF0b3JJZAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCT09CglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU1CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sU2V0W2ldLnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0KCS8vICAgICAgICAgICAgIG1heFBlclBvb2wKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDggLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCSsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPD0KCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjAKCS8vIHJldHVybiBbcG9vbFNldFtpXSwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwgaXNOZXdTdGFrZXJUb1Byb3RvY29sXTsKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCWIgKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybgoKKmlmMjVfZW5kOgoKKmlmMjRfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfMwoKKmZvcl8zX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjcKCS8vIGFzc2VydCgKCS8vICAgICAgIGFtb3VudFRvU3Rha2UgPj0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSwKCS8vICAgICAgICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJaW50IDIwOQoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3MwoJLy8gcG9vbHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglpbnQgNDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzQKCS8vIGN1ck51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYyNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzYKCS8vIHBvb2xzW2ldLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0gbWF4UGVyUG9vbAoJZnJhbWVfZGlnIDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50VG9TdGFrZTogdWludDY0CgkrCglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCTw9CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc3CgkvLyByZXR1cm4gWwoJLy8gICAgICAgICAgIHsgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IGkgKyAxLCBwb29sQXBwSWQ6IHBvb2xzW2ldLnBvb2xBcHBJZCB9LAoJLy8gICAgICAgICAgIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IsCgkvLyAgICAgICAgICAgaXNOZXdTdGFrZXJUb1Byb3RvY29sLAoJLy8gICAgICAgICBdOwoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCWIgKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybgoKKmlmMjZfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgliICpmb3JfNAoKKmZvcl80X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5ODUKCS8vIHJldHVybiBbeyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogMCwgcG9vbEFwcElkOiAwIH0sIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IsIGlzTmV3U3Rha2VyVG9Qcm90b2NvbF07CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnQgMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoKKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDcKCXJldHN1YgoKLy8gbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX21vdmVQb29sVG9Ob2RlOgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gcG9vbEFwcElkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtb3ZlUG9vbFRvTm9kZSh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG1vdmVQb29sVG9Ob2RlCglpbnQgMQoJcmV0dXJuCgovLyBtb3ZlUG9vbFRvTm9kZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBwb29sQXBwSWQ6IHVpbnQ2NCwgbm9kZU51bTogdWludDY0KTogdm9pZAovLwovLyBGaW5kIHRoZSBzcGVjaWZpZWQgcG9vbCAoaW4gYW55IG5vZGUgbnVtYmVyKSBhbmQgbW92ZSBpdCB0byB0aGUgc3BlY2lmaWVkIG5vZGUuCi8vIFRoZSBwb29sIGFjY291bnQgaXMgZm9yY2VkIG9mZmxpbmUgaWYgbW92ZWQgc28gcHJpb3Igbm9kZSB3aWxsIHN0aWxsIHJ1biBmb3IgMzIwIHJvdW5kcyBidXQKLy8gbmV3IGtleSBnb2VzIG9ubGluZSBvbiBuZXcgbm9kZSBzb29uIGFmdGVyICgzMjAgcm91bmRzIGFmdGVyIGl0IGdvZXMgb25saW5lKQovLyBOby1vcCBpZiBzdWNjZXNzLCBhc3NlcnRzIGlmIG5vdCBmb3VuZCBvciBjYW4ndCBtb3ZlICAobm8gc3BhY2UgaW4gdGFyZ2V0KQovLyBbIE9OTFkgT1dORVIgT1IgTUFOQUdFUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSBwb29sQXBwSWQKLy8gQHBhcmFtIHt1aW50NjR9IG5vZGVOdW0KbW92ZVBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIgfHwKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCWR1cAoJYm56ICpza2lwX29yMwoJdHhuIFNlbmRlcgoJaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJfHwKCipza2lwX29yMzoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDcKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnQgOTAwIC8vIGhlYWRPZmZzZXQKCWludCAxOTIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgb3V0IG9mIGFsbG93YWJsZSByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDgKCTw9CgkmJgoKKnNraXBfYW5kMToKCS8vIG5vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBmb3IgKGxldCBzcmNOb2RlSWR4ID0gMDsgc3JjTm9kZUlkeCA8IE1BWF9OT0RFUzsgc3JjTm9kZUlkeCArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBzcmNOb2RlSWR4IDwgTUFYX05PREVTCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludCA4Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgPCBNQVhfUE9PTFNfUEVSX05PREUKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDMKCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyAqaWYyN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPT09IHBvb2xBcHBJZAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50IDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0Cgk9PQoJYnogKmlmMjdfZW5kCgoJLy8gKmlmMjdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTMKCS8vIGFzc2VydChub2RlTnVtIC0gMSAhPT0gc3JjTm9kZUlkeCwgImNhbid0IG1vdmUgdG8gc2FtZSBub2RlIikKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCSE9CgoJLy8gY2FuJ3QgbW92ZSB0byBzYW1lIG5vZGUKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbc3JjTm9kZUlkeF0ucG9vbEFwcElkc1tpXSA9IDAKCWludCA5MDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE4CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLmdvT2ZmbGluZT4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJnb09mZmxpbmUoKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE5CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDIzCgkvLyB0aGlzLmFkZFBvb2xUb05vZGUodmFsaWRhdG9ySWQsIHBvb2xBcHBJZCwgbm9kZU51bSkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgYWRkUG9vbFRvTm9kZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDI0CgkvLyByZXR1cm47CglyZXRzdWIKCippZjI3X2VuZDoKCipmb3JfNl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTAKCS8vIHNyY05vZGVJZHggKz0gMQoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJYiAqZm9yXzUKCipmb3JfNV9lbmQ6CgkvLyBjb3VsZG4ndCBmaW5kIHBvb2wgYXBwIGlkIGluIG5vZGVzIHRvIG1vdmUKCWVycgoJcmV0c3ViCgovLyBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKKmFiaV9yb3V0ZV9lbXB0eVRva2VuUmV3YXJkczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocmVjZWl2ZXIpIGZvciBlbXB0eVRva2VuUmV3YXJkcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0CgljYWxsc3ViIGVtcHR5VG9rZW5SZXdhcmRzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZW1wdHlUb2tlblJld2FyZHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcmVjZWl2ZXI6IEFkZHJlc3MpOiB1aW50NjQKLy8KLy8gU2VuZHMgdGhlIHJld2FyZCB0b2tlbnMgaGVsZCBpbiBwb29sIDEgdG8gc3BlY2lmaWVkIHJlY2VpdmVyLgovLyBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgdGhlIG93bmVyIHdoZW4gdGhleSB3YW50IHRvIGdldCByZXdhcmQgdG9rZW5zICdiYWNrJyB3aGljaCB0aGV5IHNlbnQgdG8KLy8gdGhlIGZpcnN0IHBvb2wgKGxpa2VseSBiZWNhdXNlIHZhbGlkYXRvciBpcyBzdW5zZXR0aW5nLiAgQW55IHRva2VucyBjdXJyZW50bHkgJ3Jlc2VydmVkJyBmb3Igc3Rha2VycyB0byBjbGFpbSB3aWxsCi8vIE5PVCBiZSBzZW50IGFzIHRoZXkgbXVzdCBiZSBoZWxkIGJhY2sgZm9yIHN0YWtlcnMgdG8gbGF0ZXIgY2xhaW0uCi8vIFsgT05MWSBPV05FUiBDQU4gQ0FMTF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gcmVjZWl2ZXIgLSB0aGUgYWNjb3VudCB0byBzZW5kIHRoZSB0b2tlbnMgdG8gKG11c3QgYWxyZWFkeSBiZSBvcHRlZC1pbiB0byB0aGUgcmV3YXJkIHRva2VuKQovLyBAcmV0dXJucyB7dWludDY0fSB0aGUgYW1vdW50IG9mIHJld2FyZCB0b2tlbiBzZW50CmVtcHR5VG9rZW5SZXdhcmRzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQzCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDcKCS8vIHJld2FyZFRva2VuSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRUb2tlbklkCglpbnQgMTUzCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0OAoJLy8gcmV3YXJkVG9rZW5IZWxkQmFjayA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjawoJaW50IDI2MAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDkKCS8vIGFzc2VydChyZXdhcmRUb2tlbklkICE9PSAwLCAidGhpcyB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIGEgcmV3YXJkIHRva2VuIGRlZmluZWQiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CglpbnQgMAoJIT0KCgkvLyB0aGlzIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgYSByZXdhcmQgdG9rZW4gZGVmaW5lZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTAKCS8vIHBvb2xPbmVBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpCglpbnQgMjY4CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUyCgkvLyB0b2tlblJld2FyZEJhbCA9IHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgktCglmcmFtZV9idXJ5IDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU2CgkvLyBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NwoJLy8gbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0KCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSA9PT0gcmV3YXJkVG9rZW5IZWxkQmFjaywKCS8vICAgICAgICdiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudCcKCS8vICAgICApCglmcmFtZV9kaWcgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCT09CgoJLy8gYmFsYW5jZSBvZiByZW1haW5pbmcgcmV3YXJkIHRva2VucyBzaG91bGQgbWF0Y2ggdGhlIGhlbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gdG9rZW5SZXdhcmRCYWw7CglmcmFtZV9kaWcgMyAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCi8vCi8vIExvZ3MgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbGlkYXRvciB0byB0aGUgc3lzdGVtLCBpdHMgaW5pdGlhbCBvd25lciBhbmQgbWFuYWdlcgovLwovLwovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyIHZlcmlmaWVzIHRoZSBwYXNzZWQgaW4ga2V5IChmcm9tIGEgc3Rha2luZyBwb29sIGNhbGxpbmcgdXMgdG8gdXBkYXRlIG1ldHJpY3MpIGlzIHZhbGlkCi8vIGFuZCBtYXRjaGVzIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIGluIG91ciBzdGF0ZS4gICdGYWtlJyBwb29scyBjb3VsZCBjYWxsIHVzIHRvIHVwZGF0ZSBvdXIgZGF0YSwgYnV0IHRoZXkKLy8gY2FuJ3QgZmFrZSB0aGUgaWRzIGFuZCBtb3N0IGltcG9ydGFudGx5IGFwcGxpY2F0aW9uIGlkKCEpIG9mIHRoZSBjYWxsZXIgdGhhdCBoYXMgdG8gbWF0Y2guCnZlcmlmeVBvb2xLZXlDYWxsZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gdGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPD0gTUFYX1BPT0xTLCAncG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMjQKCTw9CgoJLy8gcG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYzCgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sS2V5LnBvb2xJZCA+IDAgJiYgKHBvb2xLZXkucG9vbElkIGFzIHVpbnQxNikgPD0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzLAoJLy8gICAgICAgJ3Bvb2wgaWQgb3V0c2lkZSBvZiByYW5nZSBvZiBwb29scyBjcmVhdGVkIGZvciB0aGlzIHZhbGlkYXRvcicKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDI0MgoJaW50IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJPD0KCSYmCgoqc2tpcF9hbmQyOgoJLy8gcG9vbCBpZCBvdXRzaWRlIG9mIHJhbmdlIG9mIHBvb2xzIGNyZWF0ZWQgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbEtleS5wb29sQXBwSWQgPT09IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnBvb2xBcHBJZCwKCS8vICAgICAgICJUaGUgcGFzc2VkIGluIGFwcCBpZCBkb2Vzbid0IG1hdGNoIHRoZSBwYXNzZWQgaW4gaWRzIgoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk9PQoKCS8vIFRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNzYKCS8vIGFzc2VydChwb29sS2V5LmlkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCd2YWxpZGF0b3JJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE3NwoJLy8gYXNzZXJ0KHBvb2xLZXkucG9vbElkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpIGFzIHVpbnQ2NCkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgncG9vbElkJykKCWFzc2VydAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyByZXZlcmlmeU5GRE93bmVyc2hpcCh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogdm9pZAovLwovLyBUaGlzIG1ldGhvZCB2ZXJpZmllcyB0aGUgb3duZXJzaGlwIG9mIE5GRCAoTmFtZWQgRnVuY3Rpb24gRGF0YSkgYnkgYSB2YWxpZGF0b3IuCi8vIElmIHRoZSBvd25lcnNoaXAgaXMgbm8gbG9uZ2VyIHZhbGlkLCBpdCByZW1vdmVzIHRoZSBORkQgZnJvbSB0aGUgdmFsaWRhdG9yJ3MgY29uZmlndXJhdGlvbi4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3Igd2hvc2UgZGF0YSBzaG91bGQgYmUgcmUtZXZhbHVhdGVkLgpyZXZlcmlmeU5GRE93bmVyc2hpcDoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE4NwoJLy8gdmFsaWRhdG9yQ29uZmlnID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsaWRhdG9yQ29uZmlnCgoJLy8gKmlmMjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE4OAoJLy8gdmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8gIT09IDAKCWludCA3MgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMAoJIT0KCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkxCgkvLyBuZmRPd25lciA9IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzCglpbnQgNzIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gbmZkT3duZXI6IGFkZHJlc3MKCgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkzCgkvLyB2YWxpZGF0b3JDb25maWcub3duZXIgIT09IG5mZE93bmVyICYmIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSBuZmRPd25lcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglpbnQgNDAKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJJiYKCipza2lwX2FuZDM6CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IDAKCWludCA3MgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYyOV9lbmQ6CgoqaWYyOF9lbmQ6CglyZXRzdWIKCi8vIHZhbGlkYXRlQ29uZmlnKGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnKTogdm9pZAp2YWxpZGF0ZUNvbmZpZzoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjAyCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZW50cnlHYXRpbmdUeXBlID49IEdBVElOR19UWVBFX05PTkUgJiYgY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA8PSBHQVRJTkdfVFlQRV9DT05TVF9NQVgsCgkvLyAgICAgICAnZ2F0aW5nIHR5cGUgbm90IHZhbGlkJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnQgMAoJPj0KCWR1cAoJYnogKnNraXBfYW5kNAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludCA0Cgk8PQoJJiYKCipza2lwX2FuZDQ6CgkvLyBnYXRpbmcgdHlwZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjA2CgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZXBvY2hSb3VuZExlbmd0aCA+PSBNSU5fRVBPQ0hfTEVOR1RIICYmIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIDw9IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICAnZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kNQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ1OgoJLy8gZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjEwCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yID49IE1JTl9QQ1RfVE9fVkFMSURBVE9SICYmIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgPD0gTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICAnY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ2CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAxMDAwMDAwCgk8PQoJJiYKCipza2lwX2FuZDY6CgkvLyBjb21taXNzaW9uIHBlcmNlbnRhZ2Ugbm90IHZhbGlkCglhc3NlcnQKCgkvLyAqaWYzMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjE0CgkvLyBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgY29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAndmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTc3IDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAKCWFzc2VydAoKKmlmMzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMjAKCS8vIGFzc2VydChjb25maWcubWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIwOSA4CglidG9pCglpbnQgMTAwMDAwMAoJPj0KCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBvb2xzUGVyTm9kZSA+IDAgJiYgY29uZmlnLnBvb2xzUGVyTm9kZSA8PSBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICAnbnVtYmVyIG9mIHBvb2xzIHBlciBub2RlIGV4Y2VlZHMgYWxsb3dlZCBudW1iZXInCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNSAxCglidG9pCglpbnQgMAoJPgoJZHVwCglieiAqc2tpcF9hbmQ3CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludCAzCgk8PQoJJiYKCipza2lwX2FuZDc6CgkvLyBudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcgoJYXNzZXJ0CgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyNgoJLy8gY29uZmlnLnN1bnNldHRpbmdPbiAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglpbnQgMAoJIT0KCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI3CgkvLyBhc3NlcnQoY29uZmlnLnN1bnNldHRpbmdPbiA+IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLCAnc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0JykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjYgOAoJYnRvaQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJPgoKCS8vIHN1bnNldHRpbmdPbiBtdXN0IGJlIGxhdGVyIHRoYW4gbm93IGlmIHNldAoJYXNzZXJ0CgoqaWYzMV9lbmQ6CglyZXRzdWIKCi8vIGNhbGxQb29sQWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBtYnJBbXRQYWlkOiB1aW50NjQsIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4sIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkcyBhIHN0YWtlcnMgYW1vdW50IG9mIGFsZ28gdG8gYSB2YWxpZGF0b3IgcG9vbCwgdHJhbnNmZXJyaW5nIHRoZSBhbGdvIHdlIHJlY2VpdmVkIGZyb20gdGhlbSAoYWxyZWFkeSB2ZXJpZmllZAovLyBieSBvdXIgY2FsbGVyKSB0byB0aGUgc3Rha2luZyBwb29sIGFjY291bnQsIGFuZCB0aGVuIHRlbGxpbmcgaXQgYWJvdXQgdGhlIGFtb3VudCBiZWluZyBhZGRlZCBmb3IgdGhlIHNwZWNpZmllZAovLyBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCi8vIEBwYXJhbSB7dWludDY0fSBtYnJBbXRQYWlkIC0gQW1vdW50IHRoZSB1c2VyIGlzIGxlYXZpbmcgYmVoaW5kIGluIHRoZSB2YWxpZGF0b3IgdG8gcGF5IGZvciB0aGVpciBzdGFrZXIgTUJSIGNvc3QKLy8gQHBhcmFtIHtib29sZWFufSBpc05ld1N0YWtlclRvVmFsaWRhdG9yIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHZhbGlkYXRvcgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9Qcm90b2NvbCAtIGlmIHRoaXMgaXMgYSBuZXcsIGZpcnN0LXRpbWUgc3Rha2VyIHRvIHRoZSBwcm90b2NvbApjYWxsUG9vbEFkZFN0YWtlOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjQ5CgkvLyBwb29sQXBwSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1MwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5hZGRTdGFrZSwgdWludDY0Pih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyByZWNlaXZlcjogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1NAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpCglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTUKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICAvLyBUSElTIElTIEEgU0VORCBvZiB0aGUgYW1vdW50IHJlY2VpdmVkIHJpZ2h0IGJhY2sgb3V0IGFuZCBpbnRvIHRoZSBzdGFraW5nIHBvb2wgY29udHJhY3QgYWNjb3VudC4KCS8vICAgICAgICAgeyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZCwgcmVjZWl2ZXI6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5hZGRyZXNzIH0sCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgc3Rha2VkQW1vdW50UGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICBdCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglidG9pCgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2MwoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCA1MDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCA1MDAKCTwKCWJ6ICppZjMyX2VuZAoKCS8vICppZjMyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjY0CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYzMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2OAoJLy8gcG9vbE51bVN0YWtlcnMgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ251bVN0YWtlcnMnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdudW1TdGFrZXJzJykKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xOdW1TdGFrZXJzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2OQoJLy8gcG9vbEFsZ29TdGFrZWQgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3N0YWtlZCcpIGFzIHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3N0YWtlZCcpCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBwb29sQWxnb1N0YWtlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsU3Rha2VycyA9IHBvb2xOdW1TdGFrZXJzIGFzIHVpbnQxNgoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDggLy8gaGVhZE9mZnNldAoJKwoJZnJhbWVfZGlnIDEgLy8gcG9vbE51bVN0YWtlcnM6IHVpbnQ2NAoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjcxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgPSBwb29sQWxnb1N0YWtlZAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAyIC8vIHBvb2xBbGdvU3Rha2VkOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzQKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IKCWZyYW1lX2RpZyAtNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sZWFuCglieiAqaWYzM19lbmQKCgkvLyAqaWYzM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsU3Rha2VycyArPSAxCglpbnQgMjQ0CglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjMzX2VuZDoKCS8vICppZjM0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzcKCS8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJZnJhbWVfZGlnIC01IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbgoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzgKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSArPSAxCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCSsKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoqaWYzNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4MAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCArPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQKCWludCAyNTIKCWR1cAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4MQoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IHZvaWQKdXBkYXRlU3Rha2VyUG9vbFNldDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NQoJLy8gYXNzZXJ0KHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cykKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NwoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg4CgkvLyBmaXJzdEVtcHR5ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzc6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OQoJLy8gaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgNgoJPAoJYnogKmZvcl83X2VuZAoKCS8vICppZjM1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTAKCS8vIHBvb2xTZXRbaV0gPT09IHBvb2xLZXkKCWZyYW1lX2RpZyAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5Cgk9PQoJYnogKmlmMzVfZW5kCgoJLy8gKmlmMzVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTIKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMzVfZW5kOgoJLy8gKmlmMzZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5NAoJLy8gZmlyc3RFbXB0eSA9PT0gMCAmJiBwb29sU2V0W2ldLmlkID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ4CglmcmFtZV9kaWcgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCSYmCgoqc2tpcF9hbmQ4OgoJYnogKmlmMzZfZW5kCgoJLy8gKmlmMzZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTUKCS8vIGZpcnN0RW1wdHkgPSBpICsgMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKKmlmMzZfZW5kOgoKKmZvcl83X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzcKCipmb3JfN19lbmQ6CgkvLyAqaWYzN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk4CgkvLyBmaXJzdEVtcHR5ID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gTm8gZW1wdHkgc2xvdCBhdmFpbGFibGUgaW4gdGhlIHN0YWtlciBwb29sIHNldAoJZXJyCgoqaWYzN19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMwMQoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWVbZmlyc3RFbXB0eSAtIDFdID0gcG9vbEtleQoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMQoJLQoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFtib29sZWFuLCBib29sZWFuXQovLwovLyBSZW1vdmVzIGEgcG9vbCBrZXkgZnJvbSB0aGUgc3Rha2VyJ3MgYWN0aXZlIHBvb2wgc2V0IC0gZmFpbHMgaWYgbm90IGZvdW5kICghKQovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFRoZSBwb29sIGtleSB0aGV5IHNob3VsZCBiZSBzdG9yZWQgaW4KLy8KLy8gQHJldHVybiBbYm9vbGVhbiwgYm9vbGVhbl0gW2lzIHRoZSBzdGFrZXIgZ29uZSBmcm9tIEFMTCBwb29scyBvZiB0aGUgZ2l2ZW4gVkFMSURBVE9SLCBhbmQgaXMgc3Rha2VyIGdvbmUgZnJvbSBBTEwgcG9vbHNdCnJlbW92ZUZyb21TdGFrZXJQb29sU2V0OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE0CgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTUKCS8vIGluQW55UG9vbENvdW50ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTYKCS8vIGZvdW5kID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOAoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCA2Cgk8CglieiAqZm9yXzhfZW5kCgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyMAoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCT09CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgliICpmb3JfOF9jb250aW51ZQoKKmlmMzhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjMKCS8vIGluQW55UG9vbENvdW50ICs9IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaW5BbnlQb29sQ291bnQ6IHVpbnQ2NAoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjQKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHBvb2xLZXkuaWQKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vICppZjQwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjUKCS8vIHBvb2xTZXRbaV0gPT09IHBvb2xLZXkKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5Cgk9PQoJYnogKmlmNDBfZWxzZQoKCS8vICppZjQwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI2CgkvLyBmb3VuZCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyOAoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWVbaV0gPSB7IGlkOiAwLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9CglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgliICppZjQwX2VuZAoKKmlmNDBfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzMwCgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCippZjQwX2VuZDoKCippZjM5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl84CgoqZm9yXzhfZW5kOgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzNAoJLy8gIWZvdW5kCglmcmFtZV9kaWcgMiAvLyBmb3VuZDogYm9vbAoJIQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gTm8gbWF0Y2hpbmcgc2xvdCBmb3VuZCB3aGVuIHRvbGQgdG8gcmVtb3ZlIGEgcG9vbCBmcm9tIHRoZSBzdGFrZXJzIHNldAoJZXJyCgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzOAoJLy8gcmV0dXJuIFtpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPT09IDAsIGluQW55UG9vbENvdW50ID09PSAwXTsKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnQgMAoJPT0KCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludCAwCgk9PQoJc2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBhZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHBvb2xBcHBJZDogdWludDY0LCBub2RlTnVtOiB1aW50NjQpOiB2b2lkCmFkZFBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDIKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnQgOTAwIC8vIGhlYWRPZmZzZXQKCWludCAxOTIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQzCgkvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucG9vbHNQZXJOb2RlIGFzIHVpbnQ2NAoJaW50IDIyNQoJaW50IDEKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDUKCS8vIGFzc2VydChub2RlTnVtID49IDEgJiYgbm9kZU51bSA8PSBNQVhfTk9ERVMsICdub2RlIG51bWJlciBub3QgaW4gdmFsaWQgcmFuZ2UnKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCA4Cgk8PQoJJiYKCipza2lwX2FuZDk6CgkvLyBub2RlIG51bWJlciBub3QgaW4gdmFsaWQgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3I7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzk6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NwoJLy8gaSA8IG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3IKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjogdWludDY0Cgk8CglieiAqZm9yXzlfZW5kCgoJLy8gKmlmNDJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0OAoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tub2RlTnVtIC0gMV0ucG9vbEFwcElkc1tpXSA9PT0gMAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjQyX2VuZAoKCS8vICppZjQyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzUwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbbm9kZU51bSAtIDFdLnBvb2xBcHBJZHNbaV0gPSBwb29sQXBwSWQKCWludCA5MDAKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzUxCgkvLyByZXR1cm47CglyZXRzdWIKCippZjQyX2VuZDoKCipmb3JfOV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl85CgoqZm9yXzlfZW5kOgoJLy8gbm8gYXZhaWxhYmxlIHNwYWNlIGluIHNwZWNpZmllZCBub2RlIGZvciB0aGlzIHBvb2wKCWVycgoJcmV0c3ViCgovLyBkb2VzU3Rha2VyTWVldEdhdGluZyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQpOiB2b2lkCi8vCi8vIENoZWNrcyBpZiBhIHN0YWtlciBtZWV0cyB0aGUgZ2F0aW5nIHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhlIHZhbGlkYXRvci4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gVGhlIHZhbHVlIHRvIHZlcmlmeSBhZ2FpbnN0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzLgovLyBAcmV0dXJucyB7dm9pZH0gb3IgYXNzZXJ0cyBpZiByZXF1aXJlbWVudHMgbm90IG1ldC4KZG9lc1N0YWtlck1lZXRHYXRpbmc6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjUKCS8vIHR5cGUgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUKCWludCA4MAoJaW50IDEKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdHlwZTogdWludDgKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY2CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9OT05FCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDAKCT09CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NwoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWY0M19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2OQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDEgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzAKCS8vIGNvbmZpZyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnKQoJaW50IDAKCWludCAyNDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWSB8fAoJLy8gICAgICAgdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUwoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3I0CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDIKCT09Cgl8fAoKKnNraXBfb3I0OgoJZHVwCglibnogKnNraXBfb3I1CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDMKCT09Cgl8fAoKKnNraXBfb3I1OgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzgKCS8vIGFzc2VydCh2YWx1ZVRvVmVyaWZ5ICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3OQoJLy8gYmFsUmVxdWlyZWQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UKCWludCAxNDUKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzgwCgkvLyBiYWxSZXF1aXJlZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWY0NV9lbmQKCgkvLyAqaWY0NV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MQoJLy8gYmFsUmVxdWlyZWQgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCippZjQ1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzgzCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHN0YWtlci5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpKSA+PSBiYWxSZXF1aXJlZCwKCS8vICAgICAgICAgJ211c3QgaGF2ZSByZXF1aXJlZCBtaW5pbXVtIGJhbGFuY2Ugb2YgdmFsaWRhdG9yIGRlZmluZWQgdG9rZW4gdG8gYWRkIHN0YWtlJwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDEgLy8gc3Rha2VyOiBhZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoJPj0KCgkvLyBtdXN0IGhhdmUgcmVxdWlyZWQgbWluaW11bSBiYWxhbmNlIG9mIHZhbGlkYXRvciBkZWZpbmVkIHRva2VuIHRvIGFkZCBzdGFrZQoJYXNzZXJ0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0Nl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzg4CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWQoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAxCgk9PQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpLmNyZWF0b3IgPT09IGNvbmZpZy5lbnRyeUdhdGluZ0FkZHJlc3MsCgkvLyAgICAgICAgICdzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCB0aGUgdmFsaWRhdG9yIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZScKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDgxIDMyCgk9PQoKCS8vIHNwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IHRoZSB2YWxpZGF0b3IgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlCglhc3NlcnQKCippZjQ2X2VuZDoKCS8vICppZjQ3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTQKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX0FTU0VUX0lECglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDIKCT09CglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NQoJLy8gYXNzZXJ0KHZhbHVlVG9WZXJpZnkgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk2CgkvLyBmb3VuZCA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTcKCS8vIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0cwoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDMyCglkdXAKCWZyYW1lX2J1cnkgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CglpbnQgMAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yT2ZfMDoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTgKCS8vIHZhbHVlVG9WZXJpZnkgPT09IGFzc2V0SWQKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJPT0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk5CgkvLyBmb3VuZCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDQgLy8gZm91bmQ6IGJvb2wKCWIgKmZvck9mXzBfZW5kCgoqaWY0OF9lbmQ6CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMzIgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyA1IC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CgliICpmb3JPZl8wCgoqZm9yT2ZfMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwMwoJLy8gYXNzZXJ0KGZvdW5kLCAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnKQoJZnJhbWVfZGlnIDQgLy8gZm91bmQ6IGJvb2wKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBpZGVudGljYWwgdG8gdGhlIGFzc2V0IGlkIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0N19lbmQ6CgkvLyAqaWY0OV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA1CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnQgMwoJPT0KCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA4CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwgQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpLmNyZWF0b3IpLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgaXMgb25lIG9mIHRoZSBsaW5rZWQgYWRkcmVzc2VzIGluIGFuIG5mZCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoKCS8vIHNwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQKCWFzc2VydAoKKmlmNDlfZW5kOgoJLy8gKmlmNTBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxMwoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfU0VHTUVOVF9PRl9ORkQKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnQgNAoJPT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDE1CgkvLyB1c2VyT2ZmZXJlZE5GREFwcElEID0gdmFsdWVUb1ZlcmlmeQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfYnVyeSA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDE2CgkvLyBhc3NlcnQodGhpcy5pc05GREFwcElEVmFsaWQodXNlck9mZmVyZWRORkRBcHBJRCksICdwcm92aWRlZCBORkQgbXVzdCBiZSB2YWxpZCcpCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWNhbGxzdWIgaXNORkRBcHBJRFZhbGlkCgoJLy8gcHJvdmlkZWQgTkZEIG11c3QgYmUgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDE5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHJhd0J5dGVzKEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MpID09PSByYXdCeXRlcyhzdGFrZXIpIHx8CgkvLyAgICAgICAgICAgdGhpcy5pc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QodXNlck9mZmVyZWRORkRBcHBJRCwgc3Rha2VyKSwKCS8vICAgICAgICAgInByb3ZpZGVkIG5mZCBmb3IgZW50cnkgaXNuJ3Qgb3duZWQgb3IgbGlua2VkIHRvIHRoZSBzdGFrZXIiCgkvLyAgICAgICApCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWJ5dGUgMHg2OTJlNmY3NzZlNjU3MjJlNjEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9kaWcgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjYKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoJfHwKCipza2lwX29yNjoKCS8vIHByb3ZpZGVkIG5mZCBmb3IgZW50cnkgaXNuJ3Qgb3duZWQgb3IgbGlua2VkIHRvIHRoZSBzdGFrZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDI2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIGJ0b2koQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5wYXJlbnRBcHBJRCcpIGFzIGJ5dGVzKSA9PT0KCS8vICAgICAgICAgICBjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sCgkvLyAgICAgICAgICdzcGVjaWZpZWQgbmZkIG11c3QgYmUgYSBzZWdtZW50IG9mIHRoZSBuZmQgdGhlIHZhbGlkYXRvciBzcGVjaWZpZWQgYXMgYSByZXF1aXJlbWVudCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJYnl0ZSAweDY5MmU3MDYxNzI2NTZlNzQ0MTcwNzA0OTQ0IC8vICJpLnBhcmVudEFwcElEIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kucGFyZW50QXBwSUQnKQoJYXNzZXJ0CglidG9pCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJPT0KCgkvLyBzcGVjaWZpZWQgbmZkIG11c3QgYmUgYSBzZWdtZW50IG9mIHRoZSBuZmQgdGhlIHZhbGlkYXRvciBzcGVjaWZpZWQgYXMgYSByZXF1aXJlbWVudAoJYXNzZXJ0CgoqaWY1MF9lbmQ6CglyZXRzdWIKCi8vIGlzTkZEQXBwSURWYWxpZChuZmRBcHBJRDogdWludDY0KTogYm9vbGVhbgovLwovLyBDaGVja3MgaWYgdGhlIGdpdmVuIE5GRCBBcHAgaWQgaXMgdmFsaWQuICBVc2luZyBvbmx5IHRoZSBBcHAgaWQgdGhlcmUncyBubyB2YWxpZGF0aW9uIGFnYWluc3QgdGhlIG5hbWUgKGllOiB0aGF0IG5mZCBYIGlzIG5hbWUgWSkKLy8gU28gaXQncyBhc3N1bWVkIGZvciB0aGUgY2FsbGVyLCB0aGUgYXBwIGlkIGFsb25lIGlzIGZpbmUuICBUaGUgbmFtZSBpcyBmZXRjaGVkIGZyb20gdGhlIHNwZWNpZmllZCBhcHAgaWQgYW5kIHRoZSB0d28KLy8gdG9nZXRoZXIgYXJlIHVzZWQgZm9yIHZhbGlkaXR5IGNoZWNrIGNhbGwgdG8gdGhlIG5mZCByZWdpc3RyeS4KLy8KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElEIC0gVGhlIE5GRCBBcHAgaWQgdG8gdmVyaWZ5LgovLwovLyBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIE5GRCBBcHAgaWQgaXMgdmFsaWQsIG90aGVyd2lzZSBmYWxzZS4KaXNORkRBcHBJRFZhbGlkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ0NQoJLy8gdXNlck9mZmVyZWRORkROYW1lID0gQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kubmFtZScpIGFzIHN0cmluZwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWJ5dGUgMHg2OTJlNmU2MTZkNjUgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDcKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCB1c2VyT2ZmZXJlZE5GRE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ0OAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGUgMHg2OTczNWY3NjYxNmM2OTY0NWY2ZTY2NjQ1ZjYxNzA3MDY5NjQgLy8gImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUwCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ1MgoJLy8gcmV0dXJuIGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpID09PSAxOwoJaXR4biBMYXN0TG9nCglidG9pCglpbnQgMQoJPT0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KG5mZEFwcElEOiB1aW50NjQsIGFkZHJUb0ZpbmQ6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBhbiBORkRzIGxpc3Qgb2YgdmVyaWZpZWQgYWRkcmVzc2VzLgovLyBUaGUgTkZEIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFzIG9mZmljaWFsLgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIGFwcGxpY2F0aW9uIGlkLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJUb0ZpbmQgLSBUaGUgYWRkcmVzcyB0byBmaW5kIGluIHRoZSB2LmNhQWxnby4wLmFzIHByb3BlcnR5Ci8vIEByZXR1cm4ge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLgppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY2CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsncmVhZF9wcm9wZXJ0eScsICd2LmNhQWxnby4wLmFzJ10KCWJ5dGUgMHg3MjY1NjE2NDVmNzA3MjZmNzA2NTcyNzQ3OSAvLyAicmVhZF9wcm9wZXJ0eSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4NzYyZTYzNjE0MTZjNjc2ZjJlMzAyZTYxNzMgLy8gInYuY2FBbGdvLjAuYXMiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OAoJLy8gY2FBbGdvRGF0YSA9IHRoaXMuaXR4bi5sYXN0TG9nCglpdHhuIExhc3RMb2cKCWZyYW1lX2J1cnkgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjYUFsZ29EYXRhLmxlbmd0aDsgaSArPSAzMikKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzEwOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGkgPCBjYUFsZ29EYXRhLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCWxlbgoJPAoJYnogKmZvcl8xMF9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MAoJLy8gYWRkciA9IGV4dHJhY3QzKGNhQWxnb0RhdGEsIGksIDMyKQoJZnJhbWVfZGlnIDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAzMgoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMiAvLyBhZGRyOiBieXRlW10KCgkvLyAqaWY1MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcxCgkvLyBhZGRyICE9PSByYXdCeXRlcyhnbG9iYWxzLnplcm9BZGRyZXNzKSAmJiBhZGRyID09PSByYXdCeXRlcyhhZGRyVG9GaW5kKQoJZnJhbWVfZGlnIDIgLy8gYWRkcjogYnl0ZVtdCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgMiAvLyBhZGRyOiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBhZGRyVG9GaW5kOiBBZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDEwOgoJYnogKmlmNTFfZW5kCgoJLy8gKmlmNTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzIKCS8vIHJldHVybiB0cnVlOwoJaW50IDEKCWIgKmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCpyZXR1cm4KCippZjUxX2VuZDoKCipmb3JfMTBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gaSArPSAzMgoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMzIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMAoKKmZvcl8xMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3NQoJLy8gcmV0dXJuIGZhbHNlOwoJaW50IDAKCippc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBhbGdvU2F0dXJhdGlvbkxldmVsKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlIGJlZm9yZQovLyB0aGUgdmFsaWRhdG9yIGlzIGNvbnNpZGVyZWQgc2F0dXJhdGVkIC0gd2hlcmUgcmV3YXJkcyBhcmUgZGltaW5pc2hlZC4KLy8gTk9URTogdGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIHR3aWNlIC0gaGVyZSBhbmQgaW4gc3Rha2luZyBwb29sIGNvbnRyYWN0LiAgQm90aCBtdXN0IGJlIGlkZW50aWNhbC4KYWxnb1NhdHVyYXRpb25MZXZlbDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0ODQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ4NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX1NPRlRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJaW50IDEwMAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGxvd2VkU3Rha2UoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgdmFsaWRhdG9yIGJhc2VkIG9uIGEgcGVyY2VudGFnZSBvZiBhbGwgY3VycmVudCBvbmxpbmUgc3Rha2UuCi8vIEFkZGluZyBzdGFrZSBpcyBjb21wbGV0ZWx5IGJsb2NrZWQgYXQgdGhpcyBhbW91bnQuCm1heEFsbG93ZWRTdGFrZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0OTQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ5NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX0hBUkRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJaW50IDE1MAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGdvQWxsb3dlZFBlclBvb2woKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgcG9vbCBhbmQgc3RpbGwgcmVjZWl2ZSBpbmNlbnRpdmVzIC0gd2UnbGwgdHJlYXQgdGhpcyBhcyB0aGUgJ21heCBwZXIgcG9vbCcKbWF4QWxnb0FsbG93ZWRQZXJQb29sOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDQKCS8vIHJldHVybiA3MF8wMDBfMDAwXzAwMF8wMDA7CglpbnQgNzBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglpbnQgMl8wMDBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIG1pbkJhbGFuY2VGb3JBY2NvdW50KGNvbnRyYWN0czogdWludDY0LCBleHRyYVBhZ2VzOiB1aW50NjQsIGFzc2V0czogdWludDY0LCBsb2NhbEludHM6IHVpbnQ2NCwgbG9jYWxCeXRlczogdWludDY0LCBnbG9iYWxJbnRzOiB1aW50NjQsIGdsb2JhbEJ5dGVzOiB1aW50NjQpOiB1aW50NjQKbWluQmFsYW5jZUZvckFjY291bnQ6Cglwcm90byA3IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTIxCgkvLyBtaW5CYWwgPSBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFCglpbnQgMTAwMDAwCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMgoJLy8gbWluQmFsICs9IGNvbnRyYWN0cyAqIEFQUExJQ0FUSU9OX0JBU0VfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyYWN0czogdWludDY0CglpbnQgMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMwoJLy8gbWluQmFsICs9IGV4dHJhUGFnZXMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBleHRyYVBhZ2VzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI0CgkvLyBtaW5CYWwgKz0gYXNzZXRzICogQVNTRVRfSE9MRElOR19GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYXNzZXRzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI1CgkvLyBtaW5CYWwgKz0gbG9jYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gbG9jYWxJbnRzOiB1aW50NjQKCWludCAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjYKCS8vIG1pbkJhbCArPSBnbG9iYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTYgLy8gZ2xvYmFsSW50czogdWludDY0CglpbnQgMjg1MDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI3CgkvLyBtaW5CYWwgKz0gbG9jYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBsb2NhbEJ5dGVzOiB1aW50NjQKCWludCA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjgKCS8vIG1pbkJhbCArPSBnbG9iYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNyAvLyBnbG9iYWxCeXRlczogdWludDY0CglpbnQgNTAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI5CgkvLyByZXR1cm4gbWluQmFsOwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UodG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MzYKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCWludCAyNTAwCglmcmFtZV9kaWcgLTEgLy8gdG90YWxOdW1CeXRlczogdWludDY0CglpbnQgNDAwCgkqCgkrCglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQiCgltZXRob2QgImxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZCIKCW1ldGhvZCAiZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQiCgltZXRob2QgImdhcygpdm9pZCIKCW1ldGhvZCAiZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCgltZXRob2QgImdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAiZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0IgoJbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJbWV0aG9kICJnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpIgoJbWV0aG9kICJnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdIgoJbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCW1ldGhvZCAiZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sIgoJbWV0aG9kICJnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10iCgltZXRob2QgImdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCgltZXRob2QgImdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkiCgltZXRob2QgImdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NCIKCW1ldGhvZCAiYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKCW1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkIgoJbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAiYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAic2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCW1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJbWV0aG9kICJmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKSIKCW1ldGhvZCAibW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGEgKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdCAqYWJpX3JvdXRlX2dhcyAqYWJpX3JvdXRlX2dldE1ickFtb3VudHMgKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzICphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9ycyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyICphYmlfcm91dGVfZ2V0UG9vbHMgKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQgKmFiaV9yb3V0ZV9nZXRQb29sSW5mbyAqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbCAqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlIgKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQgKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvICphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyAqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQgKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3IgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRCAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyAqYWJpX3JvdXRlX2FkZFBvb2wgKmFiaV9yb3V0ZV9hZGRTdGFrZSAqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzICphYmlfcm91dGVfc3Rha2VSZW1vdmVkICphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXIgKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZSAqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQgMCAxIDggMjY4IDI0IDMyIDE4IDYgMTAwMDAwIDI2MCA3MDAgMjQyIDkwMCAzIDEwMDAwMDAgMiAxMCAyNTIKYnl0ZWNibG9jayAweDc2IDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgMHgxNTFmN2M3NSAweCAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IDB4NzM3NDYxNmI2NTY0IDB4NzM3MDczIDB4NjkyZTZmNzc2ZTY1NzIyZTYxIDB4MDAwMDAwMDAwMDAwMDAwMCAweDBhODEwMSAweDY5NmU2OTc0IDB4NmU3NTZkNTYgMHgwMCAweDYzZjNmMjhiCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwppbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjAyCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21BZGRyZXNzKCdMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRJykpCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg1ZTc5NWQyMjM1NThhZTU0YWI5MTIyNmJjOTgwYzQ1MTMxMzA2OGNjOGZhNjJkNmY5YzcwNzZiZDgwYmI2NWFmIC8vIGFkZHIgIkxaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEiCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNAoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5kZWxldGUoKQoJYnl0ZSAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIC8vICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMDUKCS8vIHRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSA9IGZhbHNlCglieXRlIDB4Njk2ZTY5NzQgLy8gImluaXQiCglpbnQgMAoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwOQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGUgMHg2OTZlNjk3NCAvLyAiaW5pdCIKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjEwCgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSAwCglieXRlIDB4NmU3NTZkNTYgLy8gIm51bVYiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjExCgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgPSAwCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjEyCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSA9IDAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5pdFN0YWtpbmdDb250cmFjdDoKCS8vIGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5pdFN0YWtpbmdDb250cmFjdCh1aW50NjQpdm9pZAoJY2FsbHN1YiBpbml0U3Rha2luZ0NvbnRyYWN0CglpbnQgMQoJcmV0dXJuCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NCk6IHZvaWQKaW5pdFN0YWtpbmdDb250cmFjdDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTcKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uY3JlYXRlKGFwcHJvdmFsUHJvZ3JhbVNpemUpCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglmcmFtZV9kaWcgLTEgLy8gYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0Cglib3hfY3JlYXRlCglwb3AKCXJldHN1YgoKLy8gbG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGE6CgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gb2Zmc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YQoJaW50IDEKCXJldHVybgoKLy8gbG9hZFN0YWtpbmdDb250cmFjdERhdGEob2Zmc2V0OiB1aW50NjQsIGRhdGE6IGJ5dGVzKTogdm9pZApsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMjEKCS8vIGFzc2VydCghdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlKQoJYnl0ZSAweDY5NmU2OTc0IC8vICJpbml0IgoJYXBwX2dsb2JhbF9nZXQKCWludCAwCglnZXRiaXQKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMjIKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0ucmVwbGFjZShvZmZzZXQsIGRhdGEpCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdDoKCS8vIGV4ZWN1dGUgZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKCWNhbGxzdWIgZmluYWxpemVTdGFraW5nQ29udHJhY3QKCWludCAxCglyZXR1cm4KCi8vIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCk6IHZvaWQKZmluYWxpemVTdGFraW5nQ29udHJhY3Q6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjI2CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSB0cnVlCglieXRlIDB4Njk2ZTY5NzQgLy8gImluaXQiCglpbnQgMQoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50IDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGdldE1ickFtb3VudHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0TWJyQW1vdW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0TWJyQW1vdW50cygpOiBNYnJBbW91bnRzCi8vCi8vIFJldHVybnMgdGhlIE1CUiBhbW91bnRzIG5lZWRlZCBmb3IgdmFyaW91cyBhY3Rpb25zOgovLyBbCi8vIGFkZFZhbGlkYXRvck1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgdmFsaWRhdG9yIC0gcGFpZCB0byB2YWxpZGF0b3IgY29udHJhY3QKLy8gYWRkUG9vbE1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgcG9vbCAtIHBhaWQgdG8gdmFsaWRhdG9yCi8vIHBvb2xJbml0TWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGluaXRTdG9yYWdlKCkgb2YgcG9vbCAtIHBhaWQgdG8gcG9vbCBpdHNlbGYKLy8gYWRkU3Rha2VyTWJyOiB1aW50NjQgLSBtYnIgc3Rha2VyIG5lZWRzIHRvIGFkZCB0byBmaXJzdCBzdGFraW5nIHBheW1lbnQgKHN0YXlzIHcvIHZhbGlkYXRvcikKLy8gXQpnZXRNYnJBbW91bnRzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI0NgoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGFkZFZhbGlkYXRvck1icjogdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgxIC8qIHYgcHJlZml4ICovICsgbGVuPFZhbGlkYXRvcklkVHlwZT4oKSArIGxlbjxWYWxpZGF0b3JJbmZvPigpKSwKCS8vICAgICAgIGFkZFBvb2xNYnI6IHRoaXMubWluQmFsYW5jZUZvckFjY291bnQoCgkvLyAgICAgICAgIDEsCgkvLyAgICAgICAgIC8vIHdlIGNvdWxkIGNhbGN1bGF0ZSB0aGlzIGRpcmVjdGx5IGJ5IHJlZmVyZW5jaW5nIHRoZSBzaXplIG9mIHN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtIGJ1dCBpdCB3b3VsZAoJLy8gICAgICAgICAvLyBtZWFuIG91ciBjYWxsZXJzIHdvdWxkIGhhdmUgdG8gcmVmZXJlbmNlIHRoZSBib3ggQU5EIGJ1eSB1cCBpL28gLSBzbyBqdXN0IGdvIG1heCBvbiBleHRyYSBwYWdlcwoJLy8gICAgICAgICAzLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICAgIFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCgkvLyAgICAgICApLAoJLy8gICAgICAgcG9vbEluaXRNYnI6CgkvLyAgICAgICAgIEFMR09SQU5EX0FDQ09VTlRfTUlOX0JBTEFOQ0UgKwoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKSwKCS8vICAgICAgIGFkZFN0YWtlck1icjoKCS8vICAgICAgICAgLy8gaG93IG11Y2ggdG8gY2hhcmdlIGZvciBmaXJzdCB0aW1lIGEgc3Rha2VyIGFkZHMgc3Rha2UgLSBzaW5jZSB3ZSBhZGQgYSB0cmFja2luZyBib3ggcGVyIHN0YWtlcgoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDMgLyogJ3NwcycgcHJlZml4ICovICsgbGVuPEFkZHJlc3M+KCkgKyBsZW48VmFsaWRhdG9yUG9vbEtleT4oKSAqIE1BWF9QT09MU19QRVJfU1RBS0VSKSwgLy8gc2l6ZSBvZiBrZXkgKyBhbGwgdmFsdWVzCgkvLyAgICAgfTsKCXB1c2hpbnQgMTEwMQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJaW50IDMKCXB1c2hpbnQgMTEKCWludCAwCglkdXBuIDIKCWludCAzCglpbnQgMQoJY2FsbHN1YiBtaW5CYWxhbmNlRm9yQWNjb3VudAoJaXRvYgoJY29uY2F0CglpbnQgMTAwMDAwCglwdXNoaW50IDEyODA3CgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCgkrCglpdG9iCgljb25jYXQKCXB1c2hpbnQgMTc5CgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCglpdG9iCgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0UHJvdG9jb2xDb25zdHJhaW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0UHJvdG9jb2xDb25zdHJhaW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFByb3RvY29sQ29uc3RyYWludHMoKTogQ29uc3RyYWludHMKLy8KLy8gUmV0dXJucyB0aGUgcHJvdG9jb2wgY29uc3RyYWludHMgc28gdGhhdCBVSXMgY2FuIGxpbWl0IHdoYXQgdXNlcnMgc3BlY2lmeSBmb3IgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KZ2V0UHJvdG9jb2xDb25zdHJhaW50czoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyNzIKCS8vIHJldHVybiB7CgkvLyAgICAgICBlcG9jaFBheW91dFJvdW5kc01pbjogTUlOX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgIGVwb2NoUGF5b3V0Um91bmRzTWF4OiBNQVhfRVBPQ0hfTEVOR1RILAoJLy8gICAgICAgbWluUGN0VG9WYWxpZGF0b3JXRm91ckRlY2ltYWxzOiBNSU5fUENUX1RPX1ZBTElEQVRPUiwKCS8vICAgICAgIG1heFBjdFRvVmFsaWRhdG9yV0ZvdXJEZWNpbWFsczogTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICBtaW5FbnRyeVN0YWtlOiBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwKCS8vICAgICAgIG1heEFsZ29QZXJQb29sOiB0aGlzLm1heEFsZ29BbGxvd2VkUGVyUG9vbCgpLAoJLy8gICAgICAgbWF4QWxnb1BlclZhbGlkYXRvcjogdGhpcy5tYXhBbGxvd2VkU3Rha2UoKSwKCS8vICAgICAgIGFtdENvbnNpZGVyZWRTYXR1cmF0ZWQ6IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpLAoJLy8gICAgICAgbWF4Tm9kZXM6IE1BWF9OT0RFUywKCS8vICAgICAgIG1heFBvb2xzUGVyTm9kZTogTUFYX1BPT0xTX1BFUl9OT0RFLAoJLy8gICAgICAgbWF4U3Rha2Vyc1BlclBvb2w6IE1BWF9TVEFLRVJTX1BFUl9QT09MLAoJLy8gICAgIH07CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDBmNDI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGY0MjQwMDAwMDAwMDAwMDBmNDI0MAoJY2FsbHN1YiBtYXhBbGdvQWxsb3dlZFBlclBvb2wKCWl0b2IKCWNvbmNhdAoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCWl0b2IKCWNvbmNhdAoJY2FsbHN1YiBhbGdvU2F0dXJhdGlvbkxldmVsCglpdG9iCgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMwoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGM4Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0CiphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9yczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQKCWNhbGxzdWIgZ2V0TnVtVmFsaWRhdG9ycwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE51bVZhbGlkYXRvcnMoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHZhbGlkYXRvcnMKZ2V0TnVtVmFsaWRhdG9yczoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyOTIKCS8vIHJldHVybiB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWU7CglieXRlIDB4NmU3NTZkNTYgLy8gIm51bVYiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yQ29uZmlnCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0VmFsaWRhdG9yQ29uZmlnKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBWYWxpZGF0b3JDb25maWcKZ2V0VmFsaWRhdG9yQ29uZmlnOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI5NwoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnOwoJaW50IDAKCWludCAyNDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvclN0YXRlKHVpbnQ2NCkodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yU3RhdGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JTdGF0ZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogVmFsaWRhdG9yQ3VyU3RhdGUKZ2V0VmFsaWRhdG9yU3RhdGU6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzAyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZTsKCWludCAyNDIgLy8gaGVhZE9mZnNldAoJcHVzaGludCAyNgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFtBZGRyZXNzLCBBZGRyZXNzXQpnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzA3CgkvLyByZXR1cm4gW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLCB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyXTsKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglwdXNoaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFBvb2xzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdCgljYWxsc3ViIGdldFBvb2xzCglkdXAKCWxlbgoJaW50IDE4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0UG9vbHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xJbmZvW10KLy8KLy8gUmV0dXJuIGxpc3Qgb2YgYWxsIHBvb2xzIGZvciB0aGlzIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkCi8vIEByZXR1cm4ge1Bvb2xJbmZvW119IC0gYXJyYXkgb2YgcG9vbHMKLy8gTm90IGNhbGxhYmxlIGZyb20gb3RoZXIgY29udHJhY3RzIGJlY2F1c2UgPjFLIHJldHVybiBidXQgY2FuIGJlIGNhbGxlZCB3LyBzaW11bGF0ZSB3aGljaCBidW1wcyBsb2cgcmV0dXJucwpnZXRQb29sczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzE4CgkvLyByZXREYXRhOiBQb29sSW5mb1tdID0gW10KCWJ5dGUgMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOQoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgNDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjAKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMjQKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMQoJLy8gcG9vbFNldFtpXS5wb29sQXBwSWQgPT09IDAKCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgliICpmb3JfMF9lbmQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNQoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDE4CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjcKCS8vIHJldHVybiByZXREYXRhOwoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZ2V0UG9vbEFwcElkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBwb29sSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBnZXRQb29sQXBwSWQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRQb29sQXBwSWQodmFsaWRhdG9ySWQ6IHVpbnQ2NCwgcG9vbElkOiB1aW50NjQpOiB1aW50NjQKZ2V0UG9vbEFwcElkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMzNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbElkICE9PSAwICYmIHBvb2xJZCA8PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzLmxlbmd0aCwKCS8vICAgICAgICdwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50IDAKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50IDI0Cgk8PQoJJiYKCipza2lwX2FuZDA6CgkvLyBwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM5CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sSWQgLSAxXS5wb29sQXBwSWQ7CglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMAoJKwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglyZXRzdWIKCi8vIGdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoqYWJpX3JvdXRlX2dldFBvb2xJbmZvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBvb2xLZXkpIGZvciBnZXRQb29sSW5mbyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBnZXRQb29sSW5mbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0UG9vbEluZm8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRQb29sSW5mbyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogUG9vbEluZm8KZ2V0UG9vbEluZm86Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzQ0CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV07CglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIHN0YWtlIHBlciBwb29sIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gTm9ybWFsbHkgdGhpcyB3b3VsZCBiZSBtYXhBbGdvUGVyUG9vbCwgYnV0IGl0IHNob3VsZCBhbHNvIG5ldmVyIGdvIGFib3ZlIE1heEFsbG93ZWRTdGFrZSAvIG51bVBvb2xzIHNvCi8vIGFzIHBvb2xzIGFyZSBhZGRlZCB0aGUgbWF4IGFsbG93ZWQgcGVyIHBvb2wgY2FuIHJlZHVjZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCmdldEN1ck1heFN0YWtlUGVyUG9vbDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU1CgkvLyBudW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NgoJLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMgPSB0aGlzLm1heEFsbG93ZWRTdGFrZSgpIC8gbnVtUG9vbHMKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CgkvCglmcmFtZV9idXJ5IDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTcKCS8vIG1heFBlclBvb2w6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1heEFsZ29QZXJQb29sCglwdXNoaW50IDIxNwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTgKCS8vIG1heFBlclBvb2wgPT09IDAKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1OQoJLy8gbWF4UGVyUG9vbCA9IHRoaXMubWF4QWxnb0FsbG93ZWRQZXJQb29sKCkKCWNhbGxzdWIgbWF4QWxnb0FsbG93ZWRQZXJQb29sCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoqaWYxX2VuZDoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzYxCgkvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scyA8IG1heFBlclBvb2wKCWZyYW1lX2RpZyAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjIKCS8vIG1heFBlclBvb2wgPSBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scwoJZnJhbWVfZGlnIDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzY0CgkvLyByZXR1cm4gbWF4UGVyUG9vbDsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9kb2VzU3Rha2VyTmVlZFRvUGF5TUJSOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgZG9lc1N0YWtlck5lZWRUb1BheU1CUiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoc3Rha2VyOiBBZGRyZXNzKTogYm9vbGVhbgovLwovLyBIZWxwZXIgY2FsbGVycyBjYW4gY2FsbCB3LyBzaW11bGF0ZSB0byBkZXRlcm1pbmUgaWYgJ0FkZFN0YWtlcicgTUJSIHNob3VsZCBiZSBpbmNsdWRlZCB3LyBzdGFraW5nIGFtb3VudAovLyBAcGFyYW0gc3Rha2VyCmRvZXNTdGFrZXJOZWVkVG9QYXlNQlI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzczCgkvLyByZXR1cm4gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0czsKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglyZXRzdWIKCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChhZGRyZXNzKSh1aW50NjQsdWludDY0LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KCWNhbGxzdWIgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50CglkdXAKCWxlbgoJaW50IDI0CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KHN0YWtlcjogQWRkcmVzcyk6IFZhbGlkYXRvclBvb2xLZXlbXQovLwovLyBSZXRyaWV2ZXMgdGhlIHN0YWtlZCBwb29scyBmb3IgYW4gYWNjb3VudC4KLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWNjb3VudCB0byByZXRyaWV2ZSBzdGFrZWQgcG9vbHMgZm9yLgovLyBAcmV0dXJuIHtWYWxpZGF0b3JQb29sS2V5W119IC0gVGhlIGFycmF5IG9mIHN0YWtlZCBwb29scyBmb3IgdGhlIGFjY291bnQuCmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4MwoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg0CgkvLyByZXR1cm4gW107CglieXRlIDB4CgliICpnZXRTdGFrZWRQb29sc0ZvckFjY291bnQqcmV0dXJuCgoqaWYzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODYKCS8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXSA9IFtdCglieXRlIDB4CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NwoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgcG9vbFNldC5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzE6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpIDwgcG9vbFNldC5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDYKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OQoJLy8gcG9vbFNldFtpXS5pZCAhPT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCSE9CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MAoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKKmlmNF9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCipnZXRTdGFrZWRQb29sc0ZvckFjY291bnQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfZ2V0VG9rZW5QYXlvdXRSYXRpbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoJY2FsbHN1YiBnZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0VG9rZW5QYXlvdXRSYXRpbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gUmV0cmlldmVzIHRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yIC0gcmV0dXJuaW5nIHRoZSBwb29sIHJhdGlvcyBvZiB3aG9sZSBzbyB0aGF0IHRva2VuCi8vIHBheW91dHMgYWNyb3NzIHBvb2xzIGNhbiBiZSBiYXNlZCBvbiBhIHN0YWJsZSBzbmFwaG9zdCBvZiBzdGFrZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEByZXR1cm4ge1Bvb2xUb2tlblBheW91dFJhdGlvfSAtIFRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIHRoZSB2YWxpZGF0b3IuCmdldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDA1CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50IDcwMCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDIwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoqYWJpX3JvdXRlX2dldE5vZGVQb29sQXNzaWdubWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkKCWNhbGxzdWIgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE5vZGVQb29sQXNzaWdubWVudHModmFsaWRhdG9ySWQ6IHVpbnQ2NCk6IE5vZGVQb29sQXNzaWdubWVudENvbmZpZwpnZXROb2RlUG9vbEFzc2lnbm1lbnRzOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAidGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyB0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBkb2Vzbid0IGV4aXN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDEyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzOwoJaW50IDkwMCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDE5MgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0TkZEUmVnaXN0cnlJRCgpdWludDY0CiphYmlfcm91dGVfZ2V0TkZEUmVnaXN0cnlJRDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRORkRSZWdpc3RyeUlEKCl1aW50NjQKCWNhbGxzdWIgZ2V0TkZEUmVnaXN0cnlJRAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE5GRFJlZ2lzdHJ5SUQoKTogdWludDY0CmdldE5GRFJlZ2lzdHJ5SUQ6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDE2CgkvLyByZXR1cm4gdGhpcy5uZmRSZWdpc3RyeUFwcElkOwoJaW50YyAwIC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJcmV0c3ViCgovLyBhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0CiphYmlfcm91dGVfYWRkVmFsaWRhdG9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyNDIKCT09CgoJLy8gYXJndW1lbnQgMCAoY29uZmlnKSBmb3IgYWRkVmFsaWRhdG9yIG11c3QgYmUgYSAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDIgKG1iclBheW1lbnQpIGZvciBhZGRWYWxpZGF0b3IgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0CgljYWxsc3ViIGFkZFZhbGlkYXRvcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFZhbGlkYXRvcihtYnJQYXltZW50OiBQYXlUeG4sIG5mZE5hbWU6IHN0cmluZywgY29uZmlnOiBWYWxpZGF0b3JDb25maWcpOiB1aW50NjQKLy8KLy8gQWRkcyBhIG5ldyB2YWxpZGF0b3IKLy8gUmVxdWlyZXMgYXQgbGVhc3QgMTAgQUxHTyBhcyB0aGUgJ2ZlZScgZm9yIHRoZSB0cmFuc2FjdGlvbiB0byBoZWxwIGRpc3N1YWRlIHNwYW1tZWQgdmFsaWRhdG9yIGFkZHMuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBtYnJQYXltZW50IHBheW1lbnQgZnJvbSBjYWxsZXIgd2hpY2ggY292ZXJzIG1iciBpbmNyZWFzZSBvZiBuZXcgdmFsaWRhdG9yIHN0b3JhZ2UKLy8gQHBhcmFtIHtzdHJpbmd9IG5mZE5hbWUgKE9wdGlvbmFsKSBOYW1lIG9mIG5mZCAodXNlZCBhcyBkb3VibGUtY2hlY2sgYWdhaW5zdCBpZCBzcGVjaWZpZWQgaW4gY29uZmlnKQovLyBAcGFyYW0ge1ZhbGlkYXRvckNvbmZpZ30gY29uZmlnIFZhbGlkYXRvckNvbmZpZyBzdHJ1Y3QKLy8gQHJldHVybnMge3VpbnQ2NH0gdmFsaWRhdG9yIGlkCmFkZFZhbGlkYXRvcjoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQyOAoJLy8gdGhpcy52YWxpZGF0ZUNvbmZpZyhjb25maWcpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWNhbGxzdWIgdmFsaWRhdGVDb25maWcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDI5CgkvLyBhc3NlcnQoY29uZmlnLm93bmVyICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDggMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzAKCS8vIGFzc2VydChjb25maWcubWFuYWdlciAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA0MCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gY29uZmlnLm93bmVyLCAnc2VuZGVyIG11c3QgYmUgb3duZXIgdG8gYWRkIG5ldyB2YWxpZGF0b3InKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDggMzIKCT09CgoJLy8gc2VuZGVyIG11c3QgYmUgb3duZXIgdG8gYWRkIG5ldyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzMKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IGFtb3VudDogdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkVmFsaWRhdG9yTWJyIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6InRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFZhbGlkYXRvck1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM1CgkvLyBhc3NlcnQobWJyUGF5bWVudC5mZWUgPiAxMCAqIDEwMDAwMDAsICdmZWUgbXVzdCBiZSAxMCBBTEdPIG9yIG1vcmUgdG8gcHJldmVudCBzcGFtbWluZyBvZiB2YWxpZGF0b3JzJykKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEZlZQoJcHVzaGludCAxMDAwMDAwMAoJPgoKCS8vIGZlZSBtdXN0IGJlIDEwIEFMR08gb3IgbW9yZSB0byBwcmV2ZW50IHNwYW1taW5nIG9mIHZhbGlkYXRvcnMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzgKCS8vIHZhbGlkYXRvcklkID0gdGhpcy5udW1WYWxpZGF0b3JzLnZhbHVlICsgMQoJYnl0ZSAweDZlNzU2ZDU2IC8vICJudW1WIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzkKCS8vIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSA9IHZhbGlkYXRvcklkCglieXRlIDB4NmU3NTZkNTYgLy8gIm51bVYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDEKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuY3JlYXRlKCkKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJcHVzaGludCAxMDkyCglib3hfY3JlYXRlCglwb3AKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZyA9IGNvbmZpZwoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmlkID0gdmFsaWRhdG9ySWQKCWludCAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDYKCS8vIGNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWY1X2VuZAoKCS8vICppZjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKGNvbmZpZy5uZmRGb3JJbmZvKV0sCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXSwKCS8vICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUwCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihjb25maWcubmZkRm9ySW5mbyldCglieXRlIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IC8vICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTMKCS8vIGFzc2VydChidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMSwgInByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZCIpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWludCAxCgk9PQoKCS8vIHByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY1X2VuZDoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDYxCgkvLyBjb25maWcuZW50cnlHYXRpbmdUeXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMgfHwKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50IDMKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglwdXNoaW50IDQKCT09Cgl8fAoKKnNraXBfb3IwOgoJYnogKmlmNl9lbmQKCgkvLyAqaWY2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjUKCS8vIGFzc2VydCh0aGlzLmlzTkZEQXBwSURWYWxpZChjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0pLCAncHJvdmlkZWQgTkZEIEFwcCBpZCBmb3IgZ2F0aW5nIG11c3QgYmUgdmFsaWQgTkZEJykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJY2FsbHN1YiBpc05GREFwcElEVmFsaWQKCgkvLyBwcm92aWRlZCBORkQgQXBwIGlkIGZvciBnYXRpbmcgbXVzdCBiZSB2YWxpZCBORkQKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDY4CgkvLyByZXR1cm4gdmFsaWRhdG9ySWQ7CglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck1hbmFnZXI6CgkvLyBtYW5hZ2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1hbmFnZXIpIGZvciBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yTWFuYWdlcgoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBtYW5hZ2VyOiBBZGRyZXNzKTogdm9pZAovLwovLyBDaGFuZ2VzIHRoZSBWYWxpZGF0b3IgbWFuYWdlciBmb3IgYSBzcGVjaWZpYyBWYWxpZGF0b3IgaWQuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IgdG8gY2hhbmdlIHRoZSBtYW5hZ2VyIGZvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSBtYW5hZ2VyIC0gVGhlIG5ldyBtYW5hZ2VyIGFkZHJlc3MuCmNoYW5nZVZhbGlkYXRvck1hbmFnZXI6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDc5CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ4MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciA9IG1hbmFnZXIKCXB1c2hpbnQgNDAKCWZyYW1lX2RpZyAtMiAvLyBtYW5hZ2VyOiBBZGRyZXNzCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvOgoJLy8gc3Vuc2V0dGluZ1RvOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdW5zZXR0aW5nT246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvCglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHN1bnNldHRpbmdPbjogdWludDY0LCBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgc3Vuc2V0IGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nT24gLSBUaGUgbmV3IHN1bnNldCB0aW1lc3RhbXAuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nVG8gLSBUaGUgbmV3IHN1bnNldCB0byB2YWxpZGF0b3IgaWQuCmNoYW5nZVZhbGlkYXRvclN1bnNldEluZm86Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDk1CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ5OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID0gc3Vuc2V0dGluZ09uCglwdXNoaW50IDIyNgoJZnJhbWVfZGlnIC0yIC8vIHN1bnNldHRpbmdPbjogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MDAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdUbyA9IHN1bnNldHRpbmdUbwoJcHVzaGludCAyMzQKCWZyYW1lX2RpZyAtMyAvLyBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JORkQ6CgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvck5GRAoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5mZEFwcElEOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKLy8KLy8gQ2hhbmdlcyB0aGUgTkZEIGZvciBhIHZhbGlkYXRvciBpbiB0aGUgdmFsaWRhdG9yTGlzdCBjb250cmFjdC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBhcHBsaWNhdGlvbiBpZCBvZiB0aGUgTkZEIHRvIGFzc2lnbiB0byB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBORkQgKHdoaWNoIG11c3QgbWF0Y2gpCmNoYW5nZVZhbGlkYXRvck5GRDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTE4CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihuZmRBcHBJRCldLAoJLy8gICAgICAgYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCldLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTIwCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihuZmRBcHBJRCldCglieXRlIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IC8vICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0zIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gKEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzKSwKCS8vICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWJ5dGUgMHg2OTJlNmY3NzZlNjU3MjJlNjEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykKCWFzc2VydAoJPT0KCgkvLyBJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm5mZEZvckluZm8gPSBuZmRBcHBJRAoJcHVzaGludCA3MgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCS8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNvbW1pc3Npb25BZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MKCWludCAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzKTogdm9pZAovLwovLyBDaGFuZ2UgdGhlIGNvbW1pc3Npb24gYWRkcmVzcyB0aGF0IHZhbGlkYXRvciByZXdhcmRzIGFyZSBzZW50IHRvLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCmNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUzNgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NDAKCS8vIGFzc2VydChjb21taXNzaW9uQWRkcmVzcyAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU0MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgPSBjb21taXNzaW9uQWRkcmVzcwoJcHVzaGludCAxNzcKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCS8vIFJld2FyZFBlclBheW91dDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglidG9pCgoJLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBFbnRyeUdhdGluZ0Fzc2V0czogdWludDY0WzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKEVudHJ5R2F0aW5nQXNzZXRzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgdWludDY0WzRdCglhc3NlcnQKCgkvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoRW50cnlHYXRpbmdBZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gRW50cnlHYXRpbmdUeXBlOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDQgKEVudHJ5R2F0aW5nVHlwZSkgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbwoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4LCBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MsIEVudHJ5R2F0aW5nQXNzZXRzOiBTdGF0aWNBcnJheTx1aW50NjQsIDQ+LCBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NCwgUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQpOiB2b2lkCi8vCi8vIEFsbG93IHRoZSBhZGRpdGlvbmFsIHJld2FyZHMgKGdhdGluZyBlbnRyeSwgYWRkaXRpb25hbCB0b2tlbiByZXdhcmRzKSBpbmZvcm1hdGlvbiBiZSBjaGFuZ2VkIGF0IHdpbGwuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCXByb3RvIDYgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NTYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPSBFbnRyeUdhdGluZ1R5cGUKCXB1c2hpbnQgODAKCWZyYW1lX2RpZyAtMiAvLyBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4CglpdG9iCglleHRyYWN0IDcgMQoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ0FkZHJlc3MgPSBFbnRyeUdhdGluZ0FkZHJlc3MKCXB1c2hpbnQgODEKCWZyYW1lX2RpZyAtMyAvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZW50cnlHYXRpbmdBc3NldHMgPSBFbnRyeUdhdGluZ0Fzc2V0cwoJcHVzaGludCAxMTMKCWZyYW1lX2RpZyAtNCAvLyBFbnRyeUdhdGluZ0Fzc2V0czogU3RhdGljQXJyYXk8dWludDY0LCA0PgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UgPSBHYXRpbmdBc3NldE1pbkJhbGFuY2UKCXB1c2hpbnQgMTQ1CglmcmFtZV9kaWcgLTUgLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucmV3YXJkUGVyUGF5b3V0ID0gUmV3YXJkUGVyUGF5b3V0CglwdXNoaW50IDE2MQoJZnJhbWVfZGlnIC02IC8vIFJld2FyZFBlclBheW91dDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBhZGRQb29sKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9hZGRQb29sOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBub2RlTnVtOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCAxIC8vIHBheQoJPT0KCgkvLyBhcmd1bWVudCAyIChtYnJQYXltZW50KSBmb3IgYWRkUG9vbCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRQb29sCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkUG9vbChtYnJQYXltZW50OiBQYXlUeG4sIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5vZGVOdW06IHVpbnQ2NCk6IFZhbGlkYXRvclBvb2xLZXkKLy8KLy8gQWRkcyBhIG5ldyBwb29sIHRvIGEgdmFsaWRhdG9yJ3MgcG9vbCBzZXQsIHJldHVybmluZyB0aGUgJ2tleScgdG8gcmVmZXJlbmNlIHRoZSBwb29sIGluIHRoZSBmdXR1cmUgZm9yIHN0YWtpbmcsIGV0Yy4KLy8gVGhlIGNhbGxlciBtdXN0IHBheSB0aGUgY29zdCBvZiB0aGUgdmFsaWRhdG9ycyBNQlIgaW5jcmVhc2UgYXMgd2VsbCBhcyB0aGUgTUJSIHRoYXQgd2lsbCBiZSBuZWVkZWQgZm9yIHRoZSBwb29sIGl0c2VsZi4KLy8KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIGNhbGwgXQovLyBAcGFyYW0ge1BheVR4bn0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgYWRkaW5nIGEgbmV3IHBvb2wKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkIGlzIGlkIG9mIHZhbGlkYXRvciB0byBwb29sIHRvIChtdXN0IGJlIG93bmVyIG9yIG1hbmFnZXIpCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtIGlzIG5vZGUgbnVtYmVyIHRvIGFkZCB0bwovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbCBrZXkgdG8gY3JlYXRlZCBwb29sCmFkZFBvb2w6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU4MQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciB8fAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJZHVwCglibnogKnNraXBfb3IxCgl0eG4gU2VuZGVyCglwdXNoaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJfHwKCipza2lwX29yMToKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU4OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgYW1vdW50OiB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRQb29sTWJyLCByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgOCA4CglidG9pCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0aGlzLmdldE1ickFtb3VudHMoKS5hZGRQb29sTWJyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTkyCgkvLyBudW1Qb29sczogdWludDY0ID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIG51bVBvb2xzOiB1aW50NjQKCgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MwoJLy8gKG51bVBvb2xzIGFzIHVpbnQ2NCkgPj0gTUFYX1BPT0xTCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnQgMjQKCT49CglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gYWxyZWFkeSBhdCBtYXggcG9vbCBzaXplCgllcnIKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5NgoJLy8gbnVtUG9vbHMgKz0gMQoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5OQoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcCwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogU3Rha2luZ1Bvb2wuY2xlYXJQcm9ncmFtKCksCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgLy8gY3JlYXRpbmdDb250cmFjdElELCB2YWxpZGF0b3JJZCwgcG9vbElkLCBtaW5FbnRyeVN0YWtlCgkvLyAgICAgICAgIG1ldGhvZCgnY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQnKSwKCS8vICAgICAgICAgaXRvYih0aGlzLmFwcC5pZCksCgkvLyAgICAgICAgIGl0b2IodmFsaWRhdG9ySWQpLAoJLy8gICAgICAgICBpdG9iKG51bVBvb2xzIGFzIHVpbnQ2NCksCgkvLyAgICAgICAgIGl0b2IodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSksCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwMAoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcAoJaW50IDAgLy8gTm9PcAoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjAxCgkvLyBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoNDA5NiwgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplIC0gNDA5NiksCgkvLyAgICAgICBdCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglpbnQgMAoJcHVzaGludCA0MDk2Cglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZSAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIC8vICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJcHVzaGludCA0MDk2CglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUKCWFzc2VydAoJcHVzaGludCA0MDk2CgktCglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDUKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBTdGFraW5nUG9vbC5jbGVhclByb2dyYW0oKQoJcHVzaGJ5dGVzIDB4MGEKCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA2CgkvLyBnbG9iYWxOdW1VaW50OiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQKCXB1c2hpbnQgMTEKCWl0eG5fZmllbGQgR2xvYmFsTnVtVWludAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDcKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCWludCAzCglpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDgKCS8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzCglpbnQgMwoJaXR4bl9maWVsZCBFeHRyYVByb2dyYW1QYWdlcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDkKCS8vIGFwcGxpY2F0aW9uQXJnczogWwoJLy8gICAgICAgICAvLyBjcmVhdGluZ0NvbnRyYWN0SUQsIHZhbGlkYXRvcklkLCBwb29sSWQsIG1pbkVudHJ5U3Rha2UKCS8vICAgICAgICAgbWV0aG9kKCdjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCcpLAoJLy8gICAgICAgICBpdG9iKHRoaXMuYXBwLmlkKSwKCS8vICAgICAgICAgaXRvYih2YWxpZGF0b3JJZCksCgkvLyAgICAgICAgIGl0b2IobnVtUG9vbHMgYXMgdWludDY0KSwKCS8vICAgICAgICAgaXRvYih0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlKSwKCS8vICAgICAgIF0KCXB1c2hieXRlcyAweDU5ZTkwYWE2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hpbnQgMjA5CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgPSBudW1Qb29scyBhcyB1aW50MTYKCWludCAyNDIKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjIKCS8vIHBvb2xBcHBJZCA9IHRoaXMuaXR4bi5jcmVhdGVkQXBwbGljYXRpb25JRC5pZAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xBcHBJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1tudW1Qb29scyAtIDFdLnBvb2xBcHBJZCA9IHBvb2xBcHBJZAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMSAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjI0CgkvLyB0aGlzLmFkZFBvb2xUb05vZGUodmFsaWRhdG9ySWQsIHBvb2xBcHBJZCwgbm9kZU51bSkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIHBvb2xBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBhZGRQb29sVG9Ob2RlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYzMgoJLy8gcmV0dXJuIHsgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IG51bVBvb2xzIGFzIHVpbnQ2NCwgcG9vbEFwcElkOiB0aGlzLml0eG4hLmNyZWF0ZWRBcHBsaWNhdGlvbklELmlkIH07CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglpdG9iCgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGFkZFN0YWtlKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9hZGRTdGFrZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRTdGFrZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIHN0YWtlIHRvIGEgdmFsaWRhdG9yIHBvb2wuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gb25seSBpZiB2YWxpZGF0b3IgaGFzIGdhdGluZyB0byBlbnRlciAtIHRoaXMgaXMgYXNzZXQgaWQgb3IgbmZkIGlkIHRoYXQgY29ycmVzcG9uZHMgdG8gZ2F0aW5nLgovLyBUeG4gc2VuZGVyIGlzIGZhY3RvcmVkIGluIGFzIHdlbGwgaWYgdGhhdCBpcyBwYXJ0IG9mIGdhdGluZy4KLy8gKiBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KYWRkU3Rha2U6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA1CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0NQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID4gMAoJcHVzaGludCAyMjYKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT4KCWJ6ICppZjhfZW5kCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjQ5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdPbiA8IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLAoJLy8gICAgICAgICAiY2FuJ3Qgc3Rha2Ugd2l0aCBhIHZhbGlkYXRvciB0aGF0IGlzIHBhc3QgaXRzIHN1bnNldHRpbmcgdGltZSIKCS8vICAgICAgICkKCXB1c2hpbnQgMjI2CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCTwKCgkvLyBjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lCglhc3NlcnQKCippZjhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1NQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1OQoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogc3Rha2VyLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJzdGFrZXIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjY2CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCA8IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICAndG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwJwoJLy8gICAgICkKCWludCAyNTIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCTwKCgkvLyB0b3RhbCBzdGFrZWQgZm9yIGFsbCBvZiBhIHZhbGlkYXRvcnMgcG9vbHMgbWF5IG5vdCBleGNlZWQgaGFyZCBjYXAKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzMKCS8vIHRoaXMuZG9lc1N0YWtlck1lZXRHYXRpbmcodmFsaWRhdG9ySWQsIHZhbHVlVG9WZXJpZnkpCglmcmFtZV9kaWcgLTMgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBkb2VzU3Rha2VyTWVldEdhdGluZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzUKCS8vIHJlYWxBbW91bnQgPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDEgLy8gcmVhbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3NgoJLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3OAoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmOV9lbmQKCgkvLyAqaWY5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODEKCS8vIG1ickFtdExlZnRCZWhpbmQgPSB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRTdGFrZXJNYnIKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJZXh0cmFjdCAyNCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4MgoJLy8gcmVhbEFtb3VudCAtPSBtYnJBbXRMZWZ0QmVoaW5kCglmcmFtZV9kaWcgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODMKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmNyZWF0ZSgpCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNvbmNhdAoJcHVzaGludCAxNDQKCWJveF9jcmVhdGUKCXBvcAoKKmlmOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg3CgkvLyBmaW5kUmV0ID0gdGhpcy5maW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZCwgc3Rha2VyLCByZWFsQW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCglmcmFtZV9idXJ5IDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODgKCS8vIHBvb2xLZXkgPSBmaW5kUmV0WzBdCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg5CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmluZFJldFsxXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkyCglnZXRiaXQKCWZyYW1lX2J1cnkgNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5MAoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmluZFJldFsyXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkzCglnZXRiaXQKCWZyYW1lX2J1cnkgNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTEKCS8vIHBvb2xLZXkucG9vbElkID09PSAwCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gTm8gcG9vbCBhdmFpbGFibGUgd2l0aCBmcmVlIHN0YWtlLiAgVmFsaWRhdG9yIG5lZWRzIHRvIGFkZCBhbm90aGVyIHBvb2wKCWVycgoKKmlmMTBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5NgoJLy8gdGhpcy51cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlciwgcG9vbEtleSkKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY2FsbHN1YiB1cGRhdGVTdGFrZXJQb29sU2V0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5OQoJLy8gdGhpcy5jYWxsUG9vbEFkZFN0YWtlKAoJLy8gICAgICAgc3Rha2VkQW1vdW50UGF5bWVudCwKCS8vICAgICAgIHBvb2xLZXksCgkvLyAgICAgICBtYnJBbXRMZWZ0QmVoaW5kLAoJLy8gICAgICAgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwKCS8vICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJLy8gICAgICkKCWZyYW1lX2RpZyA1IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJZnJhbWVfZGlnIDQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJZnJhbWVfZGlnIDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCgljYWxsc3ViIGNhbGxQb29sQWRkU3Rha2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzE0CgkvLyByZXR1cm4gcG9vbEtleTsKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIHNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKKmFiaV9yb3V0ZV9zZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzZXRUb2tlblBheW91dFJhdGlvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sVG9rZW5QYXlvdXRSYXRpbwovLwovLyBzZXRUb2tlblBheW91dFJhdGlvIGlzIGNhbGxlZCBieSBTdGFraW5nIFBvb2wgIyAxIChPTkxZKSB0byBhc2sgdGhlIHZhbGlkYXRvciAodXMpIHRvIGNhbGN1bGF0ZSB0aGUgcmF0aW9zCi8vIG9mIHN0YWtlIGluIHRoZSBwb29scyBmb3Igc3Vic2VxdWVudCB0b2tlbiBwYXlvdXRzIChpZTogMiBwb29scywgJzEwMCcgYWxnbyB0b3RhbCBzdGFrZWQsIDYwIGluIHBvb2wgMSwgYW5kIDQwCi8vIGluIHBvb2wgMikgIFRoaXMgaXMgZG9uZSBzbyB3ZSBoYXZlIGEgc3RhYmxlIHNuYXBzaG90IG9mIHN0YWtlIC0gdGFrZW4gb25jZSBwZXIgZXBvY2ggLSBvbmx5IHRyaWdnZXJlZCBieQovLyBwb29sIDEgZG9pbmcgcGF5b3V0LiAgcG9vbHMgb3RoZXIgdGhhbiAxIGRvaW5nIHBheW91dCBjYWxsIHBvb2wgMSB0byBhc2sgaXQgZG8gaXQgZmlyc3QuCi8vIEl0IHdvdWxkIGJlIDYwLzQwJSBpbiB0aGUgcG9vbFBjdE9mV2hvbGUgdmFsdWVzLiAgVGhlIHRva2VuIHJld2FyZCBwYXlvdXRzIHRoZW4gdXNlIHRoZXNlIHZhbHVlcyBpbnN0ZWFkIG9mCi8vIHRoZWlyICdjdXJyZW50JyBzdGFrZSB3aGljaCBjaGFuZ2VzIGFzIHBhcnQgb2YgdGhlIHBheW91dHMgdGhlbXNlbHZlcyAoYW5kIHBlb3BsZSBjb3VsZCBiZSBjaGFuZ2luZyBzdGFrZQovLyBkdXJpbmcgdGhlIGVwb2NoIHVwZGF0ZXMgYWNyb3NzIHBvb2xzKQovLwovLyBNdWx0aXBsZSBwb29scyB3aWxsIGNhbGwgdXMgdmlhIHBvb2wgMSAocG9vbDItPnBvb2wxLT52YWxpZGF0b3IsIGV0Yy4pIHNvIGRvbid0IGFzc2VydCBvbiBwb29sMSBjYWxsaW5nIG11bHRpcGxlCi8vIHRpbWVzIGluIHNhbWUgZXBvY2guICBKdXN0IHJldHVybi4KLy8KLy8gQHBhcmFtIHZhbGlkYXRvcklkIC0gdmFsaWRhdG9yIGlkIChhbmQgdGh1cyBwb29sKSBjYWxsaW5nIHVzLiAgVmVyaWZpZWQgc28gdGhhdCBzZW5kZXIgTVVTVCBiZSBwb29sIDEgb2YgdGhpcyB2YWxpZGF0b3IuCi8vIEByZXR1cm5zIFBvb2xUb2tlblBheW91dFJhdGlvIC0gdGhlIGZpbmlzaGVkIHJhdGlvIGRhdGEKc2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM0CgkvLyBwb29sMUFwcElEID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQKCWludCAyNjgKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzUKCS8vIGFzc2VydChwb29sMUFwcElEICE9PSAwKQoJZnJhbWVfZGlnIDAgLy8gcG9vbDFBcHBJRDogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczNwoJLy8gdGhpcy50eG4uc2VuZGVyICE9PSBBcHBJRC5mcm9tVWludDY0KHBvb2wxQXBwSUQpLmFkZHJlc3MKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgkhPQoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczOAoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpbzsKCWludCA3MDAgLy8gaGVhZE9mZnNldAoJcHVzaGludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMSAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NQoJLy8gbGFzdFBheW91dFVwZGF0ZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0CglwdXNoaW50IDg5MgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CgoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ2CgkvLyBsYXN0UGF5b3V0VXBkYXRlICE9PSAwCglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWludCAwCgkhPQoJYnogKmlmMTJfZW5kCgoJLy8gKmlmMTJfY29uc2VxdWVudAoJLy8gKmlmMTNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ4CgkvLyAoQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpIGFzIHVpbnQ2NCkgPT09IGxhc3RQYXlvdXRVcGRhdGUKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgMjAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTEKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIGFzIHVpbnQ2NAoJcHVzaGludCAxNjkKCXB1c2hpbnQgNAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzRXBvY2hCZWdpbiA9IGN1clJvdW5kIC0gKGN1clJvdW5kICUgZXBvY2hSb3VuZExlbmd0aCkKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfYnVyeSA0IC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTQKCS8vIGxhc3RQYXlvdXRVcGRhdGUgLSAobGFzdFBheW91dFVwZGF0ZSAlIGVwb2NoUm91bmRMZW5ndGgpID09PSB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfZGlnIDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPT0KCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgMjAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjE0X2VuZDoKCippZjEyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0ID0gY3VyUm91bmQKCXB1c2hpbnQgODkyCglmcmFtZV9kaWcgMSAvLyBjdXJSb3VuZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjAKCS8vIGN1ck51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA1IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYxCgkvLyB0b3RhbFN0YWtlRm9yVmFsaWRhdG9yID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQKCWludCAyNTIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgY3VyTnVtUG9vbHM7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgoqZm9yXzI6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBpIDwgY3VyTnVtUG9vbHMKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDUgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjcKCS8vIG91clBvb2xQY3RPZldob2xlID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICBbdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1tpXS50b3RhbEFsZ29TdGFrZWQsIDFfMDAwXzAwMF0sCgkvLyAgICAgICAgIFt0b3RhbFN0YWtlRm9yVmFsaWRhdG9yXQoJLy8gICAgICAgKQoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglwdXNoaW50IDFfMDAwXzAwMAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgOCAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW2ldID0gb3VyUG9vbFBjdE9mV2hvbGUKCWludCA3MDAKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIDggLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzczCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50IDcwMCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDIwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCipzZXRUb2tlblBheW91dFJhdGlvKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDgKCXJldHN1YgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfc3Rha2VVcGRhdGVkVmlhUmV3YXJkczoKCS8vIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFsZ29Ub0FkZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCgkvLyBhcmd1bWVudCA0IChwb29sS2V5KSBmb3Igc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgc3Rha2VVcGRhdGVkVmlhUmV3YXJkcwoJaW50IDEKCXJldHVybgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBhbGdvVG9BZGQ6IHVpbnQ2NCwgcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0LCB2YWxpZGF0b3JDb21taXNzaW9uOiB1aW50NjQsIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBpcyBjYWxsZWQgYnkgU3Rha2luZyBwb29scyB0byBpbmZvcm0gdGhlIHZhbGlkYXRvciAodXMpIHRoYXQgYSBwYXJ0aWN1bGFyIGFtb3VudCBvZiB0b3RhbAovLyBzdGFrZSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgc3BlY2lmaWVkIHBvb2wuICBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0cyB3ZSBoYXZlIGluIG91ciBQb29sSW5mbyBzdG9yYWdlLgovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBWYWxpZGF0b3JQb29sS2V5IHR5cGUKLy8gQHBhcmFtIHt1aW50NjR9IGFsZ29Ub0FkZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcwovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcyAodGhhdCBzaG91bGQgYmUKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvckNvbW1pc3Npb24gLSB0aGUgY29tbWlzc2lvbiBhbW91bnQgdGhlIHZhbGlkYXRvciB3YXMgcGFpZCwgaWYgYW55Ci8vIEBwYXJhbSB7dWludDY0fSBzYXR1cmF0ZWRCdXJuVG9GZWVTaW5rIC0gaWYgdGhlIHBvb2wgd2FzIGluIHNhdHVyYXRlZCBzdGF0ZSwgdGhlIGFtb3VudCBzZW50IGJhY2sgdG8gdGhlIGZlZSBzaW5rLgovLyBzZWVuIGFzICdhY2NvdW50ZWQgZm9yL3BlbmRpbmcgc3BlbnQnKQpzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJcHJvdG8gNSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NAoJLy8gdGhpcy52ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJY2FsbHN1YiB2ZXJpZnlQb29sS2V5Q2FsbGVyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICs9IGFsZ29Ub0FkZAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3OTgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgKz0gYWxnb1RvQWRkCglpbnQgMjUyCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgKz0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZAoJaW50IDI2MAoJZHVwCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0CgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODAxCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSArPSBhbGdvVG9BZGQKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgwNAoJLy8gdGhpcy5yZXZlcmlmeU5GRE93bmVyc2hpcChwb29sS2V5LmlkKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCgljYWxsc3ViIHJldmVyaWZ5TkZET3duZXJzaGlwCglyZXRzdWIKCi8vIHN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKKmFiaV9yb3V0ZV9zdGFrZVJlbW92ZWQ6CgkvLyBzdGFrZXJSZW1vdmVkOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyUmVtb3ZlZCkgZm9yIHN0YWtlUmVtb3ZlZCBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gYW1vdW50UmVtb3ZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHN0YWtlcikgZm9yIHN0YWtlUmVtb3ZlZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCgkvLyBhcmd1bWVudCA0IChwb29sS2V5KSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKCWNhbGxzdWIgc3Rha2VSZW1vdmVkCglpbnQgMQoJcmV0dXJuCgovLyBzdGFrZVJlbW92ZWQocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSwgc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRSZW1vdmVkOiB1aW50NjQsIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NCwgc3Rha2VyUmVtb3ZlZDogYm9vbGVhbik6IHZvaWQKLy8KLy8gc3Rha2VSZW1vdmVkIGlzIGNhbGxlZCBieSBTdGFraW5nIHBvb2xzIHRvIGluZm9ybSB0aGUgdmFsaWRhdG9yICh1cykgdGhhdCBhIHBhcnRpY3VsYXIgYW1vdW50IG9mIHRvdGFsIHN0YWtlIGhhcyBiZWVuIHJlbW92ZWQKLy8gZnJvbSB0aGUgc3BlY2lmaWVkIHBvb2wuICBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0cyB3ZSBoYXZlIGluIG91ciBQb29sSW5mbyBzdG9yYWdlLgovLyBJZiBhbnkgYW1vdW50IG9mIHJld2FyZFJlbW92ZWQgaXMgc3BlY2lmaWVkLCB0aGVuIHRoYXQgYW1vdW50IG9mIHJld2FyZCBpcyBzZW50IHRvIHRoZSB1c2UKLy8gVGhlIGNhbGxpbmcgQXBwIGlkIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IG91ciBwb29sIGxpc3QgYXMgd2VsbC4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IGNhbGxpbmcgdXMgZnJvbSB3aGljaCBzdGFrZSB3YXMgcmVtb3ZlZAovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlcgovLyBAcGFyYW0ge3VpbnQ2NH0gYW1vdW50UmVtb3ZlZCAtIGFsZ28gYW1vdW50IHJlbW92ZWQKLy8gQHBhcmFtIHt1aW50NjR9IHJld2FyZFJlbW92ZWQgLSBpZiBhcHBsaWNhYmxlLCBhbW91bnQgb2YgdG9rZW4gcmV3YXJkIHJlbW92ZWQgKGJ5IHBvb2wgMSBjYWxsZXIpIG9yIFRPIHJlbW92ZSBhbmQgcGF5IG91dCAodmlhIHBvb2wgMSBmcm9tIGRpZmZlcmVudCBwb29sIGNhbGxlcikKLy8gQHBhcmFtIHtib29sZWFufSBzdGFrZXJSZW1vdmVkCnN0YWtlUmVtb3ZlZDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDMwMAoJPAoJYnogKmlmMTVfZW5kCgoJLy8gKmlmMTVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzNwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYxNV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM5CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQzCgkvLyBhc3NlcnQoYW1vdW50UmVtb3ZlZCA+IDAgfHwgcmV3YXJkUmVtb3ZlZCA+IDAsICdzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQnKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJaW50IDAKCT4KCWR1cAoJYm56ICpza2lwX29yMgoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaW50IDAKCT4KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDYKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDcKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgLT0gYW1vdW50UmVtb3ZlZAoJaW50IDI1MgoJZHVwCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQ4CgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtPSBhbW91bnRSZW1vdmVkCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJLQoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYxNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTAKCS8vIHJld2FyZFJlbW92ZWQgPiAwCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmMTZfZWxzZQoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTEKCS8vIHJld2FyZFRva2VuSUQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCXB1c2hpbnQgMTUzCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MgoJLy8gYXNzZXJ0KHJld2FyZFRva2VuSUQgIT09IDAsICJyZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CglpbnQgMAoJIT0KCgkvLyByZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTMKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgPj0gcmV3YXJkUmVtb3ZlZCwKCS8vICAgICAgICAgJ3Jld2FyZCBiZWluZyByZW1vdmVkIG11c3QgYmUgY292ZXJlZCBieSBob2xkIGJhY2sgYW1vdW50JwoJLy8gICAgICAgKQoJaW50IDI2MAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJPj0KCgkvLyByZXdhcmQgYmVpbmcgcmVtb3ZlZCBtdXN0IGJlIGNvdmVyZWQgYnkgaG9sZCBiYWNrIGFtb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgLT0gcmV3YXJkUmVtb3ZlZAoJaW50IDI2MAoJZHVwCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWYxN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjQKCS8vIHBvb2xLZXkucG9vbElkICE9PSAxCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgkhPQoJYnogKmlmMTdfZW5kCgoJLy8gKmlmMTdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wYXlUb2tlblJld2FyZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3N0YWtlciwgcmV3YXJkVG9rZW5JRCwgcmV3YXJkUmVtb3ZlZF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4NjNmM2YyOGIgLy8gbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NgoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKQoJaW50IDI2OAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NwoJLy8gbWV0aG9kQXJnczogW3N0YWtlciwgcmV3YXJkVG9rZW5JRCwgcmV3YXJkUmVtb3ZlZF0KCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjE3X2VuZDoKCWIgKmlmMTZfZW5kCgoqaWYxNl9lbHNlOgoKKmlmMTZfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODkyCgkvLyBzdGFrZXJSZW1vdmVkCglmcmFtZV9kaWcgLTUgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbGVhbgoJYnogKmlmMThfZW5kCgoJLy8gKmlmMThfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxTdGFrZXJzIC09IDEKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4IC8vIGhlYWRPZmZzZXQKCSsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4IC8vIGhlYWRPZmZzZXQKCSsKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgktCglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NgoJLy8gcmVtb3ZlUmV0ID0gdGhpcy5yZW1vdmVGcm9tU3Rha2VyUG9vbFNldChzdGFrZXIsIDxWYWxpZGF0b3JQb29sS2V5PnsKCS8vICAgICAgICAgaWQ6IHBvb2xLZXkuaWQsCgkvLyAgICAgICAgIHBvb2xJZDogcG9vbEtleS5wb29sSWQsCgkvLyAgICAgICAgIHBvb2xBcHBJZDogcG9vbEtleS5wb29sQXBwSWQsCgkvLyAgICAgICB9KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljYWxsc3ViIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDEKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvciA9IHJlbW92ZVJldFswXQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglnZXRiaXQKCWZyYW1lX2J1cnkgMiAvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTAyCgkvLyBzdGFrZXJPdXRPZlByb3RvY29sID0gcmVtb3ZlUmV0WzFdCglmcmFtZV9kaWcgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJZnJhbWVfYnVyeSAzIC8vIHN0YWtlck91dE9mUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDQKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yOiBib29sCglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxTdGFrZXJzIC09IDEKCXB1c2hpbnQgMjQ0CglwdXNoaW50IDI0NAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDEKCS0KCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmMTlfZW5kOgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA4CgkvLyBzdGFrZXJPdXRPZlByb3RvY29sCglmcmFtZV9kaWcgMyAvLyBzdGFrZXJPdXRPZlByb3RvY29sOiBib29sCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA5CgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgLT0gMQoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgktCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMjBfZW5kOgoKKmlmMThfZW5kOgoJcmV0c3ViCgovLyBmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoqYWJpX3JvdXRlX2ZpbmRQb29sRm9yU3Rha2VyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgZmluZFBvb2xGb3JTdGFrZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZmluZFBvb2xGb3JTdGFrZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1N0YWtlOiB1aW50NjQpOiBbVmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbl0KLy8KLy8gRmluZHMgdGhlIHBvb2wgZm9yIGEgc3Rha2VyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB2YWxpZGF0b3IgaWQsIHN0YWtlciBhZGRyZXNzLCBhbmQgYW1vdW50IHRvIHN0YWtlLgovLyBGaXJzdCBjaGVja3MgdGhlIHN0YWtlcnMgJ2FscmVhZHkgc3Rha2VkIGxpc3QnIGZvciB0aGUgdmFsaWRhdG9yIHByZWZlcnJpbmcgdGhvc2UgKGFkZGluZyBpZiBwb3NzaWJsZSkgdGhlbiBhZGRzCi8vIHRvIG5ldyBwb29sIGlmIG5lY2Vzc2FyeS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHBhcmFtIHt1aW50NjR9IGFtb3VudFRvU3Rha2UgLSBUaGUgYW1vdW50IHRvIHN0YWtlLgovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbn0gLSBUaGUgcG9vbCBmb3IgdGhlIHN0YWtlciwgdHJ1ZS9mYWxzZSBvbiB3aGV0aGVyIHRoZSBzdGFrZXIgaXMgJ25ldycKLy8gdG8gdGhpcyBWQUxJREFUT1IsIGFuZCB0cnVlL2ZhbHNlIGlmIHN0YWtlciBpcyBuZXcgdG8gdGhlIHByb3RvY29sLgpmaW5kUG9vbEZvclN0YWtlcjoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTMwCgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzMQoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTM5CgkvLyBtYXhQZXJQb29sID0gdGhpcy5nZXRDdXJNYXhTdGFrZVBlclBvb2wodmFsaWRhdG9ySWQpCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBnZXRDdXJNYXhTdGFrZVBlclBvb2wKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyAqaWYyMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDIKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDMKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ0CgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCA2Cgk8CglieiAqZm9yXzNfZW5kCgoJLy8gKmlmMjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJcHVzaGludCAzMDAKCTwKCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ5CgkvLyBwb29sU2V0W2ldLmlkID09PSAwCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjIzX2VuZAoKCS8vICppZjIzX2NvbnNlcXVlbnQKCWIgKmZvcl8zX2NvbnRpbnVlCgoqaWYyM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUyCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTMKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHZhbGlkYXRvcklkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJPT0KCWJ6ICppZjI0X2VuZAoKCS8vICppZjI0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTUKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gKmlmMjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xTZXRbaV0ucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICsgYW1vdW50VG9TdGFrZSA8PQoJLy8gICAgICAgICAgICAgbWF4UGVyUG9vbAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgOCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjVfZW5kCgoJLy8gKmlmMjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2MAoJLy8gcmV0dXJuIFtwb29sU2V0W2ldLCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDI0CglleHRyYWN0MwoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnQgMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoJYiAqZmluZFBvb2xGb3JTdGFrZXIqcmV0dXJuCgoqaWYyNV9lbmQ6CgoqaWYyNF9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoKKmlmMjFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgYW1vdW50VG9TdGFrZSA+PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlLAoJLy8gICAgICAgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcKCS8vICAgICApCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50VG9TdGFrZTogdWludDY0CglwdXNoaW50IDIwOQoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3MwoJLy8gcG9vbHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDQzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNSAvLyBwb29sczogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc0CgkvLyBjdXJOdW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBjdXJOdW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJOdW1Qb29sczsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgNyAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGkgPCBjdXJOdW1Qb29scwoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglmcmFtZV9kaWcgNiAvLyBjdXJOdW1Qb29sczogdWludDY0Cgk8CglieiAqZm9yXzRfZW5kCgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc2CgkvLyBwb29sc1tpXS50b3RhbEFsZ29TdGFrZWQgKyBhbW91bnRUb1N0YWtlIDw9IG1heFBlclBvb2wKCWZyYW1lX2RpZyA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjZfZW5kCgoJLy8gKmlmMjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NwoJLy8gcmV0dXJuIFsKCS8vICAgICAgICAgICB7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiBpICsgMSwgcG9vbEFwcElkOiBwb29sc1tpXS5wb29sQXBwSWQgfSwKCS8vICAgICAgICAgICBpc05ld1N0YWtlclRvVmFsaWRhdG9yLAoJLy8gICAgICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbCwKCS8vICAgICAgICAgXTsKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4MDAKCWludCAwCglmcmFtZV9kaWcgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCglzZXRiaXQKCWludCAxCglmcmFtZV9kaWcgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCXNldGJpdAoJY29uY2F0CgliICpmaW5kUG9vbEZvclN0YWtlcipyZXR1cm4KCippZjI2X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTg1CgkvLyByZXR1cm4gW3sgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9LCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCipmaW5kUG9vbEZvclN0YWtlcipyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA3CglyZXRzdWIKCi8vIG1vdmVQb29sVG9Ob2RlKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZToKCS8vIG5vZGVOdW06IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHBvb2xBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtb3ZlUG9vbFRvTm9kZQoJaW50IDEKCXJldHVybgoKLy8gbW92ZVBvb2xUb05vZGUodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcG9vbEFwcElkOiB1aW50NjQsIG5vZGVOdW06IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRmluZCB0aGUgc3BlY2lmaWVkIHBvb2wgKGluIGFueSBub2RlIG51bWJlcikgYW5kIG1vdmUgaXQgdG8gdGhlIHNwZWNpZmllZCBub2RlLgovLyBUaGUgcG9vbCBhY2NvdW50IGlzIGZvcmNlZCBvZmZsaW5lIGlmIG1vdmVkIHNvIHByaW9yIG5vZGUgd2lsbCBzdGlsbCBydW4gZm9yIDMyMCByb3VuZHMgYnV0Ci8vIG5ldyBrZXkgZ29lcyBvbmxpbmUgb24gbmV3IG5vZGUgc29vbiBhZnRlciAoMzIwIHJvdW5kcyBhZnRlciBpdCBnb2VzIG9ubGluZSkKLy8gTm8tb3AgaWYgc3VjY2VzcywgYXNzZXJ0cyBpZiBub3QgZm91bmQgb3IgY2FuJ3QgbW92ZSAgKG5vIHNwYWNlIGluIHRhcmdldCkKLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gcG9vbEFwcElkCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtCm1vdmVQb29sVG9Ob2RlOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDAxCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyIHx8CgkvLyAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CglkdXAKCWJueiAqc2tpcF9vcjMKCXR4biBTZW5kZXIKCXB1c2hpbnQgNDAKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IzOgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAwNwoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cykKCWludCA5MDAgLy8gaGVhZE9mZnNldAoJcHVzaGludCAxOTIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgb3V0IG9mIGFsbG93YWJsZSByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDgKCTw9CgkmJgoKKnNraXBfYW5kMToKCS8vIG5vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBmb3IgKGxldCBzcmNOb2RlSWR4ID0gMDsgc3JjTm9kZUlkeCA8IE1BWF9OT0RFUzsgc3JjTm9kZUlkeCArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBzcmNOb2RlSWR4IDwgTUFYX05PREVTCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludCA4Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgPCBNQVhfUE9PTFNfUEVSX05PREUKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDMKCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyAqaWYyN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPT09IHBvb2xBcHBJZAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50IDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0Cgk9PQoJYnogKmlmMjdfZW5kCgoJLy8gKmlmMjdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTMKCS8vIGFzc2VydChub2RlTnVtIC0gMSAhPT0gc3JjTm9kZUlkeCwgImNhbid0IG1vdmUgdG8gc2FtZSBub2RlIikKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCSE9CgoJLy8gY2FuJ3QgbW92ZSB0byBzYW1lIG5vZGUKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbc3JjTm9kZUlkeF0ucG9vbEFwcElkc1tpXSA9IDAKCWludCA5MDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE4CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLmdvT2ZmbGluZT4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHg1MWVmM2IyMSAvLyBtZXRob2QgImdvT2ZmbGluZSgpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjMKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBhZGRQb29sVG9Ob2RlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjQKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMjdfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzYKCipmb3JfNl9lbmQ6CgoqZm9yXzVfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gc3JjTm9kZUlkeCArPSAxCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCS8vIGNvdWxkbid0IGZpbmQgcG9vbCBhcHAgaWQgaW4gbm9kZXMgdG8gbW92ZQoJZXJyCglyZXRzdWIKCi8vIGVtcHR5VG9rZW5SZXdhcmRzKHVpbnQ2NCxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyByZWNlaXZlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChyZWNlaXZlcikgZm9yIGVtcHR5VG9rZW5SZXdhcmRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgZW1wdHlUb2tlblJld2FyZHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBlbXB0eVRva2VuUmV3YXJkcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCByZWNlaXZlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBTZW5kcyB0aGUgcmV3YXJkIHRva2VucyBoZWxkIGluIHBvb2wgMSB0byBzcGVjaWZpZWQgcmVjZWl2ZXIuCi8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSB0aGUgb3duZXIgd2hlbiB0aGV5IHdhbnQgdG8gZ2V0IHJld2FyZCB0b2tlbnMgJ2JhY2snIHdoaWNoIHRoZXkgc2VudCB0bwovLyB0aGUgZmlyc3QgcG9vbCAobGlrZWx5IGJlY2F1c2UgdmFsaWRhdG9yIGlzIHN1bnNldHRpbmcuICBBbnkgdG9rZW5zIGN1cnJlbnRseSAncmVzZXJ2ZWQnIGZvciBzdGFrZXJzIHRvIGNsYWltIHdpbGwKLy8gTk9UIGJlIHNlbnQgYXMgdGhleSBtdXN0IGJlIGhlbGQgYmFjayBmb3Igc3Rha2VycyB0byBsYXRlciBjbGFpbS4KLy8gWyBPTkxZIE9XTkVSIENBTiBDQUxMXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSByZWNlaXZlciAtIHRoZSBhY2NvdW50IHRvIHNlbmQgdGhlIHRva2VucyB0byAobXVzdCBhbHJlYWR5IGJlIG9wdGVkLWluIHRvIHRoZSByZXdhcmQgdG9rZW4pCi8vIEByZXR1cm5zIHt1aW50NjR9IHRoZSBhbW91bnQgb2YgcmV3YXJkIHRva2VuIHNlbnQKZW1wdHlUb2tlblJld2FyZHM6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0NwoJLy8gcmV3YXJkVG9rZW5JZCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCXB1c2hpbnQgMTUzCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0OAoJLy8gcmV3YXJkVG9rZW5IZWxkQmFjayA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjawoJaW50IDI2MAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDkKCS8vIGFzc2VydChyZXdhcmRUb2tlbklkICE9PSAwLCAidGhpcyB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIGEgcmV3YXJkIHRva2VuIGRlZmluZWQiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CglpbnQgMAoJIT0KCgkvLyB0aGlzIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgYSByZXdhcmQgdG9rZW4gZGVmaW5lZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTAKCS8vIHBvb2xPbmVBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpCglpbnQgMjY4CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUyCgkvLyB0b2tlblJld2FyZEJhbCA9IHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgktCglmcmFtZV9idXJ5IDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDYzZjNmMjhiIC8vIG1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU2CgkvLyBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NwoJLy8gbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0KCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSA9PT0gcmV3YXJkVG9rZW5IZWxkQmFjaywKCS8vICAgICAgICdiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudCcKCS8vICAgICApCglmcmFtZV9kaWcgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCT09CgoJLy8gYmFsYW5jZSBvZiByZW1haW5pbmcgcmV3YXJkIHRva2VucyBzaG91bGQgbWF0Y2ggdGhlIGhlbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gdG9rZW5SZXdhcmRCYWw7CglmcmFtZV9kaWcgMyAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCi8vCi8vIExvZ3MgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbGlkYXRvciB0byB0aGUgc3lzdGVtLCBpdHMgaW5pdGlhbCBvd25lciBhbmQgbWFuYWdlcgovLwovLwovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyIHZlcmlmaWVzIHRoZSBwYXNzZWQgaW4ga2V5IChmcm9tIGEgc3Rha2luZyBwb29sIGNhbGxpbmcgdXMgdG8gdXBkYXRlIG1ldHJpY3MpIGlzIHZhbGlkCi8vIGFuZCBtYXRjaGVzIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIGluIG91ciBzdGF0ZS4gICdGYWtlJyBwb29scyBjb3VsZCBjYWxsIHVzIHRvIHVwZGF0ZSBvdXIgZGF0YSwgYnV0IHRoZXkKLy8gY2FuJ3QgZmFrZSB0aGUgaWRzIGFuZCBtb3N0IGltcG9ydGFudGx5IGFwcGxpY2F0aW9uIGlkKCEpIG9mIHRoZSBjYWxsZXIgdGhhdCBoYXMgdG8gbWF0Y2guCnZlcmlmeVBvb2xLZXlDYWxsZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gdGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPD0gTUFYX1BPT0xTLCAncG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMjQKCTw9CgoJLy8gcG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYzCgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sS2V5LnBvb2xJZCA+IDAgJiYgKHBvb2xLZXkucG9vbElkIGFzIHVpbnQxNikgPD0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzLAoJLy8gICAgICAgJ3Bvb2wgaWQgb3V0c2lkZSBvZiByYW5nZSBvZiBwb29scyBjcmVhdGVkIGZvciB0aGlzIHZhbGlkYXRvcicKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDI0MgoJaW50IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJPD0KCSYmCgoqc2tpcF9hbmQyOgoJLy8gcG9vbCBpZCBvdXRzaWRlIG9mIHJhbmdlIG9mIHBvb2xzIGNyZWF0ZWQgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbEtleS5wb29sQXBwSWQgPT09IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnBvb2xBcHBJZCwKCS8vICAgICAgICJUaGUgcGFzc2VkIGluIGFwcCBpZCBkb2Vzbid0IG1hdGNoIHRoZSBwYXNzZWQgaW4gaWRzIgoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk9PQoKCS8vIFRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNzYKCS8vIGFzc2VydChwb29sS2V5LmlkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykKCWFzc2VydAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc3CgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPT09IChBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgncG9vbElkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gcmV2ZXJpZnlORkRPd25lcnNoaXAodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVGhpcyBtZXRob2QgdmVyaWZpZXMgdGhlIG93bmVyc2hpcCBvZiBORkQgKE5hbWVkIEZ1bmN0aW9uIERhdGEpIGJ5IGEgdmFsaWRhdG9yLgovLyBJZiB0aGUgb3duZXJzaGlwIGlzIG5vIGxvbmdlciB2YWxpZCwgaXQgcmVtb3ZlcyB0aGUgTkZEIGZyb20gdGhlIHZhbGlkYXRvcidzIGNvbmZpZ3VyYXRpb24uCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHdob3NlIGRhdGEgc2hvdWxkIGJlIHJlLWV2YWx1YXRlZC4KcmV2ZXJpZnlORkRPd25lcnNoaXA6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODcKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3ZhbGlkYXRvckNvbmZpZwoKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODgKCS8vIHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglwdXNoaW50IDcyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmMjhfZW5kCgoJLy8gKmlmMjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTEKCS8vIG5mZE93bmVyID0gQXBwSUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MKCXB1c2hpbnQgNzIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gbmZkT3duZXI6IGFkZHJlc3MKCgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkzCgkvLyB2YWxpZGF0b3JDb25maWcub3duZXIgIT09IG5mZE93bmVyICYmIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSBuZmRPd25lcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglwdXNoaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJIT0KCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm5mZEZvckluZm8gPSAwCglwdXNoaW50IDcyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjI5X2VuZDoKCippZjI4X2VuZDoKCXJldHN1YgoKLy8gdmFsaWRhdGVDb25maWcoY29uZmlnOiBWYWxpZGF0b3JDb25maWcpOiB2b2lkCnZhbGlkYXRlQ29uZmlnOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMDIKCS8vIGFzc2VydCgKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPj0gR0FUSU5HX1RZUEVfTk9ORSAmJiBjb25maWcuZW50cnlHYXRpbmdUeXBlIDw9IEdBVElOR19UWVBFX0NPTlNUX01BWCwKCS8vICAgICAgICdnYXRpbmcgdHlwZSBub3QgdmFsaWQnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludCAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJcHVzaGludCA0Cgk8PQoJJiYKCipza2lwX2FuZDQ6CgkvLyBnYXRpbmcgdHlwZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjA2CgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZXBvY2hSb3VuZExlbmd0aCA+PSBNSU5fRVBPQ0hfTEVOR1RIICYmIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIDw9IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICAnZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kNQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ1OgoJLy8gZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjEwCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yID49IE1JTl9QQ1RfVE9fVkFMSURBVE9SICYmIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgPD0gTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICAnY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ2CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAxMDAwMDAwCgk8PQoJJiYKCipza2lwX2FuZDY6CgkvLyBjb21taXNzaW9uIHBlcmNlbnRhZ2Ugbm90IHZhbGlkCglhc3NlcnQKCgkvLyAqaWYzMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjE0CgkvLyBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgY29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAndmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTc3IDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAKCWFzc2VydAoKKmlmMzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMjAKCS8vIGFzc2VydChjb25maWcubWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIwOSA4CglidG9pCglpbnQgMTAwMDAwMAoJPj0KCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBvb2xzUGVyTm9kZSA+IDAgJiYgY29uZmlnLnBvb2xzUGVyTm9kZSA8PSBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICAnbnVtYmVyIG9mIHBvb2xzIHBlciBub2RlIGV4Y2VlZHMgYWxsb3dlZCBudW1iZXInCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNSAxCglidG9pCglpbnQgMAoJPgoJZHVwCglieiAqc2tpcF9hbmQ3CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludCAzCgk8PQoJJiYKCipza2lwX2FuZDc6CgkvLyBudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcgoJYXNzZXJ0CgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyNgoJLy8gY29uZmlnLnN1bnNldHRpbmdPbiAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglpbnQgMAoJIT0KCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI3CgkvLyBhc3NlcnQoY29uZmlnLnN1bnNldHRpbmdPbiA+IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLCAnc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0JykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjYgOAoJYnRvaQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJPgoKCS8vIHN1bnNldHRpbmdPbiBtdXN0IGJlIGxhdGVyIHRoYW4gbm93IGlmIHNldAoJYXNzZXJ0CgoqaWYzMV9lbmQ6CglyZXRzdWIKCi8vIGNhbGxQb29sQWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBtYnJBbXRQYWlkOiB1aW50NjQsIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4sIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkcyBhIHN0YWtlcnMgYW1vdW50IG9mIGFsZ28gdG8gYSB2YWxpZGF0b3IgcG9vbCwgdHJhbnNmZXJyaW5nIHRoZSBhbGdvIHdlIHJlY2VpdmVkIGZyb20gdGhlbSAoYWxyZWFkeSB2ZXJpZmllZAovLyBieSBvdXIgY2FsbGVyKSB0byB0aGUgc3Rha2luZyBwb29sIGFjY291bnQsIGFuZCB0aGVuIHRlbGxpbmcgaXQgYWJvdXQgdGhlIGFtb3VudCBiZWluZyBhZGRlZCBmb3IgdGhlIHNwZWNpZmllZAovLyBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCi8vIEBwYXJhbSB7dWludDY0fSBtYnJBbXRQYWlkIC0gQW1vdW50IHRoZSB1c2VyIGlzIGxlYXZpbmcgYmVoaW5kIGluIHRoZSB2YWxpZGF0b3IgdG8gcGF5IGZvciB0aGVpciBzdGFrZXIgTUJSIGNvc3QKLy8gQHBhcmFtIHtib29sZWFufSBpc05ld1N0YWtlclRvVmFsaWRhdG9yIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHZhbGlkYXRvcgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9Qcm90b2NvbCAtIGlmIHRoaXMgaXMgYSBuZXcsIGZpcnN0LXRpbWUgc3Rha2VyIHRvIHRoZSBwcm90b2NvbApjYWxsUG9vbEFkZFN0YWtlOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjQ5CgkvLyBwb29sQXBwSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1MwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5hZGRTdGFrZSwgdWludDY0Pih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmOWM3MGNiZCAvLyBtZXRob2QgImFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNTAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDUwMAoJPAoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjgKCS8vIHBvb2xOdW1TdGFrZXJzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdudW1TdGFrZXJzJykgYXMgdWludDY0CglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnbnVtU3Rha2VycycpCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBwb29sTnVtU3Rha2VyczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjkKCS8vIHBvb2xBbGdvU3Rha2VkID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdzdGFrZWQnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdzdGFrZWQnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDIgLy8gcG9vbEFsZ29TdGFrZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjcwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbFN0YWtlcnMgPSBwb29sTnVtU3Rha2VycyBhcyB1aW50MTYKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4IC8vIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xOdW1TdGFrZXJzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkID0gcG9vbEFsZ29TdGFrZWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglmcmFtZV9kaWcgMiAvLyBwb29sQWxnb1N0YWtlZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc0CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yCglmcmFtZV9kaWcgLTQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbGVhbgoJYnogKmlmMzNfZW5kCgoJLy8gKmlmMzNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbFN0YWtlcnMgKz0gMQoJcHVzaGludCAyNDQKCXB1c2hpbnQgMjQ0CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYzM19lbmQ6CgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc3CgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wKCWZyYW1lX2RpZyAtNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2xlYW4KCWJ6ICppZjM0X2VuZAoKCS8vICppZjM0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc4CgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgKz0gMQoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglpbnQgMjUyCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlU3Rha2VyUG9vbFNldChzdGFrZXI6IEFkZHJlc3MsIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCnVwZGF0ZVN0YWtlclBvb2xTZXQ6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODUKCS8vIGFzc2VydCh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMpCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OAoJLy8gZmlyc3RFbXB0eSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl83OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDYKCTwKCWJ6ICpmb3JfN19lbmQKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkwCgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkyCgkvLyByZXR1cm47CglyZXRzdWIKCippZjM1X2VuZDoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTQKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWR1cAoJYnogKnNraXBfYW5kOAoJZnJhbWVfZGlnIDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCT09CgkmJgoKKnNraXBfYW5kODoKCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk1CgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjM2X2VuZDoKCipmb3JfN19jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl83CgoqZm9yXzdfZW5kOgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5OAoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjM3X2VuZAoKCS8vICppZjM3X2NvbnNlcXVlbnQKCS8vIE5vIGVtcHR5IHNsb3QgYXZhaWxhYmxlIGluIHRoZSBzdGFrZXIgcG9vbCBzZXQKCWVycgoKKmlmMzdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMDEKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ZpcnN0RW1wdHkgLSAxXSA9IHBvb2xLZXkKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyByZW1vdmVGcm9tU3Rha2VyUG9vbFNldChzdGFrZXI6IEFkZHJlc3MsIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiBbYm9vbGVhbiwgYm9vbGVhbl0KLy8KLy8gUmVtb3ZlcyBhIHBvb2wga2V5IGZyb20gdGhlIHN0YWtlcidzIGFjdGl2ZSBwb29sIHNldCAtIGZhaWxzIGlmIG5vdCBmb3VuZCAoISkKLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc3Rha2VyLgovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBUaGUgcG9vbCBrZXkgdGhleSBzaG91bGQgYmUgc3RvcmVkIGluCi8vCi8vIEByZXR1cm4gW2Jvb2xlYW4sIGJvb2xlYW5dIFtpcyB0aGUgc3Rha2VyIGdvbmUgZnJvbSBBTEwgcG9vbHMgb2YgdGhlIGdpdmVuIFZBTElEQVRPUiwgYW5kIGlzIHN0YWtlciBnb25lIGZyb20gQUxMIHBvb2xzXQpyZW1vdmVGcm9tU3Rha2VyUG9vbFNldDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxNAoJLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE1CgkvLyBpbkFueVBvb2xDb3VudCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaW5BbnlQb29sQ291bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE2CgkvLyBmb3VuZCA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTgKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzg6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgNgoJPAoJYnogKmZvcl84X2VuZAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjAKCS8vIHBvb2xTZXRbaV0uaWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMzhfZW5kCgoJLy8gKmlmMzhfY29uc2VxdWVudAoJYiAqZm9yXzhfY29udGludWUKCippZjM4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzIzCgkvLyBpbkFueVBvb2xDb3VudCArPSAxCglmcmFtZV9kaWcgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI0CgkvLyBwb29sU2V0W2ldLmlkID09PSBwb29sS2V5LmlkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CglieiAqaWYzOV9lbmQKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI1CgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjQwX2Vsc2UKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyNgoJLy8gZm91bmQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjgKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ldID0geyBpZDogMCwgcG9vbElkOiAwLCBwb29sQXBwSWQ6IDAgfQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgliICppZjQwX2VuZAoKKmlmNDBfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzMwCgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCippZjQwX2VuZDoKCippZjM5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl84CgoqZm9yXzhfZW5kOgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzNAoJLy8gIWZvdW5kCglmcmFtZV9kaWcgMiAvLyBmb3VuZDogYm9vbAoJIQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gTm8gbWF0Y2hpbmcgc2xvdCBmb3VuZCB3aGVuIHRvbGQgdG8gcmVtb3ZlIGEgcG9vbCBmcm9tIHRoZSBzdGFrZXJzIHNldAoJZXJyCgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzOAoJLy8gcmV0dXJuIFtpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPT09IDAsIGluQW55UG9vbENvdW50ID09PSAwXTsKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnQgMAoJPT0KCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludCAwCgk9PQoJc2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBhZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHBvb2xBcHBJZDogdWludDY0LCBub2RlTnVtOiB1aW50NjQpOiB2b2lkCmFkZFBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDIKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnQgOTAwIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgMTkyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0MwoJLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnBvb2xzUGVyTm9kZSBhcyB1aW50NjQKCXB1c2hpbnQgMjI1CglpbnQgMQoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NQoJLy8gYXNzZXJ0KG5vZGVOdW0gPj0gMSAmJiBub2RlTnVtIDw9IE1BWF9OT0RFUywgJ25vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kOQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDgKCTw9CgkmJgoKKnNraXBfYW5kOToKCS8vIG5vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfOToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCTwKCWJ6ICpmb3JfOV9lbmQKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ4CgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW25vZGVOdW0gLSAxXS5wb29sQXBwSWRzW2ldID09PSAwCglmcmFtZV9kaWcgMCAvLyBub2RlUG9vbEFzc2lnbm1lbnRzOiAoKHVpbnQ2NFszXSlbOF0pCglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDEKCS0KCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tub2RlTnVtIC0gMV0ucG9vbEFwcElkc1tpXSA9IHBvb2xBcHBJZAoJaW50IDkwMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDEKCS0KCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTEKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmNDJfZW5kOgoKKmZvcl85X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzkKCipmb3JfOV9lbmQ6CgkvLyBubyBhdmFpbGFibGUgc3BhY2UgaW4gc3BlY2lmaWVkIG5vZGUgZm9yIHRoaXMgcG9vbAoJZXJyCglyZXRzdWIKCi8vIGRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIGEgc3Rha2VyIG1lZXRzIHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGUgdmFsaWRhdG9yLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbHVlVG9WZXJpZnkgLSBUaGUgdmFsdWUgdG8gdmVyaWZ5IGFnYWluc3QgdGhlIGdhdGluZyByZXF1aXJlbWVudHMuCi8vIEByZXR1cm5zIHt2b2lkfSBvciBhc3NlcnRzIGlmIHJlcXVpcmVtZW50cyBub3QgbWV0Lgpkb2VzU3Rha2VyTWVldEdhdGluZzoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NQoJLy8gdHlwZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nVHlwZQoJcHVzaGludCA4MAoJaW50IDEKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdHlwZTogdWludDgKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY2CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9OT05FCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDAKCT09CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NwoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWY0M19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2OQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDEgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzAKCS8vIGNvbmZpZyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnKQoJaW50IDAKCWludCAyNDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWSB8fAoJLy8gICAgICAgdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUwoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3I0CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDIKCT09Cgl8fAoKKnNraXBfb3I0OgoJZHVwCglibnogKnNraXBfb3I1CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDMKCT09Cgl8fAoKKnNraXBfb3I1OgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzgKCS8vIGFzc2VydCh2YWx1ZVRvVmVyaWZ5ICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3OQoJLy8gYmFsUmVxdWlyZWQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UKCXB1c2hpbnQgMTQ1CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoJLy8gKmlmNDVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MAoJLy8gYmFsUmVxdWlyZWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODEKCS8vIGJhbFJlcXVpcmVkID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoqaWY0NV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBzdGFrZXIuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KSkgPj0gYmFsUmVxdWlyZWQsCgkvLyAgICAgICAgICdtdXN0IGhhdmUgcmVxdWlyZWQgbWluaW11bSBiYWxhbmNlIG9mIHZhbGlkYXRvciBkZWZpbmVkIHRva2VuIHRvIGFkZCBzdGFrZScKCS8vICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCT49CgoJLy8gbXVzdCBoYXZlIHJlcXVpcmVkIG1pbmltdW0gYmFsYW5jZSBvZiB2YWxpZGF0b3IgZGVmaW5lZCB0b2tlbiB0byBhZGQgc3Rha2UKCWFzc2VydAoKKmlmNDRfZW5kOgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4OAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRTX0NSRUFURURfQlkKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnQgMQoJPT0KCWJ6ICppZjQ2X2VuZAoKCS8vICppZjQ2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzg5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yID09PSBjb25maWcuZW50cnlHYXRpbmdBZGRyZXNzLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgdGhlIHZhbGlkYXRvciBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4MSAzMgoJPT0KCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCB0aGUgdmFsaWRhdG9yIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyAqaWY0N19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVF9JRAoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAyCgk9PQoJYnogKmlmNDdfZW5kCgoJLy8gKmlmNDdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTUKCS8vIGFzc2VydCh2YWx1ZVRvVmVyaWZ5ICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NgoJLy8gZm91bmQgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyBmb3VuZDogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk3CgkvLyBjb25maWcuZW50cnlHYXRpbmdBc3NldHMKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyAzMgoJZHVwCglmcmFtZV9idXJ5IDUgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyAqaWY0OF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk4CgkvLyB2YWx1ZVRvVmVyaWZ5ID09PSBhc3NldElkCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9kaWcgNiAvLyBhc3NldElkOiB1aW50NjQKCT09CglieiAqaWY0OF9lbmQKCgkvLyAqaWY0OF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5OQoJLy8gZm91bmQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSA0IC8vIGZvdW5kOiBib29sCgliICpmb3JPZl8wX2VuZAoKKmlmNDhfZW5kOgoKKmZvck9mXzBfY29udGludWU6CgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDMyIC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MDMKCS8vIGFzc2VydChmb3VuZCwgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGlkZW50aWNhbCB0byB0aGUgYXNzZXQgaWQgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlJykKCWZyYW1lX2RpZyA0IC8vIGZvdW5kOiBib29sCgoJLy8gc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UKCWFzc2VydAoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwNQoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQ1JFQVRFRF9CWV9ORkRfQUREUkVTU0VTCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDMKCT09CglieiAqaWY0OV9lbmQKCgkvLyAqaWY0OV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwOAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdChjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yKSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJY2FsbHN1YiBpc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCBpcyBvbmUgb2YgdGhlIGxpbmtlZCBhZGRyZXNzZXMgaW4gYW4gbmZkCglhc3NlcnQKCippZjQ5X2VuZDoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTMKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJcHVzaGludCA0Cgk9PQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTUKCS8vIHVzZXJPZmZlcmVkTkZEQXBwSUQgPSB2YWx1ZVRvVmVyaWZ5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9idXJ5IDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTYKCS8vIGFzc2VydCh0aGlzLmlzTkZEQXBwSURWYWxpZCh1c2VyT2ZmZXJlZE5GREFwcElEKSwgJ3Byb3ZpZGVkIE5GRCBtdXN0IGJlIHZhbGlkJykKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBpc05GREFwcElEVmFsaWQKCgkvLyBwcm92aWRlZCBORkQgbXVzdCBiZSB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgcmF3Qnl0ZXMoQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcykgPT09IHJhd0J5dGVzKHN0YWtlcikgfHwKCS8vICAgICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCh1c2VyT2ZmZXJlZE5GREFwcElELCBzdGFrZXIpLAoJLy8gICAgICAgICAicHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlciIKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWR1cAoJYm56ICpza2lwX29yNgoJZnJhbWVfZGlnIDEgLy8gc3Rha2VyOiBhZGRyZXNzCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWNhbGxzdWIgaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0Cgl8fAoKKnNraXBfb3I2OgoJLy8gcHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgYnRvaShBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykgYXMgYnl0ZXMpID09PQoJLy8gICAgICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBuZmQgbXVzdCBiZSBhIHNlZ21lbnQgb2YgdGhlIG5mZCB0aGUgdmFsaWRhdG9yIHNwZWNpZmllZCBhcyBhIHJlcXVpcmVtZW50JwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNzA2MTcyNjU2ZTc0NDE3MDcwNDk0NCAvLyAiaS5wYXJlbnRBcHBJRCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykKCWFzc2VydAoJYnRvaQoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDgKCWJ0b2kKCT09CgoJLy8gc3BlY2lmaWVkIG5mZCBtdXN0IGJlIGEgc2VnbWVudCBvZiB0aGUgbmZkIHRoZSB2YWxpZGF0b3Igc3BlY2lmaWVkIGFzIGEgcmVxdWlyZW1lbnQKCWFzc2VydAoKKmlmNTBfZW5kOgoJcmV0c3ViCgovLyBpc05GREFwcElEVmFsaWQobmZkQXBwSUQ6IHVpbnQ2NCk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBnaXZlbiBORkQgQXBwIGlkIGlzIHZhbGlkLiAgVXNpbmcgb25seSB0aGUgQXBwIGlkIHRoZXJlJ3Mgbm8gdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBuYW1lIChpZTogdGhhdCBuZmQgWCBpcyBuYW1lIFkpCi8vIFNvIGl0J3MgYXNzdW1lZCBmb3IgdGhlIGNhbGxlciwgdGhlIGFwcCBpZCBhbG9uZSBpcyBmaW5lLiAgVGhlIG5hbWUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYXBwIGlkIGFuZCB0aGUgdHdvCi8vIHRvZ2V0aGVyIGFyZSB1c2VkIGZvciB2YWxpZGl0eSBjaGVjayBjYWxsIHRvIHRoZSBuZmQgcmVnaXN0cnkuCi8vCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBORkQgQXBwIGlkIHRvIHZlcmlmeS4KLy8KLy8gQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBORkQgQXBwIGlkIGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UuCmlzTkZEQXBwSURWYWxpZDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDUKCS8vIHVzZXJPZmZlcmVkTkZETmFtZSA9IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm5hbWUnKSBhcyBzdHJpbmcKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNmU2MTZkNjUgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDcKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCB1c2VyT2ZmZXJlZE5GRE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCkKCWludGMgMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGUgMHg2OTczNWY3NjYxNmM2OTY0NWY2ZTY2NjQ1ZjYxNzA3MDY5NjQgLy8gImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUwCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ1MgoJLy8gcmV0dXJuIGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpID09PSAxOwoJaXR4biBMYXN0TG9nCglidG9pCglpbnQgMQoJPT0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KG5mZEFwcElEOiB1aW50NjQsIGFkZHJUb0ZpbmQ6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBhbiBORkRzIGxpc3Qgb2YgdmVyaWZpZWQgYWRkcmVzc2VzLgovLyBUaGUgTkZEIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFzIG9mZmljaWFsLgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIGFwcGxpY2F0aW9uIGlkLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJUb0ZpbmQgLSBUaGUgYWRkcmVzcyB0byBmaW5kIGluIHRoZSB2LmNhQWxnby4wLmFzIHByb3BlcnR5Ci8vIEByZXR1cm4ge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLgppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjUKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjYKCS8vIGFwcGxpY2F0aW9uQXJnczogWydyZWFkX3Byb3BlcnR5JywgJ3YuY2FBbGdvLjAuYXMnXQoJcHVzaGJ5dGVzIDB4NzI2NTYxNjQ1ZjcwNzI2ZjcwNjU3Mjc0NzkgLy8gInJlYWRfcHJvcGVydHkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4NzYyZTYzNjE0MTZjNjc2ZjJlMzAyZTYxNzMgLy8gInYuY2FBbGdvLjAuYXMiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OAoJLy8gY2FBbGdvRGF0YSA9IHRoaXMuaXR4bi5sYXN0TG9nCglpdHhuIExhc3RMb2cKCWZyYW1lX2J1cnkgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjYUFsZ29EYXRhLmxlbmd0aDsgaSArPSAzMikKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzEwOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGkgPCBjYUFsZ29EYXRhLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCWxlbgoJPAoJYnogKmZvcl8xMF9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MAoJLy8gYWRkciA9IGV4dHJhY3QzKGNhQWxnb0RhdGEsIGksIDMyKQoJZnJhbWVfZGlnIDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAzMgoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMiAvLyBhZGRyOiBieXRlW10KCgkvLyAqaWY1MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcxCgkvLyBhZGRyICE9PSByYXdCeXRlcyhnbG9iYWxzLnplcm9BZGRyZXNzKSAmJiBhZGRyID09PSByYXdCeXRlcyhhZGRyVG9GaW5kKQoJZnJhbWVfZGlnIDIgLy8gYWRkcjogYnl0ZVtdCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgMiAvLyBhZGRyOiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBhZGRyVG9GaW5kOiBBZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDEwOgoJYnogKmlmNTFfZW5kCgoJLy8gKmlmNTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzIKCS8vIHJldHVybiB0cnVlOwoJaW50IDEKCWIgKmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCpyZXR1cm4KCippZjUxX2VuZDoKCipmb3JfMTBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gaSArPSAzMgoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMzIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMAoKKmZvcl8xMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3NQoJLy8gcmV0dXJuIGZhbHNlOwoJaW50IDAKCippc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBhbGdvU2F0dXJhdGlvbkxldmVsKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlIGJlZm9yZQovLyB0aGUgdmFsaWRhdG9yIGlzIGNvbnNpZGVyZWQgc2F0dXJhdGVkIC0gd2hlcmUgcmV3YXJkcyBhcmUgZGltaW5pc2hlZC4KLy8gTk9URTogdGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIHR3aWNlIC0gaGVyZSBhbmQgaW4gc3Rha2luZyBwb29sIGNvbnRyYWN0LiAgQm90aCBtdXN0IGJlIGlkZW50aWNhbC4KYWxnb1NhdHVyYXRpb25MZXZlbDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0ODQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ4NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX1NPRlRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJcHVzaGludCAxMDAKCW11bHcKCWludCAwCglwdXNoaW50IDEwMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIG1heEFsbG93ZWRTdGFrZSgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgTUFYSU1VTSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZS4KLy8gQWRkaW5nIHN0YWtlIGlzIGNvbXBsZXRlbHkgYmxvY2tlZCBhdCB0aGlzIGFtb3VudC4KbWF4QWxsb3dlZFN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ5NAoJLy8gb25saW5lID0gdGhpcy5nZXRDdXJyZW50T25saW5lU3Rha2UoKQoJY2FsbHN1YiBnZXRDdXJyZW50T25saW5lU3Rha2UKCWZyYW1lX2J1cnkgMCAvLyBvbmxpbmU6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDk2CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfSEFSRF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDE1MAoJbXVsdwoJaW50IDAKCXB1c2hpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gbWF4QWxnb0FsbG93ZWRQZXJQb29sKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBNQVhJTVVNIGFsbG93ZWQgc3Rha2UgcGVyIHBvb2wgYW5kIHN0aWxsIHJlY2VpdmUgaW5jZW50aXZlcyAtIHdlJ2xsIHRyZWF0IHRoaXMgYXMgdGhlICdtYXggcGVyIHBvb2wnCm1heEFsZ29BbGxvd2VkUGVyUG9vbDoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTA0CgkvLyByZXR1cm4gNzBfMDAwXzAwMF8wMDBfMDAwOwoJcHVzaGludCA3MF8wMDBfMDAwXzAwMF8wMDAKCXJldHN1YgoKLy8gZ2V0Q3VycmVudE9ubGluZVN0YWtlKCk6IHVpbnQ2NApnZXRDdXJyZW50T25saW5lU3Rha2U6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUwOQoJLy8gcmV0dXJuIDJfMDAwXzAwMF8wMDBfMDAwXzAwMDsKCXB1c2hpbnQgMl8wMDBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIG1pbkJhbGFuY2VGb3JBY2NvdW50KGNvbnRyYWN0czogdWludDY0LCBleHRyYVBhZ2VzOiB1aW50NjQsIGFzc2V0czogdWludDY0LCBsb2NhbEludHM6IHVpbnQ2NCwgbG9jYWxCeXRlczogdWludDY0LCBnbG9iYWxJbnRzOiB1aW50NjQsIGdsb2JhbEJ5dGVzOiB1aW50NjQpOiB1aW50NjQKbWluQmFsYW5jZUZvckFjY291bnQ6Cglwcm90byA3IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTIxCgkvLyBtaW5CYWwgPSBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFCglpbnQgMTAwMDAwCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMgoJLy8gbWluQmFsICs9IGNvbnRyYWN0cyAqIEFQUExJQ0FUSU9OX0JBU0VfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyYWN0czogdWludDY0CglpbnQgMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMwoJLy8gbWluQmFsICs9IGV4dHJhUGFnZXMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBleHRyYVBhZ2VzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI0CgkvLyBtaW5CYWwgKz0gYXNzZXRzICogQVNTRVRfSE9MRElOR19GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYXNzZXRzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI1CgkvLyBtaW5CYWwgKz0gbG9jYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gbG9jYWxJbnRzOiB1aW50NjQKCXB1c2hpbnQgMjg1MDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI2CgkvLyBtaW5CYWwgKz0gZ2xvYmFsSW50cyAqIFNTQ19WQUxVRV9VSU5UCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC02IC8vIGdsb2JhbEludHM6IHVpbnQ2NAoJcHVzaGludCAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjcKCS8vIG1pbkJhbCArPSBsb2NhbEJ5dGVzICogU1NDX1ZBTFVFX0JZVEVTCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC01IC8vIGxvY2FsQnl0ZXM6IHVpbnQ2NAoJcHVzaGludCA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjgKCS8vIG1pbkJhbCArPSBnbG9iYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNyAvLyBnbG9iYWxCeXRlczogdWludDY0CglwdXNoaW50IDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyOQoJLy8gcmV0dXJuIG1pbkJhbDsKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTM2CgkvLyByZXR1cm4gU0NCT1hfUEVSQk9YICsgdG90YWxOdW1CeXRlcyAqIFNDQk9YX1BFUkJZVEU7CglwdXNoaW50IDI1MDAKCWZyYW1lX2RpZyAtMSAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCXB1c2hpbnQgNDAwCgkqCgkrCglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxYjVlODJjNiAvLyBtZXRob2QgImluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg3OTQ3MmQ4MyAvLyBtZXRob2QgImxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZCIKCXB1c2hieXRlcyAweDVmN2FjZmQ5IC8vIG1ldGhvZCAiZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQiCglwdXNoYnl0ZXMgMHgzMTcyY2E5ZCAvLyBtZXRob2QgImdhcygpdm9pZCIKCXB1c2hieXRlcyAweDhhODcxNDJkIC8vIG1ldGhvZCAiZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHhkMTM2NmNjMyAvLyBtZXRob2QgImdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDNiMDQ1YzVjIC8vIG1ldGhvZCAiZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0IgoJcHVzaGJ5dGVzIDB4NzVhZmY2MWQgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDFmMmYwMTA5IC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MmZhMjJjNGIgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpIgoJcHVzaGJ5dGVzIDB4OTEwZTk0YWMgLy8gbWV0aG9kICJnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdIgoJcHVzaGJ5dGVzIDB4NTcyNzY3ZDEgLy8gbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5YjUwNGFhZiAvLyBtZXRob2QgImdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCXB1c2hieXRlcyAweGZiYzYzMTc4IC8vIG1ldGhvZCAiZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHgyNDQ5OGNmNCAvLyBtZXRob2QgImRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sIgoJcHVzaGJ5dGVzIDB4Zjg0NmRkN2EgLy8gbWV0aG9kICJnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10iCglwdXNoYnl0ZXMgMHg4MzA1MDUwMSAvLyBtZXRob2QgImdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg3YmJiNmM4ZCAvLyBtZXRob2QgImdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkiCglwdXNoYnl0ZXMgMHhmODM5NDE0YSAvLyBtZXRob2QgImdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDBjMzE3Y2ZiIC8vIG1ldGhvZCAiYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKCXB1c2hieXRlcyAweDNlMjg4OTcyIC8vIG1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGQ1ZmFhZGEgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgxOGFhYzdhNyAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4Zjk5ZWY1NGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MTA4MDlkNGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhlNzc4ZGQ1YSAvLyBtZXRob2QgImFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweGJmNTI1OWQwIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDRkZjhkODZlIC8vIG1ldGhvZCAic2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCXB1c2hieXRlcyAweDQxOGZjZWZjIC8vIG1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4Mjg3M2Y1MDQgLy8gbWV0aG9kICJmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKSIKCXB1c2hieXRlcyAweDA1NDdmNGZlIC8vIG1ldGhvZCAibW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGNiNjY4MzU4IC8vIG1ldGhvZCAiZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGEgKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdCAqYWJpX3JvdXRlX2dhcyAqYWJpX3JvdXRlX2dldE1ickFtb3VudHMgKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzICphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9ycyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyICphYmlfcm91dGVfZ2V0UG9vbHMgKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQgKmFiaV9yb3V0ZV9nZXRQb29sSW5mbyAqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbCAqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlIgKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQgKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvICphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyAqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQgKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3IgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRCAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyAqYWJpX3JvdXRlX2FkZFBvb2wgKmFiaV9yb3V0ZV9hZGRTdGFrZSAqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzICphYmlfcm91dGVfc3Rha2VSZW1vdmVkICphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXIgKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZSAqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCXB1c2hieXRlcyAweDQ2Zjc2NTMzIC8vIG1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json b/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json index a95917637..6f079c8af 100644 --- a/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json +++ b/examples/reti/artifacts/ValidatorRegistry.arc56_draft.json @@ -1197,27576 +1197,612 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 168, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183 - ] - }, - { - "teal": 9, - "source": 168, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 10, - "source": 168, - "pc": [ - 186 - ] - }, - { - "teal": 11, - "source": 168, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 18, - "source": 168, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 19, - "source": 168, - "pc": [ - 191 - ] - }, - { - "teal": 20, - "source": 168, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 21, - "source": 168, - "pc": [ - 194 - ] - }, - { - "teal": 22, - "source": 168, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 23, - "source": 168, - "pc": [ - 197 - ] - }, - { - "teal": 24, - "source": 168, - "pc": [ - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223 - ] - }, - { - "teal": 28, - "source": 168, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 224 - ] - }, - { - "teal": 33, - "source": 201, - "pc": [ - 225, - 226, - 227 - ] - }, - { - "teal": 34, - "source": 201, - "pc": [ - 228 - ] - }, - { - "teal": 35, - "source": 201, - "pc": [ - 229 - ] - }, - { - "teal": 39, - "source": 201, - "pc": [ - 230, - 231, - 232 - ] - }, - { - "teal": 43, - "source": 202, - "pc": [ - 233, - 234 - ] - }, - { - "teal": 44, - "source": 202, - "pc": [ - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268 - ] - }, - { - "teal": 45, - "source": 202, - "pc": [ - 269 - ] - }, - { - "teal": 46, - "source": 202, - "pc": [ - 270 - ] - }, - { - "teal": 50, - "source": 204, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 51, - "source": 204, - "pc": [ - 273 - ] - }, - { - "teal": 55, - "source": 205, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 56, - "source": 205, - "pc": [ - 276 - ] - }, - { - "teal": 57, - "source": 205, - "pc": [ - 277, - 278 - ] - }, - { - "teal": 58, - "source": 205, - "pc": [ - 279 - ] - }, - { - "teal": 59, - "source": 205, - "pc": [ - 280, - 281 - ] - }, - { - "teal": 60, - "source": 205, - "pc": [ - 282 - ] - }, - { - "teal": 61, - "source": 205, - "pc": [ - 283 - ] - }, - { - "teal": 62, - "source": 201, - "pc": [ - 284 - ] - }, - { - "teal": 67, - "source": 208, - "pc": [ - 285, - 286, - 287 - ] - }, - { - "teal": 68, - "source": 208, - "pc": [ - 288 - ] - }, - { - "teal": 69, - "source": 208, - "pc": [ - 289 - ] - }, - { - "teal": 73, - "source": 208, - "pc": [ - 290, - 291, - 292 - ] - }, - { - "teal": 77, - "source": 209, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 78, - "source": 209, - "pc": [ - 295 - ] - }, - { - "teal": 79, - "source": 209, - "pc": [ - 296, - 297 - ] - }, - { - "teal": 80, - "source": 209, - "pc": [ - 298 - ] - }, - { - "teal": 81, - "source": 209, - "pc": [ - 299, - 300 - ] - }, - { - "teal": 82, - "source": 209, - "pc": [ - 301 - ] - }, - { - "teal": 83, - "source": 209, - "pc": [ - 302 - ] - }, - { - "teal": 87, - "source": 210, - "pc": [ - 303, - 304 - ] - }, - { - "teal": 88, - "source": 210, - "pc": [ - 305 - ] - }, - { - "teal": 89, - "source": 210, - "pc": [ - 306 - ] - }, - { - "teal": 93, - "source": 211, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 94, - "source": 211, - "pc": [ - 309 - ] - }, - { - "teal": 95, - "source": 211, - "pc": [ - 310 - ] - }, - { - "teal": 99, - "source": 212, - "pc": [ - 311, - 312 - ] - }, - { - "teal": 100, - "source": 212, - "pc": [ - 313 - ] - }, - { - "teal": 101, - "source": 212, - "pc": [ - 314 - ] - }, - { - "teal": 102, - "source": 208, - "pc": [ - 315 - ] - }, - { - "teal": 107, - "source": 215, - "pc": [ - 316, - 317, - 318 - ] - }, - { - "teal": 108, - "source": 215, - "pc": [ - 319 - ] - }, - { - "teal": 111, - "source": 215, - "pc": [ - 320, - 321, - 322 - ] - }, - { - "teal": 112, - "source": 215, - "pc": [ - 323 - ] - }, - { - "teal": 113, - "source": 215, - "pc": [ - 324 - ] - }, - { - "teal": 117, - "source": 215, - "pc": [ - 325, - 326, - 327 - ] - }, - { - "teal": 121, - "source": 217, - "pc": [ - 328, - 329 - ] - }, - { - "teal": 122, - "source": 217, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 123, - "source": 217, - "pc": [ - 332 - ] - }, - { - "teal": 124, - "source": 217, - "pc": [ - 333 - ] - }, - { - "teal": 125, - "source": 215, - "pc": [ - 334 - ] - }, - { - "teal": 130, - "source": 220, - "pc": [ - 335, - 336, - 337 - ] - }, - { - "teal": 131, - "source": 220, - "pc": [ - 338, - 339, - 340 - ] - }, - { - "teal": 134, - "source": 220, - "pc": [ - 341, - 342, - 343 - ] - }, - { - "teal": 135, - "source": 220, - "pc": [ - 344 - ] - }, - { - "teal": 138, - "source": 220, - "pc": [ - 345, - 346, - 347 - ] - }, - { - "teal": 139, - "source": 220, - "pc": [ - 348 - ] - }, - { - "teal": 140, - "source": 220, - "pc": [ - 349 - ] - }, - { - "teal": 144, - "source": 220, - "pc": [ - 350, - 351, - 352 - ] - }, - { - "teal": 148, - "source": 221, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 149, - "source": 221, - "pc": [ - 355 - ] - }, - { - "teal": 150, - "source": 221, - "pc": [ - 356 - ] - }, - { - "teal": 151, - "source": 221, - "pc": [ - 357 - ] - }, - { - "teal": 152, - "source": 221, - "pc": [ - 358 - ] - }, - { - "teal": 153, - "source": 221, - "pc": [ - 359 - ] - }, - { - "teal": 157, - "source": 222, - "pc": [ - 360, - 361 - ] - }, - { - "teal": 158, - "source": 222, - "pc": [ - 362, - 363 - ] - }, - { - "teal": 159, - "source": 222, - "pc": [ - 364, - 365 - ] - }, - { - "teal": 160, - "source": 222, - "pc": [ - 366 - ] - }, - { - "teal": 161, - "source": 220, - "pc": [ - 367 - ] - }, - { - "teal": 166, - "source": 225, - "pc": [ - 368, - 369, - 370 - ] - }, - { - "teal": 167, - "source": 225, - "pc": [ - 371 - ] - }, - { - "teal": 168, - "source": 225, - "pc": [ - 372 - ] - }, - { - "teal": 172, - "source": 225, - "pc": [ - 373, - 374, - 375 - ] - }, - { - "teal": 176, - "source": 226, - "pc": [ - 376, - 377 - ] - }, - { - "teal": 177, - "source": 226, - "pc": [ - 378 - ] - }, - { - "teal": 178, - "source": 226, - "pc": [ - 379, - 380 - ] - }, - { - "teal": 179, - "source": 226, - "pc": [ - 381 - ] - }, - { - "teal": 180, - "source": 226, - "pc": [ - 382, - 383 - ] - }, - { - "teal": 181, - "source": 226, - "pc": [ - 384 - ] - }, - { - "teal": 182, - "source": 226, - "pc": [ - 385 - ] - }, - { - "teal": 183, - "source": 225, - "pc": [ - 386 - ] - }, - { - "teal": 188, - "source": 232, - "pc": [ - 387, - 388, - 389 - ] - }, - { - "teal": 189, - "source": 232, - "pc": [ - 390 - ] - }, - { - "teal": 190, - "source": 232, - "pc": [ - 391 - ] - }, - { - "teal": 196, - "source": 232, - "pc": [ - 392, - 393, - 394 - ] - }, - { - "teal": 197, - "source": 232, - "pc": [ - 395 - ] - }, - { - "teal": 202, - "source": 243, - "pc": [ - 396 - ] - }, - { - "teal": 205, - "source": 243, - "pc": [ - 397, - 398, - 399 - ] - }, - { - "teal": 206, - "source": 243, - "pc": [ - 400 - ] - }, - { - "teal": 207, - "source": 243, - "pc": [ - 401 - ] - }, - { - "teal": 208, - "source": 243, - "pc": [ - 402 - ] - }, - { - "teal": 209, - "source": 243, - "pc": [ - 403 - ] - }, - { - "teal": 221, - "source": 243, - "pc": [ - 404, - 405, - 406 - ] - }, - { - "teal": 244, - "source": 247, - "pc": [ - 407, - 408, - 409 - ] - }, - { - "teal": 245, - "source": 247, - "pc": [ - 410, - 411, - 412 - ] - }, - { - "teal": 246, - "source": 247, - "pc": [ - 413 - ] - }, - { - "teal": 247, - "source": 257, - "pc": [ - 414, - 415 - ] - }, - { - "teal": 248, - "source": 256, - "pc": [ - 416, - 417 - ] - }, - { - "teal": 249, - "source": 255, - "pc": [ - 418 - ] - }, - { - "teal": 250, - "source": 255, - "pc": [ - 419, - 420 - ] - }, - { - "teal": 251, - "source": 252, - "pc": [ - 421, - 422 - ] - }, - { - "teal": 252, - "source": 249, - "pc": [ - 423 - ] - }, - { - "teal": 253, - "source": 248, - "pc": [ - 424, - 425, - 426 - ] - }, - { - "teal": 254, - "source": 248, - "pc": [ - 427 - ] - }, - { - "teal": 255, - "source": 248, - "pc": [ - 428 - ] - }, - { - "teal": 256, - "source": 260, - "pc": [ - 429, - 430 - ] - }, - { - "teal": 257, - "source": 261, - "pc": [ - 431, - 432, - 433 - ] - }, - { - "teal": 258, - "source": 261, - "pc": [ - 434, - 435, - 436 - ] - }, - { - "teal": 259, - "source": 260, - "pc": [ - 437 - ] - }, - { - "teal": 260, - "source": 260, - "pc": [ - 438 - ] - }, - { - "teal": 261, - "source": 260, - "pc": [ - 439 - ] - }, - { - "teal": 262, - "source": 264, - "pc": [ - 440, - 441, - 442 - ] - }, - { - "teal": 263, - "source": 264, - "pc": [ - 443, - 444, - 445 - ] - }, - { - "teal": 264, - "source": 264, - "pc": [ - 446 - ] - }, - { - "teal": 265, - "source": 264, - "pc": [ - 447 - ] - }, - { - "teal": 266, - "source": 243, - "pc": [ - 448 - ] - }, - { - "teal": 271, - "source": 271, - "pc": [ - 449 - ] - }, - { - "teal": 274, - "source": 271, - "pc": [ - 450, - 451, - 452 - ] - }, - { - "teal": 275, - "source": 271, - "pc": [ - 453 - ] - }, - { - "teal": 276, - "source": 271, - "pc": [ - 454 - ] - }, - { - "teal": 277, - "source": 271, - "pc": [ - 455 - ] - }, - { - "teal": 278, - "source": 271, - "pc": [ - 456 - ] - }, - { - "teal": 284, - "source": 271, - "pc": [ - 457, - 458, - 459 - ] - }, - { - "teal": 300, - "source": 277, - "pc": [ - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501 - ] - }, - { - "teal": 301, - "source": 278, - "pc": [ - 502, - 503, - 504 - ] - }, - { - "teal": 302, - "source": 278, - "pc": [ - 505 - ] - }, - { - "teal": 303, - "source": 278, - "pc": [ - 506 - ] - }, - { - "teal": 304, - "source": 279, - "pc": [ - 507, - 508, - 509 - ] - }, - { - "teal": 305, - "source": 279, - "pc": [ - 510 - ] - }, - { - "teal": 306, - "source": 279, - "pc": [ - 511 - ] - }, - { - "teal": 307, - "source": 280, - "pc": [ - 512, - 513, - 514 - ] - }, - { - "teal": 308, - "source": 280, - "pc": [ - 515 - ] - }, - { - "teal": 309, - "source": 280, - "pc": [ - 516 - ] - }, - { - "teal": 310, - "source": 281, - "pc": [ - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526 - ] - }, - { - "teal": 311, - "source": 281, - "pc": [ - 527 - ] - }, - { - "teal": 312, - "source": 282, - "pc": [ - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537 - ] - }, - { - "teal": 313, - "source": 282, - "pc": [ - 538 - ] - }, - { - "teal": 314, - "source": 283, - "pc": [ - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548 - ] - }, - { - "teal": 315, - "source": 283, - "pc": [ - 549 - ] - }, - { - "teal": 316, - "source": 271, - "pc": [ - 550 - ] - }, - { - "teal": 321, - "source": 291, - "pc": [ - 551 - ] - }, - { - "teal": 324, - "source": 291, - "pc": [ - 552, - 553, - 554 - ] - }, - { - "teal": 325, - "source": 291, - "pc": [ - 555 - ] - }, - { - "teal": 326, - "source": 291, - "pc": [ - 556 - ] - }, - { - "teal": 327, - "source": 291, - "pc": [ - 557 - ] - }, - { - "teal": 328, - "source": 291, - "pc": [ - 558 - ] - }, - { - "teal": 329, - "source": 291, - "pc": [ - 559 - ] - }, - { - "teal": 335, - "source": 291, - "pc": [ - 560, - 561, - 562 - ] - }, - { - "teal": 339, - "source": 292, - "pc": [ - 563, - 564 - ] - }, - { - "teal": 340, - "source": 292, - "pc": [ - 565 - ] - }, - { - "teal": 341, - "source": 291, - "pc": [ - 566 - ] - }, - { - "teal": 346, - "source": 296, - "pc": [ - 567 - ] - }, - { - "teal": 349, - "source": 296, - "pc": [ - 568, - 569, - 570 - ] - }, - { - "teal": 350, - "source": 296, - "pc": [ - 571 - ] - }, - { - "teal": 353, - "source": 296, - "pc": [ - 572, - 573, - 574 - ] - }, - { - "teal": 354, - "source": 296, - "pc": [ - 575 - ] - }, - { - "teal": 355, - "source": 296, - "pc": [ - 576 - ] - }, - { - "teal": 356, - "source": 296, - "pc": [ - 577 - ] - }, - { - "teal": 357, - "source": 296, - "pc": [ - 578 - ] - }, - { - "teal": 361, - "source": 296, - "pc": [ - 579, - 580, - 581 - ] - }, - { - "teal": 365, - "source": 297, - "pc": [ - 582 - ] - }, - { - "teal": 366, - "source": 297, - "pc": [ - 583, - 584 - ] - }, - { - "teal": 367, - "source": 297, - "pc": [ - 585 - ] - }, - { - "teal": 368, - "source": 297, - "pc": [ - 586, - 587 - ] - }, - { - "teal": 369, - "source": 297, - "pc": [ - 588 - ] - }, - { - "teal": 370, - "source": 297, - "pc": [ - 589 - ] - }, - { - "teal": 371, - "source": 297, - "pc": [ - 590, - 591 - ] - }, - { - "teal": 372, - "source": 297, - "pc": [ - 592 - ] - }, - { - "teal": 373, - "source": 296, - "pc": [ - 593 - ] - }, - { - "teal": 378, - "source": 301, - "pc": [ - 594 - ] - }, - { - "teal": 381, - "source": 301, - "pc": [ - 595, - 596, - 597 - ] - }, - { - "teal": 382, - "source": 301, - "pc": [ - 598 - ] - }, - { - "teal": 385, - "source": 301, - "pc": [ - 599, - 600, - 601 - ] - }, - { - "teal": 386, - "source": 301, - "pc": [ - 602 - ] - }, - { - "teal": 387, - "source": 301, - "pc": [ - 603 - ] - }, - { - "teal": 388, - "source": 301, - "pc": [ - 604 - ] - }, - { - "teal": 389, - "source": 301, - "pc": [ - 605 - ] - }, - { - "teal": 393, - "source": 301, - "pc": [ - 606, - 607, - 608 - ] - }, - { - "teal": 397, - "source": 302, - "pc": [ - 609, - 610 - ] - }, - { - "teal": 398, - "source": 302, - "pc": [ - 611, - 612 - ] - }, - { - "teal": 399, - "source": 302, - "pc": [ - 613 - ] - }, - { - "teal": 400, - "source": 302, - "pc": [ - 614, - 615 - ] - }, - { - "teal": 401, - "source": 302, - "pc": [ - 616 - ] - }, - { - "teal": 402, - "source": 302, - "pc": [ - 617 - ] - }, - { - "teal": 403, - "source": 302, - "pc": [ - 618, - 619 - ] - }, - { - "teal": 404, - "source": 302, - "pc": [ - 620 - ] - }, - { - "teal": 405, - "source": 301, - "pc": [ - 621 - ] - }, - { - "teal": 410, - "source": 306, - "pc": [ - 622 - ] - }, - { - "teal": 413, - "source": 306, - "pc": [ - 623, - 624, - 625 - ] - }, - { - "teal": 414, - "source": 306, - "pc": [ - 626 - ] - }, - { - "teal": 417, - "source": 306, - "pc": [ - 627, - 628, - 629 - ] - }, - { - "teal": 418, - "source": 306, - "pc": [ - 630 - ] - }, - { - "teal": 419, - "source": 306, - "pc": [ - 631 - ] - }, - { - "teal": 420, - "source": 306, - "pc": [ - 632 - ] - }, - { - "teal": 421, - "source": 306, - "pc": [ - 633 - ] - }, - { - "teal": 425, - "source": 306, - "pc": [ - 634, - 635, - 636 - ] - }, - { - "teal": 429, - "source": 307, - "pc": [ - 637 - ] - }, - { - "teal": 430, - "source": 307, - "pc": [ - 638, - 639 - ] - }, - { - "teal": 431, - "source": 307, - "pc": [ - 640 - ] - }, - { - "teal": 432, - "source": 307, - "pc": [ - 641, - 642 - ] - }, - { - "teal": 433, - "source": 307, - "pc": [ - 643 - ] - }, - { - "teal": 434, - "source": 307, - "pc": [ - 644 - ] - }, - { - "teal": 435, - "source": 307, - "pc": [ - 645, - 646 - ] - }, - { - "teal": 436, - "source": 307, - "pc": [ - 647 - ] - }, - { - "teal": 437, - "source": 307, - "pc": [ - 648, - 649 - ] - }, - { - "teal": 438, - "source": 307, - "pc": [ - 650, - 651 - ] - }, - { - "teal": 439, - "source": 307, - "pc": [ - 652 - ] - }, - { - "teal": 440, - "source": 307, - "pc": [ - 653, - 654 - ] - }, - { - "teal": 441, - "source": 307, - "pc": [ - 655 - ] - }, - { - "teal": 442, - "source": 307, - "pc": [ - 656 - ] - }, - { - "teal": 443, - "source": 307, - "pc": [ - 657, - 658 - ] - }, - { - "teal": 444, - "source": 307, - "pc": [ - 659 - ] - }, - { - "teal": 445, - "source": 307, - "pc": [ - 660 - ] - }, - { - "teal": 446, - "source": 306, - "pc": [ - 661 - ] - }, - { - "teal": 451, - "source": 317, - "pc": [ - 662 - ] - }, - { - "teal": 454, - "source": 317, - "pc": [ - 663, - 664, - 665 - ] - }, - { - "teal": 455, - "source": 317, - "pc": [ - 666 - ] - }, - { - "teal": 458, - "source": 317, - "pc": [ - 667, - 668, - 669 - ] - }, - { - "teal": 459, - "source": 317, - "pc": [ - 670 - ] - }, - { - "teal": 460, - "source": 317, - "pc": [ - 671 - ] - }, - { - "teal": 461, - "source": 317, - "pc": [ - 672, - 673 - ] - }, - { - "teal": 462, - "source": 317, - "pc": [ - 674 - ] - }, - { - "teal": 463, - "source": 317, - "pc": [ - 675 - ] - }, - { - "teal": 464, - "source": 317, - "pc": [ - 676, - 677, - 678 - ] - }, - { - "teal": 465, - "source": 317, - "pc": [ - 679 - ] - }, - { - "teal": 466, - "source": 317, - "pc": [ - 680 - ] - }, - { - "teal": 467, - "source": 317, - "pc": [ - 681 - ] - }, - { - "teal": 468, - "source": 317, - "pc": [ - 682 - ] - }, - { - "teal": 469, - "source": 317, - "pc": [ - 683 - ] - }, - { - "teal": 470, - "source": 317, - "pc": [ - 684 - ] - }, - { - "teal": 479, - "source": 317, - "pc": [ - 685, - 686, - 687 - ] - }, - { - "teal": 482, - "source": 317, - "pc": [ - 688 - ] - }, - { - "teal": 483, - "source": 317, - "pc": [ - 689, - 690 - ] - }, - { - "teal": 487, - "source": 318, - "pc": [ - 691 - ] - }, - { - "teal": 488, - "source": 318, - "pc": [ - 692, - 693 - ] - }, - { - "teal": 492, - "source": 319, - "pc": [ - 694, - 695 - ] - }, - { - "teal": 493, - "source": 319, - "pc": [ - 696, - 697 - ] - }, - { - "teal": 494, - "source": 319, - "pc": [ - 698 - ] - }, - { - "teal": 495, - "source": 319, - "pc": [ - 699, - 700 - ] - }, - { - "teal": 496, - "source": 319, - "pc": [ - 701 - ] - }, - { - "teal": 497, - "source": 319, - "pc": [ - 702 - ] - }, - { - "teal": 498, - "source": 319, - "pc": [ - 703, - 704 - ] - }, - { - "teal": 499, - "source": 319, - "pc": [ - 705 - ] - }, - { - "teal": 500, - "source": 319, - "pc": [ - 706, - 707 - ] - }, - { - "teal": 504, - "source": 320, - "pc": [ - 708 - ] - }, - { - "teal": 505, - "source": 320, - "pc": [ - 709, - 710 - ] - }, - { - "teal": 510, - "source": 320, - "pc": [ - 711, - 712 - ] - }, - { - "teal": 511, - "source": 320, - "pc": [ - 713 - ] - }, - { - "teal": 512, - "source": 320, - "pc": [ - 714 - ] - }, - { - "teal": 513, - "source": 320, - "pc": [ - 715, - 716, - 717 - ] - }, - { - "teal": 518, - "source": 321, - "pc": [ - 718, - 719 - ] - }, - { - "teal": 519, - "source": 321, - "pc": [ - 720, - 721 - ] - }, - { - "teal": 520, - "source": 321, - "pc": [ - 722, - 723 - ] - }, - { - "teal": 521, - "source": 321, - "pc": [ - 724 - ] - }, - { - "teal": 522, - "source": 321, - "pc": [ - 725 - ] - }, - { - "teal": 523, - "source": 321, - "pc": [ - 726 - ] - }, - { - "teal": 524, - "source": 321, - "pc": [ - 727 - ] - }, - { - "teal": 525, - "source": 321, - "pc": [ - 728 - ] - }, - { - "teal": 526, - "source": 321, - "pc": [ - 729 - ] - }, - { - "teal": 527, - "source": 321, - "pc": [ - 730 - ] - }, - { - "teal": 528, - "source": 321, - "pc": [ - 731 - ] - }, - { - "teal": 529, - "source": 321, - "pc": [ - 732, - 733, - 734 - ] - }, - { - "teal": 532, - "source": 323, - "pc": [ - 735, - 736, - 737 - ] - }, - { - "teal": 537, - "source": 325, - "pc": [ - 738, - 739 - ] - }, - { - "teal": 538, - "source": 325, - "pc": [ - 740, - 741 - ] - }, - { - "teal": 539, - "source": 325, - "pc": [ - 742, - 743 - ] - }, - { - "teal": 540, - "source": 325, - "pc": [ - 744, - 745 - ] - }, - { - "teal": 541, - "source": 325, - "pc": [ - 746 - ] - }, - { - "teal": 542, - "source": 325, - "pc": [ - 747, - 748 - ] - }, - { - "teal": 543, - "source": 325, - "pc": [ - 749 - ] - }, - { - "teal": 544, - "source": 325, - "pc": [ - 750 - ] - }, - { - "teal": 545, - "source": 325, - "pc": [ - 751, - 752 - ] - }, - { - "teal": 550, - "source": 320, - "pc": [ - 753, - 754 - ] - }, - { - "teal": 551, - "source": 320, - "pc": [ - 755 - ] - }, - { - "teal": 552, - "source": 320, - "pc": [ - 756 - ] - }, - { - "teal": 553, - "source": 320, - "pc": [ - 757, - 758 - ] - }, - { - "teal": 554, - "source": 320, - "pc": [ - 759, - 760, - 761 - ] - }, - { - "teal": 559, - "source": 327, - "pc": [ - 762, - 763 - ] - }, - { - "teal": 562, - "source": 317, - "pc": [ - 764, - 765 - ] - }, - { - "teal": 565, - "source": 317, - "pc": [ - 766, - 767 - ] - }, - { - "teal": 566, - "source": 317, - "pc": [ - 768 - ] - }, - { - "teal": 571, - "source": 334, - "pc": [ - 769 - ] - }, - { - "teal": 574, - "source": 334, - "pc": [ - 770, - 771, - 772 - ] - }, - { - "teal": 575, - "source": 334, - "pc": [ - 773 - ] - }, - { - "teal": 578, - "source": 334, - "pc": [ - 774, - 775, - 776 - ] - }, - { - "teal": 579, - "source": 334, - "pc": [ - 777 - ] - }, - { - "teal": 582, - "source": 334, - "pc": [ - 778, - 779, - 780 - ] - }, - { - "teal": 583, - "source": 334, - "pc": [ - 781 - ] - }, - { - "teal": 584, - "source": 334, - "pc": [ - 782 - ] - }, - { - "teal": 585, - "source": 334, - "pc": [ - 783 - ] - }, - { - "teal": 586, - "source": 334, - "pc": [ - 784 - ] - }, - { - "teal": 587, - "source": 334, - "pc": [ - 785 - ] - }, - { - "teal": 591, - "source": 334, - "pc": [ - 786, - 787, - 788 - ] - }, - { - "teal": 598, - "source": 336, - "pc": [ - 789, - 790 - ] - }, - { - "teal": 599, - "source": 336, - "pc": [ - 791 - ] - }, - { - "teal": 600, - "source": 336, - "pc": [ - 792 - ] - }, - { - "teal": 601, - "source": 336, - "pc": [ - 793 - ] - }, - { - "teal": 602, - "source": 336, - "pc": [ - 794, - 795, - 796 - ] - }, - { - "teal": 603, - "source": 336, - "pc": [ - 797, - 798 - ] - }, - { - "teal": 604, - "source": 336, - "pc": [ - 799 - ] - }, - { - "teal": 605, - "source": 336, - "pc": [ - 800 - ] - }, - { - "teal": 606, - "source": 336, - "pc": [ - 801 - ] - }, - { - "teal": 610, - "source": 335, - "errorMessage": "pool id must be between 1 and number of pools for this validator", - "pc": [ - 802 - ] - }, - { - "teal": 614, - "source": 339, - "pc": [ - 803, - 804 - ] - }, - { - "teal": 615, - "source": 339, - "pc": [ - 805, - 806 - ] - }, - { - "teal": 616, - "source": 339, - "pc": [ - 807 - ] - }, - { - "teal": 617, - "source": 339, - "pc": [ - 808 - ] - }, - { - "teal": 618, - "source": 339, - "pc": [ - 809, - 810 - ] - }, - { - "teal": 619, - "source": 339, - "pc": [ - 811 - ] - }, - { - "teal": 620, - "source": 339, - "pc": [ - 812 - ] - }, - { - "teal": 621, - "source": 339, - "pc": [ - 813 - ] - }, - { - "teal": 622, - "source": 339, - "pc": [ - 814 - ] - }, - { - "teal": 623, - "source": 339, - "pc": [ - 815 - ] - }, - { - "teal": 624, - "source": 339, - "pc": [ - 816 - ] - }, - { - "teal": 625, - "source": 339, - "pc": [ - 817, - 818 - ] - }, - { - "teal": 626, - "source": 339, - "pc": [ - 819 - ] - }, - { - "teal": 627, - "source": 339, - "pc": [ - 820 - ] - }, - { - "teal": 628, - "source": 339, - "pc": [ - 821, - 822 - ] - }, - { - "teal": 629, - "source": 339, - "pc": [ - 823 - ] - }, - { - "teal": 630, - "source": 339, - "pc": [ - 824 - ] - }, - { - "teal": 631, - "source": 334, - "pc": [ - 825 - ] - }, - { - "teal": 636, - "source": 343, - "pc": [ - 826 - ] - }, - { - "teal": 639, - "source": 343, - "pc": [ - 827, - 828, - 829 - ] - }, - { - "teal": 640, - "source": 343, - "pc": [ - 830 - ] - }, - { - "teal": 641, - "source": 343, - "pc": [ - 831 - ] - }, - { - "teal": 642, - "source": 343, - "pc": [ - 832 - ] - }, - { - "teal": 643, - "source": 343, - "pc": [ - 833 - ] - }, - { - "teal": 646, - "source": 343, - "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)", - "pc": [ - 834 - ] - }, - { - "teal": 649, - "source": 343, - "pc": [ - 835, - 836, - 837 - ] - }, - { - "teal": 650, - "source": 343, - "pc": [ - 838 - ] - }, - { - "teal": 651, - "source": 343, - "pc": [ - 839 - ] - }, - { - "teal": 652, - "source": 343, - "pc": [ - 840 - ] - }, - { - "teal": 653, - "source": 343, - "pc": [ - 841 - ] - }, - { - "teal": 657, - "source": 343, - "pc": [ - 842, - 843, - 844 - ] - }, - { - "teal": 661, - "source": 344, - "pc": [ - 845, - 846 - ] - }, - { - "teal": 662, - "source": 344, - "pc": [ - 847, - 848 - ] - }, - { - "teal": 663, - "source": 344, - "pc": [ - 849, - 850, - 851 - ] - }, - { - "teal": 664, - "source": 344, - "pc": [ - 852 - ] - }, - { - "teal": 665, - "source": 344, - "pc": [ - 853 - ] - }, - { - "teal": 666, - "source": 344, - "pc": [ - 854 - ] - }, - { - "teal": 667, - "source": 344, - "pc": [ - 855, - 856 - ] - }, - { - "teal": 668, - "source": 344, - "pc": [ - 857 - ] - }, - { - "teal": 669, - "source": 344, - "pc": [ - 858 - ] - }, - { - "teal": 670, - "source": 344, - "pc": [ - 859, - 860 - ] - }, - { - "teal": 671, - "source": 344, - "pc": [ - 861 - ] - }, - { - "teal": 672, - "source": 344, - "pc": [ - 862, - 863 - ] - }, - { - "teal": 673, - "source": 344, - "pc": [ - 864, - 865, - 866 - ] - }, - { - "teal": 674, - "source": 344, - "pc": [ - 867 - ] - }, - { - "teal": 675, - "source": 344, - "pc": [ - 868 - ] - }, - { - "teal": 676, - "source": 344, - "pc": [ - 869 - ] - }, - { - "teal": 677, - "source": 344, - "pc": [ - 870, - 871 - ] - }, - { - "teal": 678, - "source": 344, - "pc": [ - 872 - ] - }, - { - "teal": 679, - "source": 343, - "pc": [ - 873 - ] - }, - { - "teal": 684, - "source": 354, - "pc": [ - 874 - ] - }, - { - "teal": 687, - "source": 354, - "pc": [ - 875, - 876, - 877 - ] - }, - { - "teal": 688, - "source": 354, - "pc": [ - 878 - ] - }, - { - "teal": 691, - "source": 354, - "pc": [ - 879, - 880, - 881 - ] - }, - { - "teal": 692, - "source": 354, - "pc": [ - 882 - ] - }, - { - "teal": 693, - "source": 354, - "pc": [ - 883 - ] - }, - { - "teal": 694, - "source": 354, - "pc": [ - 884 - ] - }, - { - "teal": 695, - "source": 354, - "pc": [ - 885 - ] - }, - { - "teal": 696, - "source": 354, - "pc": [ - 886 - ] - }, - { - "teal": 706, - "source": 354, - "pc": [ - 887, - 888, - 889 - ] - }, - { - "teal": 709, - "source": 354, - "pc": [ - 890 - ] - }, - { - "teal": 710, - "source": 354, - "pc": [ - 891, - 892 - ] - }, - { - "teal": 714, - "source": 355, - "pc": [ - 893, - 894 - ] - }, - { - "teal": 715, - "source": 355, - "pc": [ - 895, - 896 - ] - }, - { - "teal": 716, - "source": 355, - "pc": [ - 897 - ] - }, - { - "teal": 717, - "source": 355, - "pc": [ - 898, - 899 - ] - }, - { - "teal": 718, - "source": 355, - "pc": [ - 900 - ] - }, - { - "teal": 719, - "source": 355, - "pc": [ - 901 - ] - }, - { - "teal": 720, - "source": 355, - "pc": [ - 902, - 903 - ] - }, - { - "teal": 721, - "source": 355, - "pc": [ - 904 - ] - }, - { - "teal": 722, - "source": 355, - "pc": [ - 905 - ] - }, - { - "teal": 723, - "source": 355, - "pc": [ - 906, - 907 - ] - }, - { - "teal": 727, - "source": 356, - "pc": [ - 908, - 909, - 910 - ] - }, - { - "teal": 728, - "source": 356, - "pc": [ - 911, - 912 - ] - }, - { - "teal": 729, - "source": 356, - "pc": [ - 913 - ] - }, - { - "teal": 730, - "source": 356, - "pc": [ - 914, - 915 - ] - }, - { - "teal": 734, - "source": 357, - "pc": [ - 916, - 917, - 918 - ] - }, - { - "teal": 735, - "source": 357, - "pc": [ - 919 - ] - }, - { - "teal": 736, - "source": 357, - "pc": [ - 920 - ] - }, - { - "teal": 737, - "source": 357, - "pc": [ - 921, - 922 - ] - }, - { - "teal": 738, - "source": 357, - "pc": [ - 923 - ] - }, - { - "teal": 739, - "source": 357, - "pc": [ - 924 - ] - }, - { - "teal": 740, - "source": 357, - "pc": [ - 925, - 926 - ] - }, - { - "teal": 741, - "source": 357, - "pc": [ - 927 - ] - }, - { - "teal": 742, - "source": 357, - "pc": [ - 928 - ] - }, - { - "teal": 743, - "source": 357, - "pc": [ - 929, - 930 - ] - }, - { - "teal": 748, - "source": 358, - "pc": [ - 931, - 932 - ] - }, - { - "teal": 749, - "source": 358, - "pc": [ - 933 - ] - }, - { - "teal": 750, - "source": 358, - "pc": [ - 934 - ] - }, - { - "teal": 751, - "source": 358, - "pc": [ - 935, - 936, - 937 - ] - }, - { - "teal": 756, - "source": 359, - "pc": [ - 938, - 939, - 940 - ] - }, - { - "teal": 757, - "source": 359, - "pc": [ - 941, - 942 - ] - }, - { - "teal": 763, - "source": 361, - "pc": [ - 943, - 944 - ] - }, - { - "teal": 764, - "source": 361, - "pc": [ - 945, - 946 - ] - }, - { - "teal": 765, - "source": 361, - "pc": [ - 947 - ] - }, - { - "teal": 766, - "source": 361, - "pc": [ - 948, - 949, - 950 - ] - }, - { - "teal": 771, - "source": 362, - "pc": [ - 951, - 952 - ] - }, - { - "teal": 772, - "source": 362, - "pc": [ - 953, - 954 - ] - }, - { - "teal": 777, - "source": 364, - "pc": [ - 955, - 956 - ] - }, - { - "teal": 780, - "source": 354, - "pc": [ - 957, - 958 - ] - }, - { - "teal": 783, - "source": 354, - "pc": [ - 959, - 960 - ] - }, - { - "teal": 784, - "source": 354, - "pc": [ - 961 - ] - }, - { - "teal": 789, - "source": 372, - "pc": [ - 962 - ] - }, - { - "teal": 792, - "source": 372, - "pc": [ - 963, - 964, - 965 - ] - }, - { - "teal": 793, - "source": 372, - "pc": [ - 966 - ] - }, - { - "teal": 794, - "source": 372, - "pc": [ - 967 - ] - }, - { - "teal": 795, - "source": 372, - "pc": [ - 968, - 969 - ] - }, - { - "teal": 796, - "source": 372, - "pc": [ - 970 - ] - }, - { - "teal": 799, - "source": 372, - "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address", - "pc": [ - 971 - ] - }, - { - "teal": 802, - "source": 372, - "pc": [ - 972, - 973, - 974 - ] - }, - { - "teal": 803, - "source": 372, - "pc": [ - 975, - 976 - ] - }, - { - "teal": 804, - "source": 372, - "pc": [ - 977 - ] - }, - { - "teal": 805, - "source": 372, - "pc": [ - 978, - 979 - ] - }, - { - "teal": 806, - "source": 372, - "pc": [ - 980 - ] - }, - { - "teal": 807, - "source": 372, - "pc": [ - 981 - ] - }, - { - "teal": 808, - "source": 372, - "pc": [ - 982 - ] - }, - { - "teal": 809, - "source": 372, - "pc": [ - 983 - ] - }, - { - "teal": 810, - "source": 372, - "pc": [ - 984 - ] - }, - { - "teal": 817, - "source": 372, - "pc": [ - 985, - 986, - 987 - ] - }, - { - "teal": 821, - "source": 373, - "pc": [ - 988 - ] - }, - { - "teal": 822, - "source": 373, - "pc": [ - 989, - 990 - ] - }, - { - "teal": 823, - "source": 373, - "pc": [ - 991 - ] - }, - { - "teal": 824, - "source": 373, - "pc": [ - 992 - ] - }, - { - "teal": 825, - "source": 373, - "pc": [ - 993 - ] - }, - { - "teal": 826, - "source": 373, - "pc": [ - 994 - ] - }, - { - "teal": 827, - "source": 373, - "pc": [ - 995 - ] - }, - { - "teal": 828, - "source": 372, - "pc": [ - 996 - ] - }, - { - "teal": 833, - "source": 382, - "pc": [ - 997 - ] - }, - { - "teal": 836, - "source": 382, - "pc": [ - 998, - 999, - 1000 - ] - }, - { - "teal": 837, - "source": 382, - "pc": [ - 1001 - ] - }, - { - "teal": 838, - "source": 382, - "pc": [ - 1002 - ] - }, - { - "teal": 839, - "source": 382, - "pc": [ - 1003, - 1004 - ] - }, - { - "teal": 840, - "source": 382, - "pc": [ - 1005 - ] - }, - { - "teal": 843, - "source": 382, - "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address", - "pc": [ - 1006 - ] - }, - { - "teal": 846, - "source": 382, - "pc": [ - 1007, - 1008, - 1009 - ] - }, - { - "teal": 847, - "source": 382, - "pc": [ - 1010 - ] - }, - { - "teal": 848, - "source": 382, - "pc": [ - 1011 - ] - }, - { - "teal": 849, - "source": 382, - "pc": [ - 1012 - ] - }, - { - "teal": 850, - "source": 382, - "pc": [ - 1013 - ] - }, - { - "teal": 851, - "source": 382, - "pc": [ - 1014 - ] - }, - { - "teal": 852, - "source": 382, - "pc": [ - 1015, - 1016, - 1017 - ] - }, - { - "teal": 853, - "source": 382, - "pc": [ - 1018 - ] - }, - { - "teal": 854, - "source": 382, - "pc": [ - 1019 - ] - }, - { - "teal": 855, - "source": 382, - "pc": [ - 1020 - ] - }, - { - "teal": 856, - "source": 382, - "pc": [ - 1021 - ] - }, - { - "teal": 857, - "source": 382, - "pc": [ - 1022 - ] - }, - { - "teal": 858, - "source": 382, - "pc": [ - 1023 - ] - }, - { - "teal": 867, - "source": 382, - "pc": [ - 1024, - 1025, - 1026 - ] - }, - { - "teal": 870, - "source": 382, - "pc": [ - 1027 - ] - }, - { - "teal": 871, - "source": 382, - "pc": [ - 1028, - 1029 - ] - }, - { - "teal": 876, - "source": 383, - "pc": [ - 1030 - ] - }, - { - "teal": 877, - "source": 383, - "pc": [ - 1031, - 1032 - ] - }, - { - "teal": 878, - "source": 383, - "pc": [ - 1033 - ] - }, - { - "teal": 879, - "source": 383, - "pc": [ - 1034 - ] - }, - { - "teal": 880, - "source": 383, - "pc": [ - 1035 - ] - }, - { - "teal": 881, - "source": 383, - "pc": [ - 1036 - ] - }, - { - "teal": 882, - "source": 383, - "pc": [ - 1037 - ] - }, - { - "teal": 883, - "source": 383, - "pc": [ - 1038, - 1039, - 1040 - ] - }, - { - "teal": 888, - "source": 384, - "pc": [ - 1041 - ] - }, - { - "teal": 889, - "source": 384, - "pc": [ - 1042, - 1043, - 1044 - ] - }, - { - "teal": 894, - "source": 386, - "pc": [ - 1045 - ] - }, - { - "teal": 895, - "source": 386, - "pc": [ - 1046, - 1047 - ] - }, - { - "teal": 899, - "source": 387, - "pc": [ - 1048 - ] - }, - { - "teal": 900, - "source": 387, - "pc": [ - 1049, - 1050 - ] - }, - { - "teal": 901, - "source": 387, - "pc": [ - 1051 - ] - }, - { - "teal": 902, - "source": 387, - "pc": [ - 1052 - ] - }, - { - "teal": 905, - "source": 387, - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", - "pc": [ - 1053 - ] - }, - { - "teal": 906, - "source": 387, - "pc": [ - 1054, - 1055 - ] - }, - { - "teal": 910, - "source": 388, - "pc": [ - 1056 - ] - }, - { - "teal": 911, - "source": 388, - "pc": [ - 1057, - 1058 - ] - }, - { - "teal": 916, - "source": 388, - "pc": [ - 1059, - 1060 - ] - }, - { - "teal": 917, - "source": 388, - "pc": [ - 1061, - 1062 - ] - }, - { - "teal": 918, - "source": 388, - "pc": [ - 1063 - ] - }, - { - "teal": 919, - "source": 388, - "pc": [ - 1064, - 1065, - 1066 - ] - }, - { - "teal": 924, - "source": 389, - "pc": [ - 1067, - 1068 - ] - }, - { - "teal": 925, - "source": 389, - "pc": [ - 1069, - 1070 - ] - }, - { - "teal": 926, - "source": 389, - "pc": [ - 1071 - ] - }, - { - "teal": 927, - "source": 389, - "pc": [ - 1072 - ] - }, - { - "teal": 928, - "source": 389, - "pc": [ - 1073 - ] - }, - { - "teal": 929, - "source": 389, - "pc": [ - 1074 - ] - }, - { - "teal": 930, - "source": 389, - "pc": [ - 1075 - ] - }, - { - "teal": 931, - "source": 389, - "pc": [ - 1076 - ] - }, - { - "teal": 932, - "source": 389, - "pc": [ - 1077 - ] - }, - { - "teal": 933, - "source": 389, - "pc": [ - 1078 - ] - }, - { - "teal": 934, - "source": 389, - "pc": [ - 1079 - ] - }, - { - "teal": 935, - "source": 389, - "pc": [ - 1080, - 1081, - 1082 - ] - }, - { - "teal": 940, - "source": 390, - "pc": [ - 1083, - 1084 - ] - }, - { - "teal": 941, - "source": 390, - "pc": [ - 1085, - 1086 - ] - }, - { - "teal": 942, - "source": 390, - "pc": [ - 1087, - 1088 - ] - }, - { - "teal": 943, - "source": 390, - "pc": [ - 1089 - ] - }, - { - "teal": 944, - "source": 390, - "pc": [ - 1090 - ] - }, - { - "teal": 945, - "source": 390, - "pc": [ - 1091 - ] - }, - { - "teal": 946, - "source": 390, - "pc": [ - 1092 - ] - }, - { - "teal": 947, - "source": 390, - "pc": [ - 1093 - ] - }, - { - "teal": 948, - "source": 390, - "pc": [ - 1094, - 1095 - ] - }, - { - "teal": 955, - "source": 388, - "pc": [ - 1096, - 1097 - ] - }, - { - "teal": 956, - "source": 388, - "pc": [ - 1098 - ] - }, - { - "teal": 957, - "source": 388, - "pc": [ - 1099 - ] - }, - { - "teal": 958, - "source": 388, - "pc": [ - 1100, - 1101 - ] - }, - { - "teal": 959, - "source": 388, - "pc": [ - 1102, - 1103, - 1104 - ] - }, - { - "teal": 964, - "source": 393, - "pc": [ - 1105, - 1106 - ] - }, - { - "teal": 968, - "source": 382, - "pc": [ - 1107, - 1108 - ] - }, - { - "teal": 971, - "source": 382, - "pc": [ - 1109, - 1110 - ] - }, - { - "teal": 972, - "source": 382, - "pc": [ - 1111 - ] - }, - { - "teal": 977, - "source": 404, - "pc": [ - 1112 - ] - }, - { - "teal": 980, - "source": 404, - "pc": [ - 1113, - 1114, - 1115 - ] - }, - { - "teal": 981, - "source": 404, - "pc": [ - 1116 - ] - }, - { - "teal": 984, - "source": 404, - "pc": [ - 1117, - 1118, - 1119 - ] - }, - { - "teal": 985, - "source": 404, - "pc": [ - 1120 - ] - }, - { - "teal": 986, - "source": 404, - "pc": [ - 1121 - ] - }, - { - "teal": 987, - "source": 404, - "pc": [ - 1122 - ] - }, - { - "teal": 988, - "source": 404, - "pc": [ - 1123 - ] - }, - { - "teal": 998, - "source": 404, - "pc": [ - 1124, - 1125, - 1126 - ] - }, - { - "teal": 1002, - "source": 405, - "pc": [ - 1127, - 1128 - ] - }, - { - "teal": 1003, - "source": 405, - "pc": [ - 1129, - 1130 - ] - }, - { - "teal": 1004, - "source": 405, - "pc": [ - 1131 - ] - }, - { - "teal": 1005, - "source": 405, - "pc": [ - 1132, - 1133 - ] - }, - { - "teal": 1006, - "source": 405, - "pc": [ - 1134 - ] - }, - { - "teal": 1007, - "source": 405, - "pc": [ - 1135 - ] - }, - { - "teal": 1008, - "source": 405, - "pc": [ - 1136, - 1137 - ] - }, - { - "teal": 1009, - "source": 405, - "pc": [ - 1138 - ] - }, - { - "teal": 1010, - "source": 404, - "pc": [ - 1139 - ] - }, - { - "teal": 1015, - "source": 409, - "pc": [ - 1140 - ] - }, - { - "teal": 1018, - "source": 409, - "pc": [ - 1141, - 1142, - 1143 - ] - }, - { - "teal": 1019, - "source": 409, - "pc": [ - 1144 - ] - }, - { - "teal": 1022, - "source": 409, - "pc": [ - 1145, - 1146, - 1147 - ] - }, - { - "teal": 1023, - "source": 409, - "pc": [ - 1148 - ] - }, - { - "teal": 1024, - "source": 409, - "pc": [ - 1149 - ] - }, - { - "teal": 1025, - "source": 409, - "pc": [ - 1150 - ] - }, - { - "teal": 1026, - "source": 409, - "pc": [ - 1151 - ] - }, - { - "teal": 1030, - "source": 409, - "pc": [ - 1152, - 1153, - 1154 - ] - }, - { - "teal": 1034, - "source": 410, - "pc": [ - 1155 - ] - }, - { - "teal": 1035, - "source": 410, - "pc": [ - 1156, - 1157 - ] - }, - { - "teal": 1036, - "source": 410, - "pc": [ - 1158 - ] - }, - { - "teal": 1037, - "source": 410, - "pc": [ - 1159 - ] - }, - { - "teal": 1038, - "source": 410, - "pc": [ - 1160 - ] - }, - { - "teal": 1039, - "source": 410, - "pc": [ - 1161 - ] - }, - { - "teal": 1040, - "source": 410, - "pc": [ - 1162 - ] - }, - { - "teal": 1043, - "source": 410, - "errorMessage": "the specified validator id doesn't exist", - "pc": [ - 1163 - ] - }, - { - "teal": 1047, - "source": 412, - "pc": [ - 1164, - 1165 - ] - }, - { - "teal": 1048, - "source": 412, - "pc": [ - 1166, - 1167 - ] - }, - { - "teal": 1049, - "source": 412, - "pc": [ - 1168 - ] - }, - { - "teal": 1050, - "source": 412, - "pc": [ - 1169, - 1170 - ] - }, - { - "teal": 1051, - "source": 412, - "pc": [ - 1171 - ] - }, - { - "teal": 1052, - "source": 412, - "pc": [ - 1172 - ] - }, - { - "teal": 1053, - "source": 412, - "pc": [ - 1173, - 1174 - ] - }, - { - "teal": 1054, - "source": 412, - "pc": [ - 1175 - ] - }, - { - "teal": 1055, - "source": 409, - "pc": [ - 1176 - ] - }, - { - "teal": 1060, - "source": 415, - "pc": [ - 1177 - ] - }, - { - "teal": 1063, - "source": 415, - "pc": [ - 1178, - 1179, - 1180 - ] - }, - { - "teal": 1064, - "source": 415, - "pc": [ - 1181 - ] - }, - { - "teal": 1065, - "source": 415, - "pc": [ - 1182 - ] - }, - { - "teal": 1066, - "source": 415, - "pc": [ - 1183 - ] - }, - { - "teal": 1067, - "source": 415, - "pc": [ - 1184 - ] - }, - { - "teal": 1068, - "source": 415, - "pc": [ - 1185 - ] - }, - { - "teal": 1072, - "source": 415, - "pc": [ - 1186, - 1187, - 1188 - ] - }, - { - "teal": 1076, - "source": 416, - "pc": [ - 1189, - 1190 - ] - }, - { - "teal": 1077, - "source": 415, - "pc": [ - 1191 - ] - }, - { - "teal": 1082, - "source": 427, - "pc": [ - 1192 - ] - }, - { - "teal": 1085, - "source": 427, - "pc": [ - 1193, - 1194, - 1195 - ] - }, - { - "teal": 1086, - "source": 427, - "pc": [ - 1196 - ] - }, - { - "teal": 1087, - "source": 427, - "pc": [ - 1197 - ] - }, - { - "teal": 1088, - "source": 427, - "pc": [ - 1198, - 1199 - ] - }, - { - "teal": 1089, - "source": 427, - "pc": [ - 1200 - ] - }, - { - "teal": 1092, - "source": 427, - "errorMessage": "argument 0 (config) for addValidator must be a (uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)", - "pc": [ - 1201 - ] - }, - { - "teal": 1095, - "source": 427, - "pc": [ - 1202, - 1203, - 1204 - ] - }, - { - "teal": 1096, - "source": 427, - "pc": [ - 1205, - 1206, - 1207 - ] - }, - { - "teal": 1099, - "source": 427, - "pc": [ - 1208, - 1209 - ] - }, - { - "teal": 1100, - "source": 427, - "pc": [ - 1210 - ] - }, - { - "teal": 1101, - "source": 427, - "pc": [ - 1211 - ] - }, - { - "teal": 1102, - "source": 427, - "pc": [ - 1212 - ] - }, - { - "teal": 1103, - "source": 427, - "pc": [ - 1213, - 1214 - ] - }, - { - "teal": 1104, - "source": 427, - "pc": [ - 1215 - ] - }, - { - "teal": 1105, - "source": 427, - "pc": [ - 1216 - ] - }, - { - "teal": 1108, - "source": 427, - "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction", - "pc": [ - 1217 - ] - }, - { - "teal": 1111, - "source": 427, - "pc": [ - 1218, - 1219, - 1220 - ] - }, - { - "teal": 1112, - "source": 427, - "pc": [ - 1221 - ] - }, - { - "teal": 1113, - "source": 427, - "pc": [ - 1222 - ] - }, - { - "teal": 1114, - "source": 427, - "pc": [ - 1223 - ] - }, - { - "teal": 1115, - "source": 427, - "pc": [ - 1224 - ] - }, - { - "teal": 1116, - "source": 427, - "pc": [ - 1225 - ] - }, - { - "teal": 1128, - "source": 427, - "pc": [ - 1226, - 1227, - 1228 - ] - }, - { - "teal": 1131, - "source": 427, - "pc": [ - 1229 - ] - }, - { - "teal": 1135, - "source": 428, - "pc": [ - 1230, - 1231 - ] - }, - { - "teal": 1136, - "source": 428, - "pc": [ - 1232, - 1233, - 1234 - ] - }, - { - "teal": 1140, - "source": 429, - "pc": [ - 1235, - 1236 - ] - }, - { - "teal": 1141, - "source": 429, - "pc": [ - 1237, - 1238, - 1239 - ] - }, - { - "teal": 1142, - "source": 429, - "pc": [ - 1240, - 1241 - ] - }, - { - "teal": 1143, - "source": 429, - "pc": [ - 1242 - ] - }, - { - "teal": 1144, - "source": 429, - "pc": [ - 1243 - ] - }, - { - "teal": 1148, - "source": 430, - "pc": [ - 1244, - 1245 - ] - }, - { - "teal": 1149, - "source": 430, - "pc": [ - 1246, - 1247, - 1248 - ] - }, - { - "teal": 1150, - "source": 430, - "pc": [ - 1249, - 1250 - ] - }, - { - "teal": 1151, - "source": 430, - "pc": [ - 1251 - ] - }, - { - "teal": 1152, - "source": 430, - "pc": [ - 1252 - ] - }, - { - "teal": 1156, - "source": 431, - "pc": [ - 1253, - 1254 - ] - }, - { - "teal": 1157, - "source": 431, - "pc": [ - 1255, - 1256 - ] - }, - { - "teal": 1158, - "source": 431, - "pc": [ - 1257, - 1258, - 1259 - ] - }, - { - "teal": 1159, - "source": 431, - "pc": [ - 1260 - ] - }, - { - "teal": 1162, - "source": 431, - "errorMessage": "sender must be owner to add new validator", - "pc": [ - 1261 - ] - }, - { - "teal": 1167, - "source": 433, - "pc": [ - 1262, - 1263 - ] - }, - { - "teal": 1168, - "source": 433, - "pc": [ - 1264, - 1265 - ] - }, - { - "teal": 1169, - "source": 433, - "pc": [ - 1266, - 1267, - 1268 - ] - }, - { - "teal": 1170, - "source": 433, - "pc": [ - 1269, - 1270, - 1271 - ] - }, - { - "teal": 1171, - "source": 433, - "pc": [ - 1272 - ] - }, - { - "teal": 1172, - "source": 433, - "pc": [ - 1273 - ] - }, - { - "teal": 1175, - "source": 433, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}", - "pc": [ - 1274 - ] - }, - { - "teal": 1179, - "source": 435, - "pc": [ - 1275, - 1276 - ] - }, - { - "teal": 1180, - "source": 435, - "pc": [ - 1277, - 1278 - ] - }, - { - "teal": 1181, - "source": 435, - "pc": [ - 1279, - 1280, - 1281, - 1282, - 1283 - ] - }, - { - "teal": 1182, - "source": 435, - "pc": [ - 1284 - ] - }, - { - "teal": 1185, - "source": 435, - "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators", - "pc": [ - 1285 - ] - }, - { - "teal": 1189, - "source": 438, - "pc": [ - 1286, - 1287 - ] - }, - { - "teal": 1190, - "source": 438, - "pc": [ - 1288 - ] - }, - { - "teal": 1191, - "source": 438, - "pc": [ - 1289 - ] - }, - { - "teal": 1192, - "source": 438, - "pc": [ - 1290 - ] - }, - { - "teal": 1193, - "source": 438, - "pc": [ - 1291, - 1292 - ] - }, - { - "teal": 1197, - "source": 439, - "pc": [ - 1293, - 1294 - ] - }, - { - "teal": 1198, - "source": 439, - "pc": [ - 1295, - 1296 - ] - }, - { - "teal": 1199, - "source": 439, - "pc": [ - 1297 - ] - }, - { - "teal": 1203, - "source": 441, - "pc": [ - 1298 - ] - }, - { - "teal": 1204, - "source": 441, - "pc": [ - 1299, - 1300 - ] - }, - { - "teal": 1205, - "source": 441, - "pc": [ - 1301 - ] - }, - { - "teal": 1206, - "source": 441, - "pc": [ - 1302 - ] - }, - { - "teal": 1207, - "source": 441, - "pc": [ - 1303, - 1304, - 1305 - ] - }, - { - "teal": 1208, - "source": 441, - "pc": [ - 1306 - ] - }, - { - "teal": 1209, - "source": 441, - "pc": [ - 1307 - ] - }, - { - "teal": 1213, - "source": 442, - "pc": [ - 1308 - ] - }, - { - "teal": 1214, - "source": 442, - "pc": [ - 1309, - 1310 - ] - }, - { - "teal": 1215, - "source": 442, - "pc": [ - 1311 - ] - }, - { - "teal": 1216, - "source": 442, - "pc": [ - 1312, - 1313 - ] - }, - { - "teal": 1217, - "source": 442, - "pc": [ - 1314 - ] - }, - { - "teal": 1218, - "source": 442, - "pc": [ - 1315 - ] - }, - { - "teal": 1219, - "source": 442, - "pc": [ - 1316, - 1317 - ] - }, - { - "teal": 1220, - "source": 442, - "pc": [ - 1318 - ] - }, - { - "teal": 1224, - "source": 443, - "pc": [ - 1319 - ] - }, - { - "teal": 1225, - "source": 443, - "pc": [ - 1320, - 1321 - ] - }, - { - "teal": 1226, - "source": 443, - "pc": [ - 1322 - ] - }, - { - "teal": 1227, - "source": 443, - "pc": [ - 1323 - ] - }, - { - "teal": 1228, - "source": 443, - "pc": [ - 1324, - 1325 - ] - }, - { - "teal": 1229, - "source": 443, - "pc": [ - 1326 - ] - }, - { - "teal": 1230, - "source": 443, - "pc": [ - 1327 - ] - }, - { - "teal": 1231, - "source": 443, - "pc": [ - 1328, - 1329 - ] - }, - { - "teal": 1232, - "source": 443, - "pc": [ - 1330 - ] - }, - { - "teal": 1237, - "source": 446, - "pc": [ - 1331, - 1332 - ] - }, - { - "teal": 1238, - "source": 446, - "pc": [ - 1333, - 1334, - 1335 - ] - }, - { - "teal": 1239, - "source": 446, - "pc": [ - 1336 - ] - }, - { - "teal": 1240, - "source": 446, - "pc": [ - 1337 - ] - }, - { - "teal": 1241, - "source": 446, - "pc": [ - 1338 - ] - }, - { - "teal": 1242, - "source": 446, - "pc": [ - 1339, - 1340, - 1341 - ] - }, - { - "teal": 1251, - "source": 448, - "pc": [ - 1342 - ] - }, - { - "teal": 1252, - "source": 448, - "pc": [ - 1343, - 1344 - ] - }, - { - "teal": 1253, - "source": 448, - "pc": [ - 1345, - 1346 - ] - }, - { - "teal": 1257, - "source": 449, - "pc": [ - 1347, - 1348 - ] - }, - { - "teal": 1258, - "source": 449, - "pc": [ - 1349, - 1350 - ] - }, - { - "teal": 1262, - "source": 450, - "pc": [ - 1351, - 1352 - ] - }, - { - "teal": 1263, - "source": 450, - "pc": [ - 1353, - 1354 - ] - }, - { - "teal": 1264, - "source": 450, - "pc": [ - 1355, - 1356 - ] - }, - { - "teal": 1265, - "source": 450, - "pc": [ - 1357, - 1358 - ] - }, - { - "teal": 1266, - "source": 450, - "pc": [ - 1359, - 1360 - ] - }, - { - "teal": 1267, - "source": 450, - "pc": [ - 1361, - 1362, - 1363 - ] - }, - { - "teal": 1268, - "source": 450, - "pc": [ - 1364 - ] - }, - { - "teal": 1269, - "source": 450, - "pc": [ - 1365 - ] - }, - { - "teal": 1270, - "source": 450, - "pc": [ - 1366, - 1367 - ] - }, - { - "teal": 1274, - "source": 451, - "pc": [ - 1368, - 1369 - ] - }, - { - "teal": 1275, - "source": 451, - "pc": [ - 1370, - 1371, - 1372 - ] - }, - { - "teal": 1276, - "source": 451, - "pc": [ - 1373 - ] - }, - { - "teal": 1277, - "source": 451, - "pc": [ - 1374, - 1375 - ] - }, - { - "teal": 1280, - "source": 448, - "pc": [ - 1376 - ] - }, - { - "teal": 1281, - "source": 448, - "pc": [ - 1377, - 1378 - ] - }, - { - "teal": 1284, - "source": 448, - "pc": [ - 1379 - ] - }, - { - "teal": 1288, - "source": 453, - "pc": [ - 1380, - 1381 - ] - }, - { - "teal": 1289, - "source": 453, - "pc": [ - 1382 - ] - }, - { - "teal": 1290, - "source": 453, - "pc": [ - 1383 - ] - }, - { - "teal": 1291, - "source": 453, - "pc": [ - 1384 - ] - }, - { - "teal": 1294, - "source": 453, - "errorMessage": "provided NFD isn't valid", - "pc": [ - 1385 - ] - }, - { - "teal": 1301, - "source": 456, - "pc": [ - 1386, - 1387 - ] - }, - { - "teal": 1302, - "source": 456, - "pc": [ - 1388, - 1389 - ] - }, - { - "teal": 1303, - "source": 456, - "pc": [ - 1390, - 1391, - 1392 - ] - }, - { - "teal": 1304, - "source": 456, - "pc": [ - 1393 - ] - }, - { - "teal": 1305, - "source": 456, - "pc": [ - 1394, - 1395 - ] - }, - { - "teal": 1306, - "source": 456, - "pc": [ - 1396 - ] - }, - { - "teal": 1309, - "source": 456, - "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')", - "pc": [ - 1397 - ] - }, - { - "teal": 1310, - "source": 456, - "pc": [ - 1398 - ] - }, - { - "teal": 1313, - "source": 455, - "errorMessage": "If specifying NFD, account adding validator must be owner", - "pc": [ - 1399 - ] - }, - { - "teal": 1320, - "source": 461, - "pc": [ - 1400, - 1401 - ] - }, - { - "teal": 1321, - "source": 461, - "pc": [ - 1402, - 1403, - 1404 - ] - }, - { - "teal": 1322, - "source": 461, - "pc": [ - 1405 - ] - }, - { - "teal": 1323, - "source": 461, - "pc": [ - 1406, - 1407 - ] - }, - { - "teal": 1324, - "source": 461, - "pc": [ - 1408 - ] - }, - { - "teal": 1325, - "source": 461, - "pc": [ - 1409 - ] - }, - { - "teal": 1326, - "source": 461, - "pc": [ - 1410, - 1411, - 1412 - ] - }, - { - "teal": 1327, - "source": 462, - "pc": [ - 1413, - 1414 - ] - }, - { - "teal": 1328, - "source": 462, - "pc": [ - 1415, - 1416, - 1417 - ] - }, - { - "teal": 1329, - "source": 462, - "pc": [ - 1418 - ] - }, - { - "teal": 1330, - "source": 462, - "pc": [ - 1419, - 1420 - ] - }, - { - "teal": 1331, - "source": 462, - "pc": [ - 1421 - ] - }, - { - "teal": 1332, - "source": 461, - "pc": [ - 1422 - ] - }, - { - "teal": 1335, - "source": 460, - "pc": [ - 1423, - 1424, - 1425 - ] - }, - { - "teal": 1340, - "source": 465, - "pc": [ - 1426, - 1427 - ] - }, - { - "teal": 1341, - "source": 465, - "pc": [ - 1428, - 1429, - 1430 - ] - }, - { - "teal": 1342, - "source": 465, - "pc": [ - 1431 - ] - }, - { - "teal": 1343, - "source": 465, - "pc": [ - 1432, - 1433, - 1434 - ] - }, - { - "teal": 1346, - "source": 465, - "errorMessage": "provided NFD App id for gating must be valid NFD", - "pc": [ - 1435 - ] - }, - { - "teal": 1351, - "source": 468, - "pc": [ - 1436, - 1437 - ] - }, - { - "teal": 1354, - "source": 427, - "pc": [ - 1438, - 1439 - ] - }, - { - "teal": 1355, - "source": 427, - "pc": [ - 1440 - ] - }, - { - "teal": 1360, - "source": 478, - "pc": [ - 1441, - 1442, - 1443 - ] - }, - { - "teal": 1361, - "source": 478, - "pc": [ - 1444 - ] - }, - { - "teal": 1362, - "source": 478, - "pc": [ - 1445 - ] - }, - { - "teal": 1363, - "source": 478, - "pc": [ - 1446, - 1447 - ] - }, - { - "teal": 1364, - "source": 478, - "pc": [ - 1448 - ] - }, - { - "teal": 1367, - "source": 478, - "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address", - "pc": [ - 1449 - ] - }, - { - "teal": 1370, - "source": 478, - "pc": [ - 1450, - 1451, - 1452 - ] - }, - { - "teal": 1371, - "source": 478, - "pc": [ - 1453 - ] - }, - { - "teal": 1374, - "source": 478, - "pc": [ - 1454, - 1455, - 1456 - ] - }, - { - "teal": 1375, - "source": 478, - "pc": [ - 1457 - ] - }, - { - "teal": 1376, - "source": 478, - "pc": [ - 1458 - ] - }, - { - "teal": 1386, - "source": 478, - "pc": [ - 1459, - 1460, - 1461 - ] - }, - { - "teal": 1393, - "source": 480, - "pc": [ - 1462, - 1463 - ] - }, - { - "teal": 1394, - "source": 480, - "pc": [ - 1464 - ] - }, - { - "teal": 1395, - "source": 480, - "pc": [ - 1465, - 1466 - ] - }, - { - "teal": 1396, - "source": 480, - "pc": [ - 1467 - ] - }, - { - "teal": 1397, - "source": 480, - "pc": [ - 1468, - 1469 - ] - }, - { - "teal": 1398, - "source": 480, - "pc": [ - 1470 - ] - }, - { - "teal": 1399, - "source": 480, - "pc": [ - 1471 - ] - }, - { - "teal": 1400, - "source": 480, - "pc": [ - 1472, - 1473 - ] - }, - { - "teal": 1401, - "source": 480, - "pc": [ - 1474 - ] - }, - { - "teal": 1402, - "source": 480, - "pc": [ - 1475 - ] - }, - { - "teal": 1405, - "source": 479, - "errorMessage": "can only be called by validator owner", - "pc": [ - 1476 - ] - }, - { - "teal": 1409, - "source": 483, - "pc": [ - 1477, - 1478 - ] - }, - { - "teal": 1410, - "source": 483, - "pc": [ - 1479, - 1480 - ] - }, - { - "teal": 1411, - "source": 483, - "pc": [ - 1481 - ] - }, - { - "teal": 1412, - "source": 483, - "pc": [ - 1482, - 1483 - ] - }, - { - "teal": 1413, - "source": 483, - "pc": [ - 1484 - ] - }, - { - "teal": 1414, - "source": 483, - "pc": [ - 1485 - ] - }, - { - "teal": 1415, - "source": 483, - "pc": [ - 1486, - 1487 - ] - }, - { - "teal": 1416, - "source": 483, - "pc": [ - 1488 - ] - }, - { - "teal": 1417, - "source": 478, - "pc": [ - 1489 - ] - }, - { - "teal": 1422, - "source": 494, - "pc": [ - 1490, - 1491, - 1492 - ] - }, - { - "teal": 1423, - "source": 494, - "pc": [ - 1493 - ] - }, - { - "teal": 1426, - "source": 494, - "pc": [ - 1494, - 1495, - 1496 - ] - }, - { - "teal": 1427, - "source": 494, - "pc": [ - 1497 - ] - }, - { - "teal": 1430, - "source": 494, - "pc": [ - 1498, - 1499, - 1500 - ] - }, - { - "teal": 1431, - "source": 494, - "pc": [ - 1501 - ] - }, - { - "teal": 1434, - "source": 494, - "pc": [ - 1502, - 1503, - 1504 - ] - }, - { - "teal": 1435, - "source": 494, - "pc": [ - 1505 - ] - }, - { - "teal": 1436, - "source": 494, - "pc": [ - 1506 - ] - }, - { - "teal": 1447, - "source": 494, - "pc": [ - 1507, - 1508, - 1509 - ] - }, - { - "teal": 1454, - "source": 496, - "pc": [ - 1510, - 1511 - ] - }, - { - "teal": 1455, - "source": 496, - "pc": [ - 1512 - ] - }, - { - "teal": 1456, - "source": 496, - "pc": [ - 1513, - 1514 - ] - }, - { - "teal": 1457, - "source": 496, - "pc": [ - 1515 - ] - }, - { - "teal": 1458, - "source": 496, - "pc": [ - 1516, - 1517 - ] - }, - { - "teal": 1459, - "source": 496, - "pc": [ - 1518 - ] - }, - { - "teal": 1460, - "source": 496, - "pc": [ - 1519 - ] - }, - { - "teal": 1461, - "source": 496, - "pc": [ - 1520, - 1521 - ] - }, - { - "teal": 1462, - "source": 496, - "pc": [ - 1522 - ] - }, - { - "teal": 1463, - "source": 496, - "pc": [ - 1523 - ] - }, - { - "teal": 1466, - "source": 495, - "errorMessage": "can only be called by validator owner", - "pc": [ - 1524 - ] - }, - { - "teal": 1470, - "source": 499, - "pc": [ - 1525, - 1526 - ] - }, - { - "teal": 1471, - "source": 499, - "pc": [ - 1527, - 1528 - ] - }, - { - "teal": 1472, - "source": 499, - "pc": [ - 1529 - ] - }, - { - "teal": 1473, - "source": 499, - "pc": [ - 1530 - ] - }, - { - "teal": 1474, - "source": 499, - "pc": [ - 1531, - 1532 - ] - }, - { - "teal": 1475, - "source": 499, - "pc": [ - 1533 - ] - }, - { - "teal": 1476, - "source": 499, - "pc": [ - 1534 - ] - }, - { - "teal": 1477, - "source": 499, - "pc": [ - 1535, - 1536 - ] - }, - { - "teal": 1478, - "source": 499, - "pc": [ - 1537 - ] - }, - { - "teal": 1482, - "source": 500, - "pc": [ - 1538, - 1539, - 1540 - ] - }, - { - "teal": 1483, - "source": 500, - "pc": [ - 1541, - 1542 - ] - }, - { - "teal": 1484, - "source": 500, - "pc": [ - 1543 - ] - }, - { - "teal": 1485, - "source": 500, - "pc": [ - 1544 - ] - }, - { - "teal": 1486, - "source": 500, - "pc": [ - 1545, - 1546 - ] - }, - { - "teal": 1487, - "source": 500, - "pc": [ - 1547 - ] - }, - { - "teal": 1488, - "source": 500, - "pc": [ - 1548 - ] - }, - { - "teal": 1489, - "source": 500, - "pc": [ - 1549, - 1550 - ] - }, - { - "teal": 1490, - "source": 500, - "pc": [ - 1551 - ] - }, - { - "teal": 1491, - "source": 494, - "pc": [ - 1552 - ] - }, - { - "teal": 1496, - "source": 511, - "pc": [ - 1553, - 1554, - 1555 - ] - }, - { - "teal": 1497, - "source": 511, - "pc": [ - 1556, - 1557, - 1558 - ] - }, - { - "teal": 1500, - "source": 511, - "pc": [ - 1559, - 1560, - 1561 - ] - }, - { - "teal": 1501, - "source": 511, - "pc": [ - 1562 - ] - }, - { - "teal": 1504, - "source": 511, - "pc": [ - 1563, - 1564, - 1565 - ] - }, - { - "teal": 1505, - "source": 511, - "pc": [ - 1566 - ] - }, - { - "teal": 1508, - "source": 511, - "pc": [ - 1567, - 1568, - 1569 - ] - }, - { - "teal": 1509, - "source": 511, - "pc": [ - 1570 - ] - }, - { - "teal": 1510, - "source": 511, - "pc": [ - 1571 - ] - }, - { - "teal": 1521, - "source": 511, - "pc": [ - 1572, - 1573, - 1574 - ] - }, - { - "teal": 1528, - "source": 514, - "pc": [ - 1575, - 1576 - ] - }, - { - "teal": 1529, - "source": 514, - "pc": [ - 1577 - ] - }, - { - "teal": 1530, - "source": 514, - "pc": [ - 1578, - 1579 - ] - }, - { - "teal": 1531, - "source": 514, - "pc": [ - 1580 - ] - }, - { - "teal": 1532, - "source": 514, - "pc": [ - 1581, - 1582 - ] - }, - { - "teal": 1533, - "source": 514, - "pc": [ - 1583 - ] - }, - { - "teal": 1534, - "source": 514, - "pc": [ - 1584 - ] - }, - { - "teal": 1535, - "source": 514, - "pc": [ - 1585, - 1586 - ] - }, - { - "teal": 1536, - "source": 514, - "pc": [ - 1587 - ] - }, - { - "teal": 1537, - "source": 514, - "pc": [ - 1588 - ] - }, - { - "teal": 1540, - "source": 513, - "errorMessage": "can only be called by validator owner", - "pc": [ - 1589 - ] - }, - { - "teal": 1548, - "source": 518, - "pc": [ - 1590 - ] - }, - { - "teal": 1549, - "source": 518, - "pc": [ - 1591, - 1592 - ] - }, - { - "teal": 1550, - "source": 518, - "pc": [ - 1593, - 1594 - ] - }, - { - "teal": 1554, - "source": 519, - "pc": [ - 1595, - 1596 - ] - }, - { - "teal": 1555, - "source": 519, - "pc": [ - 1597, - 1598 - ] - }, - { - "teal": 1559, - "source": 520, - "pc": [ - 1599, - 1600 - ] - }, - { - "teal": 1560, - "source": 520, - "pc": [ - 1601, - 1602 - ] - }, - { - "teal": 1561, - "source": 520, - "pc": [ - 1603, - 1604 - ] - }, - { - "teal": 1562, - "source": 520, - "pc": [ - 1605, - 1606 - ] - }, - { - "teal": 1563, - "source": 520, - "pc": [ - 1607, - 1608 - ] - }, - { - "teal": 1564, - "source": 520, - "pc": [ - 1609 - ] - }, - { - "teal": 1565, - "source": 520, - "pc": [ - 1610, - 1611 - ] - }, - { - "teal": 1569, - "source": 521, - "pc": [ - 1612, - 1613 - ] - }, - { - "teal": 1570, - "source": 521, - "pc": [ - 1614, - 1615 - ] - }, - { - "teal": 1573, - "source": 518, - "pc": [ - 1616 - ] - }, - { - "teal": 1574, - "source": 518, - "pc": [ - 1617, - 1618 - ] - }, - { - "teal": 1577, - "source": 518, - "pc": [ - 1619 - ] - }, - { - "teal": 1584, - "source": 525, - "pc": [ - 1620, - 1621 - ] - }, - { - "teal": 1585, - "source": 525, - "pc": [ - 1622, - 1623 - ] - }, - { - "teal": 1586, - "source": 525, - "pc": [ - 1624, - 1625 - ] - }, - { - "teal": 1587, - "source": 525, - "pc": [ - 1626 - ] - }, - { - "teal": 1590, - "source": 525, - "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')", - "pc": [ - 1627 - ] - }, - { - "teal": 1591, - "source": 525, - "pc": [ - 1628 - ] - }, - { - "teal": 1594, - "source": 524, - "errorMessage": "If specifying NFD, account adding validator must be owner", - "pc": [ - 1629 - ] - }, - { - "teal": 1598, - "source": 528, - "pc": [ - 1630, - 1631 - ] - }, - { - "teal": 1599, - "source": 528, - "pc": [ - 1632, - 1633 - ] - }, - { - "teal": 1600, - "source": 528, - "pc": [ - 1634 - ] - }, - { - "teal": 1601, - "source": 528, - "pc": [ - 1635 - ] - }, - { - "teal": 1602, - "source": 528, - "pc": [ - 1636, - 1637 - ] - }, - { - "teal": 1603, - "source": 528, - "pc": [ - 1638 - ] - }, - { - "teal": 1604, - "source": 528, - "pc": [ - 1639 - ] - }, - { - "teal": 1605, - "source": 528, - "pc": [ - 1640, - 1641 - ] - }, - { - "teal": 1606, - "source": 528, - "pc": [ - 1642 - ] - }, - { - "teal": 1607, - "source": 511, - "pc": [ - 1643 - ] - }, - { - "teal": 1612, - "source": 535, - "pc": [ - 1644, - 1645, - 1646 - ] - }, - { - "teal": 1613, - "source": 535, - "pc": [ - 1647 - ] - }, - { - "teal": 1614, - "source": 535, - "pc": [ - 1648 - ] - }, - { - "teal": 1615, - "source": 535, - "pc": [ - 1649, - 1650 - ] - }, - { - "teal": 1616, - "source": 535, - "pc": [ - 1651 - ] - }, - { - "teal": 1619, - "source": 535, - "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address", - "pc": [ - 1652 - ] - }, - { - "teal": 1622, - "source": 535, - "pc": [ - 1653, - 1654, - 1655 - ] - }, - { - "teal": 1623, - "source": 535, - "pc": [ - 1656 - ] - }, - { - "teal": 1626, - "source": 535, - "pc": [ - 1657, - 1658, - 1659 - ] - }, - { - "teal": 1627, - "source": 535, - "pc": [ - 1660 - ] - }, - { - "teal": 1628, - "source": 535, - "pc": [ - 1661 - ] - }, - { - "teal": 1635, - "source": 535, - "pc": [ - 1662, - 1663, - 1664 - ] - }, - { - "teal": 1642, - "source": 537, - "pc": [ - 1665, - 1666 - ] - }, - { - "teal": 1643, - "source": 537, - "pc": [ - 1667 - ] - }, - { - "teal": 1644, - "source": 537, - "pc": [ - 1668, - 1669 - ] - }, - { - "teal": 1645, - "source": 537, - "pc": [ - 1670 - ] - }, - { - "teal": 1646, - "source": 537, - "pc": [ - 1671, - 1672 - ] - }, - { - "teal": 1647, - "source": 537, - "pc": [ - 1673 - ] - }, - { - "teal": 1648, - "source": 537, - "pc": [ - 1674 - ] - }, - { - "teal": 1649, - "source": 537, - "pc": [ - 1675, - 1676 - ] - }, - { - "teal": 1650, - "source": 537, - "pc": [ - 1677 - ] - }, - { - "teal": 1651, - "source": 537, - "pc": [ - 1678 - ] - }, - { - "teal": 1654, - "source": 536, - "errorMessage": "can only be called by validator owner", - "pc": [ - 1679 - ] - }, - { - "teal": 1658, - "source": 540, - "pc": [ - 1680, - 1681 - ] - }, - { - "teal": 1659, - "source": 540, - "pc": [ - 1682, - 1683 - ] - }, - { - "teal": 1660, - "source": 540, - "pc": [ - 1684 - ] - }, - { - "teal": 1661, - "source": 540, - "pc": [ - 1685 - ] - }, - { - "teal": 1665, - "source": 541, - "pc": [ - 1686, - 1687, - 1688 - ] - }, - { - "teal": 1666, - "source": 541, - "pc": [ - 1689, - 1690 - ] - }, - { - "teal": 1667, - "source": 541, - "pc": [ - 1691 - ] - }, - { - "teal": 1668, - "source": 541, - "pc": [ - 1692, - 1693 - ] - }, - { - "teal": 1669, - "source": 541, - "pc": [ - 1694 - ] - }, - { - "teal": 1670, - "source": 541, - "pc": [ - 1695 - ] - }, - { - "teal": 1671, - "source": 541, - "pc": [ - 1696, - 1697 - ] - }, - { - "teal": 1672, - "source": 541, - "pc": [ - 1698 - ] - }, - { - "teal": 1673, - "source": 535, - "pc": [ - 1699 - ] - }, - { - "teal": 1678, - "source": 554, - "pc": [ - 1700, - 1701, - 1702 - ] - }, - { - "teal": 1679, - "source": 554, - "pc": [ - 1703 - ] - }, - { - "teal": 1682, - "source": 553, - "pc": [ - 1704, - 1705, - 1706 - ] - }, - { - "teal": 1683, - "source": 553, - "pc": [ - 1707 - ] - }, - { - "teal": 1686, - "source": 552, - "pc": [ - 1708, - 1709, - 1710 - ] - }, - { - "teal": 1687, - "source": 552, - "pc": [ - 1711 - ] - }, - { - "teal": 1688, - "source": 552, - "pc": [ - 1712 - ] - }, - { - "teal": 1689, - "source": 552, - "pc": [ - 1713, - 1714 - ] - }, - { - "teal": 1690, - "source": 552, - "pc": [ - 1715 - ] - }, - { - "teal": 1693, - "source": 552, - "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]", - "pc": [ - 1716 - ] - }, - { - "teal": 1696, - "source": 551, - "pc": [ - 1717, - 1718, - 1719 - ] - }, - { - "teal": 1697, - "source": 551, - "pc": [ - 1720 - ] - }, - { - "teal": 1698, - "source": 551, - "pc": [ - 1721 - ] - }, - { - "teal": 1699, - "source": 551, - "pc": [ - 1722, - 1723 - ] - }, - { - "teal": 1700, - "source": 551, - "pc": [ - 1724 - ] - }, - { - "teal": 1703, - "source": 551, - "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address", - "pc": [ - 1725 - ] - }, - { - "teal": 1706, - "source": 550, - "pc": [ - 1726, - 1727, - 1728 - ] - }, - { - "teal": 1707, - "source": 550, - "pc": [ - 1729 - ] - }, - { - "teal": 1708, - "source": 550, - "pc": [ - 1730 - ] - }, - { - "teal": 1709, - "source": 550, - "pc": [ - 1731 - ] - }, - { - "teal": 1710, - "source": 550, - "pc": [ - 1732 - ] - }, - { - "teal": 1713, - "source": 550, - "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8", - "pc": [ - 1733 - ] - }, - { - "teal": 1714, - "source": 550, - "pc": [ - 1734 - ] - }, - { - "teal": 1717, - "source": 549, - "pc": [ - 1735, - 1736, - 1737 - ] - }, - { - "teal": 1718, - "source": 549, - "pc": [ - 1738 - ] - }, - { - "teal": 1721, - "source": 548, - "pc": [ - 1739, - 1740, - 1741 - ] - }, - { - "teal": 1722, - "source": 548, - "pc": [ - 1742 - ] - }, - { - "teal": 1723, - "source": 548, - "pc": [ - 1743 - ] - }, - { - "teal": 1730, - "source": 548, - "pc": [ - 1744, - 1745, - 1746 - ] - }, - { - "teal": 1737, - "source": 557, - "pc": [ - 1747, - 1748 - ] - }, - { - "teal": 1738, - "source": 557, - "pc": [ - 1749 - ] - }, - { - "teal": 1739, - "source": 557, - "pc": [ - 1750, - 1751 - ] - }, - { - "teal": 1740, - "source": 557, - "pc": [ - 1752 - ] - }, - { - "teal": 1741, - "source": 557, - "pc": [ - 1753, - 1754 - ] - }, - { - "teal": 1742, - "source": 557, - "pc": [ - 1755 - ] - }, - { - "teal": 1743, - "source": 557, - "pc": [ - 1756 - ] - }, - { - "teal": 1744, - "source": 557, - "pc": [ - 1757, - 1758 - ] - }, - { - "teal": 1745, - "source": 557, - "pc": [ - 1759 - ] - }, - { - "teal": 1746, - "source": 557, - "pc": [ - 1760 - ] - }, - { - "teal": 1749, - "source": 556, - "errorMessage": "can only be called by validator owner", - "pc": [ - 1761 - ] - }, - { - "teal": 1753, - "source": 561, - "pc": [ - 1762, - 1763 - ] - }, - { - "teal": 1754, - "source": 561, - "pc": [ - 1764, - 1765 - ] - }, - { - "teal": 1755, - "source": 561, - "pc": [ - 1766 - ] - }, - { - "teal": 1756, - "source": 561, - "pc": [ - 1767, - 1768, - 1769 - ] - }, - { - "teal": 1757, - "source": 561, - "pc": [ - 1770 - ] - }, - { - "teal": 1758, - "source": 561, - "pc": [ - 1771, - 1772 - ] - }, - { - "teal": 1759, - "source": 561, - "pc": [ - 1773 - ] - }, - { - "teal": 1760, - "source": 561, - "pc": [ - 1774 - ] - }, - { - "teal": 1761, - "source": 561, - "pc": [ - 1775, - 1776 - ] - }, - { - "teal": 1762, - "source": 561, - "pc": [ - 1777 - ] - }, - { - "teal": 1766, - "source": 562, - "pc": [ - 1778, - 1779 - ] - }, - { - "teal": 1767, - "source": 562, - "pc": [ - 1780, - 1781 - ] - }, - { - "teal": 1768, - "source": 562, - "pc": [ - 1782 - ] - }, - { - "teal": 1769, - "source": 562, - "pc": [ - 1783, - 1784 - ] - }, - { - "teal": 1770, - "source": 562, - "pc": [ - 1785 - ] - }, - { - "teal": 1771, - "source": 562, - "pc": [ - 1786 - ] - }, - { - "teal": 1772, - "source": 562, - "pc": [ - 1787, - 1788 - ] - }, - { - "teal": 1773, - "source": 562, - "pc": [ - 1789 - ] - }, - { - "teal": 1777, - "source": 563, - "pc": [ - 1790, - 1791 - ] - }, - { - "teal": 1778, - "source": 563, - "pc": [ - 1792, - 1793 - ] - }, - { - "teal": 1779, - "source": 563, - "pc": [ - 1794 - ] - }, - { - "teal": 1780, - "source": 563, - "pc": [ - 1795, - 1796 - ] - }, - { - "teal": 1781, - "source": 563, - "pc": [ - 1797 - ] - }, - { - "teal": 1782, - "source": 563, - "pc": [ - 1798 - ] - }, - { - "teal": 1783, - "source": 563, - "pc": [ - 1799, - 1800 - ] - }, - { - "teal": 1784, - "source": 563, - "pc": [ - 1801 - ] - }, - { - "teal": 1788, - "source": 564, - "pc": [ - 1802, - 1803 - ] - }, - { - "teal": 1789, - "source": 564, - "pc": [ - 1804, - 1805 - ] - }, - { - "teal": 1790, - "source": 564, - "pc": [ - 1806 - ] - }, - { - "teal": 1791, - "source": 564, - "pc": [ - 1807 - ] - }, - { - "teal": 1792, - "source": 564, - "pc": [ - 1808, - 1809 - ] - }, - { - "teal": 1793, - "source": 564, - "pc": [ - 1810 - ] - }, - { - "teal": 1794, - "source": 564, - "pc": [ - 1811 - ] - }, - { - "teal": 1795, - "source": 564, - "pc": [ - 1812, - 1813 - ] - }, - { - "teal": 1796, - "source": 564, - "pc": [ - 1814 - ] - }, - { - "teal": 1800, - "source": 565, - "pc": [ - 1815, - 1816, - 1817 - ] - }, - { - "teal": 1801, - "source": 565, - "pc": [ - 1818, - 1819 - ] - }, - { - "teal": 1802, - "source": 565, - "pc": [ - 1820 - ] - }, - { - "teal": 1803, - "source": 565, - "pc": [ - 1821 - ] - }, - { - "teal": 1804, - "source": 565, - "pc": [ - 1822, - 1823 - ] - }, - { - "teal": 1805, - "source": 565, - "pc": [ - 1824 - ] - }, - { - "teal": 1806, - "source": 565, - "pc": [ - 1825 - ] - }, - { - "teal": 1807, - "source": 565, - "pc": [ - 1826, - 1827 - ] - }, - { - "teal": 1808, - "source": 565, - "pc": [ - 1828 - ] - }, - { - "teal": 1809, - "source": 548, - "pc": [ - 1829 - ] - }, - { - "teal": 1814, - "source": 579, - "pc": [ - 1830 - ] - }, - { - "teal": 1817, - "source": 579, - "pc": [ - 1831, - 1832, - 1833 - ] - }, - { - "teal": 1818, - "source": 579, - "pc": [ - 1834 - ] - }, - { - "teal": 1821, - "source": 579, - "pc": [ - 1835, - 1836, - 1837 - ] - }, - { - "teal": 1822, - "source": 579, - "pc": [ - 1838 - ] - }, - { - "teal": 1825, - "source": 579, - "pc": [ - 1839, - 1840 - ] - }, - { - "teal": 1826, - "source": 579, - "pc": [ - 1841 - ] - }, - { - "teal": 1827, - "source": 579, - "pc": [ - 1842 - ] - }, - { - "teal": 1828, - "source": 579, - "pc": [ - 1843 - ] - }, - { - "teal": 1829, - "source": 579, - "pc": [ - 1844, - 1845 - ] - }, - { - "teal": 1830, - "source": 579, - "pc": [ - 1846 - ] - }, - { - "teal": 1831, - "source": 579, - "pc": [ - 1847 - ] - }, - { - "teal": 1834, - "source": 579, - "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction", - "pc": [ - 1848 - ] - }, - { - "teal": 1837, - "source": 579, - "pc": [ - 1849, - 1850, - 1851 - ] - }, - { - "teal": 1838, - "source": 579, - "pc": [ - 1852 - ] - }, - { - "teal": 1839, - "source": 579, - "pc": [ - 1853 - ] - }, - { - "teal": 1840, - "source": 579, - "pc": [ - 1854 - ] - }, - { - "teal": 1841, - "source": 579, - "pc": [ - 1855 - ] - }, - { - "teal": 1854, - "source": 579, - "pc": [ - 1856, - 1857, - 1858 - ] - }, - { - "teal": 1857, - "source": 579, - "pc": [ - 1859 - ] - }, - { - "teal": 1858, - "source": 579, - "pc": [ - 1860 - ] - }, - { - "teal": 1866, - "source": 582, - "pc": [ - 1861, - 1862 - ] - }, - { - "teal": 1867, - "source": 582, - "pc": [ - 1863 - ] - }, - { - "teal": 1868, - "source": 582, - "pc": [ - 1864, - 1865 - ] - }, - { - "teal": 1869, - "source": 582, - "pc": [ - 1866 - ] - }, - { - "teal": 1870, - "source": 582, - "pc": [ - 1867, - 1868 - ] - }, - { - "teal": 1871, - "source": 582, - "pc": [ - 1869 - ] - }, - { - "teal": 1872, - "source": 582, - "pc": [ - 1870 - ] - }, - { - "teal": 1873, - "source": 582, - "pc": [ - 1871, - 1872 - ] - }, - { - "teal": 1874, - "source": 582, - "pc": [ - 1873 - ] - }, - { - "teal": 1875, - "source": 582, - "pc": [ - 1874 - ] - }, - { - "teal": 1876, - "source": 582, - "pc": [ - 1875 - ] - }, - { - "teal": 1877, - "source": 582, - "pc": [ - 1876, - 1877, - 1878 - ] - }, - { - "teal": 1878, - "source": 583, - "pc": [ - 1879, - 1880 - ] - }, - { - "teal": 1879, - "source": 583, - "pc": [ - 1881, - 1882 - ] - }, - { - "teal": 1880, - "source": 583, - "pc": [ - 1883, - 1884 - ] - }, - { - "teal": 1881, - "source": 583, - "pc": [ - 1885 - ] - }, - { - "teal": 1882, - "source": 583, - "pc": [ - 1886, - 1887 - ] - }, - { - "teal": 1883, - "source": 583, - "pc": [ - 1888 - ] - }, - { - "teal": 1884, - "source": 583, - "pc": [ - 1889 - ] - }, - { - "teal": 1885, - "source": 583, - "pc": [ - 1890, - 1891 - ] - }, - { - "teal": 1886, - "source": 583, - "pc": [ - 1892 - ] - }, - { - "teal": 1887, - "source": 583, - "pc": [ - 1893 - ] - }, - { - "teal": 1888, - "source": 582, - "pc": [ - 1894 - ] - }, - { - "teal": 1892, - "source": 581, - "errorMessage": "can only be called by owner or manager of validator", - "pc": [ - 1895 - ] - }, - { - "teal": 1897, - "source": 588, - "pc": [ - 1896, - 1897 - ] - }, - { - "teal": 1898, - "source": 588, - "pc": [ - 1898, - 1899 - ] - }, - { - "teal": 1899, - "source": 588, - "pc": [ - 1900, - 1901, - 1902 - ] - }, - { - "teal": 1900, - "source": 588, - "pc": [ - 1903, - 1904, - 1905 - ] - }, - { - "teal": 1901, - "source": 588, - "pc": [ - 1906 - ] - }, - { - "teal": 1902, - "source": 588, - "pc": [ - 1907 - ] - }, - { - "teal": 1905, - "source": 588, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}", - "pc": [ - 1908 - ] - }, - { - "teal": 1908, - "source": 588, - "pc": [ - 1909, - 1910 - ] - }, - { - "teal": 1909, - "source": 588, - "pc": [ - 1911, - 1912 - ] - }, - { - "teal": 1910, - "source": 588, - "pc": [ - 1913, - 1914 - ] - }, - { - "teal": 1911, - "source": 588, - "pc": [ - 1915 - ] - }, - { - "teal": 1914, - "source": 588, - "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 1916 - ] - }, - { - "teal": 1918, - "source": 590, - "pc": [ - 1917 - ] - }, - { - "teal": 1919, - "source": 590, - "pc": [ - 1918, - 1919 - ] - }, - { - "teal": 1920, - "source": 590, - "pc": [ - 1920 - ] - }, - { - "teal": 1921, - "source": 590, - "pc": [ - 1921 - ] - }, - { - "teal": 1922, - "source": 590, - "pc": [ - 1922 - ] - }, - { - "teal": 1923, - "source": 590, - "pc": [ - 1923 - ] - }, - { - "teal": 1924, - "source": 590, - "pc": [ - 1924 - ] - }, - { - "teal": 1927, - "source": 590, - "errorMessage": "specified validator id isn't valid", - "pc": [ - 1925 - ] - }, - { - "teal": 1931, - "source": 592, - "pc": [ - 1926, - 1927 - ] - }, - { - "teal": 1932, - "source": 592, - "pc": [ - 1928, - 1929 - ] - }, - { - "teal": 1933, - "source": 592, - "pc": [ - 1930 - ] - }, - { - "teal": 1934, - "source": 592, - "pc": [ - 1931, - 1932 - ] - }, - { - "teal": 1935, - "source": 592, - "pc": [ - 1933 - ] - }, - { - "teal": 1936, - "source": 592, - "pc": [ - 1934 - ] - }, - { - "teal": 1937, - "source": 592, - "pc": [ - 1935, - 1936 - ] - }, - { - "teal": 1938, - "source": 592, - "pc": [ - 1937 - ] - }, - { - "teal": 1939, - "source": 592, - "pc": [ - 1938 - ] - }, - { - "teal": 1940, - "source": 592, - "pc": [ - 1939, - 1940 - ] - }, - { - "teal": 1945, - "source": 593, - "pc": [ - 1941, - 1942 - ] - }, - { - "teal": 1946, - "source": 32, - "pc": [ - 1943 - ] - }, - { - "teal": 1947, - "source": 593, - "pc": [ - 1944 - ] - }, - { - "teal": 1948, - "source": 593, - "pc": [ - 1945, - 1946, - 1947 - ] - }, - { - "teal": 1952, - "source": 594, - "errorMessage": "already at max pool size", - "pc": [ - 1948 - ] - }, - { - "teal": 1957, - "source": 596, - "pc": [ - 1949, - 1950 - ] - }, - { - "teal": 1958, - "source": 596, - "pc": [ - 1951 - ] - }, - { - "teal": 1959, - "source": 596, - "pc": [ - 1952 - ] - }, - { - "teal": 1960, - "source": 596, - "pc": [ - 1953, - 1954 - ] - }, - { - "teal": 1982, - "source": 599, - "pc": [ - 1955 - ] - }, - { - "teal": 1983, - "source": 599, - "pc": [ - 1956, - 1957 - ] - }, - { - "teal": 1984, - "source": 599, - "pc": [ - 1958, - 1959 - ] - }, - { - "teal": 1988, - "source": 600, - "pc": [ - 1960 - ] - }, - { - "teal": 1989, - "source": 600, - "pc": [ - 1961, - 1962 - ] - }, - { - "teal": 1996, - "source": 602, - "pc": [ - 1963, - 1964 - ] - }, - { - "teal": 1997, - "source": 602, - "pc": [ - 1965 - ] - }, - { - "teal": 1998, - "source": 602, - "pc": [ - 1966, - 1967 - ] - }, - { - "teal": 1999, - "source": 602, - "pc": [ - 1968 - ] - }, - { - "teal": 2000, - "source": 602, - "pc": [ - 1969, - 1970 - ] - }, - { - "teal": 2001, - "source": 603, - "pc": [ - 1971, - 1972 - ] - }, - { - "teal": 2002, - "source": 603, - "pc": [ - 1973, - 1974 - ] - }, - { - "teal": 2003, - "source": 603, - "pc": [ - 1975, - 1976 - ] - }, - { - "teal": 2004, - "source": 603, - "pc": [ - 1977 - ] - }, - { - "teal": 2007, - "source": 603, - "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size", - "pc": [ - 1978 - ] - }, - { - "teal": 2008, - "source": 603, - "pc": [ - 1979, - 1980 - ] - }, - { - "teal": 2009, - "source": 603, - "pc": [ - 1981 - ] - }, - { - "teal": 2010, - "source": 603, - "pc": [ - 1982 - ] - }, - { - "teal": 2011, - "source": 603, - "pc": [ - 1983, - 1984 - ] - }, - { - "teal": 2015, - "source": 605, - "pc": [ - 1985, - 1986, - 1987 - ] - }, - { - "teal": 2016, - "source": 605, - "pc": [ - 1988, - 1989 - ] - }, - { - "teal": 2020, - "source": 606, - "pc": [ - 1990, - 1991 - ] - }, - { - "teal": 2021, - "source": 606, - "pc": [ - 1992, - 1993 - ] - }, - { - "teal": 2025, - "source": 607, - "pc": [ - 1994, - 1995 - ] - }, - { - "teal": 2026, - "source": 607, - "pc": [ - 1996, - 1997 - ] - }, - { - "teal": 2030, - "source": 608, - "pc": [ - 1998, - 1999 - ] - }, - { - "teal": 2031, - "source": 608, - "pc": [ - 2000, - 2001 - ] - }, - { - "teal": 2042, - "source": 611, - "pc": [ - 2002, - 2003, - 2004, - 2005, - 2006, - 2007 - ] - }, - { - "teal": 2043, - "source": 611, - "pc": [ - 2008, - 2009 - ] - }, - { - "teal": 2044, - "source": 612, - "pc": [ - 2010, - 2011, - 2012 - ] - }, - { - "teal": 2045, - "source": 612, - "pc": [ - 2013 - ] - }, - { - "teal": 2046, - "source": 612, - "pc": [ - 2014, - 2015 - ] - }, - { - "teal": 2047, - "source": 613, - "pc": [ - 2016, - 2017 - ] - }, - { - "teal": 2048, - "source": 613, - "pc": [ - 2018 - ] - }, - { - "teal": 2049, - "source": 613, - "pc": [ - 2019, - 2020 - ] - }, - { - "teal": 2050, - "source": 614, - "pc": [ - 2021, - 2022 - ] - }, - { - "teal": 2051, - "source": 614, - "pc": [ - 2023 - ] - }, - { - "teal": 2052, - "source": 614, - "pc": [ - 2024, - 2025 - ] - }, - { - "teal": 2053, - "source": 615, - "pc": [ - 2026, - 2027 - ] - }, - { - "teal": 2054, - "source": 615, - "pc": [ - 2028 - ] - }, - { - "teal": 2055, - "source": 615, - "pc": [ - 2029 - ] - }, - { - "teal": 2056, - "source": 615, - "pc": [ - 2030, - 2031 - ] - }, - { - "teal": 2057, - "source": 615, - "pc": [ - 2032 - ] - }, - { - "teal": 2058, - "source": 615, - "pc": [ - 2033 - ] - }, - { - "teal": 2059, - "source": 615, - "pc": [ - 2034, - 2035 - ] - }, - { - "teal": 2060, - "source": 615, - "pc": [ - 2036 - ] - }, - { - "teal": 2061, - "source": 615, - "pc": [ - 2037 - ] - }, - { - "teal": 2062, - "source": 615, - "pc": [ - 2038 - ] - }, - { - "teal": 2063, - "source": 615, - "pc": [ - 2039, - 2040 - ] - }, - { - "teal": 2066, - "source": 599, - "pc": [ - 2041 - ] - }, - { - "teal": 2067, - "source": 599, - "pc": [ - 2042, - 2043 - ] - }, - { - "teal": 2070, - "source": 599, - "pc": [ - 2044 - ] - }, - { - "teal": 2074, - "source": 619, - "pc": [ - 2045, - 2046 - ] - }, - { - "teal": 2075, - "source": 619, - "pc": [ - 2047, - 2048 - ] - }, - { - "teal": 2076, - "source": 619, - "pc": [ - 2049 - ] - }, - { - "teal": 2077, - "source": 619, - "pc": [ - 2050, - 2051, - 2052 - ] - }, - { - "teal": 2078, - "source": 619, - "pc": [ - 2053 - ] - }, - { - "teal": 2079, - "source": 619, - "pc": [ - 2054, - 2055 - ] - }, - { - "teal": 2080, - "source": 619, - "pc": [ - 2056 - ] - }, - { - "teal": 2081, - "source": 619, - "pc": [ - 2057 - ] - }, - { - "teal": 2082, - "source": 619, - "pc": [ - 2058, - 2059 - ] - }, - { - "teal": 2083, - "source": 619, - "pc": [ - 2060 - ] - }, - { - "teal": 2087, - "source": 622, - "pc": [ - 2061, - 2062 - ] - }, - { - "teal": 2088, - "source": 622, - "pc": [ - 2063, - 2064 - ] - }, - { - "teal": 2092, - "source": 623, - "pc": [ - 2065, - 2066 - ] - }, - { - "teal": 2093, - "source": 623, - "pc": [ - 2067, - 2068 - ] - }, - { - "teal": 2094, - "source": 623, - "pc": [ - 2069 - ] - }, - { - "teal": 2095, - "source": 623, - "pc": [ - 2070 - ] - }, - { - "teal": 2096, - "source": 623, - "pc": [ - 2071, - 2072 - ] - }, - { - "teal": 2097, - "source": 623, - "pc": [ - 2073 - ] - }, - { - "teal": 2098, - "source": 623, - "pc": [ - 2074 - ] - }, - { - "teal": 2099, - "source": 623, - "pc": [ - 2075 - ] - }, - { - "teal": 2100, - "source": 623, - "pc": [ - 2076 - ] - }, - { - "teal": 2101, - "source": 623, - "pc": [ - 2077, - 2078 - ] - }, - { - "teal": 2102, - "source": 623, - "pc": [ - 2079 - ] - }, - { - "teal": 2103, - "source": 623, - "pc": [ - 2080 - ] - }, - { - "teal": 2104, - "source": 623, - "pc": [ - 2081, - 2082 - ] - }, - { - "teal": 2105, - "source": 623, - "pc": [ - 2083 - ] - }, - { - "teal": 2106, - "source": 623, - "pc": [ - 2084 - ] - }, - { - "teal": 2107, - "source": 623, - "pc": [ - 2085, - 2086 - ] - }, - { - "teal": 2108, - "source": 623, - "pc": [ - 2087 - ] - }, - { - "teal": 2112, - "source": 624, - "pc": [ - 2088, - 2089 - ] - }, - { - "teal": 2113, - "source": 624, - "pc": [ - 2090, - 2091 - ] - }, - { - "teal": 2114, - "source": 624, - "pc": [ - 2092, - 2093 - ] - }, - { - "teal": 2115, - "source": 624, - "pc": [ - 2094, - 2095, - 2096 - ] - }, - { - "teal": 2119, - "source": 632, - "pc": [ - 2097, - 2098 - ] - }, - { - "teal": 2120, - "source": 632, - "pc": [ - 2099 - ] - }, - { - "teal": 2121, - "source": 632, - "pc": [ - 2100, - 2101 - ] - }, - { - "teal": 2122, - "source": 632, - "pc": [ - 2102 - ] - }, - { - "teal": 2123, - "source": 632, - "pc": [ - 2103 - ] - }, - { - "teal": 2124, - "source": 632, - "pc": [ - 2104, - 2105 - ] - }, - { - "teal": 2125, - "source": 632, - "pc": [ - 2106 - ] - }, - { - "teal": 2126, - "source": 632, - "pc": [ - 2107 - ] - }, - { - "teal": 2129, - "source": 579, - "pc": [ - 2108, - 2109 - ] - }, - { - "teal": 2132, - "source": 579, - "pc": [ - 2110, - 2111 - ] - }, - { - "teal": 2133, - "source": 579, - "pc": [ - 2112 - ] - }, - { - "teal": 2138, - "source": 644, - "pc": [ - 2113 - ] - }, - { - "teal": 2141, - "source": 644, - "pc": [ - 2114, - 2115, - 2116 - ] - }, - { - "teal": 2142, - "source": 644, - "pc": [ - 2117 - ] - }, - { - "teal": 2145, - "source": 644, - "pc": [ - 2118, - 2119, - 2120 - ] - }, - { - "teal": 2146, - "source": 644, - "pc": [ - 2121 - ] - }, - { - "teal": 2149, - "source": 644, - "pc": [ - 2122, - 2123 - ] - }, - { - "teal": 2150, - "source": 644, - "pc": [ - 2124 - ] - }, - { - "teal": 2151, - "source": 644, - "pc": [ - 2125 - ] - }, - { - "teal": 2152, - "source": 644, - "pc": [ - 2126 - ] - }, - { - "teal": 2153, - "source": 644, - "pc": [ - 2127, - 2128 - ] - }, - { - "teal": 2154, - "source": 644, - "pc": [ - 2129 - ] - }, - { - "teal": 2155, - "source": 644, - "pc": [ - 2130 - ] - }, - { - "teal": 2158, - "source": 644, - "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction", - "pc": [ - 2131 - ] - }, - { - "teal": 2161, - "source": 644, - "pc": [ - 2132, - 2133, - 2134 - ] - }, - { - "teal": 2162, - "source": 644, - "pc": [ - 2135 - ] - }, - { - "teal": 2163, - "source": 644, - "pc": [ - 2136 - ] - }, - { - "teal": 2164, - "source": 644, - "pc": [ - 2137 - ] - }, - { - "teal": 2165, - "source": 644, - "pc": [ - 2138 - ] - }, - { - "teal": 2177, - "source": 644, - "pc": [ - 2139, - 2140, - 2141 - ] - }, - { - "teal": 2180, - "source": 644, - "pc": [ - 2142 - ] - }, - { - "teal": 2181, - "source": 644, - "pc": [ - 2143, - 2144 - ] - }, - { - "teal": 2185, - "source": 645, - "pc": [ - 2145 - ] - }, - { - "teal": 2186, - "source": 645, - "pc": [ - 2146, - 2147 - ] - }, - { - "teal": 2187, - "source": 645, - "pc": [ - 2148 - ] - }, - { - "teal": 2188, - "source": 645, - "pc": [ - 2149 - ] - }, - { - "teal": 2189, - "source": 645, - "pc": [ - 2150 - ] - }, - { - "teal": 2190, - "source": 645, - "pc": [ - 2151 - ] - }, - { - "teal": 2191, - "source": 645, - "pc": [ - 2152 - ] - }, - { - "teal": 2194, - "source": 645, - "errorMessage": "specified validator id isn't valid", - "pc": [ - 2153 - ] - }, - { - "teal": 2199, - "source": 648, - "pc": [ - 2154, - 2155 - ] - }, - { - "teal": 2200, - "source": 648, - "pc": [ - 2156 - ] - }, - { - "teal": 2201, - "source": 648, - "pc": [ - 2157 - ] - }, - { - "teal": 2202, - "source": 648, - "pc": [ - 2158, - 2159 - ] - }, - { - "teal": 2203, - "source": 648, - "pc": [ - 2160 - ] - }, - { - "teal": 2204, - "source": 648, - "pc": [ - 2161 - ] - }, - { - "teal": 2205, - "source": 648, - "pc": [ - 2162, - 2163 - ] - }, - { - "teal": 2206, - "source": 648, - "pc": [ - 2164 - ] - }, - { - "teal": 2207, - "source": 648, - "pc": [ - 2165 - ] - }, - { - "teal": 2208, - "source": 648, - "pc": [ - 2166 - ] - }, - { - "teal": 2209, - "source": 648, - "pc": [ - 2167 - ] - }, - { - "teal": 2210, - "source": 648, - "pc": [ - 2168, - 2169, - 2170 - ] - }, - { - "teal": 2218, - "source": 650, - "pc": [ - 2171, - 2172 - ] - }, - { - "teal": 2219, - "source": 650, - "pc": [ - 2173 - ] - }, - { - "teal": 2220, - "source": 650, - "pc": [ - 2174 - ] - }, - { - "teal": 2221, - "source": 650, - "pc": [ - 2175, - 2176 - ] - }, - { - "teal": 2222, - "source": 650, - "pc": [ - 2177 - ] - }, - { - "teal": 2223, - "source": 650, - "pc": [ - 2178 - ] - }, - { - "teal": 2224, - "source": 650, - "pc": [ - 2179, - 2180 - ] - }, - { - "teal": 2225, - "source": 650, - "pc": [ - 2181 - ] - }, - { - "teal": 2226, - "source": 650, - "pc": [ - 2182 - ] - }, - { - "teal": 2227, - "source": 650, - "pc": [ - 2183, - 2184 - ] - }, - { - "teal": 2228, - "source": 650, - "pc": [ - 2185 - ] - }, - { - "teal": 2231, - "source": 649, - "errorMessage": "can't stake with a validator that is past its sunsetting time", - "pc": [ - 2186 - ] - }, - { - "teal": 2236, - "source": 655, - "pc": [ - 2187, - 2188 - ] - }, - { - "teal": 2237, - "source": 655, - "pc": [ - 2189, - 2190 - ] - }, - { - "teal": 2245, - "source": 659, - "pc": [ - 2191, - 2192 - ] - }, - { - "teal": 2246, - "source": 660, - "pc": [ - 2193, - 2194 - ] - }, - { - "teal": 2247, - "source": 660, - "pc": [ - 2195, - 2196 - ] - }, - { - "teal": 2248, - "source": 660, - "pc": [ - 2197 - ] - }, - { - "teal": 2251, - "source": 660, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}", - "pc": [ - 2198 - ] - }, - { - "teal": 2254, - "source": 659, - "pc": [ - 2199, - 2200 - ] - }, - { - "teal": 2255, - "source": 661, - "pc": [ - 2201, - 2202 - ] - }, - { - "teal": 2256, - "source": 661, - "pc": [ - 2203, - 2204 - ] - }, - { - "teal": 2257, - "source": 661, - "pc": [ - 2205 - ] - }, - { - "teal": 2260, - "source": 661, - "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 2206 - ] - }, - { - "teal": 2267, - "source": 667, - "pc": [ - 2207, - 2208 - ] - }, - { - "teal": 2268, - "source": 667, - "pc": [ - 2209 - ] - }, - { - "teal": 2269, - "source": 667, - "pc": [ - 2210 - ] - }, - { - "teal": 2270, - "source": 667, - "pc": [ - 2211, - 2212 - ] - }, - { - "teal": 2271, - "source": 667, - "pc": [ - 2213 - ] - }, - { - "teal": 2272, - "source": 667, - "pc": [ - 2214 - ] - }, - { - "teal": 2273, - "source": 667, - "pc": [ - 2215, - 2216 - ] - }, - { - "teal": 2274, - "source": 667, - "pc": [ - 2217 - ] - }, - { - "teal": 2275, - "source": 667, - "pc": [ - 2218 - ] - }, - { - "teal": 2276, - "source": 667, - "pc": [ - 2219, - 2220, - 2221 - ] - }, - { - "teal": 2277, - "source": 667, - "pc": [ - 2222 - ] - }, - { - "teal": 2280, - "source": 666, - "errorMessage": "total staked for all of a validators pools may not exceed hard cap", - "pc": [ - 2223 - ] - }, - { - "teal": 2284, - "source": 673, - "pc": [ - 2224, - 2225 - ] - }, - { - "teal": 2285, - "source": 673, - "pc": [ - 2226, - 2227 - ] - }, - { - "teal": 2286, - "source": 673, - "pc": [ - 2228, - 2229, - 2230 - ] - }, - { - "teal": 2290, - "source": 675, - "pc": [ - 2231, - 2232 - ] - }, - { - "teal": 2291, - "source": 675, - "pc": [ - 2233, - 2234 - ] - }, - { - "teal": 2292, - "source": 675, - "pc": [ - 2235, - 2236 - ] - }, - { - "teal": 2296, - "source": 676, - "pc": [ - 2237 - ] - }, - { - "teal": 2297, - "source": 676, - "pc": [ - 2238, - 2239 - ] - }, - { - "teal": 2302, - "source": 678, - "pc": [ - 2240 - ] - }, - { - "teal": 2303, - "source": 678, - "pc": [ - 2241, - 2242 - ] - }, - { - "teal": 2304, - "source": 678, - "pc": [ - 2243 - ] - }, - { - "teal": 2305, - "source": 678, - "pc": [ - 2244 - ] - }, - { - "teal": 2306, - "source": 678, - "pc": [ - 2245 - ] - }, - { - "teal": 2307, - "source": 678, - "pc": [ - 2246 - ] - }, - { - "teal": 2308, - "source": 678, - "pc": [ - 2247 - ] - }, - { - "teal": 2309, - "source": 678, - "pc": [ - 2248, - 2249, - 2250 - ] - }, - { - "teal": 2314, - "source": 681, - "pc": [ - 2251, - 2252, - 2253 - ] - }, - { - "teal": 2315, - "source": 681, - "pc": [ - 2254, - 2255, - 2256 - ] - }, - { - "teal": 2316, - "source": 681, - "pc": [ - 2257 - ] - }, - { - "teal": 2317, - "source": 681, - "pc": [ - 2258, - 2259 - ] - }, - { - "teal": 2321, - "source": 682, - "pc": [ - 2260, - 2261 - ] - }, - { - "teal": 2322, - "source": 682, - "pc": [ - 2262, - 2263 - ] - }, - { - "teal": 2323, - "source": 682, - "pc": [ - 2264 - ] - }, - { - "teal": 2324, - "source": 682, - "pc": [ - 2265, - 2266 - ] - }, - { - "teal": 2328, - "source": 683, - "pc": [ - 2267 - ] - }, - { - "teal": 2329, - "source": 683, - "pc": [ - 2268, - 2269 - ] - }, - { - "teal": 2330, - "source": 683, - "pc": [ - 2270 - ] - }, - { - "teal": 2331, - "source": 683, - "pc": [ - 2271, - 2272, - 2273 - ] - }, - { - "teal": 2332, - "source": 683, - "pc": [ - 2274 - ] - }, - { - "teal": 2333, - "source": 683, - "pc": [ - 2275 - ] - }, - { - "teal": 2338, - "source": 687, - "pc": [ - 2276, - 2277 - ] - }, - { - "teal": 2339, - "source": 687, - "pc": [ - 2278, - 2279 - ] - }, - { - "teal": 2340, - "source": 687, - "pc": [ - 2280, - 2281 - ] - }, - { - "teal": 2341, - "source": 687, - "pc": [ - 2282, - 2283, - 2284 - ] - }, - { - "teal": 2342, - "source": 687, - "pc": [ - 2285, - 2286 - ] - }, - { - "teal": 2348, - "source": 689, - "pc": [ - 2287, - 2288 - ] - }, - { - "teal": 2349, - "source": 689, - "pc": [ - 2289, - 2290 - ] - }, - { - "teal": 2350, - "source": 689, - "pc": [ - 2291, - 2292 - ] - }, - { - "teal": 2351, - "source": 689, - "pc": [ - 2293, - 2294 - ] - }, - { - "teal": 2352, - "source": 689, - "pc": [ - 2295 - ] - }, - { - "teal": 2353, - "source": 689, - "pc": [ - 2296, - 2297 - ] - }, - { - "teal": 2357, - "source": 690, - "pc": [ - 2298, - 2299 - ] - }, - { - "teal": 2358, - "source": 690, - "pc": [ - 2300, - 2301 - ] - }, - { - "teal": 2359, - "source": 690, - "pc": [ - 2302, - 2303 - ] - }, - { - "teal": 2360, - "source": 690, - "pc": [ - 2304, - 2305, - 2306 - ] - }, - { - "teal": 2361, - "source": 690, - "pc": [ - 2307 - ] - }, - { - "teal": 2362, - "source": 690, - "pc": [ - 2308, - 2309 - ] - }, - { - "teal": 2367, - "source": 691, - "pc": [ - 2310, - 2311 - ] - }, - { - "teal": 2368, - "source": 691, - "pc": [ - 2312, - 2313 - ] - }, - { - "teal": 2369, - "source": 691, - "pc": [ - 2314, - 2315 - ] - }, - { - "teal": 2370, - "source": 691, - "pc": [ - 2316, - 2317, - 2318 - ] - }, - { - "teal": 2371, - "source": 691, - "pc": [ - 2319 - ] - }, - { - "teal": 2372, - "source": 691, - "pc": [ - 2320 - ] - }, - { - "teal": 2373, - "source": 691, - "pc": [ - 2321 - ] - }, - { - "teal": 2374, - "source": 691, - "pc": [ - 2322, - 2323, - 2324 - ] - }, - { - "teal": 2378, - "source": 692, - "errorMessage": "No pool available with free stake. Validator needs to add another pool", - "pc": [ - 2325 - ] - }, - { - "teal": 2383, - "source": 696, - "pc": [ - 2326, - 2327 - ] - }, - { - "teal": 2384, - "source": 696, - "pc": [ - 2328, - 2329 - ] - }, - { - "teal": 2385, - "source": 696, - "pc": [ - 2330, - 2331 - ] - }, - { - "teal": 2386, - "source": 696, - "pc": [ - 2332, - 2333, - 2334 - ] - }, - { - "teal": 2387, - "source": 696, - "pc": [ - 2335, - 2336 - ] - }, - { - "teal": 2388, - "source": 696, - "pc": [ - 2337, - 2338, - 2339 - ] - }, - { - "teal": 2398, - "source": 704, - "pc": [ - 2340, - 2341 - ] - }, - { - "teal": 2399, - "source": 703, - "pc": [ - 2342, - 2343 - ] - }, - { - "teal": 2400, - "source": 702, - "pc": [ - 2344, - 2345 - ] - }, - { - "teal": 2401, - "source": 701, - "pc": [ - 2346, - 2347 - ] - }, - { - "teal": 2402, - "source": 701, - "pc": [ - 2348, - 2349 - ] - }, - { - "teal": 2403, - "source": 701, - "pc": [ - 2350, - 2351 - ] - }, - { - "teal": 2404, - "source": 701, - "pc": [ - 2352, - 2353, - 2354 - ] - }, - { - "teal": 2405, - "source": 700, - "pc": [ - 2355, - 2356 - ] - }, - { - "teal": 2406, - "source": 699, - "pc": [ - 2357, - 2358, - 2359 - ] - }, - { - "teal": 2410, - "source": 714, - "pc": [ - 2360, - 2361 - ] - }, - { - "teal": 2411, - "source": 714, - "pc": [ - 2362, - 2363 - ] - }, - { - "teal": 2412, - "source": 714, - "pc": [ - 2364, - 2365 - ] - }, - { - "teal": 2413, - "source": 714, - "pc": [ - 2366, - 2367, - 2368 - ] - }, - { - "teal": 2416, - "source": 644, - "pc": [ - 2369, - 2370 - ] - }, - { - "teal": 2419, - "source": 644, - "pc": [ - 2371, - 2372 - ] - }, - { - "teal": 2420, - "source": 644, - "pc": [ - 2373 - ] - }, - { - "teal": 2425, - "source": 732, - "pc": [ - 2374 - ] - }, - { - "teal": 2428, - "source": 732, - "pc": [ - 2375, - 2376, - 2377 - ] - }, - { - "teal": 2429, - "source": 732, - "pc": [ - 2378 - ] - }, - { - "teal": 2432, - "source": 732, - "pc": [ - 2379, - 2380, - 2381 - ] - }, - { - "teal": 2433, - "source": 732, - "pc": [ - 2382 - ] - }, - { - "teal": 2434, - "source": 732, - "pc": [ - 2383 - ] - }, - { - "teal": 2435, - "source": 732, - "pc": [ - 2384 - ] - }, - { - "teal": 2436, - "source": 732, - "pc": [ - 2385 - ] - }, - { - "teal": 2454, - "source": 732, - "pc": [ - 2386, - 2387, - 2388 - ] - }, - { - "teal": 2457, - "source": 732, - "pc": [ - 2389 - ] - }, - { - "teal": 2458, - "source": 732, - "pc": [ - 2390, - 2391 - ] - }, - { - "teal": 2462, - "source": 734, - "pc": [ - 2392, - 2393 - ] - }, - { - "teal": 2463, - "source": 734, - "pc": [ - 2394 - ] - }, - { - "teal": 2464, - "source": 734, - "pc": [ - 2395 - ] - }, - { - "teal": 2465, - "source": 734, - "pc": [ - 2396, - 2397 - ] - }, - { - "teal": 2466, - "source": 734, - "pc": [ - 2398 - ] - }, - { - "teal": 2467, - "source": 734, - "pc": [ - 2399 - ] - }, - { - "teal": 2468, - "source": 734, - "pc": [ - 2400, - 2401 - ] - }, - { - "teal": 2469, - "source": 734, - "pc": [ - 2402 - ] - }, - { - "teal": 2470, - "source": 734, - "pc": [ - 2403 - ] - }, - { - "teal": 2471, - "source": 734, - "pc": [ - 2404, - 2405 - ] - }, - { - "teal": 2475, - "source": 735, - "pc": [ - 2406, - 2407 - ] - }, - { - "teal": 2476, - "source": 735, - "pc": [ - 2408 - ] - }, - { - "teal": 2477, - "source": 735, - "pc": [ - 2409 - ] - }, - { - "teal": 2478, - "source": 735, - "pc": [ - 2410 - ] - }, - { - "teal": 2483, - "source": 737, - "pc": [ - 2411, - 2412 - ] - }, - { - "teal": 2484, - "source": 737, - "pc": [ - 2413, - 2414 - ] - }, - { - "teal": 2485, - "source": 737, - "pc": [ - 2415, - 2416 - ] - }, - { - "teal": 2486, - "source": 737, - "pc": [ - 2417 - ] - }, - { - "teal": 2487, - "source": 737, - "pc": [ - 2418 - ] - }, - { - "teal": 2488, - "source": 737, - "pc": [ - 2419, - 2420, - 2421 - ] - }, - { - "teal": 2493, - "source": 738, - "pc": [ - 2422, - 2423 - ] - }, - { - "teal": 2494, - "source": 738, - "pc": [ - 2424, - 2425 - ] - }, - { - "teal": 2495, - "source": 738, - "pc": [ - 2426 - ] - }, - { - "teal": 2496, - "source": 738, - "pc": [ - 2427, - 2428 - ] - }, - { - "teal": 2497, - "source": 738, - "pc": [ - 2429 - ] - }, - { - "teal": 2498, - "source": 738, - "pc": [ - 2430 - ] - }, - { - "teal": 2499, - "source": 738, - "pc": [ - 2431, - 2432 - ] - }, - { - "teal": 2500, - "source": 738, - "pc": [ - 2433 - ] - }, - { - "teal": 2501, - "source": 738, - "pc": [ - 2434, - 2435, - 2436 - ] - }, - { - "teal": 2506, - "source": 744, - "pc": [ - 2437, - 2438 - ] - }, - { - "teal": 2507, - "source": 744, - "pc": [ - 2439, - 2440 - ] - }, - { - "teal": 2511, - "source": 745, - "pc": [ - 2441, - 2442 - ] - }, - { - "teal": 2512, - "source": 745, - "pc": [ - 2443 - ] - }, - { - "teal": 2513, - "source": 745, - "pc": [ - 2444 - ] - }, - { - "teal": 2514, - "source": 745, - "pc": [ - 2445, - 2446 - ] - }, - { - "teal": 2515, - "source": 745, - "pc": [ - 2447 - ] - }, - { - "teal": 2516, - "source": 745, - "pc": [ - 2448 - ] - }, - { - "teal": 2517, - "source": 745, - "pc": [ - 2449, - 2450 - ] - }, - { - "teal": 2518, - "source": 745, - "pc": [ - 2451 - ] - }, - { - "teal": 2519, - "source": 745, - "pc": [ - 2452 - ] - }, - { - "teal": 2520, - "source": 745, - "pc": [ - 2453, - 2454 - ] - }, - { - "teal": 2525, - "source": 746, - "pc": [ - 2455, - 2456 - ] - }, - { - "teal": 2526, - "source": 746, - "pc": [ - 2457 - ] - }, - { - "teal": 2527, - "source": 746, - "pc": [ - 2458 - ] - }, - { - "teal": 2528, - "source": 746, - "pc": [ - 2459, - 2460, - 2461 - ] - }, - { - "teal": 2534, - "source": 748, - "pc": [ - 2462, - 2463 - ] - }, - { - "teal": 2535, - "source": 748, - "pc": [ - 2464, - 2465, - 2466, - 2467, - 2468, - 2469, - 2470, - 2471, - 2472, - 2473, - 2474, - 2475 - ] - }, - { - "teal": 2536, - "source": 748, - "pc": [ - 2476 - ] - }, - { - "teal": 2539, - "source": 748, - "errorMessage": "global state value does not exist: AppID.fromUint64(pool1AppID).globalState('lastPayout')", - "pc": [ - 2477 - ] - }, - { - "teal": 2540, - "source": 748, - "pc": [ - 2478, - 2479 - ] - }, - { - "teal": 2541, - "source": 748, - "pc": [ - 2480 - ] - }, - { - "teal": 2542, - "source": 748, - "pc": [ - 2481, - 2482, - 2483 - ] - }, - { - "teal": 2547, - "source": 749, - "pc": [ - 2484, - 2485 - ] - }, - { - "teal": 2548, - "source": 749, - "pc": [ - 2486, - 2487 - ] - }, - { - "teal": 2549, - "source": 749, - "pc": [ - 2488 - ] - }, - { - "teal": 2550, - "source": 749, - "pc": [ - 2489, - 2490 - ] - }, - { - "teal": 2551, - "source": 749, - "pc": [ - 2491 - ] - }, - { - "teal": 2552, - "source": 749, - "pc": [ - 2492 - ] - }, - { - "teal": 2553, - "source": 749, - "pc": [ - 2493, - 2494 - ] - }, - { - "teal": 2554, - "source": 749, - "pc": [ - 2495 - ] - }, - { - "teal": 2555, - "source": 749, - "pc": [ - 2496, - 2497, - 2498 - ] - }, - { - "teal": 2560, - "source": 751, - "pc": [ - 2499, - 2500, - 2501 - ] - }, - { - "teal": 2561, - "source": 751, - "pc": [ - 2502, - 2503 - ] - }, - { - "teal": 2562, - "source": 751, - "pc": [ - 2504 - ] - }, - { - "teal": 2563, - "source": 751, - "pc": [ - 2505, - 2506 - ] - }, - { - "teal": 2564, - "source": 751, - "pc": [ - 2507 - ] - }, - { - "teal": 2565, - "source": 751, - "pc": [ - 2508 - ] - }, - { - "teal": 2566, - "source": 751, - "pc": [ - 2509, - 2510 - ] - }, - { - "teal": 2567, - "source": 751, - "pc": [ - 2511 - ] - }, - { - "teal": 2568, - "source": 751, - "pc": [ - 2512 - ] - }, - { - "teal": 2569, - "source": 751, - "pc": [ - 2513, - 2514 - ] - }, - { - "teal": 2573, - "source": 752, - "pc": [ - 2515, - 2516 - ] - }, - { - "teal": 2574, - "source": 752, - "pc": [ - 2517, - 2518 - ] - }, - { - "teal": 2575, - "source": 752, - "pc": [ - 2519, - 2520 - ] - }, - { - "teal": 2576, - "source": 752, - "pc": [ - 2521 - ] - }, - { - "teal": 2577, - "source": 752, - "pc": [ - 2522 - ] - }, - { - "teal": 2578, - "source": 752, - "pc": [ - 2523, - 2524 - ] - }, - { - "teal": 2583, - "source": 754, - "pc": [ - 2525, - 2526 - ] - }, - { - "teal": 2584, - "source": 754, - "pc": [ - 2527, - 2528 - ] - }, - { - "teal": 2585, - "source": 754, - "pc": [ - 2529, - 2530 - ] - }, - { - "teal": 2586, - "source": 754, - "pc": [ - 2531 - ] - }, - { - "teal": 2587, - "source": 754, - "pc": [ - 2532 - ] - }, - { - "teal": 2588, - "source": 754, - "pc": [ - 2533, - 2534 - ] - }, - { - "teal": 2589, - "source": 754, - "pc": [ - 2535 - ] - }, - { - "teal": 2590, - "source": 754, - "pc": [ - 2536, - 2537, - 2538 - ] - }, - { - "teal": 2595, - "source": 755, - "pc": [ - 2539, - 2540 - ] - }, - { - "teal": 2596, - "source": 755, - "pc": [ - 2541, - 2542 - ] - }, - { - "teal": 2597, - "source": 755, - "pc": [ - 2543 - ] - }, - { - "teal": 2598, - "source": 755, - "pc": [ - 2544, - 2545 - ] - }, - { - "teal": 2599, - "source": 755, - "pc": [ - 2546 - ] - }, - { - "teal": 2600, - "source": 755, - "pc": [ - 2547 - ] - }, - { - "teal": 2601, - "source": 755, - "pc": [ - 2548, - 2549 - ] - }, - { - "teal": 2602, - "source": 755, - "pc": [ - 2550 - ] - }, - { - "teal": 2603, - "source": 755, - "pc": [ - 2551, - 2552, - 2553 - ] - }, - { - "teal": 2610, - "source": 758, - "pc": [ - 2554, - 2555 - ] - }, - { - "teal": 2611, - "source": 758, - "pc": [ - 2556, - 2557 - ] - }, - { - "teal": 2612, - "source": 758, - "pc": [ - 2558 - ] - }, - { - "teal": 2613, - "source": 758, - "pc": [ - 2559 - ] - }, - { - "teal": 2614, - "source": 758, - "pc": [ - 2560, - 2561 - ] - }, - { - "teal": 2615, - "source": 758, - "pc": [ - 2562 - ] - }, - { - "teal": 2616, - "source": 758, - "pc": [ - 2563 - ] - }, - { - "teal": 2617, - "source": 758, - "pc": [ - 2564, - 2565 - ] - }, - { - "teal": 2618, - "source": 758, - "pc": [ - 2566 - ] - }, - { - "teal": 2622, - "source": 760, - "pc": [ - 2567, - 2568 - ] - }, - { - "teal": 2623, - "source": 760, - "pc": [ - 2569, - 2570 - ] - }, - { - "teal": 2624, - "source": 760, - "pc": [ - 2571 - ] - }, - { - "teal": 2625, - "source": 760, - "pc": [ - 2572, - 2573 - ] - }, - { - "teal": 2626, - "source": 760, - "pc": [ - 2574 - ] - }, - { - "teal": 2627, - "source": 760, - "pc": [ - 2575 - ] - }, - { - "teal": 2628, - "source": 760, - "pc": [ - 2576, - 2577 - ] - }, - { - "teal": 2629, - "source": 760, - "pc": [ - 2578 - ] - }, - { - "teal": 2630, - "source": 760, - "pc": [ - 2579 - ] - }, - { - "teal": 2631, - "source": 760, - "pc": [ - 2580, - 2581 - ] - }, - { - "teal": 2635, - "source": 761, - "pc": [ - 2582, - 2583 - ] - }, - { - "teal": 2636, - "source": 761, - "pc": [ - 2584 - ] - }, - { - "teal": 2637, - "source": 761, - "pc": [ - 2585 - ] - }, - { - "teal": 2638, - "source": 761, - "pc": [ - 2586, - 2587 - ] - }, - { - "teal": 2639, - "source": 761, - "pc": [ - 2588 - ] - }, - { - "teal": 2640, - "source": 761, - "pc": [ - 2589 - ] - }, - { - "teal": 2641, - "source": 761, - "pc": [ - 2590, - 2591 - ] - }, - { - "teal": 2642, - "source": 761, - "pc": [ - 2592 - ] - }, - { - "teal": 2643, - "source": 761, - "pc": [ - 2593 - ] - }, - { - "teal": 2644, - "source": 761, - "pc": [ - 2594, - 2595 - ] - }, - { - "teal": 2648, - "source": 762, - "pc": [ - 2596 - ] - }, - { - "teal": 2649, - "source": 762, - "pc": [ - 2597, - 2598 - ] - }, - { - "teal": 2654, - "source": 762, - "pc": [ - 2599, - 2600 - ] - }, - { - "teal": 2655, - "source": 762, - "pc": [ - 2601, - 2602 - ] - }, - { - "teal": 2656, - "source": 762, - "pc": [ - 2603 - ] - }, - { - "teal": 2657, - "source": 762, - "pc": [ - 2604, - 2605, - 2606 - ] - }, - { - "teal": 2664, - "source": 768, - "pc": [ - 2607, - 2608 - ] - }, - { - "teal": 2665, - "source": 768, - "pc": [ - 2609, - 2610 - ] - }, - { - "teal": 2666, - "source": 768, - "pc": [ - 2611, - 2612 - ] - }, - { - "teal": 2667, - "source": 768, - "pc": [ - 2613 - ] - }, - { - "teal": 2668, - "source": 768, - "pc": [ - 2614 - ] - }, - { - "teal": 2669, - "source": 768, - "pc": [ - 2615, - 2616 - ] - }, - { - "teal": 2670, - "source": 768, - "pc": [ - 2617 - ] - }, - { - "teal": 2671, - "source": 768, - "pc": [ - 2618 - ] - }, - { - "teal": 2672, - "source": 768, - "pc": [ - 2619 - ] - }, - { - "teal": 2673, - "source": 768, - "pc": [ - 2620, - 2621 - ] - }, - { - "teal": 2674, - "source": 768, - "pc": [ - 2622 - ] - }, - { - "teal": 2675, - "source": 768, - "pc": [ - 2623 - ] - }, - { - "teal": 2676, - "source": 768, - "pc": [ - 2624, - 2625 - ] - }, - { - "teal": 2677, - "source": 768, - "pc": [ - 2626 - ] - }, - { - "teal": 2678, - "source": 768, - "pc": [ - 2627 - ] - }, - { - "teal": 2679, - "source": 768, - "pc": [ - 2628, - 2629 - ] - }, - { - "teal": 2680, - "source": 767, - "pc": [ - 2630 - ] - }, - { - "teal": 2681, - "source": 767, - "pc": [ - 2631 - ] - }, - { - "teal": 2682, - "source": 769, - "pc": [ - 2632, - 2633 - ] - }, - { - "teal": 2683, - "source": 767, - "pc": [ - 2634 - ] - }, - { - "teal": 2684, - "source": 767, - "pc": [ - 2635 - ] - }, - { - "teal": 2685, - "source": 767, - "pc": [ - 2636 - ] - }, - { - "teal": 2686, - "source": 767, - "pc": [ - 2637 - ] - }, - { - "teal": 2687, - "source": 767, - "pc": [ - 2638 - ] - }, - { - "teal": 2690, - "source": 767, - "errorMessage": "wideRatio failed", - "pc": [ - 2639 - ] - }, - { - "teal": 2691, - "source": 767, - "pc": [ - 2640, - 2641 - ] - }, - { - "teal": 2695, - "source": 771, - "pc": [ - 2642, - 2643 - ] - }, - { - "teal": 2696, - "source": 771, - "pc": [ - 2644, - 2645 - ] - }, - { - "teal": 2697, - "source": 771, - "pc": [ - 2646 - ] - }, - { - "teal": 2698, - "source": 771, - "pc": [ - 2647 - ] - }, - { - "teal": 2699, - "source": 771, - "pc": [ - 2648 - ] - }, - { - "teal": 2700, - "source": 771, - "pc": [ - 2649, - 2650 - ] - }, - { - "teal": 2701, - "source": 771, - "pc": [ - 2651 - ] - }, - { - "teal": 2702, - "source": 771, - "pc": [ - 2652 - ] - }, - { - "teal": 2703, - "source": 771, - "pc": [ - 2653, - 2654 - ] - }, - { - "teal": 2704, - "source": 771, - "pc": [ - 2655 - ] - }, - { - "teal": 2705, - "source": 771, - "pc": [ - 2656 - ] - }, - { - "teal": 2706, - "source": 771, - "pc": [ - 2657, - 2658 - ] - }, - { - "teal": 2707, - "source": 771, - "pc": [ - 2659 - ] - }, - { - "teal": 2712, - "source": 762, - "pc": [ - 2660, - 2661 - ] - }, - { - "teal": 2713, - "source": 762, - "pc": [ - 2662 - ] - }, - { - "teal": 2714, - "source": 762, - "pc": [ - 2663 - ] - }, - { - "teal": 2715, - "source": 762, - "pc": [ - 2664, - 2665 - ] - }, - { - "teal": 2716, - "source": 762, - "pc": [ - 2666, - 2667, - 2668 - ] - }, - { - "teal": 2721, - "source": 773, - "pc": [ - 2669, - 2670 - ] - }, - { - "teal": 2722, - "source": 773, - "pc": [ - 2671, - 2672 - ] - }, - { - "teal": 2723, - "source": 773, - "pc": [ - 2673 - ] - }, - { - "teal": 2724, - "source": 773, - "pc": [ - 2674, - 2675 - ] - }, - { - "teal": 2725, - "source": 773, - "pc": [ - 2676 - ] - }, - { - "teal": 2726, - "source": 773, - "pc": [ - 2677 - ] - }, - { - "teal": 2727, - "source": 773, - "pc": [ - 2678, - 2679 - ] - }, - { - "teal": 2728, - "source": 773, - "pc": [ - 2680 - ] - }, - { - "teal": 2732, - "source": 732, - "pc": [ - 2681, - 2682 - ] - }, - { - "teal": 2735, - "source": 732, - "pc": [ - 2683, - 2684 - ] - }, - { - "teal": 2736, - "source": 732, - "pc": [ - 2685 - ] - }, - { - "teal": 2741, - "source": 792, - "pc": [ - 2686, - 2687, - 2688 - ] - }, - { - "teal": 2742, - "source": 792, - "pc": [ - 2689 - ] - }, - { - "teal": 2745, - "source": 791, - "pc": [ - 2690, - 2691, - 2692 - ] - }, - { - "teal": 2746, - "source": 791, - "pc": [ - 2693 - ] - }, - { - "teal": 2749, - "source": 790, - "pc": [ - 2694, - 2695, - 2696 - ] - }, - { - "teal": 2750, - "source": 790, - "pc": [ - 2697 - ] - }, - { - "teal": 2753, - "source": 789, - "pc": [ - 2698, - 2699, - 2700 - ] - }, - { - "teal": 2754, - "source": 789, - "pc": [ - 2701 - ] - }, - { - "teal": 2757, - "source": 788, - "pc": [ - 2702, - 2703, - 2704 - ] - }, - { - "teal": 2758, - "source": 788, - "pc": [ - 2705 - ] - }, - { - "teal": 2759, - "source": 788, - "pc": [ - 2706 - ] - }, - { - "teal": 2760, - "source": 788, - "pc": [ - 2707 - ] - }, - { - "teal": 2761, - "source": 788, - "pc": [ - 2708 - ] - }, - { - "teal": 2764, - "source": 788, - "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)", - "pc": [ - 2709 - ] - }, - { - "teal": 2767, - "source": 787, - "pc": [ - 2710, - 2711, - 2712 - ] - }, - { - "teal": 2768, - "source": 787, - "pc": [ - 2713 - ] - }, - { - "teal": 2769, - "source": 787, - "pc": [ - 2714 - ] - }, - { - "teal": 2783, - "source": 787, - "pc": [ - 2715, - 2716, - 2717 - ] - }, - { - "teal": 2787, - "source": 794, - "pc": [ - 2718, - 2719 - ] - }, - { - "teal": 2788, - "source": 794, - "pc": [ - 2720, - 2721, - 2722 - ] - }, - { - "teal": 2792, - "source": 797, - "pc": [ - 2723, - 2724 - ] - }, - { - "teal": 2793, - "source": 797, - "pc": [ - 2725, - 2726 - ] - }, - { - "teal": 2794, - "source": 797, - "pc": [ - 2727, - 2728, - 2729 - ] - }, - { - "teal": 2795, - "source": 797, - "pc": [ - 2730 - ] - }, - { - "teal": 2796, - "source": 797, - "pc": [ - 2731 - ] - }, - { - "teal": 2797, - "source": 797, - "pc": [ - 2732 - ] - }, - { - "teal": 2798, - "source": 797, - "pc": [ - 2733, - 2734 - ] - }, - { - "teal": 2799, - "source": 797, - "pc": [ - 2735 - ] - }, - { - "teal": 2800, - "source": 797, - "pc": [ - 2736 - ] - }, - { - "teal": 2801, - "source": 797, - "pc": [ - 2737, - 2738 - ] - }, - { - "teal": 2802, - "source": 797, - "pc": [ - 2739 - ] - }, - { - "teal": 2803, - "source": 797, - "pc": [ - 2740, - 2741 - ] - }, - { - "teal": 2804, - "source": 797, - "pc": [ - 2742, - 2743 - ] - }, - { - "teal": 2805, - "source": 797, - "pc": [ - 2744, - 2745, - 2746 - ] - }, - { - "teal": 2806, - "source": 797, - "pc": [ - 2747 - ] - }, - { - "teal": 2807, - "source": 797, - "pc": [ - 2748 - ] - }, - { - "teal": 2808, - "source": 797, - "pc": [ - 2749 - ] - }, - { - "teal": 2809, - "source": 797, - "pc": [ - 2750, - 2751 - ] - }, - { - "teal": 2810, - "source": 797, - "pc": [ - 2752 - ] - }, - { - "teal": 2811, - "source": 797, - "pc": [ - 2753 - ] - }, - { - "teal": 2812, - "source": 797, - "pc": [ - 2754, - 2755 - ] - }, - { - "teal": 2813, - "source": 797, - "pc": [ - 2756 - ] - }, - { - "teal": 2814, - "source": 797, - "pc": [ - 2757 - ] - }, - { - "teal": 2815, - "source": 797, - "pc": [ - 2758 - ] - }, - { - "teal": 2816, - "source": 797, - "pc": [ - 2759, - 2760 - ] - }, - { - "teal": 2817, - "source": 797, - "pc": [ - 2761, - 2762, - 2763 - ] - }, - { - "teal": 2818, - "source": 797, - "pc": [ - 2764 - ] - }, - { - "teal": 2819, - "source": 797, - "pc": [ - 2765 - ] - }, - { - "teal": 2820, - "source": 797, - "pc": [ - 2766 - ] - }, - { - "teal": 2821, - "source": 797, - "pc": [ - 2767, - 2768 - ] - }, - { - "teal": 2822, - "source": 797, - "pc": [ - 2769 - ] - }, - { - "teal": 2823, - "source": 797, - "pc": [ - 2770 - ] - }, - { - "teal": 2824, - "source": 797, - "pc": [ - 2771, - 2772 - ] - }, - { - "teal": 2825, - "source": 797, - "pc": [ - 2773 - ] - }, - { - "teal": 2826, - "source": 797, - "pc": [ - 2774 - ] - }, - { - "teal": 2827, - "source": 797, - "pc": [ - 2775 - ] - }, - { - "teal": 2828, - "source": 797, - "pc": [ - 2776, - 2777 - ] - }, - { - "teal": 2829, - "source": 797, - "pc": [ - 2778, - 2779, - 2780 - ] - }, - { - "teal": 2830, - "source": 797, - "pc": [ - 2781 - ] - }, - { - "teal": 2831, - "source": 797, - "pc": [ - 2782 - ] - }, - { - "teal": 2832, - "source": 797, - "pc": [ - 2783 - ] - }, - { - "teal": 2833, - "source": 797, - "pc": [ - 2784, - 2785 - ] - }, - { - "teal": 2834, - "source": 797, - "pc": [ - 2786 - ] - }, - { - "teal": 2838, - "source": 798, - "pc": [ - 2787, - 2788 - ] - }, - { - "teal": 2839, - "source": 798, - "pc": [ - 2789 - ] - }, - { - "teal": 2840, - "source": 798, - "pc": [ - 2790 - ] - }, - { - "teal": 2841, - "source": 798, - "pc": [ - 2791 - ] - }, - { - "teal": 2842, - "source": 798, - "pc": [ - 2792, - 2793 - ] - }, - { - "teal": 2843, - "source": 798, - "pc": [ - 2794, - 2795, - 2796 - ] - }, - { - "teal": 2844, - "source": 798, - "pc": [ - 2797 - ] - }, - { - "teal": 2845, - "source": 798, - "pc": [ - 2798 - ] - }, - { - "teal": 2846, - "source": 798, - "pc": [ - 2799 - ] - }, - { - "teal": 2847, - "source": 798, - "pc": [ - 2800, - 2801 - ] - }, - { - "teal": 2848, - "source": 798, - "pc": [ - 2802 - ] - }, - { - "teal": 2849, - "source": 798, - "pc": [ - 2803 - ] - }, - { - "teal": 2850, - "source": 798, - "pc": [ - 2804, - 2805 - ] - }, - { - "teal": 2851, - "source": 798, - "pc": [ - 2806 - ] - }, - { - "teal": 2852, - "source": 798, - "pc": [ - 2807 - ] - }, - { - "teal": 2853, - "source": 798, - "pc": [ - 2808 - ] - }, - { - "teal": 2854, - "source": 798, - "pc": [ - 2809, - 2810 - ] - }, - { - "teal": 2855, - "source": 798, - "pc": [ - 2811, - 2812, - 2813 - ] - }, - { - "teal": 2856, - "source": 798, - "pc": [ - 2814 - ] - }, - { - "teal": 2857, - "source": 798, - "pc": [ - 2815 - ] - }, - { - "teal": 2858, - "source": 798, - "pc": [ - 2816 - ] - }, - { - "teal": 2859, - "source": 798, - "pc": [ - 2817, - 2818 - ] - }, - { - "teal": 2860, - "source": 798, - "pc": [ - 2819 - ] - }, - { - "teal": 2864, - "source": 799, - "pc": [ - 2820, - 2821 - ] - }, - { - "teal": 2865, - "source": 799, - "pc": [ - 2822 - ] - }, - { - "teal": 2866, - "source": 799, - "pc": [ - 2823 - ] - }, - { - "teal": 2867, - "source": 799, - "pc": [ - 2824 - ] - }, - { - "teal": 2868, - "source": 799, - "pc": [ - 2825, - 2826 - ] - }, - { - "teal": 2869, - "source": 799, - "pc": [ - 2827, - 2828, - 2829 - ] - }, - { - "teal": 2870, - "source": 799, - "pc": [ - 2830 - ] - }, - { - "teal": 2871, - "source": 799, - "pc": [ - 2831 - ] - }, - { - "teal": 2872, - "source": 799, - "pc": [ - 2832 - ] - }, - { - "teal": 2873, - "source": 799, - "pc": [ - 2833, - 2834 - ] - }, - { - "teal": 2874, - "source": 799, - "pc": [ - 2835 - ] - }, - { - "teal": 2875, - "source": 799, - "pc": [ - 2836 - ] - }, - { - "teal": 2876, - "source": 799, - "pc": [ - 2837, - 2838 - ] - }, - { - "teal": 2877, - "source": 799, - "pc": [ - 2839 - ] - }, - { - "teal": 2878, - "source": 799, - "pc": [ - 2840 - ] - }, - { - "teal": 2879, - "source": 799, - "pc": [ - 2841 - ] - }, - { - "teal": 2880, - "source": 799, - "pc": [ - 2842, - 2843 - ] - }, - { - "teal": 2881, - "source": 799, - "pc": [ - 2844, - 2845, - 2846 - ] - }, - { - "teal": 2882, - "source": 799, - "pc": [ - 2847 - ] - }, - { - "teal": 2883, - "source": 799, - "pc": [ - 2848 - ] - }, - { - "teal": 2884, - "source": 799, - "pc": [ - 2849 - ] - }, - { - "teal": 2885, - "source": 799, - "pc": [ - 2850, - 2851 - ] - }, - { - "teal": 2886, - "source": 799, - "pc": [ - 2852 - ] - }, - { - "teal": 2890, - "source": 801, - "pc": [ - 2853, - 2854 - ] - }, - { - "teal": 2891, - "source": 801, - "pc": [ - 2855 - ] - }, - { - "teal": 2892, - "source": 801, - "pc": [ - 2856, - 2857 - ] - }, - { - "teal": 2893, - "source": 801, - "pc": [ - 2858 - ] - }, - { - "teal": 2894, - "source": 801, - "pc": [ - 2859, - 2860 - ] - }, - { - "teal": 2895, - "source": 801, - "pc": [ - 2861 - ] - }, - { - "teal": 2896, - "source": 801, - "pc": [ - 2862 - ] - }, - { - "teal": 2900, - "source": 804, - "pc": [ - 2863, - 2864 - ] - }, - { - "teal": 2901, - "source": 804, - "pc": [ - 2865, - 2866, - 2867 - ] - }, - { - "teal": 2902, - "source": 804, - "pc": [ - 2868 - ] - }, - { - "teal": 2903, - "source": 804, - "pc": [ - 2869, - 2870, - 2871 - ] - }, - { - "teal": 2904, - "source": 787, - "pc": [ - 2872 - ] - }, - { - "teal": 2909, - "source": 834, - "pc": [ - 2873, - 2874, - 2875 - ] - }, - { - "teal": 2910, - "source": 834, - "pc": [ - 2876 - ] - }, - { - "teal": 2911, - "source": 834, - "pc": [ - 2877 - ] - }, - { - "teal": 2912, - "source": 834, - "pc": [ - 2878 - ] - }, - { - "teal": 2913, - "source": 834, - "pc": [ - 2879 - ] - }, - { - "teal": 2916, - "source": 834, - "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool", - "pc": [ - 2880 - ] - }, - { - "teal": 2917, - "source": 834, - "pc": [ - 2881 - ] - }, - { - "teal": 2918, - "source": 834, - "pc": [ - 2882 - ] - }, - { - "teal": 2921, - "source": 833, - "pc": [ - 2883, - 2884, - 2885 - ] - }, - { - "teal": 2922, - "source": 833, - "pc": [ - 2886 - ] - }, - { - "teal": 2925, - "source": 832, - "pc": [ - 2887, - 2888, - 2889 - ] - }, - { - "teal": 2926, - "source": 832, - "pc": [ - 2890 - ] - }, - { - "teal": 2929, - "source": 831, - "pc": [ - 2891, - 2892, - 2893 - ] - }, - { - "teal": 2930, - "source": 831, - "pc": [ - 2894 - ] - }, - { - "teal": 2931, - "source": 831, - "pc": [ - 2895 - ] - }, - { - "teal": 2932, - "source": 831, - "pc": [ - 2896, - 2897 - ] - }, - { - "teal": 2933, - "source": 831, - "pc": [ - 2898 - ] - }, - { - "teal": 2936, - "source": 831, - "errorMessage": "argument 3 (staker) for stakeRemoved must be a address", - "pc": [ - 2899 - ] - }, - { - "teal": 2939, - "source": 830, - "pc": [ - 2900, - 2901, - 2902 - ] - }, - { - "teal": 2940, - "source": 830, - "pc": [ - 2903 - ] - }, - { - "teal": 2941, - "source": 830, - "pc": [ - 2904 - ] - }, - { - "teal": 2942, - "source": 830, - "pc": [ - 2905 - ] - }, - { - "teal": 2943, - "source": 830, - "pc": [ - 2906 - ] - }, - { - "teal": 2946, - "source": 830, - "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)", - "pc": [ - 2907 - ] - }, - { - "teal": 2949, - "source": 829, - "pc": [ - 2908, - 2909, - 2910 - ] - }, - { - "teal": 2950, - "source": 829, - "pc": [ - 2911 - ] - }, - { - "teal": 2951, - "source": 829, - "pc": [ - 2912 - ] - }, - { - "teal": 2966, - "source": 829, - "pc": [ - 2913, - 2914, - 2915 - ] - }, - { - "teal": 2969, - "source": 829, - "pc": [ - 2916 - ] - }, - { - "teal": 2970, - "source": 829, - "pc": [ - 2917, - 2918 - ] - }, - { - "teal": 2975, - "source": 836, - "pc": [ - 2919, - 2920 - ] - }, - { - "teal": 2976, - "source": 836, - "pc": [ - 2921, - 2922 - ] - }, - { - "teal": 2977, - "source": 836, - "pc": [ - 2923 - ] - }, - { - "teal": 2978, - "source": 836, - "pc": [ - 2924, - 2925, - 2926 - ] - }, - { - "teal": 2983, - "source": 837, - "pc": [ - 2927 - ] - }, - { - "teal": 2984, - "source": 837, - "pc": [ - 2928, - 2929 - ] - }, - { - "teal": 2985, - "source": 837, - "pc": [ - 2930, - 2931 - ] - }, - { - "teal": 2986, - "source": 837, - "pc": [ - 2932 - ] - }, - { - "teal": 2987, - "source": 837, - "pc": [ - 2933, - 2934 - ] - }, - { - "teal": 2988, - "source": 837, - "pc": [ - 2935, - 2936 - ] - }, - { - "teal": 2989, - "source": 837, - "pc": [ - 2937 - ] - }, - { - "teal": 2990, - "source": 837, - "pc": [ - 2938, - 2939 - ] - }, - { - "teal": 2991, - "source": 837, - "pc": [ - 2940, - 2941 - ] - }, - { - "teal": 2992, - "source": 837, - "pc": [ - 2942, - 2943 - ] - }, - { - "teal": 2993, - "source": 837, - "pc": [ - 2944, - 2945 - ] - }, - { - "teal": 2994, - "source": 837, - "pc": [ - 2946 - ] - }, - { - "teal": 2999, - "source": 839, - "pc": [ - 2947, - 2948 - ] - }, - { - "teal": 3000, - "source": 839, - "pc": [ - 2949, - 2950, - 2951 - ] - }, - { - "teal": 3004, - "source": 843, - "pc": [ - 2952, - 2953 - ] - }, - { - "teal": 3005, - "source": 843, - "pc": [ - 2954 - ] - }, - { - "teal": 3006, - "source": 843, - "pc": [ - 2955 - ] - }, - { - "teal": 3007, - "source": 843, - "pc": [ - 2956 - ] - }, - { - "teal": 3008, - "source": 843, - "pc": [ - 2957, - 2958, - 2959 - ] - }, - { - "teal": 3009, - "source": 843, - "pc": [ - 2960, - 2961 - ] - }, - { - "teal": 3010, - "source": 843, - "pc": [ - 2962 - ] - }, - { - "teal": 3011, - "source": 843, - "pc": [ - 2963 - ] - }, - { - "teal": 3012, - "source": 843, - "pc": [ - 2964 - ] - }, - { - "teal": 3016, - "source": 843, - "errorMessage": "should only be called if algo or reward was removed", - "pc": [ - 2965 - ] - }, - { - "teal": 3020, - "source": 846, - "pc": [ - 2966, - 2967 - ] - }, - { - "teal": 3021, - "source": 846, - "pc": [ - 2968, - 2969 - ] - }, - { - "teal": 3022, - "source": 846, - "pc": [ - 2970, - 2971, - 2972 - ] - }, - { - "teal": 3023, - "source": 846, - "pc": [ - 2973 - ] - }, - { - "teal": 3024, - "source": 846, - "pc": [ - 2974 - ] - }, - { - "teal": 3025, - "source": 846, - "pc": [ - 2975 - ] - }, - { - "teal": 3026, - "source": 846, - "pc": [ - 2976, - 2977 - ] - }, - { - "teal": 3027, - "source": 846, - "pc": [ - 2978 - ] - }, - { - "teal": 3028, - "source": 846, - "pc": [ - 2979 - ] - }, - { - "teal": 3029, - "source": 846, - "pc": [ - 2980, - 2981 - ] - }, - { - "teal": 3030, - "source": 846, - "pc": [ - 2982 - ] - }, - { - "teal": 3031, - "source": 846, - "pc": [ - 2983, - 2984 - ] - }, - { - "teal": 3032, - "source": 846, - "pc": [ - 2985, - 2986 - ] - }, - { - "teal": 3033, - "source": 846, - "pc": [ - 2987, - 2988, - 2989 - ] - }, - { - "teal": 3034, - "source": 846, - "pc": [ - 2990 - ] - }, - { - "teal": 3035, - "source": 846, - "pc": [ - 2991 - ] - }, - { - "teal": 3036, - "source": 846, - "pc": [ - 2992 - ] - }, - { - "teal": 3037, - "source": 846, - "pc": [ - 2993, - 2994 - ] - }, - { - "teal": 3038, - "source": 846, - "pc": [ - 2995 - ] - }, - { - "teal": 3039, - "source": 846, - "pc": [ - 2996 - ] - }, - { - "teal": 3040, - "source": 846, - "pc": [ - 2997, - 2998 - ] - }, - { - "teal": 3041, - "source": 846, - "pc": [ - 2999 - ] - }, - { - "teal": 3042, - "source": 846, - "pc": [ - 3000 - ] - }, - { - "teal": 3043, - "source": 846, - "pc": [ - 3001 - ] - }, - { - "teal": 3044, - "source": 846, - "pc": [ - 3002, - 3003 - ] - }, - { - "teal": 3045, - "source": 846, - "pc": [ - 3004, - 3005, - 3006 - ] - }, - { - "teal": 3046, - "source": 846, - "pc": [ - 3007 - ] - }, - { - "teal": 3047, - "source": 846, - "pc": [ - 3008 - ] - }, - { - "teal": 3048, - "source": 846, - "pc": [ - 3009 - ] - }, - { - "teal": 3049, - "source": 846, - "pc": [ - 3010, - 3011 - ] - }, - { - "teal": 3050, - "source": 846, - "pc": [ - 3012 - ] - }, - { - "teal": 3051, - "source": 846, - "pc": [ - 3013 - ] - }, - { - "teal": 3052, - "source": 846, - "pc": [ - 3014, - 3015 - ] - }, - { - "teal": 3053, - "source": 846, - "pc": [ - 3016 - ] - }, - { - "teal": 3054, - "source": 846, - "pc": [ - 3017 - ] - }, - { - "teal": 3055, - "source": 846, - "pc": [ - 3018 - ] - }, - { - "teal": 3056, - "source": 846, - "pc": [ - 3019, - 3020 - ] - }, - { - "teal": 3057, - "source": 846, - "pc": [ - 3021, - 3022, - 3023 - ] - }, - { - "teal": 3058, - "source": 846, - "pc": [ - 3024 - ] - }, - { - "teal": 3059, - "source": 846, - "pc": [ - 3025 - ] - }, - { - "teal": 3060, - "source": 846, - "pc": [ - 3026 - ] - }, - { - "teal": 3061, - "source": 846, - "pc": [ - 3027, - 3028 - ] - }, - { - "teal": 3062, - "source": 846, - "pc": [ - 3029 - ] - }, - { - "teal": 3066, - "source": 847, - "pc": [ - 3030, - 3031 - ] - }, - { - "teal": 3067, - "source": 847, - "pc": [ - 3032 - ] - }, - { - "teal": 3068, - "source": 847, - "pc": [ - 3033 - ] - }, - { - "teal": 3069, - "source": 847, - "pc": [ - 3034 - ] - }, - { - "teal": 3070, - "source": 847, - "pc": [ - 3035, - 3036 - ] - }, - { - "teal": 3071, - "source": 847, - "pc": [ - 3037, - 3038, - 3039 - ] - }, - { - "teal": 3072, - "source": 847, - "pc": [ - 3040 - ] - }, - { - "teal": 3073, - "source": 847, - "pc": [ - 3041 - ] - }, - { - "teal": 3074, - "source": 847, - "pc": [ - 3042 - ] - }, - { - "teal": 3075, - "source": 847, - "pc": [ - 3043, - 3044 - ] - }, - { - "teal": 3076, - "source": 847, - "pc": [ - 3045 - ] - }, - { - "teal": 3077, - "source": 847, - "pc": [ - 3046 - ] - }, - { - "teal": 3078, - "source": 847, - "pc": [ - 3047, - 3048 - ] - }, - { - "teal": 3079, - "source": 847, - "pc": [ - 3049 - ] - }, - { - "teal": 3080, - "source": 847, - "pc": [ - 3050 - ] - }, - { - "teal": 3081, - "source": 847, - "pc": [ - 3051 - ] - }, - { - "teal": 3082, - "source": 847, - "pc": [ - 3052, - 3053 - ] - }, - { - "teal": 3083, - "source": 847, - "pc": [ - 3054, - 3055, - 3056 - ] - }, - { - "teal": 3084, - "source": 847, - "pc": [ - 3057 - ] - }, - { - "teal": 3085, - "source": 847, - "pc": [ - 3058 - ] - }, - { - "teal": 3086, - "source": 847, - "pc": [ - 3059 - ] - }, - { - "teal": 3087, - "source": 847, - "pc": [ - 3060, - 3061 - ] - }, - { - "teal": 3088, - "source": 847, - "pc": [ - 3062 - ] - }, - { - "teal": 3092, - "source": 848, - "pc": [ - 3063, - 3064 - ] - }, - { - "teal": 3093, - "source": 848, - "pc": [ - 3065 - ] - }, - { - "teal": 3094, - "source": 848, - "pc": [ - 3066, - 3067 - ] - }, - { - "teal": 3095, - "source": 848, - "pc": [ - 3068 - ] - }, - { - "teal": 3096, - "source": 848, - "pc": [ - 3069, - 3070 - ] - }, - { - "teal": 3097, - "source": 848, - "pc": [ - 3071 - ] - }, - { - "teal": 3098, - "source": 848, - "pc": [ - 3072 - ] - }, - { - "teal": 3103, - "source": 850, - "pc": [ - 3073, - 3074 - ] - }, - { - "teal": 3104, - "source": 850, - "pc": [ - 3075 - ] - }, - { - "teal": 3105, - "source": 850, - "pc": [ - 3076 - ] - }, - { - "teal": 3106, - "source": 850, - "pc": [ - 3077, - 3078, - 3079 - ] - }, - { - "teal": 3111, - "source": 851, - "pc": [ - 3080, - 3081 - ] - }, - { - "teal": 3112, - "source": 851, - "pc": [ - 3082 - ] - }, - { - "teal": 3113, - "source": 851, - "pc": [ - 3083 - ] - }, - { - "teal": 3114, - "source": 851, - "pc": [ - 3084, - 3085 - ] - }, - { - "teal": 3115, - "source": 851, - "pc": [ - 3086, - 3087, - 3088 - ] - }, - { - "teal": 3116, - "source": 851, - "pc": [ - 3089 - ] - }, - { - "teal": 3117, - "source": 851, - "pc": [ - 3090 - ] - }, - { - "teal": 3118, - "source": 851, - "pc": [ - 3091 - ] - }, - { - "teal": 3119, - "source": 851, - "pc": [ - 3092, - 3093 - ] - }, - { - "teal": 3120, - "source": 851, - "pc": [ - 3094 - ] - }, - { - "teal": 3121, - "source": 851, - "pc": [ - 3095 - ] - }, - { - "teal": 3122, - "source": 851, - "pc": [ - 3096, - 3097 - ] - }, - { - "teal": 3126, - "source": 852, - "pc": [ - 3098, - 3099 - ] - }, - { - "teal": 3127, - "source": 852, - "pc": [ - 3100 - ] - }, - { - "teal": 3128, - "source": 852, - "pc": [ - 3101 - ] - }, - { - "teal": 3131, - "source": 852, - "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!", - "pc": [ - 3102 - ] - }, - { - "teal": 3138, - "source": 854, - "pc": [ - 3103, - 3104 - ] - }, - { - "teal": 3139, - "source": 854, - "pc": [ - 3105 - ] - }, - { - "teal": 3140, - "source": 854, - "pc": [ - 3106 - ] - }, - { - "teal": 3141, - "source": 854, - "pc": [ - 3107, - 3108 - ] - }, - { - "teal": 3142, - "source": 854, - "pc": [ - 3109, - 3110, - 3111 - ] - }, - { - "teal": 3143, - "source": 854, - "pc": [ - 3112 - ] - }, - { - "teal": 3144, - "source": 854, - "pc": [ - 3113 - ] - }, - { - "teal": 3145, - "source": 854, - "pc": [ - 3114 - ] - }, - { - "teal": 3146, - "source": 854, - "pc": [ - 3115, - 3116 - ] - }, - { - "teal": 3147, - "source": 854, - "pc": [ - 3117 - ] - }, - { - "teal": 3148, - "source": 854, - "pc": [ - 3118 - ] - }, - { - "teal": 3149, - "source": 854, - "pc": [ - 3119, - 3120 - ] - }, - { - "teal": 3150, - "source": 854, - "pc": [ - 3121 - ] - }, - { - "teal": 3153, - "source": 853, - "errorMessage": "reward being removed must be covered by hold back amount", - "pc": [ - 3122 - ] - }, - { - "teal": 3157, - "source": 859, - "pc": [ - 3123, - 3124 - ] - }, - { - "teal": 3158, - "source": 859, - "pc": [ - 3125 - ] - }, - { - "teal": 3159, - "source": 859, - "pc": [ - 3126 - ] - }, - { - "teal": 3160, - "source": 859, - "pc": [ - 3127 - ] - }, - { - "teal": 3161, - "source": 859, - "pc": [ - 3128, - 3129 - ] - }, - { - "teal": 3162, - "source": 859, - "pc": [ - 3130, - 3131, - 3132 - ] - }, - { - "teal": 3163, - "source": 859, - "pc": [ - 3133 - ] - }, - { - "teal": 3164, - "source": 859, - "pc": [ - 3134 - ] - }, - { - "teal": 3165, - "source": 859, - "pc": [ - 3135 - ] - }, - { - "teal": 3166, - "source": 859, - "pc": [ - 3136, - 3137 - ] - }, - { - "teal": 3167, - "source": 859, - "pc": [ - 3138 - ] - }, - { - "teal": 3168, - "source": 859, - "pc": [ - 3139 - ] - }, - { - "teal": 3169, - "source": 859, - "pc": [ - 3140, - 3141 - ] - }, - { - "teal": 3170, - "source": 859, - "pc": [ - 3142 - ] - }, - { - "teal": 3171, - "source": 859, - "pc": [ - 3143 - ] - }, - { - "teal": 3172, - "source": 859, - "pc": [ - 3144 - ] - }, - { - "teal": 3173, - "source": 859, - "pc": [ - 3145, - 3146 - ] - }, - { - "teal": 3174, - "source": 859, - "pc": [ - 3147, - 3148, - 3149 - ] - }, - { - "teal": 3175, - "source": 859, - "pc": [ - 3150 - ] - }, - { - "teal": 3176, - "source": 859, - "pc": [ - 3151 - ] - }, - { - "teal": 3177, - "source": 859, - "pc": [ - 3152 - ] - }, - { - "teal": 3178, - "source": 859, - "pc": [ - 3153, - 3154 - ] - }, - { - "teal": 3179, - "source": 859, - "pc": [ - 3155 - ] - }, - { - "teal": 3184, - "source": 864, - "pc": [ - 3156, - 3157 - ] - }, - { - "teal": 3185, - "source": 864, - "pc": [ - 3158, - 3159, - 3160 - ] - }, - { - "teal": 3186, - "source": 864, - "pc": [ - 3161 - ] - }, - { - "teal": 3187, - "source": 864, - "pc": [ - 3162 - ] - }, - { - "teal": 3188, - "source": 864, - "pc": [ - 3163 - ] - }, - { - "teal": 3189, - "source": 864, - "pc": [ - 3164, - 3165, - 3166 - ] - }, - { - "teal": 3197, - "source": 865, - "pc": [ - 3167 - ] - }, - { - "teal": 3198, - "source": 865, - "pc": [ - 3168, - 3169 - ] - }, - { - "teal": 3199, - "source": 865, - "pc": [ - 3170, - 3171 - ] - }, - { - "teal": 3200, - "source": 865, - "pc": [ - 3172, - 3173 - ] - }, - { - "teal": 3201, - "source": 865, - "pc": [ - 3174, - 3175 - ] - }, - { - "teal": 3205, - "source": 866, - "pc": [ - 3176, - 3177 - ] - }, - { - "teal": 3206, - "source": 866, - "pc": [ - 3178 - ] - }, - { - "teal": 3207, - "source": 866, - "pc": [ - 3179 - ] - }, - { - "teal": 3208, - "source": 866, - "pc": [ - 3180, - 3181 - ] - }, - { - "teal": 3209, - "source": 866, - "pc": [ - 3182, - 3183, - 3184 - ] - }, - { - "teal": 3210, - "source": 866, - "pc": [ - 3185 - ] - }, - { - "teal": 3211, - "source": 866, - "pc": [ - 3186 - ] - }, - { - "teal": 3212, - "source": 866, - "pc": [ - 3187 - ] - }, - { - "teal": 3213, - "source": 866, - "pc": [ - 3188, - 3189 - ] - }, - { - "teal": 3214, - "source": 866, - "pc": [ - 3190 - ] - }, - { - "teal": 3215, - "source": 866, - "pc": [ - 3191 - ] - }, - { - "teal": 3216, - "source": 866, - "pc": [ - 3192, - 3193 - ] - }, - { - "teal": 3220, - "source": 867, - "pc": [ - 3194, - 3195 - ] - }, - { - "teal": 3221, - "source": 867, - "pc": [ - 3196, - 3197 - ] - }, - { - "teal": 3222, - "source": 867, - "pc": [ - 3198, - 3199 - ] - }, - { - "teal": 3223, - "source": 867, - "pc": [ - 3200 - ] - }, - { - "teal": 3224, - "source": 867, - "pc": [ - 3201, - 3202 - ] - }, - { - "teal": 3225, - "source": 867, - "pc": [ - 3203, - 3204 - ] - }, - { - "teal": 3226, - "source": 867, - "pc": [ - 3205 - ] - }, - { - "teal": 3227, - "source": 867, - "pc": [ - 3206, - 3207 - ] - }, - { - "teal": 3230, - "source": 865, - "pc": [ - 3208 - ] - }, - { - "teal": 3231, - "source": 865, - "pc": [ - 3209, - 3210 - ] - }, - { - "teal": 3234, - "source": 865, - "pc": [ - 3211 - ] - }, - { - "teal": 3237, - "source": 850, - "pc": [ - 3212, - 3213, - 3214 - ] - }, - { - "teal": 3245, - "source": 892, - "pc": [ - 3215, - 3216 - ] - }, - { - "teal": 3246, - "source": 892, - "pc": [ - 3217, - 3218, - 3219 - ] - }, - { - "teal": 3251, - "source": 894, - "pc": [ - 3220, - 3221 - ] - }, - { - "teal": 3252, - "source": 894, - "pc": [ - 3222, - 3223 - ] - }, - { - "teal": 3253, - "source": 894, - "pc": [ - 3224, - 3225, - 3226 - ] - }, - { - "teal": 3254, - "source": 894, - "pc": [ - 3227 - ] - }, - { - "teal": 3255, - "source": 894, - "pc": [ - 3228 - ] - }, - { - "teal": 3256, - "source": 894, - "pc": [ - 3229 - ] - }, - { - "teal": 3257, - "source": 894, - "pc": [ - 3230, - 3231 - ] - }, - { - "teal": 3258, - "source": 894, - "pc": [ - 3232 - ] - }, - { - "teal": 3259, - "source": 894, - "pc": [ - 3233 - ] - }, - { - "teal": 3260, - "source": 894, - "pc": [ - 3234 - ] - }, - { - "teal": 3261, - "source": 894, - "pc": [ - 3235 - ] - }, - { - "teal": 3262, - "source": 894, - "pc": [ - 3236, - 3237 - ] - }, - { - "teal": 3263, - "source": 894, - "pc": [ - 3238, - 3239 - ] - }, - { - "teal": 3264, - "source": 894, - "pc": [ - 3240, - 3241, - 3242 - ] - }, - { - "teal": 3265, - "source": 894, - "pc": [ - 3243 - ] - }, - { - "teal": 3266, - "source": 894, - "pc": [ - 3244 - ] - }, - { - "teal": 3267, - "source": 894, - "pc": [ - 3245 - ] - }, - { - "teal": 3268, - "source": 894, - "pc": [ - 3246, - 3247 - ] - }, - { - "teal": 3269, - "source": 894, - "pc": [ - 3248 - ] - }, - { - "teal": 3270, - "source": 894, - "pc": [ - 3249 - ] - }, - { - "teal": 3271, - "source": 894, - "pc": [ - 3250 - ] - }, - { - "teal": 3272, - "source": 894, - "pc": [ - 3251 - ] - }, - { - "teal": 3273, - "source": 894, - "pc": [ - 3252, - 3253 - ] - }, - { - "teal": 3274, - "source": 894, - "pc": [ - 3254 - ] - }, - { - "teal": 3275, - "source": 894, - "pc": [ - 3255, - 3256 - ] - }, - { - "teal": 3276, - "source": 894, - "pc": [ - 3257, - 3258, - 3259 - ] - }, - { - "teal": 3277, - "source": 894, - "pc": [ - 3260 - ] - }, - { - "teal": 3278, - "source": 894, - "pc": [ - 3261 - ] - }, - { - "teal": 3279, - "source": 894, - "pc": [ - 3262 - ] - }, - { - "teal": 3280, - "source": 894, - "pc": [ - 3263, - 3264 - ] - }, - { - "teal": 3281, - "source": 894, - "pc": [ - 3265 - ] - }, - { - "teal": 3282, - "source": 894, - "pc": [ - 3266 - ] - }, - { - "teal": 3283, - "source": 894, - "pc": [ - 3267 - ] - }, - { - "teal": 3284, - "source": 894, - "pc": [ - 3268 - ] - }, - { - "teal": 3285, - "source": 894, - "pc": [ - 3269 - ] - }, - { - "teal": 3286, - "source": 894, - "pc": [ - 3270, - 3271, - 3272 - ] - }, - { - "teal": 3287, - "source": 894, - "pc": [ - 3273 - ] - }, - { - "teal": 3288, - "source": 894, - "pc": [ - 3274, - 3275 - ] - }, - { - "teal": 3289, - "source": 894, - "pc": [ - 3276, - 3277, - 3278 - ] - }, - { - "teal": 3290, - "source": 894, - "pc": [ - 3279 - ] - }, - { - "teal": 3291, - "source": 894, - "pc": [ - 3280 - ] - }, - { - "teal": 3292, - "source": 894, - "pc": [ - 3281 - ] - }, - { - "teal": 3293, - "source": 894, - "pc": [ - 3282, - 3283 - ] - }, - { - "teal": 3294, - "source": 894, - "pc": [ - 3284 - ] - }, - { - "teal": 3302, - "source": 897, - "pc": [ - 3285, - 3286 - ] - }, - { - "teal": 3303, - "source": 897, - "pc": [ - 3287, - 3288, - 3289 - ] - }, - { - "teal": 3304, - "source": 897, - "pc": [ - 3290 - ] - }, - { - "teal": 3305, - "source": 897, - "pc": [ - 3291 - ] - }, - { - "teal": 3306, - "source": 898, - "pc": [ - 3292, - 3293 - ] - }, - { - "teal": 3307, - "source": 898, - "pc": [ - 3294, - 3295, - 3296 - ] - }, - { - "teal": 3308, - "source": 898, - "pc": [ - 3297 - ] - }, - { - "teal": 3309, - "source": 898, - "pc": [ - 3298 - ] - }, - { - "teal": 3310, - "source": 898, - "pc": [ - 3299 - ] - }, - { - "teal": 3311, - "source": 899, - "pc": [ - 3300, - 3301 - ] - }, - { - "teal": 3312, - "source": 899, - "pc": [ - 3302, - 3303, - 3304 - ] - }, - { - "teal": 3313, - "source": 899, - "pc": [ - 3305 - ] - }, - { - "teal": 3314, - "source": 899, - "pc": [ - 3306 - ] - }, - { - "teal": 3315, - "source": 899, - "pc": [ - 3307 - ] - }, - { - "teal": 3316, - "source": 896, - "pc": [ - 3308, - 3309 - ] - }, - { - "teal": 3317, - "source": 896, - "pc": [ - 3310, - 3311, - 3312 - ] - }, - { - "teal": 3318, - "source": 896, - "pc": [ - 3313, - 3314 - ] - }, - { - "teal": 3322, - "source": 901, - "pc": [ - 3315, - 3316 - ] - }, - { - "teal": 3323, - "source": 901, - "pc": [ - 3317, - 3318 - ] - }, - { - "teal": 3324, - "source": 901, - "pc": [ - 3319, - 3320 - ] - }, - { - "teal": 3325, - "source": 901, - "pc": [ - 3321 - ] - }, - { - "teal": 3326, - "source": 901, - "pc": [ - 3322 - ] - }, - { - "teal": 3327, - "source": 901, - "pc": [ - 3323, - 3324 - ] - }, - { - "teal": 3331, - "source": 902, - "pc": [ - 3325, - 3326 - ] - }, - { - "teal": 3332, - "source": 902, - "pc": [ - 3327, - 3328 - ] - }, - { - "teal": 3333, - "source": 902, - "pc": [ - 3329, - 3330 - ] - }, - { - "teal": 3334, - "source": 902, - "pc": [ - 3331 - ] - }, - { - "teal": 3335, - "source": 902, - "pc": [ - 3332 - ] - }, - { - "teal": 3336, - "source": 902, - "pc": [ - 3333, - 3334 - ] - }, - { - "teal": 3341, - "source": 904, - "pc": [ - 3335, - 3336 - ] - }, - { - "teal": 3342, - "source": 904, - "pc": [ - 3337, - 3338, - 3339 - ] - }, - { - "teal": 3347, - "source": 905, - "pc": [ - 3340, - 3341 - ] - }, - { - "teal": 3348, - "source": 905, - "pc": [ - 3342 - ] - }, - { - "teal": 3349, - "source": 905, - "pc": [ - 3343 - ] - }, - { - "teal": 3350, - "source": 905, - "pc": [ - 3344 - ] - }, - { - "teal": 3351, - "source": 905, - "pc": [ - 3345, - 3346 - ] - }, - { - "teal": 3352, - "source": 905, - "pc": [ - 3347, - 3348, - 3349 - ] - }, - { - "teal": 3353, - "source": 905, - "pc": [ - 3350 - ] - }, - { - "teal": 3354, - "source": 905, - "pc": [ - 3351 - ] - }, - { - "teal": 3355, - "source": 905, - "pc": [ - 3352 - ] - }, - { - "teal": 3356, - "source": 905, - "pc": [ - 3353, - 3354 - ] - }, - { - "teal": 3357, - "source": 905, - "pc": [ - 3355 - ] - }, - { - "teal": 3358, - "source": 905, - "pc": [ - 3356 - ] - }, - { - "teal": 3359, - "source": 905, - "pc": [ - 3357 - ] - }, - { - "teal": 3360, - "source": 905, - "pc": [ - 3358 - ] - }, - { - "teal": 3361, - "source": 905, - "pc": [ - 3359 - ] - }, - { - "teal": 3362, - "source": 905, - "pc": [ - 3360 - ] - }, - { - "teal": 3363, - "source": 905, - "pc": [ - 3361, - 3362 - ] - }, - { - "teal": 3364, - "source": 905, - "pc": [ - 3363, - 3364, - 3365 - ] - }, - { - "teal": 3365, - "source": 905, - "pc": [ - 3366 - ] - }, - { - "teal": 3366, - "source": 905, - "pc": [ - 3367 - ] - }, - { - "teal": 3367, - "source": 905, - "pc": [ - 3368 - ] - }, - { - "teal": 3368, - "source": 905, - "pc": [ - 3369, - 3370 - ] - }, - { - "teal": 3369, - "source": 905, - "pc": [ - 3371 - ] - }, - { - "teal": 3375, - "source": 908, - "pc": [ - 3372, - 3373 - ] - }, - { - "teal": 3376, - "source": 908, - "pc": [ - 3374, - 3375, - 3376 - ] - }, - { - "teal": 3381, - "source": 909, - "pc": [ - 3377, - 3378 - ] - }, - { - "teal": 3382, - "source": 909, - "pc": [ - 3379 - ] - }, - { - "teal": 3383, - "source": 909, - "pc": [ - 3380 - ] - }, - { - "teal": 3384, - "source": 909, - "pc": [ - 3381 - ] - }, - { - "teal": 3385, - "source": 909, - "pc": [ - 3382, - 3383 - ] - }, - { - "teal": 3386, - "source": 909, - "pc": [ - 3384 - ] - }, - { - "teal": 3387, - "source": 909, - "pc": [ - 3385 - ] - }, - { - "teal": 3392, - "source": 829, - "pc": [ - 3386 - ] - }, - { - "teal": 3397, - "source": 925, - "pc": [ - 3387 - ] - }, - { - "teal": 3400, - "source": 928, - "pc": [ - 3388, - 3389, - 3390 - ] - }, - { - "teal": 3401, - "source": 928, - "pc": [ - 3391 - ] - }, - { - "teal": 3404, - "source": 927, - "pc": [ - 3392, - 3393, - 3394 - ] - }, - { - "teal": 3405, - "source": 927, - "pc": [ - 3395 - ] - }, - { - "teal": 3406, - "source": 927, - "pc": [ - 3396 - ] - }, - { - "teal": 3407, - "source": 927, - "pc": [ - 3397, - 3398 - ] - }, - { - "teal": 3408, - "source": 927, - "pc": [ - 3399 - ] - }, - { - "teal": 3411, - "source": 927, - "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address", - "pc": [ - 3400 - ] - }, - { - "teal": 3414, - "source": 926, - "pc": [ - 3401, - 3402, - 3403 - ] - }, - { - "teal": 3415, - "source": 926, - "pc": [ - 3404 - ] - }, - { - "teal": 3418, - "source": 925, - "pc": [ - 3405, - 3406, - 3407 - ] - }, - { - "teal": 3419, - "source": 925, - "pc": [ - 3408 - ] - }, - { - "teal": 3420, - "source": 925, - "pc": [ - 3409 - ] - }, - { - "teal": 3421, - "source": 925, - "pc": [ - 3410 - ] - }, - { - "teal": 3422, - "source": 925, - "pc": [ - 3411 - ] - }, - { - "teal": 3436, - "source": 925, - "pc": [ - 3412, - 3413, - 3414 - ] - }, - { - "teal": 3439, - "source": 925, - "pc": [ - 3415 - ] - }, - { - "teal": 3440, - "source": 925, - "pc": [ - 3416, - 3417 - ] - }, - { - "teal": 3444, - "source": 930, - "pc": [ - 3418 - ] - }, - { - "teal": 3445, - "source": 930, - "pc": [ - 3419, - 3420 - ] - }, - { - "teal": 3449, - "source": 931, - "pc": [ - 3421 - ] - }, - { - "teal": 3450, - "source": 931, - "pc": [ - 3422, - 3423 - ] - }, - { - "teal": 3454, - "source": 939, - "pc": [ - 3424, - 3425 - ] - }, - { - "teal": 3455, - "source": 939, - "pc": [ - 3426, - 3427, - 3428 - ] - }, - { - "teal": 3456, - "source": 939, - "pc": [ - 3429, - 3430 - ] - }, - { - "teal": 3461, - "source": 942, - "pc": [ - 3431 - ] - }, - { - "teal": 3462, - "source": 942, - "pc": [ - 3432, - 3433 - ] - }, - { - "teal": 3463, - "source": 942, - "pc": [ - 3434 - ] - }, - { - "teal": 3464, - "source": 942, - "pc": [ - 3435 - ] - }, - { - "teal": 3465, - "source": 942, - "pc": [ - 3436 - ] - }, - { - "teal": 3466, - "source": 942, - "pc": [ - 3437 - ] - }, - { - "teal": 3467, - "source": 942, - "pc": [ - 3438, - 3439, - 3440 - ] - }, - { - "teal": 3472, - "source": 943, - "pc": [ - 3441 - ] - }, - { - "teal": 3473, - "source": 943, - "pc": [ - 3442, - 3443 - ] - }, - { - "teal": 3474, - "source": 943, - "pc": [ - 3444 - ] - }, - { - "teal": 3475, - "source": 943, - "pc": [ - 3445 - ] - }, - { - "teal": 3478, - "source": 943, - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", - "pc": [ - 3446 - ] - }, - { - "teal": 3479, - "source": 943, - "pc": [ - 3447, - 3448 - ] - }, - { - "teal": 3483, - "source": 944, - "pc": [ - 3449, - 3450 - ] - }, - { - "teal": 3484, - "source": 944, - "pc": [ - 3451 - ] - }, - { - "teal": 3485, - "source": 944, - "pc": [ - 3452 - ] - }, - { - "teal": 3486, - "source": 944, - "pc": [ - 3453 - ] - }, - { - "teal": 3490, - "source": 945, - "pc": [ - 3454 - ] - }, - { - "teal": 3491, - "source": 945, - "pc": [ - 3455, - 3456 - ] - }, - { - "teal": 3496, - "source": 945, - "pc": [ - 3457, - 3458 - ] - }, - { - "teal": 3497, - "source": 945, - "pc": [ - 3459, - 3460 - ] - }, - { - "teal": 3498, - "source": 945, - "pc": [ - 3461 - ] - }, - { - "teal": 3499, - "source": 945, - "pc": [ - 3462, - 3463, - 3464 - ] - }, - { - "teal": 3504, - "source": 946, - "pc": [ - 3465, - 3466 - ] - }, - { - "teal": 3505, - "source": 946, - "pc": [ - 3467, - 3468 - ] - }, - { - "teal": 3506, - "source": 946, - "pc": [ - 3469 - ] - }, - { - "teal": 3507, - "source": 946, - "pc": [ - 3470, - 3471, - 3472 - ] - }, - { - "teal": 3512, - "source": 947, - "pc": [ - 3473 - ] - }, - { - "teal": 3513, - "source": 947, - "pc": [ - 3474, - 3475 - ] - }, - { - "teal": 3514, - "source": 947, - "pc": [ - 3476, - 3477 - ] - }, - { - "teal": 3515, - "source": 947, - "pc": [ - 3478 - ] - }, - { - "teal": 3516, - "source": 947, - "pc": [ - 3479, - 3480 - ] - }, - { - "teal": 3517, - "source": 947, - "pc": [ - 3481, - 3482 - ] - }, - { - "teal": 3518, - "source": 947, - "pc": [ - 3483 - ] - }, - { - "teal": 3519, - "source": 947, - "pc": [ - 3484, - 3485 - ] - }, - { - "teal": 3520, - "source": 947, - "pc": [ - 3486, - 3487 - ] - }, - { - "teal": 3521, - "source": 947, - "pc": [ - 3488, - 3489 - ] - }, - { - "teal": 3522, - "source": 947, - "pc": [ - 3490, - 3491 - ] - }, - { - "teal": 3523, - "source": 947, - "pc": [ - 3492 - ] - }, - { - "teal": 3529, - "source": 949, - "pc": [ - 3493, - 3494 - ] - }, - { - "teal": 3530, - "source": 949, - "pc": [ - 3495, - 3496 - ] - }, - { - "teal": 3531, - "source": 949, - "pc": [ - 3497 - ] - }, - { - "teal": 3532, - "source": 949, - "pc": [ - 3498 - ] - }, - { - "teal": 3533, - "source": 949, - "pc": [ - 3499 - ] - }, - { - "teal": 3534, - "source": 949, - "pc": [ - 3500 - ] - }, - { - "teal": 3535, - "source": 949, - "pc": [ - 3501 - ] - }, - { - "teal": 3536, - "source": 949, - "pc": [ - 3502 - ] - }, - { - "teal": 3537, - "source": 949, - "pc": [ - 3503 - ] - }, - { - "teal": 3538, - "source": 949, - "pc": [ - 3504 - ] - }, - { - "teal": 3539, - "source": 949, - "pc": [ - 3505 - ] - }, - { - "teal": 3540, - "source": 949, - "pc": [ - 3506, - 3507, - 3508 - ] - }, - { - "teal": 3543, - "source": 950, - "pc": [ - 3509, - 3510, - 3511 - ] - }, - { - "teal": 3548, - "source": 952, - "pc": [ - 3512 - ] - }, - { - "teal": 3549, - "source": 952, - "pc": [ - 3513, - 3514 - ] - }, - { - "teal": 3554, - "source": 953, - "pc": [ - 3515, - 3516 - ] - }, - { - "teal": 3555, - "source": 953, - "pc": [ - 3517, - 3518 - ] - }, - { - "teal": 3556, - "source": 953, - "pc": [ - 3519 - ] - }, - { - "teal": 3557, - "source": 953, - "pc": [ - 3520 - ] - }, - { - "teal": 3558, - "source": 953, - "pc": [ - 3521 - ] - }, - { - "teal": 3559, - "source": 953, - "pc": [ - 3522 - ] - }, - { - "teal": 3560, - "source": 953, - "pc": [ - 3523 - ] - }, - { - "teal": 3561, - "source": 953, - "pc": [ - 3524 - ] - }, - { - "teal": 3562, - "source": 953, - "pc": [ - 3525 - ] - }, - { - "teal": 3563, - "source": 953, - "pc": [ - 3526, - 3527 - ] - }, - { - "teal": 3564, - "source": 953, - "pc": [ - 3528 - ] - }, - { - "teal": 3565, - "source": 953, - "pc": [ - 3529, - 3530, - 3531 - ] - }, - { - "teal": 3570, - "source": 955, - "pc": [ - 3532 - ] - }, - { - "teal": 3571, - "source": 955, - "pc": [ - 3533, - 3534 - ] - }, - { - "teal": 3577, - "source": 957, - "pc": [ - 3535, - 3536 - ] - }, - { - "teal": 3578, - "source": 957, - "pc": [ - 3537, - 3538 - ] - }, - { - "teal": 3579, - "source": 957, - "pc": [ - 3539, - 3540 - ] - }, - { - "teal": 3580, - "source": 957, - "pc": [ - 3541 - ] - }, - { - "teal": 3581, - "source": 957, - "pc": [ - 3542 - ] - }, - { - "teal": 3582, - "source": 957, - "pc": [ - 3543 - ] - }, - { - "teal": 3583, - "source": 957, - "pc": [ - 3544 - ] - }, - { - "teal": 3584, - "source": 957, - "pc": [ - 3545 - ] - }, - { - "teal": 3585, - "source": 957, - "pc": [ - 3546 - ] - }, - { - "teal": 3586, - "source": 957, - "pc": [ - 3547 - ] - }, - { - "teal": 3587, - "source": 957, - "pc": [ - 3548 - ] - }, - { - "teal": 3588, - "source": 957, - "pc": [ - 3549 - ] - }, - { - "teal": 3589, - "source": 957, - "pc": [ - 3550, - 3551 - ] - }, - { - "teal": 3590, - "source": 957, - "pc": [ - 3552 - ] - }, - { - "teal": 3591, - "source": 957, - "pc": [ - 3553 - ] - }, - { - "teal": 3592, - "source": 957, - "pc": [ - 3554, - 3555 - ] - }, - { - "teal": 3593, - "source": 957, - "pc": [ - 3556 - ] - }, - { - "teal": 3594, - "source": 957, - "pc": [ - 3557 - ] - }, - { - "teal": 3595, - "source": 957, - "pc": [ - 3558 - ] - }, - { - "teal": 3596, - "source": 957, - "pc": [ - 3559, - 3560 - ] - }, - { - "teal": 3597, - "source": 957, - "pc": [ - 3561 - ] - }, - { - "teal": 3598, - "source": 957, - "pc": [ - 3562 - ] - }, - { - "teal": 3599, - "source": 957, - "pc": [ - 3563, - 3564 - ] - }, - { - "teal": 3600, - "source": 957, - "pc": [ - 3565 - ] - }, - { - "teal": 3601, - "source": 957, - "pc": [ - 3566 - ] - }, - { - "teal": 3602, - "source": 957, - "pc": [ - 3567, - 3568 - ] - }, - { - "teal": 3603, - "source": 957, - "pc": [ - 3569 - ] - }, - { - "teal": 3604, - "source": 958, - "pc": [ - 3570, - 3571 - ] - }, - { - "teal": 3605, - "source": 957, - "pc": [ - 3572 - ] - }, - { - "teal": 3606, - "source": 956, - "pc": [ - 3573, - 3574, - 3575 - ] - }, - { - "teal": 3611, - "source": 960, - "pc": [ - 3576, - 3577 - ] - }, - { - "teal": 3612, - "source": 960, - "pc": [ - 3578, - 3579 - ] - }, - { - "teal": 3613, - "source": 960, - "pc": [ - 3580 - ] - }, - { - "teal": 3614, - "source": 960, - "pc": [ - 3581 - ] - }, - { - "teal": 3615, - "source": 960, - "pc": [ - 3582 - ] - }, - { - "teal": 3616, - "source": 960, - "pc": [ - 3583 - ] - }, - { - "teal": 3617, - "source": 960, - "pc": [ - 3584, - 3585 - ] - }, - { - "teal": 3618, - "source": 960, - "pc": [ - 3586 - ] - }, - { - "teal": 3619, - "source": 960, - "pc": [ - 3587, - 3588 - ] - }, - { - "teal": 3620, - "source": 960, - "pc": [ - 3589 - ] - }, - { - "teal": 3621, - "source": 960, - "pc": [ - 3590 - ] - }, - { - "teal": 3622, - "source": 960, - "pc": [ - 3591, - 3592 - ] - }, - { - "teal": 3623, - "source": 960, - "pc": [ - 3593 - ] - }, - { - "teal": 3624, - "source": 960, - "pc": [ - 3594 - ] - }, - { - "teal": 3625, - "source": 960, - "pc": [ - 3595, - 3596, - 3597 - ] - }, - { - "teal": 3634, - "source": 945, - "pc": [ - 3598, - 3599 - ] - }, - { - "teal": 3635, - "source": 945, - "pc": [ - 3600 - ] - }, - { - "teal": 3636, - "source": 945, - "pc": [ - 3601 - ] - }, - { - "teal": 3637, - "source": 945, - "pc": [ - 3602, - 3603 - ] - }, - { - "teal": 3638, - "source": 945, - "pc": [ - 3604, - 3605, - 3606 - ] - }, - { - "teal": 3648, - "source": 968, - "pc": [ - 3607, - 3608 - ] - }, - { - "teal": 3649, - "source": 968, - "pc": [ - 3609, - 3610 - ] - }, - { - "teal": 3650, - "source": 968, - "pc": [ - 3611 - ] - }, - { - "teal": 3651, - "source": 968, - "pc": [ - 3612 - ] - }, - { - "teal": 3652, - "source": 968, - "pc": [ - 3613, - 3614 - ] - }, - { - "teal": 3653, - "source": 968, - "pc": [ - 3615 - ] - }, - { - "teal": 3654, - "source": 968, - "pc": [ - 3616 - ] - }, - { - "teal": 3655, - "source": 968, - "pc": [ - 3617, - 3618 - ] - }, - { - "teal": 3656, - "source": 968, - "pc": [ - 3619 - ] - }, - { - "teal": 3657, - "source": 968, - "pc": [ - 3620 - ] - }, - { - "teal": 3658, - "source": 968, - "pc": [ - 3621 - ] - }, - { - "teal": 3661, - "source": 967, - "errorMessage": "must stake at least the minimum for this pool", - "pc": [ - 3622 - ] - }, - { - "teal": 3665, - "source": 973, - "pc": [ - 3623, - 3624 - ] - }, - { - "teal": 3666, - "source": 973, - "pc": [ - 3625, - 3626 - ] - }, - { - "teal": 3667, - "source": 973, - "pc": [ - 3627 - ] - }, - { - "teal": 3668, - "source": 973, - "pc": [ - 3628, - 3629 - ] - }, - { - "teal": 3669, - "source": 973, - "pc": [ - 3630 - ] - }, - { - "teal": 3670, - "source": 973, - "pc": [ - 3631 - ] - }, - { - "teal": 3671, - "source": 973, - "pc": [ - 3632, - 3633 - ] - }, - { - "teal": 3672, - "source": 973, - "pc": [ - 3634 - ] - }, - { - "teal": 3673, - "source": 973, - "pc": [ - 3635, - 3636 - ] - }, - { - "teal": 3677, - "source": 974, - "pc": [ - 3637, - 3638 - ] - }, - { - "teal": 3678, - "source": 974, - "pc": [ - 3639, - 3640 - ] - }, - { - "teal": 3679, - "source": 974, - "pc": [ - 3641 - ] - }, - { - "teal": 3680, - "source": 974, - "pc": [ - 3642, - 3643 - ] - }, - { - "teal": 3681, - "source": 974, - "pc": [ - 3644 - ] - }, - { - "teal": 3682, - "source": 974, - "pc": [ - 3645 - ] - }, - { - "teal": 3683, - "source": 974, - "pc": [ - 3646, - 3647 - ] - }, - { - "teal": 3684, - "source": 974, - "pc": [ - 3648 - ] - }, - { - "teal": 3685, - "source": 974, - "pc": [ - 3649 - ] - }, - { - "teal": 3686, - "source": 974, - "pc": [ - 3650, - 3651 - ] - }, - { - "teal": 3690, - "source": 975, - "pc": [ - 3652 - ] - }, - { - "teal": 3691, - "source": 975, - "pc": [ - 3653, - 3654 - ] - }, - { - "teal": 3696, - "source": 975, - "pc": [ - 3655, - 3656 - ] - }, - { - "teal": 3697, - "source": 975, - "pc": [ - 3657, - 3658 - ] - }, - { - "teal": 3698, - "source": 975, - "pc": [ - 3659 - ] - }, - { - "teal": 3699, - "source": 975, - "pc": [ - 3660, - 3661, - 3662 - ] - }, - { - "teal": 3704, - "source": 976, - "pc": [ - 3663, - 3664 - ] - }, - { - "teal": 3705, - "source": 976, - "pc": [ - 3665, - 3666 - ] - }, - { - "teal": 3706, - "source": 976, - "pc": [ - 3667, - 3668 - ] - }, - { - "teal": 3707, - "source": 976, - "pc": [ - 3669 - ] - }, - { - "teal": 3708, - "source": 976, - "pc": [ - 3670, - 3671 - ] - }, - { - "teal": 3709, - "source": 976, - "pc": [ - 3672 - ] - }, - { - "teal": 3710, - "source": 976, - "pc": [ - 3673 - ] - }, - { - "teal": 3711, - "source": 976, - "pc": [ - 3674 - ] - }, - { - "teal": 3712, - "source": 976, - "pc": [ - 3675 - ] - }, - { - "teal": 3713, - "source": 976, - "pc": [ - 3676, - 3677 - ] - }, - { - "teal": 3714, - "source": 976, - "pc": [ - 3678 - ] - }, - { - "teal": 3715, - "source": 976, - "pc": [ - 3679, - 3680 - ] - }, - { - "teal": 3716, - "source": 976, - "pc": [ - 3681 - ] - }, - { - "teal": 3717, - "source": 976, - "pc": [ - 3682, - 3683, - 3684 - ] - }, - { - "teal": 3726, - "source": 978, - "pc": [ - 3685, - 3686 - ] - }, - { - "teal": 3727, - "source": 978, - "pc": [ - 3687 - ] - }, - { - "teal": 3728, - "source": 978, - "pc": [ - 3688, - 3689 - ] - }, - { - "teal": 3729, - "source": 978, - "pc": [ - 3690 - ] - }, - { - "teal": 3730, - "source": 978, - "pc": [ - 3691 - ] - }, - { - "teal": 3731, - "source": 978, - "pc": [ - 3692 - ] - }, - { - "teal": 3732, - "source": 978, - "pc": [ - 3693 - ] - }, - { - "teal": 3733, - "source": 978, - "pc": [ - 3694, - 3695 - ] - }, - { - "teal": 3734, - "source": 978, - "pc": [ - 3696, - 3697 - ] - }, - { - "teal": 3735, - "source": 978, - "pc": [ - 3698, - 3699 - ] - }, - { - "teal": 3736, - "source": 978, - "pc": [ - 3700 - ] - }, - { - "teal": 3737, - "source": 978, - "pc": [ - 3701 - ] - }, - { - "teal": 3738, - "source": 978, - "pc": [ - 3702 - ] - }, - { - "teal": 3739, - "source": 978, - "pc": [ - 3703 - ] - }, - { - "teal": 3740, - "source": 978, - "pc": [ - 3704 - ] - }, - { - "teal": 3741, - "source": 978, - "pc": [ - 3705 - ] - }, - { - "teal": 3742, - "source": 978, - "pc": [ - 3706 - ] - }, - { - "teal": 3743, - "source": 978, - "pc": [ - 3707 - ] - }, - { - "teal": 3744, - "source": 979, - "pc": [ - 3708, - 3709 - ] - }, - { - "teal": 3745, - "source": 979, - "pc": [ - 3710 - ] - }, - { - "teal": 3746, - "source": 979, - "pc": [ - 3711, - 3712 - ] - }, - { - "teal": 3747, - "source": 979, - "pc": [ - 3713 - ] - }, - { - "teal": 3748, - "source": 980, - "pc": [ - 3714 - ] - }, - { - "teal": 3749, - "source": 980, - "pc": [ - 3715, - 3716 - ] - }, - { - "teal": 3750, - "source": 980, - "pc": [ - 3717 - ] - }, - { - "teal": 3751, - "source": 977, - "pc": [ - 3718 - ] - }, - { - "teal": 3752, - "source": 977, - "pc": [ - 3719, - 3720, - 3721 - ] - }, - { - "teal": 3759, - "source": 975, - "pc": [ - 3722, - 3723 - ] - }, - { - "teal": 3760, - "source": 975, - "pc": [ - 3724 - ] - }, - { - "teal": 3761, - "source": 975, - "pc": [ - 3725 - ] - }, - { - "teal": 3762, - "source": 975, - "pc": [ - 3726, - 3727 - ] - }, - { - "teal": 3763, - "source": 975, - "pc": [ - 3728, - 3729, - 3730 - ] - }, - { - "teal": 3768, - "source": 985, - "pc": [ - 3731, - 3732 - ] - }, - { - "teal": 3769, - "source": 985, - "pc": [ - 3733 - ] - }, - { - "teal": 3770, - "source": 985, - "pc": [ - 3734, - 3735 - ] - }, - { - "teal": 3771, - "source": 985, - "pc": [ - 3736 - ] - }, - { - "teal": 3772, - "source": 985, - "pc": [ - 3737, - 3738 - ] - }, - { - "teal": 3773, - "source": 985, - "pc": [ - 3739 - ] - }, - { - "teal": 3774, - "source": 985, - "pc": [ - 3740, - 3741 - ] - }, - { - "teal": 3775, - "source": 985, - "pc": [ - 3742 - ] - }, - { - "teal": 3776, - "source": 985, - "pc": [ - 3743, - 3744 - ] - }, - { - "teal": 3777, - "source": 985, - "pc": [ - 3745 - ] - }, - { - "teal": 3778, - "source": 985, - "pc": [ - 3746 - ] - }, - { - "teal": 3779, - "source": 985, - "pc": [ - 3747, - 3748 - ] - }, - { - "teal": 3780, - "source": 985, - "pc": [ - 3749 - ] - }, - { - "teal": 3781, - "source": 985, - "pc": [ - 3750 - ] - }, - { - "teal": 3785, - "source": 925, - "pc": [ - 3751, - 3752 - ] - }, - { - "teal": 3788, - "source": 925, - "pc": [ - 3753, - 3754 - ] - }, - { - "teal": 3789, - "source": 925, - "pc": [ - 3755 - ] - }, - { - "teal": 3794, - "source": 999, - "pc": [ - 3756, - 3757, - 3758 - ] - }, - { - "teal": 3795, - "source": 999, - "pc": [ - 3759 - ] - }, - { - "teal": 3798, - "source": 999, - "pc": [ - 3760, - 3761, - 3762 - ] - }, - { - "teal": 3799, - "source": 999, - "pc": [ - 3763 - ] - }, - { - "teal": 3802, - "source": 999, - "pc": [ - 3764, - 3765, - 3766 - ] - }, - { - "teal": 3803, - "source": 999, - "pc": [ - 3767 - ] - }, - { - "teal": 3806, - "source": 999, - "pc": [ - 3768, - 3769, - 3770 - ] - }, - { - "teal": 3807, - "source": 999, - "pc": [ - 3771 - ] - }, - { - "teal": 3808, - "source": 999, - "pc": [ - 3772 - ] - }, - { - "teal": 3822, - "source": 999, - "pc": [ - 3773, - 3774, - 3775 - ] - }, - { - "teal": 3825, - "source": 999, - "pc": [ - 3776 - ] - }, - { - "teal": 3826, - "source": 999, - "pc": [ - 3777, - 3778 - ] - }, - { - "teal": 3834, - "source": 1002, - "pc": [ - 3779, - 3780 - ] - }, - { - "teal": 3835, - "source": 1002, - "pc": [ - 3781 - ] - }, - { - "teal": 3836, - "source": 1002, - "pc": [ - 3782, - 3783 - ] - }, - { - "teal": 3837, - "source": 1002, - "pc": [ - 3784 - ] - }, - { - "teal": 3838, - "source": 1002, - "pc": [ - 3785, - 3786 - ] - }, - { - "teal": 3839, - "source": 1002, - "pc": [ - 3787 - ] - }, - { - "teal": 3840, - "source": 1002, - "pc": [ - 3788 - ] - }, - { - "teal": 3841, - "source": 1002, - "pc": [ - 3789, - 3790 - ] - }, - { - "teal": 3842, - "source": 1002, - "pc": [ - 3791 - ] - }, - { - "teal": 3843, - "source": 1002, - "pc": [ - 3792 - ] - }, - { - "teal": 3844, - "source": 1002, - "pc": [ - 3793 - ] - }, - { - "teal": 3845, - "source": 1002, - "pc": [ - 3794, - 3795, - 3796 - ] - }, - { - "teal": 3846, - "source": 1003, - "pc": [ - 3797, - 3798 - ] - }, - { - "teal": 3847, - "source": 1003, - "pc": [ - 3799, - 3800 - ] - }, - { - "teal": 3848, - "source": 1003, - "pc": [ - 3801, - 3802 - ] - }, - { - "teal": 3849, - "source": 1003, - "pc": [ - 3803 - ] - }, - { - "teal": 3850, - "source": 1003, - "pc": [ - 3804, - 3805 - ] - }, - { - "teal": 3851, - "source": 1003, - "pc": [ - 3806 - ] - }, - { - "teal": 3852, - "source": 1003, - "pc": [ - 3807 - ] - }, - { - "teal": 3853, - "source": 1003, - "pc": [ - 3808, - 3809 - ] - }, - { - "teal": 3854, - "source": 1003, - "pc": [ - 3810 - ] - }, - { - "teal": 3855, - "source": 1003, - "pc": [ - 3811 - ] - }, - { - "teal": 3856, - "source": 1002, - "pc": [ - 3812 - ] - }, - { - "teal": 3860, - "source": 1001, - "errorMessage": "can only be called by owner or manager of validator", - "pc": [ - 3813 - ] - }, - { - "teal": 3864, - "source": 1007, - "pc": [ - 3814, - 3815 - ] - }, - { - "teal": 3865, - "source": 1007, - "pc": [ - 3816, - 3817 - ] - }, - { - "teal": 3866, - "source": 1007, - "pc": [ - 3818 - ] - }, - { - "teal": 3867, - "source": 1007, - "pc": [ - 3819, - 3820 - ] - }, - { - "teal": 3868, - "source": 1007, - "pc": [ - 3821 - ] - }, - { - "teal": 3869, - "source": 1007, - "pc": [ - 3822 - ] - }, - { - "teal": 3870, - "source": 1007, - "pc": [ - 3823, - 3824 - ] - }, - { - "teal": 3871, - "source": 1007, - "pc": [ - 3825 - ] - }, - { - "teal": 3872, - "source": 1007, - "pc": [ - 3826, - 3827 - ] - }, - { - "teal": 3876, - "source": 1008, - "pc": [ - 3828, - 3829 - ] - }, - { - "teal": 3877, - "source": 1008, - "pc": [ - 3830 - ] - }, - { - "teal": 3878, - "source": 1008, - "pc": [ - 3831 - ] - }, - { - "teal": 3879, - "source": 1008, - "pc": [ - 3832 - ] - }, - { - "teal": 3880, - "source": 1008, - "pc": [ - 3833, - 3834, - 3835 - ] - }, - { - "teal": 3881, - "source": 1008, - "pc": [ - 3836, - 3837 - ] - }, - { - "teal": 3882, - "source": 1008, - "pc": [ - 3838 - ] - }, - { - "teal": 3883, - "source": 1008, - "pc": [ - 3839 - ] - }, - { - "teal": 3884, - "source": 1008, - "pc": [ - 3840 - ] - }, - { - "teal": 3888, - "source": 1008, - "errorMessage": "node number out of allowable range", - "pc": [ - 3841 - ] - }, - { - "teal": 3892, - "source": 1010, - "pc": [ - 3842 - ] - }, - { - "teal": 3893, - "source": 1010, - "pc": [ - 3843, - 3844 - ] - }, - { - "teal": 3898, - "source": 1010, - "pc": [ - 3845, - 3846 - ] - }, - { - "teal": 3899, - "source": 1010, - "pc": [ - 3847 - ] - }, - { - "teal": 3900, - "source": 1010, - "pc": [ - 3848 - ] - }, - { - "teal": 3901, - "source": 1010, - "pc": [ - 3849, - 3850, - 3851 - ] - }, - { - "teal": 3905, - "source": 1011, - "pc": [ - 3852 - ] - }, - { - "teal": 3906, - "source": 1011, - "pc": [ - 3853, - 3854 - ] - }, - { - "teal": 3911, - "source": 1011, - "pc": [ - 3855, - 3856 - ] - }, - { - "teal": 3912, - "source": 1011, - "pc": [ - 3857, - 3858 - ] - }, - { - "teal": 3913, - "source": 1011, - "pc": [ - 3859 - ] - }, - { - "teal": 3914, - "source": 1011, - "pc": [ - 3860, - 3861, - 3862 - ] - }, - { - "teal": 3919, - "source": 1012, - "pc": [ - 3863, - 3864 - ] - }, - { - "teal": 3920, - "source": 1012, - "pc": [ - 3865 - ] - }, - { - "teal": 3921, - "source": 1012, - "pc": [ - 3866, - 3867 - ] - }, - { - "teal": 3922, - "source": 1012, - "pc": [ - 3868 - ] - }, - { - "teal": 3923, - "source": 1012, - "pc": [ - 3869 - ] - }, - { - "teal": 3924, - "source": 1012, - "pc": [ - 3870 - ] - }, - { - "teal": 3925, - "source": 1012, - "pc": [ - 3871 - ] - }, - { - "teal": 3926, - "source": 1012, - "pc": [ - 3872 - ] - }, - { - "teal": 3927, - "source": 1012, - "pc": [ - 3873, - 3874 - ] - }, - { - "teal": 3928, - "source": 1012, - "pc": [ - 3875 - ] - }, - { - "teal": 3929, - "source": 1012, - "pc": [ - 3876 - ] - }, - { - "teal": 3930, - "source": 1012, - "pc": [ - 3877 - ] - }, - { - "teal": 3931, - "source": 1012, - "pc": [ - 3878 - ] - }, - { - "teal": 3932, - "source": 1012, - "pc": [ - 3879 - ] - }, - { - "teal": 3933, - "source": 1012, - "pc": [ - 3880 - ] - }, - { - "teal": 3934, - "source": 1012, - "pc": [ - 3881, - 3882 - ] - }, - { - "teal": 3935, - "source": 1012, - "pc": [ - 3883 - ] - }, - { - "teal": 3936, - "source": 1012, - "pc": [ - 3884, - 3885, - 3886 - ] - }, - { - "teal": 3941, - "source": 1013, - "pc": [ - 3887, - 3888 - ] - }, - { - "teal": 3942, - "source": 1013, - "pc": [ - 3889 - ] - }, - { - "teal": 3943, - "source": 1013, - "pc": [ - 3890 - ] - }, - { - "teal": 3944, - "source": 1013, - "pc": [ - 3891, - 3892 - ] - }, - { - "teal": 3945, - "source": 1013, - "pc": [ - 3893 - ] - }, - { - "teal": 3948, - "source": 1013, - "errorMessage": "can't move to same node", - "pc": [ - 3894 - ] - }, - { - "teal": 3952, - "source": 1015, - "pc": [ - 3895, - 3896 - ] - }, - { - "teal": 3953, - "source": 1015, - "pc": [ - 3897, - 3898 - ] - }, - { - "teal": 3954, - "source": 1015, - "pc": [ - 3899 - ] - }, - { - "teal": 3955, - "source": 1015, - "pc": [ - 3900 - ] - }, - { - "teal": 3956, - "source": 1015, - "pc": [ - 3901 - ] - }, - { - "teal": 3957, - "source": 1015, - "pc": [ - 3902 - ] - }, - { - "teal": 3958, - "source": 1015, - "pc": [ - 3903 - ] - }, - { - "teal": 3959, - "source": 1015, - "pc": [ - 3904, - 3905 - ] - }, - { - "teal": 3960, - "source": 1015, - "pc": [ - 3906 - ] - }, - { - "teal": 3961, - "source": 1015, - "pc": [ - 3907 - ] - }, - { - "teal": 3962, - "source": 1015, - "pc": [ - 3908 - ] - }, - { - "teal": 3963, - "source": 1015, - "pc": [ - 3909, - 3910 - ] - }, - { - "teal": 3964, - "source": 1015, - "pc": [ - 3911 - ] - }, - { - "teal": 3965, - "source": 1015, - "pc": [ - 3912, - 3913 - ] - }, - { - "teal": 3966, - "source": 1015, - "pc": [ - 3914 - ] - }, - { - "teal": 3967, - "source": 1015, - "pc": [ - 3915 - ] - }, - { - "teal": 3968, - "source": 1015, - "pc": [ - 3916, - 3917 - ] - }, - { - "teal": 3969, - "source": 1015, - "pc": [ - 3918 - ] - }, - { - "teal": 3975, - "source": 1018, - "pc": [ - 3919 - ] - }, - { - "teal": 3976, - "source": 1018, - "pc": [ - 3920, - 3921 - ] - }, - { - "teal": 3977, - "source": 1018, - "pc": [ - 3922, - 3923 - ] - }, - { - "teal": 3978, - "source": 1018, - "pc": [ - 3924, - 3925, - 3926, - 3927, - 3928, - 3929 - ] - }, - { - "teal": 3979, - "source": 1018, - "pc": [ - 3930, - 3931 - ] - }, - { - "teal": 3983, - "source": 1019, - "pc": [ - 3932, - 3933 - ] - }, - { - "teal": 3984, - "source": 1019, - "pc": [ - 3934, - 3935 - ] - }, - { - "teal": 3987, - "source": 1018, - "pc": [ - 3936 - ] - }, - { - "teal": 3988, - "source": 1018, - "pc": [ - 3937, - 3938 - ] - }, - { - "teal": 3991, - "source": 1018, - "pc": [ - 3939 - ] - }, - { - "teal": 3995, - "source": 1023, - "pc": [ - 3940, - 3941 - ] - }, - { - "teal": 3996, - "source": 1023, - "pc": [ - 3942, - 3943 - ] - }, - { - "teal": 3997, - "source": 1023, - "pc": [ - 3944, - 3945 - ] - }, - { - "teal": 3998, - "source": 1023, - "pc": [ - 3946, - 3947, - 3948 - ] - }, - { - "teal": 4002, - "source": 1024, - "pc": [ - 3949 - ] - }, - { - "teal": 4009, - "source": 1011, - "pc": [ - 3950, - 3951 - ] - }, - { - "teal": 4010, - "source": 1011, - "pc": [ - 3952 - ] - }, - { - "teal": 4011, - "source": 1011, - "pc": [ - 3953 - ] - }, - { - "teal": 4012, - "source": 1011, - "pc": [ - 3954, - 3955 - ] - }, - { - "teal": 4013, - "source": 1011, - "pc": [ - 3956, - 3957, - 3958 - ] - }, - { - "teal": 4020, - "source": 1010, - "pc": [ - 3959, - 3960 - ] - }, - { - "teal": 4021, - "source": 1010, - "pc": [ - 3961 - ] - }, - { - "teal": 4022, - "source": 1010, - "pc": [ - 3962 - ] - }, - { - "teal": 4023, - "source": 1010, - "pc": [ - 3963, - 3964 - ] - }, - { - "teal": 4024, - "source": 1010, - "pc": [ - 3965, - 3966, - 3967 - ] - }, - { - "teal": 4028, - "source": 1028, - "errorMessage": "couldn't find pool app id in nodes to move", - "pc": [ - 3968 - ] - }, - { - "teal": 4029, - "source": 999, - "pc": [ - 3969 - ] - }, - { - "teal": 4034, - "source": 1042, - "pc": [ - 3970 - ] - }, - { - "teal": 4037, - "source": 1042, - "pc": [ - 3971, - 3972, - 3973 - ] - }, - { - "teal": 4038, - "source": 1042, - "pc": [ - 3974 - ] - }, - { - "teal": 4039, - "source": 1042, - "pc": [ - 3975 - ] - }, - { - "teal": 4040, - "source": 1042, - "pc": [ - 3976, - 3977 - ] - }, - { - "teal": 4041, - "source": 1042, - "pc": [ - 3978 - ] - }, - { - "teal": 4044, - "source": 1042, - "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address", - "pc": [ - 3979 - ] - }, - { - "teal": 4047, - "source": 1042, - "pc": [ - 3980, - 3981, - 3982 - ] - }, - { - "teal": 4048, - "source": 1042, - "pc": [ - 3983 - ] - }, - { - "teal": 4051, - "source": 1042, - "pc": [ - 3984, - 3985, - 3986 - ] - }, - { - "teal": 4052, - "source": 1042, - "pc": [ - 3987 - ] - }, - { - "teal": 4053, - "source": 1042, - "pc": [ - 3988 - ] - }, - { - "teal": 4054, - "source": 1042, - "pc": [ - 3989 - ] - }, - { - "teal": 4055, - "source": 1042, - "pc": [ - 3990 - ] - }, - { - "teal": 4056, - "source": 1042, - "pc": [ - 3991 - ] - }, - { - "teal": 4070, - "source": 1042, - "pc": [ - 3992, - 3993, - 3994 - ] - }, - { - "teal": 4073, - "source": 1042, - "pc": [ - 3995 - ] - }, - { - "teal": 4074, - "source": 1042, - "pc": [ - 3996, - 3997 - ] - }, - { - "teal": 4081, - "source": 1044, - "pc": [ - 3998, - 3999 - ] - }, - { - "teal": 4082, - "source": 1044, - "pc": [ - 4000 - ] - }, - { - "teal": 4083, - "source": 1044, - "pc": [ - 4001, - 4002 - ] - }, - { - "teal": 4084, - "source": 1044, - "pc": [ - 4003 - ] - }, - { - "teal": 4085, - "source": 1044, - "pc": [ - 4004, - 4005 - ] - }, - { - "teal": 4086, - "source": 1044, - "pc": [ - 4006 - ] - }, - { - "teal": 4087, - "source": 1044, - "pc": [ - 4007 - ] - }, - { - "teal": 4088, - "source": 1044, - "pc": [ - 4008, - 4009 - ] - }, - { - "teal": 4089, - "source": 1044, - "pc": [ - 4010 - ] - }, - { - "teal": 4090, - "source": 1044, - "pc": [ - 4011 - ] - }, - { - "teal": 4093, - "source": 1043, - "errorMessage": "can only be called by validator owner", - "pc": [ - 4012 - ] - }, - { - "teal": 4097, - "source": 1047, - "pc": [ - 4013, - 4014 - ] - }, - { - "teal": 4098, - "source": 1047, - "pc": [ - 4015 - ] - }, - { - "teal": 4099, - "source": 1047, - "pc": [ - 4016 - ] - }, - { - "teal": 4100, - "source": 1047, - "pc": [ - 4017, - 4018 - ] - }, - { - "teal": 4101, - "source": 1047, - "pc": [ - 4019 - ] - }, - { - "teal": 4102, - "source": 1047, - "pc": [ - 4020 - ] - }, - { - "teal": 4103, - "source": 1047, - "pc": [ - 4021, - 4022 - ] - }, - { - "teal": 4104, - "source": 1047, - "pc": [ - 4023 - ] - }, - { - "teal": 4105, - "source": 1047, - "pc": [ - 4024 - ] - }, - { - "teal": 4106, - "source": 1047, - "pc": [ - 4025, - 4026 - ] - }, - { - "teal": 4110, - "source": 1048, - "pc": [ - 4027, - 4028 - ] - }, - { - "teal": 4111, - "source": 1048, - "pc": [ - 4029 - ] - }, - { - "teal": 4112, - "source": 1048, - "pc": [ - 4030 - ] - }, - { - "teal": 4113, - "source": 1048, - "pc": [ - 4031, - 4032 - ] - }, - { - "teal": 4114, - "source": 1048, - "pc": [ - 4033 - ] - }, - { - "teal": 4115, - "source": 1048, - "pc": [ - 4034 - ] - }, - { - "teal": 4116, - "source": 1048, - "pc": [ - 4035, - 4036 - ] - }, - { - "teal": 4117, - "source": 1048, - "pc": [ - 4037 - ] - }, - { - "teal": 4118, - "source": 1048, - "pc": [ - 4038 - ] - }, - { - "teal": 4119, - "source": 1048, - "pc": [ - 4039, - 4040 - ] - }, - { - "teal": 4123, - "source": 1049, - "pc": [ - 4041, - 4042 - ] - }, - { - "teal": 4124, - "source": 1049, - "pc": [ - 4043 - ] - }, - { - "teal": 4125, - "source": 1049, - "pc": [ - 4044 - ] - }, - { - "teal": 4128, - "source": 1049, - "errorMessage": "this validator doesn't have a reward token defined", - "pc": [ - 4045 - ] - }, - { - "teal": 4132, - "source": 1050, - "pc": [ - 4046, - 4047 - ] - }, - { - "teal": 4133, - "source": 1050, - "pc": [ - 4048 - ] - }, - { - "teal": 4134, - "source": 1050, - "pc": [ - 4049 - ] - }, - { - "teal": 4135, - "source": 1050, - "pc": [ - 4050, - 4051 - ] - }, - { - "teal": 4136, - "source": 1050, - "pc": [ - 4052 - ] - }, - { - "teal": 4137, - "source": 1050, - "pc": [ - 4053 - ] - }, - { - "teal": 4138, - "source": 1050, - "pc": [ - 4054, - 4055 - ] - }, - { - "teal": 4139, - "source": 1050, - "pc": [ - 4056 - ] - }, - { - "teal": 4140, - "source": 1050, - "pc": [ - 4057 - ] - }, - { - "teal": 4141, - "source": 1050, - "pc": [ - 4058, - 4059 - ] - }, - { - "teal": 4145, - "source": 1052, - "pc": [ - 4060, - 4061 - ] - }, - { - "teal": 4146, - "source": 1052, - "pc": [ - 4062, - 4063 - ] - }, - { - "teal": 4147, - "source": 1052, - "pc": [ - 4064 - ] - }, - { - "teal": 4148, - "source": 1052, - "pc": [ - 4065, - 4066 - ] - }, - { - "teal": 4149, - "source": 1052, - "pc": [ - 4067, - 4068 - ] - }, - { - "teal": 4150, - "source": 1052, - "pc": [ - 4069 - ] - }, - { - "teal": 4151, - "source": 1052, - "pc": [ - 4070, - 4071 - ] - }, - { - "teal": 4152, - "source": 1052, - "pc": [ - 4072 - ] - }, - { - "teal": 4153, - "source": 1052, - "pc": [ - 4073, - 4074 - ] - }, - { - "teal": 4160, - "source": 1055, - "pc": [ - 4075 - ] - }, - { - "teal": 4161, - "source": 1055, - "pc": [ - 4076, - 4077 - ] - }, - { - "teal": 4162, - "source": 1055, - "pc": [ - 4078, - 4079 - ] - }, - { - "teal": 4163, - "source": 1055, - "pc": [ - 4080, - 4081 - ] - }, - { - "teal": 4164, - "source": 1055, - "pc": [ - 4082, - 4083 - ] - }, - { - "teal": 4168, - "source": 1056, - "pc": [ - 4084, - 4085 - ] - }, - { - "teal": 4169, - "source": 1056, - "pc": [ - 4086, - 4087 - ] - }, - { - "teal": 4173, - "source": 1057, - "pc": [ - 4088, - 4089 - ] - }, - { - "teal": 4174, - "source": 1057, - "pc": [ - 4090, - 4091 - ] - }, - { - "teal": 4175, - "source": 1057, - "pc": [ - 4092, - 4093 - ] - }, - { - "teal": 4176, - "source": 1057, - "pc": [ - 4094 - ] - }, - { - "teal": 4177, - "source": 1057, - "pc": [ - 4095, - 4096 - ] - }, - { - "teal": 4178, - "source": 1057, - "pc": [ - 4097, - 4098 - ] - }, - { - "teal": 4179, - "source": 1057, - "pc": [ - 4099 - ] - }, - { - "teal": 4180, - "source": 1057, - "pc": [ - 4100, - 4101 - ] - }, - { - "teal": 4183, - "source": 1055, - "pc": [ - 4102 - ] - }, - { - "teal": 4184, - "source": 1055, - "pc": [ - 4103, - 4104 - ] - }, - { - "teal": 4187, - "source": 1055, - "pc": [ - 4105 - ] - }, - { - "teal": 4194, - "source": 1060, - "pc": [ - 4106, - 4107 - ] - }, - { - "teal": 4195, - "source": 1060, - "pc": [ - 4108, - 4109 - ] - }, - { - "teal": 4196, - "source": 1060, - "pc": [ - 4110 - ] - }, - { - "teal": 4197, - "source": 1060, - "pc": [ - 4111, - 4112 - ] - }, - { - "teal": 4198, - "source": 1060, - "pc": [ - 4113, - 4114 - ] - }, - { - "teal": 4199, - "source": 1060, - "pc": [ - 4115 - ] - }, - { - "teal": 4200, - "source": 1060, - "pc": [ - 4116, - 4117 - ] - }, - { - "teal": 4201, - "source": 1060, - "pc": [ - 4118 - ] - }, - { - "teal": 4204, - "source": 1059, - "errorMessage": "balance of remaining reward tokens should match the held back amount", - "pc": [ - 4119 - ] - }, - { - "teal": 4208, - "source": 1063, - "pc": [ - 4120, - 4121 - ] - }, - { - "teal": 4211, - "source": 1042, - "pc": [ - 4122, - 4123 - ] - }, - { - "teal": 4214, - "source": 1042, - "pc": [ - 4124, - 4125 - ] - }, - { - "teal": 4215, - "source": 1042, - "pc": [ - 4126 - ] - }, - { - "teal": 4226, - "source": 1160, - "pc": [ - 4127, - 4128, - 4129 - ] - }, - { - "teal": 4230, - "source": 1161, - "pc": [ - 4130 - ] - }, - { - "teal": 4231, - "source": 1161, - "pc": [ - 4131, - 4132 - ] - }, - { - "teal": 4232, - "source": 1161, - "pc": [ - 4133, - 4134, - 4135 - ] - }, - { - "teal": 4233, - "source": 1161, - "pc": [ - 4136 - ] - }, - { - "teal": 4234, - "source": 1161, - "pc": [ - 4137 - ] - }, - { - "teal": 4235, - "source": 1161, - "pc": [ - 4138 - ] - }, - { - "teal": 4236, - "source": 1161, - "pc": [ - 4139 - ] - }, - { - "teal": 4237, - "source": 1161, - "pc": [ - 4140 - ] - }, - { - "teal": 4238, - "source": 1161, - "pc": [ - 4141 - ] - }, - { - "teal": 4241, - "source": 1161, - "errorMessage": "the specified validator id isn't valid", - "pc": [ - 4142 - ] - }, - { - "teal": 4245, - "source": 1162, - "pc": [ - 4143, - 4144 - ] - }, - { - "teal": 4246, - "source": 1162, - "pc": [ - 4145, - 4146, - 4147 - ] - }, - { - "teal": 4247, - "source": 1162, - "pc": [ - 4148 - ] - }, - { - "teal": 4248, - "source": 32, - "pc": [ - 4149 - ] - }, - { - "teal": 4249, - "source": 1162, - "pc": [ - 4150 - ] - }, - { - "teal": 4252, - "source": 1162, - "errorMessage": "pool id not in valid range", - "pc": [ - 4151 - ] - }, - { - "teal": 4259, - "source": 1164, - "pc": [ - 4152, - 4153 - ] - }, - { - "teal": 4260, - "source": 1164, - "pc": [ - 4154, - 4155, - 4156 - ] - }, - { - "teal": 4261, - "source": 1164, - "pc": [ - 4157 - ] - }, - { - "teal": 4262, - "source": 1164, - "pc": [ - 4158 - ] - }, - { - "teal": 4263, - "source": 1164, - "pc": [ - 4159 - ] - }, - { - "teal": 4264, - "source": 1164, - "pc": [ - 4160 - ] - }, - { - "teal": 4265, - "source": 1164, - "pc": [ - 4161, - 4162, - 4163 - ] - }, - { - "teal": 4266, - "source": 1164, - "pc": [ - 4164, - 4165 - ] - }, - { - "teal": 4267, - "source": 1164, - "pc": [ - 4166, - 4167, - 4168 - ] - }, - { - "teal": 4268, - "source": 1164, - "pc": [ - 4169 - ] - }, - { - "teal": 4269, - "source": 1164, - "pc": [ - 4170, - 4171 - ] - }, - { - "teal": 4270, - "source": 1164, - "pc": [ - 4172, - 4173 - ] - }, - { - "teal": 4271, - "source": 1164, - "pc": [ - 4174 - ] - }, - { - "teal": 4272, - "source": 1164, - "pc": [ - 4175, - 4176 - ] - }, - { - "teal": 4273, - "source": 1164, - "pc": [ - 4177, - 4178, - 4179 - ] - }, - { - "teal": 4274, - "source": 1164, - "pc": [ - 4180 - ] - }, - { - "teal": 4275, - "source": 1164, - "pc": [ - 4181 - ] - }, - { - "teal": 4276, - "source": 1164, - "pc": [ - 4182 - ] - }, - { - "teal": 4277, - "source": 1164, - "pc": [ - 4183, - 4184 - ] - }, - { - "teal": 4278, - "source": 1164, - "pc": [ - 4185 - ] - }, - { - "teal": 4279, - "source": 1164, - "pc": [ - 4186 - ] - }, - { - "teal": 4280, - "source": 1164, - "pc": [ - 4187 - ] - }, - { - "teal": 4281, - "source": 1164, - "pc": [ - 4188 - ] - }, - { - "teal": 4285, - "source": 1163, - "errorMessage": "pool id outside of range of pools created for this validator", - "pc": [ - 4189 - ] - }, - { - "teal": 4292, - "source": 1170, - "pc": [ - 4190, - 4191 - ] - }, - { - "teal": 4293, - "source": 1170, - "pc": [ - 4192, - 4193, - 4194 - ] - }, - { - "teal": 4294, - "source": 1170, - "pc": [ - 4195 - ] - }, - { - "teal": 4295, - "source": 1170, - "pc": [ - 4196, - 4197 - ] - }, - { - "teal": 4296, - "source": 1170, - "pc": [ - 4198, - 4199 - ] - }, - { - "teal": 4297, - "source": 1170, - "pc": [ - 4200, - 4201, - 4202 - ] - }, - { - "teal": 4298, - "source": 1170, - "pc": [ - 4203 - ] - }, - { - "teal": 4299, - "source": 1170, - "pc": [ - 4204 - ] - }, - { - "teal": 4300, - "source": 1170, - "pc": [ - 4205 - ] - }, - { - "teal": 4301, - "source": 1170, - "pc": [ - 4206, - 4207 - ] - }, - { - "teal": 4302, - "source": 1170, - "pc": [ - 4208 - ] - }, - { - "teal": 4303, - "source": 1170, - "pc": [ - 4209 - ] - }, - { - "teal": 4304, - "source": 1170, - "pc": [ - 4210 - ] - }, - { - "teal": 4305, - "source": 1170, - "pc": [ - 4211 - ] - }, - { - "teal": 4306, - "source": 1170, - "pc": [ - 4212 - ] - }, - { - "teal": 4307, - "source": 1170, - "pc": [ - 4213 - ] - }, - { - "teal": 4308, - "source": 1170, - "pc": [ - 4214, - 4215 - ] - }, - { - "teal": 4309, - "source": 1170, - "pc": [ - 4216, - 4217, - 4218 - ] - }, - { - "teal": 4310, - "source": 1170, - "pc": [ - 4219 - ] - }, - { - "teal": 4311, - "source": 1170, - "pc": [ - 4220 - ] - }, - { - "teal": 4312, - "source": 1170, - "pc": [ - 4221 - ] - }, - { - "teal": 4313, - "source": 1170, - "pc": [ - 4222, - 4223 - ] - }, - { - "teal": 4314, - "source": 1170, - "pc": [ - 4224 - ] - }, - { - "teal": 4315, - "source": 1170, - "pc": [ - 4225 - ] - }, - { - "teal": 4316, - "source": 1170, - "pc": [ - 4226 - ] - }, - { - "teal": 4319, - "source": 1169, - "errorMessage": "The passed in app id doesn't match the passed in ids", - "pc": [ - 4227 - ] - }, - { - "teal": 4323, - "source": 1174, - "pc": [ - 4228, - 4229 - ] - }, - { - "teal": 4324, - "source": 1174, - "pc": [ - 4230, - 4231 - ] - }, - { - "teal": 4325, - "source": 1174, - "pc": [ - 4232, - 4233, - 4234 - ] - }, - { - "teal": 4326, - "source": 1174, - "pc": [ - 4235 - ] - }, - { - "teal": 4327, - "source": 1174, - "pc": [ - 4236, - 4237 - ] - }, - { - "teal": 4328, - "source": 1174, - "pc": [ - 4238 - ] - }, - { - "teal": 4329, - "source": 1174, - "pc": [ - 4239 - ] - }, - { - "teal": 4330, - "source": 1174, - "pc": [ - 4240 - ] - }, - { - "teal": 4334, - "source": 1176, - "pc": [ - 4241, - 4242 - ] - }, - { - "teal": 4335, - "source": 1176, - "pc": [ - 4243, - 4244, - 4245 - ] - }, - { - "teal": 4336, - "source": 1176, - "pc": [ - 4246 - ] - }, - { - "teal": 4337, - "source": 1176, - "pc": [ - 4247, - 4248 - ] - }, - { - "teal": 4338, - "source": 1176, - "pc": [ - 4249, - 4250, - 4251 - ] - }, - { - "teal": 4339, - "source": 1176, - "pc": [ - 4252 - ] - }, - { - "teal": 4340, - "source": 1176, - "pc": [ - 4253, - 4254, - 4255, - 4256, - 4257, - 4258, - 4259, - 4260, - 4261, - 4262, - 4263, - 4264, - 4265 - ] - }, - { - "teal": 4341, - "source": 1176, - "pc": [ - 4266 - ] - }, - { - "teal": 4344, - "source": 1176, - "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('validatorId')", - "pc": [ - 4267 - ] - }, - { - "teal": 4345, - "source": 1176, - "pc": [ - 4268 - ] - }, - { - "teal": 4346, - "source": 1176, - "pc": [ - 4269 - ] - }, - { - "teal": 4350, - "source": 1177, - "pc": [ - 4270, - 4271 - ] - }, - { - "teal": 4351, - "source": 1177, - "pc": [ - 4272, - 4273, - 4274 - ] - }, - { - "teal": 4352, - "source": 1177, - "pc": [ - 4275 - ] - }, - { - "teal": 4353, - "source": 1177, - "pc": [ - 4276, - 4277 - ] - }, - { - "teal": 4354, - "source": 1177, - "pc": [ - 4278, - 4279, - 4280 - ] - }, - { - "teal": 4355, - "source": 1177, - "pc": [ - 4281 - ] - }, - { - "teal": 4356, - "source": 1177, - "pc": [ - 4282, - 4283, - 4284, - 4285, - 4286, - 4287, - 4288, - 4289 - ] - }, - { - "teal": 4357, - "source": 1177, - "pc": [ - 4290 - ] - }, - { - "teal": 4360, - "source": 1177, - "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('poolId')", - "pc": [ - 4291 - ] - }, - { - "teal": 4361, - "source": 1177, - "pc": [ - 4292 - ] - }, - { - "teal": 4362, - "source": 1177, - "pc": [ - 4293 - ] - }, - { - "teal": 4363, - "source": 1160, - "pc": [ - 4294 - ] - }, - { - "teal": 4372, - "source": 1186, - "pc": [ - 4295, - 4296, - 4297 - ] - }, - { - "teal": 4375, - "source": 1186, - "pc": [ - 4298 - ] - }, - { - "teal": 4376, - "source": 1186, - "pc": [ - 4299 - ] - }, - { - "teal": 4380, - "source": 1187, - "pc": [ - 4300 - ] - }, - { - "teal": 4381, - "source": 1187, - "pc": [ - 4301, - 4302 - ] - }, - { - "teal": 4382, - "source": 1187, - "pc": [ - 4303 - ] - }, - { - "teal": 4383, - "source": 1187, - "pc": [ - 4304 - ] - }, - { - "teal": 4384, - "source": 1187, - "pc": [ - 4305, - 4306 - ] - }, - { - "teal": 4389, - "source": 1188, - "pc": [ - 4307, - 4308 - ] - }, - { - "teal": 4390, - "source": 1188, - "pc": [ - 4309 - ] - }, - { - "teal": 4391, - "source": 1187, - "pc": [ - 4310 - ] - }, - { - "teal": 4392, - "source": 1187, - "pc": [ - 4311, - 4312 - ] - }, - { - "teal": 4393, - "source": 1187, - "pc": [ - 4313 - ] - }, - { - "teal": 4394, - "source": 1187, - "pc": [ - 4314 - ] - }, - { - "teal": 4395, - "source": 1187, - "pc": [ - 4315, - 4316 - ] - }, - { - "teal": 4396, - "source": 1187, - "pc": [ - 4317 - ] - }, - { - "teal": 4397, - "source": 1188, - "pc": [ - 4318 - ] - }, - { - "teal": 4398, - "source": 1188, - "pc": [ - 4319 - ] - }, - { - "teal": 4399, - "source": 1188, - "pc": [ - 4320 - ] - }, - { - "teal": 4400, - "source": 1188, - "pc": [ - 4321, - 4322, - 4323 - ] - }, - { - "teal": 4405, - "source": 1191, - "pc": [ - 4324, - 4325 - ] - }, - { - "teal": 4406, - "source": 1191, - "pc": [ - 4326 - ] - }, - { - "teal": 4407, - "source": 1187, - "pc": [ - 4327 - ] - }, - { - "teal": 4408, - "source": 1187, - "pc": [ - 4328, - 4329 - ] - }, - { - "teal": 4409, - "source": 1187, - "pc": [ - 4330 - ] - }, - { - "teal": 4410, - "source": 1187, - "pc": [ - 4331 - ] - }, - { - "teal": 4411, - "source": 1187, - "pc": [ - 4332, - 4333 - ] - }, - { - "teal": 4412, - "source": 1187, - "pc": [ - 4334 - ] - }, - { - "teal": 4413, - "source": 1191, - "pc": [ - 4335 - ] - }, - { - "teal": 4414, - "source": 1191, - "pc": [ - 4336, - 4337 - ] - }, - { - "teal": 4415, - "source": 1191, - "pc": [ - 4338 - ] - }, - { - "teal": 4418, - "source": 1191, - "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')", - "pc": [ - 4339 - ] - }, - { - "teal": 4419, - "source": 1191, - "pc": [ - 4340, - 4341 - ] - }, - { - "teal": 4424, - "source": 1193, - "pc": [ - 4342 - ] - }, - { - "teal": 4425, - "source": 1193, - "pc": [ - 4343, - 4344 - ] - }, - { - "teal": 4426, - "source": 1187, - "pc": [ - 4345 - ] - }, - { - "teal": 4427, - "source": 1187, - "pc": [ - 4346, - 4347 - ] - }, - { - "teal": 4428, - "source": 1187, - "pc": [ - 4348 - ] - }, - { - "teal": 4429, - "source": 1187, - "pc": [ - 4349 - ] - }, - { - "teal": 4430, - "source": 1187, - "pc": [ - 4350, - 4351 - ] - }, - { - "teal": 4431, - "source": 1187, - "pc": [ - 4352 - ] - }, - { - "teal": 4432, - "source": 1193, - "pc": [ - 4353, - 4354 - ] - }, - { - "teal": 4433, - "source": 1193, - "pc": [ - 4355 - ] - }, - { - "teal": 4434, - "source": 1193, - "pc": [ - 4356 - ] - }, - { - "teal": 4435, - "source": 1193, - "pc": [ - 4357, - 4358, - 4359 - ] - }, - { - "teal": 4436, - "source": 1193, - "pc": [ - 4360, - 4361 - ] - }, - { - "teal": 4437, - "source": 1193, - "pc": [ - 4362, - 4363 - ] - }, - { - "teal": 4438, - "source": 1187, - "pc": [ - 4364 - ] - }, - { - "teal": 4439, - "source": 1187, - "pc": [ - 4365, - 4366 - ] - }, - { - "teal": 4440, - "source": 1187, - "pc": [ - 4367 - ] - }, - { - "teal": 4441, - "source": 1187, - "pc": [ - 4368 - ] - }, - { - "teal": 4442, - "source": 1187, - "pc": [ - 4369, - 4370 - ] - }, - { - "teal": 4443, - "source": 1187, - "pc": [ - 4371 - ] - }, - { - "teal": 4444, - "source": 1193, - "pc": [ - 4372, - 4373 - ] - }, - { - "teal": 4445, - "source": 1193, - "pc": [ - 4374 - ] - }, - { - "teal": 4446, - "source": 1193, - "pc": [ - 4375 - ] - }, - { - "teal": 4449, - "source": 1193, - "pc": [ - 4376, - 4377, - 4378 - ] - }, - { - "teal": 4454, - "source": 1195, - "pc": [ - 4379, - 4380 - ] - }, - { - "teal": 4455, - "source": 1195, - "pc": [ - 4381, - 4382 - ] - }, - { - "teal": 4456, - "source": 1195, - "pc": [ - 4383 - ] - }, - { - "teal": 4457, - "source": 1195, - "pc": [ - 4384, - 4385 - ] - }, - { - "teal": 4458, - "source": 1195, - "pc": [ - 4386 - ] - }, - { - "teal": 4459, - "source": 1195, - "pc": [ - 4387 - ] - }, - { - "teal": 4460, - "source": 1195, - "pc": [ - 4388, - 4389 - ] - }, - { - "teal": 4461, - "source": 1195, - "pc": [ - 4390 - ] - }, - { - "teal": 4466, - "source": 1186, - "pc": [ - 4391 - ] - }, - { - "teal": 4470, - "source": 1200, - "pc": [ - 4392, - 4393, - 4394 - ] - }, - { - "teal": 4477, - "source": 1203, - "pc": [ - 4395, - 4396 - ] - }, - { - "teal": 4478, - "source": 1203, - "pc": [ - 4397, - 4398, - 4399 - ] - }, - { - "teal": 4479, - "source": 1203, - "pc": [ - 4400 - ] - }, - { - "teal": 4480, - "source": 1203, - "pc": [ - 4401 - ] - }, - { - "teal": 4481, - "source": 1203, - "pc": [ - 4402 - ] - }, - { - "teal": 4482, - "source": 1203, - "pc": [ - 4403 - ] - }, - { - "teal": 4483, - "source": 1203, - "pc": [ - 4404, - 4405, - 4406 - ] - }, - { - "teal": 4484, - "source": 1203, - "pc": [ - 4407, - 4408 - ] - }, - { - "teal": 4485, - "source": 1203, - "pc": [ - 4409, - 4410, - 4411 - ] - }, - { - "teal": 4486, - "source": 1203, - "pc": [ - 4412 - ] - }, - { - "teal": 4487, - "source": 1203, - "pc": [ - 4413, - 4414 - ] - }, - { - "teal": 4488, - "source": 1203, - "pc": [ - 4415 - ] - }, - { - "teal": 4489, - "source": 1203, - "pc": [ - 4416 - ] - }, - { - "teal": 4493, - "source": 1202, - "errorMessage": "gating type not valid", - "pc": [ - 4417 - ] - }, - { - "teal": 4500, - "source": 1207, - "pc": [ - 4418, - 4419 - ] - }, - { - "teal": 4501, - "source": 1207, - "pc": [ - 4420, - 4421, - 4422 - ] - }, - { - "teal": 4502, - "source": 1207, - "pc": [ - 4423 - ] - }, - { - "teal": 4503, - "source": 1207, - "pc": [ - 4424 - ] - }, - { - "teal": 4504, - "source": 1207, - "pc": [ - 4425 - ] - }, - { - "teal": 4505, - "source": 1207, - "pc": [ - 4426 - ] - }, - { - "teal": 4506, - "source": 1207, - "pc": [ - 4427, - 4428, - 4429 - ] - }, - { - "teal": 4507, - "source": 1207, - "pc": [ - 4430, - 4431 - ] - }, - { - "teal": 4508, - "source": 1207, - "pc": [ - 4432, - 4433, - 4434 - ] - }, - { - "teal": 4509, - "source": 1207, - "pc": [ - 4435 - ] - }, - { - "teal": 4510, - "source": 1207, - "pc": [ - 4436, - 4437 - ] - }, - { - "teal": 4511, - "source": 1207, - "pc": [ - 4438 - ] - }, - { - "teal": 4512, - "source": 1207, - "pc": [ - 4439 - ] - }, - { - "teal": 4516, - "source": 1206, - "errorMessage": "epoch length not in allowable range", - "pc": [ - 4440 - ] - }, - { - "teal": 4523, - "source": 1211, - "pc": [ - 4441, - 4442 - ] - }, - { - "teal": 4524, - "source": 1211, - "pc": [ - 4443, - 4444, - 4445 - ] - }, - { - "teal": 4525, - "source": 1211, - "pc": [ - 4446 - ] - }, - { - "teal": 4526, - "source": 1211, - "pc": [ - 4447 - ] - }, - { - "teal": 4527, - "source": 1211, - "pc": [ - 4448 - ] - }, - { - "teal": 4528, - "source": 1211, - "pc": [ - 4449 - ] - }, - { - "teal": 4529, - "source": 1211, - "pc": [ - 4450, - 4451, - 4452 - ] - }, - { - "teal": 4530, - "source": 1211, - "pc": [ - 4453, - 4454 - ] - }, - { - "teal": 4531, - "source": 1211, - "pc": [ - 4455, - 4456, - 4457 - ] - }, - { - "teal": 4532, - "source": 1211, - "pc": [ - 4458 - ] - }, - { - "teal": 4533, - "source": 1211, - "pc": [ - 4459, - 4460 - ] - }, - { - "teal": 4534, - "source": 1211, - "pc": [ - 4461 - ] - }, - { - "teal": 4535, - "source": 1211, - "pc": [ - 4462 - ] - }, - { - "teal": 4539, - "source": 1210, - "errorMessage": "commission percentage not valid", - "pc": [ - 4463 - ] - }, - { - "teal": 4544, - "source": 1214, - "pc": [ - 4464, - 4465 - ] - }, - { - "teal": 4545, - "source": 1214, - "pc": [ - 4466, - 4467, - 4468 - ] - }, - { - "teal": 4546, - "source": 1214, - "pc": [ - 4469 - ] - }, - { - "teal": 4547, - "source": 1214, - "pc": [ - 4470 - ] - }, - { - "teal": 4548, - "source": 1214, - "pc": [ - 4471 - ] - }, - { - "teal": 4549, - "source": 1214, - "pc": [ - 4472, - 4473, - 4474 - ] - }, - { - "teal": 4557, - "source": 1216, - "pc": [ - 4475, - 4476 - ] - }, - { - "teal": 4558, - "source": 1216, - "pc": [ - 4477, - 4478, - 4479 - ] - }, - { - "teal": 4559, - "source": 1216, - "pc": [ - 4480, - 4481 - ] - }, - { - "teal": 4560, - "source": 1216, - "pc": [ - 4482 - ] - }, - { - "teal": 4563, - "source": 1215, - "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0", - "pc": [ - 4483 - ] - }, - { - "teal": 4568, - "source": 1220, - "pc": [ - 4484, - 4485 - ] - }, - { - "teal": 4569, - "source": 1220, - "pc": [ - 4486, - 4487, - 4488 - ] - }, - { - "teal": 4570, - "source": 1220, - "pc": [ - 4489 - ] - }, - { - "teal": 4571, - "source": 1220, - "pc": [ - 4490, - 4491 - ] - }, - { - "teal": 4572, - "source": 1220, - "pc": [ - 4492 - ] - }, - { - "teal": 4575, - "source": 1220, - "errorMessage": "staking pool must have minimum entry of 1 algo", - "pc": [ - 4493 - ] - }, - { - "teal": 4582, - "source": 1223, - "pc": [ - 4494, - 4495 - ] - }, - { - "teal": 4583, - "source": 1223, - "pc": [ - 4496, - 4497, - 4498 - ] - }, - { - "teal": 4584, - "source": 1223, - "pc": [ - 4499 - ] - }, - { - "teal": 4585, - "source": 1223, - "pc": [ - 4500 - ] - }, - { - "teal": 4586, - "source": 1223, - "pc": [ - 4501 - ] - }, - { - "teal": 4587, - "source": 1223, - "pc": [ - 4502 - ] - }, - { - "teal": 4588, - "source": 1223, - "pc": [ - 4503, - 4504, - 4505 - ] - }, - { - "teal": 4589, - "source": 1223, - "pc": [ - 4506, - 4507 - ] - }, - { - "teal": 4590, - "source": 1223, - "pc": [ - 4508, - 4509, - 4510 - ] - }, - { - "teal": 4591, - "source": 1223, - "pc": [ - 4511 - ] - }, - { - "teal": 4592, - "source": 1223, - "pc": [ - 4512, - 4513 - ] - }, - { - "teal": 4593, - "source": 1223, - "pc": [ - 4514 - ] - }, - { - "teal": 4594, - "source": 1223, - "pc": [ - 4515 - ] - }, - { - "teal": 4598, - "source": 1222, - "errorMessage": "number of pools per node exceeds allowed number", - "pc": [ - 4516 - ] - }, - { - "teal": 4603, - "source": 1226, - "pc": [ - 4517, - 4518 - ] - }, - { - "teal": 4604, - "source": 1226, - "pc": [ - 4519, - 4520, - 4521 - ] - }, - { - "teal": 4605, - "source": 1226, - "pc": [ - 4522 - ] - }, - { - "teal": 4606, - "source": 1226, - "pc": [ - 4523 - ] - }, - { - "teal": 4607, - "source": 1226, - "pc": [ - 4524 - ] - }, - { - "teal": 4608, - "source": 1226, - "pc": [ - 4525, - 4526, - 4527 - ] - }, - { - "teal": 4613, - "source": 1227, - "pc": [ - 4528, - 4529 - ] - }, - { - "teal": 4614, - "source": 1227, - "pc": [ - 4530, - 4531, - 4532 - ] - }, - { - "teal": 4615, - "source": 1227, - "pc": [ - 4533 - ] - }, - { - "teal": 4616, - "source": 1227, - "pc": [ - 4534, - 4535 - ] - }, - { - "teal": 4617, - "source": 1227, - "pc": [ - 4536 - ] - }, - { - "teal": 4620, - "source": 1227, - "errorMessage": "sunsettingOn must be later than now if set", - "pc": [ - 4537 - ] - }, - { - "teal": 4623, - "source": 1200, - "pc": [ - 4538 - ] - }, - { - "teal": 4637, - "source": 1242, - "pc": [ - 4539, - 4540, - 4541 - ] - }, - { - "teal": 4640, - "source": 1242, - "pc": [ - 4542 - ] - }, - { - "teal": 4641, - "source": 1242, - "pc": [ - 4543, - 4544 - ] - }, - { - "teal": 4645, - "source": 1249, - "pc": [ - 4545, - 4546 - ] - }, - { - "teal": 4646, - "source": 1249, - "pc": [ - 4547, - 4548 - ] - }, - { - "teal": 4647, - "source": 1249, - "pc": [ - 4549, - 4550, - 4551 - ] - }, - { - "teal": 4648, - "source": 1249, - "pc": [ - 4552 - ] - }, - { - "teal": 4649, - "source": 1249, - "pc": [ - 4553 - ] - }, - { - "teal": 4650, - "source": 1249, - "pc": [ - 4554 - ] - }, - { - "teal": 4651, - "source": 1249, - "pc": [ - 4555, - 4556 - ] - }, - { - "teal": 4652, - "source": 1249, - "pc": [ - 4557 - ] - }, - { - "teal": 4653, - "source": 1249, - "pc": [ - 4558 - ] - }, - { - "teal": 4654, - "source": 1249, - "pc": [ - 4559 - ] - }, - { - "teal": 4655, - "source": 1249, - "pc": [ - 4560 - ] - }, - { - "teal": 4656, - "source": 1249, - "pc": [ - 4561 - ] - }, - { - "teal": 4657, - "source": 1249, - "pc": [ - 4562 - ] - }, - { - "teal": 4658, - "source": 1249, - "pc": [ - 4563, - 4564 - ] - }, - { - "teal": 4659, - "source": 1249, - "pc": [ - 4565, - 4566, - 4567 - ] - }, - { - "teal": 4660, - "source": 1249, - "pc": [ - 4568 - ] - }, - { - "teal": 4661, - "source": 1249, - "pc": [ - 4569 - ] - }, - { - "teal": 4662, - "source": 1249, - "pc": [ - 4570 - ] - }, - { - "teal": 4663, - "source": 1249, - "pc": [ - 4571, - 4572 - ] - }, - { - "teal": 4664, - "source": 1249, - "pc": [ - 4573 - ] - }, - { - "teal": 4665, - "source": 1249, - "pc": [ - 4574 - ] - }, - { - "teal": 4666, - "source": 1249, - "pc": [ - 4575, - 4576 - ] - }, - { - "teal": 4679, - "source": 1258, - "pc": [ - 4577 - ] - }, - { - "teal": 4680, - "source": 1258, - "pc": [ - 4578 - ] - }, - { - "teal": 4681, - "source": 1258, - "pc": [ - 4579, - 4580 - ] - }, - { - "teal": 4685, - "source": 1258, - "pc": [ - 4581, - 4582 - ] - }, - { - "teal": 4686, - "source": 1258, - "pc": [ - 4583, - 4584 - ] - }, - { - "teal": 4687, - "source": 1258, - "pc": [ - 4585, - 4586 - ] - }, - { - "teal": 4688, - "source": 1258, - "pc": [ - 4587 - ] - }, - { - "teal": 4689, - "source": 1258, - "pc": [ - 4588, - 4589 - ] - }, - { - "teal": 4693, - "source": 1258, - "pc": [ - 4590, - 4591 - ] - }, - { - "teal": 4694, - "source": 1258, - "pc": [ - 4592, - 4593 - ] - }, - { - "teal": 4695, - "source": 1258, - "pc": [ - 4594 - ] - }, - { - "teal": 4696, - "source": 1258, - "pc": [ - 4595, - 4596 - ] - }, - { - "teal": 4699, - "source": 1258, - "pc": [ - 4597 - ] - }, - { - "teal": 4700, - "source": 1258, - "pc": [ - 4598, - 4599 - ] - }, - { - "teal": 4701, - "source": 1253, - "pc": [ - 4600 - ] - }, - { - "teal": 4702, - "source": 1253, - "pc": [ - 4601, - 4602 - ] - }, - { - "teal": 4703, - "source": 1253, - "pc": [ - 4603, - 4604 - ] - }, - { - "teal": 4704, - "source": 1253, - "pc": [ - 4605, - 4606, - 4607, - 4608, - 4609, - 4610 - ] - }, - { - "teal": 4705, - "source": 1253, - "pc": [ - 4611, - 4612 - ] - }, - { - "teal": 4709, - "source": 1254, - "pc": [ - 4613, - 4614 - ] - }, - { - "teal": 4710, - "source": 1254, - "pc": [ - 4615, - 4616 - ] - }, - { - "teal": 4720, - "source": 1260, - "pc": [ - 4617, - 4618 - ] - }, - { - "teal": 4721, - "source": 1260, - "pc": [ - 4619, - 4620 - ] - }, - { - "teal": 4722, - "source": 1260, - "pc": [ - 4621, - 4622 - ] - }, - { - "teal": 4725, - "source": 1253, - "pc": [ - 4623 - ] - }, - { - "teal": 4726, - "source": 1253, - "pc": [ - 4624, - 4625 - ] - }, - { - "teal": 4729, - "source": 1253, - "pc": [ - 4626 - ] - }, - { - "teal": 4730, - "source": 1253, - "pc": [ - 4627, - 4628 - ] - }, - { - "teal": 4731, - "source": 1253, - "pc": [ - 4629 - ] - }, - { - "teal": 4732, - "source": 1253, - "pc": [ - 4630 - ] - }, - { - "teal": 4733, - "source": 1253, - "pc": [ - 4631, - 4632 - ] - }, - { - "teal": 4734, - "source": 1253, - "pc": [ - 4633, - 4634, - 4635 - ] - }, - { - "teal": 4735, - "source": 1253, - "pc": [ - 4636 - ] - }, - { - "teal": 4740, - "source": 1263, - "pc": [ - 4637, - 4638 - ] - }, - { - "teal": 4741, - "source": 1263, - "pc": [ - 4639, - 4640, - 4641 - ] - }, - { - "teal": 4742, - "source": 1263, - "pc": [ - 4642 - ] - }, - { - "teal": 4743, - "source": 1263, - "pc": [ - 4643, - 4644, - 4645 - ] - }, - { - "teal": 4748, - "source": 1264, - "pc": [ - 4646 - ] - }, - { - "teal": 4749, - "source": 1264, - "pc": [ - 4647, - 4648 - ] - }, - { - "teal": 4750, - "source": 1264, - "pc": [ - 4649, - 4650 - ] - }, - { - "teal": 4751, - "source": 1264, - "pc": [ - 4651 - ] - }, - { - "teal": 4752, - "source": 1264, - "pc": [ - 4652, - 4653 - ] - }, - { - "teal": 4753, - "source": 1264, - "pc": [ - 4654, - 4655 - ] - }, - { - "teal": 4754, - "source": 1264, - "pc": [ - 4656 - ] - }, - { - "teal": 4755, - "source": 1264, - "pc": [ - 4657, - 4658 - ] - }, - { - "teal": 4756, - "source": 1264, - "pc": [ - 4659, - 4660 - ] - }, - { - "teal": 4757, - "source": 1264, - "pc": [ - 4661, - 4662 - ] - }, - { - "teal": 4758, - "source": 1264, - "pc": [ - 4663, - 4664 - ] - }, - { - "teal": 4759, - "source": 1264, - "pc": [ - 4665 - ] - }, - { - "teal": 4764, - "source": 1268, - "pc": [ - 4666, - 4667 - ] - }, - { - "teal": 4765, - "source": 1268, - "pc": [ - 4668, - 4669 - ] - }, - { - "teal": 4766, - "source": 1268, - "pc": [ - 4670 - ] - }, - { - "teal": 4769, - "source": 1268, - "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')", - "pc": [ - 4671 - ] - }, - { - "teal": 4770, - "source": 1268, - "pc": [ - 4672, - 4673 - ] - }, - { - "teal": 4774, - "source": 1269, - "pc": [ - 4674, - 4675 - ] - }, - { - "teal": 4775, - "source": 1269, - "pc": [ - 4676, - 4677 - ] - }, - { - "teal": 4776, - "source": 1269, - "pc": [ - 4678 - ] - }, - { - "teal": 4779, - "source": 1269, - "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')", - "pc": [ - 4679 - ] - }, - { - "teal": 4780, - "source": 1269, - "pc": [ - 4680, - 4681 - ] - }, - { - "teal": 4784, - "source": 1270, - "pc": [ - 4682, - 4683 - ] - }, - { - "teal": 4785, - "source": 1270, - "pc": [ - 4684, - 4685 - ] - }, - { - "teal": 4786, - "source": 1270, - "pc": [ - 4686, - 4687, - 4688 - ] - }, - { - "teal": 4787, - "source": 1270, - "pc": [ - 4689 - ] - }, - { - "teal": 4788, - "source": 1270, - "pc": [ - 4690 - ] - }, - { - "teal": 4789, - "source": 1270, - "pc": [ - 4691 - ] - }, - { - "teal": 4790, - "source": 1270, - "pc": [ - 4692, - 4693 - ] - }, - { - "teal": 4791, - "source": 1270, - "pc": [ - 4694 - ] - }, - { - "teal": 4792, - "source": 1270, - "pc": [ - 4695 - ] - }, - { - "teal": 4793, - "source": 1270, - "pc": [ - 4696 - ] - }, - { - "teal": 4794, - "source": 1270, - "pc": [ - 4697 - ] - }, - { - "teal": 4795, - "source": 1270, - "pc": [ - 4698, - 4699 - ] - }, - { - "teal": 4796, - "source": 1270, - "pc": [ - 4700 - ] - }, - { - "teal": 4797, - "source": 1270, - "pc": [ - 4701, - 4702, - 4703 - ] - }, - { - "teal": 4798, - "source": 1270, - "pc": [ - 4704 - ] - }, - { - "teal": 4799, - "source": 1270, - "pc": [ - 4705, - 4706 - ] - }, - { - "teal": 4800, - "source": 1270, - "pc": [ - 4707, - 4708, - 4709 - ] - }, - { - "teal": 4801, - "source": 1270, - "pc": [ - 4710 - ] - }, - { - "teal": 4802, - "source": 1270, - "pc": [ - 4711 - ] - }, - { - "teal": 4803, - "source": 1270, - "pc": [ - 4712 - ] - }, - { - "teal": 4804, - "source": 1270, - "pc": [ - 4713, - 4714 - ] - }, - { - "teal": 4805, - "source": 1270, - "pc": [ - 4715 - ] - }, - { - "teal": 4809, - "source": 1271, - "pc": [ - 4716, - 4717 - ] - }, - { - "teal": 4810, - "source": 1271, - "pc": [ - 4718, - 4719 - ] - }, - { - "teal": 4811, - "source": 1271, - "pc": [ - 4720, - 4721, - 4722 - ] - }, - { - "teal": 4812, - "source": 1271, - "pc": [ - 4723 - ] - }, - { - "teal": 4813, - "source": 1271, - "pc": [ - 4724 - ] - }, - { - "teal": 4814, - "source": 1271, - "pc": [ - 4725 - ] - }, - { - "teal": 4815, - "source": 1271, - "pc": [ - 4726, - 4727 - ] - }, - { - "teal": 4816, - "source": 1271, - "pc": [ - 4728 - ] - }, - { - "teal": 4817, - "source": 1271, - "pc": [ - 4729 - ] - }, - { - "teal": 4818, - "source": 1271, - "pc": [ - 4730, - 4731 - ] - }, - { - "teal": 4819, - "source": 1271, - "pc": [ - 4732 - ] - }, - { - "teal": 4820, - "source": 1271, - "pc": [ - 4733, - 4734 - ] - }, - { - "teal": 4821, - "source": 1271, - "pc": [ - 4735 - ] - }, - { - "teal": 4822, - "source": 1271, - "pc": [ - 4736 - ] - }, - { - "teal": 4823, - "source": 1271, - "pc": [ - 4737, - 4738 - ] - }, - { - "teal": 4824, - "source": 1271, - "pc": [ - 4739, - 4740, - 4741 - ] - }, - { - "teal": 4825, - "source": 1271, - "pc": [ - 4742 - ] - }, - { - "teal": 4826, - "source": 1271, - "pc": [ - 4743 - ] - }, - { - "teal": 4827, - "source": 1271, - "pc": [ - 4744 - ] - }, - { - "teal": 4828, - "source": 1271, - "pc": [ - 4745, - 4746 - ] - }, - { - "teal": 4829, - "source": 1271, - "pc": [ - 4747 - ] - }, - { - "teal": 4834, - "source": 1274, - "pc": [ - 4748, - 4749 - ] - }, - { - "teal": 4835, - "source": 1274, - "pc": [ - 4750, - 4751, - 4752 - ] - }, - { - "teal": 4840, - "source": 1275, - "pc": [ - 4753, - 4754 - ] - }, - { - "teal": 4841, - "source": 1275, - "pc": [ - 4755 - ] - }, - { - "teal": 4842, - "source": 1275, - "pc": [ - 4756 - ] - }, - { - "teal": 4843, - "source": 1275, - "pc": [ - 4757 - ] - }, - { - "teal": 4844, - "source": 1275, - "pc": [ - 4758, - 4759 - ] - }, - { - "teal": 4845, - "source": 1275, - "pc": [ - 4760, - 4761, - 4762 - ] - }, - { - "teal": 4846, - "source": 1275, - "pc": [ - 4763 - ] - }, - { - "teal": 4847, - "source": 1275, - "pc": [ - 4764 - ] - }, - { - "teal": 4848, - "source": 1275, - "pc": [ - 4765 - ] - }, - { - "teal": 4849, - "source": 1275, - "pc": [ - 4766, - 4767 - ] - }, - { - "teal": 4850, - "source": 1275, - "pc": [ - 4768 - ] - }, - { - "teal": 4851, - "source": 1275, - "pc": [ - 4769 - ] - }, - { - "teal": 4852, - "source": 1275, - "pc": [ - 4770 - ] - }, - { - "teal": 4853, - "source": 1275, - "pc": [ - 4771 - ] - }, - { - "teal": 4854, - "source": 1275, - "pc": [ - 4772 - ] - }, - { - "teal": 4855, - "source": 1275, - "pc": [ - 4773 - ] - }, - { - "teal": 4856, - "source": 1275, - "pc": [ - 4774, - 4775 - ] - }, - { - "teal": 4857, - "source": 1275, - "pc": [ - 4776, - 4777, - 4778 - ] - }, - { - "teal": 4858, - "source": 1275, - "pc": [ - 4779 - ] - }, - { - "teal": 4859, - "source": 1275, - "pc": [ - 4780 - ] - }, - { - "teal": 4860, - "source": 1275, - "pc": [ - 4781 - ] - }, - { - "teal": 4861, - "source": 1275, - "pc": [ - 4782, - 4783 - ] - }, - { - "teal": 4862, - "source": 1275, - "pc": [ - 4784 - ] - }, - { - "teal": 4868, - "source": 1277, - "pc": [ - 4785, - 4786 - ] - }, - { - "teal": 4869, - "source": 1277, - "pc": [ - 4787, - 4788, - 4789 - ] - }, - { - "teal": 4874, - "source": 1278, - "pc": [ - 4790, - 4791 - ] - }, - { - "teal": 4875, - "source": 1278, - "pc": [ - 4792 - ] - }, - { - "teal": 4876, - "source": 1278, - "pc": [ - 4793 - ] - }, - { - "teal": 4877, - "source": 1278, - "pc": [ - 4794 - ] - }, - { - "teal": 4878, - "source": 1278, - "pc": [ - 4795, - 4796 - ] - }, - { - "teal": 4879, - "source": 1278, - "pc": [ - 4797 - ] - }, - { - "teal": 4880, - "source": 1278, - "pc": [ - 4798 - ] - }, - { - "teal": 4885, - "source": 1280, - "pc": [ - 4799, - 4800 - ] - }, - { - "teal": 4886, - "source": 1280, - "pc": [ - 4801 - ] - }, - { - "teal": 4887, - "source": 1280, - "pc": [ - 4802 - ] - }, - { - "teal": 4888, - "source": 1280, - "pc": [ - 4803 - ] - }, - { - "teal": 4889, - "source": 1280, - "pc": [ - 4804, - 4805 - ] - }, - { - "teal": 4890, - "source": 1280, - "pc": [ - 4806, - 4807, - 4808 - ] - }, - { - "teal": 4891, - "source": 1280, - "pc": [ - 4809 - ] - }, - { - "teal": 4892, - "source": 1280, - "pc": [ - 4810 - ] - }, - { - "teal": 4893, - "source": 1280, - "pc": [ - 4811 - ] - }, - { - "teal": 4894, - "source": 1280, - "pc": [ - 4812, - 4813 - ] - }, - { - "teal": 4895, - "source": 1280, - "pc": [ - 4814 - ] - }, - { - "teal": 4896, - "source": 1280, - "pc": [ - 4815 - ] - }, - { - "teal": 4897, - "source": 1280, - "pc": [ - 4816, - 4817 - ] - }, - { - "teal": 4898, - "source": 1280, - "pc": [ - 4818, - 4819 - ] - }, - { - "teal": 4899, - "source": 1280, - "pc": [ - 4820, - 4821 - ] - }, - { - "teal": 4900, - "source": 1280, - "pc": [ - 4822 - ] - }, - { - "teal": 4901, - "source": 1280, - "pc": [ - 4823 - ] - }, - { - "teal": 4902, - "source": 1280, - "pc": [ - 4824 - ] - }, - { - "teal": 4903, - "source": 1280, - "pc": [ - 4825 - ] - }, - { - "teal": 4904, - "source": 1280, - "pc": [ - 4826, - 4827 - ] - }, - { - "teal": 4905, - "source": 1280, - "pc": [ - 4828, - 4829, - 4830 - ] - }, - { - "teal": 4906, - "source": 1280, - "pc": [ - 4831 - ] - }, - { - "teal": 4907, - "source": 1280, - "pc": [ - 4832 - ] - }, - { - "teal": 4908, - "source": 1280, - "pc": [ - 4833 - ] - }, - { - "teal": 4909, - "source": 1280, - "pc": [ - 4834, - 4835 - ] - }, - { - "teal": 4910, - "source": 1280, - "pc": [ - 4836 - ] - }, - { - "teal": 4914, - "source": 1281, - "pc": [ - 4837, - 4838 - ] - }, - { - "teal": 4915, - "source": 1281, - "pc": [ - 4839 - ] - }, - { - "teal": 4916, - "source": 1281, - "pc": [ - 4840, - 4841 - ] - }, - { - "teal": 4917, - "source": 1281, - "pc": [ - 4842, - 4843 - ] - }, - { - "teal": 4918, - "source": 1281, - "pc": [ - 4844, - 4845 - ] - }, - { - "teal": 4919, - "source": 1281, - "pc": [ - 4846 - ] - }, - { - "teal": 4920, - "source": 1281, - "pc": [ - 4847 - ] - }, - { - "teal": 4921, - "source": 1281, - "pc": [ - 4848, - 4849 - ] - }, - { - "teal": 4922, - "source": 1281, - "pc": [ - 4850 - ] - }, - { - "teal": 4923, - "source": 1281, - "pc": [ - 4851 - ] - }, - { - "teal": 4924, - "source": 1242, - "pc": [ - 4852 - ] - }, - { - "teal": 4928, - "source": 1284, - "pc": [ - 4853, - 4854, - 4855 - ] - }, - { - "teal": 4931, - "source": 1284, - "pc": [ - 4856 - ] - }, - { - "teal": 4932, - "source": 1284, - "pc": [ - 4857, - 4858 - ] - }, - { - "teal": 4936, - "source": 1285, - "pc": [ - 4859 - ] - }, - { - "teal": 4937, - "source": 1285, - "pc": [ - 4860, - 4861 - ] - }, - { - "teal": 4938, - "source": 1285, - "pc": [ - 4862 - ] - }, - { - "teal": 4939, - "source": 1285, - "pc": [ - 4863 - ] - }, - { - "teal": 4940, - "source": 1285, - "pc": [ - 4864 - ] - }, - { - "teal": 4941, - "source": 1285, - "pc": [ - 4865 - ] - }, - { - "teal": 4942, - "source": 1285, - "pc": [ - 4866 - ] - }, - { - "teal": 4946, - "source": 1287, - "pc": [ - 4867 - ] - }, - { - "teal": 4947, - "source": 1287, - "pc": [ - 4868, - 4869 - ] - }, - { - "teal": 4948, - "source": 1287, - "pc": [ - 4870 - ] - }, - { - "teal": 4949, - "source": 1287, - "pc": [ - 4871 - ] - }, - { - "teal": 4952, - "source": 1287, - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", - "pc": [ - 4872 - ] - }, - { - "teal": 4953, - "source": 1287, - "pc": [ - 4873, - 4874 - ] - }, - { - "teal": 4957, - "source": 1288, - "pc": [ - 4875 - ] - }, - { - "teal": 4958, - "source": 1288, - "pc": [ - 4876, - 4877 - ] - }, - { - "teal": 4962, - "source": 1289, - "pc": [ - 4878 - ] - }, - { - "teal": 4963, - "source": 1289, - "pc": [ - 4879, - 4880 - ] - }, - { - "teal": 4968, - "source": 1289, - "pc": [ - 4881, - 4882 - ] - }, - { - "teal": 4969, - "source": 1289, - "pc": [ - 4883, - 4884 - ] - }, - { - "teal": 4970, - "source": 1289, - "pc": [ - 4885 - ] - }, - { - "teal": 4971, - "source": 1289, - "pc": [ - 4886, - 4887, - 4888 - ] - }, - { - "teal": 4976, - "source": 1290, - "pc": [ - 4889, - 4890 - ] - }, - { - "teal": 4977, - "source": 1290, - "pc": [ - 4891, - 4892 - ] - }, - { - "teal": 4978, - "source": 1290, - "pc": [ - 4893 - ] - }, - { - "teal": 4979, - "source": 1290, - "pc": [ - 4894 - ] - }, - { - "teal": 4980, - "source": 1290, - "pc": [ - 4895 - ] - }, - { - "teal": 4981, - "source": 1290, - "pc": [ - 4896 - ] - }, - { - "teal": 4982, - "source": 1290, - "pc": [ - 4897, - 4898 - ] - }, - { - "teal": 4983, - "source": 1290, - "pc": [ - 4899 - ] - }, - { - "teal": 4984, - "source": 1290, - "pc": [ - 4900, - 4901, - 4902 - ] - }, - { - "teal": 4989, - "source": 1292, - "pc": [ - 4903 - ] - }, - { - "teal": 4995, - "source": 1294, - "pc": [ - 4904, - 4905 - ] - }, - { - "teal": 4996, - "source": 1294, - "pc": [ - 4906 - ] - }, - { - "teal": 4997, - "source": 1294, - "pc": [ - 4907 - ] - }, - { - "teal": 4998, - "source": 1294, - "pc": [ - 4908 - ] - }, - { - "teal": 4999, - "source": 1294, - "pc": [ - 4909, - 4910, - 4911 - ] - }, - { - "teal": 5000, - "source": 1294, - "pc": [ - 4912, - 4913 - ] - }, - { - "teal": 5001, - "source": 1294, - "pc": [ - 4914, - 4915 - ] - }, - { - "teal": 5002, - "source": 1294, - "pc": [ - 4916 - ] - }, - { - "teal": 5003, - "source": 1294, - "pc": [ - 4917 - ] - }, - { - "teal": 5004, - "source": 1294, - "pc": [ - 4918 - ] - }, - { - "teal": 5005, - "source": 1294, - "pc": [ - 4919 - ] - }, - { - "teal": 5006, - "source": 1294, - "pc": [ - 4920 - ] - }, - { - "teal": 5007, - "source": 1294, - "pc": [ - 4921 - ] - }, - { - "teal": 5008, - "source": 1294, - "pc": [ - 4922 - ] - }, - { - "teal": 5009, - "source": 1294, - "pc": [ - 4923 - ] - }, - { - "teal": 5010, - "source": 1294, - "pc": [ - 4924 - ] - }, - { - "teal": 5011, - "source": 1294, - "pc": [ - 4925 - ] - }, - { - "teal": 5014, - "source": 1294, - "pc": [ - 4926, - 4927, - 4928 - ] - }, - { - "teal": 5019, - "source": 1295, - "pc": [ - 4929, - 4930 - ] - }, - { - "teal": 5020, - "source": 1295, - "pc": [ - 4931 - ] - }, - { - "teal": 5021, - "source": 1295, - "pc": [ - 4932 - ] - }, - { - "teal": 5022, - "source": 1295, - "pc": [ - 4933, - 4934 - ] - }, - { - "teal": 5029, - "source": 1289, - "pc": [ - 4935, - 4936 - ] - }, - { - "teal": 5030, - "source": 1289, - "pc": [ - 4937 - ] - }, - { - "teal": 5031, - "source": 1289, - "pc": [ - 4938 - ] - }, - { - "teal": 5032, - "source": 1289, - "pc": [ - 4939, - 4940 - ] - }, - { - "teal": 5033, - "source": 1289, - "pc": [ - 4941, - 4942, - 4943 - ] - }, - { - "teal": 5039, - "source": 1298, - "pc": [ - 4944, - 4945 - ] - }, - { - "teal": 5040, - "source": 1298, - "pc": [ - 4946 - ] - }, - { - "teal": 5041, - "source": 1298, - "pc": [ - 4947 - ] - }, - { - "teal": 5042, - "source": 1298, - "pc": [ - 4948, - 4949, - 4950 - ] - }, - { - "teal": 5046, - "source": 1299, - "errorMessage": "No empty slot available in the staker pool set", - "pc": [ - 4951 - ] - }, - { - "teal": 5051, - "source": 1301, - "pc": [ - 4952, - 4953 - ] - }, - { - "teal": 5052, - "source": 1301, - "pc": [ - 4954 - ] - }, - { - "teal": 5053, - "source": 1301, - "pc": [ - 4955 - ] - }, - { - "teal": 5054, - "source": 1301, - "pc": [ - 4956 - ] - }, - { - "teal": 5055, - "source": 1301, - "pc": [ - 4957 - ] - }, - { - "teal": 5056, - "source": 1301, - "pc": [ - 4958, - 4959 - ] - }, - { - "teal": 5057, - "source": 1301, - "pc": [ - 4960 - ] - }, - { - "teal": 5058, - "source": 1301, - "pc": [ - 4961, - 4962 - ] - }, - { - "teal": 5059, - "source": 1301, - "pc": [ - 4963 - ] - }, - { - "teal": 5060, - "source": 1301, - "pc": [ - 4964, - 4965 - ] - }, - { - "teal": 5061, - "source": 1301, - "pc": [ - 4966 - ] - }, - { - "teal": 5062, - "source": 1284, - "pc": [ - 4967 - ] - }, - { - "teal": 5073, - "source": 1312, - "pc": [ - 4968, - 4969, - 4970 - ] - }, - { - "teal": 5076, - "source": 1312, - "pc": [ - 4971 - ] - }, - { - "teal": 5077, - "source": 1312, - "pc": [ - 4972, - 4973 - ] - }, - { - "teal": 5081, - "source": 1314, - "pc": [ - 4974 - ] - }, - { - "teal": 5082, - "source": 1314, - "pc": [ - 4975, - 4976 - ] - }, - { - "teal": 5086, - "source": 1315, - "pc": [ - 4977 - ] - }, - { - "teal": 5087, - "source": 1315, - "pc": [ - 4978, - 4979 - ] - }, - { - "teal": 5091, - "source": 1316, - "pc": [ - 4980 - ] - }, - { - "teal": 5092, - "source": 1316, - "pc": [ - 4981, - 4982 - ] - }, - { - "teal": 5096, - "source": 1318, - "pc": [ - 4983 - ] - }, - { - "teal": 5097, - "source": 1318, - "pc": [ - 4984, - 4985 - ] - }, - { - "teal": 5098, - "source": 1318, - "pc": [ - 4986 - ] - }, - { - "teal": 5099, - "source": 1318, - "pc": [ - 4987 - ] - }, - { - "teal": 5102, - "source": 1318, - "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", - "pc": [ - 4988 - ] - }, - { - "teal": 5103, - "source": 1318, - "pc": [ - 4989, - 4990 - ] - }, - { - "teal": 5107, - "source": 1319, - "pc": [ - 4991 - ] - }, - { - "teal": 5108, - "source": 1319, - "pc": [ - 4992, - 4993 - ] - }, - { - "teal": 5113, - "source": 1319, - "pc": [ - 4994, - 4995 - ] - }, - { - "teal": 5114, - "source": 1319, - "pc": [ - 4996, - 4997 - ] - }, - { - "teal": 5115, - "source": 1319, - "pc": [ - 4998 - ] - }, - { - "teal": 5116, - "source": 1319, - "pc": [ - 4999, - 5000, - 5001 - ] - }, - { - "teal": 5121, - "source": 1320, - "pc": [ - 5002, - 5003 - ] - }, - { - "teal": 5122, - "source": 1320, - "pc": [ - 5004, - 5005 - ] - }, - { - "teal": 5123, - "source": 1320, - "pc": [ - 5006 - ] - }, - { - "teal": 5124, - "source": 1320, - "pc": [ - 5007 - ] - }, - { - "teal": 5125, - "source": 1320, - "pc": [ - 5008 - ] - }, - { - "teal": 5126, - "source": 1320, - "pc": [ - 5009 - ] - }, - { - "teal": 5127, - "source": 1320, - "pc": [ - 5010 - ] - }, - { - "teal": 5128, - "source": 1320, - "pc": [ - 5011 - ] - }, - { - "teal": 5129, - "source": 1320, - "pc": [ - 5012 - ] - }, - { - "teal": 5130, - "source": 1320, - "pc": [ - 5013 - ] - }, - { - "teal": 5131, - "source": 1320, - "pc": [ - 5014 - ] - }, - { - "teal": 5132, - "source": 1320, - "pc": [ - 5015, - 5016, - 5017 - ] - }, - { - "teal": 5135, - "source": 1321, - "pc": [ - 5018, - 5019, - 5020 - ] - }, - { - "teal": 5140, - "source": 1323, - "pc": [ - 5021, - 5022 - ] - }, - { - "teal": 5141, - "source": 1323, - "pc": [ - 5023 - ] - }, - { - "teal": 5142, - "source": 1323, - "pc": [ - 5024 - ] - }, - { - "teal": 5143, - "source": 1323, - "pc": [ - 5025, - 5026 - ] - }, - { - "teal": 5148, - "source": 1324, - "pc": [ - 5027, - 5028 - ] - }, - { - "teal": 5149, - "source": 1324, - "pc": [ - 5029, - 5030 - ] - }, - { - "teal": 5150, - "source": 1324, - "pc": [ - 5031 - ] - }, - { - "teal": 5151, - "source": 1324, - "pc": [ - 5032 - ] - }, - { - "teal": 5152, - "source": 1324, - "pc": [ - 5033 - ] - }, - { - "teal": 5153, - "source": 1324, - "pc": [ - 5034 - ] - }, - { - "teal": 5154, - "source": 1324, - "pc": [ - 5035 - ] - }, - { - "teal": 5155, - "source": 1324, - "pc": [ - 5036 - ] - }, - { - "teal": 5156, - "source": 1324, - "pc": [ - 5037 - ] - }, - { - "teal": 5157, - "source": 1324, - "pc": [ - 5038, - 5039 - ] - }, - { - "teal": 5158, - "source": 1324, - "pc": [ - 5040, - 5041, - 5042 - ] - }, - { - "teal": 5159, - "source": 1324, - "pc": [ - 5043 - ] - }, - { - "teal": 5160, - "source": 1324, - "pc": [ - 5044 - ] - }, - { - "teal": 5161, - "source": 1324, - "pc": [ - 5045, - 5046, - 5047 - ] - }, - { - "teal": 5167, - "source": 1325, - "pc": [ - 5048, - 5049 - ] - }, - { - "teal": 5168, - "source": 1325, - "pc": [ - 5050, - 5051 - ] - }, - { - "teal": 5169, - "source": 1325, - "pc": [ - 5052 - ] - }, - { - "teal": 5170, - "source": 1325, - "pc": [ - 5053 - ] - }, - { - "teal": 5171, - "source": 1325, - "pc": [ - 5054 - ] - }, - { - "teal": 5172, - "source": 1325, - "pc": [ - 5055 - ] - }, - { - "teal": 5173, - "source": 1325, - "pc": [ - 5056, - 5057 - ] - }, - { - "teal": 5174, - "source": 1325, - "pc": [ - 5058 - ] - }, - { - "teal": 5175, - "source": 1325, - "pc": [ - 5059, - 5060, - 5061 - ] - }, - { - "teal": 5180, - "source": 1326, - "pc": [ - 5062 - ] - }, - { - "teal": 5181, - "source": 1326, - "pc": [ - 5063, - 5064 - ] - }, - { - "teal": 5185, - "source": 1328, - "pc": [ - 5065, - 5066 - ] - }, - { - "teal": 5186, - "source": 1328, - "pc": [ - 5067 - ] - }, - { - "teal": 5187, - "source": 1328, - "pc": [ - 5068 - ] - }, - { - "teal": 5188, - "source": 1328, - "pc": [ - 5069, - 5070, - 5071, - 5072, - 5073, - 5074, - 5075, - 5076, - 5077, - 5078, - 5079, - 5080, - 5081, - 5082, - 5083, - 5084, - 5085, - 5086, - 5087, - 5088, - 5089, - 5090, - 5091, - 5092, - 5093, - 5094 - ] - }, - { - "teal": 5189, - "source": 1328, - "pc": [ - 5095 - ] - }, - { - "teal": 5190, - "source": 1328, - "pc": [ - 5096, - 5097 - ] - }, - { - "teal": 5191, - "source": 1328, - "pc": [ - 5098 - ] - }, - { - "teal": 5192, - "source": 1328, - "pc": [ - 5099, - 5100 - ] - }, - { - "teal": 5193, - "source": 1328, - "pc": [ - 5101 - ] - }, - { - "teal": 5194, - "source": 1325, - "pc": [ - 5102, - 5103, - 5104 - ] - }, - { - "teal": 5199, - "source": 1330, - "pc": [ - 5105, - 5106 - ] - }, - { - "teal": 5200, - "source": 1330, - "pc": [ - 5107 - ] - }, - { - "teal": 5201, - "source": 1330, - "pc": [ - 5108 - ] - }, - { - "teal": 5202, - "source": 1330, - "pc": [ - 5109, - 5110 - ] - }, - { - "teal": 5211, - "source": 1319, - "pc": [ - 5111, - 5112 - ] - }, - { - "teal": 5212, - "source": 1319, - "pc": [ - 5113 - ] - }, - { - "teal": 5213, - "source": 1319, - "pc": [ - 5114 - ] - }, - { - "teal": 5214, - "source": 1319, - "pc": [ - 5115, - 5116 - ] - }, - { - "teal": 5215, - "source": 1319, - "pc": [ - 5117, - 5118, - 5119 - ] - }, - { - "teal": 5221, - "source": 1334, - "pc": [ - 5120, - 5121 - ] - }, - { - "teal": 5222, - "source": 1334, - "pc": [ - 5122 - ] - }, - { - "teal": 5223, - "source": 1334, - "pc": [ - 5123, - 5124, - 5125 - ] - }, - { - "teal": 5227, - "source": 1335, - "errorMessage": "No matching slot found when told to remove a pool from the stakers set", - "pc": [ - 5126 - ] - }, - { - "teal": 5232, - "source": 1338, - "pc": [ - 5127, - 5128 - ] - }, - { - "teal": 5233, - "source": 1338, - "pc": [ - 5129 - ] - }, - { - "teal": 5234, - "source": 1338, - "pc": [ - 5130, - 5131 - ] - }, - { - "teal": 5235, - "source": 1338, - "pc": [ - 5132 - ] - }, - { - "teal": 5236, - "source": 1338, - "pc": [ - 5133 - ] - }, - { - "teal": 5237, - "source": 1338, - "pc": [ - 5134 - ] - }, - { - "teal": 5238, - "source": 1338, - "pc": [ - 5135 - ] - }, - { - "teal": 5239, - "source": 1338, - "pc": [ - 5136, - 5137 - ] - }, - { - "teal": 5240, - "source": 1338, - "pc": [ - 5138 - ] - }, - { - "teal": 5241, - "source": 1338, - "pc": [ - 5139 - ] - }, - { - "teal": 5242, - "source": 1338, - "pc": [ - 5140 - ] - }, - { - "teal": 5245, - "source": 1312, - "pc": [ - 5141, - 5142 - ] - }, - { - "teal": 5248, - "source": 1312, - "pc": [ - 5143, - 5144 - ] - }, - { - "teal": 5249, - "source": 1312, - "pc": [ - 5145 - ] - }, - { - "teal": 5253, - "source": 1341, - "pc": [ - 5146, - 5147, - 5148 - ] - }, - { - "teal": 5256, - "source": 1341, - "pc": [ - 5149 - ] - }, - { - "teal": 5257, - "source": 1341, - "pc": [ - 5150, - 5151 - ] - }, - { - "teal": 5261, - "source": 1342, - "pc": [ - 5152, - 5153 - ] - }, - { - "teal": 5262, - "source": 1342, - "pc": [ - 5154, - 5155 - ] - }, - { - "teal": 5263, - "source": 1342, - "pc": [ - 5156 - ] - }, - { - "teal": 5264, - "source": 1342, - "pc": [ - 5157, - 5158 - ] - }, - { - "teal": 5265, - "source": 1342, - "pc": [ - 5159 - ] - }, - { - "teal": 5266, - "source": 1342, - "pc": [ - 5160 - ] - }, - { - "teal": 5267, - "source": 1342, - "pc": [ - 5161, - 5162 - ] - }, - { - "teal": 5268, - "source": 1342, - "pc": [ - 5163 - ] - }, - { - "teal": 5269, - "source": 1342, - "pc": [ - 5164, - 5165 - ] - }, - { - "teal": 5273, - "source": 1343, - "pc": [ - 5166, - 5167, - 5168 - ] - }, - { - "teal": 5274, - "source": 1343, - "pc": [ - 5169 - ] - }, - { - "teal": 5275, - "source": 1343, - "pc": [ - 5170 - ] - }, - { - "teal": 5276, - "source": 1343, - "pc": [ - 5171, - 5172 - ] - }, - { - "teal": 5277, - "source": 1343, - "pc": [ - 5173 - ] - }, - { - "teal": 5278, - "source": 1343, - "pc": [ - 5174 - ] - }, - { - "teal": 5279, - "source": 1343, - "pc": [ - 5175, - 5176 - ] - }, - { - "teal": 5280, - "source": 1343, - "pc": [ - 5177 - ] - }, - { - "teal": 5281, - "source": 1343, - "pc": [ - 5178 - ] - }, - { - "teal": 5282, - "source": 1343, - "pc": [ - 5179, - 5180 - ] - }, - { - "teal": 5286, - "source": 1345, - "pc": [ - 5181, - 5182 - ] - }, - { - "teal": 5287, - "source": 1345, - "pc": [ - 5183 - ] - }, - { - "teal": 5288, - "source": 1345, - "pc": [ - 5184 - ] - }, - { - "teal": 5289, - "source": 1345, - "pc": [ - 5185 - ] - }, - { - "teal": 5290, - "source": 1345, - "pc": [ - 5186, - 5187, - 5188 - ] - }, - { - "teal": 5291, - "source": 1345, - "pc": [ - 5189, - 5190 - ] - }, - { - "teal": 5292, - "source": 1345, - "pc": [ - 5191 - ] - }, - { - "teal": 5293, - "source": 1345, - "pc": [ - 5192 - ] - }, - { - "teal": 5294, - "source": 1345, - "pc": [ - 5193 - ] - }, - { - "teal": 5298, - "source": 1345, - "errorMessage": "node number not in valid range", - "pc": [ - 5194 - ] - }, - { - "teal": 5302, - "source": 1347, - "pc": [ - 5195 - ] - }, - { - "teal": 5303, - "source": 1347, - "pc": [ - 5196, - 5197 - ] - }, - { - "teal": 5308, - "source": 1347, - "pc": [ - 5198, - 5199 - ] - }, - { - "teal": 5309, - "source": 1347, - "pc": [ - 5200, - 5201 - ] - }, - { - "teal": 5310, - "source": 1347, - "pc": [ - 5202 - ] - }, - { - "teal": 5311, - "source": 1347, - "pc": [ - 5203, - 5204, - 5205 - ] - }, - { - "teal": 5316, - "source": 1348, - "pc": [ - 5206, - 5207 - ] - }, - { - "teal": 5317, - "source": 1348, - "pc": [ - 5208 - ] - }, - { - "teal": 5318, - "source": 1348, - "pc": [ - 5209, - 5210 - ] - }, - { - "teal": 5319, - "source": 1348, - "pc": [ - 5211 - ] - }, - { - "teal": 5320, - "source": 1348, - "pc": [ - 5212 - ] - }, - { - "teal": 5321, - "source": 1348, - "pc": [ - 5213 - ] - }, - { - "teal": 5322, - "source": 1348, - "pc": [ - 5214 - ] - }, - { - "teal": 5323, - "source": 1348, - "pc": [ - 5215 - ] - }, - { - "teal": 5324, - "source": 1348, - "pc": [ - 5216 - ] - }, - { - "teal": 5325, - "source": 1348, - "pc": [ - 5217 - ] - }, - { - "teal": 5326, - "source": 1348, - "pc": [ - 5218, - 5219 - ] - }, - { - "teal": 5327, - "source": 1348, - "pc": [ - 5220 - ] - }, - { - "teal": 5328, - "source": 1348, - "pc": [ - 5221 - ] - }, - { - "teal": 5329, - "source": 1348, - "pc": [ - 5222 - ] - }, - { - "teal": 5330, - "source": 1348, - "pc": [ - 5223 - ] - }, - { - "teal": 5331, - "source": 1348, - "pc": [ - 5224 - ] - }, - { - "teal": 5332, - "source": 1348, - "pc": [ - 5225 - ] - }, - { - "teal": 5333, - "source": 1348, - "pc": [ - 5226 - ] - }, - { - "teal": 5334, - "source": 1348, - "pc": [ - 5227 - ] - }, - { - "teal": 5335, - "source": 1348, - "pc": [ - 5228, - 5229, - 5230 - ] - }, - { - "teal": 5340, - "source": 1350, - "pc": [ - 5231, - 5232 - ] - }, - { - "teal": 5341, - "source": 1350, - "pc": [ - 5233, - 5234 - ] - }, - { - "teal": 5342, - "source": 1350, - "pc": [ - 5235 - ] - }, - { - "teal": 5343, - "source": 1350, - "pc": [ - 5236 - ] - }, - { - "teal": 5344, - "source": 1350, - "pc": [ - 5237 - ] - }, - { - "teal": 5345, - "source": 1350, - "pc": [ - 5238 - ] - }, - { - "teal": 5346, - "source": 1350, - "pc": [ - 5239 - ] - }, - { - "teal": 5347, - "source": 1350, - "pc": [ - 5240 - ] - }, - { - "teal": 5348, - "source": 1350, - "pc": [ - 5241 - ] - }, - { - "teal": 5349, - "source": 1350, - "pc": [ - 5242, - 5243 - ] - }, - { - "teal": 5350, - "source": 1350, - "pc": [ - 5244 - ] - }, - { - "teal": 5351, - "source": 1350, - "pc": [ - 5245 - ] - }, - { - "teal": 5352, - "source": 1350, - "pc": [ - 5246 - ] - }, - { - "teal": 5353, - "source": 1350, - "pc": [ - 5247, - 5248 - ] - }, - { - "teal": 5354, - "source": 1350, - "pc": [ - 5249 - ] - }, - { - "teal": 5355, - "source": 1350, - "pc": [ - 5250 - ] - }, - { - "teal": 5356, - "source": 1350, - "pc": [ - 5251, - 5252 - ] - }, - { - "teal": 5357, - "source": 1350, - "pc": [ - 5253 - ] - }, - { - "teal": 5358, - "source": 1350, - "pc": [ - 5254 - ] - }, - { - "teal": 5359, - "source": 1350, - "pc": [ - 5255, - 5256 - ] - }, - { - "teal": 5360, - "source": 1350, - "pc": [ - 5257 - ] - }, - { - "teal": 5364, - "source": 1351, - "pc": [ - 5258 - ] - }, - { - "teal": 5371, - "source": 1347, - "pc": [ - 5259, - 5260 - ] - }, - { - "teal": 5372, - "source": 1347, - "pc": [ - 5261 - ] - }, - { - "teal": 5373, - "source": 1347, - "pc": [ - 5262 - ] - }, - { - "teal": 5374, - "source": 1347, - "pc": [ - 5263, - 5264 - ] - }, - { - "teal": 5375, - "source": 1347, - "pc": [ - 5265, - 5266, - 5267 - ] - }, - { - "teal": 5379, - "source": 1354, - "errorMessage": "no available space in specified node for this pool", - "pc": [ - 5268 - ] - }, - { - "teal": 5380, - "source": 1341, - "pc": [ - 5269 - ] - }, - { - "teal": 5390, - "source": 1364, - "pc": [ - 5270, - 5271, - 5272 - ] - }, - { - "teal": 5393, - "source": 1364, - "pc": [ - 5273 - ] - }, - { - "teal": 5394, - "source": 1364, - "pc": [ - 5274, - 5275 - ] - }, - { - "teal": 5398, - "source": 1365, - "pc": [ - 5276, - 5277 - ] - }, - { - "teal": 5399, - "source": 1365, - "pc": [ - 5278 - ] - }, - { - "teal": 5400, - "source": 1365, - "pc": [ - 5279 - ] - }, - { - "teal": 5401, - "source": 1365, - "pc": [ - 5280, - 5281 - ] - }, - { - "teal": 5402, - "source": 1365, - "pc": [ - 5282 - ] - }, - { - "teal": 5403, - "source": 1365, - "pc": [ - 5283 - ] - }, - { - "teal": 5404, - "source": 1365, - "pc": [ - 5284, - 5285 - ] - }, - { - "teal": 5405, - "source": 1365, - "pc": [ - 5286 - ] - }, - { - "teal": 5406, - "source": 1365, - "pc": [ - 5287 - ] - }, - { - "teal": 5407, - "source": 1365, - "pc": [ - 5288, - 5289 - ] - }, - { - "teal": 5412, - "source": 1366, - "pc": [ - 5290, - 5291 - ] - }, - { - "teal": 5413, - "source": 1366, - "pc": [ - 5292 - ] - }, - { - "teal": 5414, - "source": 1366, - "pc": [ - 5293 - ] - }, - { - "teal": 5415, - "source": 1366, - "pc": [ - 5294, - 5295, - 5296 - ] - }, - { - "teal": 5420, - "source": 1367, - "pc": [ - 5297 - ] - }, - { - "teal": 5425, - "source": 1369, - "pc": [ - 5298, - 5299 - ] - }, - { - "teal": 5426, - "source": 1369, - "pc": [ - 5300, - 5301 - ] - }, - { - "teal": 5430, - "source": 1370, - "pc": [ - 5302 - ] - }, - { - "teal": 5431, - "source": 1370, - "pc": [ - 5303, - 5304 - ] - }, - { - "teal": 5432, - "source": 1370, - "pc": [ - 5305 - ] - }, - { - "teal": 5433, - "source": 1370, - "pc": [ - 5306, - 5307 - ] - }, - { - "teal": 5434, - "source": 1370, - "pc": [ - 5308 - ] - }, - { - "teal": 5435, - "source": 1370, - "pc": [ - 5309 - ] - }, - { - "teal": 5436, - "source": 1370, - "pc": [ - 5310, - 5311 - ] - }, - { - "teal": 5437, - "source": 1370, - "pc": [ - 5312 - ] - }, - { - "teal": 5438, - "source": 1370, - "pc": [ - 5313, - 5314 - ] - }, - { - "teal": 5445, - "source": 1374, - "pc": [ - 5315, - 5316 - ] - }, - { - "teal": 5446, - "source": 1374, - "pc": [ - 5317 - ] - }, - { - "teal": 5447, - "source": 1374, - "pc": [ - 5318 - ] - }, - { - "teal": 5448, - "source": 1374, - "pc": [ - 5319 - ] - }, - { - "teal": 5449, - "source": 1374, - "pc": [ - 5320, - 5321, - 5322 - ] - }, - { - "teal": 5450, - "source": 1375, - "pc": [ - 5323, - 5324 - ] - }, - { - "teal": 5451, - "source": 1375, - "pc": [ - 5325, - 5326 - ] - }, - { - "teal": 5452, - "source": 1375, - "pc": [ - 5327 - ] - }, - { - "teal": 5453, - "source": 1374, - "pc": [ - 5328 - ] - }, - { - "teal": 5456, - "source": 1375, - "pc": [ - 5329 - ] - }, - { - "teal": 5457, - "source": 1375, - "pc": [ - 5330, - 5331, - 5332 - ] - }, - { - "teal": 5458, - "source": 1376, - "pc": [ - 5333, - 5334 - ] - }, - { - "teal": 5459, - "source": 1376, - "pc": [ - 5335, - 5336 - ] - }, - { - "teal": 5460, - "source": 1376, - "pc": [ - 5337 - ] - }, - { - "teal": 5461, - "source": 1375, - "pc": [ - 5338 - ] - }, - { - "teal": 5464, - "source": 1373, - "pc": [ - 5339, - 5340, - 5341 - ] - }, - { - "teal": 5469, - "source": 1378, - "pc": [ - 5342, - 5343 - ] - }, - { - "teal": 5470, - "source": 1378, - "pc": [ - 5344 - ] - }, - { - "teal": 5471, - "source": 1378, - "pc": [ - 5345 - ] - }, - { - "teal": 5472, - "source": 1378, - "pc": [ - 5346 - ] - }, - { - "teal": 5476, - "source": 1379, - "pc": [ - 5347, - 5348 - ] - }, - { - "teal": 5477, - "source": 1379, - "pc": [ - 5349 - ] - }, - { - "teal": 5478, - "source": 1379, - "pc": [ - 5350 - ] - }, - { - "teal": 5479, - "source": 1379, - "pc": [ - 5351, - 5352 - ] - }, - { - "teal": 5480, - "source": 1379, - "pc": [ - 5353 - ] - }, - { - "teal": 5481, - "source": 1379, - "pc": [ - 5354 - ] - }, - { - "teal": 5482, - "source": 1379, - "pc": [ - 5355, - 5356 - ] - }, - { - "teal": 5483, - "source": 1379, - "pc": [ - 5357 - ] - }, - { - "teal": 5484, - "source": 1379, - "pc": [ - 5358 - ] - }, - { - "teal": 5485, - "source": 1379, - "pc": [ - 5359, - 5360 - ] - }, - { - "teal": 5490, - "source": 1380, - "pc": [ - 5361, - 5362 - ] - }, - { - "teal": 5491, - "source": 1380, - "pc": [ - 5363 - ] - }, - { - "teal": 5492, - "source": 1380, - "pc": [ - 5364 - ] - }, - { - "teal": 5493, - "source": 1380, - "pc": [ - 5365, - 5366, - 5367 - ] - }, - { - "teal": 5498, - "source": 1381, - "pc": [ - 5368 - ] - }, - { - "teal": 5499, - "source": 1381, - "pc": [ - 5369, - 5370 - ] - }, - { - "teal": 5507, - "source": 1384, - "pc": [ - 5371, - 5372 - ] - }, - { - "teal": 5508, - "source": 1384, - "pc": [ - 5373, - 5374 - ] - }, - { - "teal": 5509, - "source": 1384, - "pc": [ - 5375, - 5376 - ] - }, - { - "teal": 5510, - "source": 1384, - "pc": [ - 5377 - ] - }, - { - "teal": 5511, - "source": 1384, - "pc": [ - 5378, - 5379 - ] - }, - { - "teal": 5512, - "source": 1384, - "pc": [ - 5380 - ] - }, - { - "teal": 5515, - "source": 1383, - "errorMessage": "must have required minimum balance of validator defined token to add stake", - "pc": [ - 5381 - ] - }, - { - "teal": 5521, - "source": 1388, - "pc": [ - 5382, - 5383 - ] - }, - { - "teal": 5522, - "source": 1388, - "pc": [ - 5384 - ] - }, - { - "teal": 5523, - "source": 1388, - "pc": [ - 5385 - ] - }, - { - "teal": 5524, - "source": 1388, - "pc": [ - 5386, - 5387, - 5388 - ] - }, - { - "teal": 5532, - "source": 1390, - "pc": [ - 5389, - 5390 - ] - }, - { - "teal": 5533, - "source": 1390, - "pc": [ - 5391, - 5392 - ] - }, - { - "teal": 5534, - "source": 1390, - "pc": [ - 5393 - ] - }, - { - "teal": 5535, - "source": 1390, - "pc": [ - 5394, - 5395 - ] - }, - { - "teal": 5536, - "source": 1390, - "pc": [ - 5396, - 5397, - 5398 - ] - }, - { - "teal": 5537, - "source": 1390, - "pc": [ - 5399 - ] - }, - { - "teal": 5540, - "source": 1389, - "errorMessage": "specified asset must be created by creator that the validator defined as a requirement to stake", - "pc": [ - 5400 - ] - }, - { - "teal": 5546, - "source": 1394, - "pc": [ - 5401, - 5402 - ] - }, - { - "teal": 5547, - "source": 1394, - "pc": [ - 5403, - 5404 - ] - }, - { - "teal": 5548, - "source": 1394, - "pc": [ - 5405 - ] - }, - { - "teal": 5549, - "source": 1394, - "pc": [ - 5406, - 5407, - 5408 - ] - }, - { - "teal": 5554, - "source": 1395, - "pc": [ - 5409, - 5410 - ] - }, - { - "teal": 5555, - "source": 1395, - "pc": [ - 5411 - ] - }, - { - "teal": 5556, - "source": 1395, - "pc": [ - 5412 - ] - }, - { - "teal": 5557, - "source": 1395, - "pc": [ - 5413 - ] - }, - { - "teal": 5561, - "source": 1396, - "pc": [ - 5414 - ] - }, - { - "teal": 5562, - "source": 1396, - "pc": [ - 5415, - 5416 - ] - }, - { - "teal": 5566, - "source": 1397, - "pc": [ - 5417, - 5418 - ] - }, - { - "teal": 5567, - "source": 1397, - "pc": [ - 5419, - 5420, - 5421 - ] - }, - { - "teal": 5568, - "source": 1397, - "pc": [ - 5422 - ] - }, - { - "teal": 5569, - "source": 1397, - "pc": [ - 5423, - 5424 - ] - }, - { - "teal": 5570, - "source": 1397, - "pc": [ - 5425, - 5426, - 5427 - ] - }, - { - "teal": 5571, - "source": 1397, - "pc": [ - 5428 - ] - }, - { - "teal": 5572, - "source": 1397, - "pc": [ - 5429, - 5430 - ] - }, - { - "teal": 5573, - "source": 1397, - "pc": [ - 5431 - ] - }, - { - "teal": 5574, - "source": 1397, - "pc": [ - 5432, - 5433 - ] - }, - { - "teal": 5580, - "source": 1398, - "pc": [ - 5434, - 5435 - ] - }, - { - "teal": 5581, - "source": 1398, - "pc": [ - 5436, - 5437 - ] - }, - { - "teal": 5582, - "source": 1398, - "pc": [ - 5438 - ] - }, - { - "teal": 5583, - "source": 1398, - "pc": [ - 5439, - 5440, - 5441 - ] - }, - { - "teal": 5588, - "source": 1399, - "pc": [ - 5442 - ] - }, - { - "teal": 5589, - "source": 1399, - "pc": [ - 5443, - 5444 - ] - }, - { - "teal": 5590, - "source": 1400, - "pc": [ - 5445, - 5446, - 5447 - ] - }, - { - "teal": 5596, - "source": 1397, - "pc": [ - 5448, - 5449 - ] - }, - { - "teal": 5597, - "source": 1397, - "pc": [ - 5450 - ] - }, - { - "teal": 5598, - "source": 1397, - "pc": [ - 5451 - ] - }, - { - "teal": 5599, - "source": 1397, - "pc": [ - 5452 - ] - }, - { - "teal": 5600, - "source": 1397, - "pc": [ - 5453, - 5454 - ] - }, - { - "teal": 5601, - "source": 1397, - "pc": [ - 5455 - ] - }, - { - "teal": 5602, - "source": 1397, - "pc": [ - 5456, - 5457, - 5458 - ] - }, - { - "teal": 5603, - "source": 1397, - "pc": [ - 5459, - 5460 - ] - }, - { - "teal": 5604, - "source": 1397, - "pc": [ - 5461, - 5462 - ] - }, - { - "teal": 5605, - "source": 1397, - "pc": [ - 5463, - 5464 - ] - }, - { - "teal": 5606, - "source": 1397, - "pc": [ - 5465 - ] - }, - { - "teal": 5607, - "source": 1397, - "pc": [ - 5466 - ] - }, - { - "teal": 5608, - "source": 1397, - "pc": [ - 5467 - ] - }, - { - "teal": 5609, - "source": 1397, - "pc": [ - 5468, - 5469 - ] - }, - { - "teal": 5610, - "source": 1397, - "pc": [ - 5470, - 5471, - 5472 - ] - }, - { - "teal": 5615, - "source": 1403, - "pc": [ - 5473, - 5474 - ] - }, - { - "teal": 5618, - "source": 1403, - "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake", - "pc": [ - 5475 - ] - }, - { - "teal": 5624, - "source": 1405, - "pc": [ - 5476, - 5477 - ] - }, - { - "teal": 5625, - "source": 1405, - "pc": [ - 5478, - 5479 - ] - }, - { - "teal": 5626, - "source": 1405, - "pc": [ - 5480 - ] - }, - { - "teal": 5627, - "source": 1405, - "pc": [ - 5481, - 5482, - 5483 - ] - }, - { - "teal": 5635, - "source": 1409, - "pc": [ - 5484, - 5485 - ] - }, - { - "teal": 5636, - "source": 1409, - "pc": [ - 5486, - 5487 - ] - }, - { - "teal": 5637, - "source": 1409, - "pc": [ - 5488 - ] - }, - { - "teal": 5638, - "source": 1409, - "pc": [ - 5489, - 5490 - ] - }, - { - "teal": 5639, - "source": 1409, - "pc": [ - 5491, - 5492, - 5493 - ] - }, - { - "teal": 5640, - "source": 1409, - "pc": [ - 5494 - ] - }, - { - "teal": 5641, - "source": 1409, - "pc": [ - 5495, - 5496, - 5497 - ] - }, - { - "teal": 5644, - "source": 1408, - "errorMessage": "specified asset must be created by creator that is one of the linked addresses in an nfd", - "pc": [ - 5498 - ] - }, - { - "teal": 5650, - "source": 1413, - "pc": [ - 5499, - 5500 - ] - }, - { - "teal": 5651, - "source": 1413, - "pc": [ - 5501, - 5502 - ] - }, - { - "teal": 5652, - "source": 1413, - "pc": [ - 5503 - ] - }, - { - "teal": 5653, - "source": 1413, - "pc": [ - 5504, - 5505, - 5506 - ] - }, - { - "teal": 5658, - "source": 1415, - "pc": [ - 5507, - 5508 - ] - }, - { - "teal": 5659, - "source": 1415, - "pc": [ - 5509, - 5510 - ] - }, - { - "teal": 5663, - "source": 1416, - "pc": [ - 5511, - 5512 - ] - }, - { - "teal": 5664, - "source": 1416, - "pc": [ - 5513, - 5514, - 5515 - ] - }, - { - "teal": 5667, - "source": 1416, - "errorMessage": "provided NFD must be valid", - "pc": [ - 5516 - ] - }, - { - "teal": 5675, - "source": 1420, - "pc": [ - 5517, - 5518 - ] - }, - { - "teal": 5676, - "source": 1420, - "pc": [ - 5519, - 5520 - ] - }, - { - "teal": 5677, - "source": 1420, - "pc": [ - 5521 - ] - }, - { - "teal": 5680, - "source": 1420, - "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')", - "pc": [ - 5522 - ] - }, - { - "teal": 5681, - "source": 1420, - "pc": [ - 5523, - 5524 - ] - }, - { - "teal": 5682, - "source": 1420, - "pc": [ - 5525 - ] - }, - { - "teal": 5683, - "source": 1420, - "pc": [ - 5526 - ] - }, - { - "teal": 5684, - "source": 1420, - "pc": [ - 5527, - 5528, - 5529 - ] - }, - { - "teal": 5685, - "source": 1421, - "pc": [ - 5530, - 5531 - ] - }, - { - "teal": 5686, - "source": 1421, - "pc": [ - 5532, - 5533 - ] - }, - { - "teal": 5687, - "source": 1421, - "pc": [ - 5534, - 5535, - 5536 - ] - }, - { - "teal": 5688, - "source": 1420, - "pc": [ - 5537 - ] - }, - { - "teal": 5692, - "source": 1419, - "errorMessage": "provided nfd for entry isn't owned or linked to the staker", - "pc": [ - 5538 - ] - }, - { - "teal": 5700, - "source": 1427, - "pc": [ - 5539, - 5540 - ] - }, - { - "teal": 5701, - "source": 1427, - "pc": [ - 5541, - 5542, - 5543, - 5544, - 5545, - 5546, - 5547, - 5548, - 5549, - 5550, - 5551, - 5552, - 5553, - 5554, - 5555 - ] - }, - { - "teal": 5702, - "source": 1427, - "pc": [ - 5556 - ] - }, - { - "teal": 5705, - "source": 1427, - "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.parentAppID')", - "pc": [ - 5557 - ] - }, - { - "teal": 5706, - "source": 1427, - "pc": [ - 5558 - ] - }, - { - "teal": 5707, - "source": 1428, - "pc": [ - 5559, - 5560 - ] - }, - { - "teal": 5708, - "source": 1428, - "pc": [ - 5561, - 5562, - 5563 - ] - }, - { - "teal": 5709, - "source": 1428, - "pc": [ - 5564 - ] - }, - { - "teal": 5710, - "source": 1427, - "pc": [ - 5565 - ] - }, - { - "teal": 5713, - "source": 1426, - "errorMessage": "specified nfd must be a segment of the nfd the validator specified as a requirement", - "pc": [ - 5566 - ] - }, - { - "teal": 5716, - "source": 1364, - "pc": [ - 5567 - ] - }, - { - "teal": 5728, - "source": 1443, - "pc": [ - 5568, - 5569, - 5570 - ] - }, - { - "teal": 5731, - "source": 1443, - "pc": [ - 5571 - ] - }, - { - "teal": 5735, - "source": 1445, - "pc": [ - 5572, - 5573 - ] - }, - { - "teal": 5736, - "source": 1445, - "pc": [ - 5574, - 5575, - 5576, - 5577, - 5578, - 5579, - 5580, - 5581 - ] - }, - { - "teal": 5737, - "source": 1445, - "pc": [ - 5582 - ] - }, - { - "teal": 5740, - "source": 1445, - "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.name')", - "pc": [ - 5583 - ] - }, - { - "teal": 5741, - "source": 1445, - "pc": [ - 5584, - 5585 - ] - }, - { - "teal": 5749, - "source": 1447, - "pc": [ - 5586 - ] - }, - { - "teal": 5750, - "source": 1447, - "pc": [ - 5587, - 5588 - ] - }, - { - "teal": 5751, - "source": 1447, - "pc": [ - 5589, - 5590 - ] - }, - { - "teal": 5755, - "source": 1448, - "pc": [ - 5591, - 5592 - ] - }, - { - "teal": 5756, - "source": 1448, - "pc": [ - 5593, - 5594 - ] - }, - { - "teal": 5760, - "source": 1449, - "pc": [ - 5595, - 5596 - ] - }, - { - "teal": 5761, - "source": 1449, - "pc": [ - 5597, - 5598 - ] - }, - { - "teal": 5762, - "source": 1449, - "pc": [ - 5599, - 5600 - ] - }, - { - "teal": 5763, - "source": 1449, - "pc": [ - 5601, - 5602 - ] - }, - { - "teal": 5764, - "source": 1449, - "pc": [ - 5603, - 5604 - ] - }, - { - "teal": 5765, - "source": 1449, - "pc": [ - 5605 - ] - }, - { - "teal": 5766, - "source": 1449, - "pc": [ - 5606, - 5607 - ] - }, - { - "teal": 5770, - "source": 1450, - "pc": [ - 5608, - 5609 - ] - }, - { - "teal": 5771, - "source": 1450, - "pc": [ - 5610, - 5611 - ] - }, - { - "teal": 5774, - "source": 1447, - "pc": [ - 5612 - ] - }, - { - "teal": 5775, - "source": 1447, - "pc": [ - 5613, - 5614 - ] - }, - { - "teal": 5778, - "source": 1447, - "pc": [ - 5615 - ] - }, - { - "teal": 5782, - "source": 1452, - "pc": [ - 5616, - 5617 - ] - }, - { - "teal": 5783, - "source": 1452, - "pc": [ - 5618 - ] - }, - { - "teal": 5784, - "source": 1452, - "pc": [ - 5619 - ] - }, - { - "teal": 5785, - "source": 1452, - "pc": [ - 5620 - ] - }, - { - "teal": 5788, - "source": 1443, - "pc": [ - 5621, - 5622 - ] - }, - { - "teal": 5789, - "source": 1443, - "pc": [ - 5623 - ] - }, - { - "teal": 5800, - "source": 1463, - "pc": [ - 5624, - 5625, - 5626 - ] - }, - { - "teal": 5803, - "source": 1463, - "pc": [ - 5627 - ] - }, - { - "teal": 5804, - "source": 1463, - "pc": [ - 5628, - 5629 - ] - }, - { - "teal": 5811, - "source": 1464, - "pc": [ - 5630 - ] - }, - { - "teal": 5812, - "source": 1464, - "pc": [ - 5631, - 5632 - ] - }, - { - "teal": 5813, - "source": 1464, - "pc": [ - 5633, - 5634 - ] - }, - { - "teal": 5817, - "source": 1465, - "pc": [ - 5635, - 5636 - ] - }, - { - "teal": 5818, - "source": 1465, - "pc": [ - 5637, - 5638 - ] - }, - { - "teal": 5822, - "source": 1466, - "pc": [ - 5639, - 5640, - 5641, - 5642, - 5643, - 5644, - 5645, - 5646, - 5647, - 5648, - 5649, - 5650, - 5651, - 5652, - 5653 - ] - }, - { - "teal": 5823, - "source": 1466, - "pc": [ - 5654, - 5655 - ] - }, - { - "teal": 5824, - "source": 1466, - "pc": [ - 5656, - 5657, - 5658, - 5659, - 5660, - 5661, - 5662, - 5663, - 5664, - 5665, - 5666, - 5667, - 5668, - 5669, - 5670 - ] - }, - { - "teal": 5825, - "source": 1466, - "pc": [ - 5671, - 5672 - ] - }, - { - "teal": 5828, - "source": 1464, - "pc": [ - 5673 - ] - }, - { - "teal": 5829, - "source": 1464, - "pc": [ - 5674, - 5675 - ] - }, - { - "teal": 5832, - "source": 1464, - "pc": [ - 5676 - ] - }, - { - "teal": 5836, - "source": 1468, - "pc": [ - 5677, - 5678 - ] - }, - { - "teal": 5837, - "source": 1468, - "pc": [ - 5679, - 5680 - ] - }, - { - "teal": 5841, - "source": 1469, - "pc": [ - 5681 - ] - }, - { - "teal": 5842, - "source": 1469, - "pc": [ - 5682, - 5683 - ] - }, - { - "teal": 5847, - "source": 1469, - "pc": [ - 5684, - 5685 - ] - }, - { - "teal": 5848, - "source": 1469, - "pc": [ - 5686, - 5687 - ] - }, - { - "teal": 5849, - "source": 1469, - "pc": [ - 5688 - ] - }, - { - "teal": 5850, - "source": 1469, - "pc": [ - 5689 - ] - }, - { - "teal": 5851, - "source": 1469, - "pc": [ - 5690, - 5691, - 5692 - ] - }, - { - "teal": 5855, - "source": 1470, - "pc": [ - 5693, - 5694 - ] - }, - { - "teal": 5856, - "source": 1470, - "pc": [ - 5695, - 5696 - ] - }, - { - "teal": 5857, - "source": 1470, - "pc": [ - 5697, - 5698 - ] - }, - { - "teal": 5858, - "source": 1470, - "pc": [ - 5699 - ] - }, - { - "teal": 5859, - "source": 1470, - "pc": [ - 5700, - 5701 - ] - }, - { - "teal": 5864, - "source": 1471, - "pc": [ - 5702, - 5703 - ] - }, - { - "teal": 5865, - "source": 1471, - "pc": [ - 5704, - 5705 - ] - }, - { - "teal": 5866, - "source": 1471, - "pc": [ - 5706 - ] - }, - { - "teal": 5867, - "source": 1471, - "pc": [ - 5707 - ] - }, - { - "teal": 5868, - "source": 1471, - "pc": [ - 5708, - 5709, - 5710 - ] - }, - { - "teal": 5869, - "source": 1471, - "pc": [ - 5711, - 5712 - ] - }, - { - "teal": 5870, - "source": 1471, - "pc": [ - 5713, - 5714 - ] - }, - { - "teal": 5871, - "source": 1471, - "pc": [ - 5715 - ] - }, - { - "teal": 5872, - "source": 1471, - "pc": [ - 5716 - ] - }, - { - "teal": 5875, - "source": 1471, - "pc": [ - 5717, - 5718, - 5719 - ] - }, - { - "teal": 5880, - "source": 1472, - "pc": [ - 5720 - ] - }, - { - "teal": 5881, - "source": 1472, - "pc": [ - 5721, - 5722, - 5723 - ] - }, - { - "teal": 5888, - "source": 1469, - "pc": [ - 5724, - 5725 - ] - }, - { - "teal": 5889, - "source": 1469, - "pc": [ - 5726, - 5727 - ] - }, - { - "teal": 5890, - "source": 1469, - "pc": [ - 5728 - ] - }, - { - "teal": 5891, - "source": 1469, - "pc": [ - 5729, - 5730 - ] - }, - { - "teal": 5892, - "source": 1469, - "pc": [ - 5731, - 5732, - 5733 - ] - }, - { - "teal": 5897, - "source": 1475, - "pc": [ - 5734 - ] - }, - { - "teal": 5901, - "source": 1463, - "pc": [ - 5735, - 5736 - ] - }, - { - "teal": 5904, - "source": 1463, - "pc": [ - 5737, - 5738 - ] - }, - { - "teal": 5905, - "source": 1463, - "pc": [ - 5739 - ] - }, - { - "teal": 5913, - "source": 1483, - "pc": [ - 5740, - 5741, - 5742 - ] - }, - { - "teal": 5916, - "source": 1483, - "pc": [ - 5743 - ] - }, - { - "teal": 5920, - "source": 1484, - "pc": [ - 5744, - 5745, - 5746 - ] - }, - { - "teal": 5921, - "source": 1484, - "pc": [ - 5747, - 5748 - ] - }, - { - "teal": 5925, - "source": 1486, - "pc": [ - 5749, - 5750 - ] - }, - { - "teal": 5926, - "source": 1486, - "pc": [ - 5751, - 5752 - ] - }, - { - "teal": 5927, - "source": 1486, - "pc": [ - 5753 - ] - }, - { - "teal": 5928, - "source": 1486, - "pc": [ - 5754 - ] - }, - { - "teal": 5929, - "source": 1486, - "pc": [ - 5755, - 5756 - ] - }, - { - "teal": 5930, - "source": 1486, - "pc": [ - 5757 - ] - }, - { - "teal": 5931, - "source": 1486, - "pc": [ - 5758 - ] - }, - { - "teal": 5932, - "source": 1486, - "pc": [ - 5759 - ] - }, - { - "teal": 5933, - "source": 1486, - "pc": [ - 5760 - ] - }, - { - "teal": 5934, - "source": 1486, - "pc": [ - 5761 - ] - }, - { - "teal": 5937, - "source": 1486, - "errorMessage": "wideRatio failed", - "pc": [ - 5762 - ] - }, - { - "teal": 5940, - "source": 1483, - "pc": [ - 5763, - 5764 - ] - }, - { - "teal": 5941, - "source": 1483, - "pc": [ - 5765 - ] - }, - { - "teal": 5948, - "source": 1493, - "pc": [ - 5766, - 5767, - 5768 - ] - }, - { - "teal": 5951, - "source": 1493, - "pc": [ - 5769 - ] - }, - { - "teal": 5955, - "source": 1494, - "pc": [ - 5770, - 5771, - 5772 - ] - }, - { - "teal": 5956, - "source": 1494, - "pc": [ - 5773, - 5774 - ] - }, - { - "teal": 5960, - "source": 1496, - "pc": [ - 5775, - 5776 - ] - }, - { - "teal": 5961, - "source": 1496, - "pc": [ - 5777, - 5778, - 5779 - ] - }, - { - "teal": 5962, - "source": 1496, - "pc": [ - 5780 - ] - }, - { - "teal": 5963, - "source": 1496, - "pc": [ - 5781 - ] - }, - { - "teal": 5964, - "source": 1496, - "pc": [ - 5782, - 5783 - ] - }, - { - "teal": 5965, - "source": 1496, - "pc": [ - 5784 - ] - }, - { - "teal": 5966, - "source": 1496, - "pc": [ - 5785 - ] - }, - { - "teal": 5967, - "source": 1496, - "pc": [ - 5786 - ] - }, - { - "teal": 5968, - "source": 1496, - "pc": [ - 5787 - ] - }, - { - "teal": 5969, - "source": 1496, - "pc": [ - 5788 - ] - }, - { - "teal": 5972, - "source": 1496, - "errorMessage": "wideRatio failed", - "pc": [ - 5789 - ] - }, - { - "teal": 5975, - "source": 1493, - "pc": [ - 5790, - 5791 - ] - }, - { - "teal": 5976, - "source": 1493, - "pc": [ - 5792 - ] - }, - { - "teal": 5982, - "source": 1502, - "pc": [ - 5793, - 5794, - 5795 - ] - }, - { - "teal": 5986, - "source": 1504, - "pc": [ - 5796, - 5797, - 5798, - 5799, - 5800, - 5801, - 5802, - 5803 - ] - }, - { - "teal": 5987, - "source": 1502, - "pc": [ - 5804 - ] - }, - { - "teal": 5991, - "source": 1507, - "pc": [ - 5805, - 5806, - 5807 - ] - }, - { - "teal": 5995, - "source": 1509, - "pc": [ - 5808, - 5809, - 5810, - 5811, - 5812, - 5813, - 5814, - 5815, - 5816 - ] - }, - { - "teal": 5996, - "source": 1507, - "pc": [ - 5817 - ] - }, - { - "teal": 6000, - "source": 1512, - "pc": [ - 5818, - 5819, - 5820 - ] - }, - { - "teal": 6003, - "source": 1512, - "pc": [ - 5821 - ] - }, - { - "teal": 6007, - "source": 1521, - "pc": [ - 5822, - 5823 - ] - }, - { - "teal": 6008, - "source": 1521, - "pc": [ - 5824, - 5825 - ] - }, - { - "teal": 6012, - "source": 1522, - "pc": [ - 5826, - 5827 - ] - }, - { - "teal": 6013, - "source": 1522, - "pc": [ - 5828, - 5829 - ] - }, - { - "teal": 6014, - "source": 1522, - "pc": [ - 5830, - 5831 - ] - }, - { - "teal": 6015, - "source": 1522, - "pc": [ - 5832 - ] - }, - { - "teal": 6016, - "source": 1522, - "pc": [ - 5833 - ] - }, - { - "teal": 6017, - "source": 1522, - "pc": [ - 5834, - 5835 - ] - }, - { - "teal": 6021, - "source": 1523, - "pc": [ - 5836, - 5837 - ] - }, - { - "teal": 6022, - "source": 1523, - "pc": [ - 5838, - 5839 - ] - }, - { - "teal": 6023, - "source": 1523, - "pc": [ - 5840, - 5841 - ] - }, - { - "teal": 6024, - "source": 1523, - "pc": [ - 5842 - ] - }, - { - "teal": 6025, - "source": 1523, - "pc": [ - 5843 - ] - }, - { - "teal": 6026, - "source": 1523, - "pc": [ - 5844, - 5845 - ] - }, - { - "teal": 6030, - "source": 1524, - "pc": [ - 5846, - 5847 - ] - }, - { - "teal": 6031, - "source": 1524, - "pc": [ - 5848, - 5849 - ] - }, - { - "teal": 6032, - "source": 1524, - "pc": [ - 5850, - 5851 - ] - }, - { - "teal": 6033, - "source": 1524, - "pc": [ - 5852 - ] - }, - { - "teal": 6034, - "source": 1524, - "pc": [ - 5853 - ] - }, - { - "teal": 6035, - "source": 1524, - "pc": [ - 5854, - 5855 - ] - }, - { - "teal": 6039, - "source": 1525, - "pc": [ - 5856, - 5857 - ] - }, - { - "teal": 6040, - "source": 1525, - "pc": [ - 5858, - 5859 - ] - }, - { - "teal": 6041, - "source": 1525, - "pc": [ - 5860, - 5861 - ] - }, - { - "teal": 6042, - "source": 1525, - "pc": [ - 5862 - ] - }, - { - "teal": 6043, - "source": 1525, - "pc": [ - 5863 - ] - }, - { - "teal": 6044, - "source": 1525, - "pc": [ - 5864, - 5865 - ] - }, - { - "teal": 6048, - "source": 1526, - "pc": [ - 5866, - 5867 - ] - }, - { - "teal": 6049, - "source": 1526, - "pc": [ - 5868, - 5869 - ] - }, - { - "teal": 6050, - "source": 1526, - "pc": [ - 5870, - 5871 - ] - }, - { - "teal": 6051, - "source": 1526, - "pc": [ - 5872 - ] - }, - { - "teal": 6052, - "source": 1526, - "pc": [ - 5873 - ] - }, - { - "teal": 6053, - "source": 1526, - "pc": [ - 5874, - 5875 - ] - }, - { - "teal": 6057, - "source": 1527, - "pc": [ - 5876, - 5877 - ] - }, - { - "teal": 6058, - "source": 1527, - "pc": [ - 5878, - 5879 - ] - }, - { - "teal": 6059, - "source": 1527, - "pc": [ - 5880, - 5881 - ] - }, - { - "teal": 6060, - "source": 1527, - "pc": [ - 5882 - ] - }, - { - "teal": 6061, - "source": 1527, - "pc": [ - 5883 - ] - }, - { - "teal": 6062, - "source": 1527, - "pc": [ - 5884, - 5885 - ] - }, - { - "teal": 6066, - "source": 1528, - "pc": [ - 5886, - 5887 - ] - }, - { - "teal": 6067, - "source": 1528, - "pc": [ - 5888, - 5889 - ] - }, - { - "teal": 6068, - "source": 1528, - "pc": [ - 5890, - 5891 - ] - }, - { - "teal": 6069, - "source": 1528, - "pc": [ - 5892 - ] - }, - { - "teal": 6070, - "source": 1528, - "pc": [ - 5893 - ] - }, - { - "teal": 6071, - "source": 1528, - "pc": [ - 5894, - 5895 - ] - }, - { - "teal": 6075, - "source": 1529, - "pc": [ - 5896, - 5897 - ] - }, - { - "teal": 6078, - "source": 1512, - "pc": [ - 5898, - 5899 - ] - }, - { - "teal": 6079, - "source": 1512, - "pc": [ - 5900 - ] - }, - { - "teal": 6083, - "source": 1532, - "pc": [ - 5901, - 5902, - 5903 - ] - }, - { - "teal": 6087, - "source": 1536, - "pc": [ - 5904, - 5905, - 5906 - ] - }, - { - "teal": 6088, - "source": 1536, - "pc": [ - 5907, - 5908 - ] - }, - { - "teal": 6089, - "source": 1536, - "pc": [ - 5909, - 5910, - 5911 - ] - }, - { - "teal": 6090, - "source": 1536, - "pc": [ - 5912 - ] - }, - { - "teal": 6091, - "source": 1536, - "pc": [ - 5913 - ] - }, - { - "teal": 6092, - "source": 1532, - "pc": [ - 5914 - ] - }, - { - "teal": 6095, - "source": 168, - "pc": [ - 5915, - 5916, - 5917, - 5918, - 5919, - 5920 - ] - }, - { - "teal": 6096, - "source": 168, - "pc": [ - 5921, - 5922, - 5923 - ] - }, - { - "teal": 6097, - "source": 168, - "pc": [ - 5924, - 5925, - 5926, - 5927 - ] - }, - { - "teal": 6100, - "source": 168, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 5928 - ] - }, - { - "teal": 6103, - "source": 168, - "pc": [ - 5929, - 5930, - 5931, - 5932, - 5933, - 5934 - ] - }, - { - "teal": 6104, - "source": 168, - "pc": [ - 5935, - 5936, - 5937, - 5938, - 5939, - 5940 - ] - }, - { - "teal": 6105, - "source": 168, - "pc": [ - 5941, - 5942, - 5943, - 5944, - 5945, - 5946 - ] - }, - { - "teal": 6106, - "source": 168, - "pc": [ - 5947, - 5948, - 5949, - 5950, - 5951, - 5952 - ] - }, - { - "teal": 6107, - "source": 168, - "pc": [ - 5953, - 5954, - 5955, - 5956, - 5957, - 5958 - ] - }, - { - "teal": 6108, - "source": 168, - "pc": [ - 5959, - 5960, - 5961, - 5962, - 5963, - 5964 - ] - }, - { - "teal": 6109, - "source": 168, - "pc": [ - 5965, - 5966, - 5967, - 5968, - 5969, - 5970 - ] - }, - { - "teal": 6110, - "source": 168, - "pc": [ - 5971, - 5972, - 5973, - 5974, - 5975, - 5976 - ] - }, - { - "teal": 6111, - "source": 168, - "pc": [ - 5977, - 5978, - 5979, - 5980, - 5981, - 5982 - ] - }, - { - "teal": 6112, - "source": 168, - "pc": [ - 5983, - 5984, - 5985, - 5986, - 5987, - 5988 - ] - }, - { - "teal": 6113, - "source": 168, - "pc": [ - 5989, - 5990, - 5991, - 5992, - 5993, - 5994 - ] - }, - { - "teal": 6114, - "source": 168, - "pc": [ - 5995, - 5996, - 5997, - 5998, - 5999, - 6000 - ] - }, - { - "teal": 6115, - "source": 168, - "pc": [ - 6001, - 6002, - 6003, - 6004, - 6005, - 6006 - ] - }, - { - "teal": 6116, - "source": 168, - "pc": [ - 6007, - 6008, - 6009, - 6010, - 6011, - 6012 - ] - }, - { - "teal": 6117, - "source": 168, - "pc": [ - 6013, - 6014, - 6015, - 6016, - 6017, - 6018 - ] - }, - { - "teal": 6118, - "source": 168, - "pc": [ - 6019, - 6020, - 6021, - 6022, - 6023, - 6024 - ] - }, - { - "teal": 6119, - "source": 168, - "pc": [ - 6025, - 6026, - 6027, - 6028, - 6029, - 6030 - ] - }, - { - "teal": 6120, - "source": 168, - "pc": [ - 6031, - 6032, - 6033, - 6034, - 6035, - 6036 - ] - }, - { - "teal": 6121, - "source": 168, - "pc": [ - 6037, - 6038, - 6039, - 6040, - 6041, - 6042 - ] - }, - { - "teal": 6122, - "source": 168, - "pc": [ - 6043, - 6044, - 6045, - 6046, - 6047, - 6048 - ] - }, - { - "teal": 6123, - "source": 168, - "pc": [ - 6049, - 6050, - 6051, - 6052, - 6053, - 6054 - ] - }, - { - "teal": 6124, - "source": 168, - "pc": [ - 6055, - 6056, - 6057, - 6058, - 6059, - 6060 - ] - }, - { - "teal": 6125, - "source": 168, - "pc": [ - 6061, - 6062, - 6063, - 6064, - 6065, - 6066 - ] - }, - { - "teal": 6126, - "source": 168, - "pc": [ - 6067, - 6068, - 6069, - 6070, - 6071, - 6072 - ] - }, - { - "teal": 6127, - "source": 168, - "pc": [ - 6073, - 6074, - 6075, - 6076, - 6077, - 6078 - ] - }, - { - "teal": 6128, - "source": 168, - "pc": [ - 6079, - 6080, - 6081, - 6082, - 6083, - 6084 - ] - }, - { - "teal": 6129, - "source": 168, - "pc": [ - 6085, - 6086, - 6087, - 6088, - 6089, - 6090 - ] - }, - { - "teal": 6130, - "source": 168, - "pc": [ - 6091, - 6092, - 6093, - 6094, - 6095, - 6096 - ] - }, - { - "teal": 6131, - "source": 168, - "pc": [ - 6097, - 6098, - 6099, - 6100, - 6101, - 6102 - ] - }, - { - "teal": 6132, - "source": 168, - "pc": [ - 6103, - 6104, - 6105, - 6106, - 6107, - 6108 - ] - }, - { - "teal": 6133, - "source": 168, - "pc": [ - 6109, - 6110, - 6111, - 6112, - 6113, - 6114 - ] - }, - { - "teal": 6134, - "source": 168, - "pc": [ - 6115, - 6116, - 6117, - 6118, - 6119, - 6120 - ] - }, - { - "teal": 6135, - "source": 168, - "pc": [ - 6121, - 6122, - 6123, - 6124, - 6125, - 6126 - ] - }, - { - "teal": 6136, - "source": 168, - "pc": [ - 6127, - 6128, - 6129 - ] - }, - { - "teal": 6137, - "source": 168, - "pc": [ - 6130, - 6131, - 6132, - 6133, - 6134, - 6135, - 6136, - 6137, - 6138, - 6139, - 6140, - 6141, - 6142, - 6143, - 6144, - 6145, - 6146, - 6147, - 6148, - 6149, - 6150, - 6151, - 6152, - 6153, - 6154, - 6155, - 6156, - 6157, - 6158, - 6159, - 6160, - 6161, - 6162, - 6163, - 6164, - 6165, - 6166, - 6167, - 6168, - 6169, - 6170, - 6171, - 6172, - 6173, - 6174, - 6175, - 6176, - 6177, - 6178, - 6179, - 6180, - 6181, - 6182, - 6183, - 6184, - 6185, - 6186, - 6187, - 6188, - 6189, - 6190, - 6191, - 6192, - 6193, - 6194, - 6195, - 6196, - 6197 - ] - }, - { - "teal": 6140, - "source": 168, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 6198 - ] - }, - { - "teal": 6143, - "source": 168, - "pc": [ - 6199, - 6200, - 6201, - 6202, - 6203, - 6204 - ] - }, - { - "teal": 6144, - "source": 168, - "pc": [ - 6205, - 6206, - 6207 - ] - }, - { - "teal": 6145, - "source": 168, - "pc": [ - 6208, - 6209, - 6210, - 6211 - ] - }, - { - "teal": 6148, - "source": 168, - "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", - "pc": [ - 6212 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 37 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 827 + ], + "errorMessage": "pool id must be between 1 and number of pools for this validator" + }, + { + "pc": [ + 871 + ], + "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)" + }, + { + "pc": [ + 1032 + ], + "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address" + }, + { + "pc": [ + 1079 + ], + "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address" + }, + { + "pc": [ + 1139 + ], + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value" + }, + { + "pc": [ + 1275 + ], + "errorMessage": "the specified validator id doesn't exist" + }, + { + "pc": [ + 1328 + ], + "errorMessage": "argument 0 (config) for addValidator must be a (uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)" + }, + { + "pc": [ + 1346 + ], + "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction" + }, + { + "pc": [ + 1392 + ], + "errorMessage": "sender must be owner to add new validator" + }, + { + "pc": [ + 1405 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}" + }, + { + "pc": [ + 1416 + ], + "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators" + }, + { + "pc": [ + 1553 + ], + "errorMessage": "provided NFD isn't valid" + }, + { + "pc": [ + 1574 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')" + }, + { + "pc": [ + 1576 + ], + "errorMessage": "If specifying NFD, account adding validator must be owner" + }, + { + "pc": [ + 1612 + ], + "errorMessage": "provided NFD App id for gating must be valid NFD" + }, + { + "pc": [ + 1626 + ], + "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address" + }, + { + "pc": [ + 1657 + ], + "errorMessage": "can only be called by validator owner" + }, + { + "pc": [ + 1711 + ], + "errorMessage": "can only be called by validator owner" + }, + { + "pc": [ + 1785 + ], + "errorMessage": "can only be called by validator owner" + }, + { + "pc": [ + 1850 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')" + }, + { + "pc": [ + 1852 + ], + "errorMessage": "If specifying NFD, account adding validator must be owner" + }, + { + "pc": [ + 1877 + ], + "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address" + }, + { + "pc": [ + 1908 + ], + "errorMessage": "can only be called by validator owner" + }, + { + "pc": [ + 1947 + ], + "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]" + }, + { + "pc": [ + 1956 + ], + "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address" + }, + { + "pc": [ + 1965 + ], + "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8" + }, + { + "pc": [ + 1997 + ], + "errorMessage": "can only be called by validator owner" + }, + { + "pc": [ + 2102 + ], + "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction" + }, + { + "pc": [ + 2156 + ], + "errorMessage": "can only be called by owner or manager of validator" + }, + { + "pc": [ + 2169 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}" + }, + { + "pc": [ + 2177 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 2188 + ], + "errorMessage": "specified validator id isn't valid" + }, + { + "pc": [ + 2215 + ], + "errorMessage": "already at max pool size" + }, + { + "pc": [ + 2325 + ], + "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size" + }, + { + "pc": [ + 2499 + ], + "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction" + }, + { + "pc": [ + 2525 + ], + "errorMessage": "specified validator id isn't valid" + }, + { + "pc": [ + 2567 + ], + "errorMessage": "can't stake with a validator that is past its sunsetting time" + }, + { + "pc": [ + 2579 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}" + }, + { + "pc": [ + 2587 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 2608 + ], + "errorMessage": "total staked for all of a validators pools may not exceed hard cap" + }, + { + "pc": [ + 2721 + ], + "errorMessage": "No pool available with free stake. Validator needs to add another pool" + }, + { + "pc": [ + 2894 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(pool1AppID).globalState('lastPayout')" + }, + { + "pc": [ + 3084 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 3164 + ], + "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)" + }, + { + "pc": [ + 3370 + ], + "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool" + }, + { + "pc": [ + 3390 + ], + "errorMessage": "argument 3 (staker) for stakeRemoved must be a address" + }, + { + "pc": [ + 3399 + ], + "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)" + }, + { + "pc": [ + 3466 + ], + "errorMessage": "should only be called if algo or reward was removed" + }, + { + "pc": [ + 3636 + ], + "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!" + }, + { + "pc": [ + 3660 + ], + "errorMessage": "reward being removed must be covered by hold back amount" + }, + { + "pc": [ + 4002 + ], + "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address" + }, + { + "pc": [ + 4060 + ], + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value" + }, + { + "pc": [ + 4270 + ], + "errorMessage": "must stake at least the minimum for this pool" + }, + { + "pc": [ + 4503 + ], + "errorMessage": "can only be called by owner or manager of validator" + }, + { + "pc": [ + 4537 + ], + "errorMessage": "node number out of allowable range" + }, + { + "pc": [ + 4599 + ], + "errorMessage": "can't move to same node" + }, + { + "pc": [ + 4690 + ], + "errorMessage": "couldn't find pool app id in nodes to move" + }, + { + "pc": [ + 4706 + ], + "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address" + }, + { + "pc": [ + 4744 + ], + "errorMessage": "can only be called by validator owner" + }, + { + "pc": [ + 4786 + ], + "errorMessage": "this validator doesn't have a reward token defined" + }, + { + "pc": [ + 4869 + ], + "errorMessage": "balance of remaining reward tokens should match the held back amount" + }, + { + "pc": [ + 4894 + ], + "errorMessage": "the specified validator id isn't valid" + }, + { + "pc": [ + 4904 + ], + "errorMessage": "pool id not in valid range" + }, + { + "pc": [ + 4946 + ], + "errorMessage": "pool id outside of range of pools created for this validator" + }, + { + "pc": [ + 4990 + ], + "errorMessage": "The passed in app id doesn't match the passed in ids" + }, + { + "pc": [ + 5030 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('validatorId')" + }, + { + "pc": [ + 5054 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('poolId')" + }, + { + "pc": [ + 5121 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')" + }, + { + "pc": [ + 5215 + ], + "errorMessage": "gating type not valid" + }, + { + "pc": [ + 5241 + ], + "errorMessage": "epoch length not in allowable range" + }, + { + "pc": [ + 5267 + ], + "errorMessage": "commission percentage not valid" + }, + { + "pc": [ + 5288 + ], + "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0" + }, + { + "pc": [ + 5300 + ], + "errorMessage": "staking pool must have minimum entry of 1 algo" + }, + { + "pc": [ + 5324 + ], + "errorMessage": "number of pools per node exceeds allowed number" + }, + { + "pc": [ + 5346 + ], + "errorMessage": "sunsettingOn must be later than now if set" + }, + { + "pc": [ + 5505 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')" + }, + { + "pc": [ + 5519 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')" + }, + { + "pc": [ + 5778 + ], + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value" + }, + { + "pc": [ + 5869 + ], + "errorMessage": "No empty slot available in the staker pool set" + }, + { + "pc": [ + 5920 + ], + "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value" + }, + { + "pc": [ + 6077 + ], + "errorMessage": "No matching slot found when told to remove a pool from the stakers set" + }, + { + "pc": [ + 6160 + ], + "errorMessage": "node number not in valid range" + }, + { + "pc": [ + 6250 + ], + "errorMessage": "no available space in specified node for this pool" + }, + { + "pc": [ + 6380 + ], + "errorMessage": "must have required minimum balance of validator defined token to add stake" + }, + { + "pc": [ + 6400 + ], + "errorMessage": "specified asset must be created by creator that the validator defined as a requirement to stake" + }, + { + "pc": [ + 6481 + ], + "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake" + }, + { + "pc": [ + 6504 + ], + "errorMessage": "specified asset must be created by creator that is one of the linked addresses in an nfd" + }, + { + "pc": [ + 6522 + ], + "errorMessage": "provided NFD must be valid" + }, + { + "pc": [ + 6537 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')" + }, + { + "pc": [ + 6553 + ], + "errorMessage": "provided nfd for entry isn't owned or linked to the staker" + }, + { + "pc": [ + 6572 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.parentAppID')" + }, + { + "pc": [ + 6581 + ], + "errorMessage": "specified nfd must be a segment of the nfd the validator specified as a requirement" + }, + { + "pc": [ + 6599 + ], + "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.name')" + }, + { + "pc": [ + 6805 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 6835 + ], + "errorMessage": "wideRatio failed" + }, + { + "pc": [ + 6991 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 7261 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + }, + { + "pc": [ + 7275 + ], + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication" + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9uZmRSZWdpc3RyeUFwcElkCmJ0b2kKc3RvcmUgMjAwCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjAyCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21BZGRyZXNzKCdMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRJykpCgl0eG4gU2VuZGVyCglhZGRyIExaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjA0CgkvLyB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmRlbGV0ZSgpCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfZGVsCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGUgMHg2OTZlNjk3NCAvLyAiaW5pdCIKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKY3JlYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjA5CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSBmYWxzZQoJYnl0ZSAweDY5NmU2OTc0IC8vICJpbml0IgoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTAKCS8vIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSA9IDAKCWJ5dGUgMHg2ZTc1NmQ1NiAvLyAibnVtViIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTEKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSA9IDAKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTIKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlID0gMAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJaW50IDAKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0OgoJLy8gYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluaXRTdGFraW5nQ29udHJhY3QKCWludCAxCglyZXR1cm4KCi8vIGluaXRTdGFraW5nQ29udHJhY3QoYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0KTogdm9pZAppbml0U3Rha2luZ0NvbnRyYWN0OgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIxNwoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5jcmVhdGUoYXBwcm92YWxQcm9ncmFtU2l6ZSkKCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWZyYW1lX2RpZyAtMSAvLyBhcHByb3ZhbFByb2dyYW1TaXplOiB1aW50NjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YSh1aW50NjQsYnl0ZVtdKXZvaWQKKmFiaV9yb3V0ZV9sb2FkU3Rha2luZ0NvbnRyYWN0RGF0YToKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkCgljYWxsc3ViIGxvYWRTdGFraW5nQ29udHJhY3REYXRhCglpbnQgMQoJcmV0dXJuCgovLyBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YShvZmZzZXQ6IHVpbnQ2NCwgZGF0YTogYnl0ZXMpOiB2b2lkCmxvYWRTdGFraW5nQ29udHJhY3REYXRhOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMQoJLy8gYXNzZXJ0KCF0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUpCglieXRlIDB4Njk2ZTY5NzQgLy8gImluaXQiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCWdldGJpdAoJIQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIyMgoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5yZXBsYWNlKG9mZnNldCwgZGF0YSkKCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpdm9pZAoqYWJpX3JvdXRlX2ZpbmFsaXplU3Rha2luZ0NvbnRyYWN0OgoJLy8gZXhlY3V0ZSBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdCgpdm9pZAoJY2FsbHN1YiBmaW5hbGl6ZVN0YWtpbmdDb250cmFjdAoJaW50IDEKCXJldHVybgoKLy8gZmluYWxpemVTdGFraW5nQ29udHJhY3QoKTogdm9pZApmaW5hbGl6ZVN0YWtpbmdDb250cmFjdDoKCXByb3RvIDAgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMjYKCS8vIHRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSA9IHRydWUKCWJ5dGUgMHg2OTZlNjk3NCAvLyAiaW5pdCIKCWludCAxCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2FzKCl2b2lkCiphYmlfcm91dGVfZ2FzOgoJLy8gZXhlY3V0ZSBnYXMoKXZvaWQKCWNhbGxzdWIgZ2FzCglpbnQgMQoJcmV0dXJuCgovLyBnYXMoKTogdm9pZAovLwovLyBnYXMgaXMgYSBkdW1teSBuby1vcCBjYWxsIHRoYXQgY2FuIGJlIHVzZWQgdG8gcG9vbC11cCByZXNvdXJjZSByZWZlcmVuY2VzIGFuZCBvcGNvZGUgY29zdApnYXM6Cglwcm90byAwIDAKCXJldHN1YgoKLy8gZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9nZXRNYnJBbW91bnRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE1ickFtb3VudHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldE1ickFtb3VudHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRNYnJBbW91bnRzKCk6IE1ickFtb3VudHMKLy8KLy8gUmV0dXJucyB0aGUgTUJSIGFtb3VudHMgbmVlZGVkIGZvciB2YXJpb3VzIGFjdGlvbnM6Ci8vIFsKLy8gYWRkVmFsaWRhdG9yTWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGFkZCBhIG5ldyB2YWxpZGF0b3IgLSBwYWlkIHRvIHZhbGlkYXRvciBjb250cmFjdAovLyBhZGRQb29sTWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGFkZCBhIG5ldyBwb29sIC0gcGFpZCB0byB2YWxpZGF0b3IKLy8gcG9vbEluaXRNYnI6IHVpbnQ2NCAtIG1iciBuZWVkZWQgdG8gaW5pdFN0b3JhZ2UoKSBvZiBwb29sIC0gcGFpZCB0byBwb29sIGl0c2VsZgovLyBhZGRTdGFrZXJNYnI6IHVpbnQ2NCAtIG1iciBzdGFrZXIgbmVlZHMgdG8gYWRkIHRvIGZpcnN0IHN0YWtpbmcgcGF5bWVudCAoc3RheXMgdy8gdmFsaWRhdG9yKQovLyBdCmdldE1ickFtb3VudHM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjQ2CgkvLyByZXR1cm4gewoJLy8gICAgICAgYWRkVmFsaWRhdG9yTWJyOiB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDEgLyogdiBwcmVmaXggKi8gKyBsZW48VmFsaWRhdG9ySWRUeXBlPigpICsgbGVuPFZhbGlkYXRvckluZm8+KCkpLAoJLy8gICAgICAgYWRkUG9vbE1icjogdGhpcy5taW5CYWxhbmNlRm9yQWNjb3VudCgKCS8vICAgICAgICAgMSwKCS8vICAgICAgICAgLy8gd2UgY291bGQgY2FsY3VsYXRlIHRoaXMgZGlyZWN0bHkgYnkgcmVmZXJlbmNpbmcgdGhlIHNpemUgb2Ygc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0gYnV0IGl0IHdvdWxkCgkvLyAgICAgICAgIC8vIG1lYW4gb3VyIGNhbGxlcnMgd291bGQgaGF2ZSB0byByZWZlcmVuY2UgdGhlIGJveCBBTkQgYnV5IHVwIGkvbyAtIHNvIGp1c3QgZ28gbWF4IG9uIGV4dHJhIHBhZ2VzCgkvLyAgICAgICAgIDMsCgkvLyAgICAgICAgIDAsCgkvLyAgICAgICAgIDAsCgkvLyAgICAgICAgIDAsCgkvLyAgICAgICAgIFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICAgICAgU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCS8vICAgICAgICksCgkvLyAgICAgICBwb29sSW5pdE1icjoKCS8vICAgICAgICAgQUxHT1JBTkRfQUNDT1VOVF9NSU5fQkFMQU5DRSArCgkvLyAgICAgICAgIHRoaXMuY29zdEZvckJveFN0b3JhZ2UoNyAvKiAnc3Rha2VycycgbmFtZSAqLyArIGxlbjxTdGFrZWRJbmZvPigpICogTUFYX1NUQUtFUlNfUEVSX1BPT0wpLAoJLy8gICAgICAgYWRkU3Rha2VyTWJyOgoJLy8gICAgICAgICAvLyBob3cgbXVjaCB0byBjaGFyZ2UgZm9yIGZpcnN0IHRpbWUgYSBzdGFrZXIgYWRkcyBzdGFrZSAtIHNpbmNlIHdlIGFkZCBhIHRyYWNraW5nIGJveCBwZXIgc3Rha2VyCgkvLyAgICAgICAgIHRoaXMuY29zdEZvckJveFN0b3JhZ2UoMyAvKiAnc3BzJyBwcmVmaXggKi8gKyBsZW48QWRkcmVzcz4oKSArIGxlbjxWYWxpZGF0b3JQb29sS2V5PigpICogTUFYX1BPT0xTX1BFUl9TVEFLRVIpLCAvLyBzaXplIG9mIGtleSArIGFsbCB2YWx1ZXMKCS8vICAgICB9OwoJaW50IDExMDEKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCWl0b2IKCWludCAzCglpbnQgMTEKCWludCAwCglkdXBuIDIKCWludCAzCglpbnQgMQoJY2FsbHN1YiBtaW5CYWxhbmNlRm9yQWNjb3VudAoJaXRvYgoJY29uY2F0CglpbnQgMTAwMDAwCglpbnQgMTI4MDcKCWNhbGxzdWIgY29zdEZvckJveFN0b3JhZ2UKCSsKCWl0b2IKCWNvbmNhdAoJaW50IDE3OQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJY29uY2F0CglyZXRzdWIKCi8vIGdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFByb3RvY29sQ29uc3RyYWludHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGdldFByb3RvY29sQ29uc3RyYWludHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCk6IENvbnN0cmFpbnRzCi8vCi8vIFJldHVybnMgdGhlIHByb3RvY29sIGNvbnN0cmFpbnRzIHNvIHRoYXQgVUlzIGNhbiBsaW1pdCB3aGF0IHVzZXJzIHNwZWNpZnkgZm9yIHZhbGlkYXRvciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCmdldFByb3RvY29sQ29uc3RyYWludHM6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjcyCgkvLyByZXR1cm4gewoJLy8gICAgICAgZXBvY2hQYXlvdXRSb3VuZHNNaW46IE1JTl9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICBlcG9jaFBheW91dFJvdW5kc01heDogTUFYX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgIG1pblBjdFRvVmFsaWRhdG9yV0ZvdXJEZWNpbWFsczogTUlOX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICBtYXhQY3RUb1ZhbGlkYXRvcldGb3VyRGVjaW1hbHM6IE1BWF9QQ1RfVE9fVkFMSURBVE9SLAoJLy8gICAgICAgbWluRW50cnlTdGFrZTogTUlOX0FMR09fU1RBS0VfUEVSX1BPT0wsCgkvLyAgICAgICBtYXhBbGdvUGVyUG9vbDogdGhpcy5tYXhBbGdvQWxsb3dlZFBlclBvb2woKSwKCS8vICAgICAgIG1heEFsZ29QZXJWYWxpZGF0b3I6IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICBhbXRDb25zaWRlcmVkU2F0dXJhdGVkOiB0aGlzLmFsZ29TYXR1cmF0aW9uTGV2ZWwoKSwKCS8vICAgICAgIG1heE5vZGVzOiBNQVhfTk9ERVMsCgkvLyAgICAgICBtYXhQb29sc1Blck5vZGU6IE1BWF9QT09MU19QRVJfTk9ERSwKCS8vICAgICAgIG1heFN0YWtlcnNQZXJQb29sOiBNQVhfU1RBS0VSU19QRVJfUE9PTCwKCS8vICAgICB9OwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMGY0MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAwMDAwMDAwMDAwMGY0MjQwCgljYWxsc3ViIG1heEFsZ29BbGxvd2VkUGVyUG9vbAoJaXRvYgoJY29uY2F0CgljYWxsc3ViIG1heEFsbG93ZWRTdGFrZQoJaXRvYgoJY29uY2F0CgljYWxsc3ViIGFsZ29TYXR1cmF0aW9uTGV2ZWwKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwYzgKCWNvbmNhdAoJcmV0c3ViCgovLyBnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXROdW1WYWxpZGF0b3JzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE51bVZhbGlkYXRvcnMoKXVpbnQ2NAoJY2FsbHN1YiBnZXROdW1WYWxpZGF0b3JzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0TnVtVmFsaWRhdG9ycygpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgY3VycmVudCBudW1iZXIgb2YgdmFsaWRhdG9ycwpnZXROdW1WYWxpZGF0b3JzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI5MgoJLy8gcmV0dXJuIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZTsKCWJ5dGUgMHg2ZTc1NmQ1NiAvLyAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvckNvbmZpZyh1aW50NjQpKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yQ29uZmlnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JDb25maWcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JDb25maWcodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFZhbGlkYXRvckNvbmZpZwpnZXRWYWxpZGF0b3JDb25maWc6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mjk3CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWc7CglpbnQgMAoJaW50IDI0MgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0VmFsaWRhdG9yU3RhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFZhbGlkYXRvclN0YXRlKHVpbnQ2NCkodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JTdGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFZhbGlkYXRvclN0YXRlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBWYWxpZGF0b3JDdXJTdGF0ZQpnZXRWYWxpZGF0b3JTdGF0ZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMDIKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlOwoJaW50IDI0MiAvLyBoZWFkT2Zmc2V0CglpbnQgMjYKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykKKmFiaV9yb3V0ZV9nZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcih1aW50NjQpKGFkZHJlc3MsYWRkcmVzcykKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBbQWRkcmVzcywgQWRkcmVzc10KZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMwNwoJLy8gcmV0dXJuIFt0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlcl07CglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFBvb2xzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdCgljYWxsc3ViIGdldFBvb2xzCglkdXAKCWxlbgoJaW50IDE4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0UG9vbHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xJbmZvW10KLy8KLy8gUmV0dXJuIGxpc3Qgb2YgYWxsIHBvb2xzIGZvciB0aGlzIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkCi8vIEByZXR1cm4ge1Bvb2xJbmZvW119IC0gYXJyYXkgb2YgcG9vbHMKLy8gTm90IGNhbGxhYmxlIGZyb20gb3RoZXIgY29udHJhY3RzIGJlY2F1c2UgPjFLIHJldHVybiBidXQgY2FuIGJlIGNhbGxlZCB3LyBzaW11bGF0ZSB3aGljaCBidW1wcyBsb2cgcmV0dXJucwpnZXRQb29sczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzE4CgkvLyByZXREYXRhOiBQb29sSW5mb1tdID0gW10KCWJ5dGUgMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOQoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWludCA0MzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIxCgkvLyBwb29sU2V0W2ldLnBvb2xBcHBJZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvcl8wX2VuZAoKKmlmMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzI1CgkvLyByZXREYXRhLnB1c2gocG9vbFNldFtpXSkKCWZyYW1lX2RpZyAwIC8vIHJldERhdGE6IFBvb2xJbmZvW10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMTgKCWV4dHJhY3QzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoqZm9yXzBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzIwCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHBvb2xJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGdldFBvb2xBcHBJZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFBvb2xBcHBJZCh2YWxpZGF0b3JJZDogdWludDY0LCBwb29sSWQ6IHVpbnQ2NCk6IHVpbnQ2NApnZXRQb29sQXBwSWQ6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM1CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sSWQgIT09IDAgJiYgcG9vbElkIDw9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMubGVuZ3RoLAoJLy8gICAgICAgJ3Bvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3InCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnQgMAoJIT0KCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnQgMjQKCTw9CgkmJgoKKnNraXBfYW5kMDoKCS8vIHBvb2wgaWQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIG51bWJlciBvZiBwb29scyBmb3IgdGhpcyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMzkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xJZCAtIDFdLnBvb2xBcHBJZDsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xJZDogdWludDY0CglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZ2V0UG9vbEluZm8oKHVpbnQ2NCx1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQxNix1aW50NjQpCiphYmlfcm91dGVfZ2V0UG9vbEluZm86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHBvb2xLZXk6ICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMjQKCT09CgoJLy8gYXJndW1lbnQgMCAocG9vbEtleSkgZm9yIGdldFBvb2xJbmZvIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJY2FsbHN1YiBnZXRQb29sSW5mbwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFBvb2xJbmZvKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiBQb29sSW5mbwpnZXRQb29sSW5mbzoKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNDQKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXTsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldEN1ck1heFN0YWtlUGVyUG9vbCh1aW50NjQpdWludDY0CiphYmlfcm91dGVfZ2V0Q3VyTWF4U3Rha2VQZXJQb29sOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NAoJY2FsbHN1YiBnZXRDdXJNYXhTdGFrZVBlclBvb2wKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRDdXJNYXhTdGFrZVBlclBvb2wodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IHVpbnQ2NAovLwovLyBDYWxjdWxhdGUgdGhlIG1heGltdW0gc3Rha2UgcGVyIHBvb2wgZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yLgovLyBOb3JtYWxseSB0aGlzIHdvdWxkIGJlIG1heEFsZ29QZXJQb29sLCBidXQgaXQgc2hvdWxkIGFsc28gbmV2ZXIgZ28gYWJvdmUgTWF4QWxsb3dlZFN0YWtlIC8gbnVtUG9vbHMgc28KLy8gYXMgcG9vbHMgYXJlIGFkZGVkIHRoZSBtYXggYWxsb3dlZCBwZXIgcG9vbCBjYW4gcmVkdWNlLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KZ2V0Q3VyTWF4U3Rha2VQZXJQb29sOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTUKCS8vIG51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIG51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU2CgkvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scyA9IHRoaXMubWF4QWxsb3dlZFN0YWtlKCkgLyBudW1Qb29scwoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCS8KCWZyYW1lX2J1cnkgMSAvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NwoJLy8gbWF4UGVyUG9vbDogdWludDY0ID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWF4QWxnb1BlclBvb2wKCWludCAyMTcKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU4CgkvLyBtYXhQZXJQb29sID09PSAwCglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmMV9lbmQKCgkvLyAqaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTkKCS8vIG1heFBlclBvb2wgPSB0aGlzLm1heEFsZ29BbGxvd2VkUGVyUG9vbCgpCgljYWxsc3ViIG1heEFsZ29BbGxvd2VkUGVyUG9vbAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKKmlmMV9lbmQ6CgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM2MQoJLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMgPCBtYXhQZXJQb29sCglmcmFtZV9kaWcgMSAvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29sczogdWludDY0CglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCTwKCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzYyCgkvLyBtYXhQZXJQb29sID0gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMKCWZyYW1lX2RpZyAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCippZjJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM2NAoJLy8gcmV0dXJuIG1heFBlclBvb2w7CglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sCiphYmlfcm91dGVfZG9lc1N0YWtlck5lZWRUb1BheU1CUjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wKCWNhbGxzdWIgZG9lc1N0YWtlck5lZWRUb1BheU1CUgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKHN0YWtlcjogQWRkcmVzcyk6IGJvb2xlYW4KLy8KLy8gSGVscGVyIGNhbGxlcnMgY2FuIGNhbGwgdy8gc2ltdWxhdGUgdG8gZGV0ZXJtaW5lIGlmICdBZGRTdGFrZXInIE1CUiBzaG91bGQgYmUgaW5jbHVkZWQgdy8gc3Rha2luZyBhbW91bnQKLy8gQHBhcmFtIHN0YWtlcgpkb2VzU3Rha2VyTmVlZFRvUGF5TUJSOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM3MwoJLy8gcmV0dXJuICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHM7CglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJcmV0c3ViCgovLyBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHN0YWtlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXIpIGZvciBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KGFkZHJlc3MpKHVpbnQ2NCx1aW50NjQsdWludDY0KVtdCgljYWxsc3ViIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudAoJZHVwCglsZW4KCWludCAyNAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChzdGFrZXI6IEFkZHJlc3MpOiBWYWxpZGF0b3JQb29sS2V5W10KLy8KLy8gUmV0cmlldmVzIHRoZSBzdGFrZWQgcG9vbHMgZm9yIGFuIGFjY291bnQuCi8vCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFjY291bnQgdG8gcmV0cmlldmUgc3Rha2VkIHBvb2xzIGZvci4KLy8gQHJldHVybiB7VmFsaWRhdG9yUG9vbEtleVtdfSAtIFRoZSBhcnJheSBvZiBzdGFrZWQgcG9vbHMgZm9yIHRoZSBhY2NvdW50LgpnZXRTdGFrZWRQb29sc0ZvckFjY291bnQ6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODMKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIFtdOwoJYnl0ZSAweAoJYiAqZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KnJldHVybgoKKmlmM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg2CgkvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10gPSBbXQoJYnl0ZSAweAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OAoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA2Cgk8CglieiAqZm9yXzFfZW5kCgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODkKCS8vIHBvb2xTZXRbaV0uaWQgIT09IDAKCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozOTAKCS8vIHJldERhdGEucHVzaChwb29sU2V0W2ldKQoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMjQKCWV4dHJhY3QzCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCippZjRfZW5kOgoKKmZvcl8xX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OAoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozOTMKCS8vIHJldHVybiByZXREYXRhOwoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCgoqZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoqYWJpX3JvdXRlX2dldFRva2VuUGF5b3V0UmF0aW86CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VG9rZW5QYXlvdXRSYXRpbwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFRva2VuUGF5b3V0UmF0aW8odmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xUb2tlblBheW91dFJhdGlvCi8vCi8vIFJldHJpZXZlcyB0aGUgdG9rZW4gcGF5b3V0IHJhdGlvIGZvciBhIGdpdmVuIHZhbGlkYXRvciAtIHJldHVybmluZyB0aGUgcG9vbCByYXRpb3Mgb2Ygd2hvbGUgc28gdGhhdCB0b2tlbgovLyBwYXlvdXRzIGFjcm9zcyBwb29scyBjYW4gYmUgYmFzZWQgb24gYSBzdGFibGUgc25hcGhvc3Qgb2Ygc3Rha2UuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcmV0dXJuIHtQb29sVG9rZW5QYXlvdXRSYXRpb30gLSBUaGUgdG9rZW4gcGF5b3V0IHJhdGlvIGZvciB0aGUgdmFsaWRhdG9yLgpnZXRUb2tlblBheW91dFJhdGlvOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQwNQoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpbzsKCWludCA3MDAgLy8gaGVhZE9mZnNldAoJaW50IDIwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoqYWJpX3JvdXRlX2dldE5vZGVQb29sQXNzaWdubWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkKCWNhbGxzdWIgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE5vZGVQb29sQXNzaWdubWVudHModmFsaWRhdG9ySWQ6IHVpbnQ2NCk6IE5vZGVQb29sQXNzaWdubWVudENvbmZpZwpnZXROb2RlUG9vbEFzc2lnbm1lbnRzOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAidGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyB0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBkb2Vzbid0IGV4aXN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDEyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzOwoJaW50IDkwMCAvLyBoZWFkT2Zmc2V0CglpbnQgMTkyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRORkRSZWdpc3RyeUlEKCl1aW50NjQKKmFiaV9yb3V0ZV9nZXRORkRSZWdpc3RyeUlEOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NAoJY2FsbHN1YiBnZXRORkRSZWdpc3RyeUlECglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0TkZEUmVnaXN0cnlJRCgpOiB1aW50NjQKZ2V0TkZEUmVnaXN0cnlJRDoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MTYKCS8vIHJldHVybiB0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQ7Cglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCXJldHN1YgoKLy8gYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NAoqYWJpX3JvdXRlX2FkZFZhbGlkYXRvcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMjQyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNvbmZpZykgZm9yIGFkZFZhbGlkYXRvciBtdXN0IGJlIGEgKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAobWJyUGF5bWVudCkgZm9yIGFkZFZhbGlkYXRvciBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFZhbGlkYXRvcihwYXksc3RyaW5nLCh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSl1aW50NjQKCWNhbGxzdWIgYWRkVmFsaWRhdG9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkVmFsaWRhdG9yKG1iclBheW1lbnQ6IFBheVR4biwgbmZkTmFtZTogc3RyaW5nLCBjb25maWc6IFZhbGlkYXRvckNvbmZpZyk6IHVpbnQ2NAovLwovLyBBZGRzIGEgbmV3IHZhbGlkYXRvcgovLyBSZXF1aXJlcyBhdCBsZWFzdCAxMCBBTEdPIGFzIHRoZSAnZmVlJyBmb3IgdGhlIHRyYW5zYWN0aW9uIHRvIGhlbHAgZGlzc3VhZGUgc3BhbW1lZCB2YWxpZGF0b3IgYWRkcy4KLy8KLy8gQHBhcmFtIHtQYXlUeG59IG1iclBheW1lbnQgcGF5bWVudCBmcm9tIGNhbGxlciB3aGljaCBjb3ZlcnMgbWJyIGluY3JlYXNlIG9mIG5ldyB2YWxpZGF0b3Igc3RvcmFnZQovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAoT3B0aW9uYWwpIE5hbWUgb2YgbmZkICh1c2VkIGFzIGRvdWJsZS1jaGVjayBhZ2FpbnN0IGlkIHNwZWNpZmllZCBpbiBjb25maWcpCi8vIEBwYXJhbSB7VmFsaWRhdG9yQ29uZmlnfSBjb25maWcgVmFsaWRhdG9yQ29uZmlnIHN0cnVjdAovLyBAcmV0dXJucyB7dWludDY0fSB2YWxpZGF0b3IgaWQKYWRkVmFsaWRhdG9yOgoJcHJvdG8gMyAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDI4CgkvLyB0aGlzLnZhbGlkYXRlQ29uZmlnKGNvbmZpZykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJY2FsbHN1YiB2YWxpZGF0ZUNvbmZpZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MjkKCS8vIGFzc2VydChjb25maWcub3duZXIgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMAoJLy8gYXNzZXJ0KGNvbmZpZy5tYW5hZ2VyICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDQwIDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDMxCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBjb25maWcub3duZXIsICdzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcicpCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgOCAzMgoJPT0KCgkvLyBzZW5kZXIgbXVzdCBiZSBvd25lciB0byBhZGQgbmV3IHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMwoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgYW1vdW50OiB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRWYWxpZGF0b3JNYnIgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkVmFsaWRhdG9yTWJyIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzUKCS8vIGFzc2VydChtYnJQYXltZW50LmZlZSA+IDEwICogMTAwMDAwMCwgJ2ZlZSBtdXN0IGJlIDEwIEFMR08gb3IgbW9yZSB0byBwcmV2ZW50IHNwYW1taW5nIG9mIHZhbGlkYXRvcnMnKQoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgRmVlCglpbnQgMTAwMDAwMDAKCT4KCgkvLyBmZWUgbXVzdCBiZSAxMCBBTEdPIG9yIG1vcmUgdG8gcHJldmVudCBzcGFtbWluZyBvZiB2YWxpZGF0b3JzCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM4CgkvLyB2YWxpZGF0b3JJZCA9IHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSArIDEKCWJ5dGUgMHg2ZTc1NmQ1NiAvLyAibnVtViIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM5CgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSB2YWxpZGF0b3JJZAoJYnl0ZSAweDZlNzU2ZDU2IC8vICJudW1WIgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmNyZWF0ZSgpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWludCAxMDkyCglib3hfY3JlYXRlCglwb3AKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZyA9IGNvbmZpZwoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmlkID0gdmFsaWRhdG9ySWQKCWludCAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDYKCS8vIGNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWY1X2VuZAoKCS8vICppZjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKGNvbmZpZy5uZmRGb3JJbmZvKV0sCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXSwKCS8vICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKQoJbG9hZCAyMDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUwCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihjb25maWcubmZkRm9ySW5mbyldCglieXRlIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IC8vICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTMKCS8vIGFzc2VydChidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMSwgInByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZCIpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWludCAxCgk9PQoKCS8vIHByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY1X2VuZDoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDYxCgkvLyBjb25maWcuZW50cnlHYXRpbmdUeXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMgfHwKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50IDMKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnQgNAoJPT0KCXx8Cgoqc2tpcF9vcjA6CglieiAqaWY2X2VuZAoKCS8vICppZjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ2NQoJLy8gYXNzZXJ0KHRoaXMuaXNORkRBcHBJRFZhbGlkKGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSksICdwcm92aWRlZCBORkQgQXBwIGlkIGZvciBnYXRpbmcgbXVzdCBiZSB2YWxpZCBORkQnKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzTkZEQXBwSURWYWxpZAoKCS8vIHByb3ZpZGVkIE5GRCBBcHAgaWQgZm9yIGdhdGluZyBtdXN0IGJlIHZhbGlkIE5GRAoJYXNzZXJ0CgoqaWY2X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjgKCS8vIHJldHVybiB2YWxpZGF0b3JJZDsKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCS8vIG1hbmFnZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAobWFuYWdlcikgZm9yIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyCglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG1hbmFnZXI6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIENoYW5nZXMgdGhlIFZhbGlkYXRvciBtYW5hZ2VyIGZvciBhIHNwZWNpZmljIFZhbGlkYXRvciBpZC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byBjaGFuZ2UgdGhlIG1hbmFnZXIgZm9yLgovLyBAcGFyYW0ge0FkZHJlc3N9IG1hbmFnZXIgLSBUaGUgbmV3IG1hbmFnZXIgYWRkcmVzcy4KY2hhbmdlVmFsaWRhdG9yTWFuYWdlcjoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NzkKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDgzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyID0gbWFuYWdlcgoJaW50IDQwCglmcmFtZV9kaWcgLTIgLy8gbWFuYWdlcjogQWRkcmVzcwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbzoKCS8vIHN1bnNldHRpbmdUbzogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gc3Vuc2V0dGluZ09uOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbwoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBzdW5zZXR0aW5nT246IHVpbnQ2NCwgc3Vuc2V0dGluZ1RvOiBWYWxpZGF0b3JJZFR5cGUpOiB2b2lkCi8vCi8vIFVwZGF0ZXMgdGhlIHN1bnNldCBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiB2YWxpZGF0b3IuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IgdG8gdXBkYXRlLgovLyBAcGFyYW0ge3VpbnQ2NH0gc3Vuc2V0dGluZ09uIC0gVGhlIG5ldyBzdW5zZXQgdGltZXN0YW1wLgovLyBAcGFyYW0ge3VpbnQ2NH0gc3Vuc2V0dGluZ1RvIC0gVGhlIG5ldyBzdW5zZXQgdG8gdmFsaWRhdG9yIGlkLgpjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ5NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0OTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdPbiA9IHN1bnNldHRpbmdPbgoJaW50IDIyNgoJZnJhbWVfZGlnIC0yIC8vIHN1bnNldHRpbmdPbjogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MDAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdUbyA9IHN1bnNldHRpbmdUbwoJaW50IDIzNAoJZnJhbWVfZGlnIC0zIC8vIHN1bnNldHRpbmdUbzogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodWludDY0LHVpbnQ2NCxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRDoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZXh0cmFjdCAyIDAKCgkvLyBuZmRBcHBJRDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yTkZECglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JORkQodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbmZkQXBwSUQ6IHVpbnQ2NCwgbmZkTmFtZTogc3RyaW5nKTogdm9pZAovLwovLyBDaGFuZ2VzIHRoZSBORkQgZm9yIGEgdmFsaWRhdG9yIGluIHRoZSB2YWxpZGF0b3JMaXN0IGNvbnRyYWN0LgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHRvIHVwZGF0ZS4KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElEIC0gVGhlIGFwcGxpY2F0aW9uIGlkIG9mIHRoZSBORkQgdG8gYXNzaWduIHRvIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7c3RyaW5nfSBuZmROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIE5GRCAod2hpY2ggbXVzdCBtYXRjaCkKY2hhbmdlVmFsaWRhdG9yTkZEOgoJcHJvdG8gMyAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxMwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0sCgkvLyAgICAgICBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjAKCS8vIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGUgMHg2OTczNWY3NjYxNmM2OTY0NWY2ZTY2NjQ1ZjYxNzA3MDY5NjQgLy8gImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTMgLy8gbmZkTmFtZTogc3RyaW5nCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyMQoJLy8gYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCldCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbnMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyNAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSAoQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MpLAoJLy8gICAgICAgJ0lmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTIgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUyOAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IG5mZEFwcElECglpbnQgNzIKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3M6CgkvLyBjb21taXNzaW9uQWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChjb21taXNzaW9uQWRkcmVzcykgZm9yIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzCglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcyk6IHZvaWQKLy8KLy8gQ2hhbmdlIHRoZSBjb21taXNzaW9uIGFkZHJlc3MgdGhhdCB2YWxpZGF0b3IgcmV3YXJkcyBhcmUgc2VudCB0by4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQpjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MzYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTQwCgkvLyBhc3NlcnQoY29tbWlzc2lvbkFkZHJlc3MgIT09IEFkZHJlc3MuemVyb0FkZHJlc3MpCglmcmFtZV9kaWcgLTIgLy8gY29tbWlzc2lvbkFkZHJlc3M6IEFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NDEKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzID0gY29tbWlzc2lvbkFkZHJlc3MKCWludCAxNzcKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCS8vIFJld2FyZFBlclBheW91dDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglidG9pCgoJLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBFbnRyeUdhdGluZ0Fzc2V0czogdWludDY0WzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKEVudHJ5R2F0aW5nQXNzZXRzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgdWludDY0WzRdCglhc3NlcnQKCgkvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoRW50cnlHYXRpbmdBZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gRW50cnlHYXRpbmdUeXBlOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDQgKEVudHJ5R2F0aW5nVHlwZSkgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbwoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4LCBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MsIEVudHJ5R2F0aW5nQXNzZXRzOiBTdGF0aWNBcnJheTx1aW50NjQsIDQ+LCBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NCwgUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQpOiB2b2lkCi8vCi8vIEFsbG93IHRoZSBhZGRpdGlvbmFsIHJld2FyZHMgKGdhdGluZyBlbnRyeSwgYWRkaXRpb25hbCB0b2tlbiByZXdhcmRzKSBpbmZvcm1hdGlvbiBiZSBjaGFuZ2VkIGF0IHdpbGwuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCXByb3RvIDYgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NTYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPSBFbnRyeUdhdGluZ1R5cGUKCWludCA4MAoJZnJhbWVfZGlnIC0yIC8vIEVudHJ5R2F0aW5nVHlwZTogdWludDgKCWl0b2IKCWV4dHJhY3QgNyAxCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjIKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQWRkcmVzcyA9IEVudHJ5R2F0aW5nQWRkcmVzcwoJaW50IDgxCglmcmFtZV9kaWcgLTMgLy8gRW50cnlHYXRpbmdBZGRyZXNzOiBBZGRyZXNzCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NjMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nQXNzZXRzID0gRW50cnlHYXRpbmdBc3NldHMKCWludCAxMTMKCWZyYW1lX2RpZyAtNCAvLyBFbnRyeUdhdGluZ0Fzc2V0czogU3RhdGljQXJyYXk8dWludDY0LCA0PgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UgPSBHYXRpbmdBc3NldE1pbkJhbGFuY2UKCWludCAxNDUKCWZyYW1lX2RpZyAtNSAvLyBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRQZXJQYXlvdXQgPSBSZXdhcmRQZXJQYXlvdXQKCWludCAxNjEKCWZyYW1lX2RpZyAtNiAvLyBSZXdhcmRQZXJQYXlvdXQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfYWRkUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDIgKG1iclBheW1lbnQpIGZvciBhZGRQb29sIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkUG9vbChwYXksdWludDY0LHVpbnQ2NCkodWludDY0LHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGFkZFBvb2wKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhZGRQb29sKG1iclBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgbm9kZU51bTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIGEgbmV3IHBvb2wgdG8gYSB2YWxpZGF0b3IncyBwb29sIHNldCwgcmV0dXJuaW5nIHRoZSAna2V5JyB0byByZWZlcmVuY2UgdGhlIHBvb2wgaW4gdGhlIGZ1dHVyZSBmb3Igc3Rha2luZywgZXRjLgovLyBUaGUgY2FsbGVyIG11c3QgcGF5IHRoZSBjb3N0IG9mIHRoZSB2YWxpZGF0b3JzIE1CUiBpbmNyZWFzZSBhcyB3ZWxsIGFzIHRoZSBNQlIgdGhhdCB3aWxsIGJlIG5lZWRlZCBmb3IgdGhlIHBvb2wgaXRzZWxmLgovLwovLyBbIE9OTFkgT1dORVIgT1IgTUFOQUdFUiBDQU4gY2FsbCBdCi8vIEBwYXJhbSB7UGF5VHhufSBtYnJQYXltZW50IHBheW1lbnQgZnJvbSBjYWxsZXIgd2hpY2ggY292ZXJzIG1iciBpbmNyZWFzZSBvZiBhZGRpbmcgYSBuZXcgcG9vbAovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9ySWQgaXMgaWQgb2YgdmFsaWRhdG9yIHRvIHBvb2wgdG8gKG11c3QgYmUgb3duZXIgb3IgbWFuYWdlcikKLy8gQHBhcmFtIHt1aW50NjR9IG5vZGVOdW0gaXMgbm9kZSBudW1iZXIgdG8gYWRkIHRvCi8vIEByZXR1cm5zIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sIGtleSB0byBjcmVhdGVkIHBvb2wKYWRkUG9vbDoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTgxCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyIHx8CgkvLyAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CglkdXAKCWJueiAqc2tpcF9vcjEKCXR4biBTZW5kZXIKCWludCA0MAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCXx8Cgoqc2tpcF9vcjE6CgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1ODgKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IGFtb3VudDogdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCglleHRyYWN0IDggOAoJYnRvaQoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6ImFtb3VudCIsImV4cGVjdGVkIjoidGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkUG9vbE1iciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6Im1iclBheW1lbnQiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTAKCS8vIGFzc2VydCh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLmV4aXN0cywgInNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQiKQoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MgoJLy8gbnVtUG9vbHM6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gKmlmN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTMKCS8vIChudW1Qb29scyBhcyB1aW50NjQpID49IE1BWF9QT09MUwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50IDI0Cgk+PQoJYnogKmlmN19lbmQKCgkvLyAqaWY3X2NvbnNlcXVlbnQKCS8vIGFscmVhZHkgYXQgbWF4IHBvb2wgc2l6ZQoJZXJyCgoqaWY3X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTYKCS8vIG51bVBvb2xzICs9IDEKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1OTkKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoNDA5NiwgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplIC0gNDA5NiksCgkvLyAgICAgICBdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbCgkvLyAgICAgICAgIC8vIGNyZWF0aW5nQ29udHJhY3RJRCwgdmFsaWRhdG9ySWQsIHBvb2xJZCwgbWluRW50cnlTdGFrZQoJLy8gICAgICAgICBtZXRob2QoJ2NyZWF0ZUFwcGxpY2F0aW9uKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkJyksCgkvLyAgICAgICAgIGl0b2IodGhpcy5hcHAuaWQpLAoJLy8gICAgICAgICBpdG9iKHZhbGlkYXRvcklkKSwKCS8vICAgICAgICAgaXRvYihudW1Qb29scyBhcyB1aW50NjQpLAoJLy8gICAgICAgICBpdG9iKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1pbkVudHJ5U3Rha2UpLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjAwCgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnQgMCAvLyBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDEKCS8vIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0KCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWludCAwCglpbnQgNDA5NgoJYm94X2V4dHJhY3QKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCWJ5dGUgMHg3MDZmNmY2YzU0NjU2ZDcwNmM2MTc0NjU0MTcwNzA3MjZmNzY2MTZjNDI3OTc0NjU3MyAvLyAicG9vbFRlbXBsYXRlQXBwcm92YWxCeXRlcyIKCWludCA0MDk2CglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUKCWFzc2VydAoJaW50IDQwOTYKCS0KCWJveF9leHRyYWN0CglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFN0YWtpbmdQb29sLmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwNgoJLy8gZ2xvYmFsTnVtVWludDogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMTEKCWl0eG5fZmllbGQgR2xvYmFsTnVtVWludAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDcKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCWludCAzCglpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDgKCS8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzCglpbnQgMwoJaXR4bl9maWVsZCBFeHRyYVByb2dyYW1QYWdlcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDkKCS8vIGFwcGxpY2F0aW9uQXJnczogWwoJLy8gICAgICAgICAvLyBjcmVhdGluZ0NvbnRyYWN0SUQsIHZhbGlkYXRvcklkLCBwb29sSWQsIG1pbkVudHJ5U3Rha2UKCS8vICAgICAgICAgbWV0aG9kKCdjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCcpLAoJLy8gICAgICAgICBpdG9iKHRoaXMuYXBwLmlkKSwKCS8vICAgICAgICAgaXRvYih2YWxpZGF0b3JJZCksCgkvLyAgICAgICAgIGl0b2IobnVtUG9vbHMgYXMgdWludDY0KSwKCS8vICAgICAgICAgaXRvYih0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlKSwKCS8vICAgICAgIF0KCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWludCAyMDkKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYxOQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyA9IG51bVBvb2xzIGFzIHVpbnQxNgoJaW50IDI0MgoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMgoJLy8gcG9vbEFwcElkID0gdGhpcy5pdHhuLmNyZWF0ZWRBcHBsaWNhdGlvbklELmlkCglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglmcmFtZV9idXJ5IDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjIzCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW251bVBvb2xzIC0gMV0ucG9vbEFwcElkID0gcG9vbEFwcElkCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDAKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjQKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gcG9vbEFwcElkOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGFkZFBvb2xUb05vZGUKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjMyCgkvLyByZXR1cm4geyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogbnVtUG9vbHMgYXMgdWludDY0LCBwb29sQXBwSWQ6IHRoaXMuaXR4biEuY3JlYXRlZEFwcGxpY2F0aW9uSUQuaWQgfTsKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpdG9iCgljb25jYXQKCWl0eG4gQ3JlYXRlZEFwcGxpY2F0aW9uSUQKCWl0b2IKCWNvbmNhdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2FkZFN0YWtlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gc3Rha2VkQW1vdW50UGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRTdGFrZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIHN0YWtlIHRvIGEgdmFsaWRhdG9yIHBvb2wuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gb25seSBpZiB2YWxpZGF0b3IgaGFzIGdhdGluZyB0byBlbnRlciAtIHRoaXMgaXMgYXNzZXQgaWQgb3IgbmZkIGlkIHRoYXQgY29ycmVzcG9uZHMgdG8gZ2F0aW5nLgovLyBUeG4gc2VuZGVyIGlzIGZhY3RvcmVkIGluIGFzIHdlbGwgaWYgdGhhdCBpcyBwYXJ0IG9mIGdhdGluZy4KLy8gKiBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KYWRkU3Rha2U6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA1CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0NQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID4gMAoJaW50IDIyNgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMAoJPgoJYnogKmlmOF9lbmQKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NDkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uIDwgZ2xvYmFscy5sYXRlc3RUaW1lc3RhbXAsCgkvLyAgICAgICAgICJjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lIgoJLy8gICAgICAgKQoJaW50IDIyNgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCgk8CgoJLy8gY2FuJ3Qgc3Rha2Ugd2l0aCBhIHZhbGlkYXRvciB0aGF0IGlzIHBhc3QgaXRzIHN1bnNldHRpbmcgdGltZQoJYXNzZXJ0CgoqaWY4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTUKCS8vIHN0YWtlciA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0YWtlcjogYWRkcmVzcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NTkKCS8vIHZlcmlmeVBheVR4bihzdGFrZWRBbW91bnRQYXltZW50LCB7CgkvLyAgICAgICBzZW5kZXI6IHN0YWtlciwKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InN0YWtlZEFtb3VudFBheW1lbnQiLCJmaWVsZCI6InNlbmRlciIsImV4cGVjdGVkIjoic3Rha2VyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY2NgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgPCB0aGlzLm1heEFsbG93ZWRTdGFrZSgpLAoJLy8gICAgICAgJ3RvdGFsIHN0YWtlZCBmb3IgYWxsIG9mIGEgdmFsaWRhdG9ycyBwb29scyBtYXkgbm90IGV4Y2VlZCBoYXJkIGNhcCcKCS8vICAgICApCglpbnQgMjUyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCgk8CgoJLy8gdG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjczCgkvLyB0aGlzLmRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkLCB2YWx1ZVRvVmVyaWZ5KQoJZnJhbWVfZGlnIC0zIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZG9lc1N0YWtlck1lZXRHYXRpbmcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njc1CgkvLyByZWFsQW1vdW50ID0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfYnVyeSAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzYKCS8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgoJLy8gKmlmOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzgKCS8vICF0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjlfZW5kCgoJLy8gKmlmOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgxCgkvLyBtYnJBbXRMZWZ0QmVoaW5kID0gdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkU3Rha2VyTWJyCgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODIKCS8vIHJlYWxBbW91bnQgLT0gbWJyQW10TGVmdEJlaGluZAoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCS0KCWZyYW1lX2J1cnkgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjgzCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5jcmVhdGUoKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgljb25jYXQKCWludCAxNDQKCWJveF9jcmVhdGUKCXBvcAoKKmlmOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg3CgkvLyBmaW5kUmV0ID0gdGhpcy5maW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZCwgc3Rha2VyLCByZWFsQW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCglmcmFtZV9idXJ5IDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODgKCS8vIHBvb2xLZXkgPSBmaW5kUmV0WzBdCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg5CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmluZFJldFsxXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxOTIKCWdldGJpdAoJZnJhbWVfYnVyeSA0IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjkwCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmaW5kUmV0WzJdCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MwoJZ2V0Yml0CglmcmFtZV9idXJ5IDUgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjkxCgkvLyBwb29sS2V5LnBvb2xJZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIE5vIHBvb2wgYXZhaWxhYmxlIHdpdGggZnJlZSBzdGFrZS4gIFZhbGlkYXRvciBuZWVkcyB0byBhZGQgYW5vdGhlciBwb29sCgllcnIKCippZjEwX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTYKCS8vIHRoaXMudXBkYXRlU3Rha2VyUG9vbFNldChzdGFrZXIsIHBvb2xLZXkpCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNhbGxzdWIgdXBkYXRlU3Rha2VyUG9vbFNldAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTkKCS8vIHRoaXMuY2FsbFBvb2xBZGRTdGFrZSgKCS8vICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQsCgkvLyAgICAgICBwb29sS2V5LAoJLy8gICAgICAgbWJyQW10TGVmdEJlaGluZCwKCS8vICAgICAgIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IsCgkvLyAgICAgICBpc05ld1N0YWtlclRvUHJvdG9jb2wKCS8vICAgICApCglmcmFtZV9kaWcgNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCWZyYW1lX2RpZyA0IC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCWZyYW1lX2RpZyAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyNAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJY2FsbHN1YiBjYWxsUG9vbEFkZFN0YWtlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjcxNAoJLy8gcmV0dXJuIHBvb2xLZXk7CglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNQoJcmV0c3ViCgovLyBzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfc2V0VG9rZW5QYXlvdXRSYXRpbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoJY2FsbHN1YiBzZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2V0VG9rZW5QYXlvdXRSYXRpbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gc2V0VG9rZW5QYXlvdXRSYXRpbyBpcyBjYWxsZWQgYnkgU3Rha2luZyBQb29sICMgMSAoT05MWSkgdG8gYXNrIHRoZSB2YWxpZGF0b3IgKHVzKSB0byBjYWxjdWxhdGUgdGhlIHJhdGlvcwovLyBvZiBzdGFrZSBpbiB0aGUgcG9vbHMgZm9yIHN1YnNlcXVlbnQgdG9rZW4gcGF5b3V0cyAoaWU6IDIgcG9vbHMsICcxMDAnIGFsZ28gdG90YWwgc3Rha2VkLCA2MCBpbiBwb29sIDEsIGFuZCA0MAovLyBpbiBwb29sIDIpICBUaGlzIGlzIGRvbmUgc28gd2UgaGF2ZSBhIHN0YWJsZSBzbmFwc2hvdCBvZiBzdGFrZSAtIHRha2VuIG9uY2UgcGVyIGVwb2NoIC0gb25seSB0cmlnZ2VyZWQgYnkKLy8gcG9vbCAxIGRvaW5nIHBheW91dC4gIHBvb2xzIG90aGVyIHRoYW4gMSBkb2luZyBwYXlvdXQgY2FsbCBwb29sIDEgdG8gYXNrIGl0IGRvIGl0IGZpcnN0LgovLyBJdCB3b3VsZCBiZSA2MC80MCUgaW4gdGhlIHBvb2xQY3RPZldob2xlIHZhbHVlcy4gIFRoZSB0b2tlbiByZXdhcmQgcGF5b3V0cyB0aGVuIHVzZSB0aGVzZSB2YWx1ZXMgaW5zdGVhZCBvZgovLyB0aGVpciAnY3VycmVudCcgc3Rha2Ugd2hpY2ggY2hhbmdlcyBhcyBwYXJ0IG9mIHRoZSBwYXlvdXRzIHRoZW1zZWx2ZXMgKGFuZCBwZW9wbGUgY291bGQgYmUgY2hhbmdpbmcgc3Rha2UKLy8gZHVyaW5nIHRoZSBlcG9jaCB1cGRhdGVzIGFjcm9zcyBwb29scykKLy8KLy8gTXVsdGlwbGUgcG9vbHMgd2lsbCBjYWxsIHVzIHZpYSBwb29sIDEgKHBvb2wyLT5wb29sMS0+dmFsaWRhdG9yLCBldGMuKSBzbyBkb24ndCBhc3NlcnQgb24gcG9vbDEgY2FsbGluZyBtdWx0aXBsZQovLyB0aW1lcyBpbiBzYW1lIGVwb2NoLiAgSnVzdCByZXR1cm4uCi8vCi8vIEBwYXJhbSB2YWxpZGF0b3JJZCAtIHZhbGlkYXRvciBpZCAoYW5kIHRodXMgcG9vbCkgY2FsbGluZyB1cy4gIFZlcmlmaWVkIHNvIHRoYXQgc2VuZGVyIE1VU1QgYmUgcG9vbCAxIG9mIHRoaXMgdmFsaWRhdG9yLgovLyBAcmV0dXJucyBQb29sVG9rZW5QYXlvdXRSYXRpbyAtIHRoZSBmaW5pc2hlZCByYXRpbyBkYXRhCnNldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczNAoJLy8gcG9vbDFBcHBJRCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkCglpbnQgMjY4CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM1CgkvLyBhc3NlcnQocG9vbDFBcHBJRCAhPT0gMCkKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyAqaWYxMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzcKCS8vIHRoaXMudHhuLnNlbmRlciAhPT0gQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5hZGRyZXNzCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgMCAvLyBwb29sMUFwcElEOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJIT0KCWJ6ICppZjExX2VuZAoKCS8vICppZjExX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzgKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCWludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMSAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NQoJLy8gbGFzdFBheW91dFVwZGF0ZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0CglpbnQgODkyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDYKCS8vIGxhc3RQYXlvdXRVcGRhdGUgIT09IDAKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJaW50IDAKCSE9CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyAqaWYxM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDgKCS8vIChBcHBJRC5mcm9tVWludDY0KHBvb2wxQXBwSUQpLmdsb2JhbFN0YXRlKCdsYXN0UGF5b3V0JykgYXMgdWludDY0KSA9PT0gbGFzdFBheW91dFVwZGF0ZQoJZnJhbWVfZGlnIDAgLy8gcG9vbDFBcHBJRDogdWludDY0CglieXRlIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCWludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1MQoJLy8gZXBvY2hSb3VuZExlbmd0aCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVwb2NoUm91bmRMZW5ndGggYXMgdWludDY0CglpbnQgMTY5CglpbnQgNAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzRXBvY2hCZWdpbiA9IGN1clJvdW5kIC0gKGN1clJvdW5kICUgZXBvY2hSb3VuZExlbmd0aCkKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfYnVyeSA0IC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTQKCS8vIGxhc3RQYXlvdXRVcGRhdGUgLSAobGFzdFBheW91dFVwZGF0ZSAlIGVwb2NoUm91bmRMZW5ndGgpID09PSB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfZGlnIDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPT0KCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCWludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTRfZW5kOgoKKmlmMTJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc1OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnVwZGF0ZWRGb3JQYXlvdXQgPSBjdXJSb3VuZAoJaW50IDg5MgoJZnJhbWVfZGlnIDEgLy8gY3VyUm91bmQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYwCgkvLyBjdXJOdW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNSAvLyBjdXJOdW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MQoJLy8gdG90YWxTdGFrZUZvclZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUudG90YWxBbGdvU3Rha2VkCglpbnQgMjUyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyB0b3RhbFN0YWtlRm9yVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc2MgoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA1IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzY3CgkvLyBvdXJQb29sUGN0T2ZXaG9sZSA9IHdpZGVSYXRpbygKCS8vICAgICAgICAgW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHNbaV0udG90YWxBbGdvU3Rha2VkLCAxXzAwMF8wMDBdLAoJLy8gICAgICAgICBbdG90YWxTdGFrZUZvclZhbGlkYXRvcl0KCS8vICAgICAgICkKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDFfMDAwXzAwMAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgOCAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW2ldID0gb3VyUG9vbFBjdE9mV2hvbGUKCWludCA3MDAKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIDggLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzczCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50IDcwMCAvLyBoZWFkT2Zmc2V0CglpbnQgMjAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoKKnNldFRva2VuUGF5b3V0UmF0aW8qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gOAoJcmV0c3ViCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJLy8gc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglidG9pCgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYWxnb1RvQWRkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YWtlVXBkYXRlZFZpYVJld2FyZHMoKHVpbnQ2NCx1aW50NjQsdWludDY0KSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzCglpbnQgMQoJcmV0dXJuCgovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXksIGFsZ29Ub0FkZDogdWludDY0LCByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkOiB1aW50NjQsIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NCwgc2F0dXJhdGVkQnVyblRvRmVlU2luazogdWludDY0KTogdm9pZAovLwovLyBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzIGlzIGNhbGxlZCBieSBTdGFraW5nIHBvb2xzIHRvIGluZm9ybSB0aGUgdmFsaWRhdG9yICh1cykgdGhhdCBhIHBhcnRpY3VsYXIgYW1vdW50IG9mIHRvdGFsCi8vIHN0YWtlIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIFRoZSBjYWxsaW5nIEFwcCBpZCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBvdXIgcG9vbCBsaXN0IGFzIHdlbGwuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFZhbGlkYXRvclBvb2xLZXkgdHlwZQovLyBAcGFyYW0ge3VpbnQ2NH0gYWxnb1RvQWRkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzCi8vIEBwYXJhbSB7dWludDY0fSByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkIC0gYW1vdW50IHRoaXMgdmFsaWRhdG9yJ3MgdG90YWwgc3Rha2UgaW5jcmVhc2VkIHZpYSByZXdhcmRzICh0aGF0IHNob3VsZCBiZQovLyBAcGFyYW0ge3VpbnQ2NH0gdmFsaWRhdG9yQ29tbWlzc2lvbiAtIHRoZSBjb21taXNzaW9uIGFtb3VudCB0aGUgdmFsaWRhdG9yIHdhcyBwYWlkLCBpZiBhbnkKLy8gQHBhcmFtIHt1aW50NjR9IHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbmsgLSBpZiB0aGUgcG9vbCB3YXMgaW4gc2F0dXJhdGVkIHN0YXRlLCB0aGUgYW1vdW50IHNlbnQgYmFjayB0byB0aGUgZmVlIHNpbmsuCi8vIHNlZW4gYXMgJ2FjY291bnRlZCBmb3IvcGVuZGluZyBzcGVudCcpCnN0YWtlVXBkYXRlZFZpYVJld2FyZHM6Cglwcm90byA1IDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk0CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgKz0gYWxnb1RvQWRkCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCArPSBhbGdvVG9BZGQKCWludCAyNTIKCWR1cAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGFsZ29Ub0FkZDogdWludDY0CgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Nzk5CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjayArPSByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkCglpbnQgMjYwCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyByZXdhcmRUb2tlbkFtb3VudFJlc2VydmVkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MDEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IGFsZ29Ub0FkZAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODA0CgkvLyB0aGlzLnJldmVyaWZ5TkZET3duZXJzaGlwKHBvb2xLZXkuaWQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWNhbGxzdWIgcmV2ZXJpZnlORkRPd25lcnNoaXAKCXJldHN1YgoKLy8gc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoqYWJpX3JvdXRlX3N0YWtlUmVtb3ZlZDoKCS8vIHN0YWtlclJlbW92ZWQ6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChzdGFrZXJSZW1vdmVkKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWJ0b2kKCgkvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoc3Rha2VyKSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDQgKHBvb2xLZXkpIGZvciBzdGFrZVJlbW92ZWQgbXVzdCBiZSBhICh1aW50NjQsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3Rha2VSZW1vdmVkKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsdWludDY0LGJvb2wpdm9pZAoJY2FsbHN1YiBzdGFrZVJlbW92ZWQKCWludCAxCglyZXR1cm4KCi8vIHN0YWtlUmVtb3ZlZChwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBzdGFrZXI6IEFkZHJlc3MsIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NCwgcmV3YXJkUmVtb3ZlZDogdWludDY0LCBzdGFrZXJSZW1vdmVkOiBib29sZWFuKTogdm9pZAovLwovLyBzdGFrZVJlbW92ZWQgaXMgY2FsbGVkIGJ5IFN0YWtpbmcgcG9vbHMgdG8gaW5mb3JtIHRoZSB2YWxpZGF0b3IgKHVzKSB0aGF0IGEgcGFydGljdWxhciBhbW91bnQgb2YgdG90YWwgc3Rha2UgaGFzIGJlZW4gcmVtb3ZlZAovLyBmcm9tIHRoZSBzcGVjaWZpZWQgcG9vbC4gIFRoaXMgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRzIHdlIGhhdmUgaW4gb3VyIFBvb2xJbmZvIHN0b3JhZ2UuCi8vIElmIGFueSBhbW91bnQgb2YgcmV3YXJkUmVtb3ZlZCBpcyBzcGVjaWZpZWQsIHRoZW4gdGhhdCBhbW91bnQgb2YgcmV3YXJkIGlzIHNlbnQgdG8gdGhlIHVzZQovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgY2FsbGluZyB1cyBmcm9tIHdoaWNoIHN0YWtlIHdhcyByZW1vdmVkCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRSZW1vdmVkIC0gYWxnbyBhbW91bnQgcmVtb3ZlZAovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkUmVtb3ZlZCAtIGlmIGFwcGxpY2FibGUsIGFtb3VudCBvZiB0b2tlbiByZXdhcmQgcmVtb3ZlZCAoYnkgcG9vbCAxIGNhbGxlcikgb3IgVE8gcmVtb3ZlIGFuZCBwYXkgb3V0ICh2aWEgcG9vbCAxIGZyb20gZGlmZmVyZW50IHBvb2wgY2FsbGVyKQovLyBAcGFyYW0ge2Jvb2xlYW59IHN0YWtlclJlbW92ZWQKc3Rha2VSZW1vdmVkOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vICppZjE1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzNgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjE1X2VuZAoKCS8vICppZjE1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjE1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzkKCS8vIHRoaXMudmVyaWZ5UG9vbEtleUNhbGxlcihwb29sS2V5KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWNhbGxzdWIgdmVyaWZ5UG9vbEtleUNhbGxlcgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDMKCS8vIGFzc2VydChhbW91bnRSZW1vdmVkID4gMCB8fCByZXdhcmRSZW1vdmVkID4gMCwgJ3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBpZiBhbGdvIG9yIHJld2FyZCB3YXMgcmVtb3ZlZCcpCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CglpbnQgMAoJPgoJZHVwCglibnogKnNraXBfb3IyCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpbnQgMAoJPgoJfHwKCipza2lwX29yMjoKCS8vIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpZiBhbGdvIG9yIHJld2FyZCB3YXMgcmVtb3ZlZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0NgoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkIC09IGFtb3VudFJlbW92ZWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJLQoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg0NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnQgMjUyCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDgKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlIC09IGFtb3VudFJlbW92ZWQKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vICppZjE2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MAoJLy8gcmV3YXJkUmVtb3ZlZCA+IDAKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCWludCAwCgk+CglieiAqaWYxNl9lbHNlCgoJLy8gKmlmMTZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MQoJLy8gcmV3YXJkVG9rZW5JRCA9IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5jb25maWcucmV3YXJkVG9rZW5JZAoJaW50IDE1MwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHJld2FyZFRva2VuSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTIKCS8vIGFzc2VydChyZXdhcmRUb2tlbklEICE9PSAwLCAicmV3YXJkUmVtb3ZlZCBjYW4ndCBiZSBzZXQgaWYgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSByZXdhcmQgdG9rZW4hIikKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSUQ6IHVpbnQ2NAoJaW50IDAKCSE9CgoJLy8gcmV3YXJkUmVtb3ZlZCBjYW4ndCBiZSBzZXQgaWYgdmFsaWRhdG9yIGRvZXNuJ3QgaGF2ZSByZXdhcmQgdG9rZW4hCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODUzCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrID49IHJld2FyZFJlbW92ZWQsCgkvLyAgICAgICAgICdyZXdhcmQgYmVpbmcgcmVtb3ZlZCBtdXN0IGJlIGNvdmVyZWQgYnkgaG9sZCBiYWNrIGFtb3VudCcKCS8vICAgICAgICkKCWludCAyNjAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtNCAvLyByZXdhcmRSZW1vdmVkOiB1aW50NjQKCT49CgoJLy8gcmV3YXJkIGJlaW5nIHJlbW92ZWQgbXVzdCBiZSBjb3ZlcmVkIGJ5IGhvbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS5yZXdhcmRUb2tlbkhlbGRCYWNrIC09IHJld2FyZFJlbW92ZWQKCWludCAyNjAKCWR1cAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJLQoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmMTdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODY0CgkvLyBwb29sS2V5LnBvb2xJZCAhPT0gMQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJIT0KCWJ6ICppZjE3X2VuZAoKCS8vICppZjE3X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjUKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBTdGFraW5nUG9vbC5wcm90b3R5cGUucGF5VG9rZW5SZXdhcmQ+KHsKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFtzdGFrZXIsIHJld2FyZFRva2VuSUQsIHJld2FyZFJlbW92ZWRdLAoJLy8gICAgICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjYKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCkKCWludCAyNjgKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjcKCS8vIG1ldGhvZEFyZ3M6IFtzdGFrZXIsIHJld2FyZFRva2VuSUQsIHJld2FyZFJlbW92ZWRdCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoqaWYxN19lbmQ6CgliICppZjE2X2VuZAoKKmlmMTZfZWxzZToKCippZjE2X2VuZDoKCS8vICppZjE4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5MgoJLy8gc3Rha2VyUmVtb3ZlZAoJZnJhbWVfZGlnIC01IC8vIHN0YWtlclJlbW92ZWQ6IGJvb2xlYW4KCWJ6ICppZjE4X2VuZAoKCS8vICppZjE4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4OTQKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsU3Rha2VycyAtPSAxCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgOCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgOCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJLQoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4OTYKCS8vIHJlbW92ZVJldCA9IHRoaXMucmVtb3ZlRnJvbVN0YWtlclBvb2xTZXQoc3Rha2VyLCA8VmFsaWRhdG9yUG9vbEtleT57CgkvLyAgICAgICAgIGlkOiBwb29sS2V5LmlkLAoJLy8gICAgICAgICBwb29sSWQ6IHBvb2xLZXkucG9vbElkLAoJLy8gICAgICAgICBwb29sQXBwSWQ6IHBvb2xLZXkucG9vbEFwcElkLAoJLy8gICAgICAgfSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY2FsbHN1YiByZW1vdmVGcm9tU3Rha2VyUG9vbFNldAoJZnJhbWVfYnVyeSAxIC8vIHJlbW92ZVJldDogKGJvb2wsYm9vbCkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTAxCgkvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3IgPSByZW1vdmVSZXRbMF0KCWZyYW1lX2RpZyAxIC8vIHJlbW92ZVJldDogKGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZ2V0Yml0CglmcmFtZV9idXJ5IDIgLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwMgoJLy8gc3Rha2VyT3V0T2ZQcm90b2NvbCA9IHJlbW92ZVJldFsxXQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxCglnZXRiaXQKCWZyYW1lX2J1cnkgMyAvLyBzdGFrZXJPdXRPZlByb3RvY29sOiBib29sCgoJLy8gKmlmMTlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA0CgkvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3IKCWZyYW1lX2RpZyAyIC8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcjogYm9vbAoJYnogKmlmMTlfZW5kCgoJLy8gKmlmMTlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwNQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsU3Rha2VycyAtPSAxCglpbnQgMjQ0CglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgktCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjE5X2VuZDoKCS8vICppZjIwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOAoJLy8gc3Rha2VyT3V0T2ZQcm90b2NvbAoJZnJhbWVfZGlnIDMgLy8gc3Rha2VyT3V0T2ZQcm90b2NvbDogYm9vbAoJYnogKmlmMjBfZW5kCgoJLy8gKmlmMjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkwOQoJLy8gdGhpcy5udW1TdGFrZXJzLnZhbHVlIC09IDEKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMQoJLQoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCippZjIwX2VuZDoKCippZjE4X2VuZDoKCXJldHN1YgoKLy8gZmluZFBvb2xGb3JTdGFrZXIodWludDY0LGFkZHJlc3MsdWludDY0KSgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9maW5kUG9vbEZvclN0YWtlcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYW1vdW50VG9TdGFrZTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKHN0YWtlcikgZm9yIGZpbmRQb29sRm9yU3Rha2VyIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJY2FsbHN1YiBmaW5kUG9vbEZvclN0YWtlcgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGZpbmRQb29sRm9yU3Rha2VyKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHN0YWtlcjogQWRkcmVzcywgYW1vdW50VG9TdGFrZTogdWludDY0KTogW1ZhbGlkYXRvclBvb2xLZXksIGJvb2xlYW4sIGJvb2xlYW5dCi8vCi8vIEZpbmRzIHRoZSBwb29sIGZvciBhIHN0YWtlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdmFsaWRhdG9yIGlkLCBzdGFrZXIgYWRkcmVzcywgYW5kIGFtb3VudCB0byBzdGFrZS4KLy8gRmlyc3QgY2hlY2tzIHRoZSBzdGFrZXJzICdhbHJlYWR5IHN0YWtlZCBsaXN0JyBmb3IgdGhlIHZhbGlkYXRvciBwcmVmZXJyaW5nIHRob3NlIChhZGRpbmcgaWYgcG9zc2libGUpIHRoZW4gYWRkcwovLyB0byBuZXcgcG9vbCBpZiBuZWNlc3NhcnkuCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEBwYXJhbSB7dWludDY0fSBhbW91bnRUb1N0YWtlIC0gVGhlIGFtb3VudCB0byBzdGFrZS4KLy8gQHJldHVybnMge1ZhbGlkYXRvclBvb2xLZXksIGJvb2xlYW4sIGJvb2xlYW59IC0gVGhlIHBvb2wgZm9yIHRoZSBzdGFrZXIsIHRydWUvZmFsc2Ugb24gd2hldGhlciB0aGUgc3Rha2VyIGlzICduZXcnCi8vIHRvIHRoaXMgVkFMSURBVE9SLCBhbmQgdHJ1ZS9mYWxzZSBpZiBzdGFrZXIgaXMgbmV3IHRvIHRoZSBwcm90b2NvbC4KZmluZFBvb2xGb3JTdGFrZXI6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA3CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzMAoJLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MzEKCS8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzOQoJLy8gbWF4UGVyUG9vbCA9IHRoaXMuZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHZhbGlkYXRvcklkKQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gKmlmMjFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQyCgkvLyB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglieiAqaWYyMV9lbmQKCgkvLyAqaWYyMV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQzCgkvLyBwb29sU2V0ID0gY2xvbmUodGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUpCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlCglhc3NlcnQKCWZyYW1lX2J1cnkgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NAoJLy8gYXNzZXJ0KHZhbGlkYXRvcklkICE9PSAwKQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWludCAwCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfMzoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDUKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgNgoJPAoJYnogKmZvcl8zX2VuZAoKCS8vICppZjIyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NgoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCAzMDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCAzMDAKCTwKCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCippZjIyX2VuZDoKCS8vICppZjIzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0OQoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCT09CglieiAqaWYyM19lbmQKCgkvLyAqaWYyM19jb25zZXF1ZW50CgliICpmb3JfM19jb250aW51ZQoKKmlmMjNfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1MgoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCgoJLy8gKmlmMjRfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUzCgkvLyBwb29sU2V0W2ldLmlkID09PSB2YWxpZGF0b3JJZAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCT09CglieiAqaWYyNF9lbmQKCgkvLyAqaWYyNF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU1CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoKCS8vICppZjI1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk1NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sU2V0W2ldLnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0KCS8vICAgICAgICAgICAgIG1heFBlclBvb2wKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDggLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCSsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPD0KCWJ6ICppZjI1X2VuZAoKCS8vICppZjI1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjAKCS8vIHJldHVybiBbcG9vbFNldFtpXSwgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwgaXNOZXdTdGFrZXJUb1Byb3RvY29sXTsKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCWIgKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybgoKKmlmMjVfZW5kOgoKKmlmMjRfZW5kOgoKKmZvcl8zX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgliICpmb3JfMwoKKmZvcl8zX2VuZDoKCippZjIxX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NjcKCS8vIGFzc2VydCgKCS8vICAgICAgIGFtb3VudFRvU3Rha2UgPj0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSwKCS8vICAgICAgICdtdXN0IHN0YWtlIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGZvciB0aGlzIHBvb2wnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJaW50IDIwOQoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3MwoJLy8gcG9vbHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglpbnQgNDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzQKCS8vIGN1ck51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGN1ck51bVBvb2xzOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoKKmZvcl80OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gaSA8IGN1ck51bVBvb2xzCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCTwKCWJ6ICpmb3JfNF9lbmQKCgkvLyAqaWYyNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzYKCS8vIHBvb2xzW2ldLnRvdGFsQWxnb1N0YWtlZCArIGFtb3VudFRvU3Rha2UgPD0gbWF4UGVyUG9vbAoJZnJhbWVfZGlnIDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50VG9TdGFrZTogdWludDY0CgkrCglmcmFtZV9kaWcgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCTw9CglieiAqaWYyNl9lbmQKCgkvLyAqaWYyNl9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc3CgkvLyByZXR1cm4gWwoJLy8gICAgICAgICAgIHsgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IGkgKyAxLCBwb29sQXBwSWQ6IHBvb2xzW2ldLnBvb2xBcHBJZCB9LAoJLy8gICAgICAgICAgIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IsCgkvLyAgICAgICAgICAgaXNOZXdTdGFrZXJUb1Byb3RvY29sLAoJLy8gICAgICAgICBdOwoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIDUgLy8gcG9vbHM6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCWIgKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybgoKKmlmMjZfZW5kOgoKKmZvcl80X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gaSArPSAxCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgliICpmb3JfNAoKKmZvcl80X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5ODUKCS8vIHJldHVybiBbeyBpZDogdmFsaWRhdG9ySWQsIHBvb2xJZDogMCwgcG9vbEFwcElkOiAwIH0sIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IsIGlzTmV3U3Rha2VyVG9Qcm90b2NvbF07CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnQgMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoKKmZpbmRQb29sRm9yU3Rha2VyKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDcKCXJldHN1YgoKLy8gbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX21vdmVQb29sVG9Ob2RlOgoJLy8gbm9kZU51bTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gcG9vbEFwcElkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtb3ZlUG9vbFRvTm9kZSh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG1vdmVQb29sVG9Ob2RlCglpbnQgMQoJcmV0dXJuCgovLyBtb3ZlUG9vbFRvTm9kZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBwb29sQXBwSWQ6IHVpbnQ2NCwgbm9kZU51bTogdWludDY0KTogdm9pZAovLwovLyBGaW5kIHRoZSBzcGVjaWZpZWQgcG9vbCAoaW4gYW55IG5vZGUgbnVtYmVyKSBhbmQgbW92ZSBpdCB0byB0aGUgc3BlY2lmaWVkIG5vZGUuCi8vIFRoZSBwb29sIGFjY291bnQgaXMgZm9yY2VkIG9mZmxpbmUgaWYgbW92ZWQgc28gcHJpb3Igbm9kZSB3aWxsIHN0aWxsIHJ1biBmb3IgMzIwIHJvdW5kcyBidXQKLy8gbmV3IGtleSBnb2VzIG9ubGluZSBvbiBuZXcgbm9kZSBzb29uIGFmdGVyICgzMjAgcm91bmRzIGFmdGVyIGl0IGdvZXMgb25saW5lKQovLyBOby1vcCBpZiBzdWNjZXNzLCBhc3NlcnRzIGlmIG5vdCBmb3VuZCBvciBjYW4ndCBtb3ZlICAobm8gc3BhY2UgaW4gdGFyZ2V0KQovLyBbIE9OTFkgT1dORVIgT1IgTUFOQUdFUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSBwb29sQXBwSWQKLy8gQHBhcmFtIHt1aW50NjR9IG5vZGVOdW0KbW92ZVBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDEKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIgfHwKCS8vICAgICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCWR1cAoJYm56ICpza2lwX29yMwoJdHhuIFNlbmRlcgoJaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJfHwKCipza2lwX29yMzoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMDcKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnQgOTAwIC8vIGhlYWRPZmZzZXQKCWludCAxOTIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgb3V0IG9mIGFsbG93YWJsZSByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDgKCTw9CgkmJgoKKnNraXBfYW5kMToKCS8vIG5vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBmb3IgKGxldCBzcmNOb2RlSWR4ID0gMDsgc3JjTm9kZUlkeCA8IE1BWF9OT0RFUzsgc3JjTm9kZUlkeCArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBzcmNOb2RlSWR4IDwgTUFYX05PREVTCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludCA4Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgPCBNQVhfUE9PTFNfUEVSX05PREUKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDMKCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyAqaWYyN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPT09IHBvb2xBcHBJZAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50IDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0Cgk9PQoJYnogKmlmMjdfZW5kCgoJLy8gKmlmMjdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTMKCS8vIGFzc2VydChub2RlTnVtIC0gMSAhPT0gc3JjTm9kZUlkeCwgImNhbid0IG1vdmUgdG8gc2FtZSBub2RlIikKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCSE9CgoJLy8gY2FuJ3QgbW92ZSB0byBzYW1lIG5vZGUKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbc3JjTm9kZUlkeF0ucG9vbEFwcElkc1tpXSA9IDAKCWludCA5MDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE4CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLmdvT2ZmbGluZT4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJnb09mZmxpbmUoKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE5CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDIzCgkvLyB0aGlzLmFkZFBvb2xUb05vZGUodmFsaWRhdG9ySWQsIHBvb2xBcHBJZCwgbm9kZU51bSkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWNhbGxzdWIgYWRkUG9vbFRvTm9kZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDI0CgkvLyByZXR1cm47CglyZXRzdWIKCippZjI3X2VuZDoKCipmb3JfNl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDExCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl82CgoqZm9yXzZfZW5kOgoKKmZvcl81X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTAKCS8vIHNyY05vZGVJZHggKz0gMQoJZnJhbWVfZGlnIDEgLy8gc3JjTm9kZUlkeDogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJYiAqZm9yXzUKCipmb3JfNV9lbmQ6CgkvLyBjb3VsZG4ndCBmaW5kIHBvb2wgYXBwIGlkIGluIG5vZGVzIHRvIG1vdmUKCWVycgoJcmV0c3ViCgovLyBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKKmFiaV9yb3V0ZV9lbXB0eVRva2VuUmV3YXJkczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gcmVjZWl2ZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocmVjZWl2ZXIpIGZvciBlbXB0eVRva2VuUmV3YXJkcyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0CgljYWxsc3ViIGVtcHR5VG9rZW5SZXdhcmRzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZW1wdHlUb2tlblJld2FyZHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcmVjZWl2ZXI6IEFkZHJlc3MpOiB1aW50NjQKLy8KLy8gU2VuZHMgdGhlIHJld2FyZCB0b2tlbnMgaGVsZCBpbiBwb29sIDEgdG8gc3BlY2lmaWVkIHJlY2VpdmVyLgovLyBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgdGhlIG93bmVyIHdoZW4gdGhleSB3YW50IHRvIGdldCByZXdhcmQgdG9rZW5zICdiYWNrJyB3aGljaCB0aGV5IHNlbnQgdG8KLy8gdGhlIGZpcnN0IHBvb2wgKGxpa2VseSBiZWNhdXNlIHZhbGlkYXRvciBpcyBzdW5zZXR0aW5nLiAgQW55IHRva2VucyBjdXJyZW50bHkgJ3Jlc2VydmVkJyBmb3Igc3Rha2VycyB0byBjbGFpbSB3aWxsCi8vIE5PVCBiZSBzZW50IGFzIHRoZXkgbXVzdCBiZSBoZWxkIGJhY2sgZm9yIHN0YWtlcnMgdG8gbGF0ZXIgY2xhaW0uCi8vIFsgT05MWSBPV05FUiBDQU4gQ0FMTF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gcmVjZWl2ZXIgLSB0aGUgYWNjb3VudCB0byBzZW5kIHRoZSB0b2tlbnMgdG8gKG11c3QgYWxyZWFkeSBiZSBvcHRlZC1pbiB0byB0aGUgcmV3YXJkIHRva2VuKQovLyBAcmV0dXJucyB7dWludDY0fSB0aGUgYW1vdW50IG9mIHJld2FyZCB0b2tlbiBzZW50CmVtcHR5VG9rZW5SZXdhcmRzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDQzCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDcKCS8vIHJld2FyZFRva2VuSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5yZXdhcmRUb2tlbklkCglpbnQgMTUzCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0OAoJLy8gcmV3YXJkVG9rZW5IZWxkQmFjayA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjawoJaW50IDI2MAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDkKCS8vIGFzc2VydChyZXdhcmRUb2tlbklkICE9PSAwLCAidGhpcyB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIGEgcmV3YXJkIHRva2VuIGRlZmluZWQiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CglpbnQgMAoJIT0KCgkvLyB0aGlzIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgYSByZXdhcmQgdG9rZW4gZGVmaW5lZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTAKCS8vIHBvb2xPbmVBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpCglpbnQgMjY4CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUyCgkvLyB0b2tlblJld2FyZEJhbCA9IHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgktCglmcmFtZV9idXJ5IDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU2CgkvLyBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NwoJLy8gbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0KCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSA9PT0gcmV3YXJkVG9rZW5IZWxkQmFjaywKCS8vICAgICAgICdiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudCcKCS8vICAgICApCglmcmFtZV9kaWcgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCT09CgoJLy8gYmFsYW5jZSBvZiByZW1haW5pbmcgcmV3YXJkIHRva2VucyBzaG91bGQgbWF0Y2ggdGhlIGhlbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gdG9rZW5SZXdhcmRCYWw7CglmcmFtZV9kaWcgMyAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCi8vCi8vIExvZ3MgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbGlkYXRvciB0byB0aGUgc3lzdGVtLCBpdHMgaW5pdGlhbCBvd25lciBhbmQgbWFuYWdlcgovLwovLwovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyIHZlcmlmaWVzIHRoZSBwYXNzZWQgaW4ga2V5IChmcm9tIGEgc3Rha2luZyBwb29sIGNhbGxpbmcgdXMgdG8gdXBkYXRlIG1ldHJpY3MpIGlzIHZhbGlkCi8vIGFuZCBtYXRjaGVzIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIGluIG91ciBzdGF0ZS4gICdGYWtlJyBwb29scyBjb3VsZCBjYWxsIHVzIHRvIHVwZGF0ZSBvdXIgZGF0YSwgYnV0IHRoZXkKLy8gY2FuJ3QgZmFrZSB0aGUgaWRzIGFuZCBtb3N0IGltcG9ydGFudGx5IGFwcGxpY2F0aW9uIGlkKCEpIG9mIHRoZSBjYWxsZXIgdGhhdCBoYXMgdG8gbWF0Y2guCnZlcmlmeVBvb2xLZXlDYWxsZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gdGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPD0gTUFYX1BPT0xTLCAncG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMjQKCTw9CgoJLy8gcG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYzCgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sS2V5LnBvb2xJZCA+IDAgJiYgKHBvb2xLZXkucG9vbElkIGFzIHVpbnQxNikgPD0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzLAoJLy8gICAgICAgJ3Bvb2wgaWQgb3V0c2lkZSBvZiByYW5nZSBvZiBwb29scyBjcmVhdGVkIGZvciB0aGlzIHZhbGlkYXRvcicKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDI0MgoJaW50IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJPD0KCSYmCgoqc2tpcF9hbmQyOgoJLy8gcG9vbCBpZCBvdXRzaWRlIG9mIHJhbmdlIG9mIHBvb2xzIGNyZWF0ZWQgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbEtleS5wb29sQXBwSWQgPT09IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnBvb2xBcHBJZCwKCS8vICAgICAgICJUaGUgcGFzc2VkIGluIGFwcCBpZCBkb2Vzbid0IG1hdGNoIHRoZSBwYXNzZWQgaW4gaWRzIgoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk9PQoKCS8vIFRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNzYKCS8vIGFzc2VydChwb29sS2V5LmlkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYnl0ZSAweDc2NjE2YzY5NjQ2MTc0NmY3MjQ5NjQgLy8gInZhbGlkYXRvcklkIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEtleS5wb29sQXBwSWQpLmdsb2JhbFN0YXRlKCd2YWxpZGF0b3JJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE3NwoJLy8gYXNzZXJ0KHBvb2xLZXkucG9vbElkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpIGFzIHVpbnQ2NCkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWJ5dGUgMHg3MDZmNmY2YzQ5NjQgLy8gInBvb2xJZCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgncG9vbElkJykKCWFzc2VydAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyByZXZlcmlmeU5GRE93bmVyc2hpcCh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogdm9pZAovLwovLyBUaGlzIG1ldGhvZCB2ZXJpZmllcyB0aGUgb3duZXJzaGlwIG9mIE5GRCAoTmFtZWQgRnVuY3Rpb24gRGF0YSkgYnkgYSB2YWxpZGF0b3IuCi8vIElmIHRoZSBvd25lcnNoaXAgaXMgbm8gbG9uZ2VyIHZhbGlkLCBpdCByZW1vdmVzIHRoZSBORkQgZnJvbSB0aGUgdmFsaWRhdG9yJ3MgY29uZmlndXJhdGlvbi4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3Igd2hvc2UgZGF0YSBzaG91bGQgYmUgcmUtZXZhbHVhdGVkLgpyZXZlcmlmeU5GRE93bmVyc2hpcDoKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE4NwoJLy8gdmFsaWRhdG9yQ29uZmlnID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsaWRhdG9yQ29uZmlnCgoJLy8gKmlmMjhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE4OAoJLy8gdmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8gIT09IDAKCWludCA3MgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMAoJIT0KCWJ6ICppZjI4X2VuZAoKCS8vICppZjI4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkxCgkvLyBuZmRPd25lciA9IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzCglpbnQgNzIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gbmZkT3duZXI6IGFkZHJlc3MKCgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkzCgkvLyB2YWxpZGF0b3JDb25maWcub3duZXIgIT09IG5mZE93bmVyICYmIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSBuZmRPd25lcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglpbnQgNDAKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJJiYKCipza2lwX2FuZDM6CglieiAqaWYyOV9lbmQKCgkvLyAqaWYyOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE5NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubmZkRm9ySW5mbyA9IDAKCWludCA3MgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYyOV9lbmQ6CgoqaWYyOF9lbmQ6CglyZXRzdWIKCi8vIHZhbGlkYXRlQ29uZmlnKGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnKTogdm9pZAp2YWxpZGF0ZUNvbmZpZzoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjAyCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZW50cnlHYXRpbmdUeXBlID49IEdBVElOR19UWVBFX05PTkUgJiYgY29uZmlnLmVudHJ5R2F0aW5nVHlwZSA8PSBHQVRJTkdfVFlQRV9DT05TVF9NQVgsCgkvLyAgICAgICAnZ2F0aW5nIHR5cGUgbm90IHZhbGlkJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglpbnQgMAoJPj0KCWR1cAoJYnogKnNraXBfYW5kNAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludCA0Cgk8PQoJJiYKCipza2lwX2FuZDQ6CgkvLyBnYXRpbmcgdHlwZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjA2CgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZXBvY2hSb3VuZExlbmd0aCA+PSBNSU5fRVBPQ0hfTEVOR1RIICYmIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIDw9IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICAnZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kNQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ1OgoJLy8gZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjEwCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yID49IE1JTl9QQ1RfVE9fVkFMSURBVE9SICYmIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgPD0gTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICAnY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ2CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAxMDAwMDAwCgk8PQoJJiYKCipza2lwX2FuZDY6CgkvLyBjb21taXNzaW9uIHBlcmNlbnRhZ2Ugbm90IHZhbGlkCglhc3NlcnQKCgkvLyAqaWYzMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjE0CgkvLyBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgY29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAndmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTc3IDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAKCWFzc2VydAoKKmlmMzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMjAKCS8vIGFzc2VydChjb25maWcubWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIwOSA4CglidG9pCglpbnQgMTAwMDAwMAoJPj0KCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBvb2xzUGVyTm9kZSA+IDAgJiYgY29uZmlnLnBvb2xzUGVyTm9kZSA8PSBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICAnbnVtYmVyIG9mIHBvb2xzIHBlciBub2RlIGV4Y2VlZHMgYWxsb3dlZCBudW1iZXInCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNSAxCglidG9pCglpbnQgMAoJPgoJZHVwCglieiAqc2tpcF9hbmQ3CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludCAzCgk8PQoJJiYKCipza2lwX2FuZDc6CgkvLyBudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcgoJYXNzZXJ0CgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyNgoJLy8gY29uZmlnLnN1bnNldHRpbmdPbiAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglpbnQgMAoJIT0KCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI3CgkvLyBhc3NlcnQoY29uZmlnLnN1bnNldHRpbmdPbiA+IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLCAnc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0JykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjYgOAoJYnRvaQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJPgoKCS8vIHN1bnNldHRpbmdPbiBtdXN0IGJlIGxhdGVyIHRoYW4gbm93IGlmIHNldAoJYXNzZXJ0CgoqaWYzMV9lbmQ6CglyZXRzdWIKCi8vIGNhbGxQb29sQWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBtYnJBbXRQYWlkOiB1aW50NjQsIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4sIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkcyBhIHN0YWtlcnMgYW1vdW50IG9mIGFsZ28gdG8gYSB2YWxpZGF0b3IgcG9vbCwgdHJhbnNmZXJyaW5nIHRoZSBhbGdvIHdlIHJlY2VpdmVkIGZyb20gdGhlbSAoYWxyZWFkeSB2ZXJpZmllZAovLyBieSBvdXIgY2FsbGVyKSB0byB0aGUgc3Rha2luZyBwb29sIGFjY291bnQsIGFuZCB0aGVuIHRlbGxpbmcgaXQgYWJvdXQgdGhlIGFtb3VudCBiZWluZyBhZGRlZCBmb3IgdGhlIHNwZWNpZmllZAovLyBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCi8vIEBwYXJhbSB7dWludDY0fSBtYnJBbXRQYWlkIC0gQW1vdW50IHRoZSB1c2VyIGlzIGxlYXZpbmcgYmVoaW5kIGluIHRoZSB2YWxpZGF0b3IgdG8gcGF5IGZvciB0aGVpciBzdGFrZXIgTUJSIGNvc3QKLy8gQHBhcmFtIHtib29sZWFufSBpc05ld1N0YWtlclRvVmFsaWRhdG9yIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHZhbGlkYXRvcgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9Qcm90b2NvbCAtIGlmIHRoaXMgaXMgYSBuZXcsIGZpcnN0LXRpbWUgc3Rha2VyIHRvIHRoZSBwcm90b2NvbApjYWxsUG9vbEFkZFN0YWtlOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjQ5CgkvLyBwb29sQXBwSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1MwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5hZGRTdGFrZSwgdWludDY0Pih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU4CgkvLyByZWNlaXZlcjogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmFkZHJlc3MKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiYWRkU3Rha2UocGF5LGFkZHJlc3MpdWludDY0IgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1NAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpCglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTUKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgLy8gPT09PT09PQoJLy8gICAgICAgICAvLyBUSElTIElTIEEgU0VORCBvZiB0aGUgYW1vdW50IHJlY2VpdmVkIHJpZ2h0IGJhY2sgb3V0IGFuZCBpbnRvIHRoZSBzdGFraW5nIHBvb2wgY29udHJhY3QgYWNjb3VudC4KCS8vICAgICAgICAgeyBhbW91bnQ6IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZCwgcmVjZWl2ZXI6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5hZGRyZXNzIH0sCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgc3Rha2VkQW1vdW50UGF5bWVudC5zZW5kZXIsCgkvLyAgICAgICBdCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBTZW5kZXIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJaXR4biBOdW1Mb2dzCglpbnQgMQoJLQoJaXR4bmFzIExvZ3MKCWV4dHJhY3QgNCAwCglidG9pCgoJLy8gKmlmMzJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2MwoJLy8gZ2xvYmFscy5vcGNvZGVCdWRnZXQgPCA1MDAKCWdsb2JhbCBPcGNvZGVCdWRnZXQKCWludCA1MDAKCTwKCWJ6ICppZjMyX2VuZAoKCS8vICppZjMyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjY0CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYzMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2OAoJLy8gcG9vbE51bVN0YWtlcnMgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ251bVN0YWtlcnMnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdudW1TdGFrZXJzJykKCWFzc2VydAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xOdW1TdGFrZXJzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI2OQoJLy8gcG9vbEFsZ29TdGFrZWQgPSBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3N0YWtlZCcpIGFzIHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3N0YWtlZCcpCglhc3NlcnQKCWZyYW1lX2J1cnkgMiAvLyBwb29sQWxnb1N0YWtlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsU3Rha2VycyA9IHBvb2xOdW1TdGFrZXJzIGFzIHVpbnQxNgoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDggLy8gaGVhZE9mZnNldAoJKwoJZnJhbWVfZGlnIDEgLy8gcG9vbE51bVN0YWtlcnM6IHVpbnQ2NAoJaXRvYgoJZXh0cmFjdCA2IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjcxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbEFsZ29TdGFrZWQgPSBwb29sQWxnb1N0YWtlZAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAyIC8vIHBvb2xBbGdvU3Rha2VkOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vICppZjMzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzQKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IKCWZyYW1lX2RpZyAtNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sZWFuCglieiAqaWYzM19lbmQKCgkvLyAqaWYzM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsU3Rha2VycyArPSAxCglpbnQgMjQ0CglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjMzX2VuZDoKCS8vICppZjM0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzcKCS8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJZnJhbWVfZGlnIC01IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbgoJYnogKmlmMzRfZW5kCgoJLy8gKmlmMzRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzgKCS8vIHRoaXMubnVtU3Rha2Vycy52YWx1ZSArPSAxCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglhcHBfZ2xvYmFsX2dldAoJaW50IDEKCSsKCWJ5dGUgMHg2ZTc1NmQ1Mzc0NjE2YjY1NzI3MyAvLyAibnVtU3Rha2VycyIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoqaWYzNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4MAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCArPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQKCWludCAyNTIKCWR1cAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4MQoJLy8gdGhpcy50b3RhbEFsZ29TdGFrZWQudmFsdWUgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9kaWcgLTMgLy8gbWJyQW10UGFpZDogdWludDY0CgktCgkrCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyB1cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IHZvaWQKdXBkYXRlU3Rha2VyUG9vbFNldDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NQoJLy8gYXNzZXJ0KHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cykKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4NwoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg4CgkvLyBmaXJzdEVtcHR5ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzc6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OQoJLy8gaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgNgoJPAoJYnogKmZvcl83X2VuZAoKCS8vICppZjM1X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTAKCS8vIHBvb2xTZXRbaV0gPT09IHBvb2xLZXkKCWZyYW1lX2RpZyAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5Cgk9PQoJYnogKmlmMzVfZW5kCgoJLy8gKmlmMzVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTIKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMzVfZW5kOgoJLy8gKmlmMzZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5NAoJLy8gZmlyc3RFbXB0eSA9PT0gMCAmJiBwb29sU2V0W2ldLmlkID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJZHVwCglieiAqc2tpcF9hbmQ4CglmcmFtZV9kaWcgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCSYmCgoqc2tpcF9hbmQ4OgoJYnogKmlmMzZfZW5kCgoJLy8gKmlmMzZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTUKCS8vIGZpcnN0RW1wdHkgPSBpICsgMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoKKmlmMzZfZW5kOgoKKmZvcl83X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzcKCipmb3JfN19lbmQ6CgkvLyAqaWYzN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk4CgkvLyBmaXJzdEVtcHR5ID09PSAwCglmcmFtZV9kaWcgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmMzdfZW5kCgoJLy8gKmlmMzdfY29uc2VxdWVudAoJLy8gTm8gZW1wdHkgc2xvdCBhdmFpbGFibGUgaW4gdGhlIHN0YWtlciBwb29sIHNldAoJZXJyCgoqaWYzN19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMwMQoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWVbZmlyc3RFbXB0eSAtIDFdID0gcG9vbEtleQoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMQoJLQoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0KHN0YWtlcjogQWRkcmVzcywgcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSk6IFtib29sZWFuLCBib29sZWFuXQovLwovLyBSZW1vdmVzIGEgcG9vbCBrZXkgZnJvbSB0aGUgc3Rha2VyJ3MgYWN0aXZlIHBvb2wgc2V0IC0gZmFpbHMgaWYgbm90IGZvdW5kICghKQovLwovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlciAtIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFrZXIuCi8vIEBwYXJhbSB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbEtleSAtIFRoZSBwb29sIGtleSB0aGV5IHNob3VsZCBiZSBzdG9yZWQgaW4KLy8KLy8gQHJldHVybiBbYm9vbGVhbiwgYm9vbGVhbl0gW2lzIHRoZSBzdGFrZXIgZ29uZSBmcm9tIEFMTCBwb29scyBvZiB0aGUgZ2l2ZW4gVkFMSURBVE9SLCBhbmQgaXMgc3Rha2VyIGdvbmUgZnJvbSBBTEwgcG9vbHNdCnJlbW92ZUZyb21TdGFrZXJQb29sU2V0OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE0CgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTUKCS8vIGluQW55UG9vbENvdW50ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTYKCS8vIGZvdW5kID0gZmFsc2UKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOAoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCipmb3JfODoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCA2Cgk8CglieiAqZm9yXzhfZW5kCgoJLy8gKmlmMzhfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyMAoJLy8gcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCT09CglieiAqaWYzOF9lbmQKCgkvLyAqaWYzOF9jb25zZXF1ZW50CgliICpmb3JfOF9jb250aW51ZQoKKmlmMzhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjMKCS8vIGluQW55UG9vbENvdW50ICs9IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gaW5BbnlQb29sQ291bnQ6IHVpbnQ2NAoKCS8vICppZjM5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjQKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHBvb2xLZXkuaWQKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJPT0KCWJ6ICppZjM5X2VuZAoKCS8vICppZjM5X2NvbnNlcXVlbnQKCS8vICppZjQwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjUKCS8vIHBvb2xTZXRbaV0gPT09IHBvb2xLZXkKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWZyYW1lX2RpZyAtMiAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5Cgk9PQoJYnogKmlmNDBfZWxzZQoKCS8vICppZjQwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI2CgkvLyBmb3VuZCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDIgLy8gZm91bmQ6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyOAoJLy8gdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWVbaV0gPSB7IGlkOiAwLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9CglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgliICppZjQwX2VuZAoKKmlmNDBfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzMwCgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCippZjQwX2VuZDoKCippZjM5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl84CgoqZm9yXzhfZW5kOgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzNAoJLy8gIWZvdW5kCglmcmFtZV9kaWcgMiAvLyBmb3VuZDogYm9vbAoJIQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gTm8gbWF0Y2hpbmcgc2xvdCBmb3VuZCB3aGVuIHRvbGQgdG8gcmVtb3ZlIGEgcG9vbCBmcm9tIHRoZSBzdGFrZXJzIHNldAoJZXJyCgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzOAoJLy8gcmV0dXJuIFtpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPT09IDAsIGluQW55UG9vbENvdW50ID09PSAwXTsKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnQgMAoJPT0KCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludCAwCgk9PQoJc2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBhZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHBvb2xBcHBJZDogdWludDY0LCBub2RlTnVtOiB1aW50NjQpOiB2b2lkCmFkZFBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDIKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnQgOTAwIC8vIGhlYWRPZmZzZXQKCWludCAxOTIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQzCgkvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucG9vbHNQZXJOb2RlIGFzIHVpbnQ2NAoJaW50IDIyNQoJaW50IDEKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDUKCS8vIGFzc2VydChub2RlTnVtID49IDEgJiYgbm9kZU51bSA8PSBNQVhfTk9ERVMsICdub2RlIG51bWJlciBub3QgaW4gdmFsaWQgcmFuZ2UnKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDEKCT49CglkdXAKCWJ6ICpza2lwX2FuZDkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCA4Cgk8PQoJJiYKCipza2lwX2FuZDk6CgkvLyBub2RlIG51bWJlciBub3QgaW4gdmFsaWQgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3I7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzk6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NwoJLy8gaSA8IG1heFBvb2xzUGVyTm9kZUZvclRoaXNWYWxpZGF0b3IKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjogdWludDY0Cgk8CglieiAqZm9yXzlfZW5kCgoJLy8gKmlmNDJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0OAoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tub2RlTnVtIC0gMV0ucG9vbEFwcElkc1tpXSA9PT0gMAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjQyX2VuZAoKCS8vICppZjQyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzUwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbbm9kZU51bSAtIDFdLnBvb2xBcHBJZHNbaV0gPSBwb29sQXBwSWQKCWludCA5MDAKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDAKCSsKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzUxCgkvLyByZXR1cm47CglyZXRzdWIKCippZjQyX2VuZDoKCipmb3JfOV9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl85CgoqZm9yXzlfZW5kOgoJLy8gbm8gYXZhaWxhYmxlIHNwYWNlIGluIHNwZWNpZmllZCBub2RlIGZvciB0aGlzIHBvb2wKCWVycgoJcmV0c3ViCgovLyBkb2VzU3Rha2VyTWVldEdhdGluZyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQpOiB2b2lkCi8vCi8vIENoZWNrcyBpZiBhIHN0YWtlciBtZWV0cyB0aGUgZ2F0aW5nIHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhlIHZhbGlkYXRvci4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gVGhlIHZhbHVlIHRvIHZlcmlmeSBhZ2FpbnN0IHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzLgovLyBAcmV0dXJucyB7dm9pZH0gb3IgYXNzZXJ0cyBpZiByZXF1aXJlbWVudHMgbm90IG1ldC4KZG9lc1N0YWtlck1lZXRHYXRpbmc6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNjUKCS8vIHR5cGUgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUKCWludCA4MAoJaW50IDEKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdHlwZTogdWludDgKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY2CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9OT05FCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDAKCT09CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NwoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWY0M19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2OQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDEgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzAKCS8vIGNvbmZpZyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnKQoJaW50IDAKCWludCAyNDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWSB8fAoJLy8gICAgICAgdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUwoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3I0CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDIKCT09Cgl8fAoKKnNraXBfb3I0OgoJZHVwCglibnogKnNraXBfb3I1CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDMKCT09Cgl8fAoKKnNraXBfb3I1OgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzgKCS8vIGFzc2VydCh2YWx1ZVRvVmVyaWZ5ICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3OQoJLy8gYmFsUmVxdWlyZWQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UKCWludCAxNDUKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCgkvLyAqaWY0NV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzgwCgkvLyBiYWxSZXF1aXJlZCA9PT0gMAoJZnJhbWVfZGlnIDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWY0NV9lbmQKCgkvLyAqaWY0NV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MQoJLy8gYmFsUmVxdWlyZWQgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCippZjQ1X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzgzCgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHN0YWtlci5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpKSA+PSBiYWxSZXF1aXJlZCwKCS8vICAgICAgICAgJ211c3QgaGF2ZSByZXF1aXJlZCBtaW5pbXVtIGJhbGFuY2Ugb2YgdmFsaWRhdG9yIGRlZmluZWQgdG9rZW4gdG8gYWRkIHN0YWtlJwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDEgLy8gc3Rha2VyOiBhZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDMgLy8gYmFsUmVxdWlyZWQ6IHVpbnQ2NAoJPj0KCgkvLyBtdXN0IGhhdmUgcmVxdWlyZWQgbWluaW11bSBiYWxhbmNlIG9mIHZhbGlkYXRvciBkZWZpbmVkIHRva2VuIHRvIGFkZCBzdGFrZQoJYXNzZXJ0CgoqaWY0NF9lbmQ6CgkvLyAqaWY0Nl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzg4CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWQoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAxCgk9PQoJYnogKmlmNDZfZW5kCgoJLy8gKmlmNDZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpLmNyZWF0b3IgPT09IGNvbmZpZy5lbnRyeUdhdGluZ0FkZHJlc3MsCgkvLyAgICAgICAgICdzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCB0aGUgdmFsaWRhdG9yIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZScKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDgxIDMyCgk9PQoKCS8vIHNwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IHRoZSB2YWxpZGF0b3IgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlCglhc3NlcnQKCippZjQ2X2VuZDoKCS8vICppZjQ3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTQKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX0FTU0VUX0lECglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDIKCT09CglieiAqaWY0N19lbmQKCgkvLyAqaWY0N19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NQoJLy8gYXNzZXJ0KHZhbHVlVG9WZXJpZnkgIT09IDApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk2CgkvLyBmb3VuZCA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTcKCS8vIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0cwoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDMyCglkdXAKCWZyYW1lX2J1cnkgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CglpbnQgMAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yT2ZfMDoKCS8vICppZjQ4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTgKCS8vIHZhbHVlVG9WZXJpZnkgPT09IGFzc2V0SWQKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWZyYW1lX2RpZyA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJPT0KCWJ6ICppZjQ4X2VuZAoKCS8vICppZjQ4X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk5CgkvLyBmb3VuZCA9IHRydWUKCWludCAxCglmcmFtZV9idXJ5IDQgLy8gZm91bmQ6IGJvb2wKCWIgKmZvck9mXzBfZW5kCgoqaWY0OF9lbmQ6CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMzIgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyA1IC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDcgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDYgLy8gYXNzZXRJZDogdWludDY0CgliICpmb3JPZl8wCgoqZm9yT2ZfMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwMwoJLy8gYXNzZXJ0KGZvdW5kLCAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnKQoJZnJhbWVfZGlnIDQgLy8gZm91bmQ6IGJvb2wKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBpZGVudGljYWwgdG8gdGhlIGFzc2V0IGlkIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0N19lbmQ6CgkvLyAqaWY0OV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA1CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnQgMwoJPT0KCWJ6ICppZjQ5X2VuZAoKCS8vICppZjQ5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDA4CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMuaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwgQXNzZXRJRC5mcm9tVWludDY0KHZhbHVlVG9WZXJpZnkpLmNyZWF0b3IpLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgaXMgb25lIG9mIHRoZSBsaW5rZWQgYWRkcmVzc2VzIGluIGFuIG5mZCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZVRvVmVyaWZ5OiB1aW50NjQKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyA4CglidG9pCgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoKCS8vIHNwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQKCWFzc2VydAoKKmlmNDlfZW5kOgoJLy8gKmlmNTBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQxMwoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfU0VHTUVOVF9PRl9ORkQKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnQgNAoJPT0KCWJ6ICppZjUwX2VuZAoKCS8vICppZjUwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDE1CgkvLyB1c2VyT2ZmZXJlZE5GREFwcElEID0gdmFsdWVUb1ZlcmlmeQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJZnJhbWVfYnVyeSA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDE2CgkvLyBhc3NlcnQodGhpcy5pc05GREFwcElEVmFsaWQodXNlck9mZmVyZWRORkRBcHBJRCksICdwcm92aWRlZCBORkQgbXVzdCBiZSB2YWxpZCcpCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWNhbGxzdWIgaXNORkRBcHBJRFZhbGlkCgoJLy8gcHJvdmlkZWQgTkZEIG11c3QgYmUgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDE5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHJhd0J5dGVzKEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MpID09PSByYXdCeXRlcyhzdGFrZXIpIHx8CgkvLyAgICAgICAgICAgdGhpcy5pc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QodXNlck9mZmVyZWRORkRBcHBJRCwgc3Rha2VyKSwKCS8vICAgICAgICAgInByb3ZpZGVkIG5mZCBmb3IgZW50cnkgaXNuJ3Qgb3duZWQgb3IgbGlua2VkIHRvIHRoZSBzdGFrZXIiCgkvLyAgICAgICApCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWJ5dGUgMHg2OTJlNmY3NzZlNjU3MjJlNjEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9kaWcgMSAvLyBzdGFrZXI6IGFkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjYKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgljYWxsc3ViIGlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdAoJfHwKCipza2lwX29yNjoKCS8vIHByb3ZpZGVkIG5mZCBmb3IgZW50cnkgaXNuJ3Qgb3duZWQgb3IgbGlua2VkIHRvIHRoZSBzdGFrZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDI2CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIGJ0b2koQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5wYXJlbnRBcHBJRCcpIGFzIGJ5dGVzKSA9PT0KCS8vICAgICAgICAgICBjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sCgkvLyAgICAgICAgICdzcGVjaWZpZWQgbmZkIG11c3QgYmUgYSBzZWdtZW50IG9mIHRoZSBuZmQgdGhlIHZhbGlkYXRvciBzcGVjaWZpZWQgYXMgYSByZXF1aXJlbWVudCcKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJYnl0ZSAweDY5MmU3MDYxNzI2NTZlNzQ0MTcwNzA0OTQ0IC8vICJpLnBhcmVudEFwcElEIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kucGFyZW50QXBwSUQnKQoJYXNzZXJ0CglidG9pCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJPT0KCgkvLyBzcGVjaWZpZWQgbmZkIG11c3QgYmUgYSBzZWdtZW50IG9mIHRoZSBuZmQgdGhlIHZhbGlkYXRvciBzcGVjaWZpZWQgYXMgYSByZXF1aXJlbWVudAoJYXNzZXJ0CgoqaWY1MF9lbmQ6CglyZXRzdWIKCi8vIGlzTkZEQXBwSURWYWxpZChuZmRBcHBJRDogdWludDY0KTogYm9vbGVhbgovLwovLyBDaGVja3MgaWYgdGhlIGdpdmVuIE5GRCBBcHAgaWQgaXMgdmFsaWQuICBVc2luZyBvbmx5IHRoZSBBcHAgaWQgdGhlcmUncyBubyB2YWxpZGF0aW9uIGFnYWluc3QgdGhlIG5hbWUgKGllOiB0aGF0IG5mZCBYIGlzIG5hbWUgWSkKLy8gU28gaXQncyBhc3N1bWVkIGZvciB0aGUgY2FsbGVyLCB0aGUgYXBwIGlkIGFsb25lIGlzIGZpbmUuICBUaGUgbmFtZSBpcyBmZXRjaGVkIGZyb20gdGhlIHNwZWNpZmllZCBhcHAgaWQgYW5kIHRoZSB0d28KLy8gdG9nZXRoZXIgYXJlIHVzZWQgZm9yIHZhbGlkaXR5IGNoZWNrIGNhbGwgdG8gdGhlIG5mZCByZWdpc3RyeS4KLy8KLy8gQHBhcmFtIHt1aW50NjR9IG5mZEFwcElEIC0gVGhlIE5GRCBBcHAgaWQgdG8gdmVyaWZ5LgovLwovLyBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIE5GRCBBcHAgaWQgaXMgdmFsaWQsIG90aGVyd2lzZSBmYWxzZS4KaXNORkRBcHBJRFZhbGlkOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ0NQoJLy8gdXNlck9mZmVyZWRORkROYW1lID0gQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kubmFtZScpIGFzIHN0cmluZwoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWJ5dGUgMHg2OTJlNmU2MTZkNjUgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDcKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCB1c2VyT2ZmZXJlZE5GRE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ0OAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglsb2FkIDIwMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGUgMHg2OTczNWY3NjYxNmM2OTY0NWY2ZTY2NjQ1ZjYxNzA3MDY5NjQgLy8gImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUwCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ1MgoJLy8gcmV0dXJuIGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpID09PSAxOwoJaXR4biBMYXN0TG9nCglidG9pCglpbnQgMQoJPT0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KG5mZEFwcElEOiB1aW50NjQsIGFkZHJUb0ZpbmQ6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBhbiBORkRzIGxpc3Qgb2YgdmVyaWZpZWQgYWRkcmVzc2VzLgovLyBUaGUgTkZEIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFzIG9mZmljaWFsLgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIGFwcGxpY2F0aW9uIGlkLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJUb0ZpbmQgLSBUaGUgYWRkcmVzcyB0byBmaW5kIGluIHRoZSB2LmNhQWxnby4wLmFzIHByb3BlcnR5Ci8vIEByZXR1cm4ge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLgppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY1CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKQoJZnJhbWVfZGlnIC0xIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDY2CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsncmVhZF9wcm9wZXJ0eScsICd2LmNhQWxnby4wLmFzJ10KCWJ5dGUgMHg3MjY1NjE2NDVmNzA3MjZmNzA2NTcyNzQ3OSAvLyAicmVhZF9wcm9wZXJ0eSIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglieXRlIDB4NzYyZTYzNjE0MTZjNjc2ZjJlMzAyZTYxNzMgLy8gInYuY2FBbGdvLjAuYXMiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OAoJLy8gY2FBbGdvRGF0YSA9IHRoaXMuaXR4bi5sYXN0TG9nCglpdHhuIExhc3RMb2cKCWZyYW1lX2J1cnkgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjYUFsZ29EYXRhLmxlbmd0aDsgaSArPSAzMikKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzEwOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGkgPCBjYUFsZ29EYXRhLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCWxlbgoJPAoJYnogKmZvcl8xMF9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MAoJLy8gYWRkciA9IGV4dHJhY3QzKGNhQWxnb0RhdGEsIGksIDMyKQoJZnJhbWVfZGlnIDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAzMgoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMiAvLyBhZGRyOiBieXRlW10KCgkvLyAqaWY1MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcxCgkvLyBhZGRyICE9PSByYXdCeXRlcyhnbG9iYWxzLnplcm9BZGRyZXNzKSAmJiBhZGRyID09PSByYXdCeXRlcyhhZGRyVG9GaW5kKQoJZnJhbWVfZGlnIDIgLy8gYWRkcjogYnl0ZVtdCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgMiAvLyBhZGRyOiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBhZGRyVG9GaW5kOiBBZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDEwOgoJYnogKmlmNTFfZW5kCgoJLy8gKmlmNTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzIKCS8vIHJldHVybiB0cnVlOwoJaW50IDEKCWIgKmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCpyZXR1cm4KCippZjUxX2VuZDoKCipmb3JfMTBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gaSArPSAzMgoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMzIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMAoKKmZvcl8xMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3NQoJLy8gcmV0dXJuIGZhbHNlOwoJaW50IDAKCippc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBhbGdvU2F0dXJhdGlvbkxldmVsKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlIGJlZm9yZQovLyB0aGUgdmFsaWRhdG9yIGlzIGNvbnNpZGVyZWQgc2F0dXJhdGVkIC0gd2hlcmUgcmV3YXJkcyBhcmUgZGltaW5pc2hlZC4KLy8gTk9URTogdGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIHR3aWNlIC0gaGVyZSBhbmQgaW4gc3Rha2luZyBwb29sIGNvbnRyYWN0LiAgQm90aCBtdXN0IGJlIGlkZW50aWNhbC4KYWxnb1NhdHVyYXRpb25MZXZlbDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0ODQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ4NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX1NPRlRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJaW50IDEwMAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGxvd2VkU3Rha2UoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgdmFsaWRhdG9yIGJhc2VkIG9uIGEgcGVyY2VudGFnZSBvZiBhbGwgY3VycmVudCBvbmxpbmUgc3Rha2UuCi8vIEFkZGluZyBzdGFrZSBpcyBjb21wbGV0ZWx5IGJsb2NrZWQgYXQgdGhpcyBhbW91bnQuCm1heEFsbG93ZWRTdGFrZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0OTQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ5NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX0hBUkRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJaW50IDE1MAoJbXVsdwoJaW50IDAKCWludCAxMDAwCglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoKCS8vIHdpZGVSYXRpbyBmYWlsZWQKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBtYXhBbGdvQWxsb3dlZFBlclBvb2woKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIE1BWElNVU0gYWxsb3dlZCBzdGFrZSBwZXIgcG9vbCBhbmQgc3RpbGwgcmVjZWl2ZSBpbmNlbnRpdmVzIC0gd2UnbGwgdHJlYXQgdGhpcyBhcyB0aGUgJ21heCBwZXIgcG9vbCcKbWF4QWxnb0FsbG93ZWRQZXJQb29sOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDQKCS8vIHJldHVybiA3MF8wMDBfMDAwXzAwMF8wMDA7CglpbnQgNzBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIGdldEN1cnJlbnRPbmxpbmVTdGFrZSgpOiB1aW50NjQKZ2V0Q3VycmVudE9ubGluZVN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MDkKCS8vIHJldHVybiAyXzAwMF8wMDBfMDAwXzAwMF8wMDA7CglpbnQgMl8wMDBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIG1pbkJhbGFuY2VGb3JBY2NvdW50KGNvbnRyYWN0czogdWludDY0LCBleHRyYVBhZ2VzOiB1aW50NjQsIGFzc2V0czogdWludDY0LCBsb2NhbEludHM6IHVpbnQ2NCwgbG9jYWxCeXRlczogdWludDY0LCBnbG9iYWxJbnRzOiB1aW50NjQsIGdsb2JhbEJ5dGVzOiB1aW50NjQpOiB1aW50NjQKbWluQmFsYW5jZUZvckFjY291bnQ6Cglwcm90byA3IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTIxCgkvLyBtaW5CYWwgPSBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFCglpbnQgMTAwMDAwCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMgoJLy8gbWluQmFsICs9IGNvbnRyYWN0cyAqIEFQUExJQ0FUSU9OX0JBU0VfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyYWN0czogdWludDY0CglpbnQgMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMwoJLy8gbWluQmFsICs9IGV4dHJhUGFnZXMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBleHRyYVBhZ2VzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI0CgkvLyBtaW5CYWwgKz0gYXNzZXRzICogQVNTRVRfSE9MRElOR19GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYXNzZXRzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI1CgkvLyBtaW5CYWwgKz0gbG9jYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gbG9jYWxJbnRzOiB1aW50NjQKCWludCAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjYKCS8vIG1pbkJhbCArPSBnbG9iYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTYgLy8gZ2xvYmFsSW50czogdWludDY0CglpbnQgMjg1MDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI3CgkvLyBtaW5CYWwgKz0gbG9jYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBsb2NhbEJ5dGVzOiB1aW50NjQKCWludCA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjgKCS8vIG1pbkJhbCArPSBnbG9iYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNyAvLyBnbG9iYWxCeXRlczogdWludDY0CglpbnQgNTAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI5CgkvLyByZXR1cm4gbWluQmFsOwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29zdEZvckJveFN0b3JhZ2UodG90YWxOdW1CeXRlczogdWludDY0KTogdWludDY0CmNvc3RGb3JCb3hTdG9yYWdlOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MzYKCS8vIHJldHVybiBTQ0JPWF9QRVJCT1ggKyB0b3RhbE51bUJ5dGVzICogU0NCT1hfUEVSQllURTsKCWludCAyNTAwCglmcmFtZV9kaWcgLTEgLy8gdG90YWxOdW1CeXRlczogdWludDY0CglpbnQgNDAwCgkqCgkrCglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQiCgltZXRob2QgImxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZCIKCW1ldGhvZCAiZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQiCgltZXRob2QgImdhcygpdm9pZCIKCW1ldGhvZCAiZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCgltZXRob2QgImdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAiZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0IgoJbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJbWV0aG9kICJnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpIgoJbWV0aG9kICJnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdIgoJbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCW1ldGhvZCAiZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sIgoJbWV0aG9kICJnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10iCgltZXRob2QgImdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCgltZXRob2QgImdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkiCgltZXRob2QgImdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NCIKCW1ldGhvZCAiYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKCW1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkIgoJbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgImFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAiYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCW1ldGhvZCAic2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCW1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJbWV0aG9kICJmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKSIKCW1ldGhvZCAibW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGEgKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdCAqYWJpX3JvdXRlX2dhcyAqYWJpX3JvdXRlX2dldE1ickFtb3VudHMgKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzICphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9ycyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyICphYmlfcm91dGVfZ2V0UG9vbHMgKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQgKmFiaV9yb3V0ZV9nZXRQb29sSW5mbyAqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbCAqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlIgKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQgKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvICphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyAqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQgKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3IgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRCAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyAqYWJpX3JvdXRlX2FkZFBvb2wgKmFiaV9yb3V0ZV9hZGRTdGFrZSAqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzICphYmlfcm91dGVfc3Rha2VSZW1vdmVkICphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXIgKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZSAqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQgMCAxIDggMjY4IDI0IDMyIDE4IDYgMTAwMDAwIDI2MCA3MDAgMjQyIDkwMCAzIDEwMDAwMDAgMiAxMCAyNTIKYnl0ZWNibG9jayAweDc2IDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgMHgxNTFmN2M3NSAweCAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IDB4NzM3NDYxNmI2NTY0IDB4NzM3MDczIDB4NjkyZTZmNzc2ZTY1NzIyZTYxIDB4MDAwMDAwMDAwMDAwMDAwMCAweDBhODEwMSAweDY5NmU2OTc0IDB4NmU3NTZkNTYgMHgwMCAweDYzZjNmMjhiCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwppbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbiAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgdXBkYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFwcGxpY2F0aW9uKCk6IHZvaWQKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjAyCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBZGRyZXNzLmZyb21BZGRyZXNzKCdMWjRWMklSVkxDWEZKSzRSRUpWNFRBR0VLRVlUQTJHTVI2VEMyMzQ0T0IzTDNBRjNNV1haNlpBRklRJykpCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg1ZTc5NWQyMjM1NThhZTU0YWI5MTIyNmJjOTgwYzQ1MTMxMzA2OGNjOGZhNjJkNmY5YzcwNzZiZDgwYmI2NWFmIC8vIGFkZHIgIkxaNFYySVJWTENYRkpLNFJFSlY0VEFHRUtFWVRBMkdNUjZUQzIzNDRPQjNMM0FGM01XWFo2WkFGSVEiCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwNAoJLy8gdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5kZWxldGUoKQoJYnl0ZSAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIC8vICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJYm94X2RlbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMDUKCS8vIHRoaXMuc3Rha2luZ1Bvb2xJbml0aWFsaXplZC52YWx1ZSA9IGZhbHNlCglieXRlIDB4Njk2ZTY5NzQgLy8gImluaXQiCglpbnQgMAoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CgkvLyBleGVjdXRlIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCgljYWxsc3ViIGNyZWF0ZUFwcGxpY2F0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjIwOQoJLy8gdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlID0gZmFsc2UKCWJ5dGUgMHg2OTZlNjk3NCAvLyAiaW5pdCIKCWludCAwCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjEwCgkvLyB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWUgPSAwCglieXRlIDB4NmU3NTZkNTYgLy8gIm51bVYiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjExCgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgPSAwCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglpbnQgMAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjEyCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSA9IDAKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWludCAwCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5pdFN0YWtpbmdDb250cmFjdDoKCS8vIGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5pdFN0YWtpbmdDb250cmFjdCh1aW50NjQpdm9pZAoJY2FsbHN1YiBpbml0U3Rha2luZ0NvbnRyYWN0CglpbnQgMQoJcmV0dXJuCgovLyBpbml0U3Rha2luZ0NvbnRyYWN0KGFwcHJvdmFsUHJvZ3JhbVNpemU6IHVpbnQ2NCk6IHZvaWQKaW5pdFN0YWtpbmdDb250cmFjdDoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMTcKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uY3JlYXRlKGFwcHJvdmFsUHJvZ3JhbVNpemUpCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglmcmFtZV9kaWcgLTEgLy8gYXBwcm92YWxQcm9ncmFtU2l6ZTogdWludDY0Cglib3hfY3JlYXRlCglwb3AKCXJldHN1YgoKLy8gbG9hZFN0YWtpbmdDb250cmFjdERhdGEodWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGE6CgkvLyBkYXRhOiBieXRlW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gb2Zmc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiBsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YQoJaW50IDEKCXJldHVybgoKLy8gbG9hZFN0YWtpbmdDb250cmFjdERhdGEob2Zmc2V0OiB1aW50NjQsIGRhdGE6IGJ5dGVzKTogdm9pZApsb2FkU3Rha2luZ0NvbnRyYWN0RGF0YToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMjEKCS8vIGFzc2VydCghdGhpcy5zdGFraW5nUG9vbEluaXRpYWxpemVkLnZhbHVlKQoJYnl0ZSAweDY5NmU2OTc0IC8vICJpbml0IgoJYXBwX2dsb2JhbF9nZXQKCWludCAwCglnZXRiaXQKCSEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyMjIKCS8vIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0ucmVwbGFjZShvZmZzZXQsIGRhdGEpCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBkYXRhOiBieXRlcwoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdDoKCS8vIGV4ZWN1dGUgZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQKCWNhbGxzdWIgZmluYWxpemVTdGFraW5nQ29udHJhY3QKCWludCAxCglyZXR1cm4KCi8vIGZpbmFsaXplU3Rha2luZ0NvbnRyYWN0KCk6IHZvaWQKZmluYWxpemVTdGFraW5nQ29udHJhY3Q6Cglwcm90byAwIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MjI2CgkvLyB0aGlzLnN0YWtpbmdQb29sSW5pdGlhbGl6ZWQudmFsdWUgPSB0cnVlCglieXRlIDB4Njk2ZTY5NzQgLy8gImluaXQiCglpbnQgMQoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdhcygpdm9pZAoqYWJpX3JvdXRlX2dhczoKCS8vIGV4ZWN1dGUgZ2FzKCl2b2lkCgljYWxsc3ViIGdhcwoJaW50IDEKCXJldHVybgoKLy8gZ2FzKCk6IHZvaWQKLy8KLy8gZ2FzIGlzIGEgZHVtbXkgbm8tb3AgY2FsbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHBvb2wtdXAgcmVzb3VyY2UgcmVmZXJlbmNlcyBhbmQgb3Bjb2RlIGNvc3QKZ2FzOgoJcHJvdG8gMCAwCglyZXRzdWIKCi8vIGdldE1ickFtb3VudHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0TWJyQW1vdW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRNYnJBbW91bnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBnZXRNYnJBbW91bnRzCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0TWJyQW1vdW50cygpOiBNYnJBbW91bnRzCi8vCi8vIFJldHVybnMgdGhlIE1CUiBhbW91bnRzIG5lZWRlZCBmb3IgdmFyaW91cyBhY3Rpb25zOgovLyBbCi8vIGFkZFZhbGlkYXRvck1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgdmFsaWRhdG9yIC0gcGFpZCB0byB2YWxpZGF0b3IgY29udHJhY3QKLy8gYWRkUG9vbE1icjogdWludDY0IC0gbWJyIG5lZWRlZCB0byBhZGQgYSBuZXcgcG9vbCAtIHBhaWQgdG8gdmFsaWRhdG9yCi8vIHBvb2xJbml0TWJyOiB1aW50NjQgLSBtYnIgbmVlZGVkIHRvIGluaXRTdG9yYWdlKCkgb2YgcG9vbCAtIHBhaWQgdG8gcG9vbCBpdHNlbGYKLy8gYWRkU3Rha2VyTWJyOiB1aW50NjQgLSBtYnIgc3Rha2VyIG5lZWRzIHRvIGFkZCB0byBmaXJzdCBzdGFraW5nIHBheW1lbnQgKHN0YXlzIHcvIHZhbGlkYXRvcikKLy8gXQpnZXRNYnJBbW91bnRzOgoJcHJvdG8gMCAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI0NgoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGFkZFZhbGlkYXRvck1icjogdGhpcy5jb3N0Rm9yQm94U3RvcmFnZSgxIC8qIHYgcHJlZml4ICovICsgbGVuPFZhbGlkYXRvcklkVHlwZT4oKSArIGxlbjxWYWxpZGF0b3JJbmZvPigpKSwKCS8vICAgICAgIGFkZFBvb2xNYnI6IHRoaXMubWluQmFsYW5jZUZvckFjY291bnQoCgkvLyAgICAgICAgIDEsCgkvLyAgICAgICAgIC8vIHdlIGNvdWxkIGNhbGN1bGF0ZSB0aGlzIGRpcmVjdGx5IGJ5IHJlZmVyZW5jaW5nIHRoZSBzaXplIG9mIHN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtIGJ1dCBpdCB3b3VsZAoJLy8gICAgICAgICAvLyBtZWFuIG91ciBjYWxsZXJzIHdvdWxkIGhhdmUgdG8gcmVmZXJlbmNlIHRoZSBib3ggQU5EIGJ1eSB1cCBpL28gLSBzbyBqdXN0IGdvIG1heCBvbiBleHRyYSBwYWdlcwoJLy8gICAgICAgICAzLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICAwLAoJLy8gICAgICAgICBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICAgIFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCgkvLyAgICAgICApLAoJLy8gICAgICAgcG9vbEluaXRNYnI6CgkvLyAgICAgICAgIEFMR09SQU5EX0FDQ09VTlRfTUlOX0JBTEFOQ0UgKwoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDcgLyogJ3N0YWtlcnMnIG5hbWUgKi8gKyBsZW48U3Rha2VkSW5mbz4oKSAqIE1BWF9TVEFLRVJTX1BFUl9QT09MKSwKCS8vICAgICAgIGFkZFN0YWtlck1icjoKCS8vICAgICAgICAgLy8gaG93IG11Y2ggdG8gY2hhcmdlIGZvciBmaXJzdCB0aW1lIGEgc3Rha2VyIGFkZHMgc3Rha2UgLSBzaW5jZSB3ZSBhZGQgYSB0cmFja2luZyBib3ggcGVyIHN0YWtlcgoJLy8gICAgICAgICB0aGlzLmNvc3RGb3JCb3hTdG9yYWdlKDMgLyogJ3NwcycgcHJlZml4ICovICsgbGVuPEFkZHJlc3M+KCkgKyBsZW48VmFsaWRhdG9yUG9vbEtleT4oKSAqIE1BWF9QT09MU19QRVJfU1RBS0VSKSwgLy8gc2l6ZSBvZiBrZXkgKyBhbGwgdmFsdWVzCgkvLyAgICAgfTsKCXB1c2hpbnQgMTEwMQoJY2FsbHN1YiBjb3N0Rm9yQm94U3RvcmFnZQoJaXRvYgoJaW50IDMKCXB1c2hpbnQgMTEKCWludCAwCglkdXBuIDIKCWludCAzCglpbnQgMQoJY2FsbHN1YiBtaW5CYWxhbmNlRm9yQWNjb3VudAoJaXRvYgoJY29uY2F0CglpbnQgMTAwMDAwCglwdXNoaW50IDEyODA3CgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCgkrCglpdG9iCgljb25jYXQKCXB1c2hpbnQgMTc5CgljYWxsc3ViIGNvc3RGb3JCb3hTdG9yYWdlCglpdG9iCgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UHJvdG9jb2xDb25zdHJhaW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfZ2V0UHJvdG9jb2xDb25zdHJhaW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRQcm90b2NvbENvbnN0cmFpbnRzKCkodWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0UHJvdG9jb2xDb25zdHJhaW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldFByb3RvY29sQ29uc3RyYWludHMoKTogQ29uc3RyYWludHMKLy8KLy8gUmV0dXJucyB0aGUgcHJvdG9jb2wgY29uc3RyYWludHMgc28gdGhhdCBVSXMgY2FuIGxpbWl0IHdoYXQgdXNlcnMgc3BlY2lmeSBmb3IgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KZ2V0UHJvdG9jb2xDb25zdHJhaW50czoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyNzIKCS8vIHJldHVybiB7CgkvLyAgICAgICBlcG9jaFBheW91dFJvdW5kc01pbjogTUlOX0VQT0NIX0xFTkdUSCwKCS8vICAgICAgIGVwb2NoUGF5b3V0Um91bmRzTWF4OiBNQVhfRVBPQ0hfTEVOR1RILAoJLy8gICAgICAgbWluUGN0VG9WYWxpZGF0b3JXRm91ckRlY2ltYWxzOiBNSU5fUENUX1RPX1ZBTElEQVRPUiwKCS8vICAgICAgIG1heFBjdFRvVmFsaWRhdG9yV0ZvdXJEZWNpbWFsczogTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICBtaW5FbnRyeVN0YWtlOiBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwKCS8vICAgICAgIG1heEFsZ29QZXJQb29sOiB0aGlzLm1heEFsZ29BbGxvd2VkUGVyUG9vbCgpLAoJLy8gICAgICAgbWF4QWxnb1BlclZhbGlkYXRvcjogdGhpcy5tYXhBbGxvd2VkU3Rha2UoKSwKCS8vICAgICAgIGFtdENvbnNpZGVyZWRTYXR1cmF0ZWQ6IHRoaXMuYWxnb1NhdHVyYXRpb25MZXZlbCgpLAoJLy8gICAgICAgbWF4Tm9kZXM6IE1BWF9OT0RFUywKCS8vICAgICAgIG1heFBvb2xzUGVyTm9kZTogTUFYX1BPT0xTX1BFUl9OT0RFLAoJLy8gICAgICAgbWF4U3Rha2Vyc1BlclBvb2w6IE1BWF9TVEFLRVJTX1BFUl9QT09MLAoJLy8gICAgIH07CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDBmNDI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGY0MjQwMDAwMDAwMDAwMDBmNDI0MAoJY2FsbHN1YiBtYXhBbGdvQWxsb3dlZFBlclBvb2wKCWl0b2IKCWNvbmNhdAoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCWl0b2IKCWNvbmNhdAoJY2FsbHN1YiBhbGdvU2F0dXJhdGlvbkxldmVsCglpdG9iCgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMwoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGM4Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0CiphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9yczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXROdW1WYWxpZGF0b3JzKCl1aW50NjQKCWNhbGxzdWIgZ2V0TnVtVmFsaWRhdG9ycwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE51bVZhbGlkYXRvcnMoKTogdWludDY0Ci8vCi8vIFJldHVybnMgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHZhbGlkYXRvcnMKZ2V0TnVtVmFsaWRhdG9yczoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoyOTIKCS8vIHJldHVybiB0aGlzLm51bVZhbGlkYXRvcnMudmFsdWU7CglieXRlIDB4NmU3NTZkNTYgLy8gIm51bVYiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgovLyBnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yQ29uZmlnKHVpbnQ2NCkodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yQ29uZmlnCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0VmFsaWRhdG9yQ29uZmlnKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBWYWxpZGF0b3JDb25maWcKZ2V0VmFsaWRhdG9yQ29uZmlnOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjI5NwoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnOwoJaW50IDAKCWludCAyNDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGdldFZhbGlkYXRvclN0YXRlKHVpbnQ2NCkodWludDE2LHVpbnQ2NCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRWYWxpZGF0b3JTdGF0ZSh1aW50NjQpKHVpbnQxNix1aW50NjQsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0VmFsaWRhdG9yU3RhdGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JTdGF0ZSh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogVmFsaWRhdG9yQ3VyU3RhdGUKZ2V0VmFsaWRhdG9yU3RhdGU6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzAyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZTsKCWludCAyNDIgLy8gaGVhZE9mZnNldAoJcHVzaGludCAyNgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoqYWJpX3JvdXRlX2dldFZhbGlkYXRvck93bmVyQW5kTWFuYWdlcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyKHVpbnQ2NCkoYWRkcmVzcyxhZGRyZXNzKQoJY2FsbHN1YiBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFtBZGRyZXNzLCBBZGRyZXNzXQpnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzA3CgkvLyByZXR1cm4gW3RoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLCB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5tYW5hZ2VyXTsKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglwdXNoaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgljb25jYXQKCXJldHN1YgoKLy8gZ2V0UG9vbHModWludDY0KSh1aW50NjQsdWludDE2LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFBvb2xzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdCgljYWxsc3ViIGdldFBvb2xzCglkdXAKCWxlbgoJaW50IDE4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0UG9vbHModmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IFBvb2xJbmZvW10KLy8KLy8gUmV0dXJuIGxpc3Qgb2YgYWxsIHBvb2xzIGZvciB0aGlzIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkCi8vIEByZXR1cm4ge1Bvb2xJbmZvW119IC0gYXJyYXkgb2YgcG9vbHMKLy8gTm90IGNhbGxhYmxlIGZyb20gb3RoZXIgY29udHJhY3RzIGJlY2F1c2UgPjFLIHJldHVybiBidXQgY2FuIGJlIGNhbGxlZCB3LyBzaW11bGF0ZSB3aGljaCBidW1wcyBsb2cgcmV0dXJucwpnZXRQb29sczoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzE4CgkvLyByZXREYXRhOiBQb29sSW5mb1tdID0gW10KCWJ5dGUgMHgKCWZyYW1lX2J1cnkgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMxOQoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUucG9vbHMpCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgNDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBwb29sU2V0Lmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjAKCS8vIGkgPCBwb29sU2V0Lmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMjQKCTwKCWJ6ICpmb3JfMF9lbmQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMQoJLy8gcG9vbFNldFtpXS5wb29sQXBwSWQgPT09IDAKCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDE2LHVpbnQ2NClbMjRdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgliICpmb3JfMF9lbmQKCippZjBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyNQoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBQb29sSW5mb1tdCglmcmFtZV9kaWcgMSAvLyBwb29sU2V0OiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDE4CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMyMAoJLy8gaSArPSAxCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgliICpmb3JfMAoKKmZvcl8wX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozMjcKCS8vIHJldHVybiByZXREYXRhOwoJZnJhbWVfZGlnIDAgLy8gcmV0RGF0YTogUG9vbEluZm9bXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZ2V0UG9vbEFwcElkKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZ2V0UG9vbEFwcElkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBwb29sSWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldFBvb2xBcHBJZCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBnZXRQb29sQXBwSWQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRQb29sQXBwSWQodmFsaWRhdG9ySWQ6IHVpbnQ2NCwgcG9vbElkOiB1aW50NjQpOiB1aW50NjQKZ2V0UG9vbEFwcElkOgoJcHJvdG8gMiAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjMzNQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbElkICE9PSAwICYmIHBvb2xJZCA8PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzLmxlbmd0aCwKCS8vICAgICAgICdwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yJwoJLy8gICAgICkKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50IDAKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50IDI0Cgk8PQoJJiYKCipza2lwX2FuZDA6CgkvLyBwb29sIGlkIG11c3QgYmUgYmV0d2VlbiAxIGFuZCBudW1iZXIgb2YgcG9vbHMgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzM5CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1twb29sSWQgLSAxXS5wb29sQXBwSWQ7CglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBwb29sSWQ6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMAoJKwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglyZXRzdWIKCi8vIGdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoqYWJpX3JvdXRlX2dldFBvb2xJbmZvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBwb29sS2V5OiAodWludDY0LHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDI0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHBvb2xLZXkpIGZvciBnZXRQb29sSW5mbyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBnZXRQb29sSW5mbygodWludDY0LHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKCWNhbGxzdWIgZ2V0UG9vbEluZm8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBnZXRQb29sSW5mbyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5KTogUG9vbEluZm8KZ2V0UG9vbEluZm86Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzQ0CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV07CglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBnZXRDdXJNYXhTdGFrZVBlclBvb2wodWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZ2V0Q3VyTWF4U3Rha2VQZXJQb29sCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiB1aW50NjQKLy8KLy8gQ2FsY3VsYXRlIHRoZSBtYXhpbXVtIHN0YWtlIHBlciBwb29sIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gTm9ybWFsbHkgdGhpcyB3b3VsZCBiZSBtYXhBbGdvUGVyUG9vbCwgYnV0IGl0IHNob3VsZCBhbHNvIG5ldmVyIGdvIGFib3ZlIE1heEFsbG93ZWRTdGFrZSAvIG51bVBvb2xzIHNvCi8vIGFzIHBvb2xzIGFyZSBhZGRlZCB0aGUgbWF4IGFsbG93ZWQgcGVyIHBvb2wgY2FuIHJlZHVjZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCmdldEN1ck1heFN0YWtlUGVyUG9vbDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzU1CgkvLyBudW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1NgoJLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHMgPSB0aGlzLm1heEFsbG93ZWRTdGFrZSgpIC8gbnVtUG9vbHMKCWNhbGxzdWIgbWF4QWxsb3dlZFN0YWtlCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CgkvCglmcmFtZV9idXJ5IDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTcKCS8vIG1heFBlclBvb2w6IHVpbnQ2NCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1heEFsZ29QZXJQb29sCglwdXNoaW50IDIxNwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNTgKCS8vIG1heFBlclBvb2wgPT09IDAKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM1OQoJLy8gbWF4UGVyUG9vbCA9IHRoaXMubWF4QWxnb0FsbG93ZWRQZXJQb29sKCkKCWNhbGxzdWIgbWF4QWxnb0FsbG93ZWRQZXJQb29sCglmcmFtZV9idXJ5IDIgLy8gbWF4UGVyUG9vbDogdWludDY0CgoqaWYxX2VuZDoKCS8vICppZjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzYxCgkvLyBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scyA8IG1heFBlclBvb2wKCWZyYW1lX2RpZyAxIC8vIGhhcmRNYXhEaXZpZGVkQmV0d2VlblBvb2xzOiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoJPAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozNjIKCS8vIG1heFBlclBvb2wgPSBoYXJkTWF4RGl2aWRlZEJldHdlZW5Qb29scwoJZnJhbWVfZGlnIDEgLy8gaGFyZE1heERpdmlkZWRCZXR3ZWVuUG9vbHM6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKKmlmMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzY0CgkvLyByZXR1cm4gbWF4UGVyUG9vbDsKCWZyYW1lX2RpZyAyIC8vIG1heFBlclBvb2w6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKLy8gZG9lc1N0YWtlck5lZWRUb1BheU1CUihhZGRyZXNzKWJvb2wKKmFiaV9yb3V0ZV9kb2VzU3Rha2VyTmVlZFRvUGF5TUJSOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyKSBmb3IgZG9lc1N0YWtlck5lZWRUb1BheU1CUiBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSKGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBkb2VzU3Rha2VyTmVlZFRvUGF5TUJSCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoc3Rha2VyOiBBZGRyZXNzKTogYm9vbGVhbgovLwovLyBIZWxwZXIgY2FsbGVycyBjYW4gY2FsbCB3LyBzaW11bGF0ZSB0byBkZXRlcm1pbmUgaWYgJ0FkZFN0YWtlcicgTUJSIHNob3VsZCBiZSBpbmNsdWRlZCB3LyBzdGFraW5nIGFtb3VudAovLyBAcGFyYW0gc3Rha2VyCmRvZXNTdGFrZXJOZWVkVG9QYXlNQlI6Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MzczCgkvLyByZXR1cm4gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0czsKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgkhCglyZXRzdWIKCi8vIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudChhZGRyZXNzKSh1aW50NjQsdWludDY0LHVpbnQ2NClbXQoqYWJpX3JvdXRlX2dldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHN0YWtlcikgZm9yIGdldFN0YWtlZFBvb2xzRm9yQWNjb3VudCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10KCWNhbGxzdWIgZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50CglkdXAKCWxlbgoJaW50IDI0CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0U3Rha2VkUG9vbHNGb3JBY2NvdW50KHN0YWtlcjogQWRkcmVzcyk6IFZhbGlkYXRvclBvb2xLZXlbXQovLwovLyBSZXRyaWV2ZXMgdGhlIHN0YWtlZCBwb29scyBmb3IgYW4gYWNjb3VudC4KLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWNjb3VudCB0byByZXRyaWV2ZSBzdGFrZWQgcG9vbHMgZm9yLgovLyBAcmV0dXJuIHtWYWxpZGF0b3JQb29sS2V5W119IC0gVGhlIGFycmF5IG9mIHN0YWtlZCBwb29scyBmb3IgdGhlIGFjY291bnQuCmdldFN0YWtlZFBvb2xzRm9yQWNjb3VudDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4MwoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCSEKCWJ6ICppZjNfZW5kCgoJLy8gKmlmM19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg0CgkvLyByZXR1cm4gW107CglieXRlIDB4CgliICpnZXRTdGFrZWRQb29sc0ZvckFjY291bnQqcmV0dXJuCgoqaWYzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODYKCS8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXSA9IFtdCglieXRlIDB4CglmcmFtZV9idXJ5IDAgLy8gcmV0RGF0YTogVmFsaWRhdG9yUG9vbEtleVtdCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4NwoJLy8gcG9vbFNldCA9IGNsb25lKHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlKQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czozODgKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgcG9vbFNldC5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzE6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpIDwgcG9vbFNldC5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDYKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM4OQoJLy8gcG9vbFNldFtpXS5pZCAhPT0gMAoJZnJhbWVfZGlnIDEgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCSE9CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MAoJLy8gcmV0RGF0YS5wdXNoKHBvb2xTZXRbaV0pCglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCWZyYW1lX2RpZyAxIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAyNAoJZXh0cmFjdDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHJldERhdGE6IFZhbGlkYXRvclBvb2xLZXlbXQoKKmlmNF9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Mzg4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjM5MwoJLy8gcmV0dXJuIHJldERhdGE7CglmcmFtZV9kaWcgMCAvLyByZXREYXRhOiBWYWxpZGF0b3JQb29sS2V5W10KCipnZXRTdGFrZWRQb29sc0ZvckFjY291bnQqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBnZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCiphYmlfcm91dGVfZ2V0VG9rZW5QYXlvdXRSYXRpbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZ2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KQoJY2FsbHN1YiBnZXRUb2tlblBheW91dFJhdGlvCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2V0VG9rZW5QYXlvdXRSYXRpbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlKTogUG9vbFRva2VuUGF5b3V0UmF0aW8KLy8KLy8gUmV0cmlldmVzIHRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIGEgZ2l2ZW4gdmFsaWRhdG9yIC0gcmV0dXJuaW5nIHRoZSBwb29sIHJhdGlvcyBvZiB3aG9sZSBzbyB0aGF0IHRva2VuCi8vIHBheW91dHMgYWNyb3NzIHBvb2xzIGNhbiBiZSBiYXNlZCBvbiBhIHN0YWJsZSBzbmFwaG9zdCBvZiBzdGFrZS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEByZXR1cm4ge1Bvb2xUb2tlblBheW91dFJhdGlvfSAtIFRoZSB0b2tlbiBwYXlvdXQgcmF0aW8gZm9yIHRoZSB2YWxpZGF0b3IuCmdldFRva2VuUGF5b3V0UmF0aW86Cglwcm90byAxIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDA1CgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50IDcwMCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDIwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyh1aW50NjQpKCh1aW50NjRbM10pWzhdKQoqYWJpX3JvdXRlX2dldE5vZGVQb29sQXNzaWdubWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkKCWNhbGxzdWIgZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE5vZGVQb29sQXNzaWdubWVudHModmFsaWRhdG9ySWQ6IHVpbnQ2NCk6IE5vZGVQb29sQXNzaWdubWVudENvbmZpZwpnZXROb2RlUG9vbEFzc2lnbm1lbnRzOgoJcHJvdG8gMSAxCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQxMAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAidGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgZG9lc24ndCBleGlzdCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyB0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBkb2Vzbid0IGV4aXN0Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDEyCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5ub2RlUG9vbEFzc2lnbm1lbnRzOwoJaW50IDkwMCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDE5MgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCXJldHN1YgoKLy8gZ2V0TkZEUmVnaXN0cnlJRCgpdWludDY0CiphYmlfcm91dGVfZ2V0TkZEUmVnaXN0cnlJRDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBnZXRORkRSZWdpc3RyeUlEKCl1aW50NjQKCWNhbGxzdWIgZ2V0TkZEUmVnaXN0cnlJRAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGdldE5GRFJlZ2lzdHJ5SUQoKTogdWludDY0CmdldE5GRFJlZ2lzdHJ5SUQ6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDE2CgkvLyByZXR1cm4gdGhpcy5uZmRSZWdpc3RyeUFwcElkOwoJaW50YyAwIC8vIFRNUExfbmZkUmVnaXN0cnlBcHBJZAoJcmV0c3ViCgovLyBhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0CiphYmlfcm91dGVfYWRkVmFsaWRhdG9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyNDIKCT09CgoJLy8gYXJndW1lbnQgMCAoY29uZmlnKSBmb3IgYWRkVmFsaWRhdG9yIG11c3QgYmUgYSAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWFzc2VydAoKCS8vIG5mZE5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBtYnJQYXltZW50OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDIgKG1iclBheW1lbnQpIGZvciBhZGRWYWxpZGF0b3IgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhZGRWYWxpZGF0b3IocGF5LHN0cmluZywodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkpdWludDY0CgljYWxsc3ViIGFkZFZhbGlkYXRvcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFZhbGlkYXRvcihtYnJQYXltZW50OiBQYXlUeG4sIG5mZE5hbWU6IHN0cmluZywgY29uZmlnOiBWYWxpZGF0b3JDb25maWcpOiB1aW50NjQKLy8KLy8gQWRkcyBhIG5ldyB2YWxpZGF0b3IKLy8gUmVxdWlyZXMgYXQgbGVhc3QgMTAgQUxHTyBhcyB0aGUgJ2ZlZScgZm9yIHRoZSB0cmFuc2FjdGlvbiB0byBoZWxwIGRpc3N1YWRlIHNwYW1tZWQgdmFsaWRhdG9yIGFkZHMuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBtYnJQYXltZW50IHBheW1lbnQgZnJvbSBjYWxsZXIgd2hpY2ggY292ZXJzIG1iciBpbmNyZWFzZSBvZiBuZXcgdmFsaWRhdG9yIHN0b3JhZ2UKLy8gQHBhcmFtIHtzdHJpbmd9IG5mZE5hbWUgKE9wdGlvbmFsKSBOYW1lIG9mIG5mZCAodXNlZCBhcyBkb3VibGUtY2hlY2sgYWdhaW5zdCBpZCBzcGVjaWZpZWQgaW4gY29uZmlnKQovLyBAcGFyYW0ge1ZhbGlkYXRvckNvbmZpZ30gY29uZmlnIFZhbGlkYXRvckNvbmZpZyBzdHJ1Y3QKLy8gQHJldHVybnMge3VpbnQ2NH0gdmFsaWRhdG9yIGlkCmFkZFZhbGlkYXRvcjoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQyOAoJLy8gdGhpcy52YWxpZGF0ZUNvbmZpZyhjb25maWcpCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWNhbGxzdWIgdmFsaWRhdGVDb25maWcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDI5CgkvLyBhc3NlcnQoY29uZmlnLm93bmVyICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzKQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDggMzIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzAKCS8vIGFzc2VydChjb25maWcubWFuYWdlciAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA0MCAzMgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQzMQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gY29uZmlnLm93bmVyLCAnc2VuZGVyIG11c3QgYmUgb3duZXIgdG8gYWRkIG5ldyB2YWxpZGF0b3InKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDggMzIKCT09CgoJLy8gc2VuZGVyIG11c3QgYmUgb3duZXIgdG8gYWRkIG5ldyB2YWxpZGF0b3IKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzMKCS8vIHZlcmlmeVBheVR4bihtYnJQYXltZW50LCB7IGFtb3VudDogdGhpcy5nZXRNYnJBbW91bnRzKCkuYWRkVmFsaWRhdG9yTWJyIH0pCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gbWJyUGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJtYnJQYXltZW50IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6InRoaXMuZ2V0TWJyQW1vdW50cygpLmFkZFZhbGlkYXRvck1iciJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDM1CgkvLyBhc3NlcnQobWJyUGF5bWVudC5mZWUgPiAxMCAqIDEwMDAwMDAsICdmZWUgbXVzdCBiZSAxMCBBTEdPIG9yIG1vcmUgdG8gcHJldmVudCBzcGFtbWluZyBvZiB2YWxpZGF0b3JzJykKCWZyYW1lX2RpZyAtMSAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEZlZQoJcHVzaGludCAxMDAwMDAwMAoJPgoKCS8vIGZlZSBtdXN0IGJlIDEwIEFMR08gb3IgbW9yZSB0byBwcmV2ZW50IHNwYW1taW5nIG9mIHZhbGlkYXRvcnMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzgKCS8vIHZhbGlkYXRvcklkID0gdGhpcy5udW1WYWxpZGF0b3JzLnZhbHVlICsgMQoJYnl0ZSAweDZlNzU2ZDU2IC8vICJudW1WIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0MzkKCS8vIHRoaXMubnVtVmFsaWRhdG9ycy52YWx1ZSA9IHZhbGlkYXRvcklkCglieXRlIDB4NmU3NTZkNTYgLy8gIm51bVYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDEKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuY3JlYXRlKCkKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAwIC8vIHZhbGlkYXRvcklkOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJcHVzaGludCAxMDkyCglib3hfY3JlYXRlCglwb3AKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDQyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZyA9IGNvbmZpZwoJaW50IDAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIDAgLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDMKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmlkID0gdmFsaWRhdG9ySWQKCWludCAwCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gKmlmNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NDYKCS8vIGNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJaW50IDAKCSE9CglieiAqaWY1X2VuZAoKCS8vICppZjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OAoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCBuZmROYW1lLCBpdG9iKGNvbmZpZy5uZmRGb3JJbmZvKV0sCgkvLyAgICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXSwKCS8vICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ0OQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDUwCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihjb25maWcubmZkRm9ySW5mbyldCglieXRlIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IC8vICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0yIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA3MiA4CglidG9pCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pXQoJZnJhbWVfZGlnIC0zIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDcyIDgKCWJ0b2kKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NTMKCS8vIGFzc2VydChidG9pKHRoaXMuaXR4bi5sYXN0TG9nKSA9PT0gMSwgInByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZCIpCglpdHhuIExhc3RMb2cKCWJ0b2kKCWludCAxCgk9PQoKCS8vIHByb3ZpZGVkIE5GRCBpc24ndCB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IChBcHBJRC5mcm9tVWludDY0KGNvbmZpZy5uZmRGb3JJbmZvKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcyksCgkvLyAgICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgICApCgl0eG4gU2VuZGVyCglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgNzIgOAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQoY29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0Cgk9PQoKCS8vIElmIHNwZWNpZnlpbmcgTkZELCBhY2NvdW50IGFkZGluZyB2YWxpZGF0b3IgbXVzdCBiZSBvd25lcgoJYXNzZXJ0CgoqaWY1X2VuZDoKCS8vICppZjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDYxCgkvLyBjb25maWcuZW50cnlHYXRpbmdUeXBlID09PSBHQVRJTkdfVFlQRV9DUkVBVEVEX0JZX05GRF9BRERSRVNTRVMgfHwKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgLTMgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJaW50IDMKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCA4MCAxCglidG9pCglwdXNoaW50IDQKCT09Cgl8fAoKKnNraXBfb3IwOgoJYnogKmlmNl9lbmQKCgkvLyAqaWY2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo0NjUKCS8vIGFzc2VydCh0aGlzLmlzTkZEQXBwSURWYWxpZChjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0pLCAncHJvdmlkZWQgTkZEIEFwcCBpZCBmb3IgZ2F0aW5nIG11c3QgYmUgdmFsaWQgTkZEJykKCWZyYW1lX2RpZyAtMyAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJY2FsbHN1YiBpc05GREFwcElEVmFsaWQKCgkvLyBwcm92aWRlZCBORkQgQXBwIGlkIGZvciBnYXRpbmcgbXVzdCBiZSB2YWxpZCBORkQKCWFzc2VydAoKKmlmNl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDY4CgkvLyByZXR1cm4gdmFsaWRhdG9ySWQ7CglmcmFtZV9kaWcgMCAvLyB2YWxpZGF0b3JJZDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvck1hbmFnZXIodWludDY0LGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck1hbmFnZXI6CgkvLyBtYW5hZ2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1hbmFnZXIpIGZvciBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yTWFuYWdlcgoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBtYW5hZ2VyOiBBZGRyZXNzKTogdm9pZAovLwovLyBDaGFuZ2VzIHRoZSBWYWxpZGF0b3IgbWFuYWdlciBmb3IgYSBzcGVjaWZpYyBWYWxpZGF0b3IgaWQuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IgdG8gY2hhbmdlIHRoZSBtYW5hZ2VyIGZvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSBtYW5hZ2VyIC0gVGhlIG5ldyBtYW5hZ2VyIGFkZHJlc3MuCmNoYW5nZVZhbGlkYXRvck1hbmFnZXI6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDc5CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ4MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciA9IG1hbmFnZXIKCXB1c2hpbnQgNDAKCWZyYW1lX2RpZyAtMiAvLyBtYW5hZ2VyOiBBZGRyZXNzCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvOgoJLy8gc3Vuc2V0dGluZ1RvOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdW5zZXR0aW5nT246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvclN1bnNldEluZm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvCglpbnQgMQoJcmV0dXJuCgovLyBjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHN1bnNldHRpbmdPbjogdWludDY0LCBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVXBkYXRlcyB0aGUgc3Vuc2V0IGluZm9ybWF0aW9uIGZvciBhIGdpdmVuIHZhbGlkYXRvci4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nT24gLSBUaGUgbmV3IHN1bnNldCB0aW1lc3RhbXAuCi8vIEBwYXJhbSB7dWludDY0fSBzdW5zZXR0aW5nVG8gLSBUaGUgbmV3IHN1bnNldCB0byB2YWxpZGF0b3IgaWQuCmNoYW5nZVZhbGlkYXRvclN1bnNldEluZm86Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NDk1CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyLAoJLy8gICAgICAgJ2NhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjQ5OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID0gc3Vuc2V0dGluZ09uCglwdXNoaW50IDIyNgoJZnJhbWVfZGlnIC0yIC8vIHN1bnNldHRpbmdPbjogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MDAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdUbyA9IHN1bnNldHRpbmdUbwoJcHVzaGludCAyMzQKCWZyYW1lX2RpZyAtMyAvLyBzdW5zZXR0aW5nVG86IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHVpbnQ2NCx1aW50NjQsc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JORkQ6CgkvLyBuZmROYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWV4dHJhY3QgMiAwCgoJLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkCgljYWxsc3ViIGNoYW5nZVZhbGlkYXRvck5GRAoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yTkZEKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5mZEFwcElEOiB1aW50NjQsIG5mZE5hbWU6IHN0cmluZyk6IHZvaWQKLy8KLy8gQ2hhbmdlcyB0aGUgTkZEIGZvciBhIHZhbGlkYXRvciBpbiB0aGUgdmFsaWRhdG9yTGlzdCBjb250cmFjdC4KLy8gWyBPTkxZIE9XTkVSIENBTiBDSEFOR0UgXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvciB0byB1cGRhdGUuCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBhcHBsaWNhdGlvbiBpZCBvZiB0aGUgTkZEIHRvIGFzc2lnbiB0byB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3N0cmluZ30gbmZkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBORkQgKHdoaWNoIG11c3QgbWF0Y2gpCmNoYW5nZVZhbGlkYXRvck5GRDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MTMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTE4CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihuZmRBcHBJRCldLAoJLy8gICAgICAgYXBwbGljYXRpb25zOiBbQXBwSUQuZnJvbVVpbnQ2NChuZmRBcHBJRCldLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUxOQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLm5mZFJlZ2lzdHJ5QXBwSWQpCglpbnRjIDAgLy8gVE1QTF9uZmRSZWdpc3RyeUFwcElkCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTIwCgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgbmZkTmFtZSwgaXRvYihuZmRBcHBJRCldCglieXRlIDB4Njk3MzVmNzY2MTZjNjk2NDVmNmU2NjY0NWY2MTcwNzA2OTY0IC8vICJpc192YWxpZF9uZmRfYXBwaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIC0zIC8vIG5mZE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjEKCS8vIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXQoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjQKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gKEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKSBhcyBBZGRyZXNzKSwKCS8vICAgICAgICdJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXInCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWJ5dGUgMHg2OTJlNmY3NzZlNjU3MjJlNjEgLy8gImkub3duZXIuYSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykKCWFzc2VydAoJPT0KCgkvLyBJZiBzcGVjaWZ5aW5nIE5GRCwgYWNjb3VudCBhZGRpbmcgdmFsaWRhdG9yIG11c3QgYmUgb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1MjgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm5mZEZvckluZm8gPSBuZmRBcHBJRAoJcHVzaGludCA3MgoJZnJhbWVfZGlnIC0yIC8vIG5mZEFwcElEOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzczoKCS8vIGNvbW1pc3Npb25BZGRyZXNzOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGNvbW1pc3Npb25BZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MKCWludCAxCglyZXR1cm4KCi8vIGNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIGNvbW1pc3Npb25BZGRyZXNzOiBBZGRyZXNzKTogdm9pZAovLwovLyBDaGFuZ2UgdGhlIGNvbW1pc3Npb24gYWRkcmVzcyB0aGF0IHZhbGlkYXRvciByZXdhcmRzIGFyZSBzZW50IHRvLgovLyBbIE9OTFkgT1dORVIgQ0FOIENIQU5HRSBdCmNoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzOgoJcHJvdG8gMiAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjUzNgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSB2YWxpZGF0b3Igb3duZXIKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NDAKCS8vIGFzc2VydChjb21taXNzaW9uQWRkcmVzcyAhPT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU0MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcudmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgPSBjb21taXNzaW9uQWRkcmVzcwoJcHVzaGludCAxNzcKCWZyYW1lX2RpZyAtMiAvLyBjb21taXNzaW9uQWRkcmVzczogQWRkcmVzcwoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCS8vIFJld2FyZFBlclBheW91dDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA2CglidG9pCgoJLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDUKCWJ0b2kKCgkvLyBFbnRyeUdhdGluZ0Fzc2V0czogdWludDY0WzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDIgKEVudHJ5R2F0aW5nQXNzZXRzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgdWludDY0WzRdCglhc3NlcnQKCgkvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMyAoRW50cnlHYXRpbmdBZGRyZXNzKSBmb3IgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gRW50cnlHYXRpbmdUeXBlOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDQgKEVudHJ5R2F0aW5nVHlwZSkgZm9yIGNoYW5nZVZhbGlkYXRvclJld2FyZEluZm8gbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbwoJaW50IDEKCXJldHVybgoKLy8gY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4LCBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MsIEVudHJ5R2F0aW5nQXNzZXRzOiBTdGF0aWNBcnJheTx1aW50NjQsIDQ+LCBHYXRpbmdBc3NldE1pbkJhbGFuY2U6IHVpbnQ2NCwgUmV3YXJkUGVyUGF5b3V0OiB1aW50NjQpOiB2b2lkCi8vCi8vIEFsbG93IHRoZSBhZGRpdGlvbmFsIHJld2FyZHMgKGdhdGluZyBlbnRyeSwgYWRkaXRpb25hbCB0b2tlbiByZXdhcmRzKSBpbmZvcm1hdGlvbiBiZSBjaGFuZ2VkIGF0IHdpbGwuCi8vIFsgT05MWSBPV05FUiBDQU4gQ0hBTkdFIF0KY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbzoKCXByb3RvIDYgMAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo1NTYKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYxCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPSBFbnRyeUdhdGluZ1R5cGUKCXB1c2hpbnQgODAKCWZyYW1lX2RpZyAtMiAvLyBFbnRyeUdhdGluZ1R5cGU6IHVpbnQ4CglpdG9iCglleHRyYWN0IDcgMQoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTYyCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lbnRyeUdhdGluZ0FkZHJlc3MgPSBFbnRyeUdhdGluZ0FkZHJlc3MKCXB1c2hpbnQgODEKCWZyYW1lX2RpZyAtMyAvLyBFbnRyeUdhdGluZ0FkZHJlc3M6IEFkZHJlc3MKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2MwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuZW50cnlHYXRpbmdBc3NldHMgPSBFbnRyeUdhdGluZ0Fzc2V0cwoJcHVzaGludCAxMTMKCWZyYW1lX2RpZyAtNCAvLyBFbnRyeUdhdGluZ0Fzc2V0czogU3RhdGljQXJyYXk8dWludDY0LCA0PgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTY0CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UgPSBHYXRpbmdBc3NldE1pbkJhbGFuY2UKCXB1c2hpbnQgMTQ1CglmcmFtZV9kaWcgLTUgLy8gR2F0aW5nQXNzZXRNaW5CYWxhbmNlOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU2NQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcucmV3YXJkUGVyUGF5b3V0ID0gUmV3YXJkUGVyUGF5b3V0CglwdXNoaW50IDE2MQoJZnJhbWVfZGlnIC02IC8vIFJld2FyZFBlclBheW91dDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBhZGRQb29sKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9hZGRQb29sOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBub2RlTnVtOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCAxIC8vIHBheQoJPT0KCgkvLyBhcmd1bWVudCAyIChtYnJQYXltZW50KSBmb3IgYWRkUG9vbCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRQb29sCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkUG9vbChtYnJQYXltZW50OiBQYXlUeG4sIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIG5vZGVOdW06IHVpbnQ2NCk6IFZhbGlkYXRvclBvb2xLZXkKLy8KLy8gQWRkcyBhIG5ldyBwb29sIHRvIGEgdmFsaWRhdG9yJ3MgcG9vbCBzZXQsIHJldHVybmluZyB0aGUgJ2tleScgdG8gcmVmZXJlbmNlIHRoZSBwb29sIGluIHRoZSBmdXR1cmUgZm9yIHN0YWtpbmcsIGV0Yy4KLy8gVGhlIGNhbGxlciBtdXN0IHBheSB0aGUgY29zdCBvZiB0aGUgdmFsaWRhdG9ycyBNQlIgaW5jcmVhc2UgYXMgd2VsbCBhcyB0aGUgTUJSIHRoYXQgd2lsbCBiZSBuZWVkZWQgZm9yIHRoZSBwb29sIGl0c2VsZi4KLy8KLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIGNhbGwgXQovLyBAcGFyYW0ge1BheVR4bn0gbWJyUGF5bWVudCBwYXltZW50IGZyb20gY2FsbGVyIHdoaWNoIGNvdmVycyBtYnIgaW5jcmVhc2Ugb2YgYWRkaW5nIGEgbmV3IHBvb2wKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvcklkIGlzIGlkIG9mIHZhbGlkYXRvciB0byBwb29sIHRvIChtdXN0IGJlIG93bmVyIG9yIG1hbmFnZXIpCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtIGlzIG5vZGUgbnVtYmVyIHRvIGFkZCB0bwovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gcG9vbCBrZXkgdG8gY3JlYXRlZCBwb29sCmFkZFBvb2w6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU4MQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5vd25lciB8fAoJLy8gICAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm1hbmFnZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yJwoJLy8gICAgICkKCXR4biBTZW5kZXIKCWludCA4CglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJZHVwCglibnogKnNraXBfb3IxCgl0eG4gU2VuZGVyCglwdXNoaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0Cgk9PQoJfHwKCipza2lwX29yMToKCS8vIGNhbiBvbmx5IGJlIGNhbGxlZCBieSBvd25lciBvciBtYW5hZ2VyIG9mIHZhbGlkYXRvcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU4OAoJLy8gdmVyaWZ5UGF5VHhuKG1iclBheW1lbnQsIHsgYW1vdW50OiB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRQb29sTWJyLCByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcyB9KQoJLy8gdmVyaWZ5IGFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CgljYWxsc3ViIGdldE1ickFtb3VudHMKCWV4dHJhY3QgOCA4CglidG9pCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiJ0aGlzLmdldE1ickFtb3VudHMoKS5hZGRQb29sTWJyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIG1iclBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgUmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoibWJyUGF5bWVudCIsImZpZWxkIjoicmVjZWl2ZXIiLCJleHBlY3RlZCI6InRoaXMuYXBwLmFkZHJlc3MifQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MAoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NTkyCgkvLyBudW1Qb29sczogdWludDY0ID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIG51bVBvb2xzOiB1aW50NjQKCgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5MwoJLy8gKG51bVBvb2xzIGFzIHVpbnQ2NCkgPj0gTUFYX1BPT0xTCglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnQgMjQKCT49CglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gYWxyZWFkeSBhdCBtYXggcG9vbCBzaXplCgllcnIKCippZjdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5NgoJLy8gbnVtUG9vbHMgKz0gMQoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBudW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjU5OQoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcCwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogWwoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoMCwgNDA5NiksCgkvLyAgICAgICAgIHRoaXMuc3Rha2luZ1Bvb2xBcHByb3ZhbFByb2dyYW0uZXh0cmFjdCg0MDk2LCB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUgLSA0MDk2KSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogU3Rha2luZ1Bvb2wuY2xlYXJQcm9ncmFtKCksCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IFN0YWtpbmdQb29sLnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlLAoJLy8gICAgICAgZXh0cmFQcm9ncmFtUGFnZXM6IDMsCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsKCS8vICAgICAgICAgLy8gY3JlYXRpbmdDb250cmFjdElELCB2YWxpZGF0b3JJZCwgcG9vbElkLCBtaW5FbnRyeVN0YWtlCgkvLyAgICAgICAgIG1ldGhvZCgnY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQnKSwKCS8vICAgICAgICAgaXRvYih0aGlzLmFwcC5pZCksCgkvLyAgICAgICAgIGl0b2IodmFsaWRhdG9ySWQpLAoJLy8gICAgICAgICBpdG9iKG51bVBvb2xzIGFzIHVpbnQ2NCksCgkvLyAgICAgICAgIGl0b2IodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWluRW50cnlTdGFrZSksCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYwMAoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcAoJaW50IDAgLy8gTm9PcAoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjAxCgkvLyBhcHByb3ZhbFByb2dyYW06IFsKCS8vICAgICAgICAgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5leHRyYWN0KDAsIDQwOTYpLAoJLy8gICAgICAgICB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLmV4dHJhY3QoNDA5NiwgdGhpcy5zdGFraW5nUG9vbEFwcHJvdmFsUHJvZ3JhbS5zaXplIC0gNDA5NiksCgkvLyAgICAgICBdCglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglpbnQgMAoJcHVzaGludCA0MDk2Cglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZSAweDcwNmY2ZjZjNTQ2NTZkNzA2YzYxNzQ2NTQxNzA3MDcyNmY3NjYxNmM0Mjc5NzQ2NTczIC8vICJwb29sVGVtcGxhdGVBcHByb3ZhbEJ5dGVzIgoJcHVzaGludCA0MDk2CglieXRlIDB4NzA2ZjZmNmM1NDY1NmQ3MDZjNjE3NDY1NDE3MDcwNzI2Zjc2NjE2YzQyNzk3NDY1NzMgLy8gInBvb2xUZW1wbGF0ZUFwcHJvdmFsQnl0ZXMiCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnN0YWtpbmdQb29sQXBwcm92YWxQcm9ncmFtLnNpemUKCWFzc2VydAoJcHVzaGludCA0MDk2CgktCglib3hfZXh0cmFjdAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDUKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBTdGFraW5nUG9vbC5jbGVhclByb2dyYW0oKQoJcHVzaGJ5dGVzIDB4MGEKCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjA2CgkvLyBnbG9iYWxOdW1VaW50OiBTdGFraW5nUG9vbC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQKCXB1c2hpbnQgMTEKCWl0eG5fZmllbGQgR2xvYmFsTnVtVWludAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDcKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogU3Rha2luZ1Bvb2wuc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UKCWludCAzCglpdHhuX2ZpZWxkIEdsb2JhbE51bUJ5dGVTbGljZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDgKCS8vIGV4dHJhUHJvZ3JhbVBhZ2VzOiAzCglpbnQgMwoJaXR4bl9maWVsZCBFeHRyYVByb2dyYW1QYWdlcwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MDkKCS8vIGFwcGxpY2F0aW9uQXJnczogWwoJLy8gICAgICAgICAvLyBjcmVhdGluZ0NvbnRyYWN0SUQsIHZhbGlkYXRvcklkLCBwb29sSWQsIG1pbkVudHJ5U3Rha2UKCS8vICAgICAgICAgbWV0aG9kKCdjcmVhdGVBcHBsaWNhdGlvbih1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCcpLAoJLy8gICAgICAgICBpdG9iKHRoaXMuYXBwLmlkKSwKCS8vICAgICAgICAgaXRvYih2YWxpZGF0b3JJZCksCgkvLyAgICAgICAgIGl0b2IobnVtUG9vbHMgYXMgdWludDY0KSwKCS8vICAgICAgICAgaXRvYih0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlKSwKCS8vICAgICAgIF0KCXB1c2hieXRlcyAweDU5ZTkwYWE2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24odWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hpbnQgMjA5CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MTkKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgPSBudW1Qb29scyBhcyB1aW50MTYKCWludCAyNDIKCWZyYW1lX2RpZyAwIC8vIG51bVBvb2xzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2MjIKCS8vIHBvb2xBcHBJZCA9IHRoaXMuaXR4bi5jcmVhdGVkQXBwbGljYXRpb25JRC5pZAoJaXR4biBDcmVhdGVkQXBwbGljYXRpb25JRAoJZnJhbWVfYnVyeSAxIC8vIHBvb2xBcHBJZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYyMwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1tudW1Qb29scyAtIDFdLnBvb2xBcHBJZCA9IHBvb2xBcHBJZAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMCAvLyBudW1Qb29sczogdWludDY0CglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMSAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjI0CgkvLyB0aGlzLmFkZFBvb2xUb05vZGUodmFsaWRhdG9ySWQsIHBvb2xBcHBJZCwgbm9kZU51bSkKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIHBvb2xBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBhZGRQb29sVG9Ob2RlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjYzMgoJLy8gcmV0dXJuIHsgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IG51bVBvb2xzIGFzIHVpbnQ2NCwgcG9vbEFwcElkOiB0aGlzLml0eG4hLmNyZWF0ZWRBcHBsaWNhdGlvbklELmlkIH07CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJZnJhbWVfZGlnIDAgLy8gbnVtUG9vbHM6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglpdHhuIENyZWF0ZWRBcHBsaWNhdGlvbklECglpdG9iCgljb25jYXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGFkZFN0YWtlKHBheSx1aW50NjQsdWludDY0KSh1aW50NjQsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9hZGRTdGFrZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgMSAvLyBwYXkKCT09CgoJLy8gYXJndW1lbnQgMiAoc3Rha2VkQW1vdW50UGF5bWVudCkgZm9yIGFkZFN0YWtlIG11c3QgYmUgYSBwYXkgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJY2FsbHN1YiBhZGRTdGFrZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZFN0YWtlKHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4biwgdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgdmFsdWVUb1ZlcmlmeTogdWludDY0KTogVmFsaWRhdG9yUG9vbEtleQovLwovLyBBZGRzIHN0YWtlIHRvIGEgdmFsaWRhdG9yIHBvb2wuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7dWludDY0fSB2YWx1ZVRvVmVyaWZ5IC0gb25seSBpZiB2YWxpZGF0b3IgaGFzIGdhdGluZyB0byBlbnRlciAtIHRoaXMgaXMgYXNzZXQgaWQgb3IgbmZkIGlkIHRoYXQgY29ycmVzcG9uZHMgdG8gZ2F0aW5nLgovLyBUeG4gc2VuZGVyIGlzIGZhY3RvcmVkIGluIGFzIHdlbGwgaWYgdGhhdCBpcyBwYXJ0IG9mIGdhdGluZy4KLy8gKiBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleX0gLSBUaGUga2V5IG9mIHRoZSB2YWxpZGF0b3IgcG9vbC4KYWRkU3Rha2U6Cglwcm90byAzIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiA1CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0NQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkuZXhpc3RzLCAic3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCgkvLyBzcGVjaWZpZWQgdmFsaWRhdG9yIGlkIGlzbid0IHZhbGlkCglhc3NlcnQKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY0OAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcuc3Vuc2V0dGluZ09uID4gMAoJcHVzaGludCAyMjYKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT4KCWJ6ICppZjhfZW5kCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjQ5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnN1bnNldHRpbmdPbiA8IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLAoJLy8gICAgICAgICAiY2FuJ3Qgc3Rha2Ugd2l0aCBhIHZhbGlkYXRvciB0aGF0IGlzIHBhc3QgaXRzIHN1bnNldHRpbmcgdGltZSIKCS8vICAgICAgICkKCXB1c2hpbnQgMjI2CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKCTwKCgkvLyBjYW4ndCBzdGFrZSB3aXRoIGEgdmFsaWRhdG9yIHRoYXQgaXMgcGFzdCBpdHMgc3Vuc2V0dGluZyB0aW1lCglhc3NlcnQKCippZjhfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1NQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY1OQoJLy8gdmVyaWZ5UGF5VHhuKHN0YWtlZEFtb3VudFBheW1lbnQsIHsKCS8vICAgICAgIHNlbmRlcjogc3Rha2VyLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic3Rha2VkQW1vdW50UGF5bWVudCIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJzdGFrZXIifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzdGFrZWRBbW91bnRQYXltZW50IiwiZmllbGQiOiJyZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NjY2CgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnN0YXRlLnRvdGFsQWxnb1N0YWtlZCA8IHRoaXMubWF4QWxsb3dlZFN0YWtlKCksCgkvLyAgICAgICAndG90YWwgc3Rha2VkIGZvciBhbGwgb2YgYSB2YWxpZGF0b3JzIHBvb2xzIG1heSBub3QgZXhjZWVkIGhhcmQgY2FwJwoJLy8gICAgICkKCWludCAyNTIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJY2FsbHN1YiBtYXhBbGxvd2VkU3Rha2UKCTwKCgkvLyB0b3RhbCBzdGFrZWQgZm9yIGFsbCBvZiBhIHZhbGlkYXRvcnMgcG9vbHMgbWF5IG5vdCBleGNlZWQgaGFyZCBjYXAKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzMKCS8vIHRoaXMuZG9lc1N0YWtlck1lZXRHYXRpbmcodmFsaWRhdG9ySWQsIHZhbHVlVG9WZXJpZnkpCglmcmFtZV9kaWcgLTMgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBkb2VzU3Rha2VyTWVldEdhdGluZwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2NzUKCS8vIHJlYWxBbW91bnQgPSBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgQW1vdW50CglmcmFtZV9idXJ5IDEgLy8gcmVhbEFtb3VudDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3NgoJLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBtYnJBbXRMZWZ0QmVoaW5kOiB1aW50NjQKCgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY3OAoJLy8gIXRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIDAgLy8gc3Rha2VyOiBhZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJIQoJYnogKmlmOV9lbmQKCgkvLyAqaWY5X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODEKCS8vIG1ickFtdExlZnRCZWhpbmQgPSB0aGlzLmdldE1ickFtb3VudHMoKS5hZGRTdGFrZXJNYnIKCWNhbGxzdWIgZ2V0TWJyQW1vdW50cwoJZXh0cmFjdCAyNCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY4MgoJLy8gcmVhbEFtb3VudCAtPSBtYnJBbXRMZWZ0QmVoaW5kCglmcmFtZV9kaWcgMSAvLyByZWFsQW1vdW50OiB1aW50NjQKCWZyYW1lX2RpZyAyIC8vIG1ickFtdExlZnRCZWhpbmQ6IHVpbnQ2NAoJLQoJZnJhbWVfYnVyeSAxIC8vIHJlYWxBbW91bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODMKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmNyZWF0ZSgpCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWNvbmNhdAoJcHVzaGludCAxNDQKCWJveF9jcmVhdGUKCXBvcAoKKmlmOV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg3CgkvLyBmaW5kUmV0ID0gdGhpcy5maW5kUG9vbEZvclN0YWtlcih2YWxpZGF0b3JJZCwgc3Rha2VyLCByZWFsQW1vdW50KQoJZnJhbWVfZGlnIDEgLy8gcmVhbEFtb3VudDogdWludDY0CglmcmFtZV9kaWcgMCAvLyBzdGFrZXI6IGFkZHJlc3MKCWZyYW1lX2RpZyAtMiAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCglmcmFtZV9idXJ5IDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2ODgKCS8vIHBvb2xLZXkgPSBmaW5kUmV0WzBdCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6Njg5CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gZmluZFJldFsxXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkyCglnZXRiaXQKCWZyYW1lX2J1cnkgNCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5MAoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gZmluZFJldFsyXQoJZnJhbWVfZGlnIDMgLy8gZmluZFJldDogKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkzCglnZXRiaXQKCWZyYW1lX2J1cnkgNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo2OTEKCS8vIHBvb2xLZXkucG9vbElkID09PSAwCglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gTm8gcG9vbCBhdmFpbGFibGUgd2l0aCBmcmVlIHN0YWtlLiAgVmFsaWRhdG9yIG5lZWRzIHRvIGFkZCBhbm90aGVyIHBvb2wKCWVycgoKKmlmMTBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5NgoJLy8gdGhpcy51cGRhdGVTdGFrZXJQb29sU2V0KHN0YWtlciwgcG9vbEtleSkKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCWZyYW1lX2RpZyAwIC8vIHN0YWtlcjogYWRkcmVzcwoJY2FsbHN1YiB1cGRhdGVTdGFrZXJQb29sU2V0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjY5OQoJLy8gdGhpcy5jYWxsUG9vbEFkZFN0YWtlKAoJLy8gICAgICAgc3Rha2VkQW1vdW50UGF5bWVudCwKCS8vICAgICAgIHBvb2xLZXksCgkvLyAgICAgICBtYnJBbXRMZWZ0QmVoaW5kLAoJLy8gICAgICAgaXNOZXdTdGFrZXJUb1ZhbGlkYXRvciwKCS8vICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbAoJLy8gICAgICkKCWZyYW1lX2RpZyA1IC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJZnJhbWVfZGlnIDQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJZnJhbWVfZGlnIDIgLy8gbWJyQW10TGVmdEJlaGluZDogdWludDY0CglmcmFtZV9kaWcgMyAvLyBmaW5kUmV0OiAoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDI0CglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCgljYWxsc3ViIGNhbGxQb29sQWRkU3Rha2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzE0CgkvLyByZXR1cm4gcG9vbEtleTsKCWZyYW1lX2RpZyAzIC8vIGZpbmRSZXQ6ICgodWludDY0LHVpbnQ2NCx1aW50NjQpLGJvb2wsYm9vbCkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA1CglyZXRzdWIKCi8vIHNldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkKKmFiaV9yb3V0ZV9zZXRUb2tlblBheW91dFJhdGlvOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBzZXRUb2tlblBheW91dFJhdGlvKHVpbnQ2NCkodWludDY0WzI0XSx1aW50NjQpCgljYWxsc3ViIHNldFRva2VuUGF5b3V0UmF0aW8KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzZXRUb2tlblBheW91dFJhdGlvKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUpOiBQb29sVG9rZW5QYXlvdXRSYXRpbwovLwovLyBzZXRUb2tlblBheW91dFJhdGlvIGlzIGNhbGxlZCBieSBTdGFraW5nIFBvb2wgIyAxIChPTkxZKSB0byBhc2sgdGhlIHZhbGlkYXRvciAodXMpIHRvIGNhbGN1bGF0ZSB0aGUgcmF0aW9zCi8vIG9mIHN0YWtlIGluIHRoZSBwb29scyBmb3Igc3Vic2VxdWVudCB0b2tlbiBwYXlvdXRzIChpZTogMiBwb29scywgJzEwMCcgYWxnbyB0b3RhbCBzdGFrZWQsIDYwIGluIHBvb2wgMSwgYW5kIDQwCi8vIGluIHBvb2wgMikgIFRoaXMgaXMgZG9uZSBzbyB3ZSBoYXZlIGEgc3RhYmxlIHNuYXBzaG90IG9mIHN0YWtlIC0gdGFrZW4gb25jZSBwZXIgZXBvY2ggLSBvbmx5IHRyaWdnZXJlZCBieQovLyBwb29sIDEgZG9pbmcgcGF5b3V0LiAgcG9vbHMgb3RoZXIgdGhhbiAxIGRvaW5nIHBheW91dCBjYWxsIHBvb2wgMSB0byBhc2sgaXQgZG8gaXQgZmlyc3QuCi8vIEl0IHdvdWxkIGJlIDYwLzQwJSBpbiB0aGUgcG9vbFBjdE9mV2hvbGUgdmFsdWVzLiAgVGhlIHRva2VuIHJld2FyZCBwYXlvdXRzIHRoZW4gdXNlIHRoZXNlIHZhbHVlcyBpbnN0ZWFkIG9mCi8vIHRoZWlyICdjdXJyZW50JyBzdGFrZSB3aGljaCBjaGFuZ2VzIGFzIHBhcnQgb2YgdGhlIHBheW91dHMgdGhlbXNlbHZlcyAoYW5kIHBlb3BsZSBjb3VsZCBiZSBjaGFuZ2luZyBzdGFrZQovLyBkdXJpbmcgdGhlIGVwb2NoIHVwZGF0ZXMgYWNyb3NzIHBvb2xzKQovLwovLyBNdWx0aXBsZSBwb29scyB3aWxsIGNhbGwgdXMgdmlhIHBvb2wgMSAocG9vbDItPnBvb2wxLT52YWxpZGF0b3IsIGV0Yy4pIHNvIGRvbid0IGFzc2VydCBvbiBwb29sMSBjYWxsaW5nIG11bHRpcGxlCi8vIHRpbWVzIGluIHNhbWUgZXBvY2guICBKdXN0IHJldHVybi4KLy8KLy8gQHBhcmFtIHZhbGlkYXRvcklkIC0gdmFsaWRhdG9yIGlkIChhbmQgdGh1cyBwb29sKSBjYWxsaW5nIHVzLiAgVmVyaWZpZWQgc28gdGhhdCBzZW5kZXIgTVVTVCBiZSBwb29sIDEgb2YgdGhpcyB2YWxpZGF0b3IuCi8vIEByZXR1cm5zIFBvb2xUb2tlblBheW91dFJhdGlvIC0gdGhlIGZpbmlzaGVkIHJhdGlvIGRhdGEKc2V0VG9rZW5QYXlvdXRSYXRpbzoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzM0CgkvLyBwb29sMUFwcElEID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQKCWludCAyNjgKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3MzUKCS8vIGFzc2VydChwb29sMUFwcElEICE9PSAwKQoJZnJhbWVfZGlnIDAgLy8gcG9vbDFBcHBJRDogdWludDY0CglpbnQgMAoJIT0KCWFzc2VydAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczNwoJLy8gdGhpcy50eG4uc2VuZGVyICE9PSBBcHBJRC5mcm9tVWludDY0KHBvb2wxQXBwSUQpLmFkZHJlc3MKCXR4biBTZW5kZXIKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgkhPQoJYnogKmlmMTFfZW5kCgoJLy8gKmlmMTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjczOAoJLy8gcmV0dXJuIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpbzsKCWludCA3MDAgLy8gaGVhZE9mZnNldAoJcHVzaGludCAyMDAKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CgliICpzZXRUb2tlblBheW91dFJhdGlvKnJldHVybgoKKmlmMTFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NAoJLy8gY3VyUm91bmQgPSBnbG9iYWxzLnJvdW5kCglnbG9iYWwgUm91bmQKCWZyYW1lX2J1cnkgMSAvLyBjdXJSb3VuZDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc0NQoJLy8gbGFzdFBheW91dFVwZGF0ZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0CglwdXNoaW50IDg5MgoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CgoJLy8gKmlmMTJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ2CgkvLyBsYXN0UGF5b3V0VXBkYXRlICE9PSAwCglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWludCAwCgkhPQoJYnogKmlmMTJfZW5kCgoJLy8gKmlmMTJfY29uc2VxdWVudAoJLy8gKmlmMTNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzQ4CgkvLyAoQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpIGFzIHVpbnQ2NCkgPT09IGxhc3RQYXlvdXRVcGRhdGUKCWZyYW1lX2RpZyAwIC8vIHBvb2wxQXBwSUQ6IHVpbnQ2NAoJcHVzaGJ5dGVzIDB4NmM2MTczNzQ1MDYxNzk2Zjc1NzQgLy8gImxhc3RQYXlvdXQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sMUFwcElEKS5nbG9iYWxTdGF0ZSgnbGFzdFBheW91dCcpCglhc3NlcnQKCWZyYW1lX2RpZyAyIC8vIGxhc3RQYXlvdXRVcGRhdGU6IHVpbnQ2NAoJPT0KCWJ6ICppZjEzX2VuZAoKCS8vICppZjEzX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NDkKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgMjAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjEzX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTEKCS8vIGVwb2NoUm91bmRMZW5ndGggPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIGFzIHVpbnQ2NAoJcHVzaGludCAxNjkKCXB1c2hpbnQgNAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBlcG9jaFJvdW5kTGVuZ3RoOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzUyCgkvLyB0aGlzRXBvY2hCZWdpbiA9IGN1clJvdW5kIC0gKGN1clJvdW5kICUgZXBvY2hSb3VuZExlbmd0aCkKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAxIC8vIGN1clJvdW5kOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfYnVyeSA0IC8vIHRoaXNFcG9jaEJlZ2luOiB1aW50NjQKCgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTQKCS8vIGxhc3RQYXlvdXRVcGRhdGUgLSAobGFzdFBheW91dFVwZGF0ZSAlIGVwb2NoUm91bmRMZW5ndGgpID09PSB0aGlzRXBvY2hCZWdpbgoJZnJhbWVfZGlnIDIgLy8gbGFzdFBheW91dFVwZGF0ZTogdWludDY0CglmcmFtZV9kaWcgMiAvLyBsYXN0UGF5b3V0VXBkYXRlOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIGVwb2NoUm91bmRMZW5ndGg6IHVpbnQ2NAoJJQoJLQoJZnJhbWVfZGlnIDQgLy8gdGhpc0Vwb2NoQmVnaW46IHVpbnQ2NAoJPT0KCWJ6ICppZjE0X2VuZAoKCS8vICppZjE0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTUKCS8vIHJldHVybiB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnRva2VuUGF5b3V0UmF0aW87CglpbnQgNzAwIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgMjAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYiAqc2V0VG9rZW5QYXlvdXRSYXRpbypyZXR1cm4KCippZjE0X2VuZDoKCippZjEyX2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NTgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUudG9rZW5QYXlvdXRSYXRpby51cGRhdGVkRm9yUGF5b3V0ID0gY3VyUm91bmQKCXB1c2hpbnQgODkyCglmcmFtZV9kaWcgMSAvLyBjdXJSb3VuZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjAKCS8vIGN1ck51bVBvb2xzID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS5udW1Qb29scyBhcyB1aW50NjQKCWludCAyNDIKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA1IC8vIGN1ck51bVBvb2xzOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYxCgkvLyB0b3RhbFN0YWtlRm9yVmFsaWRhdG9yID0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQKCWludCAyNTIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgY3VyTnVtUG9vbHM7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDcgLy8gaTogdWludDY0CgoqZm9yXzI6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzYyCgkvLyBpIDwgY3VyTnVtUG9vbHMKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDUgLy8gY3VyTnVtUG9vbHM6IHVpbnQ2NAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjcKCS8vIG91clBvb2xQY3RPZldob2xlID0gd2lkZVJhdGlvKAoJLy8gICAgICAgICBbdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1tpXS50b3RhbEFsZ29TdGFrZWQsIDFfMDAwXzAwMF0sCgkvLyAgICAgICAgIFt0b3RhbFN0YWtlRm9yVmFsaWRhdG9yXQoJLy8gICAgICAgKQoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglwdXNoaW50IDFfMDAwXzAwMAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyA2IC8vIHRvdGFsU3Rha2VGb3JWYWxpZGF0b3I6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCWZyYW1lX2J1cnkgOCAvLyBvdXJQb29sUGN0T2ZXaG9sZTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvLnBvb2xQY3RPZldob2xlW2ldID0gb3VyUG9vbFBjdE9mV2hvbGUKCWludCA3MDAKCWZyYW1lX2RpZyA3IC8vIGk6IHVpbnQ2NAoJaW50IDgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJZnJhbWVfZGlnIDggLy8gb3VyUG9vbFBjdE9mV2hvbGU6IHVpbnQ2NAoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCipmb3JfMl9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3NjIKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6NzczCgkvLyByZXR1cm4gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS50b2tlblBheW91dFJhdGlvOwoJaW50IDcwMCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDIwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCipzZXRUb2tlblBheW91dFJhdGlvKnJldHVybjoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDgKCXJldHN1YgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfc3Rha2VVcGRhdGVkVmlhUmV3YXJkczoKCS8vIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQoJYnRvaQoKCS8vIHZhbGlkYXRvckNvbW1pc3Npb246IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJYnRvaQoKCS8vIHJld2FyZFRva2VuQW1vdW50UmVzZXJ2ZWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGFsZ29Ub0FkZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCgkvLyBhcmd1bWVudCA0IChwb29sS2V5KSBmb3Igc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzKCh1aW50NjQsdWludDY0LHVpbnQ2NCksdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgc3Rha2VVcGRhdGVkVmlhUmV3YXJkcwoJaW50IDEKCXJldHVybgoKLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyhwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBhbGdvVG9BZGQ6IHVpbnQ2NCwgcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0LCB2YWxpZGF0b3JDb21taXNzaW9uOiB1aW50NjQsIHNhdHVyYXRlZEJ1cm5Ub0ZlZVNpbms6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gc3Rha2VVcGRhdGVkVmlhUmV3YXJkcyBpcyBjYWxsZWQgYnkgU3Rha2luZyBwb29scyB0byBpbmZvcm0gdGhlIHZhbGlkYXRvciAodXMpIHRoYXQgYSBwYXJ0aWN1bGFyIGFtb3VudCBvZiB0b3RhbAovLyBzdGFrZSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgc3BlY2lmaWVkIHBvb2wuICBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0cyB3ZSBoYXZlIGluIG91ciBQb29sSW5mbyBzdG9yYWdlLgovLyBUaGUgY2FsbGluZyBBcHAgaWQgaXMgdmFsaWRhdGVkIGFnYWluc3Qgb3VyIHBvb2wgbGlzdCBhcyB3ZWxsLgovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBWYWxpZGF0b3JQb29sS2V5IHR5cGUKLy8gQHBhcmFtIHt1aW50NjR9IGFsZ29Ub0FkZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcwovLyBAcGFyYW0ge3VpbnQ2NH0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZCAtIGFtb3VudCB0aGlzIHZhbGlkYXRvcidzIHRvdGFsIHN0YWtlIGluY3JlYXNlZCB2aWEgcmV3YXJkcyAodGhhdCBzaG91bGQgYmUKLy8gQHBhcmFtIHt1aW50NjR9IHZhbGlkYXRvckNvbW1pc3Npb24gLSB0aGUgY29tbWlzc2lvbiBhbW91bnQgdGhlIHZhbGlkYXRvciB3YXMgcGFpZCwgaWYgYW55Ci8vIEBwYXJhbSB7dWludDY0fSBzYXR1cmF0ZWRCdXJuVG9GZWVTaW5rIC0gaWYgdGhlIHBvb2wgd2FzIGluIHNhdHVyYXRlZCBzdGF0ZSwgdGhlIGFtb3VudCBzZW50IGJhY2sgdG8gdGhlIGZlZSBzaW5rLgovLyBzZWVuIGFzICdhY2NvdW50ZWQgZm9yL3BlbmRpbmcgc3BlbnQnKQpzdGFrZVVwZGF0ZWRWaWFSZXdhcmRzOgoJcHJvdG8gNSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NAoJLy8gdGhpcy52ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXkpCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJY2FsbHN1YiB2ZXJpZnlQb29sS2V5Q2FsbGVyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5NwoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICs9IGFsZ29Ub0FkZAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo3OTgKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgKz0gYWxnb1RvQWRkCglpbnQgMjUyCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBhbGdvVG9BZGQ6IHVpbnQ2NAoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjc5OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgKz0gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZAoJaW50IDI2MAoJZHVwCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gcmV3YXJkVG9rZW5BbW91bnRSZXNlcnZlZDogdWludDY0CgkrCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODAxCgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSArPSBhbGdvVG9BZGQKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTIgLy8gYWxnb1RvQWRkOiB1aW50NjQKCSsKCWJ5dGUgMHg3Mzc0NjE2YjY1NjQgLy8gInN0YWtlZCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgwNAoJLy8gdGhpcy5yZXZlcmlmeU5GRE93bmVyc2hpcChwb29sS2V5LmlkKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCgljYWxsc3ViIHJldmVyaWZ5TkZET3duZXJzaGlwCglyZXRzdWIKCi8vIHN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKKmFiaV9yb3V0ZV9zdGFrZVJlbW92ZWQ6CgkvLyBzdGFrZXJSZW1vdmVkOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoc3Rha2VyUmVtb3ZlZCkgZm9yIHN0YWtlUmVtb3ZlZCBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglidG9pCgoJLy8gYW1vdW50UmVtb3ZlZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gc3Rha2VyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHN0YWtlcikgZm9yIHN0YWtlUmVtb3ZlZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gcG9vbEtleTogKHVpbnQ2NCx1aW50NjQsdWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCgkvLyBhcmd1bWVudCA0IChwb29sS2V5KSBmb3Igc3Rha2VSZW1vdmVkIG11c3QgYmUgYSAodWludDY0LHVpbnQ2NCx1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YWtlUmVtb3ZlZCgodWludDY0LHVpbnQ2NCx1aW50NjQpLGFkZHJlc3MsdWludDY0LHVpbnQ2NCxib29sKXZvaWQKCWNhbGxzdWIgc3Rha2VSZW1vdmVkCglpbnQgMQoJcmV0dXJuCgovLyBzdGFrZVJlbW92ZWQocG9vbEtleTogVmFsaWRhdG9yUG9vbEtleSwgc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRSZW1vdmVkOiB1aW50NjQsIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NCwgc3Rha2VyUmVtb3ZlZDogYm9vbGVhbik6IHZvaWQKLy8KLy8gc3Rha2VSZW1vdmVkIGlzIGNhbGxlZCBieSBTdGFraW5nIHBvb2xzIHRvIGluZm9ybSB0aGUgdmFsaWRhdG9yICh1cykgdGhhdCBhIHBhcnRpY3VsYXIgYW1vdW50IG9mIHRvdGFsIHN0YWtlIGhhcyBiZWVuIHJlbW92ZWQKLy8gZnJvbSB0aGUgc3BlY2lmaWVkIHBvb2wuICBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0cyB3ZSBoYXZlIGluIG91ciBQb29sSW5mbyBzdG9yYWdlLgovLyBJZiBhbnkgYW1vdW50IG9mIHJld2FyZFJlbW92ZWQgaXMgc3BlY2lmaWVkLCB0aGVuIHRoYXQgYW1vdW50IG9mIHJld2FyZCBpcyBzZW50IHRvIHRoZSB1c2UKLy8gVGhlIGNhbGxpbmcgQXBwIGlkIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IG91ciBwb29sIGxpc3QgYXMgd2VsbC4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IGNhbGxpbmcgdXMgZnJvbSB3aGljaCBzdGFrZSB3YXMgcmVtb3ZlZAovLyBAcGFyYW0ge0FkZHJlc3N9IHN0YWtlcgovLyBAcGFyYW0ge3VpbnQ2NH0gYW1vdW50UmVtb3ZlZCAtIGFsZ28gYW1vdW50IHJlbW92ZWQKLy8gQHBhcmFtIHt1aW50NjR9IHJld2FyZFJlbW92ZWQgLSBpZiBhcHBsaWNhYmxlLCBhbW91bnQgb2YgdG9rZW4gcmV3YXJkIHJlbW92ZWQgKGJ5IHBvb2wgMSBjYWxsZXIpIG9yIFRPIHJlbW92ZSBhbmQgcGF5IG91dCAodmlhIHBvb2wgMSBmcm9tIGRpZmZlcmVudCBwb29sIGNhbGxlcikKLy8gQHBhcmFtIHtib29sZWFufSBzdGFrZXJSZW1vdmVkCnN0YWtlUmVtb3ZlZDoKCXByb3RvIDUgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyAqaWYxNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4MzYKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgMzAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDMwMAoJPAoJYnogKmlmMTVfZW5kCgoJLy8gKmlmMTVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjgzNwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCXB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoqaWYxNV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODM5CgkvLyB0aGlzLnZlcmlmeVBvb2xLZXlDYWxsZXIocG9vbEtleSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CgljYWxsc3ViIHZlcmlmeVBvb2xLZXlDYWxsZXIKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQzCgkvLyBhc3NlcnQoYW1vdW50UmVtb3ZlZCA+IDAgfHwgcmV3YXJkUmVtb3ZlZCA+IDAsICdzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQnKQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJaW50IDAKCT4KCWR1cAoJYm56ICpza2lwX29yMgoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJaW50IDAKCT4KCXx8Cgoqc2tpcF9vcjI6CgkvLyBzaG91bGQgb25seSBiZSBjYWxsZWQgaWYgYWxnbyBvciByZXdhcmQgd2FzIHJlbW92ZWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDYKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnRvdGFsQWxnb1N0YWtlZCAtPSBhbW91bnRSZW1vdmVkCglpbnQgMjY4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDEKCS0KCWludCAxOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMTAgLy8gaGVhZE9mZnNldAoJKwoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnRSZW1vdmVkOiB1aW50NjQKCS0KCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NDcKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgLT0gYW1vdW50UmVtb3ZlZAoJaW50IDI1MgoJZHVwCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50UmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODQ4CgkvLyB0aGlzLnRvdGFsQWxnb1N0YWtlZC52YWx1ZSAtPSBhbW91bnRSZW1vdmVkCglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFJlbW92ZWQ6IHVpbnQ2NAoJLQoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyAqaWYxNl9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTAKCS8vIHJld2FyZFJlbW92ZWQgPiAwCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpbnQgMAoJPgoJYnogKmlmMTZfZWxzZQoKCS8vICppZjE2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTEKCS8vIHJld2FyZFRva2VuSUQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCXB1c2hpbnQgMTUzCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1MgoJLy8gYXNzZXJ0KHJld2FyZFRva2VuSUQgIT09IDAsICJyZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JRDogdWludDY0CglpbnQgMAoJIT0KCgkvLyByZXdhcmRSZW1vdmVkIGNhbid0IGJlIHNldCBpZiB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIHJld2FyZCB0b2tlbiEKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NTMKCS8vIGFzc2VydCgKCS8vICAgICAgICAgdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgPj0gcmV3YXJkUmVtb3ZlZCwKCS8vICAgICAgICAgJ3Jld2FyZCBiZWluZyByZW1vdmVkIG11c3QgYmUgY292ZXJlZCBieSBob2xkIGJhY2sgYW1vdW50JwoJLy8gICAgICAgKQoJaW50IDI2MAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC00IC8vIHJld2FyZFJlbW92ZWQ6IHVpbnQ2NAoJPj0KCgkvLyByZXdhcmQgYmVpbmcgcmVtb3ZlZCBtdXN0IGJlIGNvdmVyZWQgYnkgaG9sZCBiYWNrIGFtb3VudAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg1OQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLnJld2FyZFRva2VuSGVsZEJhY2sgLT0gcmV3YXJkUmVtb3ZlZAoJaW50IDI2MAoJZHVwCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CgktCglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWYxN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo4NjQKCS8vIHBvb2xLZXkucG9vbElkICE9PSAxCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAxCgkhPQoJYnogKmlmMTdfZW5kCgoJLy8gKmlmMTdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NQoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5wYXlUb2tlblJld2FyZD4oewoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzWzBdLnBvb2xBcHBJZCksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogW3N0YWtlciwgcmV3YXJkVG9rZW5JRCwgcmV3YXJkUmVtb3ZlZF0sCgkvLyAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4NjNmM2YyOGIgLy8gbWV0aG9kICJwYXlUb2tlblJld2FyZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NgoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCh0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbMF0ucG9vbEFwcElkKQoJaW50IDI2OAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg2NwoJLy8gbWV0aG9kQXJnczogW3N0YWtlciwgcmV3YXJkVG9rZW5JRCwgcmV3YXJkUmVtb3ZlZF0KCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklEOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgLTQgLy8gcmV3YXJkUmVtb3ZlZDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCippZjE3X2VuZDoKCWIgKmlmMTZfZW5kCgoqaWYxNl9lbHNlOgoKKmlmMTZfZW5kOgoJLy8gKmlmMThfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6ODkyCgkvLyBzdGFrZXJSZW1vdmVkCglmcmFtZV9kaWcgLTUgLy8gc3Rha2VyUmVtb3ZlZDogYm9vbGVhbgoJYnogKmlmMThfZW5kCgoJLy8gKmlmMThfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NAoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxTdGFrZXJzIC09IDEKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4IC8vIGhlYWRPZmZzZXQKCSsKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4IC8vIGhlYWRPZmZzZXQKCSsKCWludCAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAxCgktCglpdG9iCglleHRyYWN0IDYgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjg5NgoJLy8gcmVtb3ZlUmV0ID0gdGhpcy5yZW1vdmVGcm9tU3Rha2VyUG9vbFNldChzdGFrZXIsIDxWYWxpZGF0b3JQb29sS2V5PnsKCS8vICAgICAgICAgaWQ6IHBvb2xLZXkuaWQsCgkvLyAgICAgICAgIHBvb2xJZDogcG9vbEtleS5wb29sSWQsCgkvLyAgICAgICAgIHBvb2xBcHBJZDogcG9vbEtleS5wb29sQXBwSWQsCgkvLyAgICAgICB9KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gc3Rha2VyOiBBZGRyZXNzCgljYWxsc3ViIHJlbW92ZUZyb21TdGFrZXJQb29sU2V0CglmcmFtZV9idXJ5IDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDEKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvciA9IHJlbW92ZVJldFswXQoJZnJhbWVfZGlnIDEgLy8gcmVtb3ZlUmV0OiAoYm9vbCxib29sKQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglnZXRiaXQKCWZyYW1lX2J1cnkgMiAvLyBzdGFrZXJPdXRPZlRoaXNWYWxpZGF0b3I6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTAyCgkvLyBzdGFrZXJPdXRPZlByb3RvY29sID0gcmVtb3ZlUmV0WzFdCglmcmFtZV9kaWcgMSAvLyByZW1vdmVSZXQ6IChib29sLGJvb2wpCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJZnJhbWVfYnVyeSAzIC8vIHN0YWtlck91dE9mUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYxOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5MDQKCS8vIHN0YWtlck91dE9mVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gc3Rha2VyT3V0T2ZUaGlzVmFsaWRhdG9yOiBib29sCglieiAqaWYxOV9lbmQKCgkvLyAqaWYxOV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUuc3RhdGUudG90YWxTdGFrZXJzIC09IDEKCXB1c2hpbnQgMjQ0CglwdXNoaW50IDI0NAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDEKCS0KCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKKmlmMTlfZW5kOgoJLy8gKmlmMjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA4CgkvLyBzdGFrZXJPdXRPZlByb3RvY29sCglmcmFtZV9kaWcgMyAvLyBzdGFrZXJPdXRPZlByb3RvY29sOiBib29sCglieiAqaWYyMF9lbmQKCgkvLyAqaWYyMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTA5CgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgLT0gMQoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgktCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMjBfZW5kOgoKKmlmMThfZW5kOgoJcmV0c3ViCgovLyBmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKQoqYWJpX3JvdXRlX2ZpbmRQb29sRm9yU3Rha2VyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhbW91bnRUb1N0YWtlOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBzdGFrZXI6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoc3Rha2VyKSBmb3IgZmluZFBvb2xGb3JTdGFrZXIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbGlkYXRvcklkOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGZpbmRQb29sRm9yU3Rha2VyKHVpbnQ2NCxhZGRyZXNzLHVpbnQ2NCkoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxib29sLGJvb2wpCgljYWxsc3ViIGZpbmRQb29sRm9yU3Rha2VyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZmluZFBvb2xGb3JTdGFrZXIodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgc3Rha2VyOiBBZGRyZXNzLCBhbW91bnRUb1N0YWtlOiB1aW50NjQpOiBbVmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbl0KLy8KLy8gRmluZHMgdGhlIHBvb2wgZm9yIGEgc3Rha2VyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB2YWxpZGF0b3IgaWQsIHN0YWtlciBhZGRyZXNzLCBhbmQgYW1vdW50IHRvIHN0YWtlLgovLyBGaXJzdCBjaGVja3MgdGhlIHN0YWtlcnMgJ2FscmVhZHkgc3Rha2VkIGxpc3QnIGZvciB0aGUgdmFsaWRhdG9yIHByZWZlcnJpbmcgdGhvc2UgKGFkZGluZyBpZiBwb3NzaWJsZSkgdGhlbiBhZGRzCi8vIHRvIG5ldyBwb29sIGlmIG5lY2Vzc2FyeS4KLy8KLy8gQHBhcmFtIHtWYWxpZGF0b3JJZFR5cGV9IHZhbGlkYXRvcklkIC0gVGhlIGlkIG9mIHRoZSB2YWxpZGF0b3IuCi8vIEBwYXJhbSB7QWRkcmVzc30gc3Rha2VyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtlci4KLy8gQHBhcmFtIHt1aW50NjR9IGFtb3VudFRvU3Rha2UgLSBUaGUgYW1vdW50IHRvIHN0YWtlLgovLyBAcmV0dXJucyB7VmFsaWRhdG9yUG9vbEtleSwgYm9vbGVhbiwgYm9vbGVhbn0gLSBUaGUgcG9vbCBmb3IgdGhlIHN0YWtlciwgdHJ1ZS9mYWxzZSBvbiB3aGV0aGVyIHRoZSBzdGFrZXIgaXMgJ25ldycKLy8gdG8gdGhpcyBWQUxJREFUT1IsIGFuZCB0cnVlL2ZhbHNlIGlmIHN0YWtlciBpcyBuZXcgdG8gdGhlIHByb3RvY29sLgpmaW5kUG9vbEZvclN0YWtlcjoKCXByb3RvIDMgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDcKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTMwCgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjkzMQoJLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sID0gdHJ1ZQoJaW50IDEKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTM5CgkvLyBtYXhQZXJQb29sID0gdGhpcy5nZXRDdXJNYXhTdGFrZVBlclBvb2wodmFsaWRhdG9ySWQpCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBnZXRDdXJNYXhTdGFrZVBlclBvb2wKCWZyYW1lX2J1cnkgMiAvLyBtYXhQZXJQb29sOiB1aW50NjQKCgkvLyAqaWYyMV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDIKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLmV4aXN0cwoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0yIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cglib3hfbGVuCglzd2FwCglwb3AKCWJ6ICppZjIxX2VuZAoKCS8vICppZjIxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDMKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMiAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ0CgkvLyBhc3NlcnQodmFsaWRhdG9ySWQgIT09IDApCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHBvb2xTZXQubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIGk6IHVpbnQ2NAoKKmZvcl8zOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk0NQoJLy8gaSA8IHBvb2xTZXQubGVuZ3RoCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCA2Cgk8CglieiAqZm9yXzNfZW5kCgoJLy8gKmlmMjJfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ2CgkvLyBnbG9iYWxzLm9wY29kZUJ1ZGdldCA8IDMwMAoJZ2xvYmFsIE9wY29kZUJ1ZGdldAoJcHVzaGludCAzMDAKCTwKCWJ6ICppZjIyX2VuZAoKCS8vICppZjIyX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NDcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMjJfZW5kOgoJLy8gKmlmMjNfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ5CgkvLyBwb29sU2V0W2ldLmlkID09PSAwCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglpbnQgMAoJPT0KCWJ6ICppZjIzX2VuZAoKCS8vICppZjIzX2NvbnNlcXVlbnQKCWIgKmZvcl8zX2NvbnRpbnVlCgoqaWYyM19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTUyCgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCgkvLyAqaWYyNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTMKCS8vIHBvb2xTZXRbaV0uaWQgPT09IHZhbGlkYXRvcklkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJPT0KCWJ6ICppZjI0X2VuZAoKCS8vICppZjI0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NTUKCS8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3IgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCgoJLy8gKmlmMjVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTU3CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzW3Bvb2xTZXRbaV0ucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkICsgYW1vdW50VG9TdGFrZSA8PQoJLy8gICAgICAgICAgICAgbWF4UGVyUG9vbAoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgOCAvLyBoZWFkT2Zmc2V0CgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAxCgktCglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJKwoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjVfZW5kCgoJLy8gKmlmMjVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2MAoJLy8gcmV0dXJuIFtwb29sU2V0W2ldLCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIDMgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDI0CglleHRyYWN0MwoJYnl0ZSAweDAwCglpbnQgMAoJZnJhbWVfZGlnIDAgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbAoJc2V0Yml0CglpbnQgMQoJZnJhbWVfZGlnIDEgLy8gaXNOZXdTdGFrZXJUb1Byb3RvY29sOiBib29sCglzZXRiaXQKCWNvbmNhdAoJYiAqZmluZFBvb2xGb3JTdGFrZXIqcmV0dXJuCgoqaWYyNV9lbmQ6CgoqaWYyNF9lbmQ6CgoqZm9yXzNfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTQ1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl8zCgoqZm9yXzNfZW5kOgoKKmlmMjFfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk2NwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgYW1vdW50VG9TdGFrZSA+PSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5taW5FbnRyeVN0YWtlLAoJLy8gICAgICAgJ211c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbCcKCS8vICAgICApCglmcmFtZV9kaWcgLTMgLy8gYW1vdW50VG9TdGFrZTogdWludDY0CglwdXNoaW50IDIwOQoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk+PQoKCS8vIG11c3Qgc3Rha2UgYXQgbGVhc3QgdGhlIG1pbmltdW0gZm9yIHRoaXMgcG9vbAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3MwoJLy8gcG9vbHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLnBvb2xzKQoJaW50IDI2OCAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDQzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNSAvLyBwb29sczogKHVpbnQ2NCx1aW50MTYsdWludDY0KVsyNF0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc0CgkvLyBjdXJOdW1Qb29scyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUubnVtUG9vbHMgYXMgdWludDY0CglpbnQgMjQyCglpbnQgMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgNiAvLyBjdXJOdW1Qb29sczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJOdW1Qb29sczsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgNyAvLyBpOiB1aW50NjQKCipmb3JfNDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGkgPCBjdXJOdW1Qb29scwoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglmcmFtZV9kaWcgNiAvLyBjdXJOdW1Qb29sczogdWludDY0Cgk8CglieiAqZm9yXzRfZW5kCgoJLy8gKmlmMjZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTc2CgkvLyBwb29sc1tpXS50b3RhbEFsZ29TdGFrZWQgKyBhbW91bnRUb1N0YWtlIDw9IG1heFBlclBvb2wKCWZyYW1lX2RpZyA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDEwIC8vIGhlYWRPZmZzZXQKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0zIC8vIGFtb3VudFRvU3Rha2U6IHVpbnQ2NAoJKwoJZnJhbWVfZGlnIDIgLy8gbWF4UGVyUG9vbDogdWludDY0Cgk8PQoJYnogKmlmMjZfZW5kCgoJLy8gKmlmMjZfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjk3NwoJLy8gcmV0dXJuIFsKCS8vICAgICAgICAgICB7IGlkOiB2YWxpZGF0b3JJZCwgcG9vbElkOiBpICsgMSwgcG9vbEFwcElkOiBwb29sc1tpXS5wb29sQXBwSWQgfSwKCS8vICAgICAgICAgICBpc05ld1N0YWtlclRvVmFsaWRhdG9yLAoJLy8gICAgICAgICAgIGlzTmV3U3Rha2VyVG9Qcm90b2NvbCwKCS8vICAgICAgICAgXTsKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCglmcmFtZV9kaWcgNyAvLyBpOiB1aW50NjQKCWludCAxCgkrCglpdG9iCgljb25jYXQKCWZyYW1lX2RpZyA1IC8vIHBvb2xzOiAodWludDY0LHVpbnQxNix1aW50NjQpWzI0XQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMTgKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4MDAKCWludCAwCglmcmFtZV9kaWcgMCAvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yOiBib29sCglzZXRiaXQKCWludCAxCglmcmFtZV9kaWcgMSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2wKCXNldGJpdAoJY29uY2F0CgliICpmaW5kUG9vbEZvclN0YWtlcipyZXR1cm4KCippZjI2X2VuZDoKCipmb3JfNF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czo5NzUKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDcgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSA3IC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzQKCipmb3JfNF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6OTg1CgkvLyByZXR1cm4gW3sgaWQ6IHZhbGlkYXRvcklkLCBwb29sSWQ6IDAsIHBvb2xBcHBJZDogMCB9LCBpc05ld1N0YWtlclRvVmFsaWRhdG9yLCBpc05ld1N0YWtlclRvUHJvdG9jb2xdOwoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2wKCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbAoJc2V0Yml0Cgljb25jYXQKCipmaW5kUG9vbEZvclN0YWtlcipyZXR1cm46CgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA3CglyZXRzdWIKCi8vIG1vdmVQb29sVG9Ob2RlKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZToKCS8vIG5vZGVOdW06IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIHBvb2xBcHBJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gdmFsaWRhdG9ySWQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBtb3ZlUG9vbFRvTm9kZQoJaW50IDEKCXJldHVybgoKLy8gbW92ZVBvb2xUb05vZGUodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSwgcG9vbEFwcElkOiB1aW50NjQsIG5vZGVOdW06IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRmluZCB0aGUgc3BlY2lmaWVkIHBvb2wgKGluIGFueSBub2RlIG51bWJlcikgYW5kIG1vdmUgaXQgdG8gdGhlIHNwZWNpZmllZCBub2RlLgovLyBUaGUgcG9vbCBhY2NvdW50IGlzIGZvcmNlZCBvZmZsaW5lIGlmIG1vdmVkIHNvIHByaW9yIG5vZGUgd2lsbCBzdGlsbCBydW4gZm9yIDMyMCByb3VuZHMgYnV0Ci8vIG5ldyBrZXkgZ29lcyBvbmxpbmUgb24gbmV3IG5vZGUgc29vbiBhZnRlciAoMzIwIHJvdW5kcyBhZnRlciBpdCBnb2VzIG9ubGluZSkKLy8gTm8tb3AgaWYgc3VjY2VzcywgYXNzZXJ0cyBpZiBub3QgZm91bmQgb3IgY2FuJ3QgbW92ZSAgKG5vIHNwYWNlIGluIHRhcmdldCkKLy8gWyBPTkxZIE9XTkVSIE9SIE1BTkFHRVIgQ0FOIENIQU5HRSBdCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yLgovLyBAcGFyYW0ge3VpbnQ2NH0gcG9vbEFwcElkCi8vIEBwYXJhbSB7dWludDY0fSBub2RlTnVtCm1vdmVQb29sVG9Ob2RlOgoJcHJvdG8gMyAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDAxCgkvLyBhc3NlcnQoCgkvLyAgICAgICB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm93bmVyIHx8CgkvLyAgICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcubWFuYWdlciwKCS8vICAgICAgICdjYW4gb25seSBiZSBjYWxsZWQgYnkgb3duZXIgb3IgbWFuYWdlciBvZiB2YWxpZGF0b3InCgkvLyAgICAgKQoJdHhuIFNlbmRlcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09CglkdXAKCWJueiAqc2tpcF9vcjMKCXR4biBTZW5kZXIKCXB1c2hpbnQgNDAKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCT09Cgl8fAoKKnNraXBfb3IzOgoJLy8gY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IG93bmVyIG9yIG1hbmFnZXIgb2YgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAwNwoJLy8gbm9kZVBvb2xBc3NpZ25tZW50cyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cykKCWludCA5MDAgLy8gaGVhZE9mZnNldAoJcHVzaGludCAxOTIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDA4CgkvLyBhc3NlcnQobm9kZU51bSA+PSAxICYmIG5vZGVOdW0gPD0gTUFYX05PREVTLCAnbm9kZSBudW1iZXIgb3V0IG9mIGFsbG93YWJsZSByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDgKCTw9CgkmJgoKKnNraXBfYW5kMToKCS8vIG5vZGUgbnVtYmVyIG91dCBvZiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBmb3IgKGxldCBzcmNOb2RlSWR4ID0gMDsgc3JjTm9kZUlkeCA8IE1BWF9OT0RFUzsgc3JjTm9kZUlkeCArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCipmb3JfNToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEwCgkvLyBzcmNOb2RlSWR4IDwgTUFYX05PREVTCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludCA4Cgk8CglieiAqZm9yXzVfZW5kCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgTUFYX1BPT0xTX1BFUl9OT0RFOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl82OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgPCBNQVhfUE9PTFNfUEVSX05PREUKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDMKCTwKCWJ6ICpmb3JfNl9lbmQKCgkvLyAqaWYyN19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDEyCgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW3NyY05vZGVJZHhdLnBvb2xBcHBJZHNbaV0gPT09IHBvb2xBcHBJZAoJZnJhbWVfZGlnIDAgLy8gbm9kZVBvb2xBc3NpZ25tZW50czogKCh1aW50NjRbM10pWzhdKQoJaW50IDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0Cgk9PQoJYnogKmlmMjdfZW5kCgoJLy8gKmlmMjdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTMKCS8vIGFzc2VydChub2RlTnVtIC0gMSAhPT0gc3JjTm9kZUlkeCwgImNhbid0IG1vdmUgdG8gc2FtZSBub2RlIikKCWZyYW1lX2RpZyAtMyAvLyBub2RlTnVtOiB1aW50NjQKCWludCAxCgktCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCSE9CgoJLy8gY2FuJ3QgbW92ZSB0byBzYW1lIG5vZGUKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE1CgkvLyB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMubm9kZXNbc3JjTm9kZUlkeF0ucG9vbEFwcElkc1tpXSA9IDAKCWludCA5MDAKCWZyYW1lX2RpZyAxIC8vIHNyY05vZGVJZHg6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCA4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDE4CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLmdvT2ZmbGluZT4oewoJLy8gICAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLAoJLy8gICAgICAgICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHg1MWVmM2IyMSAvLyBtZXRob2QgImdvT2ZmbGluZSgpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTkKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjMKCS8vIHRoaXMuYWRkUG9vbFRvTm9kZSh2YWxpZGF0b3JJZCwgcG9vbEFwcElkLCBub2RlTnVtKQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBcHBJZDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJY2FsbHN1YiBhZGRQb29sVG9Ob2RlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMjQKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmMjdfZW5kOgoKKmZvcl82X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwMTEKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzYKCipmb3JfNl9lbmQ6CgoqZm9yXzVfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTAxMAoJLy8gc3JjTm9kZUlkeCArPSAxCglmcmFtZV9kaWcgMSAvLyBzcmNOb2RlSWR4OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gc3JjTm9kZUlkeDogdWludDY0CgliICpmb3JfNQoKKmZvcl81X2VuZDoKCS8vIGNvdWxkbid0IGZpbmQgcG9vbCBhcHAgaWQgaW4gbm9kZXMgdG8gbW92ZQoJZXJyCglyZXRzdWIKCi8vIGVtcHR5VG9rZW5SZXdhcmRzKHVpbnQ2NCxhZGRyZXNzKXVpbnQ2NAoqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyByZWNlaXZlcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChyZWNlaXZlcikgZm9yIGVtcHR5VG9rZW5SZXdhcmRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWxpZGF0b3JJZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlbXB0eVRva2VuUmV3YXJkcyh1aW50NjQsYWRkcmVzcyl1aW50NjQKCWNhbGxzdWIgZW1wdHlUb2tlblJld2FyZHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBlbXB0eVRva2VuUmV3YXJkcyh2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlLCByZWNlaXZlcjogQWRkcmVzcyk6IHVpbnQ2NAovLwovLyBTZW5kcyB0aGUgcmV3YXJkIHRva2VucyBoZWxkIGluIHBvb2wgMSB0byBzcGVjaWZpZWQgcmVjZWl2ZXIuCi8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSB0aGUgb3duZXIgd2hlbiB0aGV5IHdhbnQgdG8gZ2V0IHJld2FyZCB0b2tlbnMgJ2JhY2snIHdoaWNoIHRoZXkgc2VudCB0bwovLyB0aGUgZmlyc3QgcG9vbCAobGlrZWx5IGJlY2F1c2UgdmFsaWRhdG9yIGlzIHN1bnNldHRpbmcuICBBbnkgdG9rZW5zIGN1cnJlbnRseSAncmVzZXJ2ZWQnIGZvciBzdGFrZXJzIHRvIGNsYWltIHdpbGwKLy8gTk9UIGJlIHNlbnQgYXMgdGhleSBtdXN0IGJlIGhlbGQgYmFjayBmb3Igc3Rha2VycyB0byBsYXRlciBjbGFpbS4KLy8gWyBPTkxZIE9XTkVSIENBTiBDQUxMXQovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHtBZGRyZXNzfSByZWNlaXZlciAtIHRoZSBhY2NvdW50IHRvIHNlbmQgdGhlIHRva2VucyB0byAobXVzdCBhbHJlYWR5IGJlIG9wdGVkLWluIHRvIHRoZSByZXdhcmQgdG9rZW4pCi8vIEByZXR1cm5zIHt1aW50NjR9IHRoZSBhbW91bnQgb2YgcmV3YXJkIHRva2VuIHNlbnQKZW1wdHlUb2tlblJld2FyZHM6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDMKCS8vIGFzc2VydCgKCS8vICAgICAgIHRoaXMudHhuLnNlbmRlciA9PT0gdGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5jb25maWcub3duZXIsCgkvLyAgICAgICAnY2FuIG9ubHkgYmUgY2FsbGVkIGJ5IHZhbGlkYXRvciBvd25lcicKCS8vICAgICApCgl0eG4gU2VuZGVyCglpbnQgOAoJaW50IDMyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJPT0KCgkvLyBjYW4gb25seSBiZSBjYWxsZWQgYnkgdmFsaWRhdG9yIG93bmVyCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0NwoJLy8gcmV3YXJkVG9rZW5JZCA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnJld2FyZFRva2VuSWQKCXB1c2hpbnQgMTUzCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA0OAoJLy8gcmV3YXJkVG9rZW5IZWxkQmFjayA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuc3RhdGUucmV3YXJkVG9rZW5IZWxkQmFjawoJaW50IDI2MAoJaW50IDgKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNDkKCS8vIGFzc2VydChyZXdhcmRUb2tlbklkICE9PSAwLCAidGhpcyB2YWxpZGF0b3IgZG9lc24ndCBoYXZlIGEgcmV3YXJkIHRva2VuIGRlZmluZWQiKQoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0CglpbnQgMAoJIT0KCgkvLyB0aGlzIHZhbGlkYXRvciBkb2Vzbid0IGhhdmUgYSByZXdhcmQgdG9rZW4gZGVmaW5lZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEwNTAKCS8vIHBvb2xPbmVBcHBJZCA9IEFwcElELmZyb21VaW50NjQodGhpcy52YWxpZGF0b3JMaXN0KHZhbGlkYXRvcklkKS52YWx1ZS5wb29sc1swXS5wb29sQXBwSWQpCglpbnQgMjY4CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDUyCgkvLyB0b2tlblJld2FyZEJhbCA9IHBvb2xPbmVBcHBJZC5hZGRyZXNzLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQocmV3YXJkVG9rZW5JZCkpIC0gcmV3YXJkVG9rZW5IZWxkQmFjawoJZnJhbWVfZGlnIDIgLy8gcG9vbE9uZUFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIDAgLy8gcmV3YXJkVG9rZW5JZDogdWludDY0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXBvcAoJZnJhbWVfZGlnIDEgLy8gcmV3YXJkVG9rZW5IZWxkQmFjazogdWludDY0CgktCglmcmFtZV9idXJ5IDMgLy8gdG9rZW5SZXdhcmRCYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU1CgkvLyBzZW5kTWV0aG9kQ2FsbDx0eXBlb2YgU3Rha2luZ1Bvb2wucHJvdG90eXBlLnBheVRva2VuUmV3YXJkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbcmVjZWl2ZXIsIHJld2FyZFRva2VuSWQsIHRva2VuUmV3YXJkQmFsXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJYnl0ZSAweDYzZjNmMjhiIC8vIG1ldGhvZCAicGF5VG9rZW5SZXdhcmQoYWRkcmVzcyx1aW50NjQsdWludDY0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU2CgkvLyBhcHBsaWNhdGlvbklEOiBwb29sT25lQXBwSWQKCWZyYW1lX2RpZyAyIC8vIHBvb2xPbmVBcHBJZDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTA1NwoJLy8gbWV0aG9kQXJnczogW3JlY2VpdmVyLCByZXdhcmRUb2tlbklkLCB0b2tlblJld2FyZEJhbF0KCWZyYW1lX2RpZyAtMiAvLyByZWNlaXZlcjogQWRkcmVzcwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAwIC8vIHJld2FyZFRva2VuSWQ6IHVpbnQ2NAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAzIC8vIHRva2VuUmV3YXJkQmFsOiB1aW50NjQKCWl0b2IKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDU5CgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sT25lQXBwSWQuYWRkcmVzcy5hc3NldEJhbGFuY2UoQXNzZXRJRC5mcm9tVWludDY0KHJld2FyZFRva2VuSWQpKSA9PT0gcmV3YXJkVG9rZW5IZWxkQmFjaywKCS8vICAgICAgICdiYWxhbmNlIG9mIHJlbWFpbmluZyByZXdhcmQgdG9rZW5zIHNob3VsZCBtYXRjaCB0aGUgaGVsZCBiYWNrIGFtb3VudCcKCS8vICAgICApCglmcmFtZV9kaWcgMiAvLyBwb29sT25lQXBwSWQ6IHVpbnQ2NAoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCglmcmFtZV9kaWcgMCAvLyByZXdhcmRUb2tlbklkOiB1aW50NjQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJcG9wCglmcmFtZV9kaWcgMSAvLyByZXdhcmRUb2tlbkhlbGRCYWNrOiB1aW50NjQKCT09CgoJLy8gYmFsYW5jZSBvZiByZW1haW5pbmcgcmV3YXJkIHRva2VucyBzaG91bGQgbWF0Y2ggdGhlIGhlbGQgYmFjayBhbW91bnQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gdG9rZW5SZXdhcmRCYWw7CglmcmFtZV9kaWcgMyAvLyB0b2tlblJld2FyZEJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyKHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCi8vCi8vIExvZ3MgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbGlkYXRvciB0byB0aGUgc3lzdGVtLCBpdHMgaW5pdGlhbCBvd25lciBhbmQgbWFuYWdlcgovLwovLwovLyB2ZXJpZnlQb29sS2V5Q2FsbGVyIHZlcmlmaWVzIHRoZSBwYXNzZWQgaW4ga2V5IChmcm9tIGEgc3Rha2luZyBwb29sIGNhbGxpbmcgdXMgdG8gdXBkYXRlIG1ldHJpY3MpIGlzIHZhbGlkCi8vIGFuZCBtYXRjaGVzIHRoZSBpbmZvcm1hdGlvbiB3ZSBoYXZlIGluIG91ciBzdGF0ZS4gICdGYWtlJyBwb29scyBjb3VsZCBjYWxsIHVzIHRvIHVwZGF0ZSBvdXIgZGF0YSwgYnV0IHRoZXkKLy8gY2FuJ3QgZmFrZSB0aGUgaWRzIGFuZCBtb3N0IGltcG9ydGFudGx5IGFwcGxpY2F0aW9uIGlkKCEpIG9mIHRoZSBjYWxsZXIgdGhhdCBoYXMgdG8gbWF0Y2guCnZlcmlmeVBvb2xLZXlDYWxsZXI6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2MQoJLy8gYXNzZXJ0KHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS5leGlzdHMsICJ0aGUgc3BlY2lmaWVkIHZhbGlkYXRvciBpZCBpc24ndCB2YWxpZCIpCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYm94X2xlbgoJc3dhcAoJcG9wCgoJLy8gdGhlIHNwZWNpZmllZCB2YWxpZGF0b3IgaWQgaXNuJ3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYyCgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPD0gTUFYX1BPT0xTLCAncG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UnKQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMjQKCTw9CgoJLy8gcG9vbCBpZCBub3QgaW4gdmFsaWQgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTYzCgkvLyBhc3NlcnQoCgkvLyAgICAgICBwb29sS2V5LnBvb2xJZCA+IDAgJiYgKHBvb2xLZXkucG9vbElkIGFzIHVpbnQxNikgPD0gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnN0YXRlLm51bVBvb2xzLAoJLy8gICAgICAgJ3Bvb2wgaWQgb3V0c2lkZSBvZiByYW5nZSBvZiBwb29scyBjcmVhdGVkIGZvciB0aGlzIHZhbGlkYXRvcicKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWludCAwCgk+CglkdXAKCWJ6ICpza2lwX2FuZDIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJaW50IDI0MgoJaW50IDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJPD0KCSYmCgoqc2tpcF9hbmQyOgoJLy8gcG9vbCBpZCBvdXRzaWRlIG9mIHJhbmdlIG9mIHBvb2xzIGNyZWF0ZWQgZm9yIHRoaXMgdmFsaWRhdG9yCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTE2OQoJLy8gYXNzZXJ0KAoJLy8gICAgICAgcG9vbEtleS5wb29sQXBwSWQgPT09IHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5wb29sc1twb29sS2V5LnBvb2xJZCAtIDFdLnBvb2xBcHBJZCwKCS8vICAgICAgICJUaGUgcGFzc2VkIGluIGFwcCBpZCBkb2Vzbid0IG1hdGNoIHRoZSBwYXNzZWQgaW4gaWRzIgoJLy8gICAgICkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCgk9PQoKCS8vIFRoZSBwYXNzZWQgaW4gYXBwIGlkIGRvZXNuJ3QgbWF0Y2ggdGhlIHBhc3NlZCBpbiBpZHMKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5hZGRyZXNzKQoJdHhuIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwoJcG9wCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExNzYKCS8vIGFzc2VydChwb29sS2V5LmlkID09PSAoQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzY2MTZjNjk2NDYxNzQ2ZjcyNDk2NCAvLyAidmFsaWRhdG9ySWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3ZhbGlkYXRvcklkJykKCWFzc2VydAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTc3CgkvLyBhc3NlcnQocG9vbEtleS5wb29sSWQgPT09IChBcHBJRC5mcm9tVWludDY0KHBvb2xLZXkucG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgncG9vbElkJykgYXMgdWludDY0KSkKCWZyYW1lX2RpZyAtMSAvLyBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMTYgOAoJYnRvaQoJcHVzaGJ5dGVzIDB4NzA2ZjZmNmM0OTY0IC8vICJwb29sSWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sS2V5LnBvb2xBcHBJZCkuZ2xvYmFsU3RhdGUoJ3Bvb2xJZCcpCglhc3NlcnQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gcmV2ZXJpZnlORkRPd25lcnNoaXAodmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZSk6IHZvaWQKLy8KLy8gVGhpcyBtZXRob2QgdmVyaWZpZXMgdGhlIG93bmVyc2hpcCBvZiBORkQgKE5hbWVkIEZ1bmN0aW9uIERhdGEpIGJ5IGEgdmFsaWRhdG9yLgovLyBJZiB0aGUgb3duZXJzaGlwIGlzIG5vIGxvbmdlciB2YWxpZCwgaXQgcmVtb3ZlcyB0aGUgTkZEIGZyb20gdGhlIHZhbGlkYXRvcidzIGNvbmZpZ3VyYXRpb24uCi8vCi8vIEBwYXJhbSB7VmFsaWRhdG9ySWRUeXBlfSB2YWxpZGF0b3JJZCAtIFRoZSBpZCBvZiB0aGUgdmFsaWRhdG9yIHdob3NlIGRhdGEgc2hvdWxkIGJlIHJlLWV2YWx1YXRlZC4KcmV2ZXJpZnlORkRPd25lcnNoaXA6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODcKCS8vIHZhbGlkYXRvckNvbmZpZyA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3ZhbGlkYXRvckNvbmZpZwoKCS8vICppZjI4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExODgKCS8vIHZhbGlkYXRvckNvbmZpZy5uZmRGb3JJbmZvICE9PSAwCglwdXNoaW50IDcyCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmMjhfZW5kCgoJLy8gKmlmMjhfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTEKCS8vIG5mZE93bmVyID0gQXBwSUQuZnJvbVVpbnQ2NCh2YWxpZGF0b3JDb25maWcubmZkRm9ySW5mbykuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpIGFzIEFkZHJlc3MKCXB1c2hpbnQgNzIKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJYnRvaQoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodmFsaWRhdG9yQ29uZmlnLm5mZEZvckluZm8pLmdsb2JhbFN0YXRlKCdpLm93bmVyLmEnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDEgLy8gbmZkT3duZXI6IGFkZHJlc3MKCgkvLyAqaWYyOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMTkzCgkvLyB2YWxpZGF0b3JDb25maWcub3duZXIgIT09IG5mZE93bmVyICYmIHZhbGlkYXRvckNvbmZpZy5tYW5hZ2VyICE9PSBuZmRPd25lcgoJaW50IDgKCWludCAzMgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWZyYW1lX2RpZyAxIC8vIG5mZE93bmVyOiBhZGRyZXNzCgkhPQoJZHVwCglieiAqc2tpcF9hbmQzCglwdXNoaW50IDQwCglpbnQgMzIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9kaWcgMSAvLyBuZmRPd25lcjogYWRkcmVzcwoJIT0KCSYmCgoqc2tpcF9hbmQzOgoJYnogKmlmMjlfZW5kCgoJLy8gKmlmMjlfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjExOTUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLm5mZEZvckluZm8gPSAwCglwdXNoaW50IDcyCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCippZjI5X2VuZDoKCippZjI4X2VuZDoKCXJldHN1YgoKLy8gdmFsaWRhdGVDb25maWcoY29uZmlnOiBWYWxpZGF0b3JDb25maWcpOiB2b2lkCnZhbGlkYXRlQ29uZmlnOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMDIKCS8vIGFzc2VydCgKCS8vICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ1R5cGUgPj0gR0FUSU5HX1RZUEVfTk9ORSAmJiBjb25maWcuZW50cnlHYXRpbmdUeXBlIDw9IEdBVElOR19UWVBFX0NPTlNUX01BWCwKCS8vICAgICAgICdnYXRpbmcgdHlwZSBub3QgdmFsaWQnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDgwIDEKCWJ0b2kKCWludCAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ0CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgODAgMQoJYnRvaQoJcHVzaGludCA0Cgk8PQoJJiYKCipza2lwX2FuZDQ6CgkvLyBnYXRpbmcgdHlwZSBub3QgdmFsaWQKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjA2CgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcuZXBvY2hSb3VuZExlbmd0aCA+PSBNSU5fRVBPQ0hfTEVOR1RIICYmIGNvbmZpZy5lcG9jaFJvdW5kTGVuZ3RoIDw9IE1BWF9FUE9DSF9MRU5HVEgsCgkvLyAgICAgICAnZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UnCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kNQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDE2OSA0CglidG9pCglpbnQgMTAwMDAwMAoJPD0KCSYmCgoqc2tpcF9hbmQ1OgoJLy8gZXBvY2ggbGVuZ3RoIG5vdCBpbiBhbGxvd2FibGUgcmFuZ2UKCWFzc2VydAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjEwCgkvLyBhc3NlcnQoCgkvLyAgICAgICBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yID49IE1JTl9QQ1RfVE9fVkFMSURBVE9SICYmIGNvbmZpZy5wZXJjZW50VG9WYWxpZGF0b3IgPD0gTUFYX1BDVF9UT19WQUxJREFUT1IsCgkvLyAgICAgICAnY29tbWlzc2lvbiBwZXJjZW50YWdlIG5vdCB2YWxpZCcKCS8vICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgk+PQoJZHVwCglieiAqc2tpcF9hbmQ2CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAxMDAwMDAwCgk8PQoJJiYKCipza2lwX2FuZDY6CgkvLyBjb21taXNzaW9uIHBlcmNlbnRhZ2Ugbm90IHZhbGlkCglhc3NlcnQKCgkvLyAqaWYzMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjE0CgkvLyBjb25maWcucGVyY2VudFRvVmFsaWRhdG9yICE9PSAwCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTczIDQKCWJ0b2kKCWludCAwCgkhPQoJYnogKmlmMzBfZW5kCgoJLy8gKmlmMzBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMTUKCS8vIGFzc2VydCgKCS8vICAgICAgICAgY29uZmlnLnZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICE9PSBBZGRyZXNzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgICAndmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMTc3IDMyCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CgoJLy8gdmFsaWRhdG9yQ29tbWlzc2lvbkFkZHJlc3MgbXVzdCBiZSBzZXQgaWYgcGVyY2VudCB0byB2YWxpZGF0b3IgaXMgbm90IDAKCWFzc2VydAoKKmlmMzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyMjAKCS8vIGFzc2VydChjb25maWcubWluRW50cnlTdGFrZSA+PSBNSU5fQUxHT19TVEFLRV9QRVJfUE9PTCwgJ3N0YWtpbmcgcG9vbCBtdXN0IGhhdmUgbWluaW11bSBlbnRyeSBvZiAxIGFsZ28nKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIwOSA4CglidG9pCglpbnQgMTAwMDAwMAoJPj0KCgkvLyBzdGFraW5nIHBvb2wgbXVzdCBoYXZlIG1pbmltdW0gZW50cnkgb2YgMSBhbGdvCglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyMgoJLy8gYXNzZXJ0KAoJLy8gICAgICAgY29uZmlnLnBvb2xzUGVyTm9kZSA+IDAgJiYgY29uZmlnLnBvb2xzUGVyTm9kZSA8PSBNQVhfUE9PTFNfUEVSX05PREUsCgkvLyAgICAgICAnbnVtYmVyIG9mIHBvb2xzIHBlciBub2RlIGV4Y2VlZHMgYWxsb3dlZCBudW1iZXInCgkvLyAgICAgKQoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNSAxCglidG9pCglpbnQgMAoJPgoJZHVwCglieiAqc2tpcF9hbmQ3CglmcmFtZV9kaWcgLTEgLy8gY29uZmlnOiBWYWxpZGF0b3JDb25maWcKCWV4dHJhY3QgMjI1IDEKCWJ0b2kKCWludCAzCgk8PQoJJiYKCipza2lwX2FuZDc6CgkvLyBudW1iZXIgb2YgcG9vbHMgcGVyIG5vZGUgZXhjZWVkcyBhbGxvd2VkIG51bWJlcgoJYXNzZXJ0CgoJLy8gKmlmMzFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTIyNgoJLy8gY29uZmlnLnN1bnNldHRpbmdPbiAhPT0gMAoJZnJhbWVfZGlnIC0xIC8vIGNvbmZpZzogVmFsaWRhdG9yQ29uZmlnCglleHRyYWN0IDIyNiA4CglidG9pCglpbnQgMAoJIT0KCWJ6ICppZjMxX2VuZAoKCS8vICppZjMxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjI3CgkvLyBhc3NlcnQoY29uZmlnLnN1bnNldHRpbmdPbiA+IGdsb2JhbHMubGF0ZXN0VGltZXN0YW1wLCAnc3Vuc2V0dGluZ09uIG11c3QgYmUgbGF0ZXIgdGhhbiBub3cgaWYgc2V0JykKCWZyYW1lX2RpZyAtMSAvLyBjb25maWc6IFZhbGlkYXRvckNvbmZpZwoJZXh0cmFjdCAyMjYgOAoJYnRvaQoJZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAoJPgoKCS8vIHN1bnNldHRpbmdPbiBtdXN0IGJlIGxhdGVyIHRoYW4gbm93IGlmIHNldAoJYXNzZXJ0CgoqaWYzMV9lbmQ6CglyZXRzdWIKCi8vIGNhbGxQb29sQWRkU3Rha2Uoc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuLCBwb29sS2V5OiBWYWxpZGF0b3JQb29sS2V5LCBtYnJBbXRQYWlkOiB1aW50NjQsIGlzTmV3U3Rha2VyVG9WYWxpZGF0b3I6IGJvb2xlYW4sIGlzTmV3U3Rha2VyVG9Qcm90b2NvbDogYm9vbGVhbik6IHZvaWQKLy8KLy8gQWRkcyBhIHN0YWtlcnMgYW1vdW50IG9mIGFsZ28gdG8gYSB2YWxpZGF0b3IgcG9vbCwgdHJhbnNmZXJyaW5nIHRoZSBhbGdvIHdlIHJlY2VpdmVkIGZyb20gdGhlbSAoYWxyZWFkeSB2ZXJpZmllZAovLyBieSBvdXIgY2FsbGVyKSB0byB0aGUgc3Rha2luZyBwb29sIGFjY291bnQsIGFuZCB0aGVuIHRlbGxpbmcgaXQgYWJvdXQgdGhlIGFtb3VudCBiZWluZyBhZGRlZCBmb3IgdGhlIHNwZWNpZmllZAovLyBzdGFrZXIuCi8vCi8vIEBwYXJhbSB7UGF5VHhufSBzdGFrZWRBbW91bnRQYXltZW50IC0gcGF5bWVudCBjb21pbmcgZnJvbSBzdGFrZXIgdG8gcGxhY2UgaW50byBhIHBvb2wKLy8gQHBhcmFtIHtWYWxpZGF0b3JQb29sS2V5fSBwb29sS2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsaWRhdG9yIHBvb2wuCi8vIEBwYXJhbSB7dWludDY0fSBtYnJBbXRQYWlkIC0gQW1vdW50IHRoZSB1c2VyIGlzIGxlYXZpbmcgYmVoaW5kIGluIHRoZSB2YWxpZGF0b3IgdG8gcGF5IGZvciB0aGVpciBzdGFrZXIgTUJSIGNvc3QKLy8gQHBhcmFtIHtib29sZWFufSBpc05ld1N0YWtlclRvVmFsaWRhdG9yIC0gaWYgdGhpcyBpcyBhIG5ldywgZmlyc3QtdGltZSBzdGFrZXIgdG8gdGhlIHZhbGlkYXRvcgovLyBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3U3Rha2VyVG9Qcm90b2NvbCAtIGlmIHRoaXMgaXMgYSBuZXcsIGZpcnN0LXRpbWUgc3Rha2VyIHRvIHRoZSBwcm90b2NvbApjYWxsUG9vbEFkZFN0YWtlOgoJcHJvdG8gNSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjQ5CgkvLyBwb29sQXBwSWQgPSB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS5wb29sQXBwSWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAwCgkrCglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI1MwoJLy8gc2VuZE1ldGhvZENhbGw8dHlwZW9mIFN0YWtpbmdQb29sLnByb3RvdHlwZS5hZGRTdGFrZSwgdWludDY0Pih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCksCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIGFtb3VudDogc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VkQW1vdW50UGF5bWVudDogUGF5VHhuCglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtMyAvLyBtYnJBbXRQYWlkOiB1aW50NjQKCS0KCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTgKCS8vIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcwoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhmOWM3MGNiZCAvLyBtZXRob2QgImFkZFN0YWtlKHBheSxhZGRyZXNzKXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNTQKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKQoJZnJhbWVfZGlnIDAgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjU1CgkvLyBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIC8vID09PT09PT0KCS8vICAgICAgICAgLy8gVEhJUyBJUyBBIFNFTkQgb2YgdGhlIGFtb3VudCByZWNlaXZlZCByaWdodCBiYWNrIG91dCBhbmQgaW50byB0aGUgc3Rha2luZyBwb29sIGNvbnRyYWN0IGFjY291bnQuCgkvLyAgICAgICAgIHsgYW1vdW50OiBzdGFrZWRBbW91bnRQYXltZW50LmFtb3VudCAtIG1ickFtdFBhaWQsIHJlY2VpdmVyOiBBcHBJRC5mcm9tVWludDY0KHBvb2xBcHBJZCkuYWRkcmVzcyB9LAoJLy8gICAgICAgICAvLyA9PT09PT09CgkvLyAgICAgICAgIHN0YWtlZEFtb3VudFBheW1lbnQuc2VuZGVyLAoJLy8gICAgICAgXQoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlZEFtb3VudFBheW1lbnQ6IFBheVR4bgoJZ3R4bnMgU2VuZGVyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoKCS8vICppZjMyX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjMKCS8vIGdsb2JhbHMub3Bjb2RlQnVkZ2V0IDwgNTAwCglnbG9iYWwgT3Bjb2RlQnVkZ2V0CglwdXNoaW50IDUwMAoJPAoJYnogKmlmMzJfZW5kCgoJLy8gKmlmMzJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKKmlmMzJfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjgKCS8vIHBvb2xOdW1TdGFrZXJzID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdudW1TdGFrZXJzJykgYXMgdWludDY0CglmcmFtZV9kaWcgMCAvLyBwb29sQXBwSWQ6IHVpbnQ2NAoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQocG9vbEFwcElkKS5nbG9iYWxTdGF0ZSgnbnVtU3Rha2VycycpCglhc3NlcnQKCWZyYW1lX2J1cnkgMSAvLyBwb29sTnVtU3Rha2VyczogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNjkKCS8vIHBvb2xBbGdvU3Rha2VkID0gQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdzdGFrZWQnKSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIHBvb2xBcHBJZDogdWludDY0CglieXRlIDB4NzM3NDYxNmI2NTY0IC8vICJzdGFrZWQiCglhcHBfZ2xvYmFsX2dldF9leAoKCS8vIGdsb2JhbCBzdGF0ZSB2YWx1ZSBkb2VzIG5vdCBleGlzdDogQXBwSUQuZnJvbVVpbnQ2NChwb29sQXBwSWQpLmdsb2JhbFN0YXRlKCdzdGFrZWQnKQoJYXNzZXJ0CglmcmFtZV9idXJ5IDIgLy8gcG9vbEFsZ29TdGFrZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjcwCgkvLyB0aGlzLnZhbGlkYXRvckxpc3QocG9vbEtleS5pZCkudmFsdWUucG9vbHNbcG9vbEtleS5wb29sSWQgLSAxXS50b3RhbFN0YWtlcnMgPSBwb29sTnVtU3Rha2VycyBhcyB1aW50MTYKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCA4IC8vIGhlYWRPZmZzZXQKCSsKCWZyYW1lX2RpZyAxIC8vIHBvb2xOdW1TdGFrZXJzOiB1aW50NjQKCWl0b2IKCWV4dHJhY3QgNiAyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI3MQoJLy8gdGhpcy52YWxpZGF0b3JMaXN0KHBvb2xLZXkuaWQpLnZhbHVlLnBvb2xzW3Bvb2xLZXkucG9vbElkIC0gMV0udG90YWxBbGdvU3Rha2VkID0gcG9vbEFsZ29TdGFrZWQKCWludCAyNjggLy8gaGVhZE9mZnNldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJLQoJaW50IDE4CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAxMCAvLyBoZWFkT2Zmc2V0CgkrCglmcmFtZV9kaWcgMiAvLyBwb29sQWxnb1N0YWtlZDogdWludDY0CglpdG9iCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyAqaWYzM19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc0CgkvLyBpc05ld1N0YWtlclRvVmFsaWRhdG9yCglmcmFtZV9kaWcgLTQgLy8gaXNOZXdTdGFrZXJUb1ZhbGlkYXRvcjogYm9vbGVhbgoJYnogKmlmMzNfZW5kCgoJLy8gKmlmMzNfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyNzUKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbFN0YWtlcnMgKz0gMQoJcHVzaGludCAyNDQKCXB1c2hpbnQgMjQ0CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYzM19lbmQ6CgkvLyAqaWYzNF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc3CgkvLyBpc05ld1N0YWtlclRvUHJvdG9jb2wKCWZyYW1lX2RpZyAtNSAvLyBpc05ld1N0YWtlclRvUHJvdG9jb2w6IGJvb2xlYW4KCWJ6ICppZjM0X2VuZAoKCS8vICppZjM0X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjc4CgkvLyB0aGlzLm51bVN0YWtlcnMudmFsdWUgKz0gMQoJYnl0ZSAweDZlNzU2ZDUzNzQ2MTZiNjU3MjczIC8vICJudW1TdGFrZXJzIgoJYXBwX2dsb2JhbF9nZXQKCWludCAxCgkrCglieXRlIDB4NmU3NTZkNTM3NDYxNmI2NTcyNzMgLy8gIm51bVN0YWtlcnMiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKKmlmMzRfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdChwb29sS2V5LmlkKS52YWx1ZS5zdGF0ZS50b3RhbEFsZ29TdGFrZWQgKz0gc3Rha2VkQW1vdW50UGF5bWVudC5hbW91bnQgLSBtYnJBbXRQYWlkCglpbnQgMjUyCglkdXAKCWludCA4CglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJaXRvYgoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0yIC8vIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkKCWV4dHJhY3QgMCA4CglidG9pCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODEKCS8vIHRoaXMudG90YWxBbGdvU3Rha2VkLnZhbHVlICs9IHN0YWtlZEFtb3VudFBheW1lbnQuYW1vdW50IC0gbWJyQW10UGFpZAoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZWRBbW91bnRQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIC0zIC8vIG1ickFtdFBhaWQ6IHVpbnQ2NAoJLQoJKwoJYnl0ZSAweDczNzQ2MTZiNjU2NCAvLyAic3Rha2VkIgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlU3Rha2VyUG9vbFNldChzdGFrZXI6IEFkZHJlc3MsIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiB2b2lkCnVwZGF0ZVN0YWtlclBvb2xTZXQ6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODUKCS8vIGFzc2VydCh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS5leGlzdHMpCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODcKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI4OAoJLy8gZmlyc3RFbXB0eSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gZmlyc3RFbXB0eTogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl83OgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyODkKCS8vIGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGgKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDYKCTwKCWJ6ICpmb3JfN19lbmQKCgkvLyAqaWYzNV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkwCgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMCAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjM1X2VuZAoKCS8vICppZjM1X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjkyCgkvLyByZXR1cm47CglyZXRzdWIKCippZjM1X2VuZDoKCS8vICppZjM2X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEyOTQKCS8vIGZpcnN0RW1wdHkgPT09IDAgJiYgcG9vbFNldFtpXS5pZCA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWR1cAoJYnogKnNraXBfYW5kOAoJZnJhbWVfZGlnIDAgLy8gcG9vbFNldDogKHVpbnQ2NCx1aW50NjQsdWludDY0KVs2XQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJaW50IDAKCSsKCWludCA4CglleHRyYWN0MwoJYnRvaQoJaW50IDAKCT09CgkmJgoKKnNraXBfYW5kODoKCWJ6ICppZjM2X2VuZAoKCS8vICppZjM2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjk1CgkvLyBmaXJzdEVtcHR5ID0gaSArIDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBmaXJzdEVtcHR5OiB1aW50NjQKCippZjM2X2VuZDoKCipmb3JfN19jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMjg5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAyIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl83CgoqZm9yXzdfZW5kOgoJLy8gKmlmMzdfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTI5OAoJLy8gZmlyc3RFbXB0eSA9PT0gMAoJZnJhbWVfZGlnIDEgLy8gZmlyc3RFbXB0eTogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjM3X2VuZAoKCS8vICppZjM3X2NvbnNlcXVlbnQKCS8vIE5vIGVtcHR5IHNsb3QgYXZhaWxhYmxlIGluIHRoZSBzdGFrZXIgcG9vbCBzZXQKCWVycgoKKmlmMzdfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMDEKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ZpcnN0RW1wdHkgLSAxXSA9IHBvb2xLZXkKCWZyYW1lX2RpZyAxIC8vIGZpcnN0RW1wdHk6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJYnl0ZSAweDczNzA3MyAvLyAic3BzIgoJZnJhbWVfZGlnIC0xIC8vIHN0YWtlcjogQWRkcmVzcwoJY29uY2F0Cgljb3ZlciAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyByZW1vdmVGcm9tU3Rha2VyUG9vbFNldChzdGFrZXI6IEFkZHJlc3MsIHBvb2xLZXk6IFZhbGlkYXRvclBvb2xLZXkpOiBbYm9vbGVhbiwgYm9vbGVhbl0KLy8KLy8gUmVtb3ZlcyBhIHBvb2wga2V5IGZyb20gdGhlIHN0YWtlcidzIGFjdGl2ZSBwb29sIHNldCAtIGZhaWxzIGlmIG5vdCBmb3VuZCAoISkKLy8KLy8gQHBhcmFtIHtBZGRyZXNzfSBzdGFrZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgc3Rha2VyLgovLyBAcGFyYW0ge1ZhbGlkYXRvclBvb2xLZXl9IHBvb2xLZXkgLSBUaGUgcG9vbCBrZXkgdGhleSBzaG91bGQgYmUgc3RvcmVkIGluCi8vCi8vIEByZXR1cm4gW2Jvb2xlYW4sIGJvb2xlYW5dIFtpcyB0aGUgc3Rha2VyIGdvbmUgZnJvbSBBTEwgcG9vbHMgb2YgdGhlIGdpdmVuIFZBTElEQVRPUiwgYW5kIGlzIHN0YWtlciBnb25lIGZyb20gQUxMIHBvb2xzXQpyZW1vdmVGcm9tU3Rha2VyUG9vbFNldDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxNAoJLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50ID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE1CgkvLyBpbkFueVBvb2xDb3VudCA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaW5BbnlQb29sQ291bnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE2CgkvLyBmb3VuZCA9IGZhbHNlCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMTgKCS8vIHBvb2xTZXQgPSBjbG9uZSh0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZSkKCWJ5dGUgMHg3MzcwNzMgLy8gInNwcyIKCWZyYW1lX2RpZyAtMSAvLyBzdGFrZXI6IEFkZHJlc3MKCWNvbmNhdAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5zdGFrZXJQb29sU2V0KHN0YWtlcikudmFsdWUKCWFzc2VydAoJZnJhbWVfYnVyeSAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YWtlclBvb2xTZXQoc3Rha2VyKS52YWx1ZS5sZW5ndGg7IGkgKz0gMSkKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gaTogdWludDY0CgoqZm9yXzg6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMxOQoJLy8gaSA8IHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlLmxlbmd0aAoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgNgoJPAoJYnogKmZvcl84X2VuZAoKCS8vICppZjM4X2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjAKCS8vIHBvb2xTZXRbaV0uaWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIHBvb2xTZXQ6ICh1aW50NjQsdWludDY0LHVpbnQ2NClbNl0KCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDI0CgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAwCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmMzhfZW5kCgoJLy8gKmlmMzhfY29uc2VxdWVudAoJYiAqZm9yXzhfY29udGludWUKCippZjM4X2VuZDoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzIzCgkvLyBpbkFueVBvb2xDb3VudCArPSAxCglmcmFtZV9kaWcgMSAvLyBpbkFueVBvb2xDb3VudDogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCgkvLyAqaWYzOV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI0CgkvLyBwb29sU2V0W2ldLmlkID09PSBwb29sS2V5LmlkCglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMAoJKwoJaW50IDgKCWV4dHJhY3QzCglidG9pCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJZXh0cmFjdCAwIDgKCWJ0b2kKCT09CglieiAqaWYzOV9lbmQKCgkvLyAqaWYzOV9jb25zZXF1ZW50CgkvLyAqaWY0MF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzI1CgkvLyBwb29sU2V0W2ldID09PSBwb29sS2V5CglmcmFtZV9kaWcgMyAvLyBwb29sU2V0OiAodWludDY0LHVpbnQ2NCx1aW50NjQpWzZdCglmcmFtZV9kaWcgNCAvLyBpOiB1aW50NjQKCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMjQKCWV4dHJhY3QzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEtleTogVmFsaWRhdG9yUG9vbEtleQoJPT0KCWJ6ICppZjQwX2Vsc2UKCgkvLyAqaWY0MF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMyNgoJLy8gZm91bmQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSAyIC8vIGZvdW5kOiBib29sCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzMjgKCS8vIHRoaXMuc3Rha2VyUG9vbFNldChzdGFrZXIpLnZhbHVlW2ldID0geyBpZDogMCwgcG9vbElkOiAwLCBwb29sQXBwSWQ6IDAgfQoJZnJhbWVfZGlnIDQgLy8gaTogdWludDY0CglpbnQgMjQKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4NzM3MDczIC8vICJzcHMiCglmcmFtZV9kaWcgLTEgLy8gc3Rha2VyOiBBZGRyZXNzCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgliICppZjQwX2VuZAoKKmlmNDBfZWxzZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzMwCgkvLyBpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgKz0gMQoJZnJhbWVfZGlnIDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaW5TYW1lVmFsaWRhdG9yUG9vbENvdW50OiB1aW50NjQKCippZjQwX2VuZDoKCippZjM5X2VuZDoKCipmb3JfOF9jb250aW51ZToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzE5CgkvLyBpICs9IDEKCWZyYW1lX2RpZyA0IC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgNCAvLyBpOiB1aW50NjQKCWIgKmZvcl84CgoqZm9yXzhfZW5kOgoJLy8gKmlmNDFfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzNAoJLy8gIWZvdW5kCglmcmFtZV9kaWcgMiAvLyBmb3VuZDogYm9vbAoJIQoJYnogKmlmNDFfZW5kCgoJLy8gKmlmNDFfY29uc2VxdWVudAoJLy8gTm8gbWF0Y2hpbmcgc2xvdCBmb3VuZCB3aGVuIHRvbGQgdG8gcmVtb3ZlIGEgcG9vbCBmcm9tIHRoZSBzdGFrZXJzIHNldAoJZXJyCgoqaWY0MV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTMzOAoJLy8gcmV0dXJuIFtpblNhbWVWYWxpZGF0b3JQb29sQ291bnQgPT09IDAsIGluQW55UG9vbENvdW50ID09PSAwXTsKCWJ5dGUgMHgwMAoJaW50IDAKCWZyYW1lX2RpZyAwIC8vIGluU2FtZVZhbGlkYXRvclBvb2xDb3VudDogdWludDY0CglpbnQgMAoJPT0KCXNldGJpdAoJaW50IDEKCWZyYW1lX2RpZyAxIC8vIGluQW55UG9vbENvdW50OiB1aW50NjQKCWludCAwCgk9PQoJc2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgovLyBhZGRQb29sVG9Ob2RlKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHBvb2xBcHBJZDogdWludDY0LCBub2RlTnVtOiB1aW50NjQpOiB2b2lkCmFkZFBvb2xUb05vZGU6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDIKCS8vIG5vZGVQb29sQXNzaWdubWVudHMgPSBjbG9uZSh0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLm5vZGVQb29sQXNzaWdubWVudHMpCglpbnQgOTAwIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgMTkyCglieXRlIDB4NzYgLy8gInYiCglmcmFtZV9kaWcgLTEgLy8gdmFsaWRhdG9ySWQ6IFZhbGlkYXRvcklkVHlwZQoJaXRvYgoJY29uY2F0Cgljb3ZlciAyCglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSAwIC8vIG5vZGVQb29sQXNzaWdubWVudHM6ICgodWludDY0WzNdKVs4XSkKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0MwoJLy8gbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvciA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLnBvb2xzUGVyTm9kZSBhcyB1aW50NjQKCXB1c2hpbnQgMjI1CglpbnQgMQoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM0NQoJLy8gYXNzZXJ0KG5vZGVOdW0gPj0gMSAmJiBub2RlTnVtIDw9IE1BWF9OT0RFUywgJ25vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZScpCglmcmFtZV9kaWcgLTMgLy8gbm9kZU51bTogdWludDY0CglpbnQgMQoJPj0KCWR1cAoJYnogKnNraXBfYW5kOQoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDgKCTw9CgkmJgoKKnNraXBfYW5kOToKCS8vIG5vZGUgbnVtYmVyIG5vdCBpbiB2YWxpZCByYW5nZQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcjsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCipmb3JfOToKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ3CgkvLyBpIDwgbWF4UG9vbHNQZXJOb2RlRm9yVGhpc1ZhbGlkYXRvcgoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMSAvLyBtYXhQb29sc1Blck5vZGVGb3JUaGlzVmFsaWRhdG9yOiB1aW50NjQKCTwKCWJ6ICpmb3JfOV9lbmQKCgkvLyAqaWY0Ml9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzQ4CgkvLyBub2RlUG9vbEFzc2lnbm1lbnRzLm5vZGVzW25vZGVOdW0gLSAxXS5wb29sQXBwSWRzW2ldID09PSAwCglmcmFtZV9kaWcgMCAvLyBub2RlUG9vbEFzc2lnbm1lbnRzOiAoKHVpbnQ2NFszXSlbOF0pCglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDEKCS0KCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgOAoJZXh0cmFjdDMKCWJ0b2kKCWludCAwCgk9PQoJYnogKmlmNDJfZW5kCgoJLy8gKmlmNDJfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTAKCS8vIHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUubm9kZVBvb2xBc3NpZ25tZW50cy5ub2Rlc1tub2RlTnVtIC0gMV0ucG9vbEFwcElkc1tpXSA9IHBvb2xBcHBJZAoJaW50IDkwMAoJZnJhbWVfZGlnIC0zIC8vIG5vZGVOdW06IHVpbnQ2NAoJaW50IDEKCS0KCWludCAyNAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglpbnQgMAoJKwoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgOAoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCgkrCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFwcElkOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNTEKCS8vIHJldHVybjsKCXJldHN1YgoKKmlmNDJfZW5kOgoKKmZvcl85X2NvbnRpbnVlOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNDcKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzkKCipmb3JfOV9lbmQ6CgkvLyBubyBhdmFpbGFibGUgc3BhY2UgaW4gc3BlY2lmaWVkIG5vZGUgZm9yIHRoaXMgcG9vbAoJZXJyCglyZXRzdWIKCi8vIGRvZXNTdGFrZXJNZWV0R2F0aW5nKHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUsIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gQ2hlY2tzIGlmIGEgc3Rha2VyIG1lZXRzIHRoZSBnYXRpbmcgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGUgdmFsaWRhdG9yLgovLwovLyBAcGFyYW0ge1ZhbGlkYXRvcklkVHlwZX0gdmFsaWRhdG9ySWQgLSBUaGUgaWQgb2YgdGhlIHZhbGlkYXRvci4KLy8gQHBhcmFtIHt1aW50NjR9IHZhbHVlVG9WZXJpZnkgLSBUaGUgdmFsdWUgdG8gdmVyaWZ5IGFnYWluc3QgdGhlIGdhdGluZyByZXF1aXJlbWVudHMuCi8vIEByZXR1cm5zIHt2b2lkfSBvciBhc3NlcnRzIGlmIHJlcXVpcmVtZW50cyBub3QgbWV0Lgpkb2VzU3Rha2VyTWVldEdhdGluZzoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NQoJLy8gdHlwZSA9IHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnLmVudHJ5R2F0aW5nVHlwZQoJcHVzaGludCA4MAoJaW50IDEKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdHlwZTogdWludDgKCgkvLyAqaWY0M19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzY2CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9OT05FCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDAKCT09CglieiAqaWY0M19lbmQKCgkvLyAqaWY0M19jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2NwoJLy8gcmV0dXJuOwoJcmV0c3ViCgoqaWY0M19lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM2OQoJLy8gc3Rha2VyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDEgLy8gc3Rha2VyOiBhZGRyZXNzCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzAKCS8vIGNvbmZpZyA9IGNsb25lKHRoaXMudmFsaWRhdG9yTGlzdCh2YWxpZGF0b3JJZCkudmFsdWUuY29uZmlnKQoJaW50IDAKCWludCAyNDIKCWJ5dGUgMHg3NiAvLyAidiIKCWZyYW1lX2RpZyAtMSAvLyB2YWxpZGF0b3JJZDogVmFsaWRhdG9ySWRUeXBlCglpdG9iCgljb25jYXQKCWNvdmVyIDIKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCgkvLyAqaWY0NF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzc0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVFNfQ1JFQVRFRF9CWSB8fAoJLy8gICAgICAgdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRfSUQgfHwKCS8vICAgICAgIHR5cGUgPT09IEdBVElOR19UWVBFX0NSRUFURURfQllfTkZEX0FERFJFU1NFUwoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAxCgk9PQoJZHVwCglibnogKnNraXBfb3I0CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDIKCT09Cgl8fAoKKnNraXBfb3I0OgoJZHVwCglibnogKnNraXBfb3I1CglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDMKCT09Cgl8fAoKKnNraXBfb3I1OgoJYnogKmlmNDRfZW5kCgoJLy8gKmlmNDRfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzNzgKCS8vIGFzc2VydCh2YWx1ZVRvVmVyaWZ5ICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM3OQoJLy8gYmFsUmVxdWlyZWQgPSB0aGlzLnZhbGlkYXRvckxpc3QodmFsaWRhdG9ySWQpLnZhbHVlLmNvbmZpZy5nYXRpbmdBc3NldE1pbkJhbGFuY2UKCXB1c2hpbnQgMTQ1CglpbnQgOAoJYnl0ZSAweDc2IC8vICJ2IgoJZnJhbWVfZGlnIC0xIC8vIHZhbGlkYXRvcklkOiBWYWxpZGF0b3JJZFR5cGUKCWl0b2IKCWNvbmNhdAoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoJLy8gKmlmNDVfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MAoJLy8gYmFsUmVxdWlyZWQgPT09IDAKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCWludCAwCgk9PQoJYnogKmlmNDVfZW5kCgoJLy8gKmlmNDVfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzODEKCS8vIGJhbFJlcXVpcmVkID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMyAvLyBiYWxSZXF1aXJlZDogdWludDY0CgoqaWY0NV9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4MwoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICBzdGFrZXIuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KSkgPj0gYmFsUmVxdWlyZWQsCgkvLyAgICAgICAgICdtdXN0IGhhdmUgcmVxdWlyZWQgbWluaW11bSBiYWxhbmNlIG9mIHZhbGlkYXRvciBkZWZpbmVkIHRva2VuIHRvIGFkZCBzdGFrZScKCS8vICAgICAgICkKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWZyYW1lX2RpZyAzIC8vIGJhbFJlcXVpcmVkOiB1aW50NjQKCT49CgoJLy8gbXVzdCBoYXZlIHJlcXVpcmVkIG1pbmltdW0gYmFsYW5jZSBvZiB2YWxpZGF0b3IgZGVmaW5lZCB0b2tlbiB0byBhZGQgc3Rha2UKCWFzc2VydAoKKmlmNDRfZW5kOgoJLy8gKmlmNDZfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM4OAoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQVNTRVRTX0NSRUFURURfQlkKCWZyYW1lX2RpZyAwIC8vIHR5cGU6IHVpbnQ4CglpbnQgMQoJPT0KCWJ6ICppZjQ2X2VuZAoKCS8vICppZjQ2X2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzg5CgkvLyBhc3NlcnQoCgkvLyAgICAgICAgIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yID09PSBjb25maWcuZW50cnlHYXRpbmdBZGRyZXNzLAoJLy8gICAgICAgICAnc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgY3JlYXRlZCBieSBjcmVhdG9yIHRoYXQgdGhlIHZhbGlkYXRvciBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCA4MSAzMgoJPT0KCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCB0aGUgdmFsaWRhdG9yIGRlZmluZWQgYXMgYSByZXF1aXJlbWVudCB0byBzdGFrZQoJYXNzZXJ0CgoqaWY0Nl9lbmQ6CgkvLyAqaWY0N19jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk0CgkvLyB0eXBlID09PSBHQVRJTkdfVFlQRV9BU1NFVF9JRAoJZnJhbWVfZGlnIDAgLy8gdHlwZTogdWludDgKCWludCAyCgk9PQoJYnogKmlmNDdfZW5kCgoJLy8gKmlmNDdfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjEzOTUKCS8vIGFzc2VydCh2YWx1ZVRvVmVyaWZ5ICE9PSAwKQoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlVG9WZXJpZnk6IHVpbnQ2NAoJaW50IDAKCSE9Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5NgoJLy8gZm91bmQgPSBmYWxzZQoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyBmb3VuZDogYm9vbAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk3CgkvLyBjb25maWcuZW50cnlHYXRpbmdBc3NldHMKCWZyYW1lX2RpZyAyIC8vIGNvbmZpZzogKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpCglleHRyYWN0IDExMyAzMgoJZHVwCglmcmFtZV9idXJ5IDUgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyAqaWY0OF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxMzk4CgkvLyB2YWx1ZVRvVmVyaWZ5ID09PSBhc3NldElkCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9kaWcgNiAvLyBhc3NldElkOiB1aW50NjQKCT09CglieiAqaWY0OF9lbmQKCgkvLyAqaWY0OF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTM5OQoJLy8gZm91bmQgPSB0cnVlCglpbnQgMQoJZnJhbWVfYnVyeSA0IC8vIGZvdW5kOiBib29sCgliICpmb3JPZl8wX2VuZAoKKmlmNDhfZW5kOgoKKmZvck9mXzBfY29udGludWU6CgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDMyIC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgNSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA3IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSA2IC8vIGFzc2V0SWQ6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MDMKCS8vIGFzc2VydChmb3VuZCwgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGlkZW50aWNhbCB0byB0aGUgYXNzZXQgaWQgZGVmaW5lZCBhcyBhIHJlcXVpcmVtZW50IHRvIHN0YWtlJykKCWZyYW1lX2RpZyA0IC8vIGZvdW5kOiBib29sCgoJLy8gc3BlY2lmaWVkIGFzc2V0IG11c3QgYmUgaWRlbnRpY2FsIHRvIHRoZSBhc3NldCBpZCBkZWZpbmVkIGFzIGEgcmVxdWlyZW1lbnQgdG8gc3Rha2UKCWFzc2VydAoKKmlmNDdfZW5kOgoJLy8gKmlmNDlfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwNQoJLy8gdHlwZSA9PT0gR0FUSU5HX1RZUEVfQ1JFQVRFRF9CWV9ORkRfQUREUkVTU0VTCglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJaW50IDMKCT09CglieiAqaWY0OV9lbmQKCgkvLyAqaWY0OV9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQwOAoJLy8gYXNzZXJ0KAoJLy8gICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdChjb25maWcuZW50cnlHYXRpbmdBc3NldHNbMF0sIEFzc2V0SUQuZnJvbVVpbnQ2NCh2YWx1ZVRvVmVyaWZ5KS5jcmVhdG9yKSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBhc3NldCBtdXN0IGJlIGNyZWF0ZWQgYnkgY3JlYXRvciB0aGF0IGlzIG9uZSBvZiB0aGUgbGlua2VkIGFkZHJlc3NlcyBpbiBhbiBuZmQnCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0Cglhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgoJcG9wCglmcmFtZV9kaWcgMiAvLyBjb25maWc6ICh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KQoJZXh0cmFjdCAxMTMgOAoJYnRvaQoJY2FsbHN1YiBpc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QKCgkvLyBzcGVjaWZpZWQgYXNzZXQgbXVzdCBiZSBjcmVhdGVkIGJ5IGNyZWF0b3IgdGhhdCBpcyBvbmUgb2YgdGhlIGxpbmtlZCBhZGRyZXNzZXMgaW4gYW4gbmZkCglhc3NlcnQKCippZjQ5X2VuZDoKCS8vICppZjUwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTMKCS8vIHR5cGUgPT09IEdBVElOR19UWVBFX1NFR01FTlRfT0ZfTkZECglmcmFtZV9kaWcgMCAvLyB0eXBlOiB1aW50OAoJcHVzaGludCA0Cgk9PQoJYnogKmlmNTBfZW5kCgoJLy8gKmlmNTBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTUKCS8vIHVzZXJPZmZlcmVkTkZEQXBwSUQgPSB2YWx1ZVRvVmVyaWZ5CglmcmFtZV9kaWcgLTIgLy8gdmFsdWVUb1ZlcmlmeTogdWludDY0CglmcmFtZV9idXJ5IDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTYKCS8vIGFzc2VydCh0aGlzLmlzTkZEQXBwSURWYWxpZCh1c2VyT2ZmZXJlZE5GREFwcElEKSwgJ3Byb3ZpZGVkIE5GRCBtdXN0IGJlIHZhbGlkJykKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJY2FsbHN1YiBpc05GREFwcElEVmFsaWQKCgkvLyBwcm92aWRlZCBORkQgbXVzdCBiZSB2YWxpZAoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MTkKCS8vIGFzc2VydCgKCS8vICAgICAgICAgcmF3Qnl0ZXMoQXBwSUQuZnJvbVVpbnQ2NCh1c2VyT2ZmZXJlZE5GREFwcElEKS5nbG9iYWxTdGF0ZSgnaS5vd25lci5hJykgYXMgQWRkcmVzcykgPT09IHJhd0J5dGVzKHN0YWtlcikgfHwKCS8vICAgICAgICAgICB0aGlzLmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCh1c2VyT2ZmZXJlZE5GREFwcElELCBzdGFrZXIpLAoJLy8gICAgICAgICAicHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlciIKCS8vICAgICAgICkKCWZyYW1lX2RpZyA4IC8vIHVzZXJPZmZlcmVkTkZEQXBwSUQ6IHVpbnQ2NAoJYnl0ZSAweDY5MmU2Zjc3NmU2NTcyMmU2MSAvLyAiaS5vd25lci5hIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IEFwcElELmZyb21VaW50NjQodXNlck9mZmVyZWRORkRBcHBJRCkuZ2xvYmFsU3RhdGUoJ2kub3duZXIuYScpCglhc3NlcnQKCWZyYW1lX2RpZyAxIC8vIHN0YWtlcjogYWRkcmVzcwoJPT0KCWR1cAoJYm56ICpza2lwX29yNgoJZnJhbWVfZGlnIDEgLy8gc3Rha2VyOiBhZGRyZXNzCglmcmFtZV9kaWcgOCAvLyB1c2VyT2ZmZXJlZE5GREFwcElEOiB1aW50NjQKCWNhbGxzdWIgaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0Cgl8fAoKKnNraXBfb3I2OgoJLy8gcHJvdmlkZWQgbmZkIGZvciBlbnRyeSBpc24ndCBvd25lZCBvciBsaW5rZWQgdG8gdGhlIHN0YWtlcgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0MjYKCS8vIGFzc2VydCgKCS8vICAgICAgICAgYnRvaShBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykgYXMgYnl0ZXMpID09PQoJLy8gICAgICAgICAgIGNvbmZpZy5lbnRyeUdhdGluZ0Fzc2V0c1swXSwKCS8vICAgICAgICAgJ3NwZWNpZmllZCBuZmQgbXVzdCBiZSBhIHNlZ21lbnQgb2YgdGhlIG5mZCB0aGUgdmFsaWRhdG9yIHNwZWNpZmllZCBhcyBhIHJlcXVpcmVtZW50JwoJLy8gICAgICAgKQoJZnJhbWVfZGlnIDggLy8gdXNlck9mZmVyZWRORkRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNzA2MTcyNjU2ZTc0NDE3MDcwNDk0NCAvLyAiaS5wYXJlbnRBcHBJRCIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KHVzZXJPZmZlcmVkTkZEQXBwSUQpLmdsb2JhbFN0YXRlKCdpLnBhcmVudEFwcElEJykKCWFzc2VydAoJYnRvaQoJZnJhbWVfZGlnIDIgLy8gY29uZmlnOiAodWludDY0LGFkZHJlc3MsYWRkcmVzcyx1aW50NjQsdWludDgsYWRkcmVzcyx1aW50NjRbNF0sdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDMyLHVpbnQzMixhZGRyZXNzLHVpbnQ2NCx1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCkKCWV4dHJhY3QgMTEzIDgKCWJ0b2kKCT09CgoJLy8gc3BlY2lmaWVkIG5mZCBtdXN0IGJlIGEgc2VnbWVudCBvZiB0aGUgbmZkIHRoZSB2YWxpZGF0b3Igc3BlY2lmaWVkIGFzIGEgcmVxdWlyZW1lbnQKCWFzc2VydAoKKmlmNTBfZW5kOgoJcmV0c3ViCgovLyBpc05GREFwcElEVmFsaWQobmZkQXBwSUQ6IHVpbnQ2NCk6IGJvb2xlYW4KLy8KLy8gQ2hlY2tzIGlmIHRoZSBnaXZlbiBORkQgQXBwIGlkIGlzIHZhbGlkLiAgVXNpbmcgb25seSB0aGUgQXBwIGlkIHRoZXJlJ3Mgbm8gdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBuYW1lIChpZTogdGhhdCBuZmQgWCBpcyBuYW1lIFkpCi8vIFNvIGl0J3MgYXNzdW1lZCBmb3IgdGhlIGNhbGxlciwgdGhlIGFwcCBpZCBhbG9uZSBpcyBmaW5lLiAgVGhlIG5hbWUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYXBwIGlkIGFuZCB0aGUgdHdvCi8vIHRvZ2V0aGVyIGFyZSB1c2VkIGZvciB2YWxpZGl0eSBjaGVjayBjYWxsIHRvIHRoZSBuZmQgcmVnaXN0cnkuCi8vCi8vIEBwYXJhbSB7dWludDY0fSBuZmRBcHBJRCAtIFRoZSBORkQgQXBwIGlkIHRvIHZlcmlmeS4KLy8KLy8gQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBORkQgQXBwIGlkIGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UuCmlzTkZEQXBwSURWYWxpZDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDUKCS8vIHVzZXJPZmZlcmVkTkZETmFtZSA9IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLmdsb2JhbFN0YXRlKCdpLm5hbWUnKSBhcyBzdHJpbmcKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglwdXNoYnl0ZXMgMHg2OTJlNmU2MTZkNjUgLy8gImkubmFtZSIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKS5nbG9iYWxTdGF0ZSgnaS5uYW1lJykKCWFzc2VydAoJZnJhbWVfYnVyeSAwIC8vIHVzZXJPZmZlcmVkTkZETmFtZTogc3RyaW5nCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NDcKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQodGhpcy5uZmRSZWdpc3RyeUFwcElkKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydpc192YWxpZF9uZmRfYXBwaWQnLCB1c2VyT2ZmZXJlZE5GRE5hbWUsIGl0b2IobmZkQXBwSUQpXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW0FwcElELmZyb21VaW50NjQobmZkQXBwSUQpXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ4CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KHRoaXMubmZkUmVnaXN0cnlBcHBJZCkKCWludGMgMCAvLyBUTVBMX25mZFJlZ2lzdHJ5QXBwSWQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDQ5CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnaXNfdmFsaWRfbmZkX2FwcGlkJywgdXNlck9mZmVyZWRORkROYW1lLCBpdG9iKG5mZEFwcElEKV0KCWJ5dGUgMHg2OTczNWY3NjYxNmM2OTY0NWY2ZTY2NjQ1ZjYxNzA3MDY5NjQgLy8gImlzX3ZhbGlkX25mZF9hcHBpZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCglmcmFtZV9kaWcgMCAvLyB1c2VyT2ZmZXJlZE5GRE5hbWU6IHN0cmluZwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDUwCgkvLyBhcHBsaWNhdGlvbnM6IFtBcHBJRC5mcm9tVWludDY0KG5mZEFwcElEKV0KCWZyYW1lX2RpZyAtMSAvLyBuZmRBcHBJRDogdWludDY0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ1MgoJLy8gcmV0dXJuIGJ0b2kodGhpcy5pdHhuLmxhc3RMb2cpID09PSAxOwoJaXR4biBMYXN0TG9nCglidG9pCglpbnQgMQoJPT0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gaXNBZGRyZXNzSW5ORkRDQUFsZ29MaXN0KG5mZEFwcElEOiB1aW50NjQsIGFkZHJUb0ZpbmQ6IEFkZHJlc3MpOiBib29sZWFuCi8vCi8vIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaXMgcHJlc2VudCBpbiBhbiBORkRzIGxpc3Qgb2YgdmVyaWZpZWQgYWRkcmVzc2VzLgovLyBUaGUgTkZEIGlzIGFzc3VtZWQgdG8gaGF2ZSBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFzIG9mZmljaWFsLgovLwovLyBAcGFyYW0ge3VpbnQ2NH0gbmZkQXBwSUQgLSBUaGUgTkZEIGFwcGxpY2F0aW9uIGlkLgovLyBAcGFyYW0ge0FkZHJlc3N9IGFkZHJUb0ZpbmQgLSBUaGUgYWRkcmVzcyB0byBmaW5kIGluIHRoZSB2LmNhQWxnby4wLmFzIHByb3BlcnR5Ci8vIEByZXR1cm4ge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLgppc0FkZHJlc3NJbk5GRENBQWxnb0xpc3Q6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpLAoJLy8gICAgICAgYXBwbGljYXRpb25BcmdzOiBbJ3JlYWRfcHJvcGVydHknLCAndi5jYUFsZ28uMC5hcyddLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjUKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQobmZkQXBwSUQpCglmcmFtZV9kaWcgLTEgLy8gbmZkQXBwSUQ6IHVpbnQ2NAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjYKCS8vIGFwcGxpY2F0aW9uQXJnczogWydyZWFkX3Byb3BlcnR5JywgJ3YuY2FBbGdvLjAuYXMnXQoJcHVzaGJ5dGVzIDB4NzI2NTYxNjQ1ZjcwNzI2ZjcwNjU3Mjc0NzkgLy8gInJlYWRfcHJvcGVydHkiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4NzYyZTYzNjE0MTZjNjc2ZjJlMzAyZTYxNzMgLy8gInYuY2FBbGdvLjAuYXMiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OAoJLy8gY2FBbGdvRGF0YSA9IHRoaXMuaXR4bi5sYXN0TG9nCglpdHhuIExhc3RMb2cKCWZyYW1lX2J1cnkgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjYUFsZ29EYXRhLmxlbmd0aDsgaSArPSAzMikKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoqZm9yXzEwOgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NjkKCS8vIGkgPCBjYUFsZ29EYXRhLmxlbmd0aAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBjYUFsZ29EYXRhOiBieXRlW10KCWxlbgoJPAoJYnogKmZvcl8xMF9lbmQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3MAoJLy8gYWRkciA9IGV4dHJhY3QzKGNhQWxnb0RhdGEsIGksIDMyKQoJZnJhbWVfZGlnIDAgLy8gY2FBbGdvRGF0YTogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyBpOiB1aW50NjQKCWludCAzMgoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMiAvLyBhZGRyOiBieXRlW10KCgkvLyAqaWY1MV9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDcxCgkvLyBhZGRyICE9PSByYXdCeXRlcyhnbG9iYWxzLnplcm9BZGRyZXNzKSAmJiBhZGRyID09PSByYXdCeXRlcyhhZGRyVG9GaW5kKQoJZnJhbWVfZGlnIDIgLy8gYWRkcjogYnl0ZVtdCglnbG9iYWwgWmVyb0FkZHJlc3MKCSE9CglkdXAKCWJ6ICpza2lwX2FuZDEwCglmcmFtZV9kaWcgMiAvLyBhZGRyOiBieXRlW10KCWZyYW1lX2RpZyAtMiAvLyBhZGRyVG9GaW5kOiBBZGRyZXNzCgk9PQoJJiYKCipza2lwX2FuZDEwOgoJYnogKmlmNTFfZW5kCgoJLy8gKmlmNTFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0NzIKCS8vIHJldHVybiB0cnVlOwoJaW50IDEKCWIgKmlzQWRkcmVzc0luTkZEQ0FBbGdvTGlzdCpyZXR1cm4KCippZjUxX2VuZDoKCipmb3JfMTBfY29udGludWU6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ2OQoJLy8gaSArPSAzMgoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglpbnQgMzIKCSsKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCWIgKmZvcl8xMAoKKmZvcl8xMF9lbmQ6CgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ3NQoJLy8gcmV0dXJuIGZhbHNlOwoJaW50IDAKCippc0FkZHJlc3NJbk5GRENBQWxnb0xpc3QqcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBhbGdvU2F0dXJhdGlvbkxldmVsKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3Rha2UgcGVyIHZhbGlkYXRvciBiYXNlZCBvbiBhIHBlcmNlbnRhZ2Ugb2YgYWxsIGN1cnJlbnQgb25saW5lIHN0YWtlIGJlZm9yZQovLyB0aGUgdmFsaWRhdG9yIGlzIGNvbnNpZGVyZWQgc2F0dXJhdGVkIC0gd2hlcmUgcmV3YXJkcyBhcmUgZGltaW5pc2hlZC4KLy8gTk9URTogdGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIHR3aWNlIC0gaGVyZSBhbmQgaW4gc3Rha2luZyBwb29sIGNvbnRyYWN0LiAgQm90aCBtdXN0IGJlIGlkZW50aWNhbC4KYWxnb1NhdHVyYXRpb25MZXZlbDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE0ODQKCS8vIG9ubGluZSA9IHRoaXMuZ2V0Q3VycmVudE9ubGluZVN0YWtlKCkKCWNhbGxzdWIgZ2V0Q3VycmVudE9ubGluZVN0YWtlCglmcmFtZV9idXJ5IDAgLy8gb25saW5lOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ4NgoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbb25saW5lLCBNQVhfVkFMSURBVE9SX1NPRlRfUENUX09GX09OTElORV8xREVDSU1BTF0sIFsxMDAwXSk7CglmcmFtZV9kaWcgMCAvLyBvbmxpbmU6IHVpbnQ2NAoJcHVzaGludCAxMDAKCW11bHcKCWludCAwCglwdXNoaW50IDEwMDAKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCgoJLy8gd2lkZVJhdGlvIGZhaWxlZAoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIG1heEFsbG93ZWRTdGFrZSgpOiB1aW50NjQKLy8KLy8gUmV0dXJucyB0aGUgTUFYSU1VTSBhbGxvd2VkIHN0YWtlIHBlciB2YWxpZGF0b3IgYmFzZWQgb24gYSBwZXJjZW50YWdlIG9mIGFsbCBjdXJyZW50IG9ubGluZSBzdGFrZS4KLy8gQWRkaW5nIHN0YWtlIGlzIGNvbXBsZXRlbHkgYmxvY2tlZCBhdCB0aGlzIGFtb3VudC4KbWF4QWxsb3dlZFN0YWtlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTQ5NAoJLy8gb25saW5lID0gdGhpcy5nZXRDdXJyZW50T25saW5lU3Rha2UoKQoJY2FsbHN1YiBnZXRDdXJyZW50T25saW5lU3Rha2UKCWZyYW1lX2J1cnkgMCAvLyBvbmxpbmU6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNDk2CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtvbmxpbmUsIE1BWF9WQUxJREFUT1JfSEFSRF9QQ1RfT0ZfT05MSU5FXzFERUNJTUFMXSwgWzEwMDBdKTsKCWZyYW1lX2RpZyAwIC8vIG9ubGluZTogdWludDY0CglwdXNoaW50IDE1MAoJbXVsdwoJaW50IDAKCXB1c2hpbnQgMTAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCgkvLyB3aWRlUmF0aW8gZmFpbGVkCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gbWF4QWxnb0FsbG93ZWRQZXJQb29sKCk6IHVpbnQ2NAovLwovLyBSZXR1cm5zIHRoZSBNQVhJTVVNIGFsbG93ZWQgc3Rha2UgcGVyIHBvb2wgYW5kIHN0aWxsIHJlY2VpdmUgaW5jZW50aXZlcyAtIHdlJ2xsIHRyZWF0IHRoaXMgYXMgdGhlICdtYXggcGVyIHBvb2wnCm1heEFsZ29BbGxvd2VkUGVyUG9vbDoKCXByb3RvIDAgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTA0CgkvLyByZXR1cm4gNzBfMDAwXzAwMF8wMDBfMDAwOwoJcHVzaGludCA3MF8wMDBfMDAwXzAwMF8wMDAKCXJldHN1YgoKLy8gZ2V0Q3VycmVudE9ubGluZVN0YWtlKCk6IHVpbnQ2NApnZXRDdXJyZW50T25saW5lU3Rha2U6Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUwOQoJLy8gcmV0dXJuIDJfMDAwXzAwMF8wMDBfMDAwXzAwMDsKCXB1c2hpbnQgMl8wMDBfMDAwXzAwMF8wMDBfMDAwCglyZXRzdWIKCi8vIG1pbkJhbGFuY2VGb3JBY2NvdW50KGNvbnRyYWN0czogdWludDY0LCBleHRyYVBhZ2VzOiB1aW50NjQsIGFzc2V0czogdWludDY0LCBsb2NhbEludHM6IHVpbnQ2NCwgbG9jYWxCeXRlczogdWludDY0LCBnbG9iYWxJbnRzOiB1aW50NjQsIGdsb2JhbEJ5dGVzOiB1aW50NjQpOiB1aW50NjQKbWluQmFsYW5jZUZvckFjY291bnQ6Cglwcm90byA3IDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTIxCgkvLyBtaW5CYWwgPSBBTEdPUkFORF9BQ0NPVU5UX01JTl9CQUxBTkNFCglpbnQgMTAwMDAwCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMgoJLy8gbWluQmFsICs9IGNvbnRyYWN0cyAqIEFQUExJQ0FUSU9OX0JBU0VfRkVFCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGNvbnRyYWN0czogdWludDY0CglpbnQgMTAwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyMwoJLy8gbWluQmFsICs9IGV4dHJhUGFnZXMgKiBBUFBMSUNBVElPTl9CQVNFX0ZFRQoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBleHRyYVBhZ2VzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI0CgkvLyBtaW5CYWwgKz0gYXNzZXRzICogQVNTRVRfSE9MRElOR19GRUUKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYXNzZXRzOiB1aW50NjQKCWludCAxMDAwMDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI1CgkvLyBtaW5CYWwgKz0gbG9jYWxJbnRzICogU1NDX1ZBTFVFX1VJTlQKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gbG9jYWxJbnRzOiB1aW50NjQKCXB1c2hpbnQgMjg1MDAKCSoKCSsKCWZyYW1lX2J1cnkgMCAvLyBtaW5CYWw6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTI2CgkvLyBtaW5CYWwgKz0gZ2xvYmFsSW50cyAqIFNTQ19WQUxVRV9VSU5UCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC02IC8vIGdsb2JhbEludHM6IHVpbnQ2NAoJcHVzaGludCAyODUwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjcKCS8vIG1pbkJhbCArPSBsb2NhbEJ5dGVzICogU1NDX1ZBTFVFX0JZVEVTCglmcmFtZV9kaWcgMCAvLyBtaW5CYWw6IHVpbnQ2NAoJZnJhbWVfZGlnIC01IC8vIGxvY2FsQnl0ZXM6IHVpbnQ2NAoJcHVzaGludCA1MDAwMAoJKgoJKwoJZnJhbWVfYnVyeSAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gZXhhbXBsZXMvcmV0aS92YWxpZGF0b3JSZWdpc3RyeS5hbGdvLnRzOjE1MjgKCS8vIG1pbkJhbCArPSBnbG9iYWxCeXRlcyAqIFNTQ19WQUxVRV9CWVRFUwoJZnJhbWVfZGlnIDAgLy8gbWluQmFsOiB1aW50NjQKCWZyYW1lX2RpZyAtNyAvLyBnbG9iYWxCeXRlczogdWludDY0CglwdXNoaW50IDUwMDAwCgkqCgkrCglmcmFtZV9idXJ5IDAgLy8gbWluQmFsOiB1aW50NjQKCgkvLyBleGFtcGxlcy9yZXRpL3ZhbGlkYXRvclJlZ2lzdHJ5LmFsZ28udHM6MTUyOQoJLy8gcmV0dXJuIG1pbkJhbDsKCWZyYW1lX2RpZyAwIC8vIG1pbkJhbDogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvc3RGb3JCb3hTdG9yYWdlKHRvdGFsTnVtQnl0ZXM6IHVpbnQ2NCk6IHVpbnQ2NApjb3N0Rm9yQm94U3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIGV4YW1wbGVzL3JldGkvdmFsaWRhdG9yUmVnaXN0cnkuYWxnby50czoxNTM2CgkvLyByZXR1cm4gU0NCT1hfUEVSQk9YICsgdG90YWxOdW1CeXRlcyAqIFNDQk9YX1BFUkJZVEU7CglwdXNoaW50IDI1MDAKCWZyYW1lX2RpZyAtMSAvLyB0b3RhbE51bUJ5dGVzOiB1aW50NjQKCXB1c2hpbnQgNDAwCgkqCgkrCglyZXRzdWIKCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxYjVlODJjNiAvLyBtZXRob2QgImluaXRTdGFraW5nQ29udHJhY3QodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg3OTQ3MmQ4MyAvLyBtZXRob2QgImxvYWRTdGFraW5nQ29udHJhY3REYXRhKHVpbnQ2NCxieXRlW10pdm9pZCIKCXB1c2hieXRlcyAweDVmN2FjZmQ5IC8vIG1ldGhvZCAiZmluYWxpemVTdGFraW5nQ29udHJhY3QoKXZvaWQiCglwdXNoYnl0ZXMgMHgzMTcyY2E5ZCAvLyBtZXRob2QgImdhcygpdm9pZCIKCXB1c2hieXRlcyAweDhhODcxNDJkIC8vIG1ldGhvZCAiZ2V0TWJyQW1vdW50cygpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHhkMTM2NmNjMyAvLyBtZXRob2QgImdldFByb3RvY29sQ29uc3RyYWludHMoKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDNiMDQ1YzVjIC8vIG1ldGhvZCAiZ2V0TnVtVmFsaWRhdG9ycygpdWludDY0IgoJcHVzaGJ5dGVzIDB4NzVhZmY2MWQgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JDb25maWcodWludDY0KSh1aW50NjQsYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50MzIsdWludDMyLGFkZHJlc3MsdWludDY0LHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDFmMmYwMTA5IC8vIG1ldGhvZCAiZ2V0VmFsaWRhdG9yU3RhdGUodWludDY0KSh1aW50MTYsdWludDY0LHVpbnQ2NCx1aW50NjQpIgoJcHVzaGJ5dGVzIDB4MmZhMjJjNGIgLy8gbWV0aG9kICJnZXRWYWxpZGF0b3JPd25lckFuZE1hbmFnZXIodWludDY0KShhZGRyZXNzLGFkZHJlc3MpIgoJcHVzaGJ5dGVzIDB4OTEwZTk0YWMgLy8gbWV0aG9kICJnZXRQb29scyh1aW50NjQpKHVpbnQ2NCx1aW50MTYsdWludDY0KVtdIgoJcHVzaGJ5dGVzIDB4NTcyNzY3ZDEgLy8gbWV0aG9kICJnZXRQb29sQXBwSWQodWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5YjUwNGFhZiAvLyBtZXRob2QgImdldFBvb2xJbmZvKCh1aW50NjQsdWludDY0LHVpbnQ2NCkpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCXB1c2hieXRlcyAweGZiYzYzMTc4IC8vIG1ldGhvZCAiZ2V0Q3VyTWF4U3Rha2VQZXJQb29sKHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHgyNDQ5OGNmNCAvLyBtZXRob2QgImRvZXNTdGFrZXJOZWVkVG9QYXlNQlIoYWRkcmVzcylib29sIgoJcHVzaGJ5dGVzIDB4Zjg0NmRkN2EgLy8gbWV0aG9kICJnZXRTdGFrZWRQb29sc0ZvckFjY291bnQoYWRkcmVzcykodWludDY0LHVpbnQ2NCx1aW50NjQpW10iCglwdXNoYnl0ZXMgMHg4MzA1MDUwMSAvLyBtZXRob2QgImdldFRva2VuUGF5b3V0UmF0aW8odWludDY0KSh1aW50NjRbMjRdLHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHg3YmJiNmM4ZCAvLyBtZXRob2QgImdldE5vZGVQb29sQXNzaWdubWVudHModWludDY0KSgodWludDY0WzNdKVs4XSkiCglwdXNoYnl0ZXMgMHhmODM5NDE0YSAvLyBtZXRob2QgImdldE5GRFJlZ2lzdHJ5SUQoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDBjMzE3Y2ZiIC8vIG1ldGhvZCAiYWRkVmFsaWRhdG9yKHBheSxzdHJpbmcsKHVpbnQ2NCxhZGRyZXNzLGFkZHJlc3MsdWludDY0LHVpbnQ4LGFkZHJlc3MsdWludDY0WzRdLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQzMix1aW50MzIsYWRkcmVzcyx1aW50NjQsdWludDY0LHVpbnQ4LHVpbnQ2NCx1aW50NjQpKXVpbnQ2NCIKCXB1c2hieXRlcyAweDNlMjg4OTcyIC8vIG1ldGhvZCAiY2hhbmdlVmFsaWRhdG9yTWFuYWdlcih1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGQ1ZmFhZGEgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JTdW5zZXRJbmZvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgxOGFhYzdhNyAvLyBtZXRob2QgImNoYW5nZVZhbGlkYXRvck5GRCh1aW50NjQsdWludDY0LHN0cmluZyl2b2lkIgoJcHVzaGJ5dGVzIDB4Zjk5ZWY1NGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JDb21taXNzaW9uQWRkcmVzcyh1aW50NjQsYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MTA4MDlkNGQgLy8gbWV0aG9kICJjaGFuZ2VWYWxpZGF0b3JSZXdhcmRJbmZvKHVpbnQ2NCx1aW50OCxhZGRyZXNzLHVpbnQ2NFs0XSx1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhlNzc4ZGQ1YSAvLyBtZXRob2QgImFkZFBvb2wocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweGJmNTI1OWQwIC8vIG1ldGhvZCAiYWRkU3Rha2UocGF5LHVpbnQ2NCx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0KSIKCXB1c2hieXRlcyAweDRkZjhkODZlIC8vIG1ldGhvZCAic2V0VG9rZW5QYXlvdXRSYXRpbyh1aW50NjQpKHVpbnQ2NFsyNF0sdWludDY0KSIKCXB1c2hieXRlcyAweDQxOGZjZWZjIC8vIG1ldGhvZCAic3Rha2VVcGRhdGVkVmlhUmV3YXJkcygodWludDY0LHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTJkYzUxYjUgLy8gbWV0aG9kICJzdGFrZVJlbW92ZWQoKHVpbnQ2NCx1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4Mjg3M2Y1MDQgLy8gbWV0aG9kICJmaW5kUG9vbEZvclN0YWtlcih1aW50NjQsYWRkcmVzcyx1aW50NjQpKCh1aW50NjQsdWludDY0LHVpbnQ2NCksYm9vbCxib29sKSIKCXB1c2hieXRlcyAweDA1NDdmNGZlIC8vIG1ldGhvZCAibW92ZVBvb2xUb05vZGUodWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweGNiNjY4MzU4IC8vIG1ldGhvZCAiZW1wdHlUb2tlblJld2FyZHModWludDY0LGFkZHJlc3MpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbml0U3Rha2luZ0NvbnRyYWN0ICphYmlfcm91dGVfbG9hZFN0YWtpbmdDb250cmFjdERhdGEgKmFiaV9yb3V0ZV9maW5hbGl6ZVN0YWtpbmdDb250cmFjdCAqYWJpX3JvdXRlX2dhcyAqYWJpX3JvdXRlX2dldE1ickFtb3VudHMgKmFiaV9yb3V0ZV9nZXRQcm90b2NvbENvbnN0cmFpbnRzICphYmlfcm91dGVfZ2V0TnVtVmFsaWRhdG9ycyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvckNvbmZpZyAqYWJpX3JvdXRlX2dldFZhbGlkYXRvclN0YXRlICphYmlfcm91dGVfZ2V0VmFsaWRhdG9yT3duZXJBbmRNYW5hZ2VyICphYmlfcm91dGVfZ2V0UG9vbHMgKmFiaV9yb3V0ZV9nZXRQb29sQXBwSWQgKmFiaV9yb3V0ZV9nZXRQb29sSW5mbyAqYWJpX3JvdXRlX2dldEN1ck1heFN0YWtlUGVyUG9vbCAqYWJpX3JvdXRlX2RvZXNTdGFrZXJOZWVkVG9QYXlNQlIgKmFiaV9yb3V0ZV9nZXRTdGFrZWRQb29sc0ZvckFjY291bnQgKmFiaV9yb3V0ZV9nZXRUb2tlblBheW91dFJhdGlvICphYmlfcm91dGVfZ2V0Tm9kZVBvb2xBc3NpZ25tZW50cyAqYWJpX3JvdXRlX2dldE5GRFJlZ2lzdHJ5SUQgKmFiaV9yb3V0ZV9hZGRWYWxpZGF0b3IgKmFiaV9yb3V0ZV9jaGFuZ2VWYWxpZGF0b3JNYW5hZ2VyICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yU3Vuc2V0SW5mbyAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvck5GRCAqYWJpX3JvdXRlX2NoYW5nZVZhbGlkYXRvckNvbW1pc3Npb25BZGRyZXNzICphYmlfcm91dGVfY2hhbmdlVmFsaWRhdG9yUmV3YXJkSW5mbyAqYWJpX3JvdXRlX2FkZFBvb2wgKmFiaV9yb3V0ZV9hZGRTdGFrZSAqYWJpX3JvdXRlX3NldFRva2VuUGF5b3V0UmF0aW8gKmFiaV9yb3V0ZV9zdGFrZVVwZGF0ZWRWaWFSZXdhcmRzICphYmlfcm91dGVfc3Rha2VSZW1vdmVkICphYmlfcm91dGVfZmluZFBvb2xGb3JTdGFrZXIgKmFiaV9yb3V0ZV9tb3ZlUG9vbFRvTm9kZSAqYWJpX3JvdXRlX2VtcHR5VG9rZW5SZXdhcmRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCXB1c2hieXRlcyAweDQ2Zjc2NTMzIC8vIG1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/examples/reti/artifacts/ValidatorRegistry.src_map.json b/examples/reti/artifacts/ValidatorRegistry.src_map.json index 6a783e1d2..c2071bac7 100644 --- a/examples/reti/artifacts/ValidatorRegistry.src_map.json +++ b/examples/reti/artifacts/ValidatorRegistry.src_map.json @@ -1,27566 +1,28622 @@ [ { "teal": 1, - "source": 168, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183 - ] + "source": "examples/reti/validatorRegistry.algo.ts:168" }, { - "teal": 9, - "source": 168, - "pc": [ - 184, - 185 - ] + "teal": 2, + "source": "examples/reti/validatorRegistry.algo.ts:168" }, { - "teal": 10, - "source": 168, - "pc": [ - 186 - ] + "teal": 3, + "source": "examples/reti/validatorRegistry.algo.ts:168" }, { "teal": 11, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 187, - 188 + 1 ] }, { "teal": 18, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 189, - 190 + 2, + 3 ] }, { "teal": 19, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 191 + 4 ] }, { "teal": 20, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 192, - 193 + 5, + 6 ] }, { "teal": 21, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 194 + 7 ] }, { "teal": 22, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 195, - 196 + 8, + 9 ] }, { "teal": 23, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 197 + 10 ] }, { "teal": 24, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223 + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 ] }, { "teal": 28, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 224 + 37 ] }, { "teal": 33, - "source": 201, + "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 225, - 226, - 227 + 38, + 39, + 40 ] }, { "teal": 34, - "source": 201, + "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 228 + 41, + 42 ] }, { "teal": 35, - "source": 201, + "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 229 + 43 ] }, { "teal": 39, - "source": 201, + "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 230, - 231, - 232 + 44, + 45, + 46 ] }, { "teal": 43, - "source": 202, + "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 233, - 234 + 47, + 48 ] }, { "teal": 44, - "source": 202, + "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268 + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82 ] }, { "teal": 45, - "source": 202, + "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 269 + 83 ] }, { "teal": 46, - "source": 202, + "source": "examples/reti/validatorRegistry.algo.ts:202", "pc": [ - 270 + 84 ] }, { "teal": 50, - "source": 204, + "source": "examples/reti/validatorRegistry.algo.ts:204", "pc": [ - 271, - 272 + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111 ] }, { "teal": 51, - "source": 204, + "source": "examples/reti/validatorRegistry.algo.ts:204", "pc": [ - 273 + 112 ] }, { "teal": 55, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 274, - 275 + 113, + 114, + 115, + 116, + 117, + 118 ] }, { "teal": 56, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 276 + 119, + 120 ] }, { "teal": 57, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 277, - 278 + 121, + 122, + 123 ] }, { "teal": 58, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 279 + 124, + 125 ] }, { "teal": 59, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 280, - 281 + 126, + 127 ] }, { "teal": 60, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 282 + 128 ] }, { "teal": 61, - "source": 205, + "source": "examples/reti/validatorRegistry.algo.ts:205", "pc": [ - 283 + 129 ] }, { "teal": 62, - "source": 201, + "source": "examples/reti/validatorRegistry.algo.ts:201", "pc": [ - 284 + 130 ] }, { "teal": 67, - "source": 208, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 285, - 286, - 287 + 131, + 132, + 133 ] }, { "teal": 68, - "source": 208, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 288 + 134, + 135 ] }, { "teal": 69, - "source": 208, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 289 + 136 ] }, { "teal": 73, - "source": 208, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 290, - 291, - 292 + 137, + 138, + 139 ] }, { "teal": 77, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 293, - 294 + 140, + 141, + 142, + 143, + 144, + 145 ] }, { "teal": 78, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 295 + 146, + 147 ] }, { "teal": 79, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 296, - 297 + 148, + 149, + 150 ] }, { "teal": 80, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 298 + 151, + 152 ] }, { "teal": 81, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 299, - 300 + 153, + 154 ] }, { "teal": 82, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 301 + 155 ] }, { "teal": 83, - "source": 209, + "source": "examples/reti/validatorRegistry.algo.ts:209", "pc": [ - 302 + 156 ] }, { "teal": 87, - "source": 210, + "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 303, - 304 + 157, + 158, + 159, + 160, + 161, + 162 ] }, { "teal": 88, - "source": 210, + "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 305 + 163, + 164 ] }, { "teal": 89, - "source": 210, + "source": "examples/reti/validatorRegistry.algo.ts:210", "pc": [ - 306 + 165 ] }, { "teal": 93, - "source": 211, + "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 307, - 308 + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177 ] }, { "teal": 94, - "source": 211, + "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 309 + 178, + 179 ] }, { "teal": 95, - "source": 211, + "source": "examples/reti/validatorRegistry.algo.ts:211", "pc": [ - 310 + 180 ] }, { "teal": 99, - "source": 212, + "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 311, - 312 + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188 ] }, { "teal": 100, - "source": 212, + "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 313 + 189, + 190 ] }, { "teal": 101, - "source": 212, + "source": "examples/reti/validatorRegistry.algo.ts:212", "pc": [ - 314 + 191 ] }, { "teal": 102, - "source": 208, + "source": "examples/reti/validatorRegistry.algo.ts:208", "pc": [ - 315 + 192 ] }, { "teal": 107, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 316, - 317, - 318 + 193, + 194, + 195 ] }, { "teal": 108, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 319 + 196 ] }, { "teal": 111, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 320, - 321, - 322 + 197, + 198, + 199 ] }, { "teal": 112, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 323 + 200, + 201 ] }, { "teal": 113, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 324 + 202 ] }, { "teal": 117, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 325, - 326, - 327 + 203, + 204, + 205 ] }, { "teal": 121, - "source": 217, + "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 328, - 329 + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232 ] }, { "teal": 122, - "source": 217, + "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 330, - 331 + 233, + 234 ] }, { "teal": 123, - "source": 217, + "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 332 + 235 ] }, { "teal": 124, - "source": 217, + "source": "examples/reti/validatorRegistry.algo.ts:217", "pc": [ - 333 + 236 ] }, { "teal": 125, - "source": 215, + "source": "examples/reti/validatorRegistry.algo.ts:215", "pc": [ - 334 + 237 ] }, { "teal": 130, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 335, - 336, - 337 + 238, + 239, + 240 ] }, { "teal": 131, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 338, - 339, - 340 + 241, + 242, + 243 ] }, { "teal": 134, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 341, - 342, - 343 + 244, + 245, + 246 ] }, { "teal": 135, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 344 + 247 ] }, { "teal": 138, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 345, - 346, - 347 + 248, + 249, + 250 ] }, { "teal": 139, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 348 + 251, + 252 ] }, { "teal": 140, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 349 + 253 ] }, { "teal": 144, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 350, - 351, - 352 + 254, + 255, + 256 ] }, { "teal": 148, - "source": 221, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 353, - 354 + 257, + 258, + 259, + 260, + 261, + 262 ] }, { "teal": 149, - "source": 221, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 355 + 263 ] }, { "teal": 150, - "source": 221, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 356 + 264, + 265 ] }, { "teal": 151, - "source": 221, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 357 + 266 ] }, { "teal": 152, - "source": 221, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 358 + 267 ] }, { "teal": 153, - "source": 221, + "source": "examples/reti/validatorRegistry.algo.ts:221", "pc": [ - 359 + 268 ] }, { "teal": 157, - "source": 222, + "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ - 360, - 361 + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295 ] }, { "teal": 158, - "source": 222, + "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ - 362, - 363 + 296, + 297 ] }, { "teal": 159, - "source": 222, + "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ - 364, - 365 + 298, + 299 ] }, { "teal": 160, - "source": 222, + "source": "examples/reti/validatorRegistry.algo.ts:222", "pc": [ - 366 + 300 ] }, { "teal": 161, - "source": 220, + "source": "examples/reti/validatorRegistry.algo.ts:220", "pc": [ - 367 + 301 ] }, { "teal": 166, - "source": 225, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 368, - 369, - 370 + 302, + 303, + 304 ] }, { "teal": 167, - "source": 225, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 371 + 305, + 306 ] }, { "teal": 168, - "source": 225, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 372 + 307 ] }, { "teal": 172, - "source": 225, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 373, - 374, - 375 + 308, + 309, + 310 ] }, { "teal": 176, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 376, - 377 + 311, + 312, + 313, + 314, + 315, + 316 ] }, { "teal": 177, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 378 + 317, + 318 ] }, { "teal": 178, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 379, - 380 + 319, + 320, + 321 ] }, { "teal": 179, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 381 + 322, + 323 ] }, { "teal": 180, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 382, - 383 + 324, + 325 ] }, { "teal": 181, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 384 + 326 ] }, { "teal": 182, - "source": 226, + "source": "examples/reti/validatorRegistry.algo.ts:226", "pc": [ - 385 + 327 ] }, { "teal": 183, - "source": 225, + "source": "examples/reti/validatorRegistry.algo.ts:225", "pc": [ - 386 + 328 ] }, { "teal": 188, - "source": 232, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 387, - 388, - 389 + 329, + 330, + 331 ] }, { "teal": 189, - "source": 232, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 390 + 332, + 333 ] }, { "teal": 190, - "source": 232, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 391 + 334 ] }, { "teal": 196, - "source": 232, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 392, - 393, - 394 + 335, + 336, + 337 ] }, { "teal": 197, - "source": 232, + "source": "examples/reti/validatorRegistry.algo.ts:232", "pc": [ - 395 + 338 ] }, { "teal": 202, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 396 + 339, + 340, + 341, + 342, + 343, + 344 ] }, { "teal": 205, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 397, - 398, - 399 + 345, + 346, + 347 ] }, { "teal": 206, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 400 + 348 ] }, { "teal": 207, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 401 + 349 ] }, { "teal": 208, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 402 + 350, + 351 ] }, { "teal": 209, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 403 + 352 ] }, { "teal": 221, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 404, - 405, - 406 + 353, + 354, + 355 ] }, { "teal": 244, - "source": 247, + "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 407, - 408, - 409 + 356, + 357, + 358 ] }, { "teal": 245, - "source": 247, + "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 410, - 411, - 412 + 359, + 360, + 361 ] }, { "teal": 246, - "source": 247, + "source": "examples/reti/validatorRegistry.algo.ts:247", "pc": [ - 413 + 362 ] }, { "teal": 247, - "source": 257, + "source": "examples/reti/validatorRegistry.algo.ts:257", "pc": [ - 414, - 415 + 363, + 364 ] }, { "teal": 248, - "source": 256, + "source": "examples/reti/validatorRegistry.algo.ts:256", "pc": [ - 416, - 417 + 365, + 366 ] }, { "teal": 249, - "source": 255, + "source": "examples/reti/validatorRegistry.algo.ts:255", "pc": [ - 418 + 367, + 368 ] }, { "teal": 250, - "source": 255, + "source": "examples/reti/validatorRegistry.algo.ts:255", "pc": [ - 419, - 420 + 369, + 370 ] }, { "teal": 251, - "source": 252, + "source": "examples/reti/validatorRegistry.algo.ts:252", "pc": [ - 421, - 422 + 371, + 372 ] }, { "teal": 252, - "source": 249, + "source": "examples/reti/validatorRegistry.algo.ts:249", "pc": [ - 423 + 373, + 374 ] }, { "teal": 253, - "source": 248, + "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 424, - 425, - 426 + 375, + 376, + 377 ] }, { "teal": 254, - "source": 248, + "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 427 + 378 ] }, { "teal": 255, - "source": 248, + "source": "examples/reti/validatorRegistry.algo.ts:248", "pc": [ - 428 + 379 ] }, { "teal": 256, - "source": 260, + "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 429, - 430 + 380, + 381, + 382, + 383 ] }, { "teal": 257, - "source": 261, + "source": "examples/reti/validatorRegistry.algo.ts:261", "pc": [ - 431, - 432, - 433 + 384, + 385, + 386 ] }, { "teal": 258, - "source": 261, + "source": "examples/reti/validatorRegistry.algo.ts:261", "pc": [ - 434, - 435, - 436 + 387, + 388, + 389 ] }, { "teal": 259, - "source": 260, + "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 437 + 390 ] }, { "teal": 260, - "source": 260, + "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 438 + 391 ] }, { "teal": 261, - "source": 260, + "source": "examples/reti/validatorRegistry.algo.ts:260", "pc": [ - 439 + 392 ] }, { "teal": 262, - "source": 264, + "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 440, - 441, - 442 + 393, + 394, + 395 ] }, { "teal": 263, - "source": 264, + "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 443, - 444, - 445 + 396, + 397, + 398 ] }, { "teal": 264, - "source": 264, + "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 446 + 399 ] }, { "teal": 265, - "source": 264, + "source": "examples/reti/validatorRegistry.algo.ts:264", "pc": [ - 447 + 400 ] }, { "teal": 266, - "source": 243, + "source": "examples/reti/validatorRegistry.algo.ts:243", "pc": [ - 448 + 401 ] }, { "teal": 271, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 449 + 402, + 403, + 404, + 405, + 406, + 407 ] }, { "teal": 274, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 450, - 451, - 452 + 408, + 409, + 410 ] }, { "teal": 275, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 453 + 411 ] }, { "teal": 276, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 454 + 412 ] }, { "teal": 277, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 455 + 413, + 414 ] }, { "teal": 278, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 456 + 415 ] }, { "teal": 284, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 457, - 458, - 459 + 416, + 417, + 418 ] }, { "teal": 300, - "source": 277, + "source": "examples/reti/validatorRegistry.algo.ts:277", "pc": [ - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501 + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460 ] }, { "teal": 301, - "source": 278, + "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 502, - 503, - 504 + 461, + 462, + 463 ] }, { "teal": 302, - "source": 278, + "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 505 + 464 ] }, { "teal": 303, - "source": 278, + "source": "examples/reti/validatorRegistry.algo.ts:278", "pc": [ - 506 + 465 ] }, { "teal": 304, - "source": 279, + "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 507, - 508, - 509 + 466, + 467, + 468 ] }, { "teal": 305, - "source": 279, + "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 510 + 469 ] }, { "teal": 306, - "source": 279, + "source": "examples/reti/validatorRegistry.algo.ts:279", "pc": [ - 511 + 470 ] }, { "teal": 307, - "source": 280, + "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 512, - 513, - 514 + 471, + 472, + 473 ] }, { "teal": 308, - "source": 280, + "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 515 + 474 ] }, { "teal": 309, - "source": 280, + "source": "examples/reti/validatorRegistry.algo.ts:280", "pc": [ - 516 + 475 ] }, { "teal": 310, - "source": 281, + "source": "examples/reti/validatorRegistry.algo.ts:281", "pc": [ - 517, - 518, - 519, - 520, - 521, - 522, - 523, - 524, - 525, - 526 + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485 ] }, { "teal": 311, - "source": 281, + "source": "examples/reti/validatorRegistry.algo.ts:281", "pc": [ - 527 + 486 ] }, { "teal": 312, - "source": 282, + "source": "examples/reti/validatorRegistry.algo.ts:282", "pc": [ - 528, - 529, - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537 + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496 ] }, { "teal": 313, - "source": 282, + "source": "examples/reti/validatorRegistry.algo.ts:282", "pc": [ - 538 + 497 ] }, { "teal": 314, - "source": 283, + "source": "examples/reti/validatorRegistry.algo.ts:283", "pc": [ - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548 + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507 ] }, { "teal": 315, - "source": 283, + "source": "examples/reti/validatorRegistry.algo.ts:283", "pc": [ - 549 + 508 ] }, { "teal": 316, - "source": 271, + "source": "examples/reti/validatorRegistry.algo.ts:271", "pc": [ - 550 + 509 ] }, { "teal": 321, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 551 + 510, + 511, + 512, + 513, + 514, + 515 ] }, { "teal": 324, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 552, - 553, - 554 + 516, + 517, + 518 ] }, { "teal": 325, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 555 + 519 ] }, { "teal": 326, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 556 + 520 ] }, { "teal": 327, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 557 + 521 ] }, { "teal": 328, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 558 + 522, + 523 ] }, { "teal": 329, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 559 + 524 ] }, { "teal": 335, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 560, - 561, - 562 + 525, + 526, + 527 ] }, { "teal": 339, - "source": 292, + "source": "examples/reti/validatorRegistry.algo.ts:292", "pc": [ - 563, - 564 + 528, + 529, + 530, + 531, + 532, + 533 ] }, { "teal": 340, - "source": 292, + "source": "examples/reti/validatorRegistry.algo.ts:292", "pc": [ - 565 + 534 ] }, { "teal": 341, - "source": 291, + "source": "examples/reti/validatorRegistry.algo.ts:291", "pc": [ - 566 + 535 ] }, { "teal": 346, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 567 + 536, + 537, + 538, + 539, + 540, + 541 ] }, { "teal": 349, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 568, - 569, - 570 + 542, + 543, + 544 ] }, { "teal": 350, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 571 + 545 ] }, { "teal": 353, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 572, - 573, - 574 + 546, + 547, + 548 ] }, { "teal": 354, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 575 + 549 ] }, { "teal": 355, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 576 + 550 ] }, { "teal": 356, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 577 + 551, + 552 ] }, { "teal": 357, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 578 + 553 ] }, { - "teal": 361, - "source": 296, - "pc": [ - 579, - 580, - 581 + "teal": 361, + "source": "examples/reti/validatorRegistry.algo.ts:296", + "pc": [ + 554, + 555, + 556 ] }, { "teal": 365, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 582 + 557, + 558 ] }, { "teal": 366, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 583, - 584 + 559, + 560, + 561 ] }, { "teal": 367, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 585 + 562, + 563, + 564 ] }, { "teal": 368, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 586, - 587 + 565, + 566 ] }, { "teal": 369, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 588 + 567 ] }, { "teal": 370, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 589 + 568 ] }, { "teal": 371, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 590, - 591 + 569, + 570 ] }, { "teal": 372, - "source": 297, + "source": "examples/reti/validatorRegistry.algo.ts:297", "pc": [ - 592 + 571 ] }, { "teal": 373, - "source": 296, + "source": "examples/reti/validatorRegistry.algo.ts:296", "pc": [ - 593 + 572 ] }, { "teal": 378, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 594 + 573, + 574, + 575, + 576, + 577, + 578 ] }, { "teal": 381, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 595, - 596, - 597 + 579, + 580, + 581 ] }, { "teal": 382, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 598 + 582 ] }, { "teal": 385, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 599, - 600, - 601 + 583, + 584, + 585 ] }, { "teal": 386, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 602 + 586 ] }, { "teal": 387, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 603 + 587 ] }, { "teal": 388, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 604 + 588, + 589 ] }, { "teal": 389, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 605 + 590 ] }, { "teal": 393, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 606, - 607, - 608 + 591, + 592, + 593 ] }, { "teal": 397, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 609, - 610 + 594, + 595, + 596 ] }, { "teal": 398, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 611, - 612 + 597, + 598 ] }, { "teal": 399, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 613 + 599, + 600, + 601 ] }, { "teal": 400, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 614, - 615 + 602, + 603 ] }, { "teal": 401, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 616 + 604 ] }, { "teal": 402, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 617 + 605 ] }, { "teal": 403, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 618, - 619 + 606, + 607 ] }, { "teal": 404, - "source": 302, + "source": "examples/reti/validatorRegistry.algo.ts:302", "pc": [ - 620 + 608 ] }, { "teal": 405, - "source": 301, + "source": "examples/reti/validatorRegistry.algo.ts:301", "pc": [ - 621 + 609 ] }, { "teal": 410, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 622 + 610, + 611, + 612, + 613, + 614, + 615 ] }, { "teal": 413, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 623, - 624, - 625 + 616, + 617, + 618 ] }, { "teal": 414, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 626 + 619 ] }, { "teal": 417, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 627, - 628, - 629 + 620, + 621, + 622 ] }, { "teal": 418, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 630 + 623 ] }, { "teal": 419, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 631 + 624 ] }, { "teal": 420, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 632 + 625, + 626 ] }, { "teal": 421, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 633 + 627 ] }, { "teal": 425, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 634, - 635, - 636 + 628, + 629, + 630 ] }, { "teal": 429, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 637 + 631, + 632 ] }, { "teal": 430, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 638, - 639 + 633, + 634 ] }, { "teal": 431, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 640 + 635, + 636, + 637 ] }, { "teal": 432, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 641, - 642 + 638, + 639 ] }, { "teal": 433, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 643 + 640 ] }, { "teal": 434, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 644 + 641 ] }, { "teal": 435, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 645, - 646 + 642, + 643 ] }, { "teal": 436, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 647 + 644 ] }, { "teal": 437, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 648, - 649 + 645, + 646 ] }, { "teal": 438, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 650, - 651 + 647, + 648 ] }, { "teal": 439, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 652 + 649, + 650, + 651 ] }, { "teal": 440, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 653, - 654 + 652, + 653 ] }, { "teal": 441, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 655 + 654 ] }, { "teal": 442, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 656 + 655 ] }, { "teal": 443, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 657, - 658 + 656, + 657 ] }, { "teal": 444, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 659 + 658 ] }, { "teal": 445, - "source": 307, + "source": "examples/reti/validatorRegistry.algo.ts:307", "pc": [ - 660 + 659 ] }, { "teal": 446, - "source": 306, + "source": "examples/reti/validatorRegistry.algo.ts:306", "pc": [ - 661 + 660 ] }, { "teal": 451, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 662 + 661, + 662, + 663, + 664, + 665, + 666 ] }, { "teal": 454, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 663, - 664, - 665 + 667, + 668, + 669 ] }, { "teal": 455, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 666 + 670 ] }, { "teal": 458, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 667, - 668, - 669 + 671, + 672, + 673 ] }, { "teal": 459, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 670 + 674 ] }, { "teal": 460, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 671 + 675 ] }, { "teal": 461, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 672, - 673 + 676, + 677 ] }, { "teal": 462, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 674 + 678 ] }, { "teal": 463, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 675 + 679 ] }, { "teal": 464, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 676, - 677, - 678 + 680, + 681, + 682 ] }, { "teal": 465, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 679 + 683 ] }, { "teal": 466, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 680 + 684 ] }, { "teal": 467, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 681 + 685 ] }, { "teal": 468, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 682 + 686 ] }, { "teal": 469, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 683 + 687, + 688 ] }, { "teal": 470, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 684 + 689 ] }, { "teal": 479, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 685, - 686, - 687 + 690, + 691, + 692 ] }, { "teal": 482, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 688 + 693, + 694 ] }, { "teal": 483, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 689, - 690 + 695, + 696 ] }, { "teal": 487, - "source": 318, + "source": "examples/reti/validatorRegistry.algo.ts:318", "pc": [ - 691 + 697, + 698 ] }, { "teal": 488, - "source": 318, + "source": "examples/reti/validatorRegistry.algo.ts:318", "pc": [ - 692, - 693 + 699, + 700 ] }, { "teal": 492, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 694, - 695 + 701, + 702, + 703 ] }, { "teal": 493, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 696, - 697 + 704, + 705, + 706 ] }, { "teal": 494, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 698 + 707, + 708, + 709 ] }, { "teal": 495, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 699, - 700 + 710, + 711 ] }, { "teal": 496, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 701 + 712 ] }, { "teal": 497, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 702 + 713 ] }, { "teal": 498, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 703, - 704 + 714, + 715 ] }, { "teal": 499, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 705 + 716 ] }, { "teal": 500, - "source": 319, + "source": "examples/reti/validatorRegistry.algo.ts:319", "pc": [ - 706, - 707 + 717, + 718 ] }, { "teal": 504, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 708 + 719, + 720 ] }, { "teal": 505, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 709, - 710 + 721, + 722 ] }, { "teal": 510, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 711, - 712 + 723, + 724 ] }, { "teal": 511, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 713 + 725, + 726 ] }, { "teal": 512, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 714 + 727 ] }, { "teal": 513, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 715, - 716, - 717 + 728, + 729, + 730 ] }, { "teal": 518, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 718, - 719 + 731, + 732 ] }, { "teal": 519, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 720, - 721 + 733, + 734 ] }, { "teal": 520, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 722, - 723 + 735, + 736 ] }, { "teal": 521, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 724 + 737 ] }, { "teal": 522, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 725 + 738, + 739 ] }, { "teal": 523, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 726 + 740 ] }, { "teal": 524, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 727 + 741, + 742 ] }, { "teal": 525, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 728 + 743 ] }, { "teal": 526, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 729 + 744 ] }, { "teal": 527, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 730 + 745, + 746 ] }, { "teal": 528, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 731 + 747 ] }, { "teal": 529, - "source": 321, + "source": "examples/reti/validatorRegistry.algo.ts:321", "pc": [ - 732, - 733, - 734 + 748, + 749, + 750 ] }, { "teal": 532, - "source": 323, + "source": "examples/reti/validatorRegistry.algo.ts:323", "pc": [ - 735, - 736, - 737 + 751, + 752, + 753 ] }, { "teal": 537, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 738, - 739 + 754, + 755 ] }, { "teal": 538, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 740, - 741 + 756, + 757 ] }, { "teal": 539, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 742, - 743 + 758, + 759 ] }, { "teal": 540, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 744, - 745 + 760, + 761 ] }, { "teal": 541, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 746 + 762 ] }, { "teal": 542, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 747, - 748 + 763, + 764 ] }, { "teal": 543, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 749 + 765 ] }, { "teal": 544, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 750 + 766 ] }, { "teal": 545, - "source": 325, + "source": "examples/reti/validatorRegistry.algo.ts:325", "pc": [ - 751, - 752 + 767, + 768 ] }, { "teal": 550, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 753, - 754 + 769, + 770 ] }, { "teal": 551, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 755 + 771, + 772 ] }, { "teal": 552, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 756 + 773 ] }, { "teal": 553, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 757, - 758 + 774, + 775 ] }, { "teal": 554, - "source": 320, + "source": "examples/reti/validatorRegistry.algo.ts:320", "pc": [ - 759, - 760, - 761 + 776, + 777, + 778 ] }, { "teal": 559, - "source": 327, + "source": "examples/reti/validatorRegistry.algo.ts:327", "pc": [ - 762, - 763 + 779, + 780 ] }, { "teal": 562, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 764, - 765 + 781, + 782 ] }, { "teal": 565, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 766, - 767 + 783, + 784 ] }, { "teal": 566, - "source": 317, + "source": "examples/reti/validatorRegistry.algo.ts:317", "pc": [ - 768 + 785 ] }, { "teal": 571, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 769 + 786, + 787, + 788, + 789, + 790, + 791 ] }, { "teal": 574, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 770, - 771, - 772 + 792, + 793, + 794 ] }, { "teal": 575, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 773 + 795 ] }, { "teal": 578, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 774, - 775, - 776 + 796, + 797, + 798 ] }, { "teal": 579, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 777 + 799 ] }, { "teal": 582, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 778, - 779, - 780 + 800, + 801, + 802 ] }, { "teal": 583, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 781 + 803 ] }, { "teal": 584, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 782 + 804 ] }, { "teal": 585, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 783 + 805 ] }, { "teal": 586, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 784 + 806, + 807 ] }, { "teal": 587, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 785 + 808 ] }, { "teal": 591, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 786, - 787, - 788 + 809, + 810, + 811 ] }, { "teal": 598, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 789, - 790 + 812, + 813 ] }, { "teal": 599, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 791 + 814, + 815 ] }, { "teal": 600, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 792 + 816 ] }, { "teal": 601, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 793 + 817 ] }, { "teal": 602, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 794, - 795, - 796 + 818, + 819, + 820 ] }, { "teal": 603, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 797, - 798 + 821, + 822 ] }, { "teal": 604, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 799 + 823, + 824 ] }, { "teal": 605, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 800 + 825 ] }, { "teal": 606, - "source": 336, + "source": "examples/reti/validatorRegistry.algo.ts:336", "pc": [ - 801 + 826 ] }, { "teal": 610, - "source": 335, + "source": "examples/reti/validatorRegistry.algo.ts:335", "errorMessage": "pool id must be between 1 and number of pools for this validator", "pc": [ - 802 + 827 ] }, { "teal": 614, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 803, - 804 + 828, + 829, + 830 ] }, { "teal": 615, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 805, - 806 + 831, + 832 ] }, { "teal": 616, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 807 + 833, + 834 ] }, { "teal": 617, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 808 + 835 ] }, { "teal": 618, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 809, - 810 + 836, + 837 ] }, { "teal": 619, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 811 + 838 ] }, { "teal": 620, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 812 + 839 ] }, { "teal": 621, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 813 + 840, + 841 ] }, { "teal": 622, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 814 + 842 ] }, { "teal": 623, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 815 + 843, + 844 ] }, { "teal": 624, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 816 + 845, + 846, + 847 ] }, { "teal": 625, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 817, - 818 + 848, + 849 ] }, { "teal": 626, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 819 + 850 ] }, { "teal": 627, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 820 + 851 ] }, { "teal": 628, - "source": 339, - "pc": [ - 821, - 822 + "source": "examples/reti/validatorRegistry.algo.ts:339", + "pc": [ + 852, + 853 ] }, { "teal": 629, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 823 + 854 ] }, { "teal": 630, - "source": 339, + "source": "examples/reti/validatorRegistry.algo.ts:339", "pc": [ - 824 + 855 ] }, { "teal": 631, - "source": 334, + "source": "examples/reti/validatorRegistry.algo.ts:334", "pc": [ - 825 + 856 ] }, { "teal": 636, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 826 + 857, + 858, + 859, + 860, + 861, + 862 ] }, { "teal": 639, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 827, - 828, - 829 + 863, + 864, + 865 ] }, { "teal": 640, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 830 + 866 ] }, { "teal": 641, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 831 + 867 ] }, { "teal": 642, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 832 + 868, + 869 ] }, { "teal": 643, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 833 + 870 ] }, { "teal": 646, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "errorMessage": "argument 0 (poolKey) for getPoolInfo must be a (uint64,uint64,uint64)", "pc": [ - 834 + 871 ] }, { "teal": 649, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 835, - 836, - 837 + 872, + 873, + 874 ] }, { "teal": 650, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 838 + 875 ] }, { "teal": 651, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 839 + 876 ] }, { "teal": 652, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 840 + 877, + 878 ] }, { "teal": 653, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 841 + 879 ] }, { "teal": 657, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 842, - 843, - 844 + 880, + 881, + 882 ] }, { "teal": 661, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 845, - 846 + 883, + 884, + 885 ] }, { "teal": 662, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 847, - 848 + 886, + 887 ] }, { "teal": 663, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 849, - 850, - 851 + 888, + 889, + 890 ] }, { "teal": 664, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 852 + 891 ] }, { "teal": 665, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 853 + 892, + 893 ] }, { "teal": 666, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 854 + 894 ] }, { "teal": 667, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 855, - 856 + 895, + 896 ] }, { "teal": 668, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 857 + 897 ] }, { "teal": 669, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 858 + 898 ] }, { "teal": 670, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 859, - 860 + 899, + 900 ] }, { "teal": 671, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 861 + 901, + 902, + 903 ] }, { "teal": 672, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 862, - 863 + 904, + 905 ] }, { "teal": 673, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 864, - 865, - 866 + 906, + 907, + 908 ] }, { "teal": 674, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 867 + 909 ] }, { "teal": 675, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 868 + 910 ] }, { "teal": 676, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 869 + 911 ] }, { "teal": 677, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 870, - 871 + 912, + 913 ] }, { "teal": 678, - "source": 344, + "source": "examples/reti/validatorRegistry.algo.ts:344", "pc": [ - 872 + 914 ] }, { "teal": 679, - "source": 343, + "source": "examples/reti/validatorRegistry.algo.ts:343", "pc": [ - 873 + 915 ] }, { "teal": 684, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 874 + 916, + 917, + 918, + 919, + 920, + 921 ] }, { "teal": 687, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 875, - 876, - 877 + 922, + 923, + 924 ] }, { "teal": 688, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 878 + 925 ] }, { "teal": 691, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 879, - 880, - 881 + 926, + 927, + 928 ] }, { "teal": 692, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 882 + 929 ] }, { "teal": 693, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 883 + 930 ] }, { "teal": 694, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 884 + 931 ] }, { "teal": 695, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 885 + 932, + 933 ] }, { "teal": 696, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 886 + 934 ] }, { "teal": 706, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 887, - 888, - 889 + 935, + 936, + 937 ] }, { "teal": 709, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 890 + 938, + 939 ] }, { "teal": 710, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 891, - 892 + 940, + 941 ] }, { "teal": 714, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 893, - 894 + 942, + 943, + 944 ] }, { "teal": 715, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 895, - 896 + 945, + 946 ] }, { "teal": 716, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 897 + 947, + 948, + 949 ] }, { "teal": 717, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 898, - 899 + 950, + 951 ] }, { "teal": 718, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 900 + 952 ] }, { "teal": 719, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 901 + 953 ] }, { "teal": 720, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 902, - 903 + 954, + 955 ] }, { "teal": 721, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 904 + 956 ] }, { "teal": 722, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 905 + 957 ] }, { "teal": 723, - "source": 355, + "source": "examples/reti/validatorRegistry.algo.ts:355", "pc": [ - 906, - 907 + 958, + 959 ] }, { "teal": 727, - "source": 356, + "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 908, - 909, - 910 + 960, + 961, + 962 ] }, { "teal": 728, - "source": 356, + "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 911, - 912 + 963, + 964 ] }, { "teal": 729, - "source": 356, + "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 913 + 965 ] }, { "teal": 730, - "source": 356, + "source": "examples/reti/validatorRegistry.algo.ts:356", "pc": [ - 914, - 915 + 966, + 967 ] }, { "teal": 734, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 916, - 917, - 918 + 968, + 969, + 970 ] }, { "teal": 735, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 919 + 971, + 972 ] }, { "teal": 736, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 920 + 973, + 974, + 975 ] }, { "teal": 737, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 921, - 922 + 976, + 977 ] }, { "teal": 738, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 923 + 978 ] }, { "teal": 739, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 924 + 979 ] }, { "teal": 740, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 925, - 926 + 980, + 981 ] }, { "teal": 741, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 927 + 982 ] }, { "teal": 742, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 928 + 983 ] }, { "teal": 743, - "source": 357, + "source": "examples/reti/validatorRegistry.algo.ts:357", "pc": [ - 929, - 930 + 984, + 985 ] }, { "teal": 748, - "source": 358, + "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 931, - 932 + 986, + 987 ] }, { "teal": 749, - "source": 358, + "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 933 + 988, + 989 ] }, { "teal": 750, - "source": 358, + "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 934 + 990 ] }, { "teal": 751, - "source": 358, + "source": "examples/reti/validatorRegistry.algo.ts:358", "pc": [ - 935, - 936, - 937 + 991, + 992, + 993 ] }, { "teal": 756, - "source": 359, + "source": "examples/reti/validatorRegistry.algo.ts:359", "pc": [ - 938, - 939, - 940 + 994, + 995, + 996 ] }, { "teal": 757, - "source": 359, + "source": "examples/reti/validatorRegistry.algo.ts:359", "pc": [ - 941, - 942 + 997, + 998 ] }, { "teal": 763, - "source": 361, + "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 943, - 944 + 999, + 1000 ] }, { "teal": 764, - "source": 361, + "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 945, - 946 + 1001, + 1002 ] }, { "teal": 765, - "source": 361, + "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 947 + 1003 ] }, { "teal": 766, - "source": 361, + "source": "examples/reti/validatorRegistry.algo.ts:361", "pc": [ - 948, - 949, - 950 + 1004, + 1005, + 1006 ] }, { "teal": 771, - "source": 362, + "source": "examples/reti/validatorRegistry.algo.ts:362", "pc": [ - 951, - 952 + 1007, + 1008 ] }, { "teal": 772, - "source": 362, + "source": "examples/reti/validatorRegistry.algo.ts:362", "pc": [ - 953, - 954 + 1009, + 1010 ] }, { "teal": 777, - "source": 364, + "source": "examples/reti/validatorRegistry.algo.ts:364", "pc": [ - 955, - 956 + 1011, + 1012 ] }, { "teal": 780, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 957, - 958 + 1013, + 1014 ] }, { "teal": 783, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 959, - 960 + 1015, + 1016 ] }, { "teal": 784, - "source": 354, + "source": "examples/reti/validatorRegistry.algo.ts:354", "pc": [ - 961 + 1017 ] }, { "teal": 789, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 962 + 1018, + 1019, + 1020, + 1021, + 1022, + 1023 ] }, { "teal": 792, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 963, - 964, - 965 + 1024, + 1025, + 1026 ] }, { "teal": 793, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 966 + 1027 ] }, { "teal": 794, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 967 + 1028 ] }, { "teal": 795, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 968, - 969 + 1029, + 1030 ] }, { "teal": 796, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 970 + 1031 ] }, { "teal": 799, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "errorMessage": "argument 0 (staker) for doesStakerNeedToPayMBR must be a address", "pc": [ - 971 + 1032 ] }, { "teal": 802, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 972, - 973, - 974 + 1033, + 1034, + 1035 ] }, { "teal": 803, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 975, - 976 + 1036, + 1037, + 1038 ] }, { "teal": 804, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 977 + 1039, + 1040 ] }, { "teal": 805, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 978, - 979 + 1041, + 1042 ] }, { "teal": 806, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 980 + 1043 ] }, { "teal": 807, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 981 + 1044 ] }, { "teal": 808, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 982 + 1045 ] }, { "teal": 809, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 983 + 1046, + 1047 ] }, { "teal": 810, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 984 + 1048 ] }, { "teal": 817, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 985, - 986, - 987 + 1049, + 1050, + 1051 ] }, { "teal": 821, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 988 + 1052, + 1053, + 1054, + 1055, + 1056 ] }, { "teal": 822, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 989, - 990 + 1057, + 1058 ] }, { "teal": 823, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 991 + 1059 ] }, { "teal": 824, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 992 + 1060 ] }, { "teal": 825, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 993 + 1061 ] }, { "teal": 826, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 994 + 1062 ] }, { "teal": 827, - "source": 373, + "source": "examples/reti/validatorRegistry.algo.ts:373", "pc": [ - 995 + 1063 ] }, { "teal": 828, - "source": 372, + "source": "examples/reti/validatorRegistry.algo.ts:372", "pc": [ - 996 + 1064 ] }, { "teal": 833, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 997 + 1065, + 1066, + 1067, + 1068, + 1069, + 1070 ] }, { "teal": 836, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 998, - 999, - 1000 + 1071, + 1072, + 1073 ] }, { "teal": 837, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1001 + 1074 ] }, { "teal": 838, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1002 + 1075 ] }, { "teal": 839, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1003, - 1004 + 1076, + 1077 ] }, { "teal": 840, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1005 + 1078 ] }, { "teal": 843, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "errorMessage": "argument 0 (staker) for getStakedPoolsForAccount must be a address", "pc": [ - 1006 + 1079 ] }, { "teal": 846, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1007, - 1008, - 1009 + 1080, + 1081, + 1082 ] }, { "teal": 847, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1010 + 1083 ] }, { "teal": 848, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1011 + 1084 ] }, { "teal": 849, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1012 + 1085, + 1086 ] }, { "teal": 850, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1013 + 1087 ] }, { "teal": 851, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1014 + 1088 ] }, { "teal": 852, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1015, - 1016, - 1017 + 1089, + 1090, + 1091 ] }, { "teal": 853, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1018 + 1092 ] }, { "teal": 854, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1019 + 1093 ] }, { "teal": 855, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1020 + 1094 ] }, { "teal": 856, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1021 + 1095 ] }, { "teal": 857, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1022 + 1096, + 1097 ] }, { "teal": 858, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1023 + 1098 ] }, { "teal": 867, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1024, - 1025, - 1026 + 1099, + 1100, + 1101 ] }, { "teal": 870, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1027 + 1102, + 1103 ] }, { "teal": 871, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1028, - 1029 + 1104, + 1105 ] }, { "teal": 876, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1030 + 1106, + 1107, + 1108, + 1109, + 1110 ] }, { "teal": 877, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1031, - 1032 + 1111, + 1112 ] }, { "teal": 878, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1033 + 1113 ] }, { "teal": 879, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1034 + 1114 ] }, { "teal": 880, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1035 + 1115 ] }, { "teal": 881, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1036 + 1116 ] }, { "teal": 882, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1037 + 1117 ] }, { "teal": 883, - "source": 383, + "source": "examples/reti/validatorRegistry.algo.ts:383", "pc": [ - 1038, - 1039, - 1040 + 1118, + 1119, + 1120 ] }, { "teal": 888, - "source": 384, + "source": "examples/reti/validatorRegistry.algo.ts:384", "pc": [ - 1041 + 1121, + 1122 ] }, { "teal": 889, - "source": 384, + "source": "examples/reti/validatorRegistry.algo.ts:384", "pc": [ - 1042, - 1043, - 1044 + 1123, + 1124, + 1125 ] }, { "teal": 894, - "source": 386, + "source": "examples/reti/validatorRegistry.algo.ts:386", "pc": [ - 1045 + 1126, + 1127 ] }, { "teal": 895, - "source": 386, + "source": "examples/reti/validatorRegistry.algo.ts:386", "pc": [ - 1046, - 1047 + 1128, + 1129 ] }, { "teal": 899, - "source": 387, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 1048 + 1130, + 1131, + 1132, + 1133, + 1134 ] }, { "teal": 900, - "source": 387, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 1049, - 1050 + 1135, + 1136 ] }, { "teal": 901, - "source": 387, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 1051 + 1137 ] }, { "teal": 902, - "source": 387, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 1052 + 1138 ] }, { "teal": 905, - "source": 387, + "source": "examples/reti/validatorRegistry.algo.ts:387", "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 1053 + 1139 ] }, { "teal": 906, - "source": 387, + "source": "examples/reti/validatorRegistry.algo.ts:387", "pc": [ - 1054, - 1055 + 1140, + 1141 ] }, { "teal": 910, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1056 + 1142, + 1143 ] }, { "teal": 911, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1057, - 1058 + 1144, + 1145 ] }, { "teal": 916, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1059, - 1060 + 1146, + 1147 ] }, { "teal": 917, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1061, - 1062 + 1148, + 1149 ] }, { "teal": 918, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1063 + 1150 ] }, { "teal": 919, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1064, - 1065, - 1066 + 1151, + 1152, + 1153 ] }, { "teal": 924, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1067, - 1068 + 1154, + 1155 ] }, { "teal": 925, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1069, - 1070 + 1156, + 1157 ] }, { "teal": 926, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1071 + 1158, + 1159 ] }, { "teal": 927, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1072 + 1160 ] }, { "teal": 928, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1073 + 1161, + 1162 ] }, { "teal": 929, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1074 + 1163 ] }, { "teal": 930, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1075 + 1164, + 1165 ] }, { "teal": 931, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1076 + 1166 ] }, { "teal": 932, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1077 + 1167 ] }, { "teal": 933, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1078 + 1168, + 1169 ] }, { "teal": 934, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1079 + 1170 ] }, { "teal": 935, - "source": 389, + "source": "examples/reti/validatorRegistry.algo.ts:389", "pc": [ - 1080, - 1081, - 1082 + 1171, + 1172, + 1173 ] }, { "teal": 940, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1083, - 1084 + 1174, + 1175 ] }, { "teal": 941, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1085, - 1086 + 1176, + 1177 ] }, { "teal": 942, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1087, - 1088 + 1178, + 1179 ] }, { "teal": 943, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1089 + 1180, + 1181 ] }, { "teal": 944, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1090 + 1182 ] }, { "teal": 945, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1091 + 1183, + 1184 ] }, { "teal": 946, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1092 + 1185 ] }, { "teal": 947, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1093 + 1186 ] }, { "teal": 948, - "source": 390, + "source": "examples/reti/validatorRegistry.algo.ts:390", "pc": [ - 1094, - 1095 + 1187, + 1188 ] }, { "teal": 955, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1096, - 1097 + 1189, + 1190 ] }, { "teal": 956, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1098 + 1191, + 1192 ] }, { "teal": 957, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1099 + 1193 ] }, { "teal": 958, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1100, - 1101 + 1194, + 1195 ] }, { "teal": 959, - "source": 388, + "source": "examples/reti/validatorRegistry.algo.ts:388", "pc": [ - 1102, - 1103, - 1104 + 1196, + 1197, + 1198 ] }, { "teal": 964, - "source": 393, + "source": "examples/reti/validatorRegistry.algo.ts:393", "pc": [ - 1105, - 1106 + 1199, + 1200 ] }, { "teal": 968, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1107, - 1108 + 1201, + 1202 ] }, { "teal": 971, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1109, - 1110 + 1203, + 1204 ] }, { "teal": 972, - "source": 382, + "source": "examples/reti/validatorRegistry.algo.ts:382", "pc": [ - 1111 + 1205 ] }, { "teal": 977, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1112 + 1206, + 1207, + 1208, + 1209, + 1210, + 1211 ] }, { "teal": 980, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1113, - 1114, - 1115 + 1212, + 1213, + 1214 ] }, { "teal": 981, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1116 + 1215 ] }, { "teal": 984, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1117, - 1118, - 1119 + 1216, + 1217, + 1218 ] }, { "teal": 985, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1120 + 1219 ] }, { "teal": 986, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1121 + 1220 ] }, { "teal": 987, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1122 + 1221, + 1222 ] }, { "teal": 988, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1123 + 1223 ] }, { "teal": 998, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1124, - 1125, - 1126 + 1224, + 1225, + 1226 ] }, { "teal": 1002, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1127, - 1128 + 1227, + 1228, + 1229 ] }, { "teal": 1003, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1129, - 1130 + 1230, + 1231, + 1232 ] }, { "teal": 1004, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1131 + 1233, + 1234, + 1235 ] }, { "teal": 1005, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1132, - 1133 + 1236, + 1237 ] }, { "teal": 1006, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1134 + 1238 ] }, { "teal": 1007, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1135 + 1239 ] }, { "teal": 1008, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1136, - 1137 + 1240, + 1241 ] }, { "teal": 1009, - "source": 405, + "source": "examples/reti/validatorRegistry.algo.ts:405", "pc": [ - 1138 + 1242 ] }, { "teal": 1010, - "source": 404, + "source": "examples/reti/validatorRegistry.algo.ts:404", "pc": [ - 1139 + 1243 ] }, { "teal": 1015, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1140 + 1244, + 1245, + 1246, + 1247, + 1248, + 1249 ] }, { "teal": 1018, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1141, - 1142, - 1143 + 1250, + 1251, + 1252 ] }, { "teal": 1019, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1144 + 1253 ] }, { "teal": 1022, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1145, - 1146, - 1147 + 1254, + 1255, + 1256 ] }, { "teal": 1023, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1148 + 1257 ] }, { "teal": 1024, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1149 + 1258 ] }, { "teal": 1025, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1150 + 1259, + 1260 ] }, { "teal": 1026, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1151 + 1261 ] }, { "teal": 1030, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1152, - 1153, - 1154 + 1262, + 1263, + 1264 ] }, { "teal": 1034, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1155 + 1265, + 1266, + 1267 ] }, { "teal": 1035, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1156, - 1157 + 1268, + 1269 ] }, { "teal": 1036, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1158 + 1270 ] }, { "teal": 1037, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1159 + 1271 ] }, { "teal": 1038, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1160 + 1272 ] }, { "teal": 1039, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1161 + 1273 ] }, { "teal": 1040, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "pc": [ - 1162 + 1274 ] }, { "teal": 1043, - "source": 410, + "source": "examples/reti/validatorRegistry.algo.ts:410", "errorMessage": "the specified validator id doesn't exist", "pc": [ - 1163 + 1275 ] }, { "teal": 1047, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1164, - 1165 + 1276, + 1277, + 1278 ] }, { "teal": 1048, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1166, - 1167 + 1279, + 1280, + 1281 ] }, { "teal": 1049, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1168 + 1282, + 1283, + 1284 ] }, { "teal": 1050, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1169, - 1170 + 1285, + 1286 ] }, { "teal": 1051, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1171 + 1287 ] }, { "teal": 1052, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1172 + 1288 ] }, { "teal": 1053, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1173, - 1174 + 1289, + 1290 ] }, { "teal": 1054, - "source": 412, + "source": "examples/reti/validatorRegistry.algo.ts:412", "pc": [ - 1175 + 1291 ] }, { "teal": 1055, - "source": 409, + "source": "examples/reti/validatorRegistry.algo.ts:409", "pc": [ - 1176 + 1292 ] }, { "teal": 1060, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1177 + 1293, + 1294, + 1295, + 1296, + 1297, + 1298 ] }, { "teal": 1063, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1178, - 1179, - 1180 + 1299, + 1300, + 1301 ] }, { "teal": 1064, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1181 + 1302 ] }, { "teal": 1065, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1182 + 1303 ] }, { "teal": 1066, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1183 + 1304 ] }, { "teal": 1067, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1184 + 1305, + 1306 ] }, { "teal": 1068, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1185 + 1307 ] }, { "teal": 1072, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1186, - 1187, - 1188 + 1308, + 1309, + 1310 ] }, { "teal": 1076, - "source": 416, + "source": "examples/reti/validatorRegistry.algo.ts:416", "pc": [ - 1189, - 1190 + 1311 ] }, { "teal": 1077, - "source": 415, + "source": "examples/reti/validatorRegistry.algo.ts:415", "pc": [ - 1191 + 1312 ] }, { "teal": 1082, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1192 + 1313, + 1314, + 1315, + 1316, + 1317, + 1318 ] }, { "teal": 1085, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1193, - 1194, - 1195 + 1319, + 1320, + 1321 ] }, { "teal": 1086, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1196 + 1322 ] }, { "teal": 1087, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1197 + 1323 ] }, { "teal": 1088, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1198, - 1199 + 1324, + 1325, + 1326 ] }, { "teal": 1089, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1200 + 1327 ] }, { "teal": 1092, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "errorMessage": "argument 0 (config) for addValidator must be a (uint64,address,address,uint64,uint8,address,uint64[4],uint64,uint64,uint64,uint32,uint32,address,uint64,uint64,uint8,uint64,uint64)", "pc": [ - 1201 + 1328 ] }, { "teal": 1095, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1202, - 1203, - 1204 + 1329, + 1330, + 1331 ] }, { "teal": 1096, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1205, - 1206, - 1207 + 1332, + 1333, + 1334 ] }, { "teal": 1099, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1208, - 1209 + 1335, + 1336 ] }, { "teal": 1100, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1210 + 1337, + 1338 ] }, { "teal": 1101, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1211 + 1339 ] }, { "teal": 1102, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1212 + 1340 ] }, { "teal": 1103, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1213, - 1214 + 1341, + 1342 ] }, { "teal": 1104, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1215 + 1343, + 1344 ] }, { "teal": 1105, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1216 + 1345 ] }, { "teal": 1108, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "errorMessage": "argument 2 (mbrPayment) for addValidator must be a pay transaction", "pc": [ - 1217 + 1346 ] }, { "teal": 1111, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1218, - 1219, - 1220 + 1347, + 1348, + 1349 ] }, { "teal": 1112, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1221 + 1350 ] }, { "teal": 1113, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1222 + 1351 ] }, { "teal": 1114, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1223 + 1352 ] }, { "teal": 1115, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1224 + 1353, + 1354 ] }, { "teal": 1116, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1225 + 1355 ] }, { "teal": 1128, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1226, - 1227, - 1228 + 1356, + 1357, + 1358 ] }, { "teal": 1131, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1229 + 1359, + 1360 ] }, { "teal": 1135, - "source": 428, + "source": "examples/reti/validatorRegistry.algo.ts:428", "pc": [ - 1230, - 1231 + 1361, + 1362 ] }, { "teal": 1136, - "source": 428, + "source": "examples/reti/validatorRegistry.algo.ts:428", "pc": [ - 1232, - 1233, - 1234 + 1363, + 1364, + 1365 ] }, { "teal": 1140, - "source": 429, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1235, - 1236 + 1366, + 1367 ] }, { "teal": 1141, - "source": 429, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1237, - 1238, - 1239 + 1368, + 1369, + 1370 ] }, { "teal": 1142, - "source": 429, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1240, - 1241 + 1371, + 1372 ] }, { "teal": 1143, - "source": 429, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1242 + 1373 ] }, { "teal": 1144, - "source": 429, + "source": "examples/reti/validatorRegistry.algo.ts:429", "pc": [ - 1243 + 1374 ] }, { "teal": 1148, - "source": 430, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1244, - 1245 + 1375, + 1376 ] }, { "teal": 1149, - "source": 430, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1246, - 1247, - 1248 + 1377, + 1378, + 1379 ] }, { "teal": 1150, - "source": 430, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1249, - 1250 + 1380, + 1381 ] }, { "teal": 1151, - "source": 430, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1251 + 1382 ] }, { "teal": 1152, - "source": 430, + "source": "examples/reti/validatorRegistry.algo.ts:430", "pc": [ - 1252 + 1383 ] }, { "teal": 1156, - "source": 431, + "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ - 1253, - 1254 + 1384, + 1385 ] }, { "teal": 1157, - "source": 431, + "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ - 1255, - 1256 + 1386, + 1387 ] }, { "teal": 1158, - "source": 431, + "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ - 1257, - 1258, - 1259 + 1388, + 1389, + 1390 ] }, { "teal": 1159, - "source": 431, + "source": "examples/reti/validatorRegistry.algo.ts:431", "pc": [ - 1260 + 1391 ] }, { "teal": 1162, - "source": 431, + "source": "examples/reti/validatorRegistry.algo.ts:431", "errorMessage": "sender must be owner to add new validator", "pc": [ - 1261 + 1392 ] }, { "teal": 1167, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1262, - 1263 + 1393, + 1394 ] }, { "teal": 1168, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1264, - 1265 + 1395, + 1396 ] }, { "teal": 1169, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1266, - 1267, - 1268 + 1397, + 1398, + 1399 ] }, { "teal": 1170, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1269, - 1270, - 1271 + 1400, + 1401, + 1402 ] }, { "teal": 1171, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1272 + 1403 ] }, { "teal": 1172, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "pc": [ - 1273 + 1404 ] }, { "teal": 1175, - "source": 433, + "source": "examples/reti/validatorRegistry.algo.ts:433", "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addValidatorMbr\"}", "pc": [ - 1274 + 1405 ] }, { "teal": 1179, - "source": 435, + "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ - 1275, - 1276 + 1406, + 1407 ] }, { "teal": 1180, - "source": 435, + "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ - 1277, - 1278 + 1408, + 1409 ] }, { "teal": 1181, - "source": 435, + "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ - 1279, - 1280, - 1281, - 1282, - 1283 + 1410, + 1411, + 1412, + 1413, + 1414 ] }, { "teal": 1182, - "source": 435, + "source": "examples/reti/validatorRegistry.algo.ts:435", "pc": [ - 1284 + 1415 ] }, { "teal": 1185, - "source": 435, + "source": "examples/reti/validatorRegistry.algo.ts:435", "errorMessage": "fee must be 10 ALGO or more to prevent spamming of validators", "pc": [ - 1285 + 1416 ] }, { "teal": 1189, - "source": 438, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1286, - 1287 + 1417, + 1418, + 1419, + 1420, + 1421, + 1422 ] }, { "teal": 1190, - "source": 438, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1288 + 1423 ] }, { "teal": 1191, - "source": 438, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1289 + 1424, + 1425 ] }, { "teal": 1192, - "source": 438, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1290 + 1426 ] }, { "teal": 1193, - "source": 438, + "source": "examples/reti/validatorRegistry.algo.ts:438", "pc": [ - 1291, - 1292 + 1427, + 1428 ] }, { "teal": 1197, - "source": 439, + "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ - 1293, - 1294 + 1429, + 1430, + 1431, + 1432, + 1433, + 1434 ] }, { "teal": 1198, - "source": 439, + "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ - 1295, - 1296 + 1435, + 1436 ] }, { "teal": 1199, - "source": 439, + "source": "examples/reti/validatorRegistry.algo.ts:439", "pc": [ - 1297 + 1437 ] }, { "teal": 1203, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1298 + 1438, + 1439, + 1440 ] }, { "teal": 1204, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1299, - 1300 + 1441, + 1442 ] }, { "teal": 1205, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1301 + 1443 ] }, { "teal": 1206, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1302 + 1444 ] }, { "teal": 1207, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1303, - 1304, - 1305 + 1445, + 1446, + 1447 ] }, { "teal": 1208, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1306 + 1448 ] }, { "teal": 1209, - "source": 441, + "source": "examples/reti/validatorRegistry.algo.ts:441", "pc": [ - 1307 + 1449 ] }, { "teal": 1213, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1308 + 1450, + 1451 ] }, { "teal": 1214, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1309, - 1310 + 1452, + 1453 ] }, { "teal": 1215, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1311 + 1454, + 1455, + 1456 ] }, { "teal": 1216, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1312, - 1313 + 1457, + 1458 ] }, { "teal": 1217, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1314 + 1459 ] }, { "teal": 1218, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1315 + 1460 ] }, { "teal": 1219, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1316, - 1317 + 1461, + 1462 ] }, { "teal": 1220, - "source": 442, + "source": "examples/reti/validatorRegistry.algo.ts:442", "pc": [ - 1318 + 1463 ] }, { "teal": 1224, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1319 + 1464, + 1465 ] }, { "teal": 1225, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1320, - 1321 + 1466, + 1467 ] }, { "teal": 1226, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1322 + 1468 ] }, { "teal": 1227, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1323 + 1469, + 1470, + 1471 ] }, { "teal": 1228, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1324, - 1325 + 1472, + 1473 ] }, { "teal": 1229, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1326 + 1474 ] }, { "teal": 1230, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1327 + 1475 ] }, { "teal": 1231, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1328, - 1329 + 1476, + 1477 ] }, { "teal": 1232, - "source": 443, + "source": "examples/reti/validatorRegistry.algo.ts:443", "pc": [ - 1330 + 1478 ] }, { "teal": 1237, - "source": 446, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1331, - 1332 + 1479, + 1480 ] }, { "teal": 1238, - "source": 446, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1333, - 1334, - 1335 + 1481, + 1482, + 1483 ] }, { "teal": 1239, - "source": 446, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1336 + 1484 ] }, { "teal": 1240, - "source": 446, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1337 + 1485, + 1486 ] }, { "teal": 1241, - "source": 446, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1338 + 1487 ] }, { "teal": 1242, - "source": 446, + "source": "examples/reti/validatorRegistry.algo.ts:446", "pc": [ - 1339, - 1340, - 1341 + 1488, + 1489, + 1490 ] }, { "teal": 1251, - "source": 448, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1342 + 1491 ] }, { "teal": 1252, - "source": 448, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1343, - 1344 + 1492, + 1493 ] }, { "teal": 1253, - "source": 448, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1345, - 1346 + 1494, + 1495 ] }, { "teal": 1257, - "source": 449, + "source": "examples/reti/validatorRegistry.algo.ts:449", "pc": [ - 1347, - 1348 + 1496 ] }, { "teal": 1258, - "source": 449, + "source": "examples/reti/validatorRegistry.algo.ts:449", "pc": [ - 1349, - 1350 + 1497, + 1498 ] }, { "teal": 1262, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1351, - 1352 + 1499, + 1500, + 1501, + 1502, + 1503, + 1504, + 1505, + 1506, + 1507, + 1508, + 1509, + 1510, + 1511, + 1512, + 1513, + 1514, + 1515, + 1516, + 1517, + 1518 ] }, { "teal": 1263, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1353, - 1354 + 1519, + 1520 ] }, { "teal": 1264, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1355, - 1356 + 1521, + 1522 ] }, { "teal": 1265, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1357, - 1358 + 1523, + 1524 ] }, { "teal": 1266, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1359, - 1360 + 1525, + 1526 ] }, { "teal": 1267, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1361, - 1362, - 1363 + 1527, + 1528, + 1529 ] }, { "teal": 1268, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1364 + 1530 ] }, { "teal": 1269, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1365 + 1531 ] }, { "teal": 1270, - "source": 450, + "source": "examples/reti/validatorRegistry.algo.ts:450", "pc": [ - 1366, - 1367 + 1532, + 1533 ] }, { "teal": 1274, - "source": 451, + "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ - 1368, - 1369 + 1534, + 1535 ] }, { "teal": 1275, - "source": 451, + "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ - 1370, - 1371, - 1372 + 1536, + 1537, + 1538 ] }, { "teal": 1276, - "source": 451, + "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ - 1373 + 1539 ] }, { "teal": 1277, - "source": 451, + "source": "examples/reti/validatorRegistry.algo.ts:451", "pc": [ - 1374, - 1375 + 1540, + 1541 ] }, { "teal": 1280, - "source": 448, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1376 + 1542, + 1543 ] }, { "teal": 1281, - "source": 448, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1377, - 1378 + 1544, + 1545 ] }, { "teal": 1284, - "source": 448, + "source": "examples/reti/validatorRegistry.algo.ts:448", "pc": [ - 1379 + 1546 ] }, { "teal": 1288, - "source": 453, + "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1380, - 1381 + 1547, + 1548 ] }, { "teal": 1289, - "source": 453, + "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1382 + 1549 ] }, { "teal": 1290, - "source": 453, + "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1383 + 1550, + 1551 ] }, { "teal": 1291, - "source": 453, + "source": "examples/reti/validatorRegistry.algo.ts:453", "pc": [ - 1384 + 1552 ] }, { "teal": 1294, - "source": 453, + "source": "examples/reti/validatorRegistry.algo.ts:453", "errorMessage": "provided NFD isn't valid", "pc": [ - 1385 + 1553 ] }, { "teal": 1301, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1386, - 1387 + 1554, + 1555 ] }, { "teal": 1302, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1388, - 1389 + 1556, + 1557 ] }, { "teal": 1303, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1390, - 1391, - 1392 + 1558, + 1559, + 1560 ] }, { "teal": 1304, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1393 + 1561 ] }, { "teal": 1305, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1394, - 1395 + 1562, + 1563, + 1564, + 1565, + 1566, + 1567, + 1568, + 1569, + 1570, + 1571, + 1572 ] }, { "teal": 1306, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1396 + 1573 ] }, { "teal": 1309, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "errorMessage": "global state value does not exist: AppID.fromUint64(config.nfdForInfo).globalState('i.owner.a')", "pc": [ - 1397 + 1574 ] }, { "teal": 1310, - "source": 456, + "source": "examples/reti/validatorRegistry.algo.ts:456", "pc": [ - 1398 + 1575 ] }, { "teal": 1313, - "source": 455, + "source": "examples/reti/validatorRegistry.algo.ts:455", "errorMessage": "If specifying NFD, account adding validator must be owner", "pc": [ - 1399 + 1576 ] }, { "teal": 1320, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1400, - 1401 + 1577, + 1578 ] }, { "teal": 1321, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1402, - 1403, - 1404 + 1579, + 1580, + 1581 ] }, { "teal": 1322, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1405 + 1582 ] }, { "teal": 1323, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1406, - 1407 + 1583, + 1584 ] }, { "teal": 1324, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1408 + 1585 ] }, { "teal": 1325, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1409 + 1586 ] }, { "teal": 1326, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1410, - 1411, - 1412 + 1587, + 1588, + 1589 ] }, { "teal": 1327, - "source": 462, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1413, - 1414 + 1590, + 1591 ] }, { "teal": 1328, - "source": 462, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1415, - 1416, - 1417 + 1592, + 1593, + 1594 ] }, { "teal": 1329, - "source": 462, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1418 + 1595 ] }, { "teal": 1330, - "source": 462, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1419, - 1420 + 1596, + 1597 ] }, { "teal": 1331, - "source": 462, + "source": "examples/reti/validatorRegistry.algo.ts:462", "pc": [ - 1421 + 1598 ] }, { "teal": 1332, - "source": 461, + "source": "examples/reti/validatorRegistry.algo.ts:461", "pc": [ - 1422 + 1599 ] }, { "teal": 1335, - "source": 460, + "source": "examples/reti/validatorRegistry.algo.ts:460", "pc": [ - 1423, - 1424, - 1425 + 1600, + 1601, + 1602 ] }, { "teal": 1340, - "source": 465, + "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1426, - 1427 + 1603, + 1604 ] }, { "teal": 1341, - "source": 465, + "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1428, - 1429, - 1430 + 1605, + 1606, + 1607 ] }, { "teal": 1342, - "source": 465, + "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1431 + 1608 ] }, { "teal": 1343, - "source": 465, + "source": "examples/reti/validatorRegistry.algo.ts:465", "pc": [ - 1432, - 1433, - 1434 + 1609, + 1610, + 1611 ] }, { "teal": 1346, - "source": 465, + "source": "examples/reti/validatorRegistry.algo.ts:465", "errorMessage": "provided NFD App id for gating must be valid NFD", "pc": [ - 1435 + 1612 ] }, { "teal": 1351, - "source": 468, + "source": "examples/reti/validatorRegistry.algo.ts:468", "pc": [ - 1436, - 1437 + 1613, + 1614 ] }, { "teal": 1354, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1438, - 1439 + 1615, + 1616 ] }, { "teal": 1355, - "source": 427, + "source": "examples/reti/validatorRegistry.algo.ts:427", "pc": [ - 1440 + 1617 ] }, { "teal": 1360, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1441, - 1442, - 1443 + 1618, + 1619, + 1620 ] }, { "teal": 1361, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1444 + 1621 ] }, { "teal": 1362, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1445 + 1622 ] }, { "teal": 1363, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1446, - 1447 + 1623, + 1624 ] }, { "teal": 1364, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1448 + 1625 ] }, { "teal": 1367, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "errorMessage": "argument 0 (manager) for changeValidatorManager must be a address", "pc": [ - 1449 + 1626 ] }, { "teal": 1370, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1450, - 1451, - 1452 + 1627, + 1628, + 1629 ] }, { "teal": 1371, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1453 + 1630 ] }, { "teal": 1374, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1454, - 1455, - 1456 + 1631, + 1632, + 1633 ] }, { "teal": 1375, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1457 + 1634, + 1635 ] }, { "teal": 1376, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1458 + 1636 ] }, { "teal": 1386, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1459, - 1460, - 1461 + 1637, + 1638, + 1639 ] }, { "teal": 1393, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1462, - 1463 + 1640, + 1641 ] }, { "teal": 1394, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1464 + 1642, + 1643 ] }, { "teal": 1395, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1465, - 1466 + 1644, + 1645 ] }, { "teal": 1396, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1467 + 1646, + 1647, + 1648 ] }, { "teal": 1397, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1468, - 1469 + 1649, + 1650 ] }, { "teal": 1398, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1470 + 1651 ] }, { "teal": 1399, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1471 + 1652 ] }, { "teal": 1400, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1472, - 1473 + 1653, + 1654 ] }, { "teal": 1401, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1474 + 1655 ] }, { "teal": 1402, - "source": 480, + "source": "examples/reti/validatorRegistry.algo.ts:480", "pc": [ - 1475 + 1656 ] }, { "teal": 1405, - "source": 479, + "source": "examples/reti/validatorRegistry.algo.ts:479", "errorMessage": "can only be called by validator owner", "pc": [ - 1476 + 1657 ] }, { "teal": 1409, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1477, - 1478 + 1658, + 1659 ] }, { "teal": 1410, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1479, - 1480 + 1660, + 1661 ] }, { "teal": 1411, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1481 + 1662, + 1663, + 1664 ] }, { "teal": 1412, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1482, - 1483 + 1665, + 1666 ] }, { "teal": 1413, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1484 + 1667 ] }, { "teal": 1414, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1485 + 1668 ] }, { "teal": 1415, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1486, - 1487 + 1669, + 1670 ] }, { "teal": 1416, - "source": 483, + "source": "examples/reti/validatorRegistry.algo.ts:483", "pc": [ - 1488 + 1671 ] }, { "teal": 1417, - "source": 478, + "source": "examples/reti/validatorRegistry.algo.ts:478", "pc": [ - 1489 + 1672 ] }, { "teal": 1422, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1490, - 1491, - 1492 + 1673, + 1674, + 1675 ] }, { "teal": 1423, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1493 + 1676 ] }, { "teal": 1426, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1494, - 1495, - 1496 + 1677, + 1678, + 1679 ] }, { "teal": 1427, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1497 + 1680 ] }, { "teal": 1430, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1498, - 1499, - 1500 + 1681, + 1682, + 1683 ] }, { "teal": 1431, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1501 + 1684 ] }, { "teal": 1434, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1502, - 1503, - 1504 + 1685, + 1686, + 1687 ] }, { "teal": 1435, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1505 + 1688, + 1689 ] }, { "teal": 1436, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1506 + 1690 ] }, { "teal": 1447, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1507, - 1508, - 1509 + 1691, + 1692, + 1693 ] }, { "teal": 1454, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1510, - 1511 + 1694, + 1695 ] }, { "teal": 1455, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1512 + 1696, + 1697 ] }, { "teal": 1456, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1513, - 1514 + 1698, + 1699 ] }, { "teal": 1457, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1515 + 1700, + 1701, + 1702 ] }, { "teal": 1458, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1516, - 1517 + 1703, + 1704 ] }, { "teal": 1459, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1518 + 1705 ] }, { "teal": 1460, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1519 + 1706 ] }, { "teal": 1461, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1520, - 1521 + 1707, + 1708 ] }, { "teal": 1462, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1522 + 1709 ] }, { "teal": 1463, - "source": 496, + "source": "examples/reti/validatorRegistry.algo.ts:496", "pc": [ - 1523 + 1710 ] }, { "teal": 1466, - "source": 495, + "source": "examples/reti/validatorRegistry.algo.ts:495", "errorMessage": "can only be called by validator owner", "pc": [ - 1524 + 1711 ] }, { "teal": 1470, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1525, - 1526 + 1712, + 1713, + 1714 ] }, { "teal": 1471, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1527, - 1528 + 1715, + 1716 ] }, { "teal": 1472, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1529 + 1717 ] }, { "teal": 1473, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1530 + 1718, + 1719, + 1720 ] }, { "teal": 1474, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1531, - 1532 + 1721, + 1722 ] }, { "teal": 1475, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1533 + 1723 ] }, { "teal": 1476, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1534 + 1724 ] }, { "teal": 1477, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1535, - 1536 + 1725, + 1726 ] }, { "teal": 1478, - "source": 499, + "source": "examples/reti/validatorRegistry.algo.ts:499", "pc": [ - 1537 + 1727 ] }, { "teal": 1482, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1538, - 1539, - 1540 + 1728, + 1729, + 1730 ] }, { "teal": 1483, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1541, - 1542 + 1731, + 1732 ] }, { "teal": 1484, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1543 + 1733 ] }, { "teal": 1485, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1544 + 1734, + 1735, + 1736 ] }, { "teal": 1486, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1545, - 1546 + 1737, + 1738 ] }, { "teal": 1487, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1547 + 1739 ] }, { "teal": 1488, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1548 + 1740 ] }, { "teal": 1489, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1549, - 1550 + 1741, + 1742 ] }, { "teal": 1490, - "source": 500, + "source": "examples/reti/validatorRegistry.algo.ts:500", "pc": [ - 1551 + 1743 ] }, { "teal": 1491, - "source": 494, + "source": "examples/reti/validatorRegistry.algo.ts:494", "pc": [ - 1552 + 1744 ] }, { "teal": 1496, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1553, - 1554, - 1555 + 1745, + 1746, + 1747 ] }, { "teal": 1497, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1556, - 1557, - 1558 + 1748, + 1749, + 1750 ] }, { "teal": 1500, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1559, - 1560, - 1561 + 1751, + 1752, + 1753 ] }, { "teal": 1501, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1562 + 1754 ] }, { "teal": 1504, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1563, - 1564, - 1565 + 1755, + 1756, + 1757 ] }, { "teal": 1505, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1566 + 1758 ] }, { "teal": 1508, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1567, - 1568, - 1569 + 1759, + 1760, + 1761 ] }, { "teal": 1509, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1570 + 1762, + 1763 ] }, { "teal": 1510, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1571 + 1764 ] }, { "teal": 1521, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1572, - 1573, - 1574 + 1765, + 1766, + 1767 ] }, { "teal": 1528, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1575, - 1576 + 1768, + 1769 ] }, { "teal": 1529, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1577 + 1770, + 1771 ] }, { "teal": 1530, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1578, - 1579 + 1772, + 1773 ] }, { "teal": 1531, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1580 + 1774, + 1775, + 1776 ] }, { "teal": 1532, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1581, - 1582 + 1777, + 1778 ] }, { "teal": 1533, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1583 + 1779 ] }, { "teal": 1534, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1584 + 1780 ] }, { "teal": 1535, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1585, - 1586 + 1781, + 1782 ] }, { "teal": 1536, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1587 + 1783 ] }, { "teal": 1537, - "source": 514, + "source": "examples/reti/validatorRegistry.algo.ts:514", "pc": [ - 1588 + 1784 ] }, { "teal": 1540, - "source": 513, + "source": "examples/reti/validatorRegistry.algo.ts:513", "errorMessage": "can only be called by validator owner", "pc": [ - 1589 + 1785 ] }, { "teal": 1548, - "source": 518, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1590 + 1786 ] }, { "teal": 1549, - "source": 518, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1591, - 1592 + 1787, + 1788 ] }, { "teal": 1550, - "source": 518, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1593, - 1594 + 1789, + 1790 ] }, { "teal": 1554, - "source": 519, + "source": "examples/reti/validatorRegistry.algo.ts:519", "pc": [ - 1595, - 1596 + 1791 ] }, { "teal": 1555, - "source": 519, + "source": "examples/reti/validatorRegistry.algo.ts:519", "pc": [ - 1597, - 1598 + 1792, + 1793 ] }, { "teal": 1559, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1599, - 1600 + 1794, + 1795, + 1796, + 1797, + 1798, + 1799, + 1800, + 1801, + 1802, + 1803, + 1804, + 1805, + 1806, + 1807, + 1808, + 1809, + 1810, + 1811, + 1812, + 1813 ] }, { "teal": 1560, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1601, - 1602 + 1814, + 1815 ] }, { "teal": 1561, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1603, - 1604 + 1816, + 1817 ] }, { "teal": 1562, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1605, - 1606 + 1818, + 1819 ] }, { "teal": 1563, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1607, - 1608 + 1820, + 1821 ] }, { "teal": 1564, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1609 + 1822 ] }, { "teal": 1565, - "source": 520, + "source": "examples/reti/validatorRegistry.algo.ts:520", "pc": [ - 1610, - 1611 + 1823, + 1824 ] }, { "teal": 1569, - "source": 521, + "source": "examples/reti/validatorRegistry.algo.ts:521", "pc": [ - 1612, - 1613 + 1825, + 1826 ] }, { "teal": 1570, - "source": 521, + "source": "examples/reti/validatorRegistry.algo.ts:521", "pc": [ - 1614, - 1615 + 1827, + 1828 ] }, { "teal": 1573, - "source": 518, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1616 + 1829, + 1830 ] }, { "teal": 1574, - "source": 518, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1617, - 1618 + 1831, + 1832 ] }, { "teal": 1577, - "source": 518, + "source": "examples/reti/validatorRegistry.algo.ts:518", "pc": [ - 1619 + 1833 ] }, { "teal": 1584, - "source": 525, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1620, - 1621 + 1834, + 1835 ] }, { "teal": 1585, - "source": 525, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1622, - 1623 + 1836, + 1837 ] }, { "teal": 1586, - "source": 525, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1624, - 1625 + 1838, + 1839, + 1840, + 1841, + 1842, + 1843, + 1844, + 1845, + 1846, + 1847, + 1848 ] }, { "teal": 1587, - "source": 525, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1626 + 1849 ] }, { "teal": 1590, - "source": 525, + "source": "examples/reti/validatorRegistry.algo.ts:525", "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.owner.a')", "pc": [ - 1627 + 1850 ] }, { "teal": 1591, - "source": 525, + "source": "examples/reti/validatorRegistry.algo.ts:525", "pc": [ - 1628 + 1851 ] }, { "teal": 1594, - "source": 524, + "source": "examples/reti/validatorRegistry.algo.ts:524", "errorMessage": "If specifying NFD, account adding validator must be owner", "pc": [ - 1629 + 1852 ] }, { "teal": 1598, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1630, - 1631 + 1853, + 1854 ] }, { "teal": 1599, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1632, - 1633 + 1855, + 1856 ] }, { "teal": 1600, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1634 + 1857 ] }, { "teal": 1601, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1635 + 1858, + 1859, + 1860 ] }, { "teal": 1602, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1636, - 1637 + 1861, + 1862 ] }, { "teal": 1603, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1638 + 1863 ] }, { "teal": 1604, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1639 + 1864 ] }, { "teal": 1605, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1640, - 1641 + 1865, + 1866 ] }, { "teal": 1606, - "source": 528, + "source": "examples/reti/validatorRegistry.algo.ts:528", "pc": [ - 1642 + 1867 ] }, { "teal": 1607, - "source": 511, + "source": "examples/reti/validatorRegistry.algo.ts:511", "pc": [ - 1643 + 1868 ] }, { "teal": 1612, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1644, - 1645, - 1646 + 1869, + 1870, + 1871 ] }, { "teal": 1613, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1647 + 1872 ] }, { "teal": 1614, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1648 + 1873 ] }, { "teal": 1615, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1649, - 1650 + 1874, + 1875 ] }, { "teal": 1616, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1651 + 1876 ] }, { "teal": 1619, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "errorMessage": "argument 0 (commissionAddress) for changeValidatorCommissionAddress must be a address", "pc": [ - 1652 + 1877 ] }, { "teal": 1622, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1653, - 1654, - 1655 + 1878, + 1879, + 1880 ] }, { "teal": 1623, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1656 + 1881 ] }, { "teal": 1626, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1657, - 1658, - 1659 + 1882, + 1883, + 1884 ] }, { "teal": 1627, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1660 + 1885, + 1886 ] }, { "teal": 1628, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1661 + 1887 ] }, { "teal": 1635, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1662, - 1663, - 1664 + 1888, + 1889, + 1890 ] }, { "teal": 1642, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1665, - 1666 + 1891, + 1892 ] }, { "teal": 1643, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1667 + 1893, + 1894 ] }, { "teal": 1644, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1668, - 1669 + 1895, + 1896 ] }, { "teal": 1645, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1670 + 1897, + 1898, + 1899 ] }, { "teal": 1646, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1671, - 1672 + 1900, + 1901 ] }, { "teal": 1647, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1673 + 1902 ] }, { "teal": 1648, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1674 + 1903 ] }, { "teal": 1649, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1675, - 1676 + 1904, + 1905 ] }, { "teal": 1650, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1677 + 1906 ] }, { "teal": 1651, - "source": 537, + "source": "examples/reti/validatorRegistry.algo.ts:537", "pc": [ - 1678 + 1907 ] }, { "teal": 1654, - "source": 536, + "source": "examples/reti/validatorRegistry.algo.ts:536", "errorMessage": "can only be called by validator owner", "pc": [ - 1679 + 1908 ] }, { "teal": 1658, - "source": 540, + "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1680, - 1681 + 1909, + 1910 ] }, { "teal": 1659, - "source": 540, + "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1682, - 1683 + 1911, + 1912 ] }, { "teal": 1660, - "source": 540, + "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1684 + 1913 ] }, { "teal": 1661, - "source": 540, + "source": "examples/reti/validatorRegistry.algo.ts:540", "pc": [ - 1685 + 1914 ] }, { "teal": 1665, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1686, - 1687, - 1688 + 1915, + 1916, + 1917 ] }, { "teal": 1666, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1689, - 1690 + 1918, + 1919 ] }, { "teal": 1667, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1691 + 1920, + 1921, + 1922 ] }, { "teal": 1668, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1692, - 1693 + 1923, + 1924 ] }, { "teal": 1669, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1694 + 1925 ] }, { "teal": 1670, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1695 + 1926 ] }, { "teal": 1671, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1696, - 1697 + 1927, + 1928 ] }, { "teal": 1672, - "source": 541, + "source": "examples/reti/validatorRegistry.algo.ts:541", "pc": [ - 1698 + 1929 ] }, { "teal": 1673, - "source": 535, + "source": "examples/reti/validatorRegistry.algo.ts:535", "pc": [ - 1699 + 1930 ] }, { "teal": 1678, - "source": 554, + "source": "examples/reti/validatorRegistry.algo.ts:554", "pc": [ - 1700, - 1701, - 1702 + 1931, + 1932, + 1933 ] }, { "teal": 1679, - "source": 554, + "source": "examples/reti/validatorRegistry.algo.ts:554", "pc": [ - 1703 + 1934 ] }, { "teal": 1682, - "source": 553, + "source": "examples/reti/validatorRegistry.algo.ts:553", "pc": [ - 1704, - 1705, - 1706 + 1935, + 1936, + 1937 ] }, { "teal": 1683, - "source": 553, + "source": "examples/reti/validatorRegistry.algo.ts:553", "pc": [ - 1707 + 1938 ] }, { "teal": 1686, - "source": 552, + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1708, - 1709, - 1710 + 1939, + 1940, + 1941 ] }, { "teal": 1687, - "source": 552, + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1711 + 1942 ] }, { "teal": 1688, - "source": 552, + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1712 + 1943 ] }, { "teal": 1689, - "source": 552, + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1713, - 1714 + 1944, + 1945 ] }, { "teal": 1690, - "source": 552, + "source": "examples/reti/validatorRegistry.algo.ts:552", "pc": [ - 1715 + 1946 ] }, { "teal": 1693, - "source": 552, + "source": "examples/reti/validatorRegistry.algo.ts:552", "errorMessage": "argument 2 (EntryGatingAssets) for changeValidatorRewardInfo must be a uint64[4]", "pc": [ - 1716 + 1947 ] }, { "teal": 1696, - "source": 551, + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1717, - 1718, - 1719 + 1948, + 1949, + 1950 ] }, { "teal": 1697, - "source": 551, + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1720 + 1951 ] }, { "teal": 1698, - "source": 551, + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1721 + 1952 ] }, { "teal": 1699, - "source": 551, + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1722, - 1723 + 1953, + 1954 ] }, { "teal": 1700, - "source": 551, + "source": "examples/reti/validatorRegistry.algo.ts:551", "pc": [ - 1724 + 1955 ] }, { "teal": 1703, - "source": 551, + "source": "examples/reti/validatorRegistry.algo.ts:551", "errorMessage": "argument 3 (EntryGatingAddress) for changeValidatorRewardInfo must be a address", "pc": [ - 1725 + 1956 ] }, { "teal": 1706, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1726, - 1727, - 1728 + 1957, + 1958, + 1959 ] }, { "teal": 1707, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1729 + 1960 ] }, { "teal": 1708, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1730 + 1961 ] }, { "teal": 1709, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1731 + 1962, + 1963 ] }, { "teal": 1710, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1732 + 1964 ] }, { "teal": 1713, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "errorMessage": "argument 4 (EntryGatingType) for changeValidatorRewardInfo must be a uint8", "pc": [ - 1733 + 1965 ] }, { "teal": 1714, - "source": 550, + "source": "examples/reti/validatorRegistry.algo.ts:550", "pc": [ - 1734 + 1966 ] }, { "teal": 1717, - "source": 549, + "source": "examples/reti/validatorRegistry.algo.ts:549", "pc": [ - 1735, - 1736, - 1737 + 1967, + 1968, + 1969 ] }, { "teal": 1718, - "source": 549, + "source": "examples/reti/validatorRegistry.algo.ts:549", "pc": [ - 1738 + 1970 ] }, { "teal": 1721, - "source": 548, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1739, - 1740, - 1741 + 1971, + 1972, + 1973 ] }, { "teal": 1722, - "source": 548, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1742 + 1974, + 1975 ] }, { "teal": 1723, - "source": 548, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1743 + 1976 ] }, { "teal": 1730, - "source": 548, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1744, - 1745, - 1746 + 1977, + 1978, + 1979 ] }, { "teal": 1737, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1747, - 1748 + 1980, + 1981 ] }, { "teal": 1738, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1749 + 1982, + 1983 ] }, { "teal": 1739, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1750, - 1751 + 1984, + 1985 ] }, { "teal": 1740, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1752 + 1986, + 1987, + 1988 ] }, { "teal": 1741, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1753, - 1754 + 1989, + 1990 ] }, { "teal": 1742, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1755 + 1991 ] }, { "teal": 1743, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1756 + 1992 ] }, { "teal": 1744, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1757, - 1758 + 1993, + 1994 ] }, { "teal": 1745, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1759 + 1995 ] }, { "teal": 1746, - "source": 557, + "source": "examples/reti/validatorRegistry.algo.ts:557", "pc": [ - 1760 + 1996 ] }, { "teal": 1749, - "source": 556, + "source": "examples/reti/validatorRegistry.algo.ts:556", "errorMessage": "can only be called by validator owner", "pc": [ - 1761 + 1997 ] }, { "teal": 1753, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1762, - 1763 + 1998, + 1999 ] }, { "teal": 1754, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1764, - 1765 + 2000, + 2001 ] }, { "teal": 1755, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1766 + 2002 ] }, { "teal": 1756, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1767, - 1768, - 1769 + 2003, + 2004, + 2005 ] }, { "teal": 1757, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1770 + 2006, + 2007, + 2008 ] }, { "teal": 1758, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1771, - 1772 + 2009, + 2010 ] }, { "teal": 1759, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1773 + 2011 ] }, { "teal": 1760, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1774 + 2012 ] }, { "teal": 1761, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1775, - 1776 + 2013, + 2014 ] }, { "teal": 1762, - "source": 561, + "source": "examples/reti/validatorRegistry.algo.ts:561", "pc": [ - 1777 + 2015 ] }, { "teal": 1766, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1778, - 1779 + 2016, + 2017 ] }, { "teal": 1767, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1780, - 1781 + 2018, + 2019 ] }, { "teal": 1768, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1782 + 2020, + 2021, + 2022 ] }, { "teal": 1769, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1783, - 1784 + 2023, + 2024 ] }, { "teal": 1770, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1785 + 2025 ] }, { "teal": 1771, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1786 + 2026 ] }, { "teal": 1772, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1787, - 1788 + 2027, + 2028 ] }, { "teal": 1773, - "source": 562, + "source": "examples/reti/validatorRegistry.algo.ts:562", "pc": [ - 1789 + 2029 ] }, { "teal": 1777, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1790, - 1791 + 2030, + 2031 ] }, { "teal": 1778, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1792, - 1793 + 2032, + 2033 ] }, { "teal": 1779, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1794 + 2034, + 2035, + 2036 ] }, { "teal": 1780, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1795, - 1796 + 2037, + 2038 ] }, { "teal": 1781, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1797 + 2039 ] }, { "teal": 1782, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1798 + 2040 ] }, { "teal": 1783, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1799, - 1800 + 2041, + 2042 ] }, { "teal": 1784, - "source": 563, + "source": "examples/reti/validatorRegistry.algo.ts:563", "pc": [ - 1801 + 2043 ] }, { "teal": 1788, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1802, - 1803 + 2044, + 2045, + 2046 ] }, { "teal": 1789, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1804, - 1805 + 2047, + 2048 ] }, { "teal": 1790, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1806 + 2049 ] }, { "teal": 1791, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1807 + 2050, + 2051, + 2052 ] }, { "teal": 1792, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1808, - 1809 + 2053, + 2054 ] }, { "teal": 1793, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1810 + 2055 ] }, { "teal": 1794, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1811 + 2056 ] }, { "teal": 1795, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1812, - 1813 + 2057, + 2058 ] }, { "teal": 1796, - "source": 564, + "source": "examples/reti/validatorRegistry.algo.ts:564", "pc": [ - 1814 + 2059 ] }, { "teal": 1800, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1815, - 1816, - 1817 + 2060, + 2061, + 2062 ] }, { "teal": 1801, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1818, - 1819 + 2063, + 2064 ] }, { "teal": 1802, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1820 + 2065 ] }, { "teal": 1803, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1821 + 2066, + 2067, + 2068 ] }, { "teal": 1804, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1822, - 1823 + 2069, + 2070 ] }, { "teal": 1805, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1824 + 2071 ] }, { "teal": 1806, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1825 + 2072 ] }, { "teal": 1807, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1826, - 1827 + 2073, + 2074 ] }, { "teal": 1808, - "source": 565, + "source": "examples/reti/validatorRegistry.algo.ts:565", "pc": [ - 1828 + 2075 ] }, { "teal": 1809, - "source": 548, + "source": "examples/reti/validatorRegistry.algo.ts:548", "pc": [ - 1829 + 2076 ] }, { "teal": 1814, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1830 + 2077, + 2078, + 2079, + 2080, + 2081, + 2082 ] }, { "teal": 1817, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1831, - 1832, - 1833 + 2083, + 2084, + 2085 ] }, { "teal": 1818, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1834 + 2086 ] }, { "teal": 1821, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1835, - 1836, - 1837 + 2087, + 2088, + 2089 ] }, { "teal": 1822, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1838 + 2090 ] }, { "teal": 1825, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1839, - 1840 + 2091, + 2092 ] }, { "teal": 1826, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1841 + 2093, + 2094 ] }, { "teal": 1827, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1842 + 2095 ] }, { "teal": 1828, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1843 + 2096 ] }, { "teal": 1829, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1844, - 1845 + 2097, + 2098 ] }, { "teal": 1830, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1846 + 2099, + 2100 ] }, { "teal": 1831, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1847 + 2101 ] }, { "teal": 1834, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "errorMessage": "argument 2 (mbrPayment) for addPool must be a pay transaction", "pc": [ - 1848 + 2102 ] }, { "teal": 1837, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1849, - 1850, - 1851 + 2103, + 2104, + 2105 ] }, { "teal": 1838, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1852 + 2106 ] }, { "teal": 1839, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1853 + 2107 ] }, { "teal": 1840, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1854 + 2108, + 2109 ] }, { "teal": 1841, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1855 + 2110 ] }, { "teal": 1854, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1856, - 1857, - 1858 + 2111, + 2112, + 2113 ] }, { "teal": 1857, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1859 + 2114, + 2115 ] }, { "teal": 1858, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 1860 + 2116 ] }, { "teal": 1866, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1861, - 1862 + 2117, + 2118 ] }, { "teal": 1867, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1863 + 2119, + 2120 ] }, { "teal": 1868, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1864, - 1865 + 2121, + 2122 ] }, { "teal": 1869, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1866 + 2123, + 2124, + 2125 ] }, { "teal": 1870, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1867, - 1868 + 2126, + 2127 ] }, { "teal": 1871, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1869 + 2128 ] }, { "teal": 1872, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1870 + 2129 ] }, { "teal": 1873, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1871, - 1872 + 2130, + 2131 ] }, { "teal": 1874, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1873 + 2132 ] }, { "teal": 1875, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1874 + 2133 ] }, { "teal": 1876, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1875 + 2134 ] }, { "teal": 1877, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1876, - 1877, - 1878 + 2135, + 2136, + 2137 ] }, { "teal": 1878, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1879, - 1880 + 2138, + 2139 ] }, { "teal": 1879, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1881, - 1882 + 2140, + 2141 ] }, { "teal": 1880, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1883, - 1884 + 2142, + 2143 ] }, { "teal": 1881, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1885 + 2144, + 2145, + 2146 ] }, { "teal": 1882, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1886, - 1887 + 2147, + 2148 ] }, { "teal": 1883, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1888 + 2149 ] }, { "teal": 1884, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1889 + 2150 ] }, { "teal": 1885, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1890, - 1891 + 2151, + 2152 ] }, { "teal": 1886, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1892 + 2153 ] }, { "teal": 1887, - "source": 583, + "source": "examples/reti/validatorRegistry.algo.ts:583", "pc": [ - 1893 + 2154 ] }, { "teal": 1888, - "source": 582, + "source": "examples/reti/validatorRegistry.algo.ts:582", "pc": [ - 1894 + 2155 ] }, { "teal": 1892, - "source": 581, + "source": "examples/reti/validatorRegistry.algo.ts:581", "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 1895 + 2156 ] }, { "teal": 1897, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1896, - 1897 + 2157, + 2158 ] }, { "teal": 1898, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1898, - 1899 + 2159, + 2160 ] }, { "teal": 1899, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1900, - 1901, - 1902 + 2161, + 2162, + 2163 ] }, { "teal": 1900, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1903, - 1904, - 1905 + 2164, + 2165, + 2166 ] }, { "teal": 1901, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1906 + 2167 ] }, { "teal": 1902, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1907 + 2168 ] }, { "teal": 1905, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"amount\",\"expected\":\"this.getMbrAmounts().addPoolMbr\"}", "pc": [ - 1908 + 2169 ] }, { "teal": 1908, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1909, - 1910 + 2170, + 2171 ] }, { "teal": 1909, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1911, - 1912 + 2172, + 2173 ] }, { "teal": 1910, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1913, - 1914 + 2174, + 2175 ] }, { "teal": 1911, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "pc": [ - 1915 + 2176 ] }, { "teal": 1914, - "source": 588, + "source": "examples/reti/validatorRegistry.algo.ts:588", "errorMessage": "transaction verification failed: {\"txn\":\"mbrPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 1916 + 2177 ] }, { "teal": 1918, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1917 + 2178, + 2179, + 2180 ] }, { "teal": 1919, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1918, - 1919 + 2181, + 2182 ] }, { "teal": 1920, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1920 + 2183 ] }, { "teal": 1921, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1921 + 2184 ] }, { "teal": 1922, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1922 + 2185 ] }, { "teal": 1923, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1923 + 2186 ] }, { "teal": 1924, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "pc": [ - 1924 + 2187 ] }, { "teal": 1927, - "source": 590, + "source": "examples/reti/validatorRegistry.algo.ts:590", "errorMessage": "specified validator id isn't valid", "pc": [ - 1925 + 2188 ] }, { "teal": 1931, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1926, - 1927 + 2189, + 2190, + 2191 ] }, { "teal": 1932, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1928, - 1929 + 2192, + 2193 ] }, { "teal": 1933, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1930 + 2194, + 2195, + 2196 ] }, { "teal": 1934, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1931, - 1932 + 2197, + 2198 ] }, { "teal": 1935, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1933 + 2199 ] }, { "teal": 1936, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1934 + 2200 ] }, { "teal": 1937, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1935, - 1936 + 2201, + 2202 ] }, { "teal": 1938, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1937 + 2203 ] }, { "teal": 1939, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1938 + 2204 ] }, { "teal": 1940, - "source": 592, + "source": "examples/reti/validatorRegistry.algo.ts:592", "pc": [ - 1939, - 1940 + 2205, + 2206 ] }, { "teal": 1945, - "source": 593, + "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1941, - 1942 + 2207, + 2208 ] }, { "teal": 1946, - "source": 32, + "source": "examples/reti/validatorRegistry.algo.ts:32", "pc": [ - 1943 + 2209, + 2210 ] }, { "teal": 1947, - "source": 593, + "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1944 + 2211 ] }, { "teal": 1948, - "source": 593, + "source": "examples/reti/validatorRegistry.algo.ts:593", "pc": [ - 1945, - 1946, - 1947 + 2212, + 2213, + 2214 ] }, { "teal": 1952, - "source": 594, + "source": "examples/reti/validatorRegistry.algo.ts:594", "errorMessage": "already at max pool size", "pc": [ - 1948 + 2215 ] }, { "teal": 1957, - "source": 596, + "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1949, - 1950 + 2216, + 2217 ] }, { "teal": 1958, - "source": 596, + "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1951 + 2218, + 2219 ] }, { "teal": 1959, - "source": 596, + "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1952 + 2220 ] }, { "teal": 1960, - "source": 596, + "source": "examples/reti/validatorRegistry.algo.ts:596", "pc": [ - 1953, - 1954 + 2221, + 2222 ] }, { "teal": 1982, - "source": 599, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1955 + 2223 ] }, { "teal": 1983, - "source": 599, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1956, - 1957 + 2224, + 2225 ] }, { "teal": 1984, - "source": 599, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 1958, - 1959 + 2226, + 2227 ] }, { "teal": 1988, - "source": 600, + "source": "examples/reti/validatorRegistry.algo.ts:600", "pc": [ - 1960 + 2228, + 2229 ] }, { "teal": 1989, - "source": 600, + "source": "examples/reti/validatorRegistry.algo.ts:600", "pc": [ - 1961, - 1962 + 2230, + 2231 ] }, { "teal": 1996, - "source": 602, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1963, - 1964 + 2232, + 2233, + 2234, + 2235, + 2236, + 2237, + 2238, + 2239, + 2240, + 2241, + 2242, + 2243, + 2244, + 2245, + 2246, + 2247, + 2248, + 2249, + 2250, + 2251, + 2252, + 2253, + 2254, + 2255, + 2256, + 2257, + 2258 ] }, { "teal": 1997, - "source": 602, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1965 + 2259, + 2260 ] }, { "teal": 1998, - "source": 602, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1966, - 1967 + 2261, + 2262, + 2263 ] }, { "teal": 1999, - "source": 602, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1968 + 2264 ] }, { "teal": 2000, - "source": 602, + "source": "examples/reti/validatorRegistry.algo.ts:602", "pc": [ - 1969, - 1970 + 2265, + 2266 ] }, { "teal": 2001, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1971, - 1972 + 2267, + 2268, + 2269, + 2270, + 2271, + 2272, + 2273, + 2274, + 2275, + 2276, + 2277, + 2278, + 2279, + 2280, + 2281, + 2282, + 2283, + 2284, + 2285, + 2286, + 2287, + 2288, + 2289, + 2290, + 2291, + 2292, + 2293 ] }, { "teal": 2002, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1973, - 1974 + 2294, + 2295, + 2296 ] }, { "teal": 2003, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1975, - 1976 + 2297, + 2298, + 2299, + 2300, + 2301, + 2302, + 2303, + 2304, + 2305, + 2306, + 2307, + 2308, + 2309, + 2310, + 2311, + 2312, + 2313, + 2314, + 2315, + 2316, + 2317, + 2318, + 2319, + 2320, + 2321, + 2322, + 2323 ] }, { "teal": 2004, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1977 + 2324 ] }, { "teal": 2007, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "errorMessage": "box value does not exist: this.stakingPoolApprovalProgram.size", "pc": [ - 1978 + 2325 ] }, { "teal": 2008, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1979, - 1980 + 2326, + 2327, + 2328 ] }, { "teal": 2009, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1981 + 2329 ] }, { "teal": 2010, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1982 + 2330 ] }, { "teal": 2011, - "source": 603, + "source": "examples/reti/validatorRegistry.algo.ts:603", "pc": [ - 1983, - 1984 + 2331, + 2332 ] }, { "teal": 2015, - "source": 605, + "source": "examples/reti/validatorRegistry.algo.ts:605", "pc": [ - 1985, - 1986, - 1987 + 2333, + 2334, + 2335 ] }, { "teal": 2016, - "source": 605, + "source": "examples/reti/validatorRegistry.algo.ts:605", "pc": [ - 1988, - 1989 + 2336, + 2337 ] }, { "teal": 2020, - "source": 606, + "source": "examples/reti/validatorRegistry.algo.ts:606", "pc": [ - 1990, - 1991 + 2338, + 2339 ] }, { "teal": 2021, - "source": 606, + "source": "examples/reti/validatorRegistry.algo.ts:606", "pc": [ - 1992, - 1993 + 2340, + 2341 ] }, { "teal": 2025, - "source": 607, + "source": "examples/reti/validatorRegistry.algo.ts:607", "pc": [ - 1994, - 1995 + 2342, + 2343 ] }, { "teal": 2026, - "source": 607, + "source": "examples/reti/validatorRegistry.algo.ts:607", "pc": [ - 1996, - 1997 + 2344, + 2345 ] }, { "teal": 2030, - "source": 608, + "source": "examples/reti/validatorRegistry.algo.ts:608", "pc": [ - 1998, - 1999 + 2346, + 2347 ] }, { "teal": 2031, - "source": 608, + "source": "examples/reti/validatorRegistry.algo.ts:608", "pc": [ - 2000, - 2001 + 2348, + 2349 ] }, { "teal": 2042, - "source": 611, + "source": "examples/reti/validatorRegistry.algo.ts:611", "pc": [ - 2002, - 2003, - 2004, - 2005, - 2006, - 2007 + 2350, + 2351, + 2352, + 2353, + 2354, + 2355 ] }, { "teal": 2043, - "source": 611, + "source": "examples/reti/validatorRegistry.algo.ts:611", "pc": [ - 2008, - 2009 + 2356, + 2357 ] }, { "teal": 2044, - "source": 612, + "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ - 2010, - 2011, - 2012 + 2358, + 2359, + 2360 ] }, { "teal": 2045, - "source": 612, + "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ - 2013 + 2361 ] }, { "teal": 2046, - "source": 612, + "source": "examples/reti/validatorRegistry.algo.ts:612", "pc": [ - 2014, - 2015 + 2362, + 2363 ] }, { "teal": 2047, - "source": 613, + "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ - 2016, - 2017 + 2364, + 2365 ] }, { "teal": 2048, - "source": 613, + "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ - 2018 + 2366 ] }, { "teal": 2049, - "source": 613, + "source": "examples/reti/validatorRegistry.algo.ts:613", "pc": [ - 2019, - 2020 + 2367, + 2368 ] }, { "teal": 2050, - "source": 614, + "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ - 2021, - 2022 + 2369, + 2370 ] }, { "teal": 2051, - "source": 614, + "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ - 2023 + 2371 ] }, { "teal": 2052, - "source": 614, + "source": "examples/reti/validatorRegistry.algo.ts:614", "pc": [ - 2024, - 2025 + 2372, + 2373 ] }, { "teal": 2053, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2026, - 2027 + 2374, + 2375, + 2376 ] }, { "teal": 2054, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2028 + 2377, + 2378 ] }, { "teal": 2055, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2029 + 2379, + 2380, + 2381 ] }, { "teal": 2056, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2030, - 2031 + 2382, + 2383 ] }, { "teal": 2057, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2032 + 2384 ] }, { "teal": 2058, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2033 + 2385 ] }, { "teal": 2059, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2034, - 2035 + 2386, + 2387 ] }, { "teal": 2060, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2036 + 2388 ] }, { "teal": 2061, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2037 + 2389 ] }, { "teal": 2062, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2038 + 2390 ] }, { "teal": 2063, - "source": 615, + "source": "examples/reti/validatorRegistry.algo.ts:615", "pc": [ - 2039, - 2040 + 2391, + 2392 ] }, { "teal": 2066, - "source": 599, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 2041 + 2393, + 2394 ] }, { "teal": 2067, - "source": 599, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 2042, - 2043 + 2395, + 2396 ] }, { "teal": 2070, - "source": 599, + "source": "examples/reti/validatorRegistry.algo.ts:599", "pc": [ - 2044 + 2397 ] }, { "teal": 2074, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2045, - 2046 + 2398, + 2399, + 2400 ] }, { "teal": 2075, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2047, - 2048 + 2401, + 2402 ] }, { "teal": 2076, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2049 + 2403 ] }, { "teal": 2077, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2050, - 2051, - 2052 + 2404, + 2405, + 2406 ] }, { "teal": 2078, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2053 + 2407, + 2408, + 2409 ] }, { "teal": 2079, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2054, - 2055 + 2410, + 2411 ] }, { "teal": 2080, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2056 + 2412 ] }, { "teal": 2081, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2057 + 2413 ] }, { "teal": 2082, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2058, - 2059 + 2414, + 2415 ] }, { "teal": 2083, - "source": 619, + "source": "examples/reti/validatorRegistry.algo.ts:619", "pc": [ - 2060 + 2416 ] }, { "teal": 2087, - "source": 622, + "source": "examples/reti/validatorRegistry.algo.ts:622", "pc": [ - 2061, - 2062 + 2417, + 2418 ] }, { "teal": 2088, - "source": 622, + "source": "examples/reti/validatorRegistry.algo.ts:622", "pc": [ - 2063, - 2064 + 2419, + 2420 ] }, { "teal": 2092, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2065, - 2066 + 2421, + 2422, + 2423 ] }, { "teal": 2093, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2067, - 2068 + 2424, + 2425 ] }, { "teal": 2094, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2069 + 2426, + 2427 ] }, { "teal": 2095, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2070 + 2428 ] }, { "teal": 2096, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2071, - 2072 + 2429, + 2430 ] }, { "teal": 2097, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2073 + 2431 ] }, { "teal": 2098, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2074 + 2432 ] }, { "teal": 2099, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2075 + 2433, + 2434 ] }, { "teal": 2100, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2076 + 2435 ] }, { "teal": 2101, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2077, - 2078 + 2436, + 2437 ] }, { "teal": 2102, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2079 + 2438 ] }, { "teal": 2103, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2080 + 2439, + 2440, + 2441 ] }, { "teal": 2104, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2081, - 2082 + 2442, + 2443 ] }, { "teal": 2105, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2083 + 2444 ] }, { "teal": 2106, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2084 + 2445 ] }, { "teal": 2107, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2085, - 2086 + 2446, + 2447 ] }, { "teal": 2108, - "source": 623, + "source": "examples/reti/validatorRegistry.algo.ts:623", "pc": [ - 2087 + 2448 ] }, { "teal": 2112, - "source": 624, + "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ - 2088, - 2089 + 2449, + 2450 ] }, { "teal": 2113, - "source": 624, + "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ - 2090, - 2091 + 2451, + 2452 ] }, { "teal": 2114, - "source": 624, + "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ - 2092, - 2093 + 2453, + 2454 ] }, { "teal": 2115, - "source": 624, + "source": "examples/reti/validatorRegistry.algo.ts:624", "pc": [ - 2094, - 2095, - 2096 + 2455, + 2456, + 2457 ] }, { "teal": 2119, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2097, - 2098 + 2458, + 2459 ] }, { "teal": 2120, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2099 + 2460 ] }, { "teal": 2121, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2100, - 2101 + 2461, + 2462 ] }, { "teal": 2122, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2102 + 2463 ] }, { "teal": 2123, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2103 + 2464 ] }, { "teal": 2124, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2104, - 2105 + 2465, + 2466 ] }, { "teal": 2125, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2106 + 2467 ] }, { "teal": 2126, - "source": 632, + "source": "examples/reti/validatorRegistry.algo.ts:632", "pc": [ - 2107 + 2468 ] }, { "teal": 2129, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 2108, - 2109 + 2469, + 2470 ] }, { "teal": 2132, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 2110, - 2111 + 2471, + 2472 ] }, { "teal": 2133, - "source": 579, + "source": "examples/reti/validatorRegistry.algo.ts:579", "pc": [ - 2112 + 2473 ] }, { "teal": 2138, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2113 + 2474, + 2475, + 2476, + 2477, + 2478, + 2479 ] }, { "teal": 2141, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2114, - 2115, - 2116 + 2480, + 2481, + 2482 ] }, { "teal": 2142, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2117 + 2483 ] }, { "teal": 2145, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2118, - 2119, - 2120 + 2484, + 2485, + 2486 ] }, { "teal": 2146, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2121 + 2487 ] }, { "teal": 2149, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2122, - 2123 + 2488, + 2489 ] }, { "teal": 2150, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2124 + 2490, + 2491 ] }, { "teal": 2151, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2125 + 2492 ] }, { "teal": 2152, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2126 + 2493 ] }, { "teal": 2153, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2127, - 2128 + 2494, + 2495 ] }, { "teal": 2154, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2129 + 2496, + 2497 ] }, { "teal": 2155, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2130 + 2498 ] }, { "teal": 2158, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "errorMessage": "argument 2 (stakedAmountPayment) for addStake must be a pay transaction", "pc": [ - 2131 + 2499 ] }, { "teal": 2161, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2132, - 2133, - 2134 + 2500, + 2501, + 2502 ] }, { "teal": 2162, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2135 + 2503 ] }, { "teal": 2163, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2136 + 2504 ] }, { "teal": 2164, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2137 + 2505, + 2506 ] }, { "teal": 2165, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2138 + 2507 ] }, { "teal": 2177, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2139, - 2140, - 2141 + 2508, + 2509, + 2510 ] }, { "teal": 2180, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2142 + 2511, + 2512 ] }, { "teal": 2181, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2143, - 2144 + 2513, + 2514 ] }, { "teal": 2185, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2145 + 2515, + 2516, + 2517 ] }, { "teal": 2186, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2146, - 2147 + 2518, + 2519 ] }, { "teal": 2187, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2148 + 2520 ] }, { "teal": 2188, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2149 + 2521 ] }, { "teal": 2189, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2150 + 2522 ] }, { "teal": 2190, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2151 + 2523 ] }, { "teal": 2191, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "pc": [ - 2152 + 2524 ] }, { "teal": 2194, - "source": 645, + "source": "examples/reti/validatorRegistry.algo.ts:645", "errorMessage": "specified validator id isn't valid", "pc": [ - 2153 + 2525 ] }, { "teal": 2199, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2154, - 2155 + 2526, + 2527, + 2528 ] }, { "teal": 2200, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2156 + 2529, + 2530 ] }, { "teal": 2201, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2157 + 2531, + 2532, + 2533 ] }, { "teal": 2202, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2158, - 2159 + 2534, + 2535 ] }, { "teal": 2203, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2160 + 2536 ] }, { "teal": 2204, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2161 + 2537 ] }, { "teal": 2205, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2162, - 2163 + 2538, + 2539 ] }, { "teal": 2206, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2164 + 2540 ] }, { "teal": 2207, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2165 + 2541 ] }, { "teal": 2208, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2166 + 2542, + 2543 ] }, { "teal": 2209, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2167 + 2544 ] }, { "teal": 2210, - "source": 648, + "source": "examples/reti/validatorRegistry.algo.ts:648", "pc": [ - 2168, - 2169, - 2170 + 2545, + 2546, + 2547 ] }, { "teal": 2218, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2171, - 2172 + 2548, + 2549, + 2550 ] }, { "teal": 2219, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2173 + 2551, + 2552 ] }, { "teal": 2220, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2174 + 2553, + 2554, + 2555 ] }, { "teal": 2221, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2175, - 2176 + 2556, + 2557 ] }, { "teal": 2222, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2177 + 2558 ] }, { "teal": 2223, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2178 + 2559 ] }, { "teal": 2224, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2179, - 2180 + 2560, + 2561 ] }, { "teal": 2225, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2181 + 2562 ] }, { "teal": 2226, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2182 + 2563 ] }, { "teal": 2227, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2183, - 2184 + 2564, + 2565 ] }, { "teal": 2228, - "source": 650, + "source": "examples/reti/validatorRegistry.algo.ts:650", "pc": [ - 2185 + 2566 ] }, { "teal": 2231, - "source": 649, + "source": "examples/reti/validatorRegistry.algo.ts:649", "errorMessage": "can't stake with a validator that is past its sunsetting time", "pc": [ - 2186 + 2567 ] }, { "teal": 2236, - "source": 655, + "source": "examples/reti/validatorRegistry.algo.ts:655", "pc": [ - 2187, - 2188 + 2568, + 2569 ] }, { "teal": 2237, - "source": 655, + "source": "examples/reti/validatorRegistry.algo.ts:655", "pc": [ - 2189, - 2190 + 2570, + 2571 ] }, { "teal": 2245, - "source": 659, + "source": "examples/reti/validatorRegistry.algo.ts:659", "pc": [ - 2191, - 2192 + 2572, + 2573 ] }, { "teal": 2246, - "source": 660, + "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ - 2193, - 2194 + 2574, + 2575 ] }, { "teal": 2247, - "source": 660, + "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ - 2195, - 2196 + 2576, + 2577 ] }, { "teal": 2248, - "source": 660, + "source": "examples/reti/validatorRegistry.algo.ts:660", "pc": [ - 2197 + 2578 ] }, { "teal": 2251, - "source": 660, + "source": "examples/reti/validatorRegistry.algo.ts:660", "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"sender\",\"expected\":\"staker\"}", "pc": [ - 2198 + 2579 ] }, { "teal": 2254, - "source": 659, + "source": "examples/reti/validatorRegistry.algo.ts:659", "pc": [ - 2199, - 2200 + 2580, + 2581 ] }, { "teal": 2255, - "source": 661, + "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ - 2201, - 2202 + 2582, + 2583 ] }, { "teal": 2256, - "source": 661, + "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ - 2203, - 2204 + 2584, + 2585 ] }, { "teal": 2257, - "source": 661, + "source": "examples/reti/validatorRegistry.algo.ts:661", "pc": [ - 2205 + 2586 ] }, { "teal": 2260, - "source": 661, + "source": "examples/reti/validatorRegistry.algo.ts:661", "errorMessage": "transaction verification failed: {\"txn\":\"stakedAmountPayment\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", "pc": [ - 2206 + 2587 ] }, { "teal": 2267, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2207, - 2208 + 2588, + 2589, + 2590 ] }, { "teal": 2268, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2209 + 2591, + 2592 ] }, { "teal": 2269, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2210 + 2593, + 2594, + 2595 ] }, { "teal": 2270, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2211, - 2212 + 2596, + 2597 ] }, { "teal": 2271, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2213 + 2598 ] }, { "teal": 2272, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2214 + 2599 ] }, { "teal": 2273, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2215, - 2216 + 2600, + 2601 ] }, { "teal": 2274, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2217 + 2602 ] }, { "teal": 2275, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2218 + 2603 ] }, { "teal": 2276, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2219, - 2220, - 2221 + 2604, + 2605, + 2606 ] }, { "teal": 2277, - "source": 667, + "source": "examples/reti/validatorRegistry.algo.ts:667", "pc": [ - 2222 + 2607 ] }, { "teal": 2280, - "source": 666, + "source": "examples/reti/validatorRegistry.algo.ts:666", "errorMessage": "total staked for all of a validators pools may not exceed hard cap", "pc": [ - 2223 + 2608 ] }, { "teal": 2284, - "source": 673, + "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ - 2224, - 2225 + 2609, + 2610 ] }, { "teal": 2285, - "source": 673, + "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ - 2226, - 2227 + 2611, + 2612 ] }, { "teal": 2286, - "source": 673, + "source": "examples/reti/validatorRegistry.algo.ts:673", "pc": [ - 2228, - 2229, - 2230 + 2613, + 2614, + 2615 ] }, { "teal": 2290, - "source": 675, + "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ - 2231, - 2232 + 2616, + 2617 ] }, { "teal": 2291, - "source": 675, + "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ - 2233, - 2234 + 2618, + 2619 ] }, { "teal": 2292, - "source": 675, + "source": "examples/reti/validatorRegistry.algo.ts:675", "pc": [ - 2235, - 2236 + 2620, + 2621 ] }, { "teal": 2296, - "source": 676, + "source": "examples/reti/validatorRegistry.algo.ts:676", "pc": [ - 2237 + 2622, + 2623 ] }, { "teal": 2297, - "source": 676, + "source": "examples/reti/validatorRegistry.algo.ts:676", "pc": [ - 2238, - 2239 + 2624, + 2625 ] }, { "teal": 2302, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2240 + 2626, + 2627, + 2628, + 2629, + 2630 ] }, { "teal": 2303, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2241, - 2242 + 2631, + 2632 ] }, { "teal": 2304, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2243 + 2633 ] }, { "teal": 2305, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2244 + 2634 ] }, { "teal": 2306, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2245 + 2635 ] }, { "teal": 2307, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2246 + 2636 ] }, { "teal": 2308, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2247 + 2637 ] }, { "teal": 2309, - "source": 678, + "source": "examples/reti/validatorRegistry.algo.ts:678", "pc": [ - 2248, - 2249, - 2250 + 2638, + 2639, + 2640 ] }, { "teal": 2314, - "source": 681, + "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2251, - 2252, - 2253 + 2641, + 2642, + 2643 ] }, { "teal": 2315, - "source": 681, + "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2254, - 2255, - 2256 + 2644, + 2645, + 2646 ] }, { "teal": 2316, - "source": 681, + "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2257 + 2647 ] }, { "teal": 2317, - "source": 681, + "source": "examples/reti/validatorRegistry.algo.ts:681", "pc": [ - 2258, - 2259 + 2648, + 2649 ] }, { "teal": 2321, - "source": 682, + "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ - 2260, - 2261 + 2650, + 2651 ] }, { "teal": 2322, - "source": 682, + "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ - 2262, - 2263 + 2652, + 2653 ] }, { "teal": 2323, - "source": 682, + "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ - 2264 + 2654 ] }, { "teal": 2324, - "source": 682, + "source": "examples/reti/validatorRegistry.algo.ts:682", "pc": [ - 2265, - 2266 + 2655, + 2656 ] }, { "teal": 2328, - "source": 683, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2267 + 2657, + 2658, + 2659, + 2660, + 2661 ] }, { "teal": 2329, - "source": 683, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2268, - 2269 + 2662, + 2663 ] }, { "teal": 2330, - "source": 683, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2270 + 2664 ] }, { "teal": 2331, - "source": 683, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2271, - 2272, - 2273 + 2665, + 2666, + 2667 ] }, { "teal": 2332, - "source": 683, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2274 + 2668 ] }, { "teal": 2333, - "source": 683, + "source": "examples/reti/validatorRegistry.algo.ts:683", "pc": [ - 2275 + 2669 ] }, { "teal": 2338, - "source": 687, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2276, - 2277 + 2670, + 2671 ] }, { "teal": 2339, - "source": 687, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2278, - 2279 + 2672, + 2673 ] }, { "teal": 2340, - "source": 687, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2280, - 2281 + 2674, + 2675 ] }, { "teal": 2341, - "source": 687, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2282, - 2283, - 2284 + 2676, + 2677, + 2678 ] }, { "teal": 2342, - "source": 687, + "source": "examples/reti/validatorRegistry.algo.ts:687", "pc": [ - 2285, - 2286 + 2679, + 2680 ] }, { "teal": 2348, - "source": 689, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2287, - 2288 + 2681, + 2682 ] }, { "teal": 2349, - "source": 689, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2289, - 2290 + 2683, + 2684 ] }, { "teal": 2350, - "source": 689, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2291, - 2292 + 2685, + 2686 ] }, { "teal": 2351, - "source": 689, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2293, - 2294 + 2687, + 2688, + 2689 ] }, { "teal": 2352, - "source": 689, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2295 + 2690 ] }, { "teal": 2353, - "source": 689, + "source": "examples/reti/validatorRegistry.algo.ts:689", "pc": [ - 2296, - 2297 + 2691, + 2692 ] }, { "teal": 2357, - "source": 690, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2298, - 2299 + 2693, + 2694 ] }, { "teal": 2358, - "source": 690, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2300, - 2301 + 2695, + 2696 ] }, { "teal": 2359, - "source": 690, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2302, - 2303 + 2697, + 2698 ] }, { "teal": 2360, - "source": 690, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2304, - 2305, - 2306 + 2699, + 2700, + 2701 ] }, { "teal": 2361, - "source": 690, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2307 + 2702 ] }, { "teal": 2362, - "source": 690, + "source": "examples/reti/validatorRegistry.algo.ts:690", "pc": [ - 2308, - 2309 + 2703, + 2704 ] }, { "teal": 2367, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2310, - 2311 + 2705, + 2706 ] }, { "teal": 2368, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2312, - 2313 + 2707, + 2708 ] }, { "teal": 2369, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2314, - 2315 + 2709, + 2710 ] }, { "teal": 2370, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2316, - 2317, - 2318 + 2711, + 2712, + 2713 ] }, { "teal": 2371, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2319 + 2714 ] }, { "teal": 2372, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2320 + 2715, + 2716 ] }, { "teal": 2373, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2321 + 2717 ] }, { "teal": 2374, - "source": 691, + "source": "examples/reti/validatorRegistry.algo.ts:691", "pc": [ - 2322, - 2323, - 2324 + 2718, + 2719, + 2720 ] }, { "teal": 2378, - "source": 692, + "source": "examples/reti/validatorRegistry.algo.ts:692", "errorMessage": "No pool available with free stake. Validator needs to add another pool", "pc": [ - 2325 + 2721 ] }, { "teal": 2383, - "source": 696, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2326, - 2327 + 2722, + 2723 ] }, { "teal": 2384, - "source": 696, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2328, - 2329 + 2724, + 2725 ] }, { "teal": 2385, - "source": 696, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2330, - 2331 + 2726, + 2727 ] }, { "teal": 2386, - "source": 696, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2332, - 2333, - 2334 + 2728, + 2729, + 2730 ] }, { "teal": 2387, - "source": 696, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2335, - 2336 + 2731, + 2732 ] }, { "teal": 2388, - "source": 696, + "source": "examples/reti/validatorRegistry.algo.ts:696", "pc": [ - 2337, - 2338, - 2339 + 2733, + 2734, + 2735 ] }, { "teal": 2398, - "source": 704, + "source": "examples/reti/validatorRegistry.algo.ts:704", "pc": [ - 2340, - 2341 + 2736, + 2737 ] }, { "teal": 2399, - "source": 703, + "source": "examples/reti/validatorRegistry.algo.ts:703", "pc": [ - 2342, - 2343 + 2738, + 2739 ] }, { "teal": 2400, - "source": 702, + "source": "examples/reti/validatorRegistry.algo.ts:702", "pc": [ - 2344, - 2345 + 2740, + 2741 ] }, { "teal": 2401, - "source": 701, + "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ - 2346, - 2347 + 2742, + 2743 ] }, { "teal": 2402, - "source": 701, + "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ - 2348, - 2349 + 2744, + 2745 ] }, { "teal": 2403, - "source": 701, + "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ - 2350, - 2351 + 2746, + 2747 ] }, { "teal": 2404, - "source": 701, + "source": "examples/reti/validatorRegistry.algo.ts:701", "pc": [ - 2352, - 2353, - 2354 + 2748, + 2749, + 2750 ] }, { "teal": 2405, - "source": 700, + "source": "examples/reti/validatorRegistry.algo.ts:700", "pc": [ - 2355, - 2356 + 2751, + 2752 ] }, { "teal": 2406, - "source": 699, + "source": "examples/reti/validatorRegistry.algo.ts:699", "pc": [ - 2357, - 2358, - 2359 + 2753, + 2754, + 2755 ] }, { "teal": 2410, - "source": 714, + "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ - 2360, - 2361 + 2756, + 2757 ] }, { "teal": 2411, - "source": 714, + "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ - 2362, - 2363 + 2758, + 2759 ] }, { "teal": 2412, - "source": 714, + "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ - 2364, - 2365 + 2760, + 2761 ] }, { "teal": 2413, - "source": 714, + "source": "examples/reti/validatorRegistry.algo.ts:714", "pc": [ - 2366, - 2367, - 2368 + 2762, + 2763, + 2764 ] }, { "teal": 2416, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2369, - 2370 + 2765, + 2766 ] }, { "teal": 2419, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2371, - 2372 + 2767, + 2768 ] }, { "teal": 2420, - "source": 644, + "source": "examples/reti/validatorRegistry.algo.ts:644", "pc": [ - 2373 + 2769 ] }, { "teal": 2425, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2374 + 2770, + 2771, + 2772, + 2773, + 2774, + 2775 ] }, { "teal": 2428, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2375, - 2376, - 2377 + 2776, + 2777, + 2778 ] }, { "teal": 2429, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2378 + 2779 ] }, { "teal": 2432, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2379, - 2380, - 2381 + 2780, + 2781, + 2782 ] }, { "teal": 2433, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2382 + 2783 ] }, { "teal": 2434, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2383 + 2784 ] }, { "teal": 2435, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2384 + 2785, + 2786 ] }, { "teal": 2436, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2385 + 2787 ] }, { "teal": 2454, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2386, - 2387, - 2388 + 2788, + 2789, + 2790 ] }, { "teal": 2457, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2389 + 2791, + 2792 ] }, { "teal": 2458, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2390, - 2391 + 2793, + 2794 ] }, { "teal": 2462, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2392, - 2393 + 2795, + 2796, + 2797 ] }, { "teal": 2463, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2394 + 2798, + 2799 ] }, { "teal": 2464, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2395 + 2800, + 2801, + 2802 ] }, { "teal": 2465, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2396, - 2397 + 2803, + 2804 ] }, { "teal": 2466, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2398 + 2805 ] }, { "teal": 2467, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2399 + 2806 ] }, { "teal": 2468, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2400, - 2401 + 2807, + 2808 ] }, { "teal": 2469, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2402 + 2809 ] }, { "teal": 2470, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2403 + 2810 ] }, { "teal": 2471, - "source": 734, + "source": "examples/reti/validatorRegistry.algo.ts:734", "pc": [ - 2404, - 2405 + 2811, + 2812 ] }, { "teal": 2475, - "source": 735, + "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2406, - 2407 + 2813, + 2814 ] }, { "teal": 2476, - "source": 735, + "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2408 + 2815, + 2816 ] }, { "teal": 2477, - "source": 735, + "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2409 + 2817 ] }, { "teal": 2478, - "source": 735, + "source": "examples/reti/validatorRegistry.algo.ts:735", "pc": [ - 2410 + 2818 ] }, { "teal": 2483, - "source": 737, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2411, - 2412 + 2819, + 2820 ] }, { "teal": 2484, - "source": 737, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2413, - 2414 + 2821, + 2822 ] }, { "teal": 2485, - "source": 737, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2415, - 2416 + 2823, + 2824 ] }, { "teal": 2486, - "source": 737, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2417 + 2825 ] }, { "teal": 2487, - "source": 737, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2418 + 2826 ] }, { "teal": 2488, - "source": 737, + "source": "examples/reti/validatorRegistry.algo.ts:737", "pc": [ - 2419, - 2420, - 2421 + 2827, + 2828, + 2829 ] }, { "teal": 2493, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2422, - 2423 + 2830, + 2831, + 2832 ] }, { "teal": 2494, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2424, - 2425 + 2833, + 2834, + 2835 ] }, { "teal": 2495, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2426 + 2836, + 2837, + 2838 ] }, { "teal": 2496, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2427, - 2428 + 2839, + 2840 ] }, { "teal": 2497, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2429 + 2841 ] }, { "teal": 2498, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2430 + 2842 ] }, { "teal": 2499, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2431, - 2432 + 2843, + 2844 ] }, { "teal": 2500, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2433 + 2845 ] }, { "teal": 2501, - "source": 738, + "source": "examples/reti/validatorRegistry.algo.ts:738", "pc": [ - 2434, - 2435, - 2436 + 2846, + 2847, + 2848 ] }, { "teal": 2506, - "source": 744, + "source": "examples/reti/validatorRegistry.algo.ts:744", "pc": [ - 2437, - 2438 + 2849, + 2850 ] }, { "teal": 2507, - "source": 744, + "source": "examples/reti/validatorRegistry.algo.ts:744", "pc": [ - 2439, - 2440 + 2851, + 2852 ] }, { "teal": 2511, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2441, - 2442 + 2853, + 2854, + 2855 ] }, { "teal": 2512, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2443 + 2856, + 2857 ] }, { "teal": 2513, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2444 + 2858, + 2859, + 2860 ] }, { "teal": 2514, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2445, - 2446 + 2861, + 2862 ] }, { "teal": 2515, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2447 + 2863 ] }, { "teal": 2516, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2448 + 2864 ] }, { "teal": 2517, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2449, - 2450 + 2865, + 2866 ] }, { "teal": 2518, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2451 + 2867 ] }, { "teal": 2519, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2452 + 2868 ] }, { "teal": 2520, - "source": 745, + "source": "examples/reti/validatorRegistry.algo.ts:745", "pc": [ - 2453, - 2454 + 2869, + 2870 ] }, { "teal": 2525, - "source": 746, + "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2455, - 2456 + 2871, + 2872 ] }, { "teal": 2526, - "source": 746, + "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2457 + 2873, + 2874 ] }, { "teal": 2527, - "source": 746, + "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2458 + 2875 ] }, { "teal": 2528, - "source": 746, + "source": "examples/reti/validatorRegistry.algo.ts:746", "pc": [ - 2459, - 2460, - 2461 + 2876, + 2877, + 2878 ] }, { "teal": 2534, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2462, - 2463 + 2879, + 2880 ] }, { "teal": 2535, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2464, - 2465, - 2466, - 2467, - 2468, - 2469, - 2470, - 2471, - 2472, - 2473, - 2474, - 2475 + 2881, + 2882, + 2883, + 2884, + 2885, + 2886, + 2887, + 2888, + 2889, + 2890, + 2891, + 2892 ] }, { "teal": 2536, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2476 + 2893 ] }, { "teal": 2539, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "errorMessage": "global state value does not exist: AppID.fromUint64(pool1AppID).globalState('lastPayout')", "pc": [ - 2477 + 2894 ] }, { "teal": 2540, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2478, - 2479 + 2895, + 2896 ] }, { "teal": 2541, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2480 + 2897 ] }, { "teal": 2542, - "source": 748, + "source": "examples/reti/validatorRegistry.algo.ts:748", "pc": [ - 2481, - 2482, - 2483 + 2898, + 2899, + 2900 ] }, { "teal": 2547, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2484, - 2485 + 2901, + 2902, + 2903 ] }, { "teal": 2548, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2486, - 2487 + 2904, + 2905, + 2906 ] }, { "teal": 2549, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2488 + 2907, + 2908, + 2909 ] }, { "teal": 2550, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2489, - 2490 + 2910, + 2911 ] }, { "teal": 2551, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2491 + 2912 ] }, { "teal": 2552, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2492 + 2913 ] }, { "teal": 2553, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2493, - 2494 + 2914, + 2915 ] }, { "teal": 2554, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2495 + 2916 ] }, { "teal": 2555, - "source": 749, + "source": "examples/reti/validatorRegistry.algo.ts:749", "pc": [ - 2496, - 2497, - 2498 + 2917, + 2918, + 2919 ] }, { "teal": 2560, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2499, - 2500, - 2501 + 2920, + 2921, + 2922 ] }, { "teal": 2561, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2502, - 2503 + 2923, + 2924 ] }, { "teal": 2562, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2504 + 2925, + 2926, + 2927 ] }, { "teal": 2563, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2505, - 2506 + 2928, + 2929 ] }, { "teal": 2564, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2507 + 2930 ] }, { "teal": 2565, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2508 + 2931 ] }, { "teal": 2566, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2509, - 2510 + 2932, + 2933 ] }, { "teal": 2567, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2511 + 2934 ] }, { "teal": 2568, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2512 + 2935 ] }, { "teal": 2569, - "source": 751, + "source": "examples/reti/validatorRegistry.algo.ts:751", "pc": [ - 2513, - 2514 + 2936, + 2937 ] }, { "teal": 2573, - "source": 752, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2515, - 2516 + 2938, + 2939 ] }, { "teal": 2574, - "source": 752, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2517, - 2518 + 2940, + 2941 ] }, { "teal": 2575, - "source": 752, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2519, - 2520 + 2942, + 2943 ] }, { "teal": 2576, - "source": 752, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2521 + 2944 ] }, { "teal": 2577, - "source": 752, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2522 + 2945 ] }, { "teal": 2578, - "source": 752, + "source": "examples/reti/validatorRegistry.algo.ts:752", "pc": [ - 2523, - 2524 + 2946, + 2947 ] }, { "teal": 2583, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2525, - 2526 + 2948, + 2949 ] }, { "teal": 2584, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2527, - 2528 + 2950, + 2951 ] }, { "teal": 2585, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2529, - 2530 + 2952, + 2953 ] }, { "teal": 2586, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2531 + 2954 ] }, { "teal": 2587, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2532 + 2955 ] }, { "teal": 2588, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2533, - 2534 + 2956, + 2957 ] }, { "teal": 2589, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2535 + 2958 ] }, { "teal": 2590, - "source": 754, + "source": "examples/reti/validatorRegistry.algo.ts:754", "pc": [ - 2536, - 2537, - 2538 + 2959, + 2960, + 2961 ] }, { "teal": 2595, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2539, - 2540 + 2962, + 2963, + 2964 ] }, { "teal": 2596, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2541, - 2542 + 2965, + 2966, + 2967 ] }, { "teal": 2597, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2543 + 2968, + 2969, + 2970 ] }, { "teal": 2598, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2544, - 2545 + 2971, + 2972 ] }, { "teal": 2599, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2546 + 2973 ] }, { "teal": 2600, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2547 + 2974 ] }, { "teal": 2601, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2548, - 2549 + 2975, + 2976 ] }, { "teal": 2602, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2550 + 2977 ] }, { "teal": 2603, - "source": 755, + "source": "examples/reti/validatorRegistry.algo.ts:755", "pc": [ - 2551, - 2552, - 2553 + 2978, + 2979, + 2980 ] }, { "teal": 2610, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2554, - 2555 + 2981, + 2982, + 2983 ] }, { "teal": 2611, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2556, - 2557 + 2984, + 2985 ] }, { "teal": 2612, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2558 + 2986 ] }, { "teal": 2613, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2559 + 2987, + 2988, + 2989 ] }, { "teal": 2614, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2560, - 2561 + 2990, + 2991 ] }, { "teal": 2615, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2562 + 2992 ] }, { "teal": 2616, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2563 + 2993 ] }, { "teal": 2617, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2564, - 2565 + 2994, + 2995 ] }, { "teal": 2618, - "source": 758, + "source": "examples/reti/validatorRegistry.algo.ts:758", "pc": [ - 2566 + 2996 ] }, { "teal": 2622, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2567, - 2568 + 2997, + 2998, + 2999 ] }, { "teal": 2623, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2569, - 2570 + 3000, + 3001 ] }, { "teal": 2624, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2571 + 3002, + 3003, + 3004 ] }, { "teal": 2625, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2572, - 2573 + 3005, + 3006 ] }, { "teal": 2626, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2574 + 3007 ] }, { "teal": 2627, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2575 + 3008 ] }, { "teal": 2628, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2576, - 2577 + 3009, + 3010 ] }, { "teal": 2629, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2578 + 3011 ] }, { "teal": 2630, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2579 + 3012 ] }, { "teal": 2631, - "source": 760, + "source": "examples/reti/validatorRegistry.algo.ts:760", "pc": [ - 2580, - 2581 + 3013, + 3014 ] }, { "teal": 2635, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2582, - 2583 + 3015, + 3016, + 3017 ] }, { "teal": 2636, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2584 + 3018, + 3019 ] }, { "teal": 2637, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2585 + 3020, + 3021, + 3022 ] }, { "teal": 2638, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2586, - 2587 + 3023, + 3024 ] }, { "teal": 2639, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2588 + 3025 ] }, { "teal": 2640, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2589 + 3026 ] }, { "teal": 2641, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2590, - 2591 + 3027, + 3028 ] }, { "teal": 2642, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2592 + 3029 ] }, { "teal": 2643, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2593 + 3030 ] }, { "teal": 2644, - "source": 761, + "source": "examples/reti/validatorRegistry.algo.ts:761", "pc": [ - 2594, - 2595 + 3031, + 3032 ] }, { "teal": 2648, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2596 + 3033, + 3034 ] }, { "teal": 2649, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2597, - 2598 + 3035, + 3036 ] }, { "teal": 2654, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2599, - 2600 + 3037, + 3038 ] }, { "teal": 2655, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2601, - 2602 + 3039, + 3040 ] }, { "teal": 2656, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2603 + 3041 ] }, { "teal": 2657, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2604, - 2605, - 2606 + 3042, + 3043, + 3044 ] }, { "teal": 2664, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2607, - 2608 + 3045, + 3046, + 3047 ] }, { "teal": 2665, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2609, - 2610 + 3048, + 3049 ] }, { "teal": 2666, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2611, - 2612 + 3050, + 3051 ] }, { "teal": 2667, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2613 + 3052 ] }, { "teal": 2668, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2614 + 3053 ] }, { "teal": 2669, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2615, - 2616 + 3054, + 3055 ] }, { "teal": 2670, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2617 + 3056 ] }, { "teal": 2671, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2618 + 3057, + 3058 ] }, { "teal": 2672, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2619 + 3059, + 3060, + 3061 ] }, { "teal": 2673, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2620, - 2621 + 3062, + 3063 ] }, { "teal": 2674, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2622 + 3064 ] }, { "teal": 2675, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2623 + 3065 ] }, { "teal": 2676, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2624, - 2625 + 3066, + 3067 ] }, { "teal": 2677, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2626 + 3068 ] }, { "teal": 2678, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2627 + 3069 ] }, { "teal": 2679, - "source": 768, + "source": "examples/reti/validatorRegistry.algo.ts:768", "pc": [ - 2628, - 2629 + 3070, + 3071, + 3072, + 3073 ] }, { "teal": 2680, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2630 + 3074 ] }, { "teal": 2681, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2631 + 3075, + 3076 ] }, { "teal": 2682, - "source": 769, + "source": "examples/reti/validatorRegistry.algo.ts:769", "pc": [ - 2632, - 2633 + 3077, + 3078 ] }, { "teal": 2683, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2634 + 3079 ] }, { "teal": 2684, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2635 + 3080 ] }, { "teal": 2685, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2636 + 3081 ] }, { "teal": 2686, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2637 + 3082 ] }, { "teal": 2687, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2638 + 3083 ] }, { "teal": 2690, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "errorMessage": "wideRatio failed", "pc": [ - 2639 + 3084 ] }, { "teal": 2691, - "source": 767, + "source": "examples/reti/validatorRegistry.algo.ts:767", "pc": [ - 2640, - 2641 + 3085, + 3086 ] }, { "teal": 2695, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2642, - 2643 + 3087, + 3088, + 3089 ] }, { "teal": 2696, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2644, - 2645 + 3090, + 3091 ] }, { "teal": 2697, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2646 + 3092, + 3093 ] }, { "teal": 2698, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2647 + 3094 ] }, { "teal": 2699, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2648 + 3095 ] }, { "teal": 2700, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2649, - 2650 + 3096, + 3097 ] }, { "teal": 2701, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2651 + 3098 ] }, { "teal": 2702, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2652 + 3099, + 3100, + 3101 ] }, { "teal": 2703, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2653, - 2654 + 3102, + 3103 ] }, { "teal": 2704, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2655 + 3104 ] }, { "teal": 2705, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2656 + 3105 ] }, { "teal": 2706, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2657, - 2658 + 3106, + 3107 ] }, { "teal": 2707, - "source": 771, + "source": "examples/reti/validatorRegistry.algo.ts:771", "pc": [ - 2659 + 3108 ] }, { "teal": 2712, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2660, - 2661 + 3109, + 3110 ] }, { "teal": 2713, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2662 + 3111, + 3112 ] }, { "teal": 2714, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2663 + 3113 ] }, { "teal": 2715, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2664, - 2665 + 3114, + 3115 ] }, { "teal": 2716, - "source": 762, + "source": "examples/reti/validatorRegistry.algo.ts:762", "pc": [ - 2666, - 2667, - 2668 + 3116, + 3117, + 3118 ] }, { "teal": 2721, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2669, - 2670 + 3119, + 3120, + 3121 ] }, { "teal": 2722, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2671, - 2672 + 3122, + 3123, + 3124 ] }, { "teal": 2723, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2673 + 3125, + 3126, + 3127 ] }, { "teal": 2724, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2674, - 2675 + 3128, + 3129 ] }, { "teal": 2725, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2676 + 3130 ] }, { "teal": 2726, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2677 + 3131 ] }, { "teal": 2727, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2678, - 2679 + 3132, + 3133 ] }, { "teal": 2728, - "source": 773, + "source": "examples/reti/validatorRegistry.algo.ts:773", "pc": [ - 2680 + 3134 ] }, { "teal": 2732, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2681, - 2682 + 3135, + 3136 ] }, { "teal": 2735, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2683, - 2684 + 3137, + 3138 ] }, { "teal": 2736, - "source": 732, + "source": "examples/reti/validatorRegistry.algo.ts:732", "pc": [ - 2685 + 3139 ] }, { "teal": 2741, - "source": 792, + "source": "examples/reti/validatorRegistry.algo.ts:792", "pc": [ - 2686, - 2687, - 2688 + 3140, + 3141, + 3142 ] }, { "teal": 2742, - "source": 792, + "source": "examples/reti/validatorRegistry.algo.ts:792", "pc": [ - 2689 + 3143 ] }, { "teal": 2745, - "source": 791, + "source": "examples/reti/validatorRegistry.algo.ts:791", "pc": [ - 2690, - 2691, - 2692 + 3144, + 3145, + 3146 ] }, { "teal": 2746, - "source": 791, + "source": "examples/reti/validatorRegistry.algo.ts:791", "pc": [ - 2693 + 3147 ] }, { "teal": 2749, - "source": 790, + "source": "examples/reti/validatorRegistry.algo.ts:790", "pc": [ - 2694, - 2695, - 2696 + 3148, + 3149, + 3150 ] }, { "teal": 2750, - "source": 790, + "source": "examples/reti/validatorRegistry.algo.ts:790", "pc": [ - 2697 + 3151 ] }, { "teal": 2753, - "source": 789, + "source": "examples/reti/validatorRegistry.algo.ts:789", "pc": [ - 2698, - 2699, - 2700 + 3152, + 3153, + 3154 ] }, { "teal": 2754, - "source": 789, + "source": "examples/reti/validatorRegistry.algo.ts:789", "pc": [ - 2701 + 3155 ] }, { "teal": 2757, - "source": 788, + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2702, - 2703, - 2704 + 3156, + 3157, + 3158 ] }, { "teal": 2758, - "source": 788, + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2705 + 3159 ] }, { "teal": 2759, - "source": 788, + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2706 + 3160 ] }, { "teal": 2760, - "source": 788, + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2707 + 3161, + 3162 ] }, { "teal": 2761, - "source": 788, + "source": "examples/reti/validatorRegistry.algo.ts:788", "pc": [ - 2708 + 3163 ] }, { "teal": 2764, - "source": 788, + "source": "examples/reti/validatorRegistry.algo.ts:788", "errorMessage": "argument 4 (poolKey) for stakeUpdatedViaRewards must be a (uint64,uint64,uint64)", "pc": [ - 2709 + 3164 ] }, { "teal": 2767, - "source": 787, + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2710, - 2711, - 2712 + 3165, + 3166, + 3167 ] }, { "teal": 2768, - "source": 787, + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2713 + 3168, + 3169 ] }, { "teal": 2769, - "source": 787, + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2714 + 3170 ] }, { "teal": 2783, - "source": 787, + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2715, - 2716, - 2717 + 3171, + 3172, + 3173 ] }, { "teal": 2787, - "source": 794, + "source": "examples/reti/validatorRegistry.algo.ts:794", "pc": [ - 2718, - 2719 + 3174, + 3175 ] }, { "teal": 2788, - "source": 794, + "source": "examples/reti/validatorRegistry.algo.ts:794", "pc": [ - 2720, - 2721, - 2722 + 3176, + 3177, + 3178 ] }, { "teal": 2792, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2723, - 2724 + 3179, + 3180, + 3181 ] }, { "teal": 2793, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2725, - 2726 + 3182, + 3183 ] }, { "teal": 2794, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2727, - 2728, - 2729 + 3184, + 3185, + 3186 ] }, { "teal": 2795, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2730 + 3187 ] }, { "teal": 2796, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2731 + 3188, + 3189 ] }, { "teal": 2797, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2732 + 3190 ] }, { "teal": 2798, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2733, - 2734 + 3191, + 3192 ] }, { "teal": 2799, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2735 + 3193 ] }, { "teal": 2800, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2736 + 3194 ] }, { "teal": 2801, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2737, - 2738 + 3195, + 3196 ] }, { "teal": 2802, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2739 + 3197 ] }, { "teal": 2803, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2740, - 2741 + 3198, + 3199, + 3200 ] }, { "teal": 2804, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2742, - 2743 + 3201, + 3202 ] }, { "teal": 2805, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2744, - 2745, - 2746 + 3203, + 3204, + 3205 ] }, { "teal": 2806, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2747 + 3206 ] }, { "teal": 2807, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2748 + 3207, + 3208 ] }, { "teal": 2808, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2749 + 3209 ] }, { "teal": 2809, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2750, - 2751 + 3210, + 3211 ] }, { "teal": 2810, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2752 + 3212 ] }, { "teal": 2811, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2753 + 3213 ] }, { "teal": 2812, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2754, - 2755 + 3214, + 3215 ] }, { "teal": 2813, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2756 + 3216 ] }, { "teal": 2814, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2757 + 3217, + 3218 ] }, { "teal": 2815, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2758 + 3219, + 3220, + 3221 ] }, { "teal": 2816, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2759, - 2760 + 3222, + 3223 ] }, { "teal": 2817, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2761, - 2762, - 2763 + 3224, + 3225, + 3226 ] }, { "teal": 2818, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2764 + 3227 ] }, { "teal": 2819, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2765 + 3228 ] }, { "teal": 2820, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2766 + 3229 ] }, { "teal": 2821, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2767, - 2768 + 3230, + 3231 ] }, { "teal": 2822, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2769 + 3232 ] }, { "teal": 2823, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2770 + 3233 ] }, { "teal": 2824, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2771, - 2772 + 3234, + 3235 ] }, { "teal": 2825, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2773 + 3236 ] }, { "teal": 2826, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2774 + 3237 ] }, { "teal": 2827, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2775 + 3238, + 3239, + 3240 ] }, { "teal": 2828, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2776, - 2777 + 3241, + 3242 ] }, { "teal": 2829, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2778, - 2779, - 2780 + 3243, + 3244, + 3245 ] }, { "teal": 2830, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2781 + 3246 ] }, { "teal": 2831, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2782 + 3247 ] }, { "teal": 2832, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2783 + 3248 ] }, { "teal": 2833, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2784, - 2785 + 3249, + 3250 ] }, { "teal": 2834, - "source": 797, + "source": "examples/reti/validatorRegistry.algo.ts:797", "pc": [ - 2786 + 3251 ] }, { "teal": 2838, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2787, - 2788 + 3252, + 3253, + 3254 ] }, { "teal": 2839, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2789 + 3255 ] }, { "teal": 2840, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2790 + 3256, + 3257 ] }, { "teal": 2841, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2791 + 3258, + 3259, + 3260 ] }, { "teal": 2842, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2792, - 2793 + 3261, + 3262 ] }, { "teal": 2843, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2794, - 2795, - 2796 + 3263, + 3264, + 3265 ] }, { "teal": 2844, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2797 + 3266 ] }, { "teal": 2845, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2798 + 3267 ] }, { "teal": 2846, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2799 + 3268 ] }, { "teal": 2847, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2800, - 2801 + 3269, + 3270 ] }, { "teal": 2848, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2802 + 3271 ] }, { "teal": 2849, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2803 + 3272 ] }, { "teal": 2850, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2804, - 2805 + 3273, + 3274 ] }, { "teal": 2851, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2806 + 3275 ] }, { "teal": 2852, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2807 + 3276 ] }, { "teal": 2853, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2808 + 3277, + 3278, + 3279 ] }, { "teal": 2854, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2809, - 2810 + 3280, + 3281 ] }, { "teal": 2855, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2811, - 2812, - 2813 + 3282, + 3283, + 3284 ] }, { "teal": 2856, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2814 + 3285 ] }, { "teal": 2857, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2815 + 3286 ] }, { "teal": 2858, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2816 + 3287 ] }, { "teal": 2859, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2817, - 2818 + 3288, + 3289 ] }, { "teal": 2860, - "source": 798, + "source": "examples/reti/validatorRegistry.algo.ts:798", "pc": [ - 2819 + 3290 ] }, { "teal": 2864, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2820, - 2821 + 3291, + 3292, + 3293 ] }, { "teal": 2865, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2822 + 3294 ] }, { "teal": 2866, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2823 + 3295, + 3296 ] }, { "teal": 2867, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2824 + 3297, + 3298, + 3299 ] }, { "teal": 2868, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2825, - 2826 + 3300, + 3301 ] }, { "teal": 2869, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2827, - 2828, - 2829 + 3302, + 3303, + 3304 ] }, { "teal": 2870, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2830 + 3305 ] }, { "teal": 2871, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2831 + 3306 ] }, { "teal": 2872, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2832 + 3307 ] }, { "teal": 2873, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2833, - 2834 + 3308, + 3309 ] }, { "teal": 2874, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2835 + 3310 ] }, { "teal": 2875, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2836 + 3311 ] }, { "teal": 2876, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2837, - 2838 + 3312, + 3313 ] }, { "teal": 2877, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2839 + 3314 ] }, { "teal": 2878, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2840 + 3315 ] }, { "teal": 2879, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2841 + 3316, + 3317, + 3318 ] }, { "teal": 2880, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2842, - 2843 + 3319, + 3320 ] }, { "teal": 2881, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2844, - 2845, - 2846 + 3321, + 3322, + 3323 ] }, { "teal": 2882, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2847 + 3324 ] }, { "teal": 2883, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2848 + 3325 ] }, { "teal": 2884, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2849 + 3326 ] }, { "teal": 2885, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2850, - 2851 + 3327, + 3328 ] }, { "teal": 2886, - "source": 799, + "source": "examples/reti/validatorRegistry.algo.ts:799", "pc": [ - 2852 + 3329 ] }, { "teal": 2890, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2853, - 2854 + 3330, + 3331, + 3332, + 3333, + 3334, + 3335, + 3336, + 3337 ] }, { "teal": 2891, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2855 + 3338 ] }, { "teal": 2892, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2856, - 2857 + 3339, + 3340 ] }, { "teal": 2893, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2858 + 3341 ] }, { "teal": 2894, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2859, - 2860 + 3342, + 3343, + 3344, + 3345, + 3346, + 3347, + 3348, + 3349 ] }, { "teal": 2895, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2861 + 3350 ] }, { "teal": 2896, - "source": 801, + "source": "examples/reti/validatorRegistry.algo.ts:801", "pc": [ - 2862 + 3351 ] }, { "teal": 2900, - "source": 804, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2863, - 2864 + 3352, + 3353 ] }, { "teal": 2901, - "source": 804, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2865, - 2866, - 2867 + 3354, + 3355, + 3356 ] }, { "teal": 2902, - "source": 804, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2868 + 3357 ] }, { "teal": 2903, - "source": 804, + "source": "examples/reti/validatorRegistry.algo.ts:804", "pc": [ - 2869, - 2870, - 2871 + 3358, + 3359, + 3360 ] }, { "teal": 2904, - "source": 787, + "source": "examples/reti/validatorRegistry.algo.ts:787", "pc": [ - 2872 + 3361 ] }, { "teal": 2909, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2873, - 2874, - 2875 + 3362, + 3363, + 3364 ] }, { "teal": 2910, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2876 + 3365 ] }, { "teal": 2911, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2877 + 3366 ] }, { "teal": 2912, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2878 + 3367, + 3368 ] }, { "teal": 2913, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2879 + 3369 ] }, { "teal": 2916, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "errorMessage": "argument 0 (stakerRemoved) for stakeRemoved must be a bool", "pc": [ - 2880 + 3370 ] }, { "teal": 2917, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2881 + 3371, + 3372 ] }, { "teal": 2918, - "source": 834, + "source": "examples/reti/validatorRegistry.algo.ts:834", "pc": [ - 2882 + 3373 ] }, { "teal": 2921, - "source": 833, + "source": "examples/reti/validatorRegistry.algo.ts:833", "pc": [ - 2883, - 2884, - 2885 + 3374, + 3375, + 3376 ] }, { "teal": 2922, - "source": 833, + "source": "examples/reti/validatorRegistry.algo.ts:833", "pc": [ - 2886 + 3377 ] }, { "teal": 2925, - "source": 832, + "source": "examples/reti/validatorRegistry.algo.ts:832", "pc": [ - 2887, - 2888, - 2889 + 3378, + 3379, + 3380 ] }, { "teal": 2926, - "source": 832, + "source": "examples/reti/validatorRegistry.algo.ts:832", "pc": [ - 2890 + 3381 ] }, { "teal": 2929, - "source": 831, + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2891, - 2892, - 2893 + 3382, + 3383, + 3384 ] }, { "teal": 2930, - "source": 831, + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2894 + 3385 ] }, { "teal": 2931, - "source": 831, + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2895 + 3386 ] }, { "teal": 2932, - "source": 831, + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2896, - 2897 + 3387, + 3388 ] }, { "teal": 2933, - "source": 831, + "source": "examples/reti/validatorRegistry.algo.ts:831", "pc": [ - 2898 + 3389 ] }, { "teal": 2936, - "source": 831, + "source": "examples/reti/validatorRegistry.algo.ts:831", "errorMessage": "argument 3 (staker) for stakeRemoved must be a address", "pc": [ - 2899 + 3390 ] }, { "teal": 2939, - "source": 830, + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2900, - 2901, - 2902 + 3391, + 3392, + 3393 ] }, { "teal": 2940, - "source": 830, + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2903 + 3394 ] }, { "teal": 2941, - "source": 830, + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2904 + 3395 ] }, { "teal": 2942, - "source": 830, + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2905 + 3396, + 3397 ] }, { "teal": 2943, - "source": 830, + "source": "examples/reti/validatorRegistry.algo.ts:830", "pc": [ - 2906 + 3398 ] }, { "teal": 2946, - "source": 830, + "source": "examples/reti/validatorRegistry.algo.ts:830", "errorMessage": "argument 4 (poolKey) for stakeRemoved must be a (uint64,uint64,uint64)", "pc": [ - 2907 + 3399 ] }, { "teal": 2949, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2908, - 2909, - 2910 + 3400, + 3401, + 3402 ] }, { "teal": 2950, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2911 + 3403, + 3404 ] }, { "teal": 2951, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2912 + 3405 ] }, { "teal": 2966, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2913, - 2914, - 2915 + 3406, + 3407, + 3408 ] }, { "teal": 2969, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2916 + 3409, + 3410 ] }, { "teal": 2970, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 2917, - 2918 + 3411, + 3412 ] }, { "teal": 2975, - "source": 836, + "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2919, - 2920 + 3413, + 3414 ] }, { "teal": 2976, - "source": 836, + "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2921, - 2922 + 3415, + 3416, + 3417 ] }, { "teal": 2977, - "source": 836, + "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2923 + 3418 ] }, { "teal": 2978, - "source": 836, + "source": "examples/reti/validatorRegistry.algo.ts:836", "pc": [ - 2924, - 2925, - 2926 + 3419, + 3420, + 3421 ] }, { "teal": 2983, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2927 + 3422 ] }, { "teal": 2984, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2928, - 2929 + 3423, + 3424 ] }, { "teal": 2985, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2930, - 2931 + 3425, + 3426 ] }, { "teal": 2986, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2932 + 3427, + 3428 ] }, { "teal": 2987, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2933, - 2934 + 3429, + 3430 ] }, { "teal": 2988, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2935, - 2936 + 3431, + 3432, + 3433, + 3434, + 3435 ] }, { "teal": 2989, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2937 + 3436 ] }, { "teal": 2990, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2938, - 2939 + 3437, + 3438 ] }, { "teal": 2991, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2940, - 2941 + 3439, + 3440 ] }, { "teal": 2992, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2942, - 2943 + 3441, + 3442 ] }, { "teal": 2993, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2944, - 2945 + 3443, + 3444 ] }, { "teal": 2994, - "source": 837, + "source": "examples/reti/validatorRegistry.algo.ts:837", "pc": [ - 2946 + 3445 ] }, { "teal": 2999, - "source": 839, + "source": "examples/reti/validatorRegistry.algo.ts:839", "pc": [ - 2947, - 2948 + 3446, + 3447 ] }, { "teal": 3000, - "source": 839, + "source": "examples/reti/validatorRegistry.algo.ts:839", "pc": [ - 2949, - 2950, - 2951 + 3448, + 3449, + 3450 ] }, { "teal": 3004, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2952, - 2953 + 3451, + 3452 ] }, { "teal": 3005, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2954 + 3453, + 3454 ] }, { "teal": 3006, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2955 + 3455 ] }, { "teal": 3007, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2956 + 3456 ] }, { "teal": 3008, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2957, - 2958, - 2959 + 3457, + 3458, + 3459 ] }, { "teal": 3009, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2960, - 2961 + 3460, + 3461 ] }, { "teal": 3010, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2962 + 3462, + 3463 ] }, { "teal": 3011, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2963 + 3464 ] }, { "teal": 3012, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "pc": [ - 2964 + 3465 ] }, { "teal": 3016, - "source": 843, + "source": "examples/reti/validatorRegistry.algo.ts:843", "errorMessage": "should only be called if algo or reward was removed", "pc": [ - 2965 + 3466 ] }, { "teal": 3020, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2966, - 2967 + 3467, + 3468, + 3469 ] }, { "teal": 3021, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2968, - 2969 + 3470, + 3471 ] }, { "teal": 3022, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2970, - 2971, - 2972 + 3472, + 3473, + 3474 ] }, { "teal": 3023, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2973 + 3475 ] }, { "teal": 3024, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2974 + 3476, + 3477 ] }, { "teal": 3025, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2975 + 3478 ] }, { "teal": 3026, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2976, - 2977 + 3479, + 3480 ] }, { "teal": 3027, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2978 + 3481 ] }, { "teal": 3028, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2979 + 3482 ] }, { "teal": 3029, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2980, - 2981 + 3483, + 3484 ] }, { "teal": 3030, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2982 + 3485 ] }, { "teal": 3031, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2983, - 2984 + 3486, + 3487, + 3488 ] }, { "teal": 3032, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2985, - 2986 + 3489, + 3490 ] }, { "teal": 3033, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2987, - 2988, - 2989 + 3491, + 3492, + 3493 ] }, { "teal": 3034, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2990 + 3494 ] }, { "teal": 3035, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2991 + 3495, + 3496 ] }, { "teal": 3036, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2992 + 3497 ] }, { "teal": 3037, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2993, - 2994 + 3498, + 3499 ] }, { "teal": 3038, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2995 + 3500 ] }, { "teal": 3039, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2996 + 3501 ] }, { "teal": 3040, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2997, - 2998 + 3502, + 3503 ] }, { "teal": 3041, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 2999 + 3504 ] }, { "teal": 3042, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3000 + 3505, + 3506 ] }, { "teal": 3043, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3001 + 3507, + 3508, + 3509 ] }, { "teal": 3044, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3002, - 3003 + 3510, + 3511 ] }, { "teal": 3045, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3004, - 3005, - 3006 + 3512, + 3513, + 3514 ] }, { "teal": 3046, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3007 + 3515 ] }, { "teal": 3047, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3008 + 3516 ] }, { "teal": 3048, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3009 + 3517 ] }, { "teal": 3049, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3010, - 3011 + 3518, + 3519 ] }, { "teal": 3050, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3012 + 3520 ] }, { "teal": 3051, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3013 + 3521 ] }, { "teal": 3052, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3014, - 3015 + 3522, + 3523 ] }, { "teal": 3053, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3016 + 3524 ] }, { "teal": 3054, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3017 + 3525 ] }, { "teal": 3055, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3018 + 3526, + 3527, + 3528 ] }, { "teal": 3056, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3019, - 3020 + 3529, + 3530 ] }, { "teal": 3057, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3021, - 3022, - 3023 + 3531, + 3532, + 3533 ] }, { "teal": 3058, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3024 + 3534 ] }, { "teal": 3059, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3025 + 3535 ] }, { "teal": 3060, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3026 + 3536 ] }, { "teal": 3061, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3027, - 3028 + 3537, + 3538 ] }, { "teal": 3062, - "source": 846, + "source": "examples/reti/validatorRegistry.algo.ts:846", "pc": [ - 3029 + 3539 ] }, { "teal": 3066, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3030, - 3031 + 3540, + 3541, + 3542 ] }, { "teal": 3067, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3032 + 3543 ] }, { "teal": 3068, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3033 + 3544, + 3545 ] }, { "teal": 3069, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3034 + 3546, + 3547, + 3548 ] }, { "teal": 3070, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3035, - 3036 + 3549, + 3550 ] }, { "teal": 3071, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3037, - 3038, - 3039 + 3551, + 3552, + 3553 ] }, { "teal": 3072, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3040 + 3554 ] }, { "teal": 3073, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3041 + 3555 ] }, { "teal": 3074, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3042 + 3556 ] }, { "teal": 3075, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3043, - 3044 + 3557, + 3558 ] }, { "teal": 3076, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3045 + 3559 ] }, { "teal": 3077, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3046 + 3560 ] }, { "teal": 3078, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3047, - 3048 + 3561, + 3562 ] }, { "teal": 3079, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3049 + 3563 ] }, { "teal": 3080, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3050 + 3564 ] }, { "teal": 3081, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3051 + 3565, + 3566, + 3567 ] }, { "teal": 3082, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3052, - 3053 + 3568, + 3569 ] }, { "teal": 3083, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3054, - 3055, - 3056 + 3570, + 3571, + 3572 ] }, { "teal": 3084, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3057 + 3573 ] }, { "teal": 3085, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3058 + 3574 ] }, { "teal": 3086, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3059 + 3575 ] }, { "teal": 3087, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3060, - 3061 + 3576, + 3577 ] }, { "teal": 3088, - "source": 847, + "source": "examples/reti/validatorRegistry.algo.ts:847", "pc": [ - 3062 + 3578 ] }, { "teal": 3092, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3063, - 3064 + 3579, + 3580, + 3581, + 3582, + 3583, + 3584, + 3585, + 3586 ] }, { "teal": 3093, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3065 + 3587 ] }, { "teal": 3094, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3066, - 3067 + 3588, + 3589 ] }, { "teal": 3095, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3068 + 3590 ] }, { "teal": 3096, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3069, - 3070 + 3591, + 3592, + 3593, + 3594, + 3595, + 3596, + 3597, + 3598 ] }, { "teal": 3097, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3071 + 3599 ] }, { "teal": 3098, - "source": 848, + "source": "examples/reti/validatorRegistry.algo.ts:848", "pc": [ - 3072 + 3600 ] }, { "teal": 3103, - "source": 850, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3073, - 3074 + 3601, + 3602 ] }, { "teal": 3104, - "source": 850, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3075 + 3603, + 3604 ] }, { "teal": 3105, - "source": 850, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3076 + 3605 ] }, { "teal": 3106, - "source": 850, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3077, - 3078, - 3079 + 3606, + 3607, + 3608 ] }, { "teal": 3111, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3080, - 3081 + 3609, + 3610, + 3611 ] }, { "teal": 3112, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3082 + 3612, + 3613 ] }, { "teal": 3113, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3083 + 3614, + 3615, + 3616 ] }, { "teal": 3114, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3084, - 3085 + 3617, + 3618 ] }, { "teal": 3115, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3086, - 3087, - 3088 + 3619, + 3620, + 3621 ] }, { "teal": 3116, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3089 + 3622 ] }, { "teal": 3117, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3090 + 3623 ] }, { "teal": 3118, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3091 + 3624 ] }, { "teal": 3119, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3092, - 3093 + 3625, + 3626 ] }, { "teal": 3120, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3094 + 3627 ] }, { "teal": 3121, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3095 + 3628 ] }, { "teal": 3122, - "source": 851, + "source": "examples/reti/validatorRegistry.algo.ts:851", "pc": [ - 3096, - 3097 + 3629, + 3630 ] }, { "teal": 3126, - "source": 852, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 3098, - 3099 + 3631, + 3632 ] }, { "teal": 3127, - "source": 852, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 3100 + 3633, + 3634 ] }, { "teal": 3128, - "source": 852, + "source": "examples/reti/validatorRegistry.algo.ts:852", "pc": [ - 3101 + 3635 ] }, { "teal": 3131, - "source": 852, + "source": "examples/reti/validatorRegistry.algo.ts:852", "errorMessage": "rewardRemoved can't be set if validator doesn't have reward token!", "pc": [ - 3102 + 3636 ] }, { "teal": 3138, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3103, - 3104 + 3637, + 3638, + 3639 ] }, { "teal": 3139, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3105 + 3640, + 3641 ] }, { "teal": 3140, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3106 + 3642, + 3643, + 3644 ] }, { "teal": 3141, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3107, - 3108 + 3645, + 3646 ] }, { "teal": 3142, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3109, - 3110, - 3111 + 3647, + 3648, + 3649 ] }, { "teal": 3143, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3112 + 3650 ] }, { "teal": 3144, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3113 + 3651 ] }, { "teal": 3145, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3114 + 3652 ] }, { "teal": 3146, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3115, - 3116 + 3653, + 3654 ] }, { "teal": 3147, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3117 + 3655 ] }, { "teal": 3148, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3118 + 3656 ] }, { "teal": 3149, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3119, - 3120 + 3657, + 3658 ] }, { "teal": 3150, - "source": 854, + "source": "examples/reti/validatorRegistry.algo.ts:854", "pc": [ - 3121 + 3659 ] }, { "teal": 3153, - "source": 853, + "source": "examples/reti/validatorRegistry.algo.ts:853", "errorMessage": "reward being removed must be covered by hold back amount", "pc": [ - 3122 + 3660 ] }, { "teal": 3157, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3123, - 3124 + 3661, + 3662, + 3663 ] }, { "teal": 3158, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3125 + 3664 ] }, { "teal": 3159, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3126 + 3665, + 3666 ] }, { "teal": 3160, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3127 + 3667, + 3668, + 3669 ] }, { "teal": 3161, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3128, - 3129 + 3670, + 3671 ] }, { "teal": 3162, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3130, - 3131, - 3132 + 3672, + 3673, + 3674 ] }, { "teal": 3163, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3133 + 3675 ] }, { "teal": 3164, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3134 + 3676 ] }, { "teal": 3165, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3135 + 3677 ] }, { "teal": 3166, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3136, - 3137 + 3678, + 3679 ] }, { "teal": 3167, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3138 + 3680 ] }, { "teal": 3168, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3139 + 3681 ] }, { "teal": 3169, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3140, - 3141 + 3682, + 3683 ] }, { "teal": 3170, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3142 + 3684 ] }, { "teal": 3171, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3143 + 3685 ] }, { "teal": 3172, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3144 + 3686, + 3687, + 3688 ] }, { "teal": 3173, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3145, - 3146 + 3689, + 3690 ] }, { "teal": 3174, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3147, - 3148, - 3149 + 3691, + 3692, + 3693 ] }, { "teal": 3175, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3150 + 3694 ] }, { "teal": 3176, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3151 + 3695 ] }, { "teal": 3177, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3152 + 3696 ] }, { "teal": 3178, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3153, - 3154 + 3697, + 3698 ] }, { "teal": 3179, - "source": 859, + "source": "examples/reti/validatorRegistry.algo.ts:859", "pc": [ - 3155 + 3699 ] }, { "teal": 3184, - "source": 864, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 3156, - 3157 + 3700, + 3701 ] }, { "teal": 3185, - "source": 864, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 3158, - 3159, - 3160 + 3702, + 3703, + 3704 ] }, { "teal": 3186, - "source": 864, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 3161 + 3705 ] }, { "teal": 3187, - "source": 864, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 3162 + 3706, + 3707 ] }, { "teal": 3188, - "source": 864, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 3163 + 3708 ] }, { "teal": 3189, - "source": 864, + "source": "examples/reti/validatorRegistry.algo.ts:864", "pc": [ - 3164, - 3165, - 3166 + 3709, + 3710, + 3711 ] }, { "teal": 3197, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3167 + 3712 ] }, { "teal": 3198, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3168, - 3169 + 3713, + 3714 ] }, { "teal": 3199, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3170, - 3171 + 3715, + 3716 ] }, { "teal": 3200, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3172, - 3173 + 3717, + 3718, + 3719, + 3720, + 3721, + 3722 ] }, { "teal": 3201, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3174, - 3175 + 3723, + 3724 ] }, { "teal": 3205, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3176, - 3177 + 3725, + 3726, + 3727 ] }, { "teal": 3206, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3178 + 3728, + 3729 ] }, { "teal": 3207, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3179 + 3730, + 3731, + 3732 ] }, { "teal": 3208, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3180, - 3181 + 3733, + 3734 ] }, { "teal": 3209, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3182, - 3183, - 3184 + 3735, + 3736, + 3737 ] }, { "teal": 3210, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3185 + 3738 ] }, { "teal": 3211, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3186 + 3739 ] }, { "teal": 3212, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3187 + 3740 ] }, { "teal": 3213, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3188, - 3189 + 3741, + 3742 ] }, { "teal": 3214, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3190 + 3743 ] }, { "teal": 3215, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3191 + 3744 ] }, { "teal": 3216, - "source": 866, + "source": "examples/reti/validatorRegistry.algo.ts:866", "pc": [ - 3192, - 3193 + 3745, + 3746 ] }, { "teal": 3220, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3194, - 3195 + 3747, + 3748 ] }, { "teal": 3221, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3196, - 3197 + 3749, + 3750 ] }, { "teal": 3222, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3198, - 3199 + 3751, + 3752 ] }, { "teal": 3223, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3200 + 3753 ] }, { "teal": 3224, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3201, - 3202 + 3754, + 3755 ] }, { "teal": 3225, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3203, - 3204 + 3756, + 3757 ] }, { "teal": 3226, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3205 + 3758 ] }, { "teal": 3227, - "source": 867, + "source": "examples/reti/validatorRegistry.algo.ts:867", "pc": [ - 3206, - 3207 + 3759, + 3760 ] }, { "teal": 3230, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3208 + 3761, + 3762 ] }, { "teal": 3231, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3209, - 3210 + 3763, + 3764 ] }, { "teal": 3234, - "source": 865, + "source": "examples/reti/validatorRegistry.algo.ts:865", "pc": [ - 3211 + 3765 ] }, { "teal": 3237, - "source": 850, + "source": "examples/reti/validatorRegistry.algo.ts:850", "pc": [ - 3212, - 3213, - 3214 + 3766, + 3767, + 3768 ] }, { "teal": 3245, - "source": 892, + "source": "examples/reti/validatorRegistry.algo.ts:892", "pc": [ - 3215, - 3216 + 3769, + 3770 ] }, { "teal": 3246, - "source": 892, + "source": "examples/reti/validatorRegistry.algo.ts:892", "pc": [ - 3217, - 3218, - 3219 + 3771, + 3772, + 3773 ] }, { "teal": 3251, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3220, - 3221 + 3774, + 3775, + 3776 ] }, { "teal": 3252, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3222, - 3223 + 3777, + 3778 ] }, { "teal": 3253, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3224, - 3225, - 3226 + 3779, + 3780, + 3781 ] }, { "teal": 3254, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3227 + 3782 ] }, { "teal": 3255, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3228 + 3783, + 3784 ] }, { "teal": 3256, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3229 + 3785 ] }, { "teal": 3257, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3230, - 3231 + 3786, + 3787 ] }, { "teal": 3258, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3232 + 3788 ] }, { "teal": 3259, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3233 + 3789 ] }, { "teal": 3260, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3234 + 3790, + 3791 ] }, { "teal": 3261, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3235 + 3792 ] }, { "teal": 3262, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3236, - 3237 + 3793, + 3794, + 3795 ] }, { "teal": 3263, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3238, - 3239 + 3796, + 3797 ] }, { "teal": 3264, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3240, - 3241, - 3242 + 3798, + 3799, + 3800 ] }, { "teal": 3265, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3243 + 3801 ] }, { "teal": 3266, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3244 + 3802, + 3803 ] }, { "teal": 3267, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3245 + 3804 ] }, { "teal": 3268, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3246, - 3247 + 3805, + 3806 ] }, { "teal": 3269, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3248 + 3807 ] }, { "teal": 3270, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3249 + 3808 ] }, { "teal": 3271, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3250 + 3809, + 3810 ] }, { "teal": 3272, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3251 + 3811 ] }, { "teal": 3273, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3252, - 3253 + 3812, + 3813 ] }, { "teal": 3274, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3254 + 3814, + 3815, + 3816 ] }, { "teal": 3275, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3255, - 3256 + 3817, + 3818 ] }, { "teal": 3276, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3257, - 3258, - 3259 + 3819, + 3820, + 3821 ] }, { "teal": 3277, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3260 + 3822 ] }, { "teal": 3278, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3261 + 3823 ] }, { "teal": 3279, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3262 + 3824 ] }, { "teal": 3280, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3263, - 3264 + 3825, + 3826 ] }, { "teal": 3281, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3265 + 3827 ] }, { "teal": 3282, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3266 + 3828 ] }, { "teal": 3283, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3267 + 3829, + 3830 ] }, { "teal": 3284, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3268 + 3831 ] }, { "teal": 3285, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3269 + 3832 ] }, { "teal": 3286, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3270, - 3271, - 3272 + 3833, + 3834, + 3835 ] }, { "teal": 3287, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3273 + 3836, + 3837, + 3838 ] }, { "teal": 3288, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3274, - 3275 + 3839, + 3840 ] }, { "teal": 3289, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3276, - 3277, - 3278 + 3841, + 3842, + 3843 ] }, { "teal": 3290, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3279 + 3844 ] }, { "teal": 3291, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3280 + 3845 ] }, { "teal": 3292, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3281 + 3846 ] }, { "teal": 3293, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3282, - 3283 + 3847, + 3848 ] }, { "teal": 3294, - "source": 894, + "source": "examples/reti/validatorRegistry.algo.ts:894", "pc": [ - 3284 + 3849 ] }, { "teal": 3302, - "source": 897, + "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3285, - 3286 + 3850, + 3851 ] }, { "teal": 3303, - "source": 897, + "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3287, - 3288, - 3289 + 3852, + 3853, + 3854 ] }, { "teal": 3304, - "source": 897, + "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3290 + 3855 ] }, { "teal": 3305, - "source": 897, + "source": "examples/reti/validatorRegistry.algo.ts:897", "pc": [ - 3291 + 3856 ] }, { "teal": 3306, - "source": 898, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3292, - 3293 + 3857, + 3858 ] }, { "teal": 3307, - "source": 898, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3294, - 3295, - 3296 + 3859, + 3860, + 3861 ] }, { "teal": 3308, - "source": 898, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3297 + 3862 ] }, { "teal": 3309, - "source": 898, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3298 + 3863 ] }, { "teal": 3310, - "source": 898, + "source": "examples/reti/validatorRegistry.algo.ts:898", "pc": [ - 3299 + 3864 ] }, { "teal": 3311, - "source": 899, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3300, - 3301 + 3865, + 3866 ] }, { "teal": 3312, - "source": 899, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3302, - 3303, - 3304 + 3867, + 3868, + 3869 ] }, { "teal": 3313, - "source": 899, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3305 + 3870 ] }, { "teal": 3314, - "source": 899, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3306 + 3871 ] }, { "teal": 3315, - "source": 899, + "source": "examples/reti/validatorRegistry.algo.ts:899", "pc": [ - 3307 + 3872 ] }, { "teal": 3316, - "source": 896, + "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ - 3308, - 3309 + 3873, + 3874 ] }, { "teal": 3317, - "source": 896, + "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ - 3310, - 3311, - 3312 + 3875, + 3876, + 3877 ] }, { "teal": 3318, - "source": 896, + "source": "examples/reti/validatorRegistry.algo.ts:896", "pc": [ - 3313, - 3314 + 3878, + 3879 ] }, { "teal": 3322, - "source": 901, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3315, - 3316 + 3880, + 3881 ] }, { "teal": 3323, - "source": 901, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3317, - 3318 + 3882, + 3883 ] }, { "teal": 3324, - "source": 901, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3319, - 3320 + 3884, + 3885 ] }, { "teal": 3325, - "source": 901, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3321 + 3886, + 3887 ] }, { "teal": 3326, - "source": 901, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3322 + 3888 ] }, { "teal": 3327, - "source": 901, + "source": "examples/reti/validatorRegistry.algo.ts:901", "pc": [ - 3323, - 3324 + 3889, + 3890 ] }, { "teal": 3331, - "source": 902, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3325, - 3326 + 3891, + 3892 ] }, { "teal": 3332, - "source": 902, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3327, - 3328 + 3893, + 3894 ] }, { "teal": 3333, - "source": 902, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3329, - 3330 + 3895, + 3896 ] }, { "teal": 3334, - "source": 902, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3331 + 3897, + 3898 ] }, { "teal": 3335, - "source": 902, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3332 + 3899 ] }, { "teal": 3336, - "source": 902, + "source": "examples/reti/validatorRegistry.algo.ts:902", "pc": [ - 3333, - 3334 + 3900, + 3901 ] }, { "teal": 3341, - "source": 904, + "source": "examples/reti/validatorRegistry.algo.ts:904", "pc": [ - 3335, - 3336 + 3902, + 3903 ] }, { "teal": 3342, - "source": 904, + "source": "examples/reti/validatorRegistry.algo.ts:904", "pc": [ - 3337, - 3338, - 3339 + 3904, + 3905, + 3906 ] }, { "teal": 3347, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3340, - 3341 + 3907, + 3908, + 3909 ] }, { "teal": 3348, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3342 + 3910, + 3911, + 3912 ] }, { "teal": 3349, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3343 + 3913, + 3914 ] }, { "teal": 3350, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3344 + 3915, + 3916, + 3917 ] }, { "teal": 3351, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3345, - 3346 + 3918, + 3919 ] }, { "teal": 3352, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3347, - 3348, - 3349 + 3920, + 3921, + 3922 ] }, { "teal": 3353, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3350 + 3923 ] }, { "teal": 3354, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3351 + 3924 ] }, { "teal": 3355, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3352 + 3925 ] }, { "teal": 3356, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3353, - 3354 + 3926, + 3927 ] }, { "teal": 3357, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3355 + 3928 ] }, { "teal": 3358, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3356 + 3929 ] }, { "teal": 3359, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3357 + 3930, + 3931 ] }, { "teal": 3360, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3358 + 3932 ] }, { "teal": 3361, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3359 + 3933 ] }, { "teal": 3362, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3360 + 3934, + 3935, + 3936 ] }, { "teal": 3363, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3361, - 3362 + 3937, + 3938 ] }, { "teal": 3364, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3363, - 3364, - 3365 + 3939, + 3940, + 3941 ] }, { "teal": 3365, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3366 + 3942 ] }, { "teal": 3366, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3367 + 3943 ] }, { "teal": 3367, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3368 + 3944 ] }, { "teal": 3368, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3369, - 3370 + 3945, + 3946 ] }, { "teal": 3369, - "source": 905, + "source": "examples/reti/validatorRegistry.algo.ts:905", "pc": [ - 3371 + 3947 ] }, { "teal": 3375, - "source": 908, + "source": "examples/reti/validatorRegistry.algo.ts:908", "pc": [ - 3372, - 3373 + 3948, + 3949 ] }, { "teal": 3376, - "source": 908, + "source": "examples/reti/validatorRegistry.algo.ts:908", "pc": [ - 3374, - 3375, - 3376 + 3950, + 3951, + 3952 ] }, { "teal": 3381, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3377, - 3378 + 3953, + 3954, + 3955, + 3956, + 3957, + 3958, + 3959, + 3960, + 3961, + 3962, + 3963, + 3964 ] }, { "teal": 3382, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3379 + 3965 ] }, { "teal": 3383, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3380 + 3966, + 3967 ] }, { "teal": 3384, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3381 + 3968 ] }, { "teal": 3385, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3382, - 3383 + 3969, + 3970, + 3971, + 3972, + 3973, + 3974, + 3975, + 3976, + 3977, + 3978, + 3979, + 3980 ] }, { "teal": 3386, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3384 + 3981 ] }, { "teal": 3387, - "source": 909, + "source": "examples/reti/validatorRegistry.algo.ts:909", "pc": [ - 3385 + 3982 ] }, { "teal": 3392, - "source": 829, + "source": "examples/reti/validatorRegistry.algo.ts:829", "pc": [ - 3386 + 3983 ] }, { "teal": 3397, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3387 + 3984, + 3985, + 3986, + 3987, + 3988, + 3989 ] }, { "teal": 3400, - "source": 928, + "source": "examples/reti/validatorRegistry.algo.ts:928", "pc": [ - 3388, - 3389, - 3390 + 3990, + 3991, + 3992 ] }, { "teal": 3401, - "source": 928, + "source": "examples/reti/validatorRegistry.algo.ts:928", "pc": [ - 3391 + 3993 ] }, { "teal": 3404, - "source": 927, + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3392, - 3393, - 3394 + 3994, + 3995, + 3996 ] }, { "teal": 3405, - "source": 927, + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3395 + 3997 ] }, { "teal": 3406, - "source": 927, + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3396 + 3998 ] }, { "teal": 3407, - "source": 927, + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3397, - 3398 + 3999, + 4000 ] }, { "teal": 3408, - "source": 927, + "source": "examples/reti/validatorRegistry.algo.ts:927", "pc": [ - 3399 + 4001 ] }, { "teal": 3411, - "source": 927, + "source": "examples/reti/validatorRegistry.algo.ts:927", "errorMessage": "argument 1 (staker) for findPoolForStaker must be a address", "pc": [ - 3400 + 4002 ] }, { "teal": 3414, - "source": 926, + "source": "examples/reti/validatorRegistry.algo.ts:926", "pc": [ - 3401, - 3402, - 3403 + 4003, + 4004, + 4005 ] }, { "teal": 3415, - "source": 926, + "source": "examples/reti/validatorRegistry.algo.ts:926", "pc": [ - 3404 + 4006 ] }, { "teal": 3418, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3405, - 3406, - 3407 + 4007, + 4008, + 4009 ] }, { "teal": 3419, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3408 + 4010 ] }, { "teal": 3420, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3409 + 4011 ] }, { "teal": 3421, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3410 + 4012, + 4013 ] }, { "teal": 3422, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3411 + 4014 ] }, { "teal": 3436, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3412, - 3413, - 3414 + 4015, + 4016, + 4017 ] }, { "teal": 3439, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3415 + 4018, + 4019 ] }, { "teal": 3440, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3416, - 3417 + 4020, + 4021 ] }, { "teal": 3444, - "source": 930, + "source": "examples/reti/validatorRegistry.algo.ts:930", "pc": [ - 3418 + 4022, + 4023 ] }, { "teal": 3445, - "source": 930, + "source": "examples/reti/validatorRegistry.algo.ts:930", "pc": [ - 3419, - 3420 + 4024, + 4025 ] }, { "teal": 3449, - "source": 931, + "source": "examples/reti/validatorRegistry.algo.ts:931", "pc": [ - 3421 + 4026, + 4027 ] }, { "teal": 3450, - "source": 931, + "source": "examples/reti/validatorRegistry.algo.ts:931", "pc": [ - 3422, - 3423 + 4028, + 4029 ] }, { "teal": 3454, - "source": 939, + "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ - 3424, - 3425 + 4030, + 4031 ] }, { "teal": 3455, - "source": 939, + "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ - 3426, - 3427, - 3428 + 4032, + 4033, + 4034 ] }, { "teal": 3456, - "source": 939, + "source": "examples/reti/validatorRegistry.algo.ts:939", "pc": [ - 3429, - 3430 + 4035, + 4036 ] }, { "teal": 3461, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3431 + 4037, + 4038, + 4039, + 4040, + 4041 ] }, { "teal": 3462, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3432, - 3433 + 4042, + 4043 ] }, { "teal": 3463, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3434 + 4044 ] }, { "teal": 3464, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3435 + 4045 ] }, { "teal": 3465, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3436 + 4046 ] }, { "teal": 3466, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3437 + 4047 ] }, { "teal": 3467, - "source": 942, + "source": "examples/reti/validatorRegistry.algo.ts:942", "pc": [ - 3438, - 3439, - 3440 + 4048, + 4049, + 4050 ] }, { "teal": 3472, - "source": 943, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3441 + 4051, + 4052, + 4053, + 4054, + 4055 ] }, { "teal": 3473, - "source": 943, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3442, - 3443 + 4056, + 4057 ] }, { "teal": 3474, - "source": 943, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3444 + 4058 ] }, { "teal": 3475, - "source": 943, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3445 + 4059 ] }, { "teal": 3478, - "source": 943, + "source": "examples/reti/validatorRegistry.algo.ts:943", "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 3446 + 4060 ] }, { "teal": 3479, - "source": 943, + "source": "examples/reti/validatorRegistry.algo.ts:943", "pc": [ - 3447, - 3448 + 4061, + 4062 ] }, { "teal": 3483, - "source": 944, + "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3449, - 3450 + 4063, + 4064 ] }, { "teal": 3484, - "source": 944, + "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3451 + 4065, + 4066 ] }, { "teal": 3485, - "source": 944, + "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3452 + 4067 ] }, { "teal": 3486, - "source": 944, + "source": "examples/reti/validatorRegistry.algo.ts:944", "pc": [ - 3453 + 4068 ] }, { "teal": 3490, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3454 + 4069, + 4070 ] }, { "teal": 3491, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3455, - 3456 + 4071, + 4072 ] }, { "teal": 3496, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3457, - 3458 + 4073, + 4074 ] }, { "teal": 3497, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3459, - 3460 + 4075, + 4076 ] }, { "teal": 3498, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3461 + 4077 ] }, { "teal": 3499, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3462, - 3463, - 3464 + 4078, + 4079, + 4080 ] }, { "teal": 3504, - "source": 946, + "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3465, - 3466 + 4081, + 4082 ] }, { "teal": 3505, - "source": 946, + "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3467, - 3468 + 4083, + 4084, + 4085 ] }, { "teal": 3506, - "source": 946, + "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3469 + 4086 ] }, { "teal": 3507, - "source": 946, + "source": "examples/reti/validatorRegistry.algo.ts:946", "pc": [ - 3470, - 3471, - 3472 + 4087, + 4088, + 4089 ] }, { "teal": 3512, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3473 + 4090 ] }, { "teal": 3513, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3474, - 3475 + 4091, + 4092 ] }, { "teal": 3514, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3476, - 3477 + 4093, + 4094 ] }, { "teal": 3515, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3478 + 4095, + 4096 ] }, { "teal": 3516, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3479, - 3480 + 4097, + 4098 ] }, { "teal": 3517, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3481, - 3482 + 4099, + 4100, + 4101, + 4102, + 4103 ] }, { "teal": 3518, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3483 + 4104 ] }, { "teal": 3519, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3484, - 3485 + 4105, + 4106 ] }, { "teal": 3520, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3486, - 3487 + 4107, + 4108 ] }, { "teal": 3521, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3488, - 3489 + 4109, + 4110 ] }, { "teal": 3522, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3490, - 3491 + 4111, + 4112 ] }, { "teal": 3523, - "source": 947, + "source": "examples/reti/validatorRegistry.algo.ts:947", "pc": [ - 3492 + 4113 ] }, { "teal": 3529, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3493, - 3494 + 4114, + 4115 ] }, { "teal": 3530, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3495, - 3496 + 4116, + 4117 ] }, { "teal": 3531, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3497 + 4118, + 4119 ] }, { "teal": 3532, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3498 + 4120 ] }, { "teal": 3533, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3499 + 4121, + 4122 ] }, { "teal": 3534, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3500 + 4123 ] }, { "teal": 3535, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3501 + 4124, + 4125 ] }, { "teal": 3536, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3502 + 4126 ] }, { "teal": 3537, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3503 + 4127 ] }, { "teal": 3538, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3504 + 4128, + 4129 ] }, { "teal": 3539, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3505 + 4130 ] }, { "teal": 3540, - "source": 949, + "source": "examples/reti/validatorRegistry.algo.ts:949", "pc": [ - 3506, - 3507, - 3508 + 4131, + 4132, + 4133 ] }, { "teal": 3543, - "source": 950, + "source": "examples/reti/validatorRegistry.algo.ts:950", "pc": [ - 3509, - 3510, - 3511 + 4134, + 4135, + 4136 ] }, { "teal": 3548, - "source": 952, + "source": "examples/reti/validatorRegistry.algo.ts:952", "pc": [ - 3512 + 4137, + 4138 ] }, { "teal": 3549, - "source": 952, + "source": "examples/reti/validatorRegistry.algo.ts:952", "pc": [ - 3513, - 3514 + 4139, + 4140 ] }, { "teal": 3554, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3515, - 3516 + 4141, + 4142 ] }, { "teal": 3555, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3517, - 3518 + 4143, + 4144 ] }, { "teal": 3556, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3519 + 4145, + 4146 ] }, { "teal": 3557, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3520 + 4147 ] }, { "teal": 3558, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3521 + 4148, + 4149 ] }, { "teal": 3559, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3522 + 4150 ] }, { "teal": 3560, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3523 + 4151, + 4152 ] }, { "teal": 3561, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3524 + 4153 ] }, { "teal": 3562, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3525 + 4154 ] }, { "teal": 3563, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3526, - 3527 + 4155, + 4156 ] }, { "teal": 3564, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3528 + 4157 ] }, { "teal": 3565, - "source": 953, + "source": "examples/reti/validatorRegistry.algo.ts:953", "pc": [ - 3529, - 3530, - 3531 + 4158, + 4159, + 4160 ] }, { "teal": 3570, - "source": 955, + "source": "examples/reti/validatorRegistry.algo.ts:955", "pc": [ - 3532 + 4161, + 4162 ] }, { "teal": 3571, - "source": 955, + "source": "examples/reti/validatorRegistry.algo.ts:955", "pc": [ - 3533, - 3534 + 4163, + 4164 ] }, { "teal": 3577, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3535, - 3536 + 4165, + 4166, + 4167 ] }, { "teal": 3578, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3537, - 3538 + 4168, + 4169 ] }, { "teal": 3579, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3539, - 3540 + 4170, + 4171 ] }, { "teal": 3580, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3541 + 4172, + 4173 ] }, { "teal": 3581, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3542 + 4174 ] }, { "teal": 3582, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3543 + 4175, + 4176 ] }, { "teal": 3583, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3544 + 4177 ] }, { "teal": 3584, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3545 + 4178, + 4179 ] }, { "teal": 3585, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3546 + 4180 ] }, { "teal": 3586, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3547 + 4181 ] }, { "teal": 3587, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3548 + 4182, + 4183 ] }, { "teal": 3588, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3549 + 4184 ] }, { "teal": 3589, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3550, - 3551 + 4185, + 4186 ] }, { "teal": 3590, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3552 + 4187 ] }, { "teal": 3591, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3553 + 4188 ] }, { "teal": 3592, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3554, - 3555 + 4189, + 4190 ] }, { "teal": 3593, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3556 + 4191 ] }, { "teal": 3594, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3557 + 4192, + 4193 ] }, { "teal": 3595, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3558 + 4194, + 4195, + 4196 ] }, { "teal": 3596, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3559, - 3560 + 4197, + 4198 ] }, { "teal": 3597, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3561 + 4199 ] }, { "teal": 3598, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3562 + 4200 ] }, { "teal": 3599, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3563, - 3564 + 4201, + 4202 ] }, { "teal": 3600, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3565 + 4203 ] }, { "teal": 3601, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3566 + 4204 ] }, { "teal": 3602, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3567, - 3568 + 4205, + 4206 ] }, { "teal": 3603, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3569 + 4207 ] }, { "teal": 3604, - "source": 958, + "source": "examples/reti/validatorRegistry.algo.ts:958", "pc": [ - 3570, - 3571 + 4208, + 4209 ] }, { "teal": 3605, - "source": 957, + "source": "examples/reti/validatorRegistry.algo.ts:957", "pc": [ - 3572 + 4210 ] }, { "teal": 3606, - "source": 956, + "source": "examples/reti/validatorRegistry.algo.ts:956", "pc": [ - 3573, - 3574, - 3575 + 4211, + 4212, + 4213 ] }, { "teal": 3611, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3576, - 3577 + 4214, + 4215 ] }, { "teal": 3612, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3578, - 3579 + 4216, + 4217 ] }, { "teal": 3613, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3580 + 4218, + 4219 ] }, { "teal": 3614, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3581 + 4220 ] }, { "teal": 3615, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3582 + 4221, + 4222 ] }, { "teal": 3616, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3583 + 4223 ] }, { "teal": 3617, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3584, - 3585 + 4224, + 4225, + 4226 ] }, { "teal": 3618, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3586 + 4227, + 4228 ] }, { "teal": 3619, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3587, - 3588 + 4229, + 4230 ] }, { "teal": 3620, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3589 + 4231 ] }, { "teal": 3621, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3590 + 4232, + 4233 ] }, { "teal": 3622, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3591, - 3592 + 4234, + 4235 ] }, { "teal": 3623, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3593 + 4236 ] }, { "teal": 3624, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3594 + 4237 ] }, { "teal": 3625, - "source": 960, + "source": "examples/reti/validatorRegistry.algo.ts:960", "pc": [ - 3595, - 3596, - 3597 + 4238, + 4239, + 4240 ] }, { "teal": 3634, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3598, - 3599 + 4241, + 4242 ] }, { "teal": 3635, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3600 + 4243, + 4244 ] }, { "teal": 3636, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3601 + 4245 ] }, { "teal": 3637, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3602, - 3603 + 4246, + 4247 ] }, { "teal": 3638, - "source": 945, + "source": "examples/reti/validatorRegistry.algo.ts:945", "pc": [ - 3604, - 3605, - 3606 + 4248, + 4249, + 4250 ] }, { "teal": 3648, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3607, - 3608 + 4251, + 4252 ] }, { "teal": 3649, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3609, - 3610 + 4253, + 4254, + 4255 ] }, { "teal": 3650, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3611 + 4256, + 4257 ] }, { "teal": 3651, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3612 + 4258, + 4259, + 4260 ] }, { "teal": 3652, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3613, - 3614 + 4261, + 4262 ] }, { "teal": 3653, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3615 + 4263 ] }, { "teal": 3654, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3616 + 4264 ] }, { "teal": 3655, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3617, - 3618 + 4265, + 4266 ] }, { "teal": 3656, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3619 + 4267 ] }, { "teal": 3657, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3620 + 4268 ] }, { "teal": 3658, - "source": 968, + "source": "examples/reti/validatorRegistry.algo.ts:968", "pc": [ - 3621 + 4269 ] }, { "teal": 3661, - "source": 967, + "source": "examples/reti/validatorRegistry.algo.ts:967", "errorMessage": "must stake at least the minimum for this pool", "pc": [ - 3622 + 4270 ] }, { "teal": 3665, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3623, - 3624 + 4271, + 4272, + 4273 ] }, { "teal": 3666, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3625, - 3626 + 4274, + 4275, + 4276 ] }, { "teal": 3667, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3627 + 4277, + 4278, + 4279 ] }, { "teal": 3668, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3628, - 3629 + 4280, + 4281 ] }, { "teal": 3669, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3630 + 4282 ] }, { "teal": 3670, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3631 + 4283 ] }, { "teal": 3671, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3632, - 3633 + 4284, + 4285 ] }, { "teal": 3672, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3634 + 4286 ] }, { "teal": 3673, - "source": 973, + "source": "examples/reti/validatorRegistry.algo.ts:973", "pc": [ - 3635, - 3636 + 4287, + 4288 ] }, { "teal": 3677, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3637, - 3638 + 4289, + 4290, + 4291 ] }, { "teal": 3678, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3639, - 3640 + 4292, + 4293 ] }, { "teal": 3679, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3641 + 4294, + 4295, + 4296 ] }, { "teal": 3680, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3642, - 3643 + 4297, + 4298 ] }, { "teal": 3681, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3644 + 4299 ] }, { "teal": 3682, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3645 + 4300 ] }, { "teal": 3683, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3646, - 3647 + 4301, + 4302 ] }, { "teal": 3684, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3648 + 4303 ] }, { "teal": 3685, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3649 + 4304 ] }, { "teal": 3686, - "source": 974, + "source": "examples/reti/validatorRegistry.algo.ts:974", "pc": [ - 3650, - 3651 + 4305, + 4306 ] }, { "teal": 3690, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3652 + 4307, + 4308 ] }, { "teal": 3691, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3653, - 3654 + 4309, + 4310 ] }, { "teal": 3696, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3655, - 3656 + 4311, + 4312 ] }, { "teal": 3697, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3657, - 3658 + 4313, + 4314 ] }, { "teal": 3698, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3659 + 4315 ] }, { "teal": 3699, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3660, - 3661, - 3662 + 4316, + 4317, + 4318 ] }, { "teal": 3704, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3663, - 3664 + 4319, + 4320 ] }, { "teal": 3705, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3665, - 3666 + 4321, + 4322 ] }, { "teal": 3706, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3667, - 3668 + 4323, + 4324 ] }, { "teal": 3707, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3669 + 4325 ] }, { "teal": 3708, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3670, - 3671 + 4326, + 4327 ] }, { "teal": 3709, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3672 + 4328 ] }, { "teal": 3710, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3673 + 4329, + 4330 ] }, { "teal": 3711, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3674 + 4331 ] }, { "teal": 3712, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3675 + 4332 ] }, { "teal": 3713, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3676, - 3677 + 4333, + 4334 ] }, { "teal": 3714, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3678 + 4335 ] }, { "teal": 3715, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3679, - 3680 + 4336, + 4337 ] }, { "teal": 3716, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3681 + 4338 ] }, { "teal": 3717, - "source": 976, + "source": "examples/reti/validatorRegistry.algo.ts:976", "pc": [ - 3682, - 3683, - 3684 + 4339, + 4340, + 4341 ] }, { "teal": 3726, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3685, - 3686 + 4342, + 4343 ] }, { "teal": 3727, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3687 + 4344 ] }, { "teal": 3728, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3688, - 3689 + 4345, + 4346 ] }, { "teal": 3729, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3690 + 4347, + 4348 ] }, { "teal": 3730, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3691 + 4349 ] }, { "teal": 3731, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3692 + 4350 ] }, { "teal": 3732, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3693 + 4351 ] }, { "teal": 3733, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3694, - 3695 + 4352, + 4353 ] }, { "teal": 3734, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3696, - 3697 + 4354, + 4355 ] }, { "teal": 3735, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3698, - 3699 + 4356, + 4357 ] }, { "teal": 3736, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3700 + 4358 ] }, { "teal": 3737, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3701 + 4359, + 4360 ] }, { "teal": 3738, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3702 + 4361 ] }, { "teal": 3739, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3703 + 4362, + 4363 ] }, { "teal": 3740, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3704 + 4364 ] }, { "teal": 3741, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3705 + 4365 ] }, { "teal": 3742, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3706 + 4366 ] }, { "teal": 3743, - "source": 978, + "source": "examples/reti/validatorRegistry.algo.ts:978", "pc": [ - 3707 + 4367 ] }, { "teal": 3744, - "source": 979, + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3708, - 3709 + 4368, + 4369, + 4370 ] }, { "teal": 3745, - "source": 979, + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3710 + 4371, + 4372 ] }, { "teal": 3746, - "source": 979, + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3711, - 3712 + 4373, + 4374 ] }, { "teal": 3747, - "source": 979, + "source": "examples/reti/validatorRegistry.algo.ts:979", "pc": [ - 3713 + 4375 ] }, { "teal": 3748, - "source": 980, + "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3714 + 4376, + 4377 ] }, { "teal": 3749, - "source": 980, + "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3715, - 3716 + 4378, + 4379 ] }, { "teal": 3750, - "source": 980, + "source": "examples/reti/validatorRegistry.algo.ts:980", "pc": [ - 3717 + 4380 ] }, { "teal": 3751, - "source": 977, + "source": "examples/reti/validatorRegistry.algo.ts:977", "pc": [ - 3718 + 4381 ] }, { "teal": 3752, - "source": 977, + "source": "examples/reti/validatorRegistry.algo.ts:977", "pc": [ - 3719, - 3720, - 3721 + 4382, + 4383, + 4384 ] }, { "teal": 3759, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3722, - 3723 + 4385, + 4386 ] }, { "teal": 3760, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3724 + 4387, + 4388 ] }, { "teal": 3761, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3725 + 4389 ] }, { "teal": 3762, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3726, - 3727 + 4390, + 4391 ] }, { "teal": 3763, - "source": 975, + "source": "examples/reti/validatorRegistry.algo.ts:975", "pc": [ - 3728, - 3729, - 3730 + 4392, + 4393, + 4394 ] }, { "teal": 3768, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3731, - 3732 + 4395, + 4396 ] }, { "teal": 3769, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3733 + 4397 ] }, { "teal": 3770, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3734, - 3735 + 4398, + 4399, + 4400, + 4401, + 4402, + 4403, + 4404, + 4405, + 4406, + 4407 ] }, { "teal": 3771, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3736 + 4408 ] }, { "teal": 3772, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3737, - 3738 + 4409, + 4410, + 4411, + 4412, + 4413, + 4414, + 4415, + 4416, + 4417, + 4418 ] }, { "teal": 3773, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3739 + 4419 ] }, { "teal": 3774, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3740, - 3741 + 4420, + 4421, + 4422 ] }, { "teal": 3775, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3742 + 4423, + 4424 ] }, { "teal": 3776, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3743, - 3744 + 4425, + 4426 ] }, { "teal": 3777, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3745 + 4427 ] }, { "teal": 3778, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3746 + 4428, + 4429 ] }, { "teal": 3779, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3747, - 3748 + 4430, + 4431 ] }, { "teal": 3780, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3749 + 4432 ] }, { "teal": 3781, - "source": 985, + "source": "examples/reti/validatorRegistry.algo.ts:985", "pc": [ - 3750 + 4433 ] }, { "teal": 3785, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3751, - 3752 + 4434, + 4435 ] }, { "teal": 3788, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3753, - 3754 + 4436, + 4437 ] }, { "teal": 3789, - "source": 925, + "source": "examples/reti/validatorRegistry.algo.ts:925", "pc": [ - 3755 + 4438 ] }, { "teal": 3794, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3756, - 3757, - 3758 + 4439, + 4440, + 4441 ] }, { "teal": 3795, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3759 + 4442 ] }, { "teal": 3798, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3760, - 3761, - 3762 + 4443, + 4444, + 4445 ] }, { "teal": 3799, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3763 + 4446 ] }, { "teal": 3802, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3764, - 3765, - 3766 + 4447, + 4448, + 4449 ] }, { "teal": 3803, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3767 + 4450 ] }, { "teal": 3806, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3768, - 3769, - 3770 + 4451, + 4452, + 4453 ] }, { "teal": 3807, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3771 + 4454, + 4455 ] }, { "teal": 3808, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3772 + 4456 ] }, { "teal": 3822, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3773, - 3774, - 3775 + 4457, + 4458, + 4459 ] }, { "teal": 3825, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3776 + 4460, + 4461 ] }, { "teal": 3826, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3777, - 3778 + 4462, + 4463 ] }, { "teal": 3834, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3779, - 3780 + 4464, + 4465 ] }, { "teal": 3835, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3781 + 4466, + 4467 ] }, { "teal": 3836, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3782, - 3783 + 4468, + 4469 ] }, { "teal": 3837, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3784 + 4470, + 4471, + 4472 ] }, { "teal": 3838, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3785, - 3786 + 4473, + 4474 ] }, { "teal": 3839, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3787 + 4475 ] }, { "teal": 3840, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3788 + 4476 ] }, { "teal": 3841, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3789, - 3790 + 4477, + 4478 ] }, { "teal": 3842, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3791 + 4479 ] }, { "teal": 3843, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3792 + 4480 ] }, { "teal": 3844, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3793 + 4481 ] }, { "teal": 3845, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3794, - 3795, - 3796 + 4482, + 4483, + 4484 ] }, { "teal": 3846, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3797, - 3798 + 4485, + 4486 ] }, { "teal": 3847, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3799, - 3800 + 4487, + 4488 ] }, { "teal": 3848, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3801, - 3802 + 4489, + 4490 ] }, { "teal": 3849, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3803 + 4491, + 4492, + 4493 ] }, { "teal": 3850, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3804, - 3805 + 4494, + 4495 ] }, { "teal": 3851, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3806 + 4496 ] }, { "teal": 3852, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3807 + 4497 ] }, { "teal": 3853, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3808, - 3809 + 4498, + 4499 ] }, { "teal": 3854, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3810 + 4500 ] }, { "teal": 3855, - "source": 1003, + "source": "examples/reti/validatorRegistry.algo.ts:1003", "pc": [ - 3811 + 4501 ] }, { "teal": 3856, - "source": 1002, + "source": "examples/reti/validatorRegistry.algo.ts:1002", "pc": [ - 3812 + 4502 ] }, { "teal": 3860, - "source": 1001, + "source": "examples/reti/validatorRegistry.algo.ts:1001", "errorMessage": "can only be called by owner or manager of validator", "pc": [ - 3813 + 4503 ] }, { "teal": 3864, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3814, - 3815 + 4504, + 4505, + 4506 ] }, { "teal": 3865, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3816, - 3817 + 4507, + 4508, + 4509 ] }, { "teal": 3866, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3818 + 4510, + 4511, + 4512 ] }, { "teal": 3867, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3819, - 3820 + 4513, + 4514 ] }, { "teal": 3868, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3821 + 4515 ] }, { "teal": 3869, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3822 + 4516 ] }, { "teal": 3870, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3823, - 3824 + 4517, + 4518 ] }, { "teal": 3871, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3825 + 4519 ] }, { "teal": 3872, - "source": 1007, + "source": "examples/reti/validatorRegistry.algo.ts:1007", "pc": [ - 3826, - 3827 + 4520, + 4521 ] }, { "teal": 3876, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3828, - 3829 + 4522, + 4523 ] }, { "teal": 3877, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3830 + 4524, + 4525 ] }, { "teal": 3878, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3831 + 4526 ] }, { "teal": 3879, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3832 + 4527 ] }, { "teal": 3880, - "source": 1008, - "pc": [ - 3833, - 3834, - 3835 + "source": "examples/reti/validatorRegistry.algo.ts:1008", + "pc": [ + 4528, + 4529, + 4530 ] }, { "teal": 3881, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3836, - 3837 + 4531, + 4532 ] }, { "teal": 3882, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3838 + 4533, + 4534 ] }, { "teal": 3883, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3839 + 4535 ] }, { "teal": 3884, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "pc": [ - 3840 + 4536 ] }, { "teal": 3888, - "source": 1008, + "source": "examples/reti/validatorRegistry.algo.ts:1008", "errorMessage": "node number out of allowable range", "pc": [ - 3841 + 4537 ] }, { "teal": 3892, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3842 + 4538, + 4539 ] }, { "teal": 3893, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3843, - 3844 + 4540, + 4541 ] }, { "teal": 3898, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3845, - 3846 + 4542, + 4543 ] }, { "teal": 3899, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3847 + 4544, + 4545 ] }, { "teal": 3900, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3848 + 4546 ] }, { "teal": 3901, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3849, - 3850, - 3851 + 4547, + 4548, + 4549 ] }, { "teal": 3905, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3852 + 4550, + 4551 ] }, { "teal": 3906, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3853, - 3854 + 4552, + 4553 ] }, { "teal": 3911, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3855, - 3856 + 4554, + 4555 ] }, { "teal": 3912, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3857, - 3858 + 4556, + 4557 ] }, { "teal": 3913, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3859 + 4558 ] }, { "teal": 3914, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3860, - 3861, - 3862 + 4559, + 4560, + 4561 ] }, { "teal": 3919, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3863, - 3864 + 4562, + 4563 ] }, { "teal": 3920, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3865 + 4564, + 4565 ] }, { "teal": 3921, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3866, - 3867 + 4566, + 4567 ] }, { "teal": 3922, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3868 + 4568, + 4569 ] }, { "teal": 3923, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3869 + 4570 ] }, { "teal": 3924, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3870 + 4571 ] }, { "teal": 3925, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3871 + 4572, + 4573 ] }, { "teal": 3926, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3872 + 4574 ] }, { "teal": 3927, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3873, - 3874 + 4575, + 4576 ] }, { "teal": 3928, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3875 + 4577, + 4578 ] }, { "teal": 3929, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3876 + 4579 ] }, { "teal": 3930, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3877 + 4580 ] }, { "teal": 3931, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3878 + 4581, + 4582 ] }, { "teal": 3932, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3879 + 4583 ] }, { "teal": 3933, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3880 + 4584 ] }, { "teal": 3934, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3881, - 3882 + 4585, + 4586 ] }, { "teal": 3935, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3883 + 4587 ] }, { "teal": 3936, - "source": 1012, + "source": "examples/reti/validatorRegistry.algo.ts:1012", "pc": [ - 3884, - 3885, - 3886 + 4588, + 4589, + 4590 ] }, { "teal": 3941, - "source": 1013, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3887, - 3888 + 4591, + 4592 ] }, { "teal": 3942, - "source": 1013, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3889 + 4593, + 4594 ] }, { "teal": 3943, - "source": 1013, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3890 + 4595 ] }, { "teal": 3944, - "source": 1013, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3891, - 3892 + 4596, + 4597 ] }, { "teal": 3945, - "source": 1013, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "pc": [ - 3893 + 4598 ] }, { "teal": 3948, - "source": 1013, + "source": "examples/reti/validatorRegistry.algo.ts:1013", "errorMessage": "can't move to same node", "pc": [ - 3894 + 4599 ] }, { "teal": 3952, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3895, - 3896 + 4600, + 4601, + 4602 ] }, { "teal": 3953, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3897, - 3898 + 4603, + 4604 ] }, { "teal": 3954, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3899 + 4605, + 4606 ] }, { "teal": 3955, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3900 + 4607 ] }, { "teal": 3956, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3901 + 4608 ] }, { "teal": 3957, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3902 + 4609, + 4610 ] }, { "teal": 3958, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3903 + 4611 ] }, { "teal": 3959, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3904, - 3905 + 4612, + 4613 ] }, { "teal": 3960, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3906 + 4614, + 4615 ] }, { "teal": 3961, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3907 + 4616 ] }, { "teal": 3962, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3908 + 4617 ] }, { "teal": 3963, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3909, - 3910 + 4618, + 4619, + 4620, + 4621, + 4622, + 4623, + 4624, + 4625, + 4626, + 4627 ] }, { "teal": 3964, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3911 + 4628, + 4629, + 4630 ] }, { "teal": 3965, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3912, - 3913 + 4631, + 4632 ] }, { "teal": 3966, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3914 + 4633 ] }, { "teal": 3967, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3915 + 4634 ] }, { "teal": 3968, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3916, - 3917 + 4635, + 4636 ] }, { "teal": 3969, - "source": 1015, + "source": "examples/reti/validatorRegistry.algo.ts:1015", "pc": [ - 3918 + 4637 ] }, { "teal": 3975, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3919 + 4638 ] }, { "teal": 3976, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3920, - 3921 + 4639, + 4640 ] }, { "teal": 3977, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3922, - 3923 + 4641, + 4642 ] }, { "teal": 3978, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3924, - 3925, - 3926, - 3927, - 3928, - 3929 + 4643, + 4644, + 4645, + 4646, + 4647, + 4648 ] }, { "teal": 3979, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3930, - 3931 + 4649, + 4650 ] }, { "teal": 3983, - "source": 1019, + "source": "examples/reti/validatorRegistry.algo.ts:1019", "pc": [ - 3932, - 3933 + 4651, + 4652 ] }, { "teal": 3984, - "source": 1019, + "source": "examples/reti/validatorRegistry.algo.ts:1019", "pc": [ - 3934, - 3935 + 4653, + 4654 ] }, { "teal": 3987, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3936 + 4655, + 4656 ] }, { "teal": 3988, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3937, - 3938 + 4657, + 4658 ] }, { "teal": 3991, - "source": 1018, + "source": "examples/reti/validatorRegistry.algo.ts:1018", "pc": [ - 3939 + 4659 ] }, { "teal": 3995, - "source": 1023, + "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ - 3940, - 3941 + 4660, + 4661 ] }, { "teal": 3996, - "source": 1023, + "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ - 3942, - 3943 + 4662, + 4663 ] }, { "teal": 3997, - "source": 1023, + "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ - 3944, - 3945 + 4664, + 4665 ] }, { "teal": 3998, - "source": 1023, + "source": "examples/reti/validatorRegistry.algo.ts:1023", "pc": [ - 3946, - 3947, - 3948 + 4666, + 4667, + 4668 ] }, { "teal": 4002, - "source": 1024, + "source": "examples/reti/validatorRegistry.algo.ts:1024", "pc": [ - 3949 + 4669 ] }, { "teal": 4009, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3950, - 3951 + 4670, + 4671 ] }, { "teal": 4010, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3952 + 4672, + 4673 ] }, { "teal": 4011, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3953 + 4674 ] }, { "teal": 4012, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3954, - 3955 + 4675, + 4676 ] }, { "teal": 4013, - "source": 1011, + "source": "examples/reti/validatorRegistry.algo.ts:1011", "pc": [ - 3956, - 3957, - 3958 + 4677, + 4678, + 4679 ] }, { "teal": 4020, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3959, - 3960 + 4680, + 4681 ] }, { "teal": 4021, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3961 + 4682, + 4683 ] }, { "teal": 4022, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3962 + 4684 ] }, { "teal": 4023, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3963, - 3964 + 4685, + 4686 ] }, { "teal": 4024, - "source": 1010, + "source": "examples/reti/validatorRegistry.algo.ts:1010", "pc": [ - 3965, - 3966, - 3967 + 4687, + 4688, + 4689 ] }, { "teal": 4028, - "source": 1028, + "source": "examples/reti/validatorRegistry.algo.ts:1028", "errorMessage": "couldn't find pool app id in nodes to move", "pc": [ - 3968 + 4690 ] }, { "teal": 4029, - "source": 999, + "source": "examples/reti/validatorRegistry.algo.ts:999", "pc": [ - 3969 + 4691 ] }, { "teal": 4034, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3970 + 4692, + 4693, + 4694, + 4695, + 4696, + 4697 ] }, { "teal": 4037, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3971, - 3972, - 3973 + 4698, + 4699, + 4700 ] }, { "teal": 4038, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3974 + 4701 ] }, { "teal": 4039, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3975 + 4702 ] }, { "teal": 4040, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3976, - 3977 + 4703, + 4704 ] }, { "teal": 4041, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3978 + 4705 ] }, { "teal": 4044, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "errorMessage": "argument 0 (receiver) for emptyTokenRewards must be a address", "pc": [ - 3979 + 4706 ] }, { "teal": 4047, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3980, - 3981, - 3982 + 4707, + 4708, + 4709 ] }, { "teal": 4048, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3983 + 4710 ] }, { "teal": 4051, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3984, - 3985, - 3986 + 4711, + 4712, + 4713 ] }, { "teal": 4052, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3987 + 4714 ] }, { "teal": 4053, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3988 + 4715 ] }, { "teal": 4054, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3989 + 4716 ] }, { "teal": 4055, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3990 + 4717, + 4718 ] }, { "teal": 4056, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3991 + 4719 ] }, { "teal": 4070, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3992, - 3993, - 3994 + 4720, + 4721, + 4722 ] }, { "teal": 4073, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3995 + 4723, + 4724 ] }, { "teal": 4074, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 3996, - 3997 + 4725, + 4726 ] }, { "teal": 4081, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 3998, - 3999 + 4727, + 4728 ] }, { "teal": 4082, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4000 + 4729, + 4730 ] }, { "teal": 4083, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4001, - 4002 + 4731, + 4732 ] }, { "teal": 4084, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4003 + 4733, + 4734, + 4735 ] }, { "teal": 4085, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4004, - 4005 + 4736, + 4737 ] }, { "teal": 4086, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4006 + 4738 ] }, { "teal": 4087, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4007 + 4739 ] }, { "teal": 4088, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4008, - 4009 + 4740, + 4741 ] }, { "teal": 4089, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4010 + 4742 ] }, { "teal": 4090, - "source": 1044, + "source": "examples/reti/validatorRegistry.algo.ts:1044", "pc": [ - 4011 + 4743 ] }, { "teal": 4093, - "source": 1043, + "source": "examples/reti/validatorRegistry.algo.ts:1043", "errorMessage": "can only be called by validator owner", "pc": [ - 4012 + 4744 ] }, { "teal": 4097, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4013, - 4014 + 4745, + 4746, + 4747 ] }, { "teal": 4098, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4015 + 4748, + 4749 ] }, { "teal": 4099, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4016 + 4750, + 4751, + 4752 ] }, { "teal": 4100, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4017, - 4018 + 4753, + 4754 ] }, { "teal": 4101, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4019 + 4755 ] }, { "teal": 4102, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4020 + 4756 ] }, { "teal": 4103, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4021, - 4022 + 4757, + 4758 ] }, { "teal": 4104, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4023 + 4759 ] }, { "teal": 4105, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4024 + 4760 ] }, { "teal": 4106, - "source": 1047, + "source": "examples/reti/validatorRegistry.algo.ts:1047", "pc": [ - 4025, - 4026 + 4761, + 4762 ] }, { "teal": 4110, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4027, - 4028 + 4763, + 4764, + 4765 ] }, { "teal": 4111, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4029 + 4766, + 4767 ] }, { "teal": 4112, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4030 + 4768, + 4769, + 4770 ] }, { "teal": 4113, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4031, - 4032 + 4771, + 4772 ] }, { "teal": 4114, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4033 + 4773 ] }, { "teal": 4115, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4034 + 4774 ] }, { "teal": 4116, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4035, - 4036 + 4775, + 4776 ] }, { "teal": 4117, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4037 + 4777 ] }, { "teal": 4118, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4038 + 4778 ] }, { "teal": 4119, - "source": 1048, + "source": "examples/reti/validatorRegistry.algo.ts:1048", "pc": [ - 4039, - 4040 + 4779, + 4780 ] }, { "teal": 4123, - "source": 1049, + "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 4041, - 4042 + 4781, + 4782 ] }, { "teal": 4124, - "source": 1049, + "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 4043 + 4783, + 4784 ] }, { "teal": 4125, - "source": 1049, + "source": "examples/reti/validatorRegistry.algo.ts:1049", "pc": [ - 4044 + 4785 ] }, { "teal": 4128, - "source": 1049, + "source": "examples/reti/validatorRegistry.algo.ts:1049", "errorMessage": "this validator doesn't have a reward token defined", "pc": [ - 4045 + 4786 ] }, { "teal": 4132, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4046, - 4047 + 4787, + 4788, + 4789 ] }, { "teal": 4133, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4048 + 4790, + 4791 ] }, { "teal": 4134, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4049 + 4792, + 4793, + 4794 ] }, { "teal": 4135, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4050, - 4051 + 4795, + 4796 ] }, { "teal": 4136, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4052 + 4797 ] }, { "teal": 4137, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4053 + 4798 ] }, { "teal": 4138, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4054, - 4055 + 4799, + 4800 ] }, { "teal": 4139, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4056 + 4801 ] }, { "teal": 4140, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4057 + 4802 ] }, { "teal": 4141, - "source": 1050, + "source": "examples/reti/validatorRegistry.algo.ts:1050", "pc": [ - 4058, - 4059 + 4803, + 4804 ] }, { "teal": 4145, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4060, - 4061 + 4805, + 4806 ] }, { "teal": 4146, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4062, - 4063 + 4807, + 4808 ] }, { "teal": 4147, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4064 + 4809 ] }, { "teal": 4148, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4065, - 4066 + 4810, + 4811 ] }, { "teal": 4149, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4067, - 4068 + 4812, + 4813 ] }, { "teal": 4150, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4069 + 4814 ] }, { "teal": 4151, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4070, - 4071 + 4815, + 4816 ] }, { "teal": 4152, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4072 + 4817 ] }, { "teal": 4153, - "source": 1052, + "source": "examples/reti/validatorRegistry.algo.ts:1052", "pc": [ - 4073, - 4074 + 4818, + 4819 ] }, { "teal": 4160, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4075 + 4820 ] }, { "teal": 4161, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4076, - 4077 + 4821, + 4822 ] }, { "teal": 4162, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4078, - 4079 + 4823, + 4824 ] }, { "teal": 4163, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4080, - 4081 + 4825, + 4826, + 4827, + 4828, + 4829, + 4830 ] }, { "teal": 4164, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4082, - 4083 + 4831, + 4832 ] }, { "teal": 4168, - "source": 1056, + "source": "examples/reti/validatorRegistry.algo.ts:1056", "pc": [ - 4084, - 4085 + 4833, + 4834 ] }, { "teal": 4169, - "source": 1056, + "source": "examples/reti/validatorRegistry.algo.ts:1056", "pc": [ - 4086, - 4087 + 4835, + 4836 ] }, { "teal": 4173, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4088, - 4089 + 4837, + 4838 ] }, { "teal": 4174, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4090, - 4091 + 4839, + 4840 ] }, { "teal": 4175, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4092, - 4093 + 4841, + 4842 ] }, { "teal": 4176, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4094 + 4843 ] }, { "teal": 4177, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4095, - 4096 + 4844, + 4845 ] }, { "teal": 4178, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4097, - 4098 + 4846, + 4847 ] }, { "teal": 4179, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4099 + 4848 ] }, { "teal": 4180, - "source": 1057, + "source": "examples/reti/validatorRegistry.algo.ts:1057", "pc": [ - 4100, - 4101 + 4849, + 4850 ] }, { "teal": 4183, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4102 + 4851, + 4852 ] }, { "teal": 4184, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4103, - 4104 + 4853, + 4854 ] }, { "teal": 4187, - "source": 1055, + "source": "examples/reti/validatorRegistry.algo.ts:1055", "pc": [ - 4105 + 4855 ] }, { "teal": 4194, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4106, - 4107 + 4856, + 4857 ] }, { "teal": 4195, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4108, - 4109 + 4858, + 4859 ] }, { "teal": 4196, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4110 + 4860 ] }, { "teal": 4197, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4111, - 4112 + 4861, + 4862 ] }, { "teal": 4198, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4113, - 4114 + 4863, + 4864 ] }, { "teal": 4199, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4115 + 4865 ] }, { "teal": 4200, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4116, - 4117 + 4866, + 4867 ] }, { "teal": 4201, - "source": 1060, + "source": "examples/reti/validatorRegistry.algo.ts:1060", "pc": [ - 4118 + 4868 ] }, { "teal": 4204, - "source": 1059, + "source": "examples/reti/validatorRegistry.algo.ts:1059", "errorMessage": "balance of remaining reward tokens should match the held back amount", "pc": [ - 4119 + 4869 ] }, { "teal": 4208, - "source": 1063, + "source": "examples/reti/validatorRegistry.algo.ts:1063", "pc": [ - 4120, - 4121 + 4870, + 4871 ] }, { "teal": 4211, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 4122, - 4123 + 4872, + 4873 ] }, { "teal": 4214, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 4124, - 4125 + 4874, + 4875 ] }, { "teal": 4215, - "source": 1042, + "source": "examples/reti/validatorRegistry.algo.ts:1042", "pc": [ - 4126 + 4876 ] }, { "teal": 4226, - "source": 1160, + "source": "examples/reti/validatorRegistry.algo.ts:1160", "pc": [ - 4127, - 4128, - 4129 + 4877, + 4878, + 4879 ] }, { "teal": 4230, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4130 + 4880, + 4881, + 4882 ] }, { "teal": 4231, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4131, - 4132 + 4883, + 4884 ] }, { "teal": 4232, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4133, - 4134, - 4135 + 4885, + 4886, + 4887 ] }, { "teal": 4233, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4136 + 4888 ] }, { "teal": 4234, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4137 + 4889 ] }, { "teal": 4235, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4138 + 4890 ] }, { "teal": 4236, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4139 + 4891 ] }, { "teal": 4237, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4140 + 4892 ] }, { "teal": 4238, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "pc": [ - 4141 + 4893 ] }, { "teal": 4241, - "source": 1161, + "source": "examples/reti/validatorRegistry.algo.ts:1161", "errorMessage": "the specified validator id isn't valid", "pc": [ - 4142 + 4894 ] }, { "teal": 4245, - "source": 1162, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 4143, - 4144 + 4895, + 4896 ] }, { "teal": 4246, - "source": 1162, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 4145, - 4146, - 4147 + 4897, + 4898, + 4899 ] }, { "teal": 4247, - "source": 1162, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 4148 + 4900 ] }, { "teal": 4248, - "source": 32, + "source": "examples/reti/validatorRegistry.algo.ts:32", "pc": [ - 4149 + 4901, + 4902 ] }, { "teal": 4249, - "source": 1162, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "pc": [ - 4150 + 4903 ] }, { "teal": 4252, - "source": 1162, + "source": "examples/reti/validatorRegistry.algo.ts:1162", "errorMessage": "pool id not in valid range", "pc": [ - 4151 + 4904 ] }, { "teal": 4259, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4152, - 4153 + 4905, + 4906 ] }, { "teal": 4260, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4154, - 4155, - 4156 + 4907, + 4908, + 4909 ] }, { "teal": 4261, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4157 + 4910 ] }, { "teal": 4262, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4158 + 4911, + 4912 ] }, { "teal": 4263, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4159 + 4913 ] }, { "teal": 4264, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4160 + 4914 ] }, { "teal": 4265, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4161, - 4162, - 4163 + 4915, + 4916, + 4917 ] }, { "teal": 4266, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4164, - 4165 + 4918, + 4919 ] }, { "teal": 4267, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4166, - 4167, - 4168 + 4920, + 4921, + 4922 ] }, { "teal": 4268, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4169 + 4923 ] }, { "teal": 4269, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4170, - 4171 + 4924, + 4925, + 4926 ] }, { "teal": 4270, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4172, - 4173 + 4927, + 4928 ] }, { "teal": 4271, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4174 + 4929, + 4930, + 4931 ] }, { "teal": 4272, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4175, - 4176 + 4932, + 4933 ] }, { "teal": 4273, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4177, - 4178, - 4179 + 4934, + 4935, + 4936 ] }, { "teal": 4274, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4180 + 4937 ] }, { "teal": 4275, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4181 + 4938 ] }, { "teal": 4276, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4182 + 4939 ] }, { "teal": 4277, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4183, - 4184 + 4940, + 4941 ] }, { "teal": 4278, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4185 + 4942 ] }, { "teal": 4279, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4186 + 4943 ] }, { "teal": 4280, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4187 + 4944 ] }, { "teal": 4281, - "source": 1164, + "source": "examples/reti/validatorRegistry.algo.ts:1164", "pc": [ - 4188 + 4945 ] }, { "teal": 4285, - "source": 1163, + "source": "examples/reti/validatorRegistry.algo.ts:1163", "errorMessage": "pool id outside of range of pools created for this validator", "pc": [ - 4189 + 4946 ] }, { "teal": 4292, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4190, - 4191 + 4947, + 4948 ] }, { "teal": 4293, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4192, - 4193, - 4194 + 4949, + 4950, + 4951 ] }, { "teal": 4294, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4195 + 4952 ] }, { "teal": 4295, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4196, - 4197 + 4953, + 4954, + 4955 ] }, { "teal": 4296, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4198, - 4199 + 4956, + 4957 ] }, { "teal": 4297, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4200, - 4201, - 4202 + 4958, + 4959, + 4960 ] }, { "teal": 4298, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4203 + 4961 ] }, { "teal": 4299, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4204 + 4962, + 4963 ] }, { "teal": 4300, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4205 + 4964 ] }, { "teal": 4301, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4206, - 4207 + 4965, + 4966 ] }, { "teal": 4302, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4208 + 4967 ] }, { "teal": 4303, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4209 + 4968 ] }, { "teal": 4304, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4210 + 4969, + 4970 ] }, { "teal": 4305, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4211 + 4971 ] }, { "teal": 4306, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4212 + 4972, + 4973 ] }, { "teal": 4307, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4213 + 4974, + 4975, + 4976 ] }, { "teal": 4308, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4214, - 4215 + 4977, + 4978 ] }, { "teal": 4309, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4216, - 4217, - 4218 + 4979, + 4980, + 4981 ] }, { "teal": 4310, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4219 + 4982 ] }, { "teal": 4311, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4220 + 4983 ] }, { "teal": 4312, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4221 + 4984 ] }, { "teal": 4313, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4222, - 4223 + 4985, + 4986 ] }, { "teal": 4314, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4224 + 4987 ] }, { "teal": 4315, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4225 + 4988 ] }, { "teal": 4316, - "source": 1170, + "source": "examples/reti/validatorRegistry.algo.ts:1170", "pc": [ - 4226 + 4989 ] }, { "teal": 4319, - "source": 1169, + "source": "examples/reti/validatorRegistry.algo.ts:1169", "errorMessage": "The passed in app id doesn't match the passed in ids", "pc": [ - 4227 + 4990 ] }, { "teal": 4323, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4228, - 4229 + 4991, + 4992 ] }, { "teal": 4324, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4230, - 4231 + 4993, + 4994 ] }, { "teal": 4325, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4232, - 4233, - 4234 + 4995, + 4996, + 4997 ] }, { "teal": 4326, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4235 + 4998 ] }, { "teal": 4327, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4236, - 4237 + 4999, + 5000 ] }, { "teal": 4328, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4238 + 5001 ] }, { "teal": 4329, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4239 + 5002 ] }, { "teal": 4330, - "source": 1174, + "source": "examples/reti/validatorRegistry.algo.ts:1174", "pc": [ - 4240 + 5003 ] }, { "teal": 4334, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4241, - 4242 + 5004, + 5005 ] }, { "teal": 4335, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4243, - 4244, - 4245 + 5006, + 5007, + 5008 ] }, { "teal": 4336, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4246 + 5009 ] }, { "teal": 4337, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4247, - 4248 + 5010, + 5011 ] }, { "teal": 4338, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4249, - 4250, - 4251 + 5012, + 5013, + 5014 ] }, { "teal": 4339, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4252 + 5015 ] }, { "teal": 4340, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4253, - 4254, - 4255, - 4256, - 4257, - 4258, - 4259, - 4260, - 4261, - 4262, - 4263, - 4264, - 4265 + 5016, + 5017, + 5018, + 5019, + 5020, + 5021, + 5022, + 5023, + 5024, + 5025, + 5026, + 5027, + 5028 ] }, { "teal": 4341, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4266 + 5029 ] }, { "teal": 4344, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('validatorId')", "pc": [ - 4267 + 5030 ] }, { "teal": 4345, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4268 + 5031 ] }, { "teal": 4346, - "source": 1176, + "source": "examples/reti/validatorRegistry.algo.ts:1176", "pc": [ - 4269 + 5032 ] }, { "teal": 4350, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4270, - 4271 + 5033, + 5034 ] }, { "teal": 4351, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4272, - 4273, - 4274 + 5035, + 5036, + 5037 ] }, { "teal": 4352, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4275 + 5038 ] }, { "teal": 4353, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4276, - 4277 + 5039, + 5040 ] }, { "teal": 4354, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4278, - 4279, - 4280 + 5041, + 5042, + 5043 ] }, { "teal": 4355, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4281 + 5044 ] }, { "teal": 4356, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4282, - 4283, - 4284, - 4285, - 4286, - 4287, - 4288, - 4289 + 5045, + 5046, + 5047, + 5048, + 5049, + 5050, + 5051, + 5052 ] }, { "teal": 4357, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4290 + 5053 ] }, { "teal": 4360, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "errorMessage": "global state value does not exist: AppID.fromUint64(poolKey.poolAppId).globalState('poolId')", "pc": [ - 4291 + 5054 ] }, { "teal": 4361, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4292 + 5055 ] }, { "teal": 4362, - "source": 1177, + "source": "examples/reti/validatorRegistry.algo.ts:1177", "pc": [ - 4293 + 5056 ] }, { "teal": 4363, - "source": 1160, + "source": "examples/reti/validatorRegistry.algo.ts:1160", "pc": [ - 4294 + 5057 ] }, { "teal": 4372, - "source": 1186, + "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4295, - 4296, - 4297 + 5058, + 5059, + 5060 ] }, { "teal": 4375, - "source": 1186, + "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4298 + 5061, + 5062 ] }, { "teal": 4376, - "source": 1186, + "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4299 + 5063 ] }, { "teal": 4380, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4300 + 5064, + 5065, + 5066 ] }, { "teal": 4381, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4301, - 4302 + 5067, + 5068 ] }, { "teal": 4382, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4303 + 5069 ] }, { "teal": 4383, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4304 + 5070 ] }, { "teal": 4384, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4305, - 4306 + 5071, + 5072 ] }, { "teal": 4389, - "source": 1188, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4307, - 4308 + 5073, + 5074 ] }, { "teal": 4390, - "source": 1188, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4309 + 5075, + 5076 ] }, { "teal": 4391, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4310 + 5077, + 5078, + 5079 ] }, { "teal": 4392, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4311, - 4312 + 5080, + 5081 ] }, { "teal": 4393, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4313 + 5082 ] }, { "teal": 4394, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4314 + 5083 ] }, { "teal": 4395, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4315, - 4316 + 5084, + 5085 ] }, { "teal": 4396, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4317 + 5086 ] }, { "teal": 4397, - "source": 1188, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4318 + 5087 ] }, { "teal": 4398, - "source": 1188, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4319 + 5088, + 5089 ] }, { "teal": 4399, - "source": 1188, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4320 + 5090 ] }, { "teal": 4400, - "source": 1188, + "source": "examples/reti/validatorRegistry.algo.ts:1188", "pc": [ - 4321, - 4322, - 4323 + 5091, + 5092, + 5093 ] }, { "teal": 4405, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4324, - 4325 + 5094, + 5095 ] }, { "teal": 4406, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4326 + 5096, + 5097 ] }, { "teal": 4407, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4327 + 5098, + 5099, + 5100 ] }, { "teal": 4408, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4328, - 4329 + 5101, + 5102 ] }, { "teal": 4409, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4330 + 5103 ] }, { "teal": 4410, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4331 + 5104 ] }, { "teal": 4411, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4332, - 4333 + 5105, + 5106 ] }, { "teal": 4412, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4334 + 5107 ] }, { "teal": 4413, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4335 + 5108 ] }, { "teal": 4414, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4336, - 4337 + 5109, + 5110, + 5111, + 5112, + 5113, + 5114, + 5115, + 5116, + 5117, + 5118, + 5119 ] }, { "teal": 4415, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4338 + 5120 ] }, { "teal": 4418, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "errorMessage": "global state value does not exist: AppID.fromUint64(validatorConfig.nfdForInfo).globalState('i.owner.a')", "pc": [ - 4339 + 5121 ] }, { "teal": 4419, - "source": 1191, + "source": "examples/reti/validatorRegistry.algo.ts:1191", "pc": [ - 4340, - 4341 + 5122, + 5123 ] }, { "teal": 4424, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4342 + 5124, + 5125 ] }, { "teal": 4425, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4343, - 4344 + 5126, + 5127 ] }, { "teal": 4426, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4345 + 5128, + 5129, + 5130 ] }, { "teal": 4427, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4346, - 4347 + 5131, + 5132 ] }, { "teal": 4428, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4348 + 5133 ] }, { "teal": 4429, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4349 + 5134 ] }, { "teal": 4430, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4350, - 4351 + 5135, + 5136 ] }, { "teal": 4431, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4352 + 5137 ] }, { "teal": 4432, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4353, - 4354 + 5138, + 5139 ] }, { "teal": 4433, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4355 + 5140 ] }, { "teal": 4434, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4356 + 5141 ] }, { "teal": 4435, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4357, - 4358, - 4359 + 5142, + 5143, + 5144 ] }, { "teal": 4436, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4360, - 4361 + 5145, + 5146 ] }, { "teal": 4437, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4362, - 4363 + 5147, + 5148 ] }, { "teal": 4438, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4364 + 5149, + 5150, + 5151 ] }, { "teal": 4439, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4365, - 4366 + 5152, + 5153 ] }, { "teal": 4440, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4367 + 5154 ] }, { "teal": 4441, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4368 + 5155 ] }, { "teal": 4442, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4369, - 4370 + 5156, + 5157 ] }, { "teal": 4443, - "source": 1187, + "source": "examples/reti/validatorRegistry.algo.ts:1187", "pc": [ - 4371 + 5158 ] }, { "teal": 4444, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4372, - 4373 + 5159, + 5160 ] }, { "teal": 4445, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4374 + 5161 ] }, { "teal": 4446, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4375 + 5162 ] }, { "teal": 4449, - "source": 1193, + "source": "examples/reti/validatorRegistry.algo.ts:1193", "pc": [ - 4376, - 4377, - 4378 + 5163, + 5164, + 5165 ] }, { "teal": 4454, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4379, - 4380 + 5166, + 5167 ] }, { "teal": 4455, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4381, - 4382 + 5168, + 5169, + 5170, + 5171, + 5172, + 5173, + 5174, + 5175, + 5176, + 5177 ] }, { "teal": 4456, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4383 + 5178, + 5179, + 5180 ] }, { "teal": 4457, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4384, - 4385 + 5181, + 5182 ] }, { "teal": 4458, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4386 + 5183 ] }, { "teal": 4459, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4387 + 5184 ] }, { "teal": 4460, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4388, - 4389 + 5185, + 5186 ] }, { "teal": 4461, - "source": 1195, + "source": "examples/reti/validatorRegistry.algo.ts:1195", "pc": [ - 4390 + 5187 ] }, { "teal": 4466, - "source": 1186, + "source": "examples/reti/validatorRegistry.algo.ts:1186", "pc": [ - 4391 + 5188 ] }, { "teal": 4470, - "source": 1200, + "source": "examples/reti/validatorRegistry.algo.ts:1200", "pc": [ - 4392, - 4393, - 4394 + 5189, + 5190, + 5191 ] }, { "teal": 4477, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4395, - 4396 + 5192, + 5193 ] }, { "teal": 4478, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4397, - 4398, - 4399 + 5194, + 5195, + 5196 ] }, { "teal": 4479, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4400 + 5197 ] }, { "teal": 4480, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4401 + 5198, + 5199 ] }, { "teal": 4481, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4402 + 5200 ] }, { "teal": 4482, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4403 + 5201 ] }, { "teal": 4483, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4404, - 4405, - 4406 + 5202, + 5203, + 5204 ] }, { "teal": 4484, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4407, - 4408 + 5205, + 5206 ] }, { "teal": 4485, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4409, - 4410, - 4411 + 5207, + 5208, + 5209 ] }, { "teal": 4486, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4412 + 5210 ] }, { "teal": 4487, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4413, - 4414 + 5211, + 5212 ] }, { "teal": 4488, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4415 + 5213 ] }, { "teal": 4489, - "source": 1203, + "source": "examples/reti/validatorRegistry.algo.ts:1203", "pc": [ - 4416 + 5214 ] }, { "teal": 4493, - "source": 1202, + "source": "examples/reti/validatorRegistry.algo.ts:1202", "errorMessage": "gating type not valid", "pc": [ - 4417 + 5215 ] }, { "teal": 4500, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4418, - 4419 + 5216, + 5217 ] }, { "teal": 4501, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4420, - 4421, - 4422 + 5218, + 5219, + 5220 ] }, { "teal": 4502, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4423 + 5221 ] }, { "teal": 4503, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4424 + 5222, + 5223 ] }, { "teal": 4504, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4425 + 5224 ] }, { "teal": 4505, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4426 + 5225 ] }, { "teal": 4506, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4427, - 4428, - 4429 + 5226, + 5227, + 5228 ] }, { "teal": 4507, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4430, - 4431 + 5229, + 5230 ] }, { "teal": 4508, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4432, - 4433, - 4434 + 5231, + 5232, + 5233 ] }, { "teal": 4509, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4435 + 5234 ] }, { "teal": 4510, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4436, - 4437 + 5235, + 5236, + 5237, + 5238 ] }, { "teal": 4511, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4438 + 5239 ] }, { "teal": 4512, - "source": 1207, + "source": "examples/reti/validatorRegistry.algo.ts:1207", "pc": [ - 4439 + 5240 ] }, { "teal": 4516, - "source": 1206, + "source": "examples/reti/validatorRegistry.algo.ts:1206", "errorMessage": "epoch length not in allowable range", "pc": [ - 4440 + 5241 ] }, { "teal": 4523, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4441, - 4442 + 5242, + 5243 ] }, { "teal": 4524, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4443, - 4444, - 4445 + 5244, + 5245, + 5246 ] }, { "teal": 4525, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4446 + 5247 ] }, { "teal": 4526, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4447 + 5248, + 5249 ] }, { "teal": 4527, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4448 + 5250 ] }, { "teal": 4528, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4449 + 5251 ] }, { "teal": 4529, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4450, - 4451, - 4452 + 5252, + 5253, + 5254 ] }, { "teal": 4530, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4453, - 4454 + 5255, + 5256 ] }, { "teal": 4531, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4455, - 4456, - 4457 + 5257, + 5258, + 5259 ] }, { "teal": 4532, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4458 + 5260 ] }, { "teal": 4533, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4459, - 4460 + 5261, + 5262, + 5263, + 5264 ] }, { "teal": 4534, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4461 + 5265 ] }, { "teal": 4535, - "source": 1211, + "source": "examples/reti/validatorRegistry.algo.ts:1211", "pc": [ - 4462 + 5266 ] }, { "teal": 4539, - "source": 1210, + "source": "examples/reti/validatorRegistry.algo.ts:1210", "errorMessage": "commission percentage not valid", "pc": [ - 4463 + 5267 ] }, { "teal": 4544, - "source": 1214, + "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4464, - 4465 + 5268, + 5269 ] }, { "teal": 4545, - "source": 1214, + "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4466, - 4467, - 4468 + 5270, + 5271, + 5272 ] }, { "teal": 4546, - "source": 1214, + "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4469 + 5273 ] }, { "teal": 4547, - "source": 1214, + "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4470 + 5274, + 5275 ] }, { "teal": 4548, - "source": 1214, + "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4471 + 5276 ] }, { "teal": 4549, - "source": 1214, + "source": "examples/reti/validatorRegistry.algo.ts:1214", "pc": [ - 4472, - 4473, - 4474 + 5277, + 5278, + 5279 ] }, { "teal": 4557, - "source": 1216, + "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4475, - 4476 + 5280, + 5281 ] }, { "teal": 4558, - "source": 1216, + "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4477, - 4478, - 4479 + 5282, + 5283, + 5284 ] }, { "teal": 4559, - "source": 1216, + "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4480, - 4481 + 5285, + 5286 ] }, { "teal": 4560, - "source": 1216, + "source": "examples/reti/validatorRegistry.algo.ts:1216", "pc": [ - 4482 + 5287 ] }, { "teal": 4563, - "source": 1215, + "source": "examples/reti/validatorRegistry.algo.ts:1215", "errorMessage": "validatorCommissionAddress must be set if percent to validator is not 0", "pc": [ - 4483 + 5288 ] }, { "teal": 4568, - "source": 1220, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4484, - 4485 + 5289, + 5290 ] }, { "teal": 4569, - "source": 1220, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4486, - 4487, - 4488 + 5291, + 5292, + 5293 ] }, { "teal": 4570, - "source": 1220, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4489 + 5294 ] }, { "teal": 4571, - "source": 1220, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4490, - 4491 + 5295, + 5296, + 5297, + 5298 ] }, { "teal": 4572, - "source": 1220, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "pc": [ - 4492 + 5299 ] }, { "teal": 4575, - "source": 1220, + "source": "examples/reti/validatorRegistry.algo.ts:1220", "errorMessage": "staking pool must have minimum entry of 1 algo", "pc": [ - 4493 + 5300 ] }, { "teal": 4582, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4494, - 4495 + 5301, + 5302 ] }, { "teal": 4583, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4496, - 4497, - 4498 + 5303, + 5304, + 5305 ] }, { "teal": 4584, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4499 + 5306 ] }, { "teal": 4585, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4500 + 5307, + 5308 ] }, { "teal": 4586, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4501 + 5309 ] }, { "teal": 4587, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4502 + 5310 ] }, { "teal": 4588, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4503, - 4504, - 4505 + 5311, + 5312, + 5313 ] }, { "teal": 4589, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4506, - 4507 + 5314, + 5315 ] }, { "teal": 4590, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4508, - 4509, - 4510 + 5316, + 5317, + 5318 ] }, { "teal": 4591, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4511 + 5319 ] }, { "teal": 4592, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4512, - 4513 + 5320, + 5321 ] }, { "teal": 4593, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4514 + 5322 ] }, { "teal": 4594, - "source": 1223, + "source": "examples/reti/validatorRegistry.algo.ts:1223", "pc": [ - 4515 + 5323 ] }, { "teal": 4598, - "source": 1222, + "source": "examples/reti/validatorRegistry.algo.ts:1222", "errorMessage": "number of pools per node exceeds allowed number", "pc": [ - 4516 + 5324 ] }, { "teal": 4603, - "source": 1226, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4517, - 4518 + 5325, + 5326 ] }, { "teal": 4604, - "source": 1226, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4519, - 4520, - 4521 + 5327, + 5328, + 5329 ] }, { "teal": 4605, - "source": 1226, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4522 + 5330 ] }, { "teal": 4606, - "source": 1226, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4523 + 5331, + 5332 ] }, { "teal": 4607, - "source": 1226, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4524 + 5333 ] }, { "teal": 4608, - "source": 1226, + "source": "examples/reti/validatorRegistry.algo.ts:1226", "pc": [ - 4525, - 4526, - 4527 + 5334, + 5335, + 5336 ] }, { "teal": 4613, - "source": 1227, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4528, - 4529 + 5337, + 5338 ] }, { "teal": 4614, - "source": 1227, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4530, - 4531, - 4532 + 5339, + 5340, + 5341 ] }, { "teal": 4615, - "source": 1227, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4533 + 5342 ] }, { "teal": 4616, - "source": 1227, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4534, - 4535 + 5343, + 5344 ] }, { "teal": 4617, - "source": 1227, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "pc": [ - 4536 + 5345 ] }, { "teal": 4620, - "source": 1227, + "source": "examples/reti/validatorRegistry.algo.ts:1227", "errorMessage": "sunsettingOn must be later than now if set", "pc": [ - 4537 + 5346 ] }, { "teal": 4623, - "source": 1200, + "source": "examples/reti/validatorRegistry.algo.ts:1200", "pc": [ - 4538 + 5347 ] }, { "teal": 4637, - "source": 1242, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4539, - 4540, - 4541 + 5348, + 5349, + 5350 ] }, { "teal": 4640, - "source": 1242, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4542 + 5351, + 5352 ] }, { "teal": 4641, - "source": 1242, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4543, - 4544 + 5353, + 5354 ] }, { "teal": 4645, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4545, - 4546 + 5355, + 5356, + 5357 ] }, { "teal": 4646, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4547, - 4548 + 5358, + 5359 ] }, { "teal": 4647, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4549, - 4550, - 4551 + 5360, + 5361, + 5362 ] }, { "teal": 4648, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4552 + 5363 ] }, { "teal": 4649, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4553 + 5364, + 5365 ] }, { "teal": 4650, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4554 + 5366 ] }, { "teal": 4651, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4555, - 4556 + 5367, + 5368 ] }, { "teal": 4652, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4557 + 5369 ] }, { "teal": 4653, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4558 + 5370 ] }, { "teal": 4654, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4559 + 5371, + 5372 ] }, { "teal": 4655, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4560 + 5373 ] }, { "teal": 4656, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4561 + 5374, + 5375 ] }, { "teal": 4657, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4562 + 5376, + 5377, + 5378 ] }, { "teal": 4658, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4563, - 4564 + 5379, + 5380 ] }, { "teal": 4659, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4565, - 4566, - 4567 + 5381, + 5382, + 5383 ] }, { "teal": 4660, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4568 + 5384 ] }, { "teal": 4661, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4569 + 5385 ] }, { "teal": 4662, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4570 + 5386 ] }, { "teal": 4663, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4571, - 4572 + 5387, + 5388 ] }, { "teal": 4664, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4573 + 5389 ] }, { "teal": 4665, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4574 + 5390 ] }, { "teal": 4666, - "source": 1249, + "source": "examples/reti/validatorRegistry.algo.ts:1249", "pc": [ - 4575, - 4576 + 5391, + 5392 ] }, { "teal": 4679, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4577 + 5393 ] }, { "teal": 4680, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4578 + 5394, + 5395 ] }, { "teal": 4681, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4579, - 4580 + 5396, + 5397 ] }, { "teal": 4685, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4581, - 4582 + 5398, + 5399 ] }, { "teal": 4686, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4583, - 4584 + 5400, + 5401 ] }, { "teal": 4687, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4585, - 4586 + 5402, + 5403 ] }, { "teal": 4688, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4587 + 5404 ] }, { "teal": 4689, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4588, - 4589 + 5405, + 5406 ] }, { "teal": 4693, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4590, - 4591 + 5407, + 5408 ] }, { "teal": 4694, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4592, - 4593 + 5409, + 5410 ] }, { "teal": 4695, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4594 + 5411 ] }, { "teal": 4696, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4595, - 4596 + 5412, + 5413 ] }, { "teal": 4699, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4597 + 5414, + 5415 ] }, { "teal": 4700, - "source": 1258, + "source": "examples/reti/validatorRegistry.algo.ts:1258", "pc": [ - 4598, - 4599 + 5416, + 5417 ] }, { "teal": 4701, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4600 + 5418 ] }, { "teal": 4702, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4601, - 4602 + 5419, + 5420 ] }, { "teal": 4703, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4603, - 4604 + 5421, + 5422 ] }, { "teal": 4704, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4605, - 4606, - 4607, - 4608, - 4609, - 4610 + 5423, + 5424, + 5425, + 5426, + 5427, + 5428 ] }, { "teal": 4705, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4611, - 4612 + 5429, + 5430 ] }, { "teal": 4709, - "source": 1254, + "source": "examples/reti/validatorRegistry.algo.ts:1254", "pc": [ - 4613, - 4614 + 5431, + 5432 ] }, { "teal": 4710, - "source": 1254, + "source": "examples/reti/validatorRegistry.algo.ts:1254", "pc": [ - 4615, - 4616 + 5433, + 5434 ] }, { "teal": 4720, - "source": 1260, + "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ - 4617, - 4618 + 5435, + 5436 ] }, { "teal": 4721, - "source": 1260, + "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ - 4619, - 4620 + 5437, + 5438 ] }, { "teal": 4722, - "source": 1260, + "source": "examples/reti/validatorRegistry.algo.ts:1260", "pc": [ - 4621, - 4622 + 5439, + 5440 ] }, { "teal": 4725, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4623 + 5441, + 5442 ] }, { "teal": 4726, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4624, - 4625 + 5443, + 5444 ] }, { "teal": 4729, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4626 + 5445 ] }, { "teal": 4730, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4627, - 4628 + 5446, + 5447 ] }, { "teal": 4731, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4629 + 5448, + 5449 ] }, { "teal": 4732, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4630 + 5450 ] }, { "teal": 4733, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4631, - 4632 + 5451, + 5452 ] }, { "teal": 4734, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4633, - 4634, - 4635 + 5453, + 5454, + 5455 ] }, { "teal": 4735, - "source": 1253, + "source": "examples/reti/validatorRegistry.algo.ts:1253", "pc": [ - 4636 + 5456 ] }, { "teal": 4740, - "source": 1263, + "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4637, - 4638 + 5457, + 5458 ] }, { "teal": 4741, - "source": 1263, + "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4639, - 4640, - 4641 + 5459, + 5460, + 5461 ] }, { "teal": 4742, - "source": 1263, + "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4642 + 5462 ] }, { "teal": 4743, - "source": 1263, + "source": "examples/reti/validatorRegistry.algo.ts:1263", "pc": [ - 4643, - 4644, - 4645 + 5463, + 5464, + 5465 ] }, { "teal": 4748, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4646 + 5466 ] }, { "teal": 4749, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4647, - 4648 + 5467, + 5468 ] }, { "teal": 4750, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4649, - 4650 + 5469, + 5470 ] }, { "teal": 4751, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4651 + 5471, + 5472 ] }, { "teal": 4752, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4652, - 4653 + 5473, + 5474 ] }, { "teal": 4753, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4654, - 4655 + 5475, + 5476, + 5477, + 5478, + 5479 ] }, { "teal": 4754, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4656 + 5480 ] }, { "teal": 4755, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4657, - 4658 + 5481, + 5482 ] }, { "teal": 4756, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4659, - 4660 + 5483, + 5484 ] }, { "teal": 4757, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4661, - 4662 + 5485, + 5486 ] }, { "teal": 4758, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4663, - 4664 + 5487, + 5488 ] }, { "teal": 4759, - "source": 1264, + "source": "examples/reti/validatorRegistry.algo.ts:1264", "pc": [ - 4665 + 5489 ] }, { "teal": 4764, - "source": 1268, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ - 4666, - 4667 + 5490, + 5491 ] }, { "teal": 4765, - "source": 1268, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ - 4668, - 4669 + 5492, + 5493, + 5494, + 5495, + 5496, + 5497, + 5498, + 5499, + 5500, + 5501, + 5502, + 5503 ] }, { "teal": 4766, - "source": 1268, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ - 4670 + 5504 ] }, { "teal": 4769, - "source": 1268, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('numStakers')", "pc": [ - 4671 + 5505 ] }, { "teal": 4770, - "source": 1268, + "source": "examples/reti/validatorRegistry.algo.ts:1268", "pc": [ - 4672, - 4673 + 5506, + 5507 ] }, { "teal": 4774, - "source": 1269, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ - 4674, - 4675 + 5508, + 5509 ] }, { "teal": 4775, - "source": 1269, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ - 4676, - 4677 + 5510, + 5511, + 5512, + 5513, + 5514, + 5515, + 5516, + 5517 ] }, { "teal": 4776, - "source": 1269, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ - 4678 + 5518 ] }, { "teal": 4779, - "source": 1269, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "errorMessage": "global state value does not exist: AppID.fromUint64(poolAppId).globalState('staked')", "pc": [ - 4679 + 5519 ] }, { "teal": 4780, - "source": 1269, + "source": "examples/reti/validatorRegistry.algo.ts:1269", "pc": [ - 4680, - 4681 + 5520, + 5521 ] }, { "teal": 4784, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4682, - 4683 + 5522, + 5523, + 5524 ] }, { "teal": 4785, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4684, - 4685 + 5525, + 5526 ] }, { "teal": 4786, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4686, - 4687, - 4688 + 5527, + 5528, + 5529 ] }, { "teal": 4787, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4689 + 5530 ] }, { "teal": 4788, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4690 + 5531, + 5532 ] }, { "teal": 4789, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4691 + 5533 ] }, { "teal": 4790, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4692, - 4693 + 5534, + 5535 ] }, { "teal": 4791, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4694 + 5536 ] }, { "teal": 4792, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4695 + 5537 ] }, { "teal": 4793, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4696 + 5538, + 5539 ] }, { "teal": 4794, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4697 + 5540 ] }, { "teal": 4795, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4698, - 4699 + 5541, + 5542 ] }, { "teal": 4796, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4700 + 5543 ] }, { "teal": 4797, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4701, - 4702, - 4703 + 5544, + 5545, + 5546 ] }, { "teal": 4798, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4704 + 5547, + 5548, + 5549 ] }, { "teal": 4799, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4705, - 4706 + 5550, + 5551 ] }, { "teal": 4800, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4707, - 4708, - 4709 + 5552, + 5553, + 5554 ] }, { "teal": 4801, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4710 + 5555 ] }, { "teal": 4802, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4711 + 5556 ] }, { "teal": 4803, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4712 + 5557 ] }, { "teal": 4804, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4713, - 4714 + 5558, + 5559 ] }, { "teal": 4805, - "source": 1270, + "source": "examples/reti/validatorRegistry.algo.ts:1270", "pc": [ - 4715 + 5560 ] }, { "teal": 4809, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4716, - 4717 + 5561, + 5562, + 5563 ] }, { "teal": 4810, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4718, - 4719 + 5564, + 5565 ] }, { "teal": 4811, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4720, - 4721, - 4722 + 5566, + 5567, + 5568 ] }, { "teal": 4812, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4723 + 5569 ] }, { "teal": 4813, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4724 + 5570, + 5571 ] }, { "teal": 4814, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4725 + 5572 ] }, { "teal": 4815, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4726, - 4727 + 5573, + 5574 ] }, { "teal": 4816, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4728 + 5575 ] }, { "teal": 4817, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4729 + 5576 ] }, { "teal": 4818, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4730, - 4731 + 5577, + 5578 ] }, { "teal": 4819, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4732 + 5579 ] }, { "teal": 4820, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4733, - 4734 + 5580, + 5581 ] }, { "teal": 4821, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4735 + 5582 ] }, { "teal": 4822, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4736 + 5583, + 5584, + 5585 ] }, { "teal": 4823, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4737, - 4738 + 5586, + 5587 ] }, { "teal": 4824, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4739, - 4740, - 4741 + 5588, + 5589, + 5590 ] }, { "teal": 4825, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4742 + 5591 ] }, { "teal": 4826, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4743 + 5592 ] }, { "teal": 4827, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4744 + 5593 ] }, { "teal": 4828, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4745, - 4746 + 5594, + 5595 ] }, { "teal": 4829, - "source": 1271, + "source": "examples/reti/validatorRegistry.algo.ts:1271", "pc": [ - 4747 + 5596 ] }, { "teal": 4834, - "source": 1274, + "source": "examples/reti/validatorRegistry.algo.ts:1274", "pc": [ - 4748, - 4749 + 5597, + 5598 ] }, { "teal": 4835, - "source": 1274, + "source": "examples/reti/validatorRegistry.algo.ts:1274", "pc": [ - 4750, - 4751, - 4752 + 5599, + 5600, + 5601 ] }, { "teal": 4840, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4753, - 4754 + 5602, + 5603, + 5604 ] }, { "teal": 4841, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4755 + 5605, + 5606, + 5607 ] }, { "teal": 4842, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4756 + 5608, + 5609 ] }, { "teal": 4843, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4757 + 5610, + 5611, + 5612 ] }, { "teal": 4844, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4758, - 4759 + 5613, + 5614 ] }, { "teal": 4845, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4760, - 4761, - 4762 + 5615, + 5616, + 5617 ] }, { "teal": 4846, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4763 + 5618 ] }, { "teal": 4847, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4764 + 5619 ] }, { "teal": 4848, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4765 + 5620 ] }, { "teal": 4849, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4766, - 4767 + 5621, + 5622 ] }, { "teal": 4850, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4768 + 5623 ] }, { "teal": 4851, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4769 + 5624 ] }, { "teal": 4852, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4770 + 5625, + 5626 ] }, { "teal": 4853, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4771 + 5627 ] }, { "teal": 4854, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4772 + 5628 ] }, { "teal": 4855, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4773 + 5629, + 5630, + 5631 ] }, { "teal": 4856, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4774, - 4775 + 5632, + 5633 ] }, { "teal": 4857, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4776, - 4777, - 4778 + 5634, + 5635, + 5636 ] }, { "teal": 4858, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4779 + 5637 ] }, { "teal": 4859, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4780 + 5638 ] }, { "teal": 4860, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4781 + 5639 ] }, { "teal": 4861, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4782, - 4783 + 5640, + 5641 ] }, { "teal": 4862, - "source": 1275, + "source": "examples/reti/validatorRegistry.algo.ts:1275", "pc": [ - 4784 + 5642 ] }, { "teal": 4868, - "source": 1277, + "source": "examples/reti/validatorRegistry.algo.ts:1277", "pc": [ - 4785, - 4786 + 5643, + 5644 ] }, { "teal": 4869, - "source": 1277, + "source": "examples/reti/validatorRegistry.algo.ts:1277", "pc": [ - 4787, - 4788, - 4789 + 5645, + 5646, + 5647 ] }, { "teal": 4874, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4790, - 4791 + 5648, + 5649, + 5650, + 5651, + 5652, + 5653, + 5654, + 5655, + 5656, + 5657, + 5658, + 5659 ] }, { "teal": 4875, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4792 + 5660 ] }, { "teal": 4876, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4793 + 5661, + 5662 ] }, { "teal": 4877, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4794 + 5663 ] }, { "teal": 4878, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4795, - 4796 + 5664, + 5665, + 5666, + 5667, + 5668, + 5669, + 5670, + 5671, + 5672, + 5673, + 5674, + 5675 ] }, { "teal": 4879, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4797 + 5676 ] }, { "teal": 4880, - "source": 1278, + "source": "examples/reti/validatorRegistry.algo.ts:1278", "pc": [ - 4798 + 5677 ] }, { "teal": 4885, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4799, - 4800 + 5678, + 5679, + 5680 ] }, { "teal": 4886, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4801 + 5681 ] }, { "teal": 4887, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4802 + 5682, + 5683 ] }, { "teal": 4888, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4803 + 5684, + 5685, + 5686 ] }, { "teal": 4889, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4804, - 4805 + 5687, + 5688 ] }, { "teal": 4890, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4806, - 4807, - 4808 + 5689, + 5690, + 5691 ] }, { "teal": 4891, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4809 + 5692 ] }, { "teal": 4892, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4810 + 5693 ] }, { "teal": 4893, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4811 + 5694 ] }, { "teal": 4894, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4812, - 4813 + 5695, + 5696 ] }, { "teal": 4895, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4814 + 5697 ] }, { "teal": 4896, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4815 + 5698 ] }, { "teal": 4897, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4816, - 4817 + 5699, + 5700 ] }, { "teal": 4898, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4818, - 4819 + 5701, + 5702 ] }, { "teal": 4899, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4820, - 4821 + 5703, + 5704 ] }, { "teal": 4900, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4822 + 5705 ] }, { "teal": 4901, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4823 + 5706 ] }, { "teal": 4902, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4824 + 5707 ] }, { "teal": 4903, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4825 + 5708, + 5709, + 5710 ] }, { "teal": 4904, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4826, - 4827 + 5711, + 5712 ] }, { "teal": 4905, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4828, - 4829, - 4830 + 5713, + 5714, + 5715 ] }, { "teal": 4906, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4831 + 5716 ] }, { "teal": 4907, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4832 + 5717 ] }, { "teal": 4908, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4833 + 5718 ] }, { "teal": 4909, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4834, - 4835 + 5719, + 5720 ] }, { "teal": 4910, - "source": 1280, + "source": "examples/reti/validatorRegistry.algo.ts:1280", "pc": [ - 4836 + 5721 ] }, { "teal": 4914, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4837, - 4838 + 5722, + 5723, + 5724, + 5725, + 5726, + 5727, + 5728, + 5729 ] }, { "teal": 4915, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4839 + 5730 ] }, { "teal": 4916, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4840, - 4841 + 5731, + 5732 ] }, { "teal": 4917, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4842, - 4843 + 5733, + 5734 ] }, { "teal": 4918, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4844, - 4845 + 5735, + 5736 ] }, { "teal": 4919, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4846 + 5737 ] }, { "teal": 4920, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4847 + 5738 ] }, { "teal": 4921, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4848, - 4849 + 5739, + 5740, + 5741, + 5742, + 5743, + 5744, + 5745, + 5746 ] }, { "teal": 4922, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4850 + 5747 ] }, { "teal": 4923, - "source": 1281, + "source": "examples/reti/validatorRegistry.algo.ts:1281", "pc": [ - 4851 + 5748 ] }, { "teal": 4924, - "source": 1242, + "source": "examples/reti/validatorRegistry.algo.ts:1242", "pc": [ - 4852 + 5749 ] }, { "teal": 4928, - "source": 1284, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4853, - 4854, - 4855 + 5750, + 5751, + 5752 ] }, { "teal": 4931, - "source": 1284, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4856 + 5753, + 5754 ] }, { "teal": 4932, - "source": 1284, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4857, - 4858 + 5755, + 5756 ] }, { "teal": 4936, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4859 + 5757, + 5758, + 5759, + 5760, + 5761 ] }, { "teal": 4937, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4860, - 4861 + 5762, + 5763 ] }, { "teal": 4938, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4862 + 5764 ] }, { "teal": 4939, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4863 + 5765 ] }, { "teal": 4940, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4864 + 5766 ] }, { "teal": 4941, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4865 + 5767 ] }, { "teal": 4942, - "source": 1285, + "source": "examples/reti/validatorRegistry.algo.ts:1285", "pc": [ - 4866 + 5768 ] }, { "teal": 4946, - "source": 1287, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4867 + 5769, + 5770, + 5771, + 5772, + 5773 ] }, { "teal": 4947, - "source": 1287, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4868, - 4869 + 5774, + 5775 ] }, { "teal": 4948, - "source": 1287, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4870 + 5776 ] }, { "teal": 4949, - "source": 1287, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4871 + 5777 ] }, { "teal": 4952, - "source": 1287, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 4872 + 5778 ] }, { "teal": 4953, - "source": 1287, + "source": "examples/reti/validatorRegistry.algo.ts:1287", "pc": [ - 4873, - 4874 + 5779, + 5780 ] }, { "teal": 4957, - "source": 1288, + "source": "examples/reti/validatorRegistry.algo.ts:1288", "pc": [ - 4875 + 5781, + 5782 ] }, { "teal": 4958, - "source": 1288, + "source": "examples/reti/validatorRegistry.algo.ts:1288", "pc": [ - 4876, - 4877 + 5783, + 5784 ] }, { "teal": 4962, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4878 + 5785, + 5786 ] }, { "teal": 4963, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4879, - 4880 + 5787, + 5788 ] }, { "teal": 4968, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4881, - 4882 + 5789, + 5790 ] }, { "teal": 4969, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4883, - 4884 + 5791, + 5792 ] }, { "teal": 4970, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4885 + 5793 ] }, { "teal": 4971, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4886, - 4887, - 4888 + 5794, + 5795, + 5796 ] }, { "teal": 4976, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4889, - 4890 + 5797, + 5798 ] }, { "teal": 4977, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4891, - 4892 + 5799, + 5800 ] }, { "teal": 4978, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4893 + 5801, + 5802 ] }, { "teal": 4979, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4894 + 5803 ] }, { "teal": 4980, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4895 + 5804, + 5805 ] }, { "teal": 4981, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4896 + 5806 ] }, { "teal": 4982, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4897, - 4898 + 5807, + 5808 ] }, { "teal": 4983, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4899 + 5809 ] }, { "teal": 4984, - "source": 1290, + "source": "examples/reti/validatorRegistry.algo.ts:1290", "pc": [ - 4900, - 4901, - 4902 + 5810, + 5811, + 5812 ] }, { "teal": 4989, - "source": 1292, + "source": "examples/reti/validatorRegistry.algo.ts:1292", "pc": [ - 4903 + 5813 ] }, { "teal": 4995, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4904, - 4905 + 5814, + 5815 ] }, { "teal": 4996, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4906 + 5816, + 5817 ] }, { "teal": 4997, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4907 + 5818 ] }, { "teal": 4998, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4908 + 5819 ] }, { "teal": 4999, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4909, - 4910, - 4911 + 5820, + 5821, + 5822 ] }, { "teal": 5000, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4912, - 4913 + 5823, + 5824 ] }, { "teal": 5001, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4914, - 4915 + 5825, + 5826 ] }, { "teal": 5002, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4916 + 5827, + 5828 ] }, { "teal": 5003, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4917 + 5829 ] }, { "teal": 5004, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4918 + 5830, + 5831 ] }, { "teal": 5005, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4919 + 5832 ] }, { "teal": 5006, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4920 + 5833, + 5834 ] }, { "teal": 5007, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4921 + 5835 ] }, { "teal": 5008, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4922 + 5836 ] }, { "teal": 5009, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4923 + 5837, + 5838 ] }, { "teal": 5010, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4924 + 5839 ] }, { "teal": 5011, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4925 + 5840 ] }, { "teal": 5014, - "source": 1294, + "source": "examples/reti/validatorRegistry.algo.ts:1294", "pc": [ - 4926, - 4927, - 4928 + 5841, + 5842, + 5843 ] }, { "teal": 5019, - "source": 1295, + "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4929, - 4930 + 5844, + 5845 ] }, { "teal": 5020, - "source": 1295, + "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4931 + 5846, + 5847 ] }, { "teal": 5021, - "source": 1295, + "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4932 + 5848 ] }, { "teal": 5022, - "source": 1295, + "source": "examples/reti/validatorRegistry.algo.ts:1295", "pc": [ - 4933, - 4934 + 5849, + 5850 ] }, { "teal": 5029, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4935, - 4936 + 5851, + 5852 ] }, { "teal": 5030, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4937 + 5853, + 5854 ] }, { "teal": 5031, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4938 + 5855 ] }, { "teal": 5032, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4939, - 4940 + 5856, + 5857 ] }, { "teal": 5033, - "source": 1289, + "source": "examples/reti/validatorRegistry.algo.ts:1289", "pc": [ - 4941, - 4942, - 4943 + 5858, + 5859, + 5860 ] }, { "teal": 5039, - "source": 1298, + "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4944, - 4945 + 5861, + 5862 ] }, { "teal": 5040, - "source": 1298, + "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4946 + 5863, + 5864 ] }, { "teal": 5041, - "source": 1298, + "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4947 + 5865 ] }, { "teal": 5042, - "source": 1298, + "source": "examples/reti/validatorRegistry.algo.ts:1298", "pc": [ - 4948, - 4949, - 4950 + 5866, + 5867, + 5868 ] }, { "teal": 5046, - "source": 1299, + "source": "examples/reti/validatorRegistry.algo.ts:1299", "errorMessage": "No empty slot available in the staker pool set", "pc": [ - 4951 + 5869 ] }, { "teal": 5051, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4952, - 4953 + 5870, + 5871 ] }, { "teal": 5052, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4954 + 5872, + 5873 ] }, { "teal": 5053, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4955 + 5874 ] }, { "teal": 5054, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4956 + 5875, + 5876 ] }, { "teal": 5055, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4957 + 5877 ] }, { "teal": 5056, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4958, - 4959 + 5878, + 5879 ] }, { "teal": 5057, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4960 + 5880, + 5881, + 5882, + 5883, + 5884 ] }, { "teal": 5058, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4961, - 4962 + 5885, + 5886 ] }, { "teal": 5059, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4963 + 5887 ] }, { "teal": 5060, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4964, - 4965 + 5888, + 5889 ] }, { "teal": 5061, - "source": 1301, + "source": "examples/reti/validatorRegistry.algo.ts:1301", "pc": [ - 4966 + 5890 ] }, { "teal": 5062, - "source": 1284, + "source": "examples/reti/validatorRegistry.algo.ts:1284", "pc": [ - 4967 + 5891 ] }, { "teal": 5073, - "source": 1312, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4968, - 4969, - 4970 + 5892, + 5893, + 5894 ] }, { "teal": 5076, - "source": 1312, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4971 + 5895, + 5896 ] }, { "teal": 5077, - "source": 1312, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 4972, - 4973 + 5897, + 5898 ] }, { "teal": 5081, - "source": 1314, + "source": "examples/reti/validatorRegistry.algo.ts:1314", "pc": [ - 4974 + 5899, + 5900 ] }, { "teal": 5082, - "source": 1314, + "source": "examples/reti/validatorRegistry.algo.ts:1314", "pc": [ - 4975, - 4976 + 5901, + 5902 ] }, { "teal": 5086, - "source": 1315, + "source": "examples/reti/validatorRegistry.algo.ts:1315", "pc": [ - 4977 + 5903, + 5904 ] }, { "teal": 5087, - "source": 1315, + "source": "examples/reti/validatorRegistry.algo.ts:1315", "pc": [ - 4978, - 4979 + 5905, + 5906 ] }, { "teal": 5091, - "source": 1316, + "source": "examples/reti/validatorRegistry.algo.ts:1316", "pc": [ - 4980 + 5907, + 5908 ] }, { "teal": 5092, - "source": 1316, + "source": "examples/reti/validatorRegistry.algo.ts:1316", "pc": [ - 4981, - 4982 + 5909, + 5910 ] }, { "teal": 5096, - "source": 1318, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4983 + 5911, + 5912, + 5913, + 5914, + 5915 ] }, { "teal": 5097, - "source": 1318, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4984, - 4985 + 5916, + 5917 ] }, { "teal": 5098, - "source": 1318, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4986 + 5918 ] }, { "teal": 5099, - "source": 1318, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4987 + 5919 ] }, { "teal": 5102, - "source": 1318, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "errorMessage": "box value does not exist: this.stakerPoolSet(staker).value", "pc": [ - 4988 + 5920 ] }, { "teal": 5103, - "source": 1318, + "source": "examples/reti/validatorRegistry.algo.ts:1318", "pc": [ - 4989, - 4990 + 5921, + 5922 ] }, { "teal": 5107, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4991 + 5923, + 5924 ] }, { "teal": 5108, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4992, - 4993 + 5925, + 5926 ] }, { "teal": 5113, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4994, - 4995 + 5927, + 5928 ] }, { "teal": 5114, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4996, - 4997 + 5929, + 5930 ] }, { "teal": 5115, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4998 + 5931 ] }, { "teal": 5116, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 4999, - 5000, - 5001 + 5932, + 5933, + 5934 ] }, { "teal": 5121, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5002, - 5003 + 5935, + 5936 ] }, { "teal": 5122, - "source": 1320, - "pc": [ - 5004, - 5005 + "source": "examples/reti/validatorRegistry.algo.ts:1320", + "pc": [ + 5937, + 5938 ] }, { "teal": 5123, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5006 + 5939, + 5940 ] }, { "teal": 5124, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5007 + 5941 ] }, { "teal": 5125, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5008 + 5942, + 5943 ] }, { "teal": 5126, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5009 + 5944 ] }, { "teal": 5127, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5010 + 5945, + 5946 ] }, { "teal": 5128, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5011 + 5947 ] }, { "teal": 5129, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5012 + 5948 ] }, { "teal": 5130, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5013 + 5949, + 5950 ] }, { "teal": 5131, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5014 + 5951 ] }, { "teal": 5132, - "source": 1320, + "source": "examples/reti/validatorRegistry.algo.ts:1320", "pc": [ - 5015, - 5016, - 5017 + 5952, + 5953, + 5954 ] }, { "teal": 5135, - "source": 1321, + "source": "examples/reti/validatorRegistry.algo.ts:1321", "pc": [ - 5018, - 5019, - 5020 + 5955, + 5956, + 5957 ] }, { "teal": 5140, - "source": 1323, + "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 5021, - 5022 + 5958, + 5959 ] }, { "teal": 5141, - "source": 1323, + "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 5023 + 5960, + 5961 ] }, { "teal": 5142, - "source": 1323, + "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 5024 + 5962 ] }, { "teal": 5143, - "source": 1323, + "source": "examples/reti/validatorRegistry.algo.ts:1323", "pc": [ - 5025, - 5026 + 5963, + 5964 ] }, { "teal": 5148, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5027, - 5028 + 5965, + 5966 ] }, { "teal": 5149, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5029, - 5030 + 5967, + 5968 ] }, { "teal": 5150, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5031 + 5969, + 5970 ] }, { "teal": 5151, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5032 + 5971 ] }, { "teal": 5152, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5033 + 5972, + 5973 ] }, { "teal": 5153, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5034 + 5974 ] }, { "teal": 5154, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5035 + 5975, + 5976 ] }, { "teal": 5155, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5036 + 5977 ] }, { "teal": 5156, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5037 + 5978 ] }, { "teal": 5157, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5038, - 5039 + 5979, + 5980 ] }, { "teal": 5158, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5040, - 5041, - 5042 + 5981, + 5982, + 5983 ] }, { "teal": 5159, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5043 + 5984 ] }, { "teal": 5160, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5044 + 5985 ] }, { "teal": 5161, - "source": 1324, + "source": "examples/reti/validatorRegistry.algo.ts:1324", "pc": [ - 5045, - 5046, - 5047 + 5986, + 5987, + 5988 ] }, { "teal": 5167, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5048, - 5049 + 5989, + 5990 ] }, { "teal": 5168, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5050, - 5051 + 5991, + 5992 ] }, { "teal": 5169, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5052 + 5993, + 5994 ] }, { "teal": 5170, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5053 + 5995 ] }, { "teal": 5171, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5054 + 5996, + 5997 ] }, { "teal": 5172, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5055 + 5998 ] }, { "teal": 5173, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5056, - 5057 + 5999, + 6000 ] }, { "teal": 5174, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5058 + 6001 ] }, { "teal": 5175, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5059, - 5060, - 5061 + 6002, + 6003, + 6004 ] }, { "teal": 5180, - "source": 1326, + "source": "examples/reti/validatorRegistry.algo.ts:1326", "pc": [ - 5062 + 6005, + 6006 ] }, { "teal": 5181, - "source": 1326, + "source": "examples/reti/validatorRegistry.algo.ts:1326", "pc": [ - 5063, - 5064 + 6007, + 6008 ] }, { "teal": 5185, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5065, - 5066 + 6009, + 6010 ] }, { "teal": 5186, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5067 + 6011, + 6012 ] }, { "teal": 5187, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5068 + 6013 ] }, { "teal": 5188, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5069, - 5070, - 5071, - 5072, - 5073, - 5074, - 5075, - 5076, - 5077, - 5078, - 5079, - 5080, - 5081, - 5082, - 5083, - 5084, - 5085, - 5086, - 5087, - 5088, - 5089, - 5090, - 5091, - 5092, - 5093, - 5094 + 6014, + 6015, + 6016, + 6017, + 6018, + 6019, + 6020, + 6021, + 6022, + 6023, + 6024, + 6025, + 6026, + 6027, + 6028, + 6029, + 6030, + 6031, + 6032, + 6033, + 6034, + 6035, + 6036, + 6037, + 6038, + 6039 ] }, { "teal": 5189, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5095 + 6040, + 6041, + 6042, + 6043, + 6044 ] }, { "teal": 5190, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5096, - 5097 + 6045, + 6046 ] }, { "teal": 5191, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5098 + 6047 ] }, { "teal": 5192, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5099, - 5100 + 6048, + 6049 ] }, { "teal": 5193, - "source": 1328, + "source": "examples/reti/validatorRegistry.algo.ts:1328", "pc": [ - 5101 + 6050 ] }, { "teal": 5194, - "source": 1325, + "source": "examples/reti/validatorRegistry.algo.ts:1325", "pc": [ - 5102, - 5103, - 5104 + 6051, + 6052, + 6053 ] }, { "teal": 5199, - "source": 1330, + "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 5105, - 5106 + 6054, + 6055 ] }, { "teal": 5200, - "source": 1330, + "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 5107 + 6056, + 6057 ] }, { "teal": 5201, - "source": 1330, + "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 5108 + 6058 ] }, { "teal": 5202, - "source": 1330, + "source": "examples/reti/validatorRegistry.algo.ts:1330", "pc": [ - 5109, - 5110 + 6059, + 6060 ] }, { "teal": 5211, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 5111, - 5112 + 6061, + 6062 ] }, { "teal": 5212, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 5113 + 6063, + 6064 ] }, { "teal": 5213, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 5114 + 6065 ] }, { "teal": 5214, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 5115, - 5116 + 6066, + 6067 ] }, { "teal": 5215, - "source": 1319, + "source": "examples/reti/validatorRegistry.algo.ts:1319", "pc": [ - 5117, - 5118, - 5119 + 6068, + 6069, + 6070 ] }, { "teal": 5221, - "source": 1334, + "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 5120, - 5121 + 6071, + 6072 ] }, { "teal": 5222, - "source": 1334, + "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 5122 + 6073 ] }, { "teal": 5223, - "source": 1334, + "source": "examples/reti/validatorRegistry.algo.ts:1334", "pc": [ - 5123, - 5124, - 5125 + 6074, + 6075, + 6076 ] }, { "teal": 5227, - "source": 1335, + "source": "examples/reti/validatorRegistry.algo.ts:1335", "errorMessage": "No matching slot found when told to remove a pool from the stakers set", "pc": [ - 5126 + 6077 ] }, { "teal": 5232, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5127, - 5128 + 6078, + 6079, + 6080 ] }, { "teal": 5233, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5129 + 6081, + 6082 ] }, { "teal": 5234, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5130, - 5131 + 6083, + 6084 ] }, { "teal": 5235, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5132 + 6085, + 6086 ] }, { "teal": 5236, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5133 + 6087 ] }, { "teal": 5237, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5134 + 6088 ] }, { "teal": 5238, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5135 + 6089, + 6090 ] }, { "teal": 5239, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5136, - 5137 + 6091, + 6092 ] }, { "teal": 5240, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5138 + 6093, + 6094 ] }, { "teal": 5241, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5139 + 6095 ] }, { "teal": 5242, - "source": 1338, + "source": "examples/reti/validatorRegistry.algo.ts:1338", "pc": [ - 5140 + 6096 ] }, { "teal": 5245, - "source": 1312, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 5141, - 5142 + 6097, + 6098 ] }, { "teal": 5248, - "source": 1312, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 5143, - 5144 + 6099, + 6100 ] }, { "teal": 5249, - "source": 1312, + "source": "examples/reti/validatorRegistry.algo.ts:1312", "pc": [ - 5145 + 6101 ] }, { "teal": 5253, - "source": 1341, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 5146, - 5147, - 5148 + 6102, + 6103, + 6104 ] }, { "teal": 5256, - "source": 1341, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 5149 + 6105, + 6106 ] }, { "teal": 5257, - "source": 1341, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 5150, - 5151 + 6107, + 6108 ] }, { "teal": 5261, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5152, - 5153 + 6109, + 6110, + 6111 ] }, { "teal": 5262, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5154, - 5155 + 6112, + 6113, + 6114 ] }, { "teal": 5263, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5156 + 6115, + 6116, + 6117 ] }, { "teal": 5264, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5157, - 5158 + 6118, + 6119 ] }, { "teal": 5265, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5159 + 6120 ] }, { "teal": 5266, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5160 + 6121 ] }, { "teal": 5267, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5161, - 5162 + 6122, + 6123 ] }, { "teal": 5268, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5163 + 6124 ] }, { "teal": 5269, - "source": 1342, + "source": "examples/reti/validatorRegistry.algo.ts:1342", "pc": [ - 5164, - 5165 + 6125, + 6126 ] }, { "teal": 5273, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5166, - 5167, - 5168 + 6127, + 6128, + 6129 ] }, { "teal": 5274, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5169 + 6130, + 6131 ] }, { "teal": 5275, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5170 + 6132, + 6133, + 6134 ] }, { "teal": 5276, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5171, - 5172 + 6135, + 6136 ] }, { "teal": 5277, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5173 + 6137 ] }, { "teal": 5278, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5174 + 6138 ] }, { "teal": 5279, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5175, - 5176 + 6139, + 6140 ] }, { "teal": 5280, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5177 + 6141 ] }, { "teal": 5281, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5178 + 6142 ] }, { "teal": 5282, - "source": 1343, + "source": "examples/reti/validatorRegistry.algo.ts:1343", "pc": [ - 5179, - 5180 + 6143, + 6144 ] }, { "teal": 5286, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5181, - 5182 + 6145, + 6146 ] }, { "teal": 5287, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5183 + 6147, + 6148 ] }, { "teal": 5288, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5184 + 6149 ] }, { "teal": 5289, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5185 + 6150 ] }, { "teal": 5290, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5186, - 5187, - 5188 + 6151, + 6152, + 6153 ] }, { "teal": 5291, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5189, - 5190 + 6154, + 6155 ] }, { "teal": 5292, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5191 + 6156, + 6157 ] }, { "teal": 5293, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5192 + 6158 ] }, { "teal": 5294, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "pc": [ - 5193 + 6159 ] }, { "teal": 5298, - "source": 1345, + "source": "examples/reti/validatorRegistry.algo.ts:1345", "errorMessage": "node number not in valid range", "pc": [ - 5194 + 6160 ] }, { "teal": 5302, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5195 + 6161, + 6162 ] }, { "teal": 5303, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5196, - 5197 + 6163, + 6164 ] }, { "teal": 5308, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5198, - 5199 + 6165, + 6166 ] }, { "teal": 5309, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5200, - 5201 + 6167, + 6168 ] }, { "teal": 5310, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5202 + 6169 ] }, { "teal": 5311, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5203, - 5204, - 5205 + 6170, + 6171, + 6172 ] }, { "teal": 5316, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5206, - 5207 + 6173, + 6174 ] }, { "teal": 5317, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5208 + 6175, + 6176 ] }, { "teal": 5318, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5209, - 5210 + 6177, + 6178 ] }, { "teal": 5319, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5211 + 6179, + 6180 ] }, { "teal": 5320, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5212 + 6181 ] }, { "teal": 5321, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5213 + 6182, + 6183 ] }, { "teal": 5322, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5214 + 6184 ] }, { "teal": 5323, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5215 + 6185 ] }, { "teal": 5324, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5216 + 6186, + 6187 ] }, { "teal": 5325, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5217 + 6188 ] }, { "teal": 5326, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5218, - 5219 + 6189, + 6190 ] }, { "teal": 5327, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5220 + 6191, + 6192 ] }, { "teal": 5328, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5221 + 6193 ] }, { "teal": 5329, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5222 + 6194 ] }, { "teal": 5330, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5223 + 6195, + 6196 ] }, { "teal": 5331, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5224 + 6197 ] }, { "teal": 5332, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5225 + 6198 ] }, { "teal": 5333, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5226 + 6199, + 6200 ] }, { "teal": 5334, - "source": 1348, + "source": "examples/reti/validatorRegistry.algo.ts:1348", "pc": [ - 5227 + 6201 ] }, { "teal": 5335, - "source": 1348, - "pc": [ - 5228, - 5229, - 5230 + "source": "examples/reti/validatorRegistry.algo.ts:1348", + "pc": [ + 6202, + 6203, + 6204 ] }, { "teal": 5340, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5231, - 5232 + 6205, + 6206, + 6207 ] }, { "teal": 5341, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5233, - 5234 + 6208, + 6209 ] }, { "teal": 5342, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5235 + 6210, + 6211 ] }, { "teal": 5343, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5236 + 6212 ] }, { "teal": 5344, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5237 + 6213, + 6214 ] }, { "teal": 5345, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5238 + 6215 ] }, { "teal": 5346, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5239 + 6216 ] }, { "teal": 5347, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5240 + 6217, + 6218 ] }, { "teal": 5348, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5241 + 6219 ] }, { "teal": 5349, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5242, - 5243 + 6220, + 6221 ] }, { "teal": 5350, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5244 + 6222, + 6223 ] }, { "teal": 5351, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5245 + 6224 ] }, { "teal": 5352, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5246 + 6225 ] }, { "teal": 5353, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5247, - 5248 + 6226, + 6227 ] }, { "teal": 5354, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5249 + 6228 ] }, { "teal": 5355, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5250 + 6229, + 6230, + 6231 ] }, { "teal": 5356, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5251, - 5252 + 6232, + 6233 ] }, { "teal": 5357, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5253 + 6234 ] }, { "teal": 5358, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5254 + 6235 ] }, { "teal": 5359, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5255, - 5256 + 6236, + 6237 ] }, { "teal": 5360, - "source": 1350, + "source": "examples/reti/validatorRegistry.algo.ts:1350", "pc": [ - 5257 + 6238 ] }, { "teal": 5364, - "source": 1351, + "source": "examples/reti/validatorRegistry.algo.ts:1351", "pc": [ - 5258 + 6239 ] }, { "teal": 5371, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5259, - 5260 + 6240, + 6241 ] }, { "teal": 5372, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5261 + 6242, + 6243 ] }, { "teal": 5373, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5262 + 6244 ] }, { "teal": 5374, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5263, - 5264 + 6245, + 6246 ] }, { "teal": 5375, - "source": 1347, + "source": "examples/reti/validatorRegistry.algo.ts:1347", "pc": [ - 5265, - 5266, - 5267 + 6247, + 6248, + 6249 ] }, { "teal": 5379, - "source": 1354, + "source": "examples/reti/validatorRegistry.algo.ts:1354", "errorMessage": "no available space in specified node for this pool", "pc": [ - 5268 + 6250 ] }, { "teal": 5380, - "source": 1341, + "source": "examples/reti/validatorRegistry.algo.ts:1341", "pc": [ - 5269 + 6251 ] }, { "teal": 5390, - "source": 1364, + "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5270, - 5271, - 5272 + 6252, + 6253, + 6254 ] }, { "teal": 5393, - "source": 1364, + "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5273 + 6255, + 6256 ] }, { "teal": 5394, - "source": 1364, + "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5274, - 5275 + 6257, + 6258 ] }, { "teal": 5398, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5276, - 5277 + 6259, + 6260 ] }, { "teal": 5399, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5278 + 6261, + 6262 ] }, { "teal": 5400, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5279 + 6263, + 6264, + 6265 ] }, { "teal": 5401, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5280, - 5281 + 6266, + 6267 ] }, { "teal": 5402, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5282 + 6268 ] }, { "teal": 5403, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5283 + 6269 ] }, { "teal": 5404, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5284, - 5285 + 6270, + 6271 ] }, { "teal": 5405, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5286 + 6272 ] }, { "teal": 5406, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5287 + 6273 ] }, { "teal": 5407, - "source": 1365, + "source": "examples/reti/validatorRegistry.algo.ts:1365", "pc": [ - 5288, - 5289 + 6274, + 6275 ] }, { "teal": 5412, - "source": 1366, + "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5290, - 5291 + 6276, + 6277 ] }, { "teal": 5413, - "source": 1366, + "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5292 + 6278, + 6279 ] }, { "teal": 5414, - "source": 1366, + "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5293 + 6280 ] }, { "teal": 5415, - "source": 1366, + "source": "examples/reti/validatorRegistry.algo.ts:1366", "pc": [ - 5294, - 5295, - 5296 + 6281, + 6282, + 6283 ] }, { "teal": 5420, - "source": 1367, + "source": "examples/reti/validatorRegistry.algo.ts:1367", "pc": [ - 5297 + 6284 ] }, { "teal": 5425, - "source": 1369, + "source": "examples/reti/validatorRegistry.algo.ts:1369", "pc": [ - 5298, - 5299 + 6285, + 6286 ] }, { "teal": 5426, - "source": 1369, + "source": "examples/reti/validatorRegistry.algo.ts:1369", "pc": [ - 5300, - 5301 + 6287, + 6288 ] }, { "teal": 5430, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5302 + 6289, + 6290 ] }, { "teal": 5431, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5303, - 5304 + 6291, + 6292, + 6293 ] }, { "teal": 5432, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5305 + 6294, + 6295, + 6296 ] }, { "teal": 5433, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5306, - 5307 + 6297, + 6298 ] }, { "teal": 5434, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5308 + 6299 ] }, { "teal": 5435, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5309 + 6300 ] }, { "teal": 5436, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5310, - 5311 + 6301, + 6302 ] }, { "teal": 5437, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5312 + 6303 ] }, { "teal": 5438, - "source": 1370, + "source": "examples/reti/validatorRegistry.algo.ts:1370", "pc": [ - 5313, - 5314 + 6304, + 6305 ] }, { "teal": 5445, - "source": 1374, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5315, - 5316 + 6306, + 6307 ] }, { "teal": 5446, - "source": 1374, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5317 + 6308, + 6309 ] }, { "teal": 5447, - "source": 1374, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5318 + 6310 ] }, { "teal": 5448, - "source": 1374, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5319 + 6311 ] }, { "teal": 5449, - "source": 1374, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5320, - 5321, - 5322 + 6312, + 6313, + 6314 ] }, { "teal": 5450, - "source": 1375, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5323, - 5324 + 6315, + 6316 ] }, { "teal": 5451, - "source": 1375, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5325, - 5326 + 6317, + 6318 ] }, { "teal": 5452, - "source": 1375, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5327 + 6319 ] }, { "teal": 5453, - "source": 1374, + "source": "examples/reti/validatorRegistry.algo.ts:1374", "pc": [ - 5328 + 6320 ] }, { "teal": 5456, - "source": 1375, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5329 + 6321 ] }, { "teal": 5457, - "source": 1375, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5330, - 5331, - 5332 + 6322, + 6323, + 6324 ] }, { "teal": 5458, - "source": 1376, + "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5333, - 5334 + 6325, + 6326 ] }, { "teal": 5459, - "source": 1376, + "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5335, - 5336 + 6327, + 6328 ] }, { "teal": 5460, - "source": 1376, + "source": "examples/reti/validatorRegistry.algo.ts:1376", "pc": [ - 5337 + 6329 ] }, { "teal": 5461, - "source": 1375, + "source": "examples/reti/validatorRegistry.algo.ts:1375", "pc": [ - 5338 + 6330 ] }, { "teal": 5464, - "source": 1373, + "source": "examples/reti/validatorRegistry.algo.ts:1373", "pc": [ - 5339, - 5340, - 5341 + 6331, + 6332, + 6333 ] }, { "teal": 5469, - "source": 1378, + "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5342, - 5343 + 6334, + 6335 ] }, { "teal": 5470, - "source": 1378, + "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5344 + 6336, + 6337 ] }, { "teal": 5471, - "source": 1378, + "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5345 + 6338 ] }, { "teal": 5472, - "source": 1378, + "source": "examples/reti/validatorRegistry.algo.ts:1378", "pc": [ - 5346 + 6339 ] }, { "teal": 5476, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5347, - 5348 + 6340, + 6341, + 6342 ] }, { "teal": 5477, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5349 + 6343, + 6344 ] }, { "teal": 5478, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5350 + 6345, + 6346, + 6347 ] }, { "teal": 5479, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5351, - 5352 + 6348, + 6349 ] }, { "teal": 5480, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5353 + 6350 ] }, { "teal": 5481, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5354 + 6351 ] }, { "teal": 5482, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5355, - 5356 + 6352, + 6353 ] }, { "teal": 5483, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5357 + 6354 ] }, { "teal": 5484, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5358 + 6355 ] }, { "teal": 5485, - "source": 1379, + "source": "examples/reti/validatorRegistry.algo.ts:1379", "pc": [ - 5359, - 5360 + 6356, + 6357 ] }, { "teal": 5490, - "source": 1380, + "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5361, - 5362 + 6358, + 6359 ] }, { "teal": 5491, - "source": 1380, + "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5363 + 6360, + 6361 ] }, { "teal": 5492, - "source": 1380, + "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5364 + 6362 ] }, { "teal": 5493, - "source": 1380, + "source": "examples/reti/validatorRegistry.algo.ts:1380", "pc": [ - 5365, - 5366, - 5367 + 6363, + 6364, + 6365 ] }, { "teal": 5498, - "source": 1381, + "source": "examples/reti/validatorRegistry.algo.ts:1381", "pc": [ - 5368 + 6366, + 6367 ] }, { "teal": 5499, - "source": 1381, + "source": "examples/reti/validatorRegistry.algo.ts:1381", "pc": [ - 5369, - 5370 + 6368, + 6369 ] }, { "teal": 5507, - "source": 1384, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5371, - 5372 + 6370, + 6371 ] }, { "teal": 5508, - "source": 1384, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5373, - 5374 + 6372, + 6373 ] }, { "teal": 5509, - "source": 1384, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5375, - 5376 + 6374, + 6375 ] }, { "teal": 5510, - "source": 1384, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5377 + 6376 ] }, { "teal": 5511, - "source": 1384, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5378, - 5379 + 6377, + 6378 ] }, { "teal": 5512, - "source": 1384, + "source": "examples/reti/validatorRegistry.algo.ts:1384", "pc": [ - 5380 + 6379 ] }, { "teal": 5515, - "source": 1383, + "source": "examples/reti/validatorRegistry.algo.ts:1383", "errorMessage": "must have required minimum balance of validator defined token to add stake", "pc": [ - 5381 + 6380 ] }, { "teal": 5521, - "source": 1388, + "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5382, - 5383 + 6381, + 6382 ] }, { "teal": 5522, - "source": 1388, + "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5384 + 6383, + 6384 ] }, { "teal": 5523, - "source": 1388, + "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5385 + 6385 ] }, { "teal": 5524, - "source": 1388, + "source": "examples/reti/validatorRegistry.algo.ts:1388", "pc": [ - 5386, - 5387, - 5388 + 6386, + 6387, + 6388 ] }, { "teal": 5532, - "source": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5389, - 5390 + 6389, + 6390 ] }, { "teal": 5533, - "source": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5391, - 5392 + 6391, + 6392 ] }, { "teal": 5534, - "source": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5393 + 6393 ] }, { "teal": 5535, - "source": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5394, - 5395 + 6394, + 6395 ] }, { "teal": 5536, - "source": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5396, - 5397, - 5398 + 6396, + 6397, + 6398 ] }, { "teal": 5537, - "source": 1390, + "source": "examples/reti/validatorRegistry.algo.ts:1390", "pc": [ - 5399 + 6399 ] }, { "teal": 5540, - "source": 1389, + "source": "examples/reti/validatorRegistry.algo.ts:1389", "errorMessage": "specified asset must be created by creator that the validator defined as a requirement to stake", "pc": [ - 5400 + 6400 ] }, { "teal": 5546, - "source": 1394, + "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5401, - 5402 + 6401, + 6402 ] }, { "teal": 5547, - "source": 1394, + "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5403, - 5404 + 6403, + 6404 ] }, { "teal": 5548, - "source": 1394, + "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5405 + 6405 ] }, { "teal": 5549, - "source": 1394, + "source": "examples/reti/validatorRegistry.algo.ts:1394", "pc": [ - 5406, - 5407, - 5408 + 6406, + 6407, + 6408 ] }, { "teal": 5554, - "source": 1395, + "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5409, - 5410 + 6409, + 6410 ] }, { "teal": 5555, - "source": 1395, + "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5411 + 6411, + 6412 ] }, { "teal": 5556, - "source": 1395, + "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5412 + 6413 ] }, { "teal": 5557, - "source": 1395, + "source": "examples/reti/validatorRegistry.algo.ts:1395", "pc": [ - 5413 + 6414 ] }, { "teal": 5561, - "source": 1396, + "source": "examples/reti/validatorRegistry.algo.ts:1396", "pc": [ - 5414 + 6415, + 6416 ] }, { "teal": 5562, - "source": 1396, + "source": "examples/reti/validatorRegistry.algo.ts:1396", "pc": [ - 5415, - 5416 + 6417, + 6418 ] }, { "teal": 5566, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5417, - 5418 + 6419, + 6420 ] }, { "teal": 5567, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5419, - 5420, - 5421 + 6421, + 6422, + 6423 ] }, { "teal": 5568, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5422 + 6424 ] }, { "teal": 5569, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5423, - 5424 + 6425, + 6426 ] }, { "teal": 5570, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5425, - 5426, - 5427 + 6427, + 6428, + 6429 ] }, { "teal": 5571, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5428 + 6430 ] }, { "teal": 5572, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5429, - 5430 + 6431, + 6432 ] }, { "teal": 5573, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5431 + 6433, + 6434 ] }, { "teal": 5574, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5432, - 5433 + 6435, + 6436 ] }, { "teal": 5580, - "source": 1398, + "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5434, - 5435 + 6437, + 6438 ] }, { "teal": 5581, - "source": 1398, + "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5436, - 5437 + 6439, + 6440 ] }, { "teal": 5582, - "source": 1398, + "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5438 + 6441 ] }, { "teal": 5583, - "source": 1398, + "source": "examples/reti/validatorRegistry.algo.ts:1398", "pc": [ - 5439, - 5440, - 5441 + 6442, + 6443, + 6444 ] }, { "teal": 5588, - "source": 1399, + "source": "examples/reti/validatorRegistry.algo.ts:1399", "pc": [ - 5442 + 6445, + 6446 ] }, { "teal": 5589, - "source": 1399, + "source": "examples/reti/validatorRegistry.algo.ts:1399", "pc": [ - 5443, - 5444 + 6447, + 6448 ] }, { "teal": 5590, - "source": 1400, + "source": "examples/reti/validatorRegistry.algo.ts:1400", "pc": [ - 5445, - 5446, - 5447 + 6449, + 6450, + 6451 ] }, { "teal": 5596, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5448, - 5449 + 6452, + 6453 ] }, { "teal": 5597, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5450 + 6454, + 6455 ] }, { "teal": 5598, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5451 + 6456 ] }, { "teal": 5599, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5452 + 6457 ] }, { "teal": 5600, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5453, - 5454 + 6458, + 6459 ] }, { "teal": 5601, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5455 + 6460 ] }, { "teal": 5602, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5456, - 5457, - 5458 + 6461, + 6462, + 6463 ] }, { "teal": 5603, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5459, - 5460 + 6464, + 6465 ] }, { "teal": 5604, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5461, - 5462 + 6466, + 6467 ] }, { "teal": 5605, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5463, - 5464 + 6468, + 6469 ] }, { "teal": 5606, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5465 + 6470, + 6471 ] }, { "teal": 5607, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5466 + 6472 ] }, { "teal": 5608, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5467 + 6473 ] }, { "teal": 5609, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5468, - 5469 + 6474, + 6475 ] }, { "teal": 5610, - "source": 1397, + "source": "examples/reti/validatorRegistry.algo.ts:1397", "pc": [ - 5470, - 5471, - 5472 + 6476, + 6477, + 6478 ] }, { "teal": 5615, - "source": 1403, + "source": "examples/reti/validatorRegistry.algo.ts:1403", "pc": [ - 5473, - 5474 + 6479, + 6480 ] }, { "teal": 5618, - "source": 1403, + "source": "examples/reti/validatorRegistry.algo.ts:1403", "errorMessage": "specified asset must be identical to the asset id defined as a requirement to stake", "pc": [ - 5475 + 6481 ] }, { "teal": 5624, - "source": 1405, + "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5476, - 5477 + 6482, + 6483 ] }, { "teal": 5625, - "source": 1405, + "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5478, - 5479 + 6484, + 6485 ] }, { "teal": 5626, - "source": 1405, + "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5480 + 6486 ] }, { "teal": 5627, - "source": 1405, + "source": "examples/reti/validatorRegistry.algo.ts:1405", "pc": [ - 5481, - 5482, - 5483 + 6487, + 6488, + 6489 ] }, { "teal": 5635, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5484, - 5485 + 6490, + 6491 ] }, { "teal": 5636, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5486, - 5487 + 6492, + 6493 ] }, { "teal": 5637, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5488 + 6494 ] }, { "teal": 5638, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5489, - 5490 + 6495, + 6496 ] }, { "teal": 5639, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5491, - 5492, - 5493 + 6497, + 6498, + 6499 ] }, { "teal": 5640, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5494 + 6500 ] }, { "teal": 5641, - "source": 1409, + "source": "examples/reti/validatorRegistry.algo.ts:1409", "pc": [ - 5495, - 5496, - 5497 + 6501, + 6502, + 6503 ] }, { "teal": 5644, - "source": 1408, + "source": "examples/reti/validatorRegistry.algo.ts:1408", "errorMessage": "specified asset must be created by creator that is one of the linked addresses in an nfd", "pc": [ - 5498 + 6504 ] }, { "teal": 5650, - "source": 1413, + "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5499, - 5500 + 6505, + 6506 ] }, { "teal": 5651, - "source": 1413, + "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5501, - 5502 + 6507, + 6508 ] }, { "teal": 5652, - "source": 1413, + "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5503 + 6509 ] }, { "teal": 5653, - "source": 1413, + "source": "examples/reti/validatorRegistry.algo.ts:1413", "pc": [ - 5504, - 5505, - 5506 + 6510, + 6511, + 6512 ] }, { "teal": 5658, - "source": 1415, + "source": "examples/reti/validatorRegistry.algo.ts:1415", "pc": [ - 5507, - 5508 + 6513, + 6514 ] }, { "teal": 5659, - "source": 1415, + "source": "examples/reti/validatorRegistry.algo.ts:1415", "pc": [ - 5509, - 5510 + 6515, + 6516 ] }, { "teal": 5663, - "source": 1416, + "source": "examples/reti/validatorRegistry.algo.ts:1416", "pc": [ - 5511, - 5512 + 6517, + 6518 ] }, { "teal": 5664, - "source": 1416, + "source": "examples/reti/validatorRegistry.algo.ts:1416", "pc": [ - 5513, - 5514, - 5515 + 6519, + 6520, + 6521 ] }, { "teal": 5667, - "source": 1416, + "source": "examples/reti/validatorRegistry.algo.ts:1416", "errorMessage": "provided NFD must be valid", "pc": [ - 5516 + 6522 ] }, { "teal": 5675, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5517, - 5518 + 6523, + 6524 ] }, { "teal": 5676, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5519, - 5520 + 6525, + 6526, + 6527, + 6528, + 6529, + 6530, + 6531, + 6532, + 6533, + 6534, + 6535 ] }, { "teal": 5677, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5521 + 6536 ] }, { "teal": 5680, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.owner.a')", "pc": [ - 5522 + 6537 ] }, { "teal": 5681, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5523, - 5524 + 6538, + 6539 ] }, { "teal": 5682, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5525 + 6540 ] }, { "teal": 5683, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5526 + 6541 ] }, { "teal": 5684, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5527, - 5528, - 5529 + 6542, + 6543, + 6544 ] }, { "teal": 5685, - "source": 1421, + "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ - 5530, - 5531 + 6545, + 6546 ] }, { "teal": 5686, - "source": 1421, + "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ - 5532, - 5533 + 6547, + 6548 ] }, { "teal": 5687, - "source": 1421, + "source": "examples/reti/validatorRegistry.algo.ts:1421", "pc": [ - 5534, - 5535, - 5536 + 6549, + 6550, + 6551 ] }, { "teal": 5688, - "source": 1420, + "source": "examples/reti/validatorRegistry.algo.ts:1420", "pc": [ - 5537 + 6552 ] }, { "teal": 5692, - "source": 1419, + "source": "examples/reti/validatorRegistry.algo.ts:1419", "errorMessage": "provided nfd for entry isn't owned or linked to the staker", "pc": [ - 5538 + 6553 ] }, { "teal": 5700, - "source": 1427, + "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5539, - 5540 + 6554, + 6555 ] }, { "teal": 5701, - "source": 1427, - "pc": [ - 5541, - 5542, - 5543, - 5544, - 5545, - 5546, - 5547, - 5548, - 5549, - 5550, - 5551, - 5552, - 5553, - 5554, - 5555 + "source": "examples/reti/validatorRegistry.algo.ts:1427", + "pc": [ + 6556, + 6557, + 6558, + 6559, + 6560, + 6561, + 6562, + 6563, + 6564, + 6565, + 6566, + 6567, + 6568, + 6569, + 6570 ] }, { "teal": 5702, - "source": 1427, + "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5556 + 6571 ] }, { "teal": 5705, - "source": 1427, + "source": "examples/reti/validatorRegistry.algo.ts:1427", "errorMessage": "global state value does not exist: AppID.fromUint64(userOfferedNFDAppID).globalState('i.parentAppID')", "pc": [ - 5557 + 6572 ] }, { "teal": 5706, - "source": 1427, + "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5558 + 6573 ] }, { "teal": 5707, - "source": 1428, + "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5559, - 5560 + 6574, + 6575 ] }, { "teal": 5708, - "source": 1428, + "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5561, - 5562, - 5563 + 6576, + 6577, + 6578 ] }, { "teal": 5709, - "source": 1428, + "source": "examples/reti/validatorRegistry.algo.ts:1428", "pc": [ - 5564 + 6579 ] }, { "teal": 5710, - "source": 1427, + "source": "examples/reti/validatorRegistry.algo.ts:1427", "pc": [ - 5565 + 6580 ] }, { "teal": 5713, - "source": 1426, + "source": "examples/reti/validatorRegistry.algo.ts:1426", "errorMessage": "specified nfd must be a segment of the nfd the validator specified as a requirement", "pc": [ - 5566 + 6581 ] }, { "teal": 5716, - "source": 1364, + "source": "examples/reti/validatorRegistry.algo.ts:1364", "pc": [ - 5567 + 6582 ] }, { "teal": 5728, - "source": 1443, + "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5568, - 5569, - 5570 + 6583, + 6584, + 6585 ] }, { "teal": 5731, - "source": 1443, + "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5571 + 6586, + 6587 ] }, { "teal": 5735, - "source": 1445, + "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5572, - 5573 + 6588, + 6589 ] }, { "teal": 5736, - "source": 1445, + "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5574, - 5575, - 5576, - 5577, - 5578, - 5579, - 5580, - 5581 + 6590, + 6591, + 6592, + 6593, + 6594, + 6595, + 6596, + 6597 ] }, { "teal": 5737, - "source": 1445, + "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5582 + 6598 ] }, { "teal": 5740, - "source": 1445, + "source": "examples/reti/validatorRegistry.algo.ts:1445", "errorMessage": "global state value does not exist: AppID.fromUint64(nfdAppID).globalState('i.name')", "pc": [ - 5583 + 6599 ] }, { "teal": 5741, - "source": 1445, + "source": "examples/reti/validatorRegistry.algo.ts:1445", "pc": [ - 5584, - 5585 + 6600, + 6601 ] }, { "teal": 5749, - "source": 1447, + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5586 + 6602 ] }, { "teal": 5750, - "source": 1447, + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5587, - 5588 + 6603, + 6604 ] }, { "teal": 5751, - "source": 1447, + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5589, - 5590 + 6605, + 6606 ] }, { "teal": 5755, - "source": 1448, + "source": "examples/reti/validatorRegistry.algo.ts:1448", "pc": [ - 5591, - 5592 + 6607 ] }, { "teal": 5756, - "source": 1448, + "source": "examples/reti/validatorRegistry.algo.ts:1448", "pc": [ - 5593, - 5594 + 6608, + 6609 ] }, { "teal": 5760, - "source": 1449, - "pc": [ - 5595, - 5596 + "source": "examples/reti/validatorRegistry.algo.ts:1449", + "pc": [ + 6610, + 6611, + 6612, + 6613, + 6614, + 6615, + 6616, + 6617, + 6618, + 6619, + 6620, + 6621, + 6622, + 6623, + 6624, + 6625, + 6626, + 6627, + 6628, + 6629 ] }, { "teal": 5761, - "source": 1449, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5597, - 5598 + 6630, + 6631 ] }, { "teal": 5762, - "source": 1449, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5599, - 5600 + 6632, + 6633 ] }, { "teal": 5763, - "source": 1449, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5601, - 5602 + 6634, + 6635 ] }, { "teal": 5764, - "source": 1449, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5603, - 5604 + 6636, + 6637 ] }, { "teal": 5765, - "source": 1449, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5605 + 6638 ] }, { "teal": 5766, - "source": 1449, + "source": "examples/reti/validatorRegistry.algo.ts:1449", "pc": [ - 5606, - 5607 + 6639, + 6640 ] }, { "teal": 5770, - "source": 1450, + "source": "examples/reti/validatorRegistry.algo.ts:1450", "pc": [ - 5608, - 5609 + 6641, + 6642 ] }, { "teal": 5771, - "source": 1450, + "source": "examples/reti/validatorRegistry.algo.ts:1450", "pc": [ - 5610, - 5611 + 6643, + 6644 ] }, { "teal": 5774, - "source": 1447, + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5612 + 6645, + 6646 ] }, { "teal": 5775, - "source": 1447, + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5613, - 5614 + 6647, + 6648 ] }, { "teal": 5778, - "source": 1447, + "source": "examples/reti/validatorRegistry.algo.ts:1447", "pc": [ - 5615 + 6649 ] }, { "teal": 5782, - "source": 1452, + "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5616, - 5617 + 6650, + 6651 ] }, { "teal": 5783, - "source": 1452, + "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5618 + 6652 ] }, { "teal": 5784, - "source": 1452, + "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5619 + 6653, + 6654 ] }, { "teal": 5785, - "source": 1452, + "source": "examples/reti/validatorRegistry.algo.ts:1452", "pc": [ - 5620 + 6655 ] }, { "teal": 5788, - "source": 1443, + "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5621, - 5622 + 6656, + 6657 ] }, { "teal": 5789, - "source": 1443, + "source": "examples/reti/validatorRegistry.algo.ts:1443", "pc": [ - 5623 + 6658 ] }, { "teal": 5800, - "source": 1463, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5624, - 5625, - 5626 + 6659, + 6660, + 6661 ] }, { "teal": 5803, - "source": 1463, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5627 + 6662, + 6663 ] }, { "teal": 5804, - "source": 1463, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5628, - 5629 + 6664, + 6665 ] }, { "teal": 5811, - "source": 1464, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5630 + 6666 ] }, { "teal": 5812, - "source": 1464, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5631, - 5632 + 6667, + 6668 ] }, { "teal": 5813, - "source": 1464, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5633, - 5634 + 6669, + 6670 ] }, { "teal": 5817, - "source": 1465, + "source": "examples/reti/validatorRegistry.algo.ts:1465", "pc": [ - 5635, - 5636 + 6671, + 6672 ] }, { "teal": 5818, - "source": 1465, + "source": "examples/reti/validatorRegistry.algo.ts:1465", "pc": [ - 5637, - 5638 + 6673, + 6674 ] }, { "teal": 5822, - "source": 1466, - "pc": [ - 5639, - 5640, - 5641, - 5642, - 5643, - 5644, - 5645, - 5646, - 5647, - 5648, - 5649, - 5650, - 5651, - 5652, - 5653 + "source": "examples/reti/validatorRegistry.algo.ts:1466", + "pc": [ + 6675, + 6676, + 6677, + 6678, + 6679, + 6680, + 6681, + 6682, + 6683, + 6684, + 6685, + 6686, + 6687, + 6688, + 6689 ] }, { "teal": 5823, - "source": 1466, + "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ - 5654, - 5655 + 6690, + 6691 ] }, { "teal": 5824, - "source": 1466, - "pc": [ - 5656, - 5657, - 5658, - 5659, - 5660, - 5661, - 5662, - 5663, - 5664, - 5665, - 5666, - 5667, - 5668, - 5669, - 5670 + "source": "examples/reti/validatorRegistry.algo.ts:1466", + "pc": [ + 6692, + 6693, + 6694, + 6695, + 6696, + 6697, + 6698, + 6699, + 6700, + 6701, + 6702, + 6703, + 6704, + 6705, + 6706 ] }, { "teal": 5825, - "source": 1466, + "source": "examples/reti/validatorRegistry.algo.ts:1466", "pc": [ - 5671, - 5672 + 6707, + 6708 ] }, { "teal": 5828, - "source": 1464, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5673 + 6709, + 6710 ] }, { "teal": 5829, - "source": 1464, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5674, - 5675 + 6711, + 6712 ] }, { "teal": 5832, - "source": 1464, + "source": "examples/reti/validatorRegistry.algo.ts:1464", "pc": [ - 5676 + 6713 ] }, { "teal": 5836, - "source": 1468, + "source": "examples/reti/validatorRegistry.algo.ts:1468", "pc": [ - 5677, - 5678 + 6714, + 6715 ] }, { "teal": 5837, - "source": 1468, + "source": "examples/reti/validatorRegistry.algo.ts:1468", "pc": [ - 5679, - 5680 + 6716, + 6717 ] }, { "teal": 5841, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5681 + 6718, + 6719 ] }, { "teal": 5842, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5682, - 5683 + 6720, + 6721 ] }, { "teal": 5847, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5684, - 5685 + 6722, + 6723 ] }, { "teal": 5848, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5686, - 5687 + 6724, + 6725 ] }, { "teal": 5849, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5688 + 6726 ] }, { "teal": 5850, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5689 + 6727 ] }, { "teal": 5851, - "source": 1469, - "pc": [ - 5690, - 5691, - 5692 + "source": "examples/reti/validatorRegistry.algo.ts:1469", + "pc": [ + 6728, + 6729, + 6730 ] }, { "teal": 5855, - "source": 1470, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5693, - 5694 + 6731, + 6732 ] }, { "teal": 5856, - "source": 1470, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5695, - 5696 + 6733, + 6734 ] }, { "teal": 5857, - "source": 1470, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5697, - 5698 + 6735, + 6736 ] }, { "teal": 5858, - "source": 1470, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5699 + 6737 ] }, { "teal": 5859, - "source": 1470, + "source": "examples/reti/validatorRegistry.algo.ts:1470", "pc": [ - 5700, - 5701 + 6738, + 6739 ] }, { "teal": 5864, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5702, - 5703 + 6740, + 6741 ] }, { "teal": 5865, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5704, - 5705 + 6742, + 6743 ] }, { "teal": 5866, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5706 + 6744 ] }, { "teal": 5867, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5707 + 6745 ] }, { "teal": 5868, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5708, - 5709, - 5710 + 6746, + 6747, + 6748 ] }, { "teal": 5869, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5711, - 5712 + 6749, + 6750 ] }, { "teal": 5870, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5713, - 5714 + 6751, + 6752 ] }, { "teal": 5871, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5715 + 6753 ] }, { "teal": 5872, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5716 + 6754 ] }, { "teal": 5875, - "source": 1471, + "source": "examples/reti/validatorRegistry.algo.ts:1471", "pc": [ - 5717, - 5718, - 5719 + 6755, + 6756, + 6757 ] }, { "teal": 5880, - "source": 1472, + "source": "examples/reti/validatorRegistry.algo.ts:1472", "pc": [ - 5720 + 6758, + 6759 ] }, { "teal": 5881, - "source": 1472, + "source": "examples/reti/validatorRegistry.algo.ts:1472", "pc": [ - 5721, - 5722, - 5723 + 6760, + 6761, + 6762 ] }, { "teal": 5888, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5724, - 5725 + 6763, + 6764 ] }, { "teal": 5889, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5726, - 5727 + 6765, + 6766 ] }, { "teal": 5890, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5728 + 6767 ] }, { "teal": 5891, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5729, - 5730 + 6768, + 6769 ] }, { "teal": 5892, - "source": 1469, + "source": "examples/reti/validatorRegistry.algo.ts:1469", "pc": [ - 5731, - 5732, - 5733 + 6770, + 6771, + 6772 ] }, { "teal": 5897, - "source": 1475, + "source": "examples/reti/validatorRegistry.algo.ts:1475", "pc": [ - 5734 + 6773, + 6774 ] }, { "teal": 5901, - "source": 1463, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5735, - 5736 + 6775, + 6776 ] }, { "teal": 5904, - "source": 1463, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5737, - 5738 + 6777, + 6778 ] }, { "teal": 5905, - "source": 1463, + "source": "examples/reti/validatorRegistry.algo.ts:1463", "pc": [ - 5739 + 6779 ] }, { "teal": 5913, - "source": 1483, + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5740, - 5741, - 5742 + 6780, + 6781, + 6782 ] }, { "teal": 5916, - "source": 1483, + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5743 + 6783, + 6784 ] }, { "teal": 5920, - "source": 1484, + "source": "examples/reti/validatorRegistry.algo.ts:1484", "pc": [ - 5744, - 5745, - 5746 + 6785, + 6786, + 6787 ] }, { "teal": 5921, - "source": 1484, + "source": "examples/reti/validatorRegistry.algo.ts:1484", "pc": [ - 5747, - 5748 + 6788, + 6789 ] }, { "teal": 5925, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5749, - 5750 + 6790, + 6791 ] }, { "teal": 5926, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5751, - 5752 + 6792, + 6793 ] }, { "teal": 5927, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5753 + 6794 ] }, { "teal": 5928, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5754 + 6795, + 6796 ] }, { "teal": 5929, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5755, - 5756 + 6797, + 6798, + 6799 ] }, { "teal": 5930, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5757 + 6800 ] }, { "teal": 5931, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5758 + 6801 ] }, { "teal": 5932, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5759 + 6802 ] }, { "teal": 5933, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5760 + 6803 ] }, { "teal": 5934, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "pc": [ - 5761 + 6804 ] }, { "teal": 5937, - "source": 1486, + "source": "examples/reti/validatorRegistry.algo.ts:1486", "errorMessage": "wideRatio failed", "pc": [ - 5762 + 6805 ] }, { "teal": 5940, - "source": 1483, + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5763, - 5764 + 6806, + 6807 ] }, { "teal": 5941, - "source": 1483, + "source": "examples/reti/validatorRegistry.algo.ts:1483", "pc": [ - 5765 + 6808 ] }, { "teal": 5948, - "source": 1493, + "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5766, - 5767, - 5768 + 6809, + 6810, + 6811 ] }, { "teal": 5951, - "source": 1493, + "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5769 + 6812, + 6813 ] }, { "teal": 5955, - "source": 1494, + "source": "examples/reti/validatorRegistry.algo.ts:1494", "pc": [ - 5770, - 5771, - 5772 + 6814, + 6815, + 6816 ] }, { "teal": 5956, - "source": 1494, + "source": "examples/reti/validatorRegistry.algo.ts:1494", "pc": [ - 5773, - 5774 + 6817, + 6818 ] }, { "teal": 5960, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5775, - 5776 + 6819, + 6820 ] }, { "teal": 5961, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5777, - 5778, - 5779 + 6821, + 6822, + 6823 ] }, { "teal": 5962, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5780 + 6824 ] }, { "teal": 5963, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5781 + 6825, + 6826 ] }, { "teal": 5964, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5782, - 5783 + 6827, + 6828, + 6829 ] }, { "teal": 5965, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5784 + 6830 ] }, { "teal": 5966, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5785 + 6831 ] }, { "teal": 5967, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5786 + 6832 ] }, { "teal": 5968, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5787 + 6833 ] }, { "teal": 5969, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "pc": [ - 5788 + 6834 ] }, { "teal": 5972, - "source": 1496, + "source": "examples/reti/validatorRegistry.algo.ts:1496", "errorMessage": "wideRatio failed", "pc": [ - 5789 + 6835 ] }, { "teal": 5975, - "source": 1493, + "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5790, - 5791 + 6836, + 6837 ] }, { "teal": 5976, - "source": 1493, + "source": "examples/reti/validatorRegistry.algo.ts:1493", "pc": [ - 5792 + 6838 ] }, { "teal": 5982, - "source": 1502, + "source": "examples/reti/validatorRegistry.algo.ts:1502", "pc": [ - 5793, - 5794, - 5795 + 6839, + 6840, + 6841 ] }, { "teal": 5986, - "source": 1504, + "source": "examples/reti/validatorRegistry.algo.ts:1504", "pc": [ - 5796, - 5797, - 5798, - 5799, - 5800, - 5801, - 5802, - 5803 + 6842, + 6843, + 6844, + 6845, + 6846, + 6847, + 6848, + 6849 ] }, { "teal": 5987, - "source": 1502, + "source": "examples/reti/validatorRegistry.algo.ts:1502", "pc": [ - 5804 + 6850 ] }, { "teal": 5991, - "source": 1507, + "source": "examples/reti/validatorRegistry.algo.ts:1507", "pc": [ - 5805, - 5806, - 5807 + 6851, + 6852, + 6853 ] }, { "teal": 5995, - "source": 1509, + "source": "examples/reti/validatorRegistry.algo.ts:1509", "pc": [ - 5808, - 5809, - 5810, - 5811, - 5812, - 5813, - 5814, - 5815, - 5816 + 6854, + 6855, + 6856, + 6857, + 6858, + 6859, + 6860, + 6861, + 6862 ] }, { "teal": 5996, - "source": 1507, + "source": "examples/reti/validatorRegistry.algo.ts:1507", "pc": [ - 5817 + 6863 ] }, { "teal": 6000, - "source": 1512, + "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5818, - 5819, - 5820 + 6864, + 6865, + 6866 ] }, { "teal": 6003, - "source": 1512, + "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5821 + 6867, + 6868 ] }, { "teal": 6007, - "source": 1521, + "source": "examples/reti/validatorRegistry.algo.ts:1521", "pc": [ - 5822, - 5823 + 6869, + 6870, + 6871, + 6872 ] }, { "teal": 6008, - "source": 1521, + "source": "examples/reti/validatorRegistry.algo.ts:1521", "pc": [ - 5824, - 5825 + 6873, + 6874 ] }, { "teal": 6012, - "source": 1522, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5826, - 5827 + 6875, + 6876 ] }, { "teal": 6013, - "source": 1522, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5828, - 5829 + 6877, + 6878 ] }, { "teal": 6014, - "source": 1522, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5830, - 5831 + 6879, + 6880, + 6881, + 6882 ] }, { "teal": 6015, - "source": 1522, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5832 + 6883 ] }, { "teal": 6016, - "source": 1522, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5833 + 6884 ] }, { "teal": 6017, - "source": 1522, + "source": "examples/reti/validatorRegistry.algo.ts:1522", "pc": [ - 5834, - 5835 + 6885, + 6886 ] }, { "teal": 6021, - "source": 1523, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5836, - 5837 + 6887, + 6888 ] }, { "teal": 6022, - "source": 1523, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5838, - 5839 + 6889, + 6890 ] }, { "teal": 6023, - "source": 1523, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5840, - 5841 + 6891, + 6892, + 6893, + 6894 ] }, { "teal": 6024, - "source": 1523, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5842 + 6895 ] }, { "teal": 6025, - "source": 1523, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5843 + 6896 ] }, { "teal": 6026, - "source": 1523, + "source": "examples/reti/validatorRegistry.algo.ts:1523", "pc": [ - 5844, - 5845 + 6897, + 6898 ] }, { "teal": 6030, - "source": 1524, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5846, - 5847 + 6899, + 6900 ] }, { "teal": 6031, - "source": 1524, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5848, - 5849 + 6901, + 6902 ] }, { "teal": 6032, - "source": 1524, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5850, - 5851 + 6903, + 6904, + 6905, + 6906 ] }, { "teal": 6033, - "source": 1524, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5852 + 6907 ] }, { "teal": 6034, - "source": 1524, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5853 + 6908 ] }, { "teal": 6035, - "source": 1524, + "source": "examples/reti/validatorRegistry.algo.ts:1524", "pc": [ - 5854, - 5855 + 6909, + 6910 ] }, { "teal": 6039, - "source": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5856, - 5857 + 6911, + 6912 ] }, { "teal": 6040, - "source": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5858, - 5859 + 6913, + 6914 ] }, { "teal": 6041, - "source": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5860, - 5861 + 6915, + 6916, + 6917, + 6918 ] }, { "teal": 6042, - "source": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5862 + 6919 ] }, { "teal": 6043, - "source": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5863 + 6920 ] }, { "teal": 6044, - "source": 1525, + "source": "examples/reti/validatorRegistry.algo.ts:1525", "pc": [ - 5864, - 5865 + 6921, + 6922 ] }, { "teal": 6048, - "source": 1526, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5866, - 5867 + 6923, + 6924 ] }, { "teal": 6049, - "source": 1526, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5868, - 5869 + 6925, + 6926 ] }, { "teal": 6050, - "source": 1526, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5870, - 5871 + 6927, + 6928, + 6929, + 6930 ] }, { "teal": 6051, - "source": 1526, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5872 + 6931 ] }, { "teal": 6052, - "source": 1526, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5873 + 6932 ] }, { "teal": 6053, - "source": 1526, + "source": "examples/reti/validatorRegistry.algo.ts:1526", "pc": [ - 5874, - 5875 + 6933, + 6934 ] }, { "teal": 6057, - "source": 1527, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5876, - 5877 + 6935, + 6936 ] }, { "teal": 6058, - "source": 1527, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5878, - 5879 + 6937, + 6938 ] }, { "teal": 6059, - "source": 1527, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5880, - 5881 + 6939, + 6940, + 6941, + 6942 ] }, { "teal": 6060, - "source": 1527, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5882 + 6943 ] }, { "teal": 6061, - "source": 1527, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5883 + 6944 ] }, { "teal": 6062, - "source": 1527, + "source": "examples/reti/validatorRegistry.algo.ts:1527", "pc": [ - 5884, - 5885 + 6945, + 6946 ] }, { "teal": 6066, - "source": 1528, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5886, - 5887 + 6947, + 6948 ] }, { "teal": 6067, - "source": 1528, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5888, - 5889 + 6949, + 6950 ] }, { "teal": 6068, - "source": 1528, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5890, - 5891 + 6951, + 6952, + 6953, + 6954 ] }, { "teal": 6069, - "source": 1528, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5892 + 6955 ] }, { "teal": 6070, - "source": 1528, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5893 + 6956 ] }, { "teal": 6071, - "source": 1528, + "source": "examples/reti/validatorRegistry.algo.ts:1528", "pc": [ - 5894, - 5895 + 6957, + 6958 ] }, { "teal": 6075, - "source": 1529, + "source": "examples/reti/validatorRegistry.algo.ts:1529", "pc": [ - 5896, - 5897 + 6959, + 6960 ] }, { "teal": 6078, - "source": 1512, + "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5898, - 5899 + 6961, + 6962 ] }, { "teal": 6079, - "source": 1512, + "source": "examples/reti/validatorRegistry.algo.ts:1512", "pc": [ - 5900 + 6963 ] }, { "teal": 6083, - "source": 1532, + "source": "examples/reti/validatorRegistry.algo.ts:1532", "pc": [ - 5901, - 5902, - 5903 + 6964, + 6965, + 6966 ] }, { "teal": 6087, - "source": 1536, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5904, - 5905, - 5906 + 6967, + 6968, + 6969 ] }, { "teal": 6088, - "source": 1536, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5907, - 5908 + 6970, + 6971 ] }, { "teal": 6089, - "source": 1536, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5909, - 5910, - 5911 + 6972, + 6973, + 6974 ] }, { "teal": 6090, - "source": 1536, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5912 + 6975 ] }, { "teal": 6091, - "source": 1536, + "source": "examples/reti/validatorRegistry.algo.ts:1536", "pc": [ - 5913 + 6976 ] }, { "teal": 6092, - "source": 1532, + "source": "examples/reti/validatorRegistry.algo.ts:1532", "pc": [ - 5914 + 6977 ] }, { "teal": 6095, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5915, - 5916, - 5917, - 5918, - 5919, - 5920 + 6978, + 6979, + 6980, + 6981, + 6982, + 6983 ] }, { "teal": 6096, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5921, - 5922, - 5923 + 6984, + 6985, + 6986 ] }, { "teal": 6097, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5924, - 5925, - 5926, - 5927 + 6987, + 6988, + 6989, + 6990 ] }, { "teal": 6100, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 5928 + 6991 ] }, { "teal": 6103, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5929, - 5930, - 5931, - 5932, - 5933, - 5934 + 6992, + 6993, + 6994, + 6995, + 6996, + 6997 ] }, { "teal": 6104, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5935, - 5936, - 5937, - 5938, - 5939, - 5940 + 6998, + 6999, + 7000, + 7001, + 7002, + 7003 ] }, { "teal": 6105, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5941, - 5942, - 5943, - 5944, - 5945, - 5946 + 7004, + 7005, + 7006, + 7007, + 7008, + 7009 ] }, { "teal": 6106, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5947, - 5948, - 5949, - 5950, - 5951, - 5952 + 7010, + 7011, + 7012, + 7013, + 7014, + 7015 ] }, { "teal": 6107, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5953, - 5954, - 5955, - 5956, - 5957, - 5958 + 7016, + 7017, + 7018, + 7019, + 7020, + 7021 ] }, { "teal": 6108, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5959, - 5960, - 5961, - 5962, - 5963, - 5964 + 7022, + 7023, + 7024, + 7025, + 7026, + 7027 ] }, { "teal": 6109, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5965, - 5966, - 5967, - 5968, - 5969, - 5970 + 7028, + 7029, + 7030, + 7031, + 7032, + 7033 ] }, { "teal": 6110, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5971, - 5972, - 5973, - 5974, - 5975, - 5976 + 7034, + 7035, + 7036, + 7037, + 7038, + 7039 ] }, { "teal": 6111, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5977, - 5978, - 5979, - 5980, - 5981, - 5982 + 7040, + 7041, + 7042, + 7043, + 7044, + 7045 ] }, { "teal": 6112, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5983, - 5984, - 5985, - 5986, - 5987, - 5988 + 7046, + 7047, + 7048, + 7049, + 7050, + 7051 ] }, { "teal": 6113, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5989, - 5990, - 5991, - 5992, - 5993, - 5994 + 7052, + 7053, + 7054, + 7055, + 7056, + 7057 ] }, { "teal": 6114, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 5995, - 5996, - 5997, - 5998, - 5999, - 6000 + 7058, + 7059, + 7060, + 7061, + 7062, + 7063 ] }, { "teal": 6115, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6001, - 6002, - 6003, - 6004, - 6005, - 6006 + 7064, + 7065, + 7066, + 7067, + 7068, + 7069 ] }, { "teal": 6116, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6007, - 6008, - 6009, - 6010, - 6011, - 6012 + 7070, + 7071, + 7072, + 7073, + 7074, + 7075 ] }, { "teal": 6117, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6013, - 6014, - 6015, - 6016, - 6017, - 6018 + 7076, + 7077, + 7078, + 7079, + 7080, + 7081 ] }, { "teal": 6118, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6019, - 6020, - 6021, - 6022, - 6023, - 6024 + 7082, + 7083, + 7084, + 7085, + 7086, + 7087 ] }, { "teal": 6119, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6025, - 6026, - 6027, - 6028, - 6029, - 6030 + 7088, + 7089, + 7090, + 7091, + 7092, + 7093 ] }, { "teal": 6120, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6031, - 6032, - 6033, - 6034, - 6035, - 6036 + 7094, + 7095, + 7096, + 7097, + 7098, + 7099 ] }, { "teal": 6121, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6037, - 6038, - 6039, - 6040, - 6041, - 6042 + 7100, + 7101, + 7102, + 7103, + 7104, + 7105 ] }, { "teal": 6122, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6043, - 6044, - 6045, - 6046, - 6047, - 6048 + 7106, + 7107, + 7108, + 7109, + 7110, + 7111 ] }, { "teal": 6123, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6049, - 6050, - 6051, - 6052, - 6053, - 6054 + 7112, + 7113, + 7114, + 7115, + 7116, + 7117 ] }, { "teal": 6124, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6055, - 6056, - 6057, - 6058, - 6059, - 6060 + 7118, + 7119, + 7120, + 7121, + 7122, + 7123 ] }, { "teal": 6125, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6061, - 6062, - 6063, - 6064, - 6065, - 6066 + 7124, + 7125, + 7126, + 7127, + 7128, + 7129 ] }, { "teal": 6126, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6067, - 6068, - 6069, - 6070, - 6071, - 6072 + 7130, + 7131, + 7132, + 7133, + 7134, + 7135 ] }, { "teal": 6127, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6073, - 6074, - 6075, - 6076, - 6077, - 6078 + 7136, + 7137, + 7138, + 7139, + 7140, + 7141 ] }, { "teal": 6128, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6079, - 6080, - 6081, - 6082, - 6083, - 6084 + 7142, + 7143, + 7144, + 7145, + 7146, + 7147 ] }, { "teal": 6129, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6085, - 6086, - 6087, - 6088, - 6089, - 6090 + 7148, + 7149, + 7150, + 7151, + 7152, + 7153 ] }, { "teal": 6130, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6091, - 6092, - 6093, - 6094, - 6095, - 6096 + 7154, + 7155, + 7156, + 7157, + 7158, + 7159 ] }, { "teal": 6131, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6097, - 6098, - 6099, - 6100, - 6101, - 6102 + 7160, + 7161, + 7162, + 7163, + 7164, + 7165 ] }, { "teal": 6132, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6103, - 6104, - 6105, - 6106, - 6107, - 6108 + 7166, + 7167, + 7168, + 7169, + 7170, + 7171 ] }, { "teal": 6133, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6109, - 6110, - 6111, - 6112, - 6113, - 6114 + 7172, + 7173, + 7174, + 7175, + 7176, + 7177 ] }, { "teal": 6134, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6115, - 6116, - 6117, - 6118, - 6119, - 6120 + 7178, + 7179, + 7180, + 7181, + 7182, + 7183 ] }, { "teal": 6135, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6121, - 6122, - 6123, - 6124, - 6125, - 6126 + 7184, + 7185, + 7186, + 7187, + 7188, + 7189 ] }, { "teal": 6136, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6127, - 6128, - 6129 + 7190, + 7191, + 7192 ] }, { "teal": 6137, - "source": 168, - "pc": [ - 6130, - 6131, - 6132, - 6133, - 6134, - 6135, - 6136, - 6137, - 6138, - 6139, - 6140, - 6141, - 6142, - 6143, - 6144, - 6145, - 6146, - 6147, - 6148, - 6149, - 6150, - 6151, - 6152, - 6153, - 6154, - 6155, - 6156, - 6157, - 6158, - 6159, - 6160, - 6161, - 6162, - 6163, - 6164, - 6165, - 6166, - 6167, - 6168, - 6169, - 6170, - 6171, - 6172, - 6173, - 6174, - 6175, - 6176, - 6177, - 6178, - 6179, - 6180, - 6181, - 6182, - 6183, - 6184, - 6185, - 6186, - 6187, - 6188, - 6189, - 6190, - 6191, - 6192, - 6193, - 6194, - 6195, - 6196, - 6197 + "source": "examples/reti/validatorRegistry.algo.ts:168", + "pc": [ + 7193, + 7194, + 7195, + 7196, + 7197, + 7198, + 7199, + 7200, + 7201, + 7202, + 7203, + 7204, + 7205, + 7206, + 7207, + 7208, + 7209, + 7210, + 7211, + 7212, + 7213, + 7214, + 7215, + 7216, + 7217, + 7218, + 7219, + 7220, + 7221, + 7222, + 7223, + 7224, + 7225, + 7226, + 7227, + 7228, + 7229, + 7230, + 7231, + 7232, + 7233, + 7234, + 7235, + 7236, + 7237, + 7238, + 7239, + 7240, + 7241, + 7242, + 7243, + 7244, + 7245, + 7246, + 7247, + 7248, + 7249, + 7250, + 7251, + 7252, + 7253, + 7254, + 7255, + 7256, + 7257, + 7258, + 7259, + 7260 ] }, { "teal": 6140, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 6198 + 7261 ] }, { "teal": 6143, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6199, - 6200, - 6201, - 6202, - 6203, - 6204 + 7262, + 7263, + 7264, + 7265, + 7266, + 7267 ] }, { "teal": 6144, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6205, - 6206, - 6207 + 7268, + 7269, + 7270 ] }, { "teal": 6145, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "pc": [ - 6208, - 6209, - 6210, - 6211 + 7271, + 7272, + 7273, + 7274 ] }, { "teal": 6148, - "source": 168, + "source": "examples/reti/validatorRegistry.algo.ts:168", "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", "pc": [ - 6212 + 7275 ] } ] \ No newline at end of file diff --git a/examples/simple/artifacts/Simple.approval.teal b/examples/simple/artifacts/Simple.approval.teal index d106eef1e..ab51fbd1b 100644 --- a/examples/simple/artifacts/Simple.approval.teal +++ b/examples/simple/artifacts/Simple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x636f756e746572 0x151f7c75 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -44,7 +45,7 @@ incrementCounter: // execute incr(uint64)void callsub incr - int 1 + pushint 1 return // incr(i: uint64): void @@ -65,7 +66,7 @@ incr: // execute decr(uint64)void callsub decr - int 1 + pushint 1 return // decr(i: uint64): void @@ -91,7 +92,7 @@ decr: txna ApplicationArgs 2 dup len - int 32 + pushint 32 == // argument 0 (b) for add must be a uint256 @@ -101,7 +102,7 @@ decr: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 1 (a) for add must be a uint256 @@ -111,7 +112,7 @@ decr: callsub add dup bitlen - int 256 + pushint 256 <= // add return value overflowed 256 bits @@ -121,13 +122,13 @@ decr: dup len dup - int 32 + pushint 32 - swap substring3 concat log - int 1 + pushint 1 return // add(a: uint256, b: uint256): uint256 @@ -150,7 +151,7 @@ add: txna ApplicationArgs 2 dup len - int 32 + pushint 32 == // argument 0 (b) for sub must be a uint256 @@ -160,7 +161,7 @@ add: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 1 (a) for sub must be a uint256 @@ -170,7 +171,7 @@ add: callsub sub dup bitlen - int 256 + pushint 256 <= // sub return value overflowed 256 bits @@ -180,13 +181,13 @@ add: dup len dup - int 32 + pushint 32 - swap substring3 concat log - int 1 + pushint 1 return // sub(a: uint256, b: uint256): uint256 @@ -201,11 +202,11 @@ sub: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -213,10 +214,10 @@ sub: err *call_NoOp: - method "incr(uint64)void" - method "decr(uint64)void" - method "add(uint256,uint256)uint256" - method "sub(uint256,uint256)uint256" + pushbytes 0x9fab8610 // method "incr(uint64)void" + pushbytes 0x2e0c5a47 // method "decr(uint64)void" + pushbytes 0xac976e02 // method "add(uint256,uint256)uint256" + pushbytes 0x091b32a7 // method "sub(uint256,uint256)uint256" txna ApplicationArgs 0 match *abi_route_incr *abi_route_decr *abi_route_add *abi_route_sub diff --git a/examples/simple/artifacts/Simple.arc32.json b/examples/simple/artifacts/Simple.arc32.json index 98343c80b..955351463 100644 --- a/examples/simple/artifacts/Simple.arc32.json +++ b/examples/simple/artifacts/Simple.arc32.json @@ -59,8 +59,8 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBpbmNyZW1lbnRDb3VudGVyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcmVtZW50Q291bnRlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czo3CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgKyBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbmNyKHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5jcjoKCS8vIGk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5jcih1aW50NjQpdm9pZAoJY2FsbHN1YiBpbmNyCglpbnQgMQoJcmV0dXJuCgovLyBpbmNyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxMQoJLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKGkpCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgljYWxsc3ViIGluY3JlbWVudENvdW50ZXIKCXJldHN1YgoKLy8gZGVjcih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RlY3I6CgkvLyBpOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRlY3IodWludDY0KXZvaWQKCWNhbGxzdWIgZGVjcgoJaW50IDEKCXJldHVybgoKLy8gZGVjcihpOiB1aW50NjQpOiB2b2lkCmRlY3I6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MTUKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSAtIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCS0KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2FkZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgYWRkIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBhZGQgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFkZAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYWRkIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxOQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJcmV0c3ViCgovLyBzdWIodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9zdWI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHN1YiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3Igc3ViIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHN1Yih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBzdWIKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHN1YiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN1YihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpzdWI6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjMKCS8vIHJldHVybiBhIC0gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYi0KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImluY3IodWludDY0KXZvaWQiCgltZXRob2QgImRlY3IodWludDY0KXZvaWQiCgltZXRob2QgImFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAic3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbmNyICphYmlfcm91dGVfZGVjciAqYWJpX3JvdXRlX2FkZCAqYWJpX3JvdXRlX3N1YgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjcKLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKDEpCmludCAxCmNhbGxzdWIgaW5jcmVtZW50Q291bnRlcgppbnQgMQpyZXR1cm4KCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWI=" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIDB4NjM2Zjc1NmU3NDY1NzIgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGluY3IodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9pbmNyOgoJLy8gaTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbmNyKHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluY3IKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBpbmNyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxMQoJLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKGkpCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgljYWxsc3ViIGluY3JlbWVudENvdW50ZXIKCXJldHN1YgoKLy8gZGVjcih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RlY3I6CgkvLyBpOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRlY3IodWludDY0KXZvaWQKCWNhbGxzdWIgZGVjcgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGRlY3IoaTogdWludDY0KTogdm9pZApkZWNyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjE1CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgLSBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgktCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhZGQodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9hZGQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBhZGQgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBhZGQgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFkZAoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIGFkZCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWRkKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxOQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJcmV0c3ViCgovLyBzdWIodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9zdWI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBzdWIgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBzdWIgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHN1YgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIHN1YiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3ViKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnN1YjoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoyMwoJLy8gcmV0dXJuIGEgLSBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5ZmFiODYxMCAvLyBtZXRob2QgImluY3IodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgyZTBjNWE0NyAvLyBtZXRob2QgImRlY3IodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhhYzk3NmUwMiAvLyBtZXRob2QgImFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCXB1c2hieXRlcyAweDA5MWIzMmE3IC8vIG1ldGhvZCAic3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbmNyICphYmlfcm91dGVfZGVjciAqYWJpX3JvdXRlX2FkZCAqYWJpX3JvdXRlX3N1YgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjcKLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKDEpCmJ5dGVjYmxvY2sgMHg2MzZmNzU2ZTc0NjU3MgpwdXNoaW50IDEKY2FsbHN1YiBpbmNyZW1lbnRDb3VudGVyCnB1c2hpbnQgMQpyZXR1cm4KCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWI=" }, "contract": { "name": "Simple", diff --git a/examples/simple/artifacts/Simple.arc56_draft.json b/examples/simple/artifacts/Simple.arc56_draft.json index 63405d145..18a2e58e3 100644 --- a/examples/simple/artifacts/Simple.arc56_draft.json +++ b/examples/simple/artifacts/Simple.arc56_draft.json @@ -134,1070 +134,77 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 3, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ] - }, - { - "teal": 13, - "source": 3, - "pc": [ - 55, - 56 - ] - }, - { - "teal": 14, - "source": 3, - "pc": [ - 57 - ] - }, - { - "teal": 15, - "source": 3, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 16, - "source": 3, - "pc": [ - 60 - ] - }, - { - "teal": 17, - "source": 3, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 18, - "source": 3, - "pc": [ - 63 - ] - }, - { - "teal": 19, - "source": 3, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 23, - "source": 3, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 90 - ] - }, - { - "teal": 27, - "source": 6, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 31, - "source": 7, - "pc": [ - 94 - ] - }, - { - "teal": 32, - "source": 7, - "pc": [ - 95 - ] - }, - { - "teal": 33, - "source": 7, - "pc": [ - 96 - ] - }, - { - "teal": 34, - "source": 7, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 35, - "source": 7, - "pc": [ - 99 - ] - }, - { - "teal": 36, - "source": 7, - "pc": [ - 100 - ] - }, - { - "teal": 37, - "source": 6, - "pc": [ - 101 - ] - }, - { - "teal": 42, - "source": 10, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 43, - "source": 10, - "pc": [ - 105 - ] - }, - { - "teal": 46, - "source": 10, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 47, - "source": 10, - "pc": [ - 109 - ] - }, - { - "teal": 48, - "source": 10, - "pc": [ - 110 - ] - }, - { - "teal": 52, - "source": 10, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 56, - "source": 11, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 57, - "source": 11, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 58, - "source": 10, - "pc": [ - 119 - ] - }, - { - "teal": 63, - "source": 14, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 64, - "source": 14, - "pc": [ - 123 - ] - }, - { - "teal": 67, - "source": 14, - "pc": [ - 124, - 125, - 126 - ] - }, - { - "teal": 68, - "source": 14, - "pc": [ - 127 - ] - }, - { - "teal": 69, - "source": 14, - "pc": [ - 128 - ] - }, - { - "teal": 73, - "source": 14, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 77, - "source": 15, - "pc": [ - 132 - ] - }, - { - "teal": 78, - "source": 15, - "pc": [ - 133 - ] - }, - { - "teal": 79, - "source": 15, - "pc": [ - 134 - ] - }, - { - "teal": 80, - "source": 15, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 81, - "source": 15, - "pc": [ - 137 - ] - }, - { - "teal": 82, - "source": 15, - "pc": [ - 138 - ] - }, - { - "teal": 83, - "source": 14, - "pc": [ - 139 - ] - }, - { - "teal": 88, - "source": 18, - "pc": [ - 140 - ] - }, - { - "teal": 91, - "source": 18, - "pc": [ - 141, - 142, - 143 - ] - }, - { - "teal": 92, - "source": 18, - "pc": [ - 144 - ] - }, - { - "teal": 93, - "source": 18, - "pc": [ - 145 - ] - }, - { - "teal": 94, - "source": 18, - "pc": [ - 146 - ] - }, - { - "teal": 95, - "source": 18, - "pc": [ - 147 - ] - }, - { - "teal": 98, - "source": 18, - "errorMessage": "argument 0 (b) for add must be a uint256", - "pc": [ - 148 - ] - }, - { - "teal": 101, - "source": 18, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 102, - "source": 18, - "pc": [ - 152 - ] - }, - { - "teal": 103, - "source": 18, - "pc": [ - 153 - ] - }, - { - "teal": 104, - "source": 18, - "pc": [ - 154 - ] - }, - { - "teal": 105, - "source": 18, - "pc": [ - 155 - ] - }, - { - "teal": 108, - "source": 18, - "errorMessage": "argument 1 (a) for add must be a uint256", - "pc": [ - 156 - ] - }, - { - "teal": 111, - "source": 18, - "pc": [ - 157, - 158, - 159 - ] - }, - { - "teal": 112, - "source": 18, - "pc": [ - 160 - ] - }, - { - "teal": 113, - "source": 18, - "pc": [ - 161 - ] - }, - { - "teal": 114, - "source": 18, - "pc": [ - 162 - ] - }, - { - "teal": 115, - "source": 18, - "pc": [ - 163 - ] - }, - { - "teal": 118, - "source": 18, - "errorMessage": "add return value overflowed 256 bits", - "pc": [ - 164 - ] - }, - { - "teal": 119, - "source": 18, - "pc": [ - 165 - ] - }, - { - "teal": 120, - "source": 18, - "pc": [ - 166 - ] - }, - { - "teal": 121, - "source": 18, - "pc": [ - 167 - ] - }, - { - "teal": 122, - "source": 18, - "pc": [ - 168 - ] - }, - { - "teal": 123, - "source": 18, - "pc": [ - 169 - ] - }, - { - "teal": 124, - "source": 18, - "pc": [ - 170 - ] - }, - { - "teal": 125, - "source": 18, - "pc": [ - 171 - ] - }, - { - "teal": 126, - "source": 18, - "pc": [ - 172 - ] - }, - { - "teal": 127, - "source": 18, - "pc": [ - 173 - ] - }, - { - "teal": 128, - "source": 18, - "pc": [ - 174 - ] - }, - { - "teal": 129, - "source": 18, - "pc": [ - 175 - ] - }, - { - "teal": 130, - "source": 18, - "pc": [ - 176 - ] - }, - { - "teal": 131, - "source": 18, - "pc": [ - 177 - ] - }, - { - "teal": 135, - "source": 18, - "pc": [ - 178, - 179, - 180 - ] - }, - { - "teal": 139, - "source": 19, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 140, - "source": 19, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 141, - "source": 19, - "pc": [ - 185 - ] - }, - { - "teal": 142, - "source": 18, - "pc": [ - 186 - ] - }, - { - "teal": 147, - "source": 22, - "pc": [ - 187 - ] - }, - { - "teal": 150, - "source": 22, - "pc": [ - 188, - 189, - 190 - ] - }, - { - "teal": 151, - "source": 22, - "pc": [ - 191 - ] - }, - { - "teal": 152, - "source": 22, - "pc": [ - 192 - ] - }, - { - "teal": 153, - "source": 22, - "pc": [ - 193 - ] - }, - { - "teal": 154, - "source": 22, - "pc": [ - 194 - ] - }, - { - "teal": 157, - "source": 22, - "errorMessage": "argument 0 (b) for sub must be a uint256", - "pc": [ - 195 - ] - }, - { - "teal": 160, - "source": 22, - "pc": [ - 196, - 197, - 198 - ] - }, - { - "teal": 161, - "source": 22, - "pc": [ - 199 - ] - }, - { - "teal": 162, - "source": 22, - "pc": [ - 200 - ] - }, - { - "teal": 163, - "source": 22, - "pc": [ - 201 - ] - }, - { - "teal": 164, - "source": 22, - "pc": [ - 202 - ] - }, - { - "teal": 167, - "source": 22, - "errorMessage": "argument 1 (a) for sub must be a uint256", - "pc": [ - 203 - ] - }, - { - "teal": 170, - "source": 22, - "pc": [ - 204, - 205, - 206 - ] - }, - { - "teal": 171, - "source": 22, - "pc": [ - 207 - ] - }, - { - "teal": 172, - "source": 22, - "pc": [ - 208 - ] - }, - { - "teal": 173, - "source": 22, - "pc": [ - 209 - ] - }, - { - "teal": 174, - "source": 22, - "pc": [ - 210 - ] - }, - { - "teal": 177, - "source": 22, - "errorMessage": "sub return value overflowed 256 bits", - "pc": [ - 211 - ] - }, - { - "teal": 178, - "source": 22, - "pc": [ - 212 - ] - }, - { - "teal": 179, - "source": 22, - "pc": [ - 213 - ] - }, - { - "teal": 180, - "source": 22, - "pc": [ - 214 - ] - }, - { - "teal": 181, - "source": 22, - "pc": [ - 215 - ] - }, - { - "teal": 182, - "source": 22, - "pc": [ - 216 - ] - }, - { - "teal": 183, - "source": 22, - "pc": [ - 217 - ] - }, - { - "teal": 184, - "source": 22, - "pc": [ - 218 - ] - }, - { - "teal": 185, - "source": 22, - "pc": [ - 219 - ] - }, - { - "teal": 186, - "source": 22, - "pc": [ - 220 - ] - }, - { - "teal": 187, - "source": 22, - "pc": [ - 221 - ] - }, - { - "teal": 188, - "source": 22, - "pc": [ - 222 - ] - }, - { - "teal": 189, - "source": 22, - "pc": [ - 223 - ] - }, - { - "teal": 190, - "source": 22, - "pc": [ - 224 - ] - }, - { - "teal": 194, - "source": 22, - "pc": [ - 225, - 226, - 227 - ] - }, - { - "teal": 198, - "source": 23, - "pc": [ - 228, - 229 - ] - }, - { - "teal": 199, - "source": 23, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 200, - "source": 23, - "pc": [ - 232 - ] - }, - { - "teal": 201, - "source": 22, - "pc": [ - 233 - ] - }, - { - "teal": 204, - "source": 3, - "pc": [ - 234 - ] - }, - { - "teal": 205, - "source": 3, - "pc": [ - 235 - ] - }, - { - "teal": 208, - "source": 3, - "pc": [ - 236, - 237, - 238, - 239, - 240, - 241 - ] - }, - { - "teal": 209, - "source": 3, - "pc": [ - 242, - 243, - 244 - ] - }, - { - "teal": 210, - "source": 3, - "pc": [ - 245, - 246, - 247, - 248 - ] - }, - { - "teal": 213, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 249 - ] - }, - { - "teal": 216, - "source": 3, - "pc": [ - 250, - 251, - 252, - 253, - 254, - 255 - ] - }, - { - "teal": 217, - "source": 3, - "pc": [ - 256, - 257, - 258, - 259, - 260, - 261 - ] - }, - { - "teal": 218, - "source": 3, - "pc": [ - 262, - 263, - 264, - 265, - 266, - 267 - ] - }, - { - "teal": 219, - "source": 3, - "pc": [ - 268, - 269, - 270, - 271, - 272, - 273 - ] - }, - { - "teal": 220, - "source": 3, - "pc": [ - 274, - 275, - 276 - ] - }, - { - "teal": 221, - "source": 3, - "pc": [ - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286 - ] - }, - { - "teal": 224, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 287 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 84 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 166 + ], + "errorMessage": "argument 0 (b) for add must be a uint256" + }, + { + "pc": [ + 175 + ], + "errorMessage": "argument 1 (a) for add must be a uint256" + }, + { + "pc": [ + 185 + ], + "errorMessage": "add return value overflowed 256 bits" + }, + { + "pc": [ + 257 + ], + "errorMessage": "argument 0 (b) for sub must be a uint256" + }, + { + "pc": [ + 266 + ], + "errorMessage": "argument 1 (a) for sub must be a uint256" + }, + { + "pc": [ + 276 + ], + "errorMessage": "sub return value overflowed 256 bits" + }, + { + "pc": [ + 350 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 388 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBpbmNyZW1lbnRDb3VudGVyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcmVtZW50Q291bnRlcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czo3CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgKyBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgkrCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBpbmNyKHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfaW5jcjoKCS8vIGk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgaW5jcih1aW50NjQpdm9pZAoJY2FsbHN1YiBpbmNyCglpbnQgMQoJcmV0dXJuCgovLyBpbmNyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxMQoJLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKGkpCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgljYWxsc3ViIGluY3JlbWVudENvdW50ZXIKCXJldHN1YgoKLy8gZGVjcih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RlY3I6CgkvLyBpOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRlY3IodWludDY0KXZvaWQKCWNhbGxzdWIgZGVjcgoJaW50IDEKCXJldHVybgoKLy8gZGVjcihpOiB1aW50NjQpOiB2b2lkCmRlY3I6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MTUKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSAtIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCS0KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2FkZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgYWRkIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBhZGQgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFkZAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYWRkIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxOQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJcmV0c3ViCgovLyBzdWIodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9zdWI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHN1YiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3Igc3ViIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHN1Yih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBzdWIKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHN1YiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN1YihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpzdWI6Cglwcm90byAyIDEKCgkvLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjMKCS8vIHJldHVybiBhIC0gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYi0KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImluY3IodWludDY0KXZvaWQiCgltZXRob2QgImRlY3IodWludDY0KXZvaWQiCgltZXRob2QgImFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAic3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbmNyICphYmlfcm91dGVfZGVjciAqYWJpX3JvdXRlX2FkZCAqYWJpX3JvdXRlX3N1YgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjcKLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKDEpCmludCAxCmNhbGxzdWIgaW5jcmVtZW50Q291bnRlcgppbnQgMQpyZXR1cm4KCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWI=" + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIDB4NjM2Zjc1NmU3NDY1NzIgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGluY3IodWludDY0KXZvaWQKKmFiaV9yb3V0ZV9pbmNyOgoJLy8gaTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbmNyKHVpbnQ2NCl2b2lkCgljYWxsc3ViIGluY3IKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBpbmNyKGk6IHVpbnQ2NCk6IHZvaWQKaW5jcjoKCXByb3RvIDEgMAoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxMQoJLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKGkpCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgljYWxsc3ViIGluY3JlbWVudENvdW50ZXIKCXJldHN1YgoKLy8gZGVjcih1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RlY3I6CgkvLyBpOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRlY3IodWludDY0KXZvaWQKCWNhbGxzdWIgZGVjcgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGRlY3IoaTogdWludDY0KTogdm9pZApkZWNyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjE1CgkvLyB0aGlzLmNvdW50ZXIudmFsdWUgPSB0aGlzLmNvdW50ZXIudmFsdWUgLSBpCglieXRlIDB4NjM2Zjc1NmU3NDY1NzIgLy8gImNvdW50ZXIiCglkdXAKCWFwcF9nbG9iYWxfZ2V0CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CgktCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhZGQodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9hZGQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBhZGQgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBhZGQgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGFkZAoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIGFkZCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWRkKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmFkZDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoxOQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJcmV0c3ViCgovLyBzdWIodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9zdWI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBzdWIgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBzdWIgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHN1YgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIHN1YiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3ViKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnN1YjoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL3NpbXBsZS9zaW1wbGUuYWxnby50czoyMwoJLy8gcmV0dXJuIGEgLSBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5ZmFiODYxMCAvLyBtZXRob2QgImluY3IodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgyZTBjNWE0NyAvLyBtZXRob2QgImRlY3IodWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHhhYzk3NmUwMiAvLyBtZXRob2QgImFkZCh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCXB1c2hieXRlcyAweDA5MWIzMmE3IC8vIG1ldGhvZCAic3ViKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9pbmNyICphYmlfcm91dGVfZGVjciAqYWJpX3JvdXRlX2FkZCAqYWJpX3JvdXRlX3N1YgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBleGFtcGxlcy9zaW1wbGUvc2ltcGxlLmFsZ28udHM6MjcKLy8gdGhpcy5pbmNyZW1lbnRDb3VudGVyKDEpCmJ5dGVjYmxvY2sgMHg2MzZmNzU2ZTc0NjU3MgpwdXNoaW50IDEKY2FsbHN1YiBpbmNyZW1lbnRDb3VudGVyCnB1c2hpbnQgMQpyZXR1cm4KCi8vIGluY3JlbWVudENvdW50ZXIoaTogdWludDY0KTogdm9pZAppbmNyZW1lbnRDb3VudGVyOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvc2ltcGxlL3NpbXBsZS5hbGdvLnRzOjcKCS8vIHRoaXMuY291bnRlci52YWx1ZSA9IHRoaXMuY291bnRlci52YWx1ZSArIGkKCWJ5dGUgMHg2MzZmNzU2ZTc0NjU3MiAvLyAiY291bnRlciIKCWR1cAoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCSsKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWI=" }, "byteCode": { - "approval": "CiADIAGAAiYDB2NvdW50ZXIEFR98dSD//////////////////////////////////////////zEYFIEGCzEZCI0MAKAAAAAAAAAAAAAAAJIAAAAAAAAAAAAAAIoBAChJZIv/CGeJNhoBF4gAAiNDigEAi/+I/+SJNhoBF4gAAiNDigEAKElki/8JZ4kpNhoCSRUiEkQ2GgFJFSISRIgAEkmTJA5EKqxJFUkiCUxSULAjQ4oCAYv/i/6giSk2GgJJFSISRDYaAUkVIhJEiAASSZMkDkQqrEkVSSIJTFJQsCNDigIBi/+L/qGJI0OABLhEezY2GgCOAf/xAIAEn6uGEIAELgxaR4AErJduAoAECRsypzYaAI4E/0f/Wf9t/5wA", - "clear": "CiABASKIAAIiQ4oBAIAHY291bnRlcklki/8IZ4k=" + "approval": "CiYDIP//////////////////////////////////////////B2NvdW50ZXIEFR98dTEYFIEGCzEZCI0MAQsAAAAAAAAAAAAAAP0AAAAAAAAAAAAAAIoBAIAHY291bnRlcklki/8IZ4k2GgEXiAADgQFDigEAi/+I/9uJNhoBF4gAA4EBQ4oBAIAHY291bnRlcklki/8JZ4mABBUffHU2GgJJFYEgEkQ2GgFJFYEgEkSIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigIBi/+L/qCJgAQVH3x1NhoCSRWBIBJENhoBSRWBIBJEiAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oCAYv/i/6hiYEBQ4AEuER7NjYaAI4B//AAgASfq4YQgAQuDFpHgASsl24CgAQJGzKnNhoAjgT+5P73/xT/bwA=", + "clear": "CiYBB2NvdW50ZXKBAYgAA4EBQ4oBAIAHY291bnRlcklki/8IZ4k=" }, "compilerInfo": { "compiler": "algod", diff --git a/examples/simple/artifacts/Simple.clear.teal b/examples/simple/artifacts/Simple.clear.teal index 2bf26d6f1..014730592 100644 --- a/examples/simple/artifacts/Simple.clear.teal +++ b/examples/simple/artifacts/Simple.clear.teal @@ -2,9 +2,10 @@ // examples/simple/simple.algo.ts:27 // this.incrementCounter(1) -int 1 +bytecblock 0x636f756e746572 +pushint 1 callsub incrementCounter -int 1 +pushint 1 return // incrementCounter(i: uint64): void diff --git a/examples/simple/artifacts/Simple.src_map.json b/examples/simple/artifacts/Simple.src_map.json index 9170794a8..ecaf7c738 100644 --- a/examples/simple/artifacts/Simple.src_map.json +++ b/examples/simple/artifacts/Simple.src_map.json @@ -1,9 +1,15 @@ [ { "teal": 1, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 0, 1, 2, 3, @@ -51,64 +57,64 @@ 45, 46, 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54 - ] - }, - { - "teal": 13, - "source": 3, - "pc": [ - 55, - 56 + 48 ] }, { "teal": 14, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 57 + 49, + 50 ] }, { "teal": 15, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 58, - 59 + 51 ] }, { "teal": 16, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 60 + 52, + 53 ] }, { "teal": 17, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 61, - 62 + 54 ] }, { "teal": 18, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 63 + 55, + 56 ] }, { "teal": 19, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ + 57 + ] + }, + { + "teal": 20, + "source": "examples/simple/simple.algo.ts:3", + "pc": [ + 58, + 59, + 60, + 61, + 62, + 63, 64, 65, 66, @@ -128,928 +134,1029 @@ 80, 81, 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 + 83 ] }, { - "teal": 23, - "source": 3, + "teal": 24, + "source": "examples/simple/simple.algo.ts:3", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ - 90 + 84 ] }, { - "teal": 27, - "source": 6, + "teal": 28, + "source": "examples/simple/simple.algo.ts:6", "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 31, - "source": 7, - "pc": [ - 94 + 85, + 86, + 87 ] }, { "teal": 32, - "source": 7, + "source": "examples/simple/simple.algo.ts:7", "pc": [ - 95 + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96 ] }, { "teal": 33, - "source": 7, + "source": "examples/simple/simple.algo.ts:7", "pc": [ - 96 + 97 ] }, { "teal": 34, - "source": 7, + "source": "examples/simple/simple.algo.ts:7", "pc": [ - 97, 98 ] }, { "teal": 35, - "source": 7, + "source": "examples/simple/simple.algo.ts:7", "pc": [ - 99 + 99, + 100 ] }, { "teal": 36, - "source": 7, + "source": "examples/simple/simple.algo.ts:7", "pc": [ - 100 + 101 ] }, { "teal": 37, - "source": 6, + "source": "examples/simple/simple.algo.ts:7", "pc": [ - 101 + 102 ] }, { - "teal": 42, - "source": 10, + "teal": 38, + "source": "examples/simple/simple.algo.ts:6", "pc": [ - 102, - 103, - 104 + 103 ] }, { "teal": 43, - "source": 10, + "source": "examples/simple/simple.algo.ts:10", "pc": [ - 105 + 104, + 105, + 106 ] }, { - "teal": 46, - "source": 10, + "teal": 44, + "source": "examples/simple/simple.algo.ts:10", "pc": [ - 106, - 107, - 108 + 107 ] }, { "teal": 47, - "source": 10, + "source": "examples/simple/simple.algo.ts:10", "pc": [ - 109 + 108, + 109, + 110 ] }, { "teal": 48, - "source": 10, + "source": "examples/simple/simple.algo.ts:10", "pc": [ - 110 + 111, + 112 ] }, { - "teal": 52, - "source": 10, + "teal": 49, + "source": "examples/simple/simple.algo.ts:10", "pc": [ - 111, - 112, 113 ] }, { - "teal": 56, - "source": 11, + "teal": 53, + "source": "examples/simple/simple.algo.ts:10", "pc": [ 114, - 115 + 115, + 116 ] }, { "teal": 57, - "source": 11, + "source": "examples/simple/simple.algo.ts:11", "pc": [ - 116, 117, 118 ] }, { "teal": 58, - "source": 10, + "source": "examples/simple/simple.algo.ts:11", "pc": [ - 119 + 119, + 120, + 121 ] }, { - "teal": 63, - "source": 14, + "teal": 59, + "source": "examples/simple/simple.algo.ts:10", "pc": [ - 120, - 121, 122 ] }, { "teal": 64, - "source": 14, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 123 + 123, + 124, + 125 ] }, { - "teal": 67, - "source": 14, + "teal": 65, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 124, - 125, 126 ] }, { "teal": 68, - "source": 14, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 127 + 127, + 128, + 129 ] }, { "teal": 69, - "source": 14, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 128 + 130, + 131 ] }, { - "teal": 73, - "source": 14, + "teal": 70, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 129, - 130, - 131 + 132 ] }, { - "teal": 77, - "source": 15, + "teal": 74, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 132 + 133, + 134, + 135 ] }, { "teal": 78, - "source": 15, + "source": "examples/simple/simple.algo.ts:15", "pc": [ - 133 + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144 ] }, { "teal": 79, - "source": 15, + "source": "examples/simple/simple.algo.ts:15", "pc": [ - 134 + 145 ] }, { "teal": 80, - "source": 15, + "source": "examples/simple/simple.algo.ts:15", "pc": [ - 135, - 136 + 146 ] }, { "teal": 81, - "source": 15, + "source": "examples/simple/simple.algo.ts:15", "pc": [ - 137 + 147, + 148 ] }, { "teal": 82, - "source": 15, + "source": "examples/simple/simple.algo.ts:15", "pc": [ - 138 + 149 ] }, { "teal": 83, - "source": 14, + "source": "examples/simple/simple.algo.ts:15", "pc": [ - 139 + 150 ] }, { - "teal": 88, - "source": 18, + "teal": 84, + "source": "examples/simple/simple.algo.ts:14", "pc": [ - 140 + 151 ] }, { - "teal": 91, - "source": 18, + "teal": 89, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 141, - 142, - 143 + 152, + 153, + 154, + 155, + 156, + 157 ] }, { "teal": 92, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 144 + 158, + 159, + 160 ] }, { "teal": 93, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 145 + 161 ] }, { "teal": 94, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 146 + 162 ] }, { "teal": 95, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 147 + 163, + 164 ] }, { - "teal": 98, - "source": 18, - "errorMessage": "argument 0 (b) for add must be a uint256", + "teal": 96, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 148 + 165 ] }, { - "teal": 101, - "source": 18, + "teal": 99, + "source": "examples/simple/simple.algo.ts:18", + "errorMessage": "argument 0 (b) for add must be a uint256", "pc": [ - 149, - 150, - 151 + 166 ] }, { "teal": 102, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 152 + 167, + 168, + 169 ] }, { "teal": 103, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 153 + 170 ] }, { "teal": 104, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 154 + 171 ] }, { "teal": 105, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 155 + 172, + 173 ] }, { - "teal": 108, - "source": 18, - "errorMessage": "argument 1 (a) for add must be a uint256", + "teal": 106, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 156 + 174 ] }, { - "teal": 111, - "source": 18, + "teal": 109, + "source": "examples/simple/simple.algo.ts:18", + "errorMessage": "argument 1 (a) for add must be a uint256", "pc": [ - 157, - 158, - 159 + 175 ] }, { "teal": 112, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 160 + 176, + 177, + 178 ] }, { "teal": 113, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 161 + 179 ] }, { "teal": 114, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 162 + 180 ] }, { "teal": 115, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 163 + 181, + 182, + 183 ] }, { - "teal": 118, - "source": 18, - "errorMessage": "add return value overflowed 256 bits", + "teal": 116, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 164 + 184 ] }, { "teal": 119, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", + "errorMessage": "add return value overflowed 256 bits", "pc": [ - 165 + 185 ] }, { "teal": 120, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 166 + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219 ] }, { "teal": 121, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 167 + 220 ] }, { "teal": 122, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 168 + 221 ] }, { "teal": 123, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 169 + 222 ] }, { "teal": 124, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 170 + 223 ] }, { "teal": 125, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 171 + 224, + 225 ] }, { "teal": 126, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 172 + 226 ] }, { "teal": 127, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 173 + 227 ] }, { "teal": 128, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 174 + 228 ] }, { "teal": 129, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 175 + 229 ] }, { "teal": 130, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 176 + 230 ] }, { "teal": 131, - "source": 18, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 177 + 231, + 232 ] }, { - "teal": 135, - "source": 18, + "teal": 132, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 178, - 179, - 180 + 233 ] }, { - "teal": 139, - "source": 19, + "teal": 136, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 181, - 182 + 234, + 235, + 236 ] }, { "teal": 140, - "source": 19, + "source": "examples/simple/simple.algo.ts:19", "pc": [ - 183, - 184 + 237, + 238 ] }, { "teal": 141, - "source": 19, + "source": "examples/simple/simple.algo.ts:19", "pc": [ - 185 + 239, + 240 ] }, { "teal": 142, - "source": 18, + "source": "examples/simple/simple.algo.ts:19", "pc": [ - 186 + 241 ] }, { - "teal": 147, - "source": 22, + "teal": 143, + "source": "examples/simple/simple.algo.ts:18", "pc": [ - 187 + 242 ] }, { - "teal": 150, - "source": 22, + "teal": 148, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 188, - 189, - 190 + 243, + 244, + 245, + 246, + 247, + 248 ] }, { "teal": 151, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 191 + 249, + 250, + 251 ] }, { "teal": 152, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 192 + 252 ] }, { "teal": 153, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 193 + 253 ] }, { "teal": 154, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 194 + 254, + 255 ] }, { - "teal": 157, - "source": 22, - "errorMessage": "argument 0 (b) for sub must be a uint256", + "teal": 155, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 195 + 256 ] }, { - "teal": 160, - "source": 22, + "teal": 158, + "source": "examples/simple/simple.algo.ts:22", + "errorMessage": "argument 0 (b) for sub must be a uint256", "pc": [ - 196, - 197, - 198 + 257 ] }, { "teal": 161, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 199 + 258, + 259, + 260 ] }, { "teal": 162, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 200 + 261 ] }, { "teal": 163, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 201 + 262 ] }, { "teal": 164, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 202 + 263, + 264 ] }, { - "teal": 167, - "source": 22, - "errorMessage": "argument 1 (a) for sub must be a uint256", + "teal": 165, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 203 + 265 ] }, { - "teal": 170, - "source": 22, + "teal": 168, + "source": "examples/simple/simple.algo.ts:22", + "errorMessage": "argument 1 (a) for sub must be a uint256", "pc": [ - 204, - 205, - 206 + 266 ] }, { "teal": 171, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 207 + 267, + 268, + 269 ] }, { "teal": 172, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 208 + 270 ] }, { "teal": 173, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 209 + 271 ] }, { "teal": 174, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 210 + 272, + 273, + 274 ] }, { - "teal": 177, - "source": 22, - "errorMessage": "sub return value overflowed 256 bits", + "teal": 175, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 211 + 275 ] }, { "teal": 178, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", + "errorMessage": "sub return value overflowed 256 bits", "pc": [ - 212 + 276 ] }, { "teal": 179, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 213 + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310 ] }, { "teal": 180, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 214 + 311 ] }, { "teal": 181, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 215 + 312 ] }, { "teal": 182, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 216 + 313 ] }, { "teal": 183, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 217 + 314 ] }, { "teal": 184, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 218 + 315, + 316 ] }, { "teal": 185, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 219 + 317 ] }, { "teal": 186, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 220 + 318 ] }, { "teal": 187, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 221 + 319 ] }, { "teal": 188, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 222 + 320 ] }, { "teal": 189, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 223 + 321 ] }, { "teal": 190, - "source": 22, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 224 + 322, + 323 ] }, { - "teal": 194, - "source": 22, + "teal": 191, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 225, - 226, - 227 + 324 ] }, { - "teal": 198, - "source": 23, + "teal": 195, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 228, - 229 + 325, + 326, + 327 ] }, { "teal": 199, - "source": 23, + "source": "examples/simple/simple.algo.ts:23", "pc": [ - 230, - 231 + 328, + 329 ] }, { "teal": 200, - "source": 23, + "source": "examples/simple/simple.algo.ts:23", "pc": [ - 232 + 330, + 331 ] }, { "teal": 201, - "source": 22, + "source": "examples/simple/simple.algo.ts:23", "pc": [ - 233 + 332 ] }, { - "teal": 204, - "source": 3, + "teal": 202, + "source": "examples/simple/simple.algo.ts:22", "pc": [ - 234 + 333 ] }, { "teal": 205, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 235 + 334, + 335 ] }, { - "teal": 208, - "source": 3, + "teal": 206, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 236, - 237, - 238, - 239, - 240, - 241 + 336 ] }, { "teal": 209, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 242, - 243, - 244 + 337, + 338, + 339, + 340, + 341, + 342 ] }, { "teal": 210, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 245, - 246, - 247, - 248 + 343, + 344, + 345 ] }, { - "teal": 213, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 211, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 249 + 346, + 347, + 348, + 349 ] }, { - "teal": 216, - "source": 3, + "teal": 214, + "source": "examples/simple/simple.algo.ts:3", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 250, - 251, - 252, - 253, - 254, - 255 + 350 ] }, { "teal": 217, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 256, - 257, - 258, - 259, - 260, - 261 + 351, + 352, + 353, + 354, + 355, + 356 ] }, { "teal": 218, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 262, - 263, - 264, - 265, - 266, - 267 + 357, + 358, + 359, + 360, + 361, + 362 ] }, { "teal": 219, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 268, - 269, - 270, - 271, - 272, - 273 + 363, + 364, + 365, + 366, + 367, + 368 ] }, { "teal": 220, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 274, - 275, - 276 + 369, + 370, + 371, + 372, + 373, + 374 ] }, { "teal": 221, - "source": 3, + "source": "examples/simple/simple.algo.ts:3", "pc": [ - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286 + 375, + 376, + 377 + ] + }, + { + "teal": 222, + "source": "examples/simple/simple.algo.ts:3", + "pc": [ + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387 ] }, { - "teal": 224, - "source": 3, + "teal": 225, + "source": "examples/simple/simple.algo.ts:3", "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 287 + 388 ] } ] \ No newline at end of file diff --git a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal index 8760e4721..e33ba4b09 100644 --- a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal +++ b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 +bytecblock 0x 0x0004 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -71,7 +73,7 @@ setMyContact: // examples/tuple_in_box/app.algo.ts:14 // this.myContact.value = contact - byte 0x6d79436f6e74616374 // "myContact" + pushbytes 0x6d79436f6e74616374 // "myContact" frame_dig 0 // contact: Contact app_global_put @@ -91,7 +93,7 @@ setMyContact: txna ApplicationArgs 3 dup len - int 32 + pushint 32 == // argument 0 (address) for addContact must be a address @@ -158,7 +160,7 @@ addContact: txna ApplicationArgs 3 dup len - int 32 + pushint 32 == // argument 0 (address) for updateContactField must be a address @@ -185,7 +187,7 @@ updateContactField: // examples/tuple_in_box/app.algo.ts:24 // field === 'name' frame_dig -1 // field: string - byte 0x6e616d65 // "name" + pushbytes 0x6e616d65 // "name" == bz *if0_elseif1_condition @@ -198,7 +200,7 @@ updateContactField: // box value does not exist: this.contacts(address).value assert store 255 // full array - int 0 + pushint 0 dup store 251 // element head offset load 255 // full array @@ -213,11 +215,11 @@ updateContactField: extract_uint16 // get number of elements int 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 frame_dig -2 // value: string @@ -242,7 +244,7 @@ updateContactField: callsub *get_length_difference load 250 // length difference load 251 // element head offset - int 2 + pushint 2 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -258,7 +260,7 @@ updateContactField: // examples/tuple_in_box/app.algo.ts:26 // field === 'company' frame_dig -1 // field: string - byte 0x636f6d70616e79 // "company" + pushbytes 0x636f6d70616e79 // "company" == bz *if0_else @@ -271,7 +273,7 @@ updateContactField: // box value does not exist: this.contacts(address).value assert store 255 // full array - int 2 + pushint 2 dup store 251 // element head offset load 255 // full array @@ -286,11 +288,11 @@ updateContactField: extract_uint16 // get number of elements int 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 frame_dig -2 // value: string @@ -335,7 +337,7 @@ updateContactField: txna ApplicationArgs 2 dup len - int 32 + pushint 32 == // argument 0 (address) for verifyContactName must be a address @@ -362,7 +364,7 @@ verifyContactName: // box value does not exist: this.contacts(address).value assert store 255 // full array - int 0 + pushint 0 load 255 // full array load 255 // full array uncover 2 @@ -373,7 +375,7 @@ verifyContactName: extract_uint16 // get number of elements int 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -387,7 +389,7 @@ verifyContactName: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -395,10 +397,10 @@ verifyContactName: err *call_NoOp: - method "setMyContact(string,string)void" - method "addContact(string,string,address)void" - method "updateContactField(string,string,address)void" - method "verifyContactName(string,address)void" + pushbytes 0x92ccf99b // method "setMyContact(string,string)void" + pushbytes 0x495acbf7 // method "addContact(string,string,address)void" + pushbytes 0xfa4e8f93 // method "updateContactField(string,string,address)void" + pushbytes 0x8a30b87e // method "verifyContactName(string,address)void" txna ApplicationArgs 0 match *abi_route_setMyContact *abi_route_addContact *abi_route_updateContactField *abi_route_verifyContactName @@ -472,7 +474,7 @@ verifyContactName: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json index 6da3538ee..3fd8f01c5 100644 --- a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json +++ b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc32.json @@ -59,7 +59,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzZXRNeUNvbnRhY3Qoc3RyaW5nLHN0cmluZyl2b2lkCiphYmlfcm91dGVfc2V0TXlDb250YWN0OgoJLy8gY29tcGFueTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldE15Q29udGFjdChzdHJpbmcsc3RyaW5nKXZvaWQKCWNhbGxzdWIgc2V0TXlDb250YWN0CglpbnQgMQoJcmV0dXJuCgovLyBzZXRNeUNvbnRhY3QobmFtZTogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcpOiB2b2lkCnNldE15Q29udGFjdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjEyCgkvLyBjb250YWN0OiBDb250YWN0ID0geyBuYW1lOiBuYW1lLCBjb21wYW55OiBjb21wYW55IH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gY29tcGFueTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTQKCS8vIHRoaXMubXlDb250YWN0LnZhbHVlID0gY29udGFjdAoJYnl0ZSAweDZkNzk0MzZmNmU3NDYxNjM3NCAvLyAibXlDb250YWN0IgoJZnJhbWVfZGlnIDAgLy8gY29udGFjdDogQ29udGFjdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTUKCS8vIHRoaXMuY29udGFjdHModGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGNvbnRhY3QKCXR4biBTZW5kZXIKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hZGRDb250YWN0OgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgYWRkQ29udGFjdCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gY29tcGFueTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWRkQ29udGFjdAoJaW50IDEKCXJldHVybgoKLy8gYWRkQ29udGFjdChuYW1lOiBzdHJpbmcsIGNvbXBhbnk6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKYWRkQ29udGFjdDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjE5CgkvLyBjb250YWN0OiBDb250YWN0ID0geyBuYW1lOiBuYW1lLCBjb21wYW55OiBjb21wYW55IH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gY29tcGFueTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjAKCS8vIHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUgPSBjb250YWN0CglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCWJveF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlQ29udGFjdEZpZWxkKHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdXBkYXRlQ29udGFjdEZpZWxkOgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgdXBkYXRlQ29udGFjdEZpZWxkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWx1ZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIGZpZWxkOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVDb250YWN0RmllbGQoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdXBkYXRlQ29udGFjdEZpZWxkCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVDb250YWN0RmllbGQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKdXBkYXRlQ29udGFjdEZpZWxkOgoJcHJvdG8gMyAwCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNAoJLy8gZmllbGQgPT09ICduYW1lJwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkOiBzdHJpbmcKCWJ5dGUgMHg2ZTYxNmQ2NSAvLyAibmFtZSIKCT09CglieiAqaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjUKCS8vIHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUubmFtZSA9IHZhbHVlCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNgoJLy8gZmllbGQgPT09ICdjb21wYW55JwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkOiBzdHJpbmcKCWJ5dGUgMHg2MzZmNmQ3MDYxNmU3OSAvLyAiY29tcGFueSIKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI3CgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLmNvbXBhbnkgPSB2YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gSW52YWxpZCBmaWVsZAoJZXJyCgoqaWYwX2VuZDoKCXJldHN1YgoKLy8gdmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeUNvbnRhY3ROYW1lOgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgdmVyaWZ5Q29udGFjdE5hbWUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHZlcmlmeUNvbnRhY3ROYW1lKHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdmVyaWZ5Q29udGFjdE5hbWUKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeUNvbnRhY3ROYW1lKG5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKdmVyaWZ5Q29udGFjdE5hbWU6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLm5hbWUgPT09IG5hbWUpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2V0TXlDb250YWN0KHN0cmluZyxzdHJpbmcpdm9pZCIKCW1ldGhvZCAiYWRkQ29udGFjdChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidXBkYXRlQ29udGFjdEZpZWxkKHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlDb250YWN0TmFtZShzdHJpbmcsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zZXRNeUNvbnRhY3QgKmFiaV9yb3V0ZV9hZGRDb250YWN0ICphYmlfcm91dGVfdXBkYXRlQ29udGFjdEZpZWxkICphYmlfcm91dGVfdmVyaWZ5Q29udGFjdE5hbWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHggMHgwMDA0CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2V0TXlDb250YWN0KHN0cmluZyxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3NldE15Q29udGFjdDoKCS8vIGNvbXBhbnk6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRNeUNvbnRhY3Qoc3RyaW5nLHN0cmluZyl2b2lkCgljYWxsc3ViIHNldE15Q29udGFjdAoJaW50IDEKCXJldHVybgoKLy8gc2V0TXlDb250YWN0KG5hbWU6IHN0cmluZywgY29tcGFueTogc3RyaW5nKTogdm9pZApzZXRNeUNvbnRhY3Q6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoxMgoJLy8gY29udGFjdDogQ29udGFjdCA9IHsgbmFtZTogbmFtZSwgY29tcGFueTogY29tcGFueSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGNvbXBhbnk6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBjb250YWN0OiBDb250YWN0CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjE0CgkvLyB0aGlzLm15Q29udGFjdC52YWx1ZSA9IGNvbnRhY3QKCXB1c2hieXRlcyAweDZkNzk0MzZmNmU3NDYxNjM3NCAvLyAibXlDb250YWN0IgoJZnJhbWVfZGlnIDAgLy8gY29udGFjdDogQ29udGFjdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTUKCS8vIHRoaXMuY29udGFjdHModGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGNvbnRhY3QKCXR4biBTZW5kZXIKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hZGRDb250YWN0OgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYWRkcmVzcykgZm9yIGFkZENvbnRhY3QgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGNvbXBhbnk6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhZGRDb250YWN0KHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFkZENvbnRhY3QKCWludCAxCglyZXR1cm4KCi8vIGFkZENvbnRhY3QobmFtZTogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcsIGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmFkZENvbnRhY3Q6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoxOQoJLy8gY29udGFjdDogQ29udGFjdCA9IHsgbmFtZTogbmFtZSwgY29tcGFueTogY29tcGFueSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGNvbXBhbnk6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBjb250YWN0OiBDb250YWN0CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjIwCgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlID0gY29udGFjdAoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUNvbnRhY3RGaWVsZDoKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciB1cGRhdGVDb250YWN0RmllbGQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbHVlOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gZmllbGQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB1cGRhdGVDb250YWN0RmllbGQKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZAp1cGRhdGVDb250YWN0RmllbGQ6Cglwcm90byAzIDAKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI0CgkvLyBmaWVsZCA9PT0gJ25hbWUnCglmcmFtZV9kaWcgLTEgLy8gZmllbGQ6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NmU2MTZkNjUgLy8gIm5hbWUiCgk9PQoJYnogKmlmMF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI1CgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLm5hbWUgPSB2YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglwdXNoaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglib3hfcHV0CgliICppZjBfZW5kCgoqaWYwX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI2CgkvLyBmaWVsZCA9PT0gJ2NvbXBhbnknCglmcmFtZV9kaWcgLTEgLy8gZmllbGQ6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NjM2ZjZkNzA2MTZlNzkgLy8gImNvbXBhbnkiCgk9PQoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNwoJLy8gdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZS5jb21wYW55ID0gdmFsdWUKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWJveF9wdXQKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIEludmFsaWQgZmllbGQKCWVycgoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIHZlcmlmeUNvbnRhY3ROYW1lKHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlDb250YWN0TmFtZToKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciB2ZXJpZnlDb250YWN0TmFtZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB2ZXJpZnlDb250YWN0TmFtZQoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5Q29udGFjdE5hbWUobmFtZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZAp2ZXJpZnlDb250YWN0TmFtZToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUubmFtZSA9PT0gbmFtZSkKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5MmNjZjk5YiAvLyBtZXRob2QgInNldE15Q29udGFjdChzdHJpbmcsc3RyaW5nKXZvaWQiCglwdXNoYnl0ZXMgMHg0OTVhY2JmNyAvLyBtZXRob2QgImFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhmYTRlOGY5MyAvLyBtZXRob2QgInVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDhhMzBiODdlIC8vIG1ldGhvZCAidmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2V0TXlDb250YWN0ICphYmlfcm91dGVfYWRkQ29udGFjdCAqYWJpX3JvdXRlX3VwZGF0ZUNvbnRhY3RGaWVsZCAqYWJpX3JvdXRlX3ZlcmlmeUNvbnRhY3ROYW1lCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc56_draft.json b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc56_draft.json index 618da42dd..fa7db80e5 100644 --- a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc56_draft.json +++ b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.arc56_draft.json @@ -166,2701 +166,82 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 6, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 6, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 14, - "source": 6, - "pc": [ - 15 - ] - }, - { - "teal": 15, - "source": 6, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 16, - "source": 6, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 6, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 6, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 6, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 6, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 28, - "source": 11, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 29, - "source": 11, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 32, - "source": 11, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 33, - "source": 11, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 36, - "source": 11, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 37, - "source": 11, - "pc": [ - 64 - ] - }, - { - "teal": 38, - "source": 11, - "pc": [ - 65 - ] - }, - { - "teal": 42, - "source": 11, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 45, - "source": 11, - "pc": [ - 69 - ] - }, - { - "teal": 49, - "source": 12, - "pc": [ - 70 - ] - }, - { - "teal": 50, - "source": 12, - "pc": [ - 71 - ] - }, - { - "teal": 51, - "source": 12, - "pc": [ - 72 - ] - }, - { - "teal": 52, - "source": 12, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 53, - "source": 12, - "pc": [ - 75 - ] - }, - { - "teal": 54, - "source": 12, - "pc": [ - 76 - ] - }, - { - "teal": 55, - "source": 12, - "pc": [ - 77 - ] - }, - { - "teal": 56, - "source": 12, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 57, - "source": 12, - "pc": [ - 81 - ] - }, - { - "teal": 58, - "source": 12, - "pc": [ - 82 - ] - }, - { - "teal": 59, - "source": 12, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 60, - "source": 12, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 61, - "source": 12, - "pc": [ - 88 - ] - }, - { - "teal": 62, - "source": 12, - "pc": [ - 89 - ] - }, - { - "teal": 63, - "source": 12, - "pc": [ - 90 - ] - }, - { - "teal": 64, - "source": 12, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 65, - "source": 12, - "pc": [ - 94 - ] - }, - { - "teal": 66, - "source": 12, - "pc": [ - 95 - ] - }, - { - "teal": 67, - "source": 12, - "pc": [ - 96, - 97, - 98 - ] - }, - { - "teal": 68, - "source": 12, - "pc": [ - 99 - ] - }, - { - "teal": 69, - "source": 12, - "pc": [ - 100 - ] - }, - { - "teal": 70, - "source": 12, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 74, - "source": 14, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 75, - "source": 14, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 76, - "source": 14, - "pc": [ - 116 - ] - }, - { - "teal": 80, - "source": 15, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 81, - "source": 15, - "pc": [ - 119 - ] - }, - { - "teal": 82, - "source": 15, - "pc": [ - 120 - ] - }, - { - "teal": 83, - "source": 15, - "pc": [ - 121 - ] - }, - { - "teal": 84, - "source": 15, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 85, - "source": 15, - "pc": [ - 124 - ] - }, - { - "teal": 86, - "source": 11, - "pc": [ - 125 - ] - }, - { - "teal": 91, - "source": 18, - "pc": [ - 126, - 127, - 128 - ] - }, - { - "teal": 92, - "source": 18, - "pc": [ - 129 - ] - }, - { - "teal": 93, - "source": 18, - "pc": [ - 130 - ] - }, - { - "teal": 94, - "source": 18, - "pc": [ - 131 - ] - }, - { - "teal": 95, - "source": 18, - "pc": [ - 132 - ] - }, - { - "teal": 98, - "source": 18, - "errorMessage": "argument 0 (address) for addContact must be a address", - "pc": [ - 133 - ] - }, - { - "teal": 101, - "source": 18, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 102, - "source": 18, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 105, - "source": 18, - "pc": [ - 140, - 141, - 142 - ] - }, - { - "teal": 106, - "source": 18, - "pc": [ - 143, - 144, - 145 - ] - }, - { - "teal": 109, - "source": 18, - "pc": [ - 146, - 147, - 148 - ] - }, - { - "teal": 110, - "source": 18, - "pc": [ - 149 - ] - }, - { - "teal": 111, - "source": 18, - "pc": [ - 150 - ] - }, - { - "teal": 115, - "source": 18, - "pc": [ - 151, - 152, - 153 - ] - }, - { - "teal": 118, - "source": 18, - "pc": [ - 154 - ] - }, - { - "teal": 122, - "source": 19, - "pc": [ - 155 - ] - }, - { - "teal": 123, - "source": 19, - "pc": [ - 156 - ] - }, - { - "teal": 124, - "source": 19, - "pc": [ - 157 - ] - }, - { - "teal": 125, - "source": 19, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 126, - "source": 19, - "pc": [ - 160 - ] - }, - { - "teal": 127, - "source": 19, - "pc": [ - 161 - ] - }, - { - "teal": 128, - "source": 19, - "pc": [ - 162 - ] - }, - { - "teal": 129, - "source": 19, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 130, - "source": 19, - "pc": [ - 166 - ] - }, - { - "teal": 131, - "source": 19, - "pc": [ - 167 - ] - }, - { - "teal": 132, - "source": 19, - "pc": [ - 168, - 169, - 170 - ] - }, - { - "teal": 133, - "source": 19, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 134, - "source": 19, - "pc": [ - 173 - ] - }, - { - "teal": 135, - "source": 19, - "pc": [ - 174 - ] - }, - { - "teal": 136, - "source": 19, - "pc": [ - 175 - ] - }, - { - "teal": 137, - "source": 19, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 138, - "source": 19, - "pc": [ - 179 - ] - }, - { - "teal": 139, - "source": 19, - "pc": [ - 180 - ] - }, - { - "teal": 140, - "source": 19, - "pc": [ - 181, - 182, - 183 - ] - }, - { - "teal": 141, - "source": 19, - "pc": [ - 184 - ] - }, - { - "teal": 142, - "source": 19, - "pc": [ - 185 - ] - }, - { - "teal": 143, - "source": 19, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 147, - "source": 20, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 148, - "source": 20, - "pc": [ - 190 - ] - }, - { - "teal": 149, - "source": 20, - "pc": [ - 191 - ] - }, - { - "teal": 150, - "source": 20, - "pc": [ - 192 - ] - }, - { - "teal": 151, - "source": 20, - "pc": [ - 193, - 194 - ] - }, - { - "teal": 152, - "source": 20, - "pc": [ - 195 - ] - }, - { - "teal": 153, - "source": 18, - "pc": [ - 196 - ] - }, - { - "teal": 158, - "source": 23, - "pc": [ - 197, - 198, - 199 - ] - }, - { - "teal": 159, - "source": 23, - "pc": [ - 200 - ] - }, - { - "teal": 160, - "source": 23, - "pc": [ - 201 - ] - }, - { - "teal": 161, - "source": 23, - "pc": [ - 202 - ] - }, - { - "teal": 162, - "source": 23, - "pc": [ - 203 - ] - }, - { - "teal": 165, - "source": 23, - "errorMessage": "argument 0 (address) for updateContactField must be a address", - "pc": [ - 204 - ] - }, - { - "teal": 168, - "source": 23, - "pc": [ - 205, - 206, - 207 - ] - }, - { - "teal": 169, - "source": 23, - "pc": [ - 208, - 209, - 210 - ] - }, - { - "teal": 172, - "source": 23, - "pc": [ - 211, - 212, - 213 - ] - }, - { - "teal": 173, - "source": 23, - "pc": [ - 214, - 215, - 216 - ] - }, - { - "teal": 176, - "source": 23, - "pc": [ - 217, - 218, - 219 - ] - }, - { - "teal": 177, - "source": 23, - "pc": [ - 220 - ] - }, - { - "teal": 178, - "source": 23, - "pc": [ - 221 - ] - }, - { - "teal": 182, - "source": 23, - "pc": [ - 222, - 223, - 224 - ] - }, - { - "teal": 187, - "source": 24, - "pc": [ - 225, - 226 - ] - }, - { - "teal": 188, - "source": 24, - "pc": [ - 227, - 228, - 229, - 230, - 231, - 232 - ] - }, - { - "teal": 189, - "source": 24, - "pc": [ - 233 - ] - }, - { - "teal": 190, - "source": 24, - "pc": [ - 234, - 235, - 236 - ] - }, - { - "teal": 195, - "source": 25, - "pc": [ - 237, - 238 - ] - }, - { - "teal": 196, - "source": 25, - "pc": [ - 239 - ] - }, - { - "teal": 199, - "source": 25, - "errorMessage": "box value does not exist: this.contacts(address).value", - "pc": [ - 240 - ] - }, - { - "teal": 200, - "source": 25, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 201, - "source": 25, - "pc": [ - 243 - ] - }, - { - "teal": 202, - "source": 25, - "pc": [ - 244 - ] - }, - { - "teal": 203, - "source": 25, - "pc": [ - 245, - 246 - ] - }, - { - "teal": 204, - "source": 25, - "pc": [ - 247, - 248 - ] - }, - { - "teal": 205, - "source": 25, - "pc": [ - 249, - 250 - ] - }, - { - "teal": 206, - "source": 25, - "pc": [ - 251, - 252 - ] - }, - { - "teal": 207, - "source": 25, - "pc": [ - 253 - ] - }, - { - "teal": 208, - "source": 25, - "pc": [ - 254 - ] - }, - { - "teal": 209, - "source": 25, - "pc": [ - 255, - 256 - ] - }, - { - "teal": 210, - "source": 25, - "pc": [ - 257 - ] - }, - { - "teal": 211, - "source": 25, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 212, - "source": 25, - "pc": [ - 260 - ] - }, - { - "teal": 213, - "source": 25, - "pc": [ - 261 - ] - }, - { - "teal": 214, - "source": 25, - "pc": [ - 262 - ] - }, - { - "teal": 215, - "source": 25, - "pc": [ - 263 - ] - }, - { - "teal": 216, - "source": 25, - "pc": [ - 264 - ] - }, - { - "teal": 217, - "source": 25, - "pc": [ - 265 - ] - }, - { - "teal": 218, - "source": 25, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 219, - "source": 25, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 220, - "source": 25, - "pc": [ - 270 - ] - }, - { - "teal": 221, - "source": 25, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 222, - "source": 25, - "pc": [ - 273 - ] - }, - { - "teal": 223, - "source": 25, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 224, - "source": 25, - "pc": [ - 276 - ] - }, - { - "teal": 225, - "source": 25, - "pc": [ - 277 - ] - }, - { - "teal": 226, - "source": 25, - "pc": [ - 278 - ] - }, - { - "teal": 227, - "source": 25, - "pc": [ - 279, - 280, - 281 - ] - }, - { - "teal": 228, - "source": 25, - "pc": [ - 282 - ] - }, - { - "teal": 229, - "source": 25, - "pc": [ - 283 - ] - }, - { - "teal": 230, - "source": 25, - "pc": [ - 284 - ] - }, - { - "teal": 231, - "source": 25, - "pc": [ - 285, - 286 - ] - }, - { - "teal": 232, - "source": 25, - "pc": [ - 287, - 288 - ] - }, - { - "teal": 233, - "source": 25, - "pc": [ - 289, - 290 - ] - }, - { - "teal": 234, - "source": 25, - "pc": [ - 291, - 292 - ] - }, - { - "teal": 235, - "source": 25, - "pc": [ - 293 - ] - }, - { - "teal": 236, - "source": 25, - "pc": [ - 294, - 295 - ] - }, - { - "teal": 237, - "source": 25, - "pc": [ - 296 - ] - }, - { - "teal": 238, - "source": 25, - "pc": [ - 297 - ] - }, - { - "teal": 239, - "source": 25, - "pc": [ - 298 - ] - }, - { - "teal": 240, - "source": 25, - "pc": [ - 299 - ] - }, - { - "teal": 241, - "source": 25, - "pc": [ - 300, - 301 - ] - }, - { - "teal": 242, - "source": 25, - "pc": [ - 302, - 303, - 304 - ] - }, - { - "teal": 243, - "source": 25, - "pc": [ - 305, - 306 - ] - }, - { - "teal": 244, - "source": 25, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 245, - "source": 25, - "pc": [ - 309 - ] - }, - { - "teal": 246, - "source": 25, - "pc": [ - 310 - ] - }, - { - "teal": 247, - "source": 25, - "pc": [ - 311, - 312, - 313 - ] - }, - { - "teal": 248, - "source": 25, - "pc": [ - 314, - 315 - ] - }, - { - "teal": 249, - "source": 25, - "pc": [ - 316, - 317 - ] - }, - { - "teal": 250, - "source": 25, - "pc": [ - 318 - ] - }, - { - "teal": 251, - "source": 25, - "pc": [ - 319 - ] - }, - { - "teal": 252, - "source": 25, - "pc": [ - 320 - ] - }, - { - "teal": 253, - "source": 25, - "pc": [ - 321 - ] - }, - { - "teal": 254, - "source": 25, - "pc": [ - 322 - ] - }, - { - "teal": 255, - "source": 24, - "pc": [ - 323, - 324, - 325 - ] - }, - { - "teal": 260, - "source": 26, - "pc": [ - 326, - 327 - ] - }, - { - "teal": 261, - "source": 26, - "pc": [ - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336 - ] - }, - { - "teal": 262, - "source": 26, - "pc": [ - 337 - ] - }, - { - "teal": 263, - "source": 26, - "pc": [ - 338, - 339, - 340 - ] - }, - { - "teal": 268, - "source": 27, - "pc": [ - 341, - 342 - ] - }, - { - "teal": 269, - "source": 27, - "pc": [ - 343 - ] - }, - { - "teal": 272, - "source": 27, - "errorMessage": "box value does not exist: this.contacts(address).value", - "pc": [ - 344 - ] - }, - { - "teal": 273, - "source": 27, - "pc": [ - 345, - 346 - ] - }, - { - "teal": 274, - "source": 27, - "pc": [ - 347 - ] - }, - { - "teal": 275, - "source": 27, - "pc": [ - 348 - ] - }, - { - "teal": 276, - "source": 27, - "pc": [ - 349, - 350 - ] - }, - { - "teal": 277, - "source": 27, - "pc": [ - 351, - 352 - ] - }, - { - "teal": 278, - "source": 27, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 279, - "source": 27, - "pc": [ - 355, - 356 - ] - }, - { - "teal": 280, - "source": 27, - "pc": [ - 357 - ] - }, - { - "teal": 281, - "source": 27, - "pc": [ - 358 - ] - }, - { - "teal": 282, - "source": 27, - "pc": [ - 359, - 360 - ] - }, - { - "teal": 283, - "source": 27, - "pc": [ - 361 - ] - }, - { - "teal": 284, - "source": 27, - "pc": [ - 362, - 363 - ] - }, - { - "teal": 285, - "source": 27, - "pc": [ - 364 - ] - }, - { - "teal": 286, - "source": 27, - "pc": [ - 365 - ] - }, - { - "teal": 287, - "source": 27, - "pc": [ - 366 - ] - }, - { - "teal": 288, - "source": 27, - "pc": [ - 367 - ] - }, - { - "teal": 289, - "source": 27, - "pc": [ - 368 - ] - }, - { - "teal": 290, - "source": 27, - "pc": [ - 369 - ] - }, - { - "teal": 291, - "source": 27, - "pc": [ - 370, - 371 - ] - }, - { - "teal": 292, - "source": 27, - "pc": [ - 372, - 373 - ] - }, - { - "teal": 293, - "source": 27, - "pc": [ - 374 - ] - }, - { - "teal": 294, - "source": 27, - "pc": [ - 375, - 376 - ] - }, - { - "teal": 295, - "source": 27, - "pc": [ - 377 - ] - }, - { - "teal": 296, - "source": 27, - "pc": [ - 378, - 379 - ] - }, - { - "teal": 297, - "source": 27, - "pc": [ - 380 - ] - }, - { - "teal": 298, - "source": 27, - "pc": [ - 381 - ] - }, - { - "teal": 299, - "source": 27, - "pc": [ - 382 - ] - }, - { - "teal": 300, - "source": 27, - "pc": [ - 383, - 384, - 385 - ] - }, - { - "teal": 301, - "source": 27, - "pc": [ - 386 - ] - }, - { - "teal": 302, - "source": 27, - "pc": [ - 387 - ] - }, - { - "teal": 303, - "source": 27, - "pc": [ - 388 - ] - }, - { - "teal": 304, - "source": 27, - "pc": [ - 389, - 390 - ] - }, - { - "teal": 305, - "source": 27, - "pc": [ - 391, - 392 - ] - }, - { - "teal": 306, - "source": 27, - "pc": [ - 393, - 394 - ] - }, - { - "teal": 307, - "source": 27, - "pc": [ - 395, - 396 - ] - }, - { - "teal": 308, - "source": 27, - "pc": [ - 397 - ] - }, - { - "teal": 309, - "source": 27, - "pc": [ - 398, - 399 - ] - }, - { - "teal": 310, - "source": 27, - "pc": [ - 400 - ] - }, - { - "teal": 311, - "source": 27, - "pc": [ - 401 - ] - }, - { - "teal": 312, - "source": 27, - "pc": [ - 402 - ] - }, - { - "teal": 313, - "source": 27, - "pc": [ - 403 - ] - }, - { - "teal": 314, - "source": 27, - "pc": [ - 404, - 405 - ] - }, - { - "teal": 315, - "source": 27, - "pc": [ - 406, - 407, - 408 - ] - }, - { - "teal": 316, - "source": 27, - "pc": [ - 409, - 410 - ] - }, - { - "teal": 317, - "source": 27, - "pc": [ - 411, - 412 - ] - }, - { - "teal": 318, - "source": 27, - "pc": [ - 413 - ] - }, - { - "teal": 319, - "source": 27, - "pc": [ - 414 - ] - }, - { - "teal": 320, - "source": 27, - "pc": [ - 415 - ] - }, - { - "teal": 321, - "source": 27, - "pc": [ - 416 - ] - }, - { - "teal": 322, - "source": 27, - "pc": [ - 417 - ] - }, - { - "teal": 323, - "source": 26, - "pc": [ - 418, - 419, - 420 - ] - }, - { - "teal": 327, - "source": 28, - "errorMessage": "Invalid field", - "pc": [ - 421 - ] - }, - { - "teal": 330, - "source": 23, - "pc": [ - 422 - ] - }, - { - "teal": 335, - "source": 31, - "pc": [ - 423, - 424, - 425 - ] - }, - { - "teal": 336, - "source": 31, - "pc": [ - 426 - ] - }, - { - "teal": 337, - "source": 31, - "pc": [ - 427 - ] - }, - { - "teal": 338, - "source": 31, - "pc": [ - 428 - ] - }, - { - "teal": 339, - "source": 31, - "pc": [ - 429 - ] - }, - { - "teal": 342, - "source": 31, - "errorMessage": "argument 0 (address) for verifyContactName must be a address", - "pc": [ - 430 - ] - }, - { - "teal": 345, - "source": 31, - "pc": [ - 431, - 432, - 433 - ] - }, - { - "teal": 346, - "source": 31, - "pc": [ - 434, - 435, - 436 - ] - }, - { - "teal": 349, - "source": 31, - "pc": [ - 437, - 438, - 439 - ] - }, - { - "teal": 350, - "source": 31, - "pc": [ - 440 - ] - }, - { - "teal": 351, - "source": 31, - "pc": [ - 441 - ] - }, - { - "teal": 355, - "source": 31, - "pc": [ - 442, - 443, - 444 - ] - }, - { - "teal": 359, - "source": 32, - "pc": [ - 445, - 446 - ] - }, - { - "teal": 360, - "source": 32, - "pc": [ - 447 - ] - }, - { - "teal": 363, - "source": 32, - "errorMessage": "box value does not exist: this.contacts(address).value", - "pc": [ - 448 - ] - }, - { - "teal": 364, - "source": 32, - "pc": [ - 449, - 450 - ] - }, - { - "teal": 365, - "source": 32, - "pc": [ - 451 - ] - }, - { - "teal": 366, - "source": 32, - "pc": [ - 452, - 453 - ] - }, - { - "teal": 367, - "source": 32, - "pc": [ - 454, - 455 - ] - }, - { - "teal": 368, - "source": 32, - "pc": [ - 456, - 457 - ] - }, - { - "teal": 369, - "source": 32, - "pc": [ - 458 - ] - }, - { - "teal": 370, - "source": 32, - "pc": [ - 459 - ] - }, - { - "teal": 371, - "source": 32, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 372, - "source": 32, - "pc": [ - 462 - ] - }, - { - "teal": 373, - "source": 32, - "pc": [ - 463 - ] - }, - { - "teal": 374, - "source": 32, - "pc": [ - 464 - ] - }, - { - "teal": 375, - "source": 32, - "pc": [ - 465 - ] - }, - { - "teal": 376, - "source": 32, - "pc": [ - 466 - ] - }, - { - "teal": 377, - "source": 32, - "pc": [ - 467 - ] - }, - { - "teal": 378, - "source": 32, - "pc": [ - 468 - ] - }, - { - "teal": 379, - "source": 32, - "pc": [ - 469, - 470, - 471 - ] - }, - { - "teal": 380, - "source": 32, - "pc": [ - 472, - 473 - ] - }, - { - "teal": 381, - "source": 32, - "pc": [ - 474 - ] - }, - { - "teal": 382, - "source": 32, - "pc": [ - 475 - ] - }, - { - "teal": 383, - "source": 31, - "pc": [ - 476 - ] - }, - { - "teal": 386, - "source": 6, - "pc": [ - 477 - ] - }, - { - "teal": 387, - "source": 6, - "pc": [ - 478 - ] - }, - { - "teal": 390, - "source": 6, - "pc": [ - 479, - 480, - 481, - 482, - 483, - 484 - ] - }, - { - "teal": 391, - "source": 6, - "pc": [ - 485, - 486, - 487 - ] - }, - { - "teal": 392, - "source": 6, - "pc": [ - 488, - 489, - 490, - 491 - ] - }, - { - "teal": 395, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 492 - ] - }, - { - "teal": 398, - "source": 6, - "pc": [ - 493, - 494, - 495, - 496, - 497, - 498 - ] - }, - { - "teal": 399, - "source": 6, - "pc": [ - 499, - 500, - 501, - 502, - 503, - 504 - ] - }, - { - "teal": 400, - "source": 6, - "pc": [ - 505, - 506, - 507, - 508, - 509, - 510 - ] - }, - { - "teal": 401, - "source": 6, - "pc": [ - 511, - 512, - 513, - 514, - 515, - 516 - ] - }, - { - "teal": 402, - "source": 6, - "pc": [ - 517, - 518, - 519 - ] - }, - { - "teal": 403, - "source": 6, - "pc": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529 - ] - }, - { - "teal": 406, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 530 - ] - }, - { - "teal": 409, - "source": 6, - "pc": [ - 531, - 532, - 533 - ] - }, - { - "teal": 410, - "source": 6, - "pc": [ - 534, - 535 - ] - }, - { - "teal": 411, - "source": 6, - "pc": [ - 536, - 537 - ] - }, - { - "teal": 412, - "source": 6, - "pc": [ - 538 - ] - }, - { - "teal": 413, - "source": 6, - "pc": [ - 539, - 540 - ] - }, - { - "teal": 414, - "source": 6, - "pc": [ - 541, - 542 - ] - }, - { - "teal": 415, - "source": 6, - "pc": [ - 543 - ] - }, - { - "teal": 416, - "source": 6, - "pc": [ - 544 - ] - }, - { - "teal": 417, - "source": 6, - "pc": [ - 545, - 546 - ] - }, - { - "teal": 418, - "source": 6, - "pc": [ - 547 - ] - }, - { - "teal": 419, - "source": 6, - "pc": [ - 548 - ] - }, - { - "teal": 420, - "source": 6, - "pc": [ - 549 - ] - }, - { - "teal": 421, - "source": 6, - "pc": [ - 550, - 551, - 552 - ] - }, - { - "teal": 422, - "source": 6, - "pc": [ - 553, - 554 - ] - }, - { - "teal": 423, - "source": 6, - "pc": [ - 555, - 556 - ] - }, - { - "teal": 424, - "source": 6, - "pc": [ - 557 - ] - }, - { - "teal": 425, - "source": 6, - "pc": [ - 558 - ] - }, - { - "teal": 426, - "source": 6, - "pc": [ - 559, - 560 - ] - }, - { - "teal": 427, - "source": 6, - "pc": [ - 561, - 562 - ] - }, - { - "teal": 428, - "source": 6, - "pc": [ - 563, - 564 - ] - }, - { - "teal": 429, - "source": 6, - "pc": [ - 565, - 566 - ] - }, - { - "teal": 430, - "source": 6, - "pc": [ - 567 - ] - }, - { - "teal": 433, - "source": 6, - "pc": [ - 568, - 569, - 570 - ] - }, - { - "teal": 434, - "source": 6, - "pc": [ - 571, - 572 - ] - }, - { - "teal": 435, - "source": 6, - "pc": [ - 573, - 574 - ] - }, - { - "teal": 436, - "source": 6, - "pc": [ - 575, - 576 - ] - }, - { - "teal": 437, - "source": 6, - "pc": [ - 577 - ] - }, - { - "teal": 438, - "source": 6, - "pc": [ - 578, - 579 - ] - }, - { - "teal": 439, - "source": 6, - "pc": [ - 580, - 581, - 582 - ] - }, - { - "teal": 440, - "source": 6, - "pc": [ - 583 - ] - }, - { - "teal": 441, - "source": 6, - "pc": [ - 584, - 585, - 586 - ] - }, - { - "teal": 444, - "source": 6, - "pc": [ - 587 - ] - }, - { - "teal": 445, - "source": 6, - "pc": [ - 588 - ] - }, - { - "teal": 448, - "source": 6, - "pc": [ - 589 - ] - }, - { - "teal": 449, - "source": 6, - "pc": [ - 590, - 591, - 592 - ] - }, - { - "teal": 450, - "source": 6, - "pc": [ - 593, - 594 - ] - }, - { - "teal": 451, - "source": 6, - "pc": [ - 595 - ] - }, - { - "teal": 452, - "source": 6, - "pc": [ - 596, - 597 - ] - }, - { - "teal": 453, - "source": 6, - "pc": [ - 598 - ] - }, - { - "teal": 454, - "source": 6, - "pc": [ - 599 - ] - }, - { - "teal": 455, - "source": 6, - "pc": [ - 600, - 601 - ] - }, - { - "teal": 456, - "source": 6, - "pc": [ - 602 - ] - }, - { - "teal": 459, - "source": 6, - "pc": [ - 603, - 604 - ] - }, - { - "teal": 460, - "source": 6, - "pc": [ - 605 - ] - }, - { - "teal": 461, - "source": 6, - "pc": [ - 606, - 607 - ] - }, - { - "teal": 462, - "source": 6, - "pc": [ - 608 - ] - }, - { - "teal": 463, - "source": 6, - "pc": [ - 609, - 610, - 611 - ] - }, - { - "teal": 464, - "source": 6, - "pc": [ - 612, - 613 - ] - }, - { - "teal": 465, - "source": 6, - "pc": [ - 614 - ] - }, - { - "teal": 466, - "source": 6, - "pc": [ - 615, - 616 - ] - }, - { - "teal": 467, - "source": 6, - "pc": [ - 617 - ] - }, - { - "teal": 468, - "source": 6, - "pc": [ - 618, - 619 - ] - }, - { - "teal": 469, - "source": 6, - "pc": [ - 620, - 621, - 622 - ] - }, - { - "teal": 472, - "source": 6, - "pc": [ - 623, - 624 - ] - }, - { - "teal": 473, - "source": 6, - "pc": [ - 625, - 626 - ] - }, - { - "teal": 474, - "source": 6, - "pc": [ - 627 - ] - }, - { - "teal": 475, - "source": 6, - "pc": [ - 628 - ] - }, - { - "teal": 476, - "source": 6, - "pc": [ - 629, - 630 - ] - }, - { - "teal": 479, - "source": 6, - "pc": [ - 631 - ] - }, - { - "teal": 480, - "source": 6, - "pc": [ - 632, - 633 - ] - }, - { - "teal": 481, - "source": 6, - "pc": [ - 634 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 45 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 138 + ], + "errorMessage": "argument 0 (address) for addContact must be a address" + }, + { + "pc": [ + 217 + ], + "errorMessage": "argument 0 (address) for updateContactField must be a address" + }, + { + "pc": [ + 254 + ], + "errorMessage": "box value does not exist: this.contacts(address).value" + }, + { + "pc": [ + 363 + ], + "errorMessage": "box value does not exist: this.contacts(address).value" + }, + { + "pc": [ + 444 + ], + "errorMessage": "Invalid field" + }, + { + "pc": [ + 454 + ], + "errorMessage": "argument 0 (address) for verifyContactName must be a address" + }, + { + "pc": [ + 473 + ], + "errorMessage": "box value does not exist: this.contacts(address).value" + }, + { + "pc": [ + 521 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 559 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzZXRNeUNvbnRhY3Qoc3RyaW5nLHN0cmluZyl2b2lkCiphYmlfcm91dGVfc2V0TXlDb250YWN0OgoJLy8gY29tcGFueTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHNldE15Q29udGFjdChzdHJpbmcsc3RyaW5nKXZvaWQKCWNhbGxzdWIgc2V0TXlDb250YWN0CglpbnQgMQoJcmV0dXJuCgovLyBzZXRNeUNvbnRhY3QobmFtZTogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcpOiB2b2lkCnNldE15Q29udGFjdDoKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjEyCgkvLyBjb250YWN0OiBDb250YWN0ID0geyBuYW1lOiBuYW1lLCBjb21wYW55OiBjb21wYW55IH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gY29tcGFueTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTQKCS8vIHRoaXMubXlDb250YWN0LnZhbHVlID0gY29udGFjdAoJYnl0ZSAweDZkNzk0MzZmNmU3NDYxNjM3NCAvLyAibXlDb250YWN0IgoJZnJhbWVfZGlnIDAgLy8gY29udGFjdDogQ29udGFjdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTUKCS8vIHRoaXMuY29udGFjdHModGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGNvbnRhY3QKCXR4biBTZW5kZXIKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hZGRDb250YWN0OgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgYWRkQ29udGFjdCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gY29tcGFueTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYWRkQ29udGFjdAoJaW50IDEKCXJldHVybgoKLy8gYWRkQ29udGFjdChuYW1lOiBzdHJpbmcsIGNvbXBhbnk6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKYWRkQ29udGFjdDoKCXByb3RvIDMgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjE5CgkvLyBjb250YWN0OiBDb250YWN0ID0geyBuYW1lOiBuYW1lLCBjb21wYW55OiBjb21wYW55IH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglmcmFtZV9kaWcgLTIgLy8gY29tcGFueTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjAKCS8vIHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUgPSBjb250YWN0CglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJZHVwCglib3hfZGVsCglwb3AKCWZyYW1lX2RpZyAwIC8vIGNvbnRhY3Q6IENvbnRhY3QKCWJveF9wdXQKCXJldHN1YgoKLy8gdXBkYXRlQ29udGFjdEZpZWxkKHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdXBkYXRlQ29udGFjdEZpZWxkOgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgdXBkYXRlQ29udGFjdEZpZWxkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyB2YWx1ZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIGZpZWxkOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSB1cGRhdGVDb250YWN0RmllbGQoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdXBkYXRlQ29udGFjdEZpZWxkCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVDb250YWN0RmllbGQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKdXBkYXRlQ29udGFjdEZpZWxkOgoJcHJvdG8gMyAwCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNAoJLy8gZmllbGQgPT09ICduYW1lJwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkOiBzdHJpbmcKCWJ5dGUgMHg2ZTYxNmQ2NSAvLyAibmFtZSIKCT09CglieiAqaWYwX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MjUKCS8vIHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUubmFtZSA9IHZhbHVlCglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAtMiAvLyB2YWx1ZTogc3RyaW5nCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNgoJLy8gZmllbGQgPT09ICdjb21wYW55JwoJZnJhbWVfZGlnIC0xIC8vIGZpZWxkOiBzdHJpbmcKCWJ5dGUgMHg2MzZmNmQ3MDYxNmU3OSAvLyAiY29tcGFueSIKCT09CglieiAqaWYwX2Vsc2UKCgkvLyAqaWYwX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI3CgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLmNvbXBhbnkgPSB2YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gSW52YWxpZCBmaWVsZAoJZXJyCgoqaWYwX2VuZDoKCXJldHN1YgoKLy8gdmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeUNvbnRhY3ROYW1lOgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyZXNzKSBmb3IgdmVyaWZ5Q29udGFjdE5hbWUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIG5hbWU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHZlcmlmeUNvbnRhY3ROYW1lKHN0cmluZyxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdmVyaWZ5Q29udGFjdE5hbWUKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeUNvbnRhY3ROYW1lKG5hbWU6IHN0cmluZywgYWRkcmVzczogQWRkcmVzcyk6IHZvaWQKdmVyaWZ5Q29udGFjdE5hbWU6Cglwcm90byAyIDAKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MzIKCS8vIGFzc2VydCh0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLm5hbWUgPT09IG5hbWUpCglmcmFtZV9kaWcgLTIgLy8gYWRkcmVzczogQWRkcmVzcwoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJZnJhbWVfZGlnIC0xIC8vIG5hbWU6IHN0cmluZwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2V0TXlDb250YWN0KHN0cmluZyxzdHJpbmcpdm9pZCIKCW1ldGhvZCAiYWRkQ29udGFjdChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidXBkYXRlQ29udGFjdEZpZWxkKHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlDb250YWN0TmFtZShzdHJpbmcsYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zZXRNeUNvbnRhY3QgKmFiaV9yb3V0ZV9hZGRDb250YWN0ICphYmlfcm91dGVfdXBkYXRlQ29udGFjdEZpZWxkICphYmlfcm91dGVfdmVyaWZ5Q29udGFjdE5hbWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCmJ5dGVjYmxvY2sgMHggMHgwMDA0CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2V0TXlDb250YWN0KHN0cmluZyxzdHJpbmcpdm9pZAoqYWJpX3JvdXRlX3NldE15Q29udGFjdDoKCS8vIGNvbXBhbnk6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzZXRNeUNvbnRhY3Qoc3RyaW5nLHN0cmluZyl2b2lkCgljYWxsc3ViIHNldE15Q29udGFjdAoJaW50IDEKCXJldHVybgoKLy8gc2V0TXlDb250YWN0KG5hbWU6IHN0cmluZywgY29tcGFueTogc3RyaW5nKTogdm9pZApzZXRNeUNvbnRhY3Q6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoxMgoJLy8gY29udGFjdDogQ29udGFjdCA9IHsgbmFtZTogbmFtZSwgY29tcGFueTogY29tcGFueSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGNvbXBhbnk6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBjb250YWN0OiBDb250YWN0CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjE0CgkvLyB0aGlzLm15Q29udGFjdC52YWx1ZSA9IGNvbnRhY3QKCXB1c2hieXRlcyAweDZkNzk0MzZmNmU3NDYxNjM3NCAvLyAibXlDb250YWN0IgoJZnJhbWVfZGlnIDAgLy8gY29udGFjdDogQ29udGFjdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy90dXBsZV9pbl9ib3gvYXBwLmFsZ28udHM6MTUKCS8vIHRoaXMuY29udGFjdHModGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGNvbnRhY3QKCXR4biBTZW5kZXIKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIGFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hZGRDb250YWN0OgoJLy8gYWRkcmVzczogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYWRkcmVzcykgZm9yIGFkZENvbnRhY3QgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGNvbXBhbnk6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZXh0cmFjdCAyIDAKCgkvLyBuYW1lOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBhZGRDb250YWN0KHN0cmluZyxzdHJpbmcsYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFkZENvbnRhY3QKCWludCAxCglyZXR1cm4KCi8vIGFkZENvbnRhY3QobmFtZTogc3RyaW5nLCBjb21wYW55OiBzdHJpbmcsIGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkCmFkZENvbnRhY3Q6Cglwcm90byAzIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoxOQoJLy8gY29udGFjdDogQ29udGFjdCA9IHsgbmFtZTogbmFtZSwgY29tcGFueTogY29tcGFueSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIC0yIC8vIGNvbXBhbnk6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBjb250YWN0OiBDb250YWN0CgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjIwCgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlID0gY29udGFjdAoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWR1cAoJYm94X2RlbAoJcG9wCglmcmFtZV9kaWcgMCAvLyBjb250YWN0OiBDb250YWN0Cglib3hfcHV0CglyZXRzdWIKCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUNvbnRhY3RGaWVsZDoKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciB1cGRhdGVDb250YWN0RmllbGQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIHZhbHVlOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWV4dHJhY3QgMiAwCgoJLy8gZmllbGQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB1cGRhdGVDb250YWN0RmllbGQKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUNvbnRhY3RGaWVsZChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZAp1cGRhdGVDb250YWN0RmllbGQ6Cglwcm90byAzIDAKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI0CgkvLyBmaWVsZCA9PT0gJ25hbWUnCglmcmFtZV9kaWcgLTEgLy8gZmllbGQ6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NmU2MTZkNjUgLy8gIm5hbWUiCgk9PQoJYnogKmlmMF9lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI1CgkvLyB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlLm5hbWUgPSB2YWx1ZQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTIgLy8gdmFsdWU6IHN0cmluZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglwdXNoaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0zIC8vIGFkZHJlc3M6IEFkZHJlc3MKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglib3hfcHV0CgliICppZjBfZW5kCgoqaWYwX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gZXhhbXBsZXMvdHVwbGVfaW5fYm94L2FwcC5hbGdvLnRzOjI2CgkvLyBmaWVsZCA9PT0gJ2NvbXBhbnknCglmcmFtZV9kaWcgLTEgLy8gZmllbGQ6IHN0cmluZwoJcHVzaGJ5dGVzIDB4NjM2ZjZkNzA2MTZlNzkgLy8gImNvbXBhbnkiCgk9PQoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9lbHNlaWYxX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czoyNwoJLy8gdGhpcy5jb250YWN0cyhhZGRyZXNzKS52YWx1ZS5jb21wYW55ID0gdmFsdWUKCWZyYW1lX2RpZyAtMyAvLyBhZGRyZXNzOiBBZGRyZXNzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIC0yIC8vIHZhbHVlOiBzdHJpbmcKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTMgLy8gYWRkcmVzczogQWRkcmVzcwoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWJveF9wdXQKCWIgKmlmMF9lbmQKCippZjBfZWxzZToKCS8vIEludmFsaWQgZmllbGQKCWVycgoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIHZlcmlmeUNvbnRhY3ROYW1lKHN0cmluZyxhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlDb250YWN0TmFtZToKCS8vIGFkZHJlc3M6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHJlc3MpIGZvciB2ZXJpZnlDb250YWN0TmFtZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgdmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB2ZXJpZnlDb250YWN0TmFtZQoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5Q29udGFjdE5hbWUobmFtZTogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogdm9pZAp2ZXJpZnlDb250YWN0TmFtZToKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3R1cGxlX2luX2JveC9hcHAuYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuY29udGFjdHMoYWRkcmVzcykudmFsdWUubmFtZSA9PT0gbmFtZSkKCWZyYW1lX2RpZyAtMiAvLyBhZGRyZXNzOiBBZGRyZXNzCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmNvbnRhY3RzKGFkZHJlc3MpLnZhbHVlCglhc3NlcnQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWZyYW1lX2RpZyAtMSAvLyBuYW1lOiBzdHJpbmcKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5MmNjZjk5YiAvLyBtZXRob2QgInNldE15Q29udGFjdChzdHJpbmcsc3RyaW5nKXZvaWQiCglwdXNoYnl0ZXMgMHg0OTVhY2JmNyAvLyBtZXRob2QgImFkZENvbnRhY3Qoc3RyaW5nLHN0cmluZyxhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhmYTRlOGY5MyAvLyBtZXRob2QgInVwZGF0ZUNvbnRhY3RGaWVsZChzdHJpbmcsc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDhhMzBiODdlIC8vIG1ldGhvZCAidmVyaWZ5Q29udGFjdE5hbWUoc3RyaW5nLGFkZHJlc3Mpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2V0TXlDb250YWN0ICphYmlfcm91dGVfYWRkQ29udGFjdCAqYWJpX3JvdXRlX3VwZGF0ZUNvbnRhY3RGaWVsZCAqYWJpX3JvdXRlX3ZlcmlmeUNvbnRhY3ROYW1lCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQACICYCAAIABDEYFIEGCzEZCI0MAb0AAAAAAAAAAAAAAa8AAAAAAAAAAAAAADYaAlcCADYaAVcCAIgAAiJDigIAKCgoKYv/SRUWVwYCTFCIAb2L/kkVFlcGAkxQiAGwSFCMAIAJbXlDb250YWN0iwBnMQBJvEiLAL+JNhoDSRUlEkQ2GgJXAgA2GgFXAgCIAAIiQ4oDACgoKCmL/0kVFlcGAkxQiAFoi/5JFRZXBgJMUIgBW0hQjACL/Um8SIsAv4k2GgNJFSUSRDYaAlcCADYaAVcCAIgAAiJDigMAi/+ABG5hbWUSQQBZi/2+RDX/I0k1+zT/NP9PAllJNf5JNP9MWSILJAg1/TT/IzT+Uov+SRUWVwYCTFBJNfw0/zT+NP0INP8VUlBQNf+IASo0+jT7JAiIAP40/4v9SbxITL9CAGCL/4AHY29tcGFueRJBAFCL/b5ENf8kSTX7NP80/08CWUk1/kk0/0xZIgskCDX9NP8jNP5Si/5JFRZXBgJMUEk1/DT/NP40/Qg0/xVSUFA1/4gAwjT/i/1JvEhMv0IAAQCJNhoCSRUlEkQ2GgFXAgCIAAIiQ4oCAIv+vkQ1/yM0/zT/TwJZSTT/TFkiCyQIWFcCAIv/EkSJIkOABLhEezY2GgCOAf/xAIAEksz5m4AESVrL94AE+k6Pk4AEijC4fjYaAI4E/h/+bP6z/5UAigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iYoCAIv+NP+L/1k0+UEABAhCAAJMCRZXBgI0/0yL/0xdNf+JNPwVNP0MQAALNPwVNP0iNflCAAg0/TT8FSM1+Qk1+ok=", + "approval": "CiABASYCAAIABDEYFIEGCzEZCI0MAd0AAAAAAAAAAAAAAc8AAAAAAAAAAAAAADYaAlcCADYaAVcCAIgAA4EBQ4oCAIAAgACAAIACAASL/0kVFlcGAkxQiAHWi/5JFRZXBgJMUIgByUhQjACACW15Q29udGFjdIsAZzEASbxIiwC/iTYaA0kVgSASRDYaAlcCADYaAVcCAIgAA4EBQ4oDAIAAgACAAIACAASL/0kVFlcGAkxQiAF5i/5JFRZXBgJMUIgBbEhQjACL/Um8SIsAv4k2GgNJFYEgEkQ2GgJXAgA2GgFXAgCIAAOBAUOKAwCL/4AEbmFtZRJBAF6L/b5ENf+BAEk1+zT/NP9PAllJNf5JNP9MWYEBC4ECCDX9NP+BADT+Uov+SRUWVwYCTFBJNfw0/zT+NP0INP8VUlBQNf+IATU0+jT7gQIIiAEINP+L/Um8SEy/QgBki/+AB2NvbXBhbnkSQQBUi/2+RDX/gQJJNfs0/zT/TwJZSTX+STT/TFmBAQuBAgg1/TT/gQA0/lKL/kkVFlcGAkxQSTX8NP80/jT9CDT/FVJQUDX/iADINP+L/Um8SEy/QgABAIk2GgJJFYEgEkQ2GgFXAgCIAAOBAUOKAgCL/r5ENf+BADT/NP9PAllJNP9MWYEBC4ECCFhXAgCL/xJEiYEBQ4AEuER7NjYaAI4B//AAgASSzPmbgARJWsv3gAT6To+TgASKMLh+NhoAjgT9//5T/qL/jwCKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JigIAi/40/4v/WTT5QQAECEIAAkwJFlcGAjT/TIv/TF01/4k0/BU0/QxAAAw0/BU0/YEBNflCAAk0/TT8FYEANfkJNfqJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.src_map.json b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.src_map.json index 7820bd172..840ca7899 100644 --- a/examples/tuple_in_box/tealscript_artifacts/ContactsApp.src_map.json +++ b/examples/tuple_in_box/tealscript_artifacts/ContactsApp.src_map.json @@ -1,72 +1,84 @@ [ { "teal": 1, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 0, 1, 2, - 3, + 3 + ] + }, + { + "teal": 3, + "source": "examples/tuple_in_box/app.algo.ts:6", + "pc": [ 4, 5, 6, 7, 8, - 9, + 9 + ] + }, + { + "teal": 15, + "source": "examples/tuple_in_box/app.algo.ts:6", + "pc": [ 10, - 11, + 11 + ] + }, + { + "teal": 16, + "source": "examples/tuple_in_box/app.algo.ts:6", + "pc": [ 12 ] }, { - "teal": 13, - "source": 6, + "teal": 17, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ 13, 14 ] }, { - "teal": 14, - "source": 6, + "teal": 18, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ 15 ] }, { - "teal": 15, - "source": 6, + "teal": 19, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ 16, 17 ] }, { - "teal": 16, - "source": 6, + "teal": 20, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ 18 ] }, { - "teal": 17, - "source": 6, + "teal": 21, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ 19, - 20 - ] - }, - { - "teal": 18, - "source": 6, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 6, - "pc": [ + 20, + 21, 22, 23, 24, @@ -89,23 +101,29 @@ 41, 42, 43, - 44, - 45, - 46, - 47 + 44 ] }, { - "teal": 23, - "source": 6, + "teal": 25, + "source": "examples/tuple_in_box/app.algo.ts:6", "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", "pc": [ + 45 + ] + }, + { + "teal": 30, + "source": "examples/tuple_in_box/app.algo.ts:11", + "pc": [ + 46, + 47, 48 ] }, { - "teal": 28, - "source": 11, + "teal": 31, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ 49, 50, @@ -113,8 +131,8 @@ ] }, { - "teal": 29, - "source": 11, + "teal": 34, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ 52, 53, @@ -122,8 +140,8 @@ ] }, { - "teal": 32, - "source": 11, + "teal": 35, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ 55, 56, @@ -131,8 +149,8 @@ ] }, { - "teal": 33, - "source": 11, + "teal": 38, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ 58, 59, @@ -140,2548 +158,2573 @@ ] }, { - "teal": 36, - "source": 11, + "teal": 39, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ 61, - 62, - 63 + 62 ] }, { - "teal": 37, - "source": 11, + "teal": 40, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ - 64 + 63 ] }, { - "teal": 38, - "source": 11, + "teal": 44, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ - 65 + 64, + 65, + 66 ] }, { - "teal": 42, - "source": 11, + "teal": 47, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ - 66, 67, 68 ] }, - { - "teal": 45, - "source": 11, - "pc": [ - 69 - ] - }, - { - "teal": 49, - "source": 12, - "pc": [ - 70 - ] - }, - { - "teal": 50, - "source": 12, - "pc": [ - 71 - ] - }, { "teal": 51, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 72 + 69, + 70 ] }, { "teal": 52, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 73, - 74 + 71, + 72 ] }, { "teal": 53, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 75 + 73, + 74, + 75, + 76 ] }, { "teal": 54, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 76 + 77, + 78 ] }, { "teal": 55, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 77 + 79 ] }, { "teal": 56, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 78, - 79, 80 ] }, { "teal": 57, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ 81 ] }, { "teal": 58, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 82 + 82, + 83, + 84 ] }, { "teal": 59, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 83, - 84, 85 ] }, { "teal": 60, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 86, - 87 + 86 ] }, { "teal": 61, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 88 + 87, + 88, + 89 ] }, { "teal": 62, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 89 + 90, + 91 ] }, { "teal": 63, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 90 + 92 ] }, { "teal": 64, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 91, - 92, 93 ] }, { "teal": 65, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ 94 ] }, { "teal": 66, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 95 + 95, + 96, + 97 ] }, { "teal": 67, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 96, - 97, 98 ] }, { "teal": 68, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ 99 ] }, { "teal": 69, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 100 + 100, + 101, + 102 ] }, { "teal": 70, - "source": 12, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 101, - 102 + 103 ] }, { - "teal": 74, - "source": 14, + "teal": 71, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113 + 104 ] }, { - "teal": 75, - "source": 14, + "teal": 72, + "source": "examples/tuple_in_box/app.algo.ts:12", "pc": [ - 114, - 115 + 105, + 106 ] }, { "teal": 76, - "source": 14, + "source": "examples/tuple_in_box/app.algo.ts:14", "pc": [ - 116 + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117 ] }, { - "teal": 80, - "source": 15, + "teal": 77, + "source": "examples/tuple_in_box/app.algo.ts:14", "pc": [ - 117, - 118 + 118, + 119 ] }, { - "teal": 81, - "source": 15, + "teal": 78, + "source": "examples/tuple_in_box/app.algo.ts:14", "pc": [ - 119 + 120 ] }, { "teal": 82, - "source": 15, + "source": "examples/tuple_in_box/app.algo.ts:15", "pc": [ - 120 + 121, + 122 ] }, { "teal": 83, - "source": 15, + "source": "examples/tuple_in_box/app.algo.ts:15", "pc": [ - 121 + 123 ] }, { "teal": 84, - "source": 15, + "source": "examples/tuple_in_box/app.algo.ts:15", "pc": [ - 122, - 123 + 124 ] }, { "teal": 85, - "source": 15, + "source": "examples/tuple_in_box/app.algo.ts:15", "pc": [ - 124 + 125 ] }, { "teal": 86, - "source": 11, + "source": "examples/tuple_in_box/app.algo.ts:15", "pc": [ - 125 + 126, + 127 ] }, { - "teal": 91, - "source": 18, + "teal": 87, + "source": "examples/tuple_in_box/app.algo.ts:15", "pc": [ - 126, - 127, 128 ] }, { - "teal": 92, - "source": 18, + "teal": 88, + "source": "examples/tuple_in_box/app.algo.ts:11", "pc": [ 129 ] }, { "teal": 93, - "source": 18, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 130 + 130, + 131, + 132 ] }, { "teal": 94, - "source": 18, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 131 + 133 ] }, { "teal": 95, - "source": 18, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 132 + 134 ] }, { - "teal": 98, - "source": 18, - "errorMessage": "argument 0 (address) for addContact must be a address", + "teal": 96, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 133 + 135, + 136 ] }, { - "teal": 101, - "source": 18, + "teal": 97, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 134, - 135, - 136 + 137 ] }, { - "teal": 102, - "source": 18, + "teal": 100, + "source": "examples/tuple_in_box/app.algo.ts:18", + "errorMessage": "argument 0 (address) for addContact must be a address", "pc": [ - 137, - 138, - 139 + 138 ] }, { - "teal": 105, - "source": 18, + "teal": 103, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ + 139, 140, - 141, - 142 + 141 ] }, { - "teal": 106, - "source": 18, + "teal": 104, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ + 142, 143, - 144, - 145 + 144 ] }, { - "teal": 109, - "source": 18, + "teal": 107, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ + 145, 146, - 147, - 148 + 147 ] }, { - "teal": 110, - "source": 18, + "teal": 108, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 149 + 148, + 149, + 150 ] }, { "teal": 111, - "source": 18, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 150 + 151, + 152, + 153 ] }, { - "teal": 115, - "source": 18, + "teal": 112, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 151, - 152, - 153 + 154, + 155 ] }, { - "teal": 118, - "source": 18, + "teal": 113, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 154 + 156 ] }, { - "teal": 122, - "source": 19, + "teal": 117, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 155 + 157, + 158, + 159 ] }, { - "teal": 123, - "source": 19, + "teal": 120, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 156 + 160, + 161 ] }, { "teal": 124, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 157 + 162, + 163 ] }, { "teal": 125, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 158, - 159 + 164, + 165 ] }, { "teal": 126, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 160 + 166, + 167, + 168, + 169 ] }, { "teal": 127, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 161 + 170, + 171 ] }, { "teal": 128, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 162 + 172 ] }, { "teal": 129, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 163, - 164, - 165 + 173 ] }, { "teal": 130, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 166 + 174 ] }, { "teal": 131, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 167 + 175, + 176, + 177 ] }, { "teal": 132, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 168, - 169, - 170 + 178 ] }, { "teal": 133, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 171, - 172 + 179 ] }, { "teal": 134, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 173 + 180, + 181, + 182 ] }, { "teal": 135, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 174 + 183, + 184 ] }, { "teal": 136, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 175 + 185 ] }, { "teal": 137, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 176, - 177, - 178 + 186 ] }, { "teal": 138, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 179 + 187 ] }, { "teal": 139, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 180 + 188, + 189, + 190 ] }, { "teal": 140, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 181, - 182, - 183 + 191 ] }, { "teal": 141, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 184 + 192 ] }, { "teal": 142, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 185 + 193, + 194, + 195 ] }, { "teal": 143, - "source": 19, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 186, - 187 + 196 ] }, { - "teal": 147, - "source": 20, + "teal": 144, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 188, - 189 + 197 ] }, { - "teal": 148, - "source": 20, + "teal": 145, + "source": "examples/tuple_in_box/app.algo.ts:19", "pc": [ - 190 + 198, + 199 ] }, { "teal": 149, - "source": 20, + "source": "examples/tuple_in_box/app.algo.ts:20", "pc": [ - 191 + 200, + 201 ] }, { "teal": 150, - "source": 20, + "source": "examples/tuple_in_box/app.algo.ts:20", "pc": [ - 192 + 202 ] }, { "teal": 151, - "source": 20, + "source": "examples/tuple_in_box/app.algo.ts:20", "pc": [ - 193, - 194 + 203 ] }, { "teal": 152, - "source": 20, + "source": "examples/tuple_in_box/app.algo.ts:20", "pc": [ - 195 + 204 ] }, { "teal": 153, - "source": 18, + "source": "examples/tuple_in_box/app.algo.ts:20", "pc": [ - 196 + 205, + 206 ] }, { - "teal": 158, - "source": 23, + "teal": 154, + "source": "examples/tuple_in_box/app.algo.ts:20", "pc": [ - 197, - 198, - 199 + 207 ] }, { - "teal": 159, - "source": 23, + "teal": 155, + "source": "examples/tuple_in_box/app.algo.ts:18", "pc": [ - 200 + 208 ] }, { "teal": 160, - "source": 23, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 201 + 209, + 210, + 211 ] }, { "teal": 161, - "source": 23, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 202 + 212 ] }, { "teal": 162, - "source": 23, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 203 + 213 ] }, { - "teal": 165, - "source": 23, - "errorMessage": "argument 0 (address) for updateContactField must be a address", + "teal": 163, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 204 + 214, + 215 ] }, { - "teal": 168, - "source": 23, + "teal": 164, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 205, - 206, - 207 + 216 ] }, { - "teal": 169, - "source": 23, + "teal": 167, + "source": "examples/tuple_in_box/app.algo.ts:23", + "errorMessage": "argument 0 (address) for updateContactField must be a address", "pc": [ - 208, - 209, - 210 + 217 ] }, { - "teal": 172, - "source": 23, + "teal": 170, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 211, - 212, - 213 + 218, + 219, + 220 ] }, { - "teal": 173, - "source": 23, + "teal": 171, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 214, - 215, - 216 + 221, + 222, + 223 ] }, { - "teal": 176, - "source": 23, + "teal": 174, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 217, - 218, - 219 + 224, + 225, + 226 ] }, { - "teal": 177, - "source": 23, + "teal": 175, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 220 + 227, + 228, + 229 ] }, { "teal": 178, - "source": 23, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 221 + 230, + 231, + 232 ] }, { - "teal": 182, - "source": 23, + "teal": 179, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 222, - 223, - 224 + 233, + 234 ] }, { - "teal": 187, - "source": 24, + "teal": 180, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 225, - 226 + 235 ] }, { - "teal": 188, - "source": 24, + "teal": 184, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 227, - 228, - 229, - 230, - 231, - 232 + 236, + 237, + 238 ] }, { "teal": 189, - "source": 24, + "source": "examples/tuple_in_box/app.algo.ts:24", "pc": [ - 233 + 239, + 240 ] }, { "teal": 190, - "source": 24, + "source": "examples/tuple_in_box/app.algo.ts:24", "pc": [ - 234, - 235, - 236 + 241, + 242, + 243, + 244, + 245, + 246 ] }, { - "teal": 195, - "source": 25, + "teal": 191, + "source": "examples/tuple_in_box/app.algo.ts:24", "pc": [ - 237, - 238 + 247 ] }, { - "teal": 196, - "source": 25, + "teal": 192, + "source": "examples/tuple_in_box/app.algo.ts:24", "pc": [ - 239 + 248, + 249, + 250 ] }, { - "teal": 199, - "source": 25, - "errorMessage": "box value does not exist: this.contacts(address).value", + "teal": 197, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 240 + 251, + 252 ] }, { - "teal": 200, - "source": 25, + "teal": 198, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 241, - 242 + 253 ] }, { "teal": 201, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", + "errorMessage": "box value does not exist: this.contacts(address).value", "pc": [ - 243 + 254 ] }, { "teal": 202, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 244 + 255, + 256 ] }, { "teal": 203, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 245, - 246 + 257, + 258 ] }, { "teal": 204, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 247, - 248 + 259 ] }, { "teal": 205, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 249, - 250 + 260, + 261 ] }, { "teal": 206, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 251, - 252 + 262, + 263 ] }, { "teal": 207, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 253 + 264, + 265 ] }, { "teal": 208, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 254 + 266, + 267 ] }, { "teal": 209, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 255, - 256 + 268 ] }, { "teal": 210, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 257 + 269 ] }, { "teal": 211, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 258, - 259 + 270, + 271 ] }, { "teal": 212, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 260 + 272 ] }, { "teal": 213, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 261 + 273, + 274 ] }, { "teal": 214, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 262 + 275 ] }, { "teal": 215, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 263 + 276 ] }, { "teal": 216, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 264 + 277, + 278 ] }, { "teal": 217, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 265 + 279 ] }, { "teal": 218, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 266, - 267 + 280, + 281 ] }, { "teal": 219, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 268, - 269 + 282 ] }, { "teal": 220, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 270 + 283, + 284 ] }, { "teal": 221, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 271, - 272 + 285, + 286 ] }, { "teal": 222, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 273 + 287, + 288 ] }, { "teal": 223, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 274, - 275 + 289, + 290 ] }, { "teal": 224, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 276 + 291 ] }, { "teal": 225, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 277 + 292, + 293 ] }, { "teal": 226, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 278 + 294 ] }, { "teal": 227, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 279, - 280, - 281 + 295 ] }, { "teal": 228, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 282 + 296 ] }, { "teal": 229, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 283 + 297, + 298, + 299 ] }, { "teal": 230, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 284 + 300 ] }, { "teal": 231, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 285, - 286 + 301 ] }, { "teal": 232, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 287, - 288 + 302 ] }, { "teal": 233, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 289, - 290 + 303, + 304 ] }, { "teal": 234, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 291, - 292 + 305, + 306 ] }, { "teal": 235, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 293 + 307, + 308 ] }, { "teal": 236, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 294, - 295 + 309, + 310 ] }, { "teal": 237, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 296 + 311 ] }, { "teal": 238, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 297 + 312, + 313 ] }, { "teal": 239, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 298 + 314 ] }, { "teal": 240, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 299 + 315 ] }, { "teal": 241, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 300, - 301 + 316 ] }, { "teal": 242, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 302, - 303, - 304 + 317 ] }, { "teal": 243, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 305, - 306 + 318, + 319 ] }, { "teal": 244, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 307, - 308 + 320, + 321, + 322 ] }, { "teal": 245, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 309 + 323, + 324 ] }, { "teal": 246, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 310 + 325, + 326 ] }, { "teal": 247, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 311, - 312, - 313 + 327, + 328 ] }, { "teal": 248, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 314, - 315 + 329 ] }, { "teal": 249, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 316, - 317 + 330, + 331, + 332 ] }, { "teal": 250, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 318 + 333, + 334 ] }, { "teal": 251, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 319 + 335, + 336 ] }, { "teal": 252, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 320 + 337 ] }, { "teal": 253, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 321 + 338 ] }, { "teal": 254, - "source": 25, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 322 + 339 ] }, { "teal": 255, - "source": 24, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 323, - 324, - 325 + 340 ] }, { - "teal": 260, - "source": 26, + "teal": 256, + "source": "examples/tuple_in_box/app.algo.ts:25", "pc": [ - 326, - 327 + 341 ] }, { - "teal": 261, - "source": 26, + "teal": 257, + "source": "examples/tuple_in_box/app.algo.ts:24", "pc": [ - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336 + 342, + 343, + 344 ] }, { "teal": 262, - "source": 26, + "source": "examples/tuple_in_box/app.algo.ts:26", "pc": [ - 337 + 345, + 346 ] }, { "teal": 263, - "source": 26, + "source": "examples/tuple_in_box/app.algo.ts:26", "pc": [ - 338, - 339, - 340 + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355 ] }, { - "teal": 268, - "source": 27, + "teal": 264, + "source": "examples/tuple_in_box/app.algo.ts:26", "pc": [ - 341, - 342 + 356 ] }, { - "teal": 269, - "source": 27, + "teal": 265, + "source": "examples/tuple_in_box/app.algo.ts:26", "pc": [ - 343 + 357, + 358, + 359 ] }, { - "teal": 272, - "source": 27, - "errorMessage": "box value does not exist: this.contacts(address).value", + "teal": 270, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 344 + 360, + 361 ] }, { - "teal": 273, - "source": 27, + "teal": 271, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 345, - 346 + 362 ] }, { "teal": 274, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", + "errorMessage": "box value does not exist: this.contacts(address).value", "pc": [ - 347 + 363 ] }, { "teal": 275, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 348 + 364, + 365 ] }, { "teal": 276, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 349, - 350 + 366, + 367 ] }, { "teal": 277, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 351, - 352 + 368 ] }, { "teal": 278, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 353, - 354 + 369, + 370 ] }, { "teal": 279, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 355, - 356 + 371, + 372 ] }, { "teal": 280, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 357 + 373, + 374 ] }, { "teal": 281, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 358 + 375, + 376 ] }, { "teal": 282, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 359, - 360 + 377 ] }, { "teal": 283, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 361 + 378 ] }, { "teal": 284, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 362, - 363 + 379, + 380 ] }, { "teal": 285, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 364 + 381 ] }, { "teal": 286, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 365 + 382, + 383 ] }, { "teal": 287, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 366 + 384 ] }, { "teal": 288, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 367 + 385 ] }, { "teal": 289, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 368 + 386, + 387 ] }, { "teal": 290, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 369 + 388 ] }, { "teal": 291, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 370, - 371 + 389, + 390 ] }, { "teal": 292, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 372, - 373 + 391 ] }, { "teal": 293, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 374 + 392, + 393 ] }, { "teal": 294, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 375, - 376 + 394, + 395 ] }, { "teal": 295, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 377 + 396, + 397 ] }, { "teal": 296, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 378, - 379 + 398, + 399 ] }, { "teal": 297, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 380 + 400 ] }, { "teal": 298, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 381 + 401, + 402 ] }, { "teal": 299, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 382 + 403 ] }, { "teal": 300, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 383, - 384, - 385 + 404 ] }, { "teal": 301, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 386 + 405 ] }, { "teal": 302, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 387 + 406, + 407, + 408 ] }, { "teal": 303, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 388 + 409 ] }, { "teal": 304, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 389, - 390 + 410 ] }, { "teal": 305, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 391, - 392 + 411 ] }, { "teal": 306, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 393, - 394 + 412, + 413 ] }, { "teal": 307, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 395, - 396 + 414, + 415 ] }, { "teal": 308, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 397 + 416, + 417 ] }, { "teal": 309, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 398, - 399 + 418, + 419 ] }, { "teal": 310, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 400 + 420 ] }, { "teal": 311, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 401 + 421, + 422 ] }, { "teal": 312, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 402 + 423 ] }, { "teal": 313, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 403 + 424 ] }, { "teal": 314, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 404, - 405 + 425 ] }, { "teal": 315, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 406, - 407, - 408 + 426 ] }, { "teal": 316, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 409, - 410 + 427, + 428 ] }, { "teal": 317, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 411, - 412 + 429, + 430, + 431 ] }, { "teal": 318, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 413 + 432, + 433 ] }, { "teal": 319, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 414 + 434, + 435 ] }, { "teal": 320, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 415 + 436 ] }, { "teal": 321, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 416 + 437 ] }, { "teal": 322, - "source": 27, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 417 + 438 ] }, { "teal": 323, - "source": 26, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 418, - 419, - 420 + 439 ] }, { - "teal": 327, - "source": 28, - "errorMessage": "Invalid field", + "teal": 324, + "source": "examples/tuple_in_box/app.algo.ts:27", "pc": [ - 421 + 440 ] }, { - "teal": 330, - "source": 23, + "teal": 325, + "source": "examples/tuple_in_box/app.algo.ts:26", "pc": [ - 422 + 441, + 442, + 443 ] }, { - "teal": 335, - "source": 31, + "teal": 329, + "source": "examples/tuple_in_box/app.algo.ts:28", + "errorMessage": "Invalid field", "pc": [ - 423, - 424, - 425 + 444 ] }, { - "teal": 336, - "source": 31, + "teal": 332, + "source": "examples/tuple_in_box/app.algo.ts:23", "pc": [ - 426 + 445 ] }, { "teal": 337, - "source": 31, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 427 + 446, + 447, + 448 ] }, { "teal": 338, - "source": 31, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 428 + 449 ] }, { "teal": 339, - "source": 31, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 429 + 450 ] }, { - "teal": 342, - "source": 31, - "errorMessage": "argument 0 (address) for verifyContactName must be a address", + "teal": 340, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 430 + 451, + 452 ] }, { - "teal": 345, - "source": 31, + "teal": 341, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 431, - 432, - 433 + 453 ] }, { - "teal": 346, - "source": 31, + "teal": 344, + "source": "examples/tuple_in_box/app.algo.ts:31", + "errorMessage": "argument 0 (address) for verifyContactName must be a address", "pc": [ - 434, - 435, - 436 + 454 ] }, { - "teal": 349, - "source": 31, + "teal": 347, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 437, - 438, - 439 + 455, + 456, + 457 ] }, { - "teal": 350, - "source": 31, + "teal": 348, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 440 + 458, + 459, + 460 ] }, { "teal": 351, - "source": 31, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 441 + 461, + 462, + 463 ] }, { - "teal": 355, - "source": 31, + "teal": 352, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 442, - 443, - 444 + 464, + 465 ] }, { - "teal": 359, - "source": 32, + "teal": 353, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 445, - 446 + 466 ] }, { - "teal": 360, - "source": 32, + "teal": 357, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 447 + 467, + 468, + 469 ] }, { - "teal": 363, - "source": 32, - "errorMessage": "box value does not exist: this.contacts(address).value", + "teal": 361, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 448 + 470, + 471 ] }, { - "teal": 364, - "source": 32, + "teal": 362, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 449, - 450 + 472 ] }, { "teal": 365, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", + "errorMessage": "box value does not exist: this.contacts(address).value", "pc": [ - 451 + 473 ] }, { "teal": 366, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 452, - 453 + 474, + 475 ] }, { "teal": 367, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 454, - 455 + 476, + 477 ] }, { "teal": 368, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 456, - 457 + 478, + 479 ] }, { "teal": 369, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 458 + 480, + 481 ] }, { "teal": 370, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 459 + 482, + 483 ] }, { "teal": 371, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 460, - 461 + 484 ] }, { "teal": 372, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 462 + 485 ] }, { "teal": 373, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 463 + 486, + 487 ] }, { "teal": 374, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 464 + 488 ] }, { "teal": 375, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 465 + 489 ] }, { "teal": 376, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 466 + 490, + 491 ] }, { "teal": 377, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 467 + 492 ] }, { "teal": 378, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 468 + 493, + 494 ] }, { "teal": 379, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 469, - 470, - 471 + 495 ] }, { "teal": 380, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 472, - 473 + 496 ] }, { "teal": 381, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 474 + 497, + 498, + 499 ] }, { "teal": 382, - "source": 32, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 475 + 500, + 501 ] }, { "teal": 383, - "source": 31, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 476 + 502 ] }, { - "teal": 386, - "source": 6, + "teal": 384, + "source": "examples/tuple_in_box/app.algo.ts:32", "pc": [ - 477 + 503 ] }, { - "teal": 387, - "source": 6, + "teal": 385, + "source": "examples/tuple_in_box/app.algo.ts:31", "pc": [ - 478 + 504 ] }, { - "teal": 390, - "source": 6, + "teal": 388, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 479, - 480, - 481, - 482, - 483, - 484 + 505, + 506 ] }, { - "teal": 391, - "source": 6, + "teal": 389, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 485, - 486, - 487 + 507 ] }, { "teal": 392, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 488, - 489, - 490, - 491 + 508, + 509, + 510, + 511, + 512, + 513 ] }, { - "teal": 395, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "teal": 393, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 492 + 514, + 515, + 516 ] }, { - "teal": 398, - "source": 6, + "teal": 394, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 493, - 494, - 495, - 496, - 497, - 498 + 517, + 518, + 519, + 520 ] }, { - "teal": 399, - "source": 6, + "teal": 397, + "source": "examples/tuple_in_box/app.algo.ts:6", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", "pc": [ - 499, - 500, - 501, - 502, - 503, - 504 + 521 ] }, { "teal": 400, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 505, - 506, - 507, - 508, - 509, - 510 + 522, + 523, + 524, + 525, + 526, + 527 ] }, { "teal": 401, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 511, - 512, - 513, - 514, - 515, - 516 + 528, + 529, + 530, + 531, + 532, + 533 ] }, { "teal": 402, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 517, - 518, - 519 + 534, + 535, + 536, + 537, + 538, + 539 ] }, { "teal": 403, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 520, - 521, - 522, - 523, - 524, - 525, - 526, - 527, - 528, - 529 + 540, + 541, + 542, + 543, + 544, + 545 ] }, { - "teal": 406, - "source": 6, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "teal": 404, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 530 + 546, + 547, + 548 ] }, { - "teal": 409, - "source": 6, + "teal": 405, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 531, - 532, - 533 + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558 ] }, { - "teal": 410, - "source": 6, + "teal": 408, + "source": "examples/tuple_in_box/app.algo.ts:6", + "errorMessage": "this contract does not implement the given ABI method for call NoOp", "pc": [ - 534, - 535 + 559 ] }, { "teal": 411, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 536, - 537 + 560, + 561, + 562 ] }, { "teal": 412, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 538 + 563, + 564 ] }, { "teal": 413, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 539, - 540 + 565, + 566 ] }, { "teal": 414, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 541, - 542 + 567 ] }, { "teal": 415, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 543 + 568, + 569 ] }, { "teal": 416, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 544 + 570, + 571 ] }, { "teal": 417, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 545, - 546 + 572 ] }, { "teal": 418, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 547 + 573 ] }, { "teal": 419, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 548 + 574, + 575 ] }, { "teal": 420, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 549 + 576 ] }, { "teal": 421, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 550, - 551, - 552 + 577 ] }, { "teal": 422, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 553, - 554 + 578 ] }, { "teal": 423, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 555, - 556 + 579, + 580, + 581 ] }, { "teal": 424, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 557 + 582, + 583 ] }, { "teal": 425, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 558 + 584, + 585 ] }, { "teal": 426, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 559, - 560 + 586 ] }, { "teal": 427, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 561, - 562 + 587 ] }, { "teal": 428, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 563, - 564 + 588, + 589 ] }, { "teal": 429, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 565, - 566 + 590, + 591 ] }, { "teal": 430, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 567 + 592, + 593 ] }, { - "teal": 433, - "source": 6, + "teal": 431, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 568, - 569, - 570 + 594, + 595 ] }, { - "teal": 434, - "source": 6, + "teal": 432, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 571, - 572 + 596 ] }, { "teal": 435, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 573, - 574 + 597, + 598, + 599 ] }, { "teal": 436, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 575, - 576 + 600, + 601 ] }, { "teal": 437, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 577 + 602, + 603 ] }, { "teal": 438, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 578, - 579 + 604, + 605 ] }, { "teal": 439, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 580, - 581, - 582 + 606 ] }, { "teal": 440, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 583 + 607, + 608 ] }, { "teal": 441, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 584, - 585, - 586 + 609, + 610, + 611 ] }, { - "teal": 444, - "source": 6, + "teal": 442, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 587 + 612 ] }, { - "teal": 445, - "source": 6, + "teal": 443, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 588 + 613, + 614, + 615 ] }, { - "teal": 448, - "source": 6, + "teal": 446, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 589 + 616 ] }, { - "teal": 449, - "source": 6, + "teal": 447, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 590, - 591, - 592 + 617 ] }, { "teal": 450, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 593, - 594 + 618 ] }, { "teal": 451, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 595 + 619, + 620, + 621 ] }, { "teal": 452, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 596, - 597 + 622, + 623 ] }, { "teal": 453, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 598 + 624 ] }, { "teal": 454, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 599 + 625, + 626 ] }, { "teal": 455, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 600, - 601 + 627 ] }, { "teal": 456, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 602 + 628 ] }, { - "teal": 459, - "source": 6, + "teal": 457, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 603, - 604 + 629, + 630 ] }, { - "teal": 460, - "source": 6, + "teal": 458, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 605 + 631 ] }, { "teal": 461, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 606, - 607 + 632, + 633 ] }, { "teal": 462, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 608 + 634 ] }, { "teal": 463, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 609, - 610, - 611 + 635, + 636 ] }, { "teal": 464, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 612, - 613 + 637 ] }, { "teal": 465, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 614 + 638, + 639, + 640 ] }, { "teal": 466, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 615, - 616 + 641, + 642 ] }, { "teal": 467, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 617 + 643 ] }, { "teal": 468, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 618, - 619 + 644, + 645 ] }, { "teal": 469, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 620, - 621, - 622 + 646, + 647 ] }, { - "teal": 472, - "source": 6, + "teal": 470, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 623, - 624 + 648, + 649 ] }, { - "teal": 473, - "source": 6, + "teal": 471, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 625, - 626 + 650, + 651, + 652 ] }, { "teal": 474, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 627 + 653, + 654 ] }, { "teal": 475, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 628 + 655, + 656 ] }, { "teal": 476, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 629, - 630 + 657 ] }, { - "teal": 479, - "source": 6, + "teal": 477, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 631 + 658, + 659 ] }, { - "teal": 480, - "source": 6, + "teal": 478, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 632, - 633 + 660, + 661 ] }, { "teal": 481, - "source": 6, + "source": "examples/tuple_in_box/app.algo.ts:6", "pc": [ - 634 + 662 + ] + }, + { + "teal": 482, + "source": "examples/tuple_in_box/app.algo.ts:6", + "pc": [ + 663, + 664 + ] + }, + { + "teal": 483, + "source": "examples/tuple_in_box/app.algo.ts:6", + "pc": [ + 665 ] } ] \ No newline at end of file diff --git a/package.json b/package.json index e068184be..9048e5b39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@algorandfoundation/tealscript", - "version": "0.103.2", + "version": "0.104.0", "description": "Enables Algorand smart contract development with native TypeScript syntax, tooling, and IDE support", "homepage": "https://github.com/algorandfoundation/TEALScript", "bugs": { @@ -64,6 +64,7 @@ "argparse": "^2.0.1", "dotenv": "^16.3.1", "glob": "^10.3.10", + "hi-base32": "^0.5.1", "js-sha512": "^0.8.0", "node-fetch": "2", "polytype": "^0.17.0", diff --git a/src/lib/compiler.ts b/src/lib/compiler.ts index d747e819d..894e4e3c0 100644 --- a/src/lib/compiler.ts +++ b/src/lib/compiler.ts @@ -534,9 +534,8 @@ export default class Compiler { private classNode!: ts.ClassDeclaration; sourceInfo: { - source: number; + source: string; teal: number; - disassembledTeal?: number; pc?: number[]; errorMessage?: string; }[] = []; @@ -1907,7 +1906,7 @@ export default class Compiler { 'itxn_field TypeEnum', 'int 0', 'itxn_field Fee', - 'byte b64 CoEB // #pragma version 10; int 1', + 'byte 0x0a8101 // #pragma version 10; int 1', 'dup', 'itxn_field ApprovalProgram', 'itxn_field ClearStateProgram', @@ -2588,7 +2587,9 @@ export default class Compiler { const target = tealLine.split(':')[0].split('_').at(-1)!.toLowerCase() as 'approval' | 'clear' | 'lsig'; const compiledProgram = await c.algodCompileProgram(target); - return { teal: `byte b64 ${compiledProgram.result}`, node: t.node }; + // decode result from base64 to hex + const hexResult = Buffer.from(compiledProgram.result, 'base64').toString('hex'); + return { teal: `byte 0x${hexResult}`, node: t.node }; } const method = tealLine.split(' ')[1]; @@ -2944,17 +2945,16 @@ export default class Compiler { const templateVarIndex = 6; Object.keys(this.templateVars).forEach((propName, i) => { - const { name } = this.templateVars[propName]; - const { slot, type } = this.scratch[propName]; + const { name, type } = this.templateVars[propName]; - this.teal[this.currentProgram].splice(templateVarIndex, 0, { teal: `store ${slot}`, node: this.lastNode }); + let op = 'byte'; if (isNumeric(type)) { - this.teal[this.currentProgram].splice(templateVarIndex, 0, { teal: `btoi`, node: this.lastNode }); + op = 'int'; } this.teal[this.currentProgram].splice(templateVarIndex, 0, { - teal: `pushbytes TMPL_${name}`, + teal: `${op} TMPL_${name}`, node: this.lastNode, }); }); @@ -2980,9 +2980,12 @@ export default class Compiler { this.teal[this.currentProgram].forEach((t, i) => { if (t.teal.length === 0 || t.teal.trim().startsWith('//') || t.teal.trim().split(' ')[0].endsWith(':')) return; + + const relativePath = path.relative(this.cwd, t.node.getSourceFile().getFilePath()); + const line = ts.ts.getLineAndCharacterOfPosition(this.sourceFile.compilerNode, t.node.getStart()).line + 1; this.sourceInfo.push({ teal: i + 1, - source: ts.ts.getLineAndCharacterOfPosition(this.sourceFile.compilerNode, t.node.getStart()).line + 1, + source: `${relativePath}:${line}`, errorMessage: t.errorMessage, }); }); @@ -6004,10 +6007,12 @@ export default class Compiler { this.templateVars[chain[0].getNameNode().getText()] ) { const propName = chain[0].getNameNode().getText(); - const { name } = this.templateVars[propName]; - const { slot, type } = this.scratch[propName]; + const { name, type } = this.templateVars[propName]; + + let op = 'byte'; + if (isNumeric(type)) op = 'int'; - this.push(chain[0], `load ${slot} // TMPL_${name}`, type); + this.push(chain[0], `${op} TMPL_${name}`, type); chain.splice(0, 1); return; @@ -7490,28 +7495,30 @@ declare type AssetFreezeTxn = Required; .map((t) => t.teal) .map((t) => { // Replace template variables - if (t.startsWith('pushbytes TMPL_')) { - const [_, arg] = t.trim().split(' '); + if (t.startsWith('bytecblock') || t.startsWith('intcblock')) { + const newArgs = t.split(' ').map((arg) => { + const tVar = Object.values(this.templateVars).find((v) => v.name === arg.replace(/^TMPL_/, '')); - const tVar = Object.values(this.templateVars).find((v) => v.name === arg.replace(/^TMPL_/, '')); + if (tVar === undefined) return arg; - if (tVar === undefined) throw Error(`Could not find template variable ${arg}`); + if (this.isDynamicType(tVar.type) || isNumeric(tVar.type)) { + if (program === 'lsig' || program === 'approval') { + console.warn( + `WARNING: Due to dynamic template variable type for ${tVar.name} (${typeInfoToABIString( + tVar.type + )}) PC values will not be included in the emitted source mapping` + ); - if (this.isDynamicType(tVar.type)) { - if (program === 'lsig' || program === 'approval') { - console.warn( - `WARNING: Due to dynamic template variable type for ${tVar.name} (${typeInfoToABIString( - tVar.type - )}) PC values will not be included in the emitted source mapping` - ); + this.hasDynamicTemplateVar = true; + } - this.hasDynamicTemplateVar = true; + return isNumeric(tVar.type) ? '0' : '0x'; } - return 'byte 0x'; - } + return `0x${'00'.repeat(this.getTypeLength(tVar.type))}`; + }); - return `byte 0x${'00'.repeat(this.getTypeLength(tVar.type))}`; + return newArgs.join(' '); } // Remove comments to avoid taking up space in the request body @@ -7591,53 +7598,25 @@ declare type AssetFreezeTxn = Required; addrLine.teal += ` ${json.hash}`; } - if (!this.hasDynamicTemplateVar) { - this.sourceInfo.forEach((sm) => { - // eslint-disable-next-line no-param-reassign - sm.pc = this.lineToPc[sm.teal - 1]; - }); - - return json; - } - - // Now dissasemble the program to get a mapping of source -> dissasembled TEAL - - const disassembleResponse = await fetch(`${this.algodServer}:${this.algodPort}/v2/teal/disassemble`, { - method: 'POST', - headers: { - 'X-Algo-API-Token': this.algodToken, - }, - body: Buffer.from(json.result, 'base64'), - }); - - const dissasembleJson = await disassembleResponse.json(); + let lastCblockPc = 0; + let lastCblockLine = 0; - const recompileResponse = await fetch(`${this.algodServer}:${this.algodPort}/v2/teal/compile?sourcemap=true`, { - method: 'POST', - headers: { - 'Content-Type': 'text/plain', - 'X-Algo-API-Token': this.algodToken, - }, - body: dissasembleJson.result, - }); - - const recompiledJson = await recompileResponse.json(); + if (this.hasDynamicTemplateVar) { + const bytecblockLine = this.teal[program].findIndex((t) => t.teal.trim().startsWith('bytecblock')); + const intcblockLine = this.teal[program].findIndex((t) => t.teal.trim().startsWith('intcblock')); + lastCblockLine = Math.max(bytecblockLine, intcblockLine); - if (recompileResponse.status !== 200) { - throw new Error(`Error when compiling disassembled program: ${response.statusText}: ${recompiledJson.message}`); + lastCblockPc = this.lineToPc[lastCblockLine].at(-1)!; } - - const recompiledMapping = await getSourceMap(recompiledJson.sourcemap.mappings); - - // Look at both recompiledMapping and mapping and find the mapping of source teal -> recompiled teal line - Object.keys(recompiledMapping.pcToLine).forEach((pcKey) => { - const pc = Number(pcKey); - const recompiledLine = recompiledMapping.pcToLine[pc]; - const originalLine = mapping.pcToLine[pc]; - - const sourceInfo = this.sourceInfo.find((si) => si.teal === originalLine + 1); - - if (sourceInfo) sourceInfo.disassembledTeal = recompiledLine; + this.sourceInfo.forEach((sm) => { + if (this.hasDynamicTemplateVar) { + if (sm.teal - 1 <= lastCblockLine) return; + // eslint-disable-next-line no-param-reassign + sm.pc = this.lineToPc[sm.teal - 1].map((pc) => pc - lastCblockPc); + return; + } + // eslint-disable-next-line no-param-reassign + sm.pc = this.lineToPc[sm.teal - 1]; }); return json; @@ -7700,6 +7679,13 @@ declare type AssetFreezeTxn = Required; }, }; + const arc56SourceInfo: { pc: number[]; errorMessage: string }[] = this.sourceInfo + .filter((s) => s.errorMessage) + .map((s) => ({ + pc: s.pc as number[], + errorMessage: s.errorMessage as string, + })); + const arc56: ARC56Contract = { ...this.arc4Description(), arcs: [4, 56], @@ -7707,7 +7693,10 @@ declare type AssetFreezeTxn = Required; state, bareActions: { create: [], call: [] }, // TODO: clear source mapping - sourceInfo: { approval: this.sourceInfo, clear: [] }, + sourceInfo: { + approval: { sourceInfo: arc56SourceInfo, pcOffsetMethod: this.hasDynamicTemplateVar ? 'cblocks' : 'none' }, + clear: { sourceInfo: [], pcOffsetMethod: 'none' }, + }, source: { approval: Buffer.from(this.teal.approval.map((t) => t.teal).join('\n')).toString('base64'), clear: Buffer.from(this.teal.clear.map((t) => t.teal).join('\n')).toString('base64'), diff --git a/src/lib/optimize.ts b/src/lib/optimize.ts index 1a7433d4b..4d0df21dd 100644 --- a/src/lib/optimize.ts +++ b/src/lib/optimize.ts @@ -1,4 +1,7 @@ import * as ts from 'ts-morph'; +import base32 from 'hi-base32'; +// eslint-disable-next-line camelcase +import { sha512_256 } from 'js-sha512'; import langspec from '../static/langspec.json'; type TEALInfo = { @@ -8,10 +11,43 @@ type TEALInfo = { }; const MAX_UINT64 = BigInt('0xFFFFFFFFFFFFFFFF'); +const ALGORAND_CHECKSUM_BYTE_LENGTH = 4; const arglessOps = langspec.Ops.filter((op) => op.Args === undefined && op.Returns !== undefined); const arglessOpNames = ['byte', 'int', 'addr', ...arglessOps.map((op) => op.Name)]; +// def decode_address(addr): +// """ +// Decode a string address into its address bytes and checksum. + +// Args: +// addr (str): base32 address + +// Returns: +// bytes: address decoded into bytes + +// """ +// if not addr: +// return addr +// if not len(addr) == constants.address_len: +// raise error.WrongKeyLengthError +// decoded = base64.b32decode(_correct_padding(addr)) +// pubkey = decoded[: -constants.check_sum_len_bytes] +// expected_checksum = decoded[-constants.check_sum_len_bytes :] +// chksum = _checksum(pubkey) + +// if chksum == expected_checksum: +// return pubkey +function decodeAddress(address: string) { + if (address.length !== 58) { + throw Error(`Wrong address length: ${address}`); + } + + const decoded = base32.decode.asBytes(address); + const pubkey = decoded.slice(0, -ALGORAND_CHECKSUM_BYTE_LENGTH); + return Buffer.from(pubkey).toString('hex'); +} + export function optimizeFrames(inputTeal: TEALInfo[]) { const outputTeal = inputTeal.slice(); @@ -415,6 +451,181 @@ export function rmUnusedLabels(inputTeal: TEALInfo[]) { }); } +function constantBlocks(inputTeal: TEALInfo[]): TEALInfo[] { + let newTeal: TEALInfo[] = []; + const oldTeal: TEALInfo[] = inputTeal.slice(); + + const bytecblock = new Set(); + const intcblock = new Set(); + + // first find TMPL_ and add them to constant blocks + oldTeal.forEach((t) => { + const { teal } = t; + + if (teal.startsWith('byte ')) { + const value = teal.split(' ')[1]; + if (value.startsWith('TMPL_')) { + bytecblock.add(value); + // index of value in bytecblock + const index = Array.from(bytecblock).indexOf(value); + newTeal.push({ teal: `bytec ${index} // ${value}`, node: t.node }); + return; + } + } + + if (teal.startsWith('int ')) { + const value = teal.split(' ')[1]; + if (value.startsWith('TMPL_')) { + intcblock.add(value); + // index of value in intcblock + const index = Array.from(intcblock).indexOf(value); + newTeal.push({ teal: `intc ${index} // ${value}`, node: t.node }); + return; + } + } + + newTeal.push(t); + }); + + const intEnums: Record = { + unknown: '0', + pay: '1', + keyreg: '2', + acfg: '3', + axfer: '4', + afrz: '5', + appl: '6', + NoOp: '0', + OptIn: '1', + CloseOut: '2', + ClearState: '3', + UpdateApplication: '4', + DeleteApplication: '5', + }; + + newTeal = newTeal.map((t) => { + if (t.teal.startsWith('method ')) { + const signature = t.teal.split('"')[1]; + const selector = sha512_256(Buffer.from(signature)).slice(0, 8); + return { teal: `byte 0x${selector} // method "${signature}"`, node: t.node }; + } + + if (t.teal.startsWith('addr ')) { + const address = t.teal.split(' ')[1]; + const decoded = decodeAddress(address); + return { teal: `byte 0x${decoded} // addr "${address}"`, node: t.node }; + } + + if (t.teal.startsWith('int ')) { + let arg = t.teal.split(' ')[1]; + if (intEnums[arg]) { + arg = `${intEnums[arg]} // ${arg}`; + + return { teal: `int ${arg}`, node: t.node }; + } + } + + return t; + }); + + // We want to priortize values that take up the most space, so we sort byte byte size * number of uses + + // Map of byte values to their number of uses + const byteValues: Record = {}; + + // Map of int values to their number of uses + const intValues: Record = {}; + + newTeal.forEach((t) => { + if (t.teal.startsWith('byte ')) { + const value = t.teal.split(' ')[1]; + byteValues[value] = (byteValues[value] || 0) + 1; + } + + if (t.teal.startsWith('int ')) { + const value = t.teal.split(' ')[1]; + intValues[value] = (intValues[value] || 0) + 1; + } + }); + + Object.entries(byteValues).forEach(([value, count]) => { + // Delete byte values that are only used once otheriwse we waste bytes putting it in constant block and then calling bytec + if (count === 1) { + delete byteValues[value]; + return; + } + byteValues[value] = value.length * count; + }); + + const numberOfBytes = (n: bigint) => { + return Math.ceil(n.toString(2).length / 8) || 1; + }; + + Object.entries(intValues).forEach(([value, count]) => { + intValues[value] = numberOfBytes(BigInt(value.replace(/_/g, ''))) * count; + + // ints always take up 8 bytes in constant blocks, so it doens't make sense to put them in the constant block if they take up less than that + if (intValues[value] < 8) { + delete intValues[value]; + } + }); + + const sortedByteValues = Object.entries(byteValues) + .sort((a, b) => b[1] - a[1]) + .map(([value]) => value); + + const sortedIntValues = Object.entries(intValues) + .sort((a, b) => b[1] - a[1]) + .map(([value]) => value); + + // create set of byteValues ordered by length * use + + // Keep adding to bytecblock until it's 255 long + while (bytecblock.size < 255 && sortedByteValues.length > 0) { + bytecblock.add(sortedByteValues.shift()!); + } + + // Keep adding to intcblock until it's 255 long + while (intcblock.size < 255 && sortedIntValues.length > 0) { + intcblock.add(sortedIntValues.shift()!); + } + + newTeal = newTeal.map((t) => { + if (t.teal.startsWith('byte ')) { + if (!bytecblock.has(t.teal.split(' ')[1])) { + return { teal: t.teal.replace('byte', 'pushbytes'), node: t.node }; + } + } + + if (t.teal.startsWith('int ')) { + if (!intcblock.has(t.teal.split(' ')[1])) { + return { teal: t.teal.replace('int', 'pushint'), node: t.node }; + } + } + + return t; + }); + + // Insert bytecblock before the first non-comment line + const firstNonCommentLine = newTeal.findIndex((t) => !t.teal.startsWith('//') && !t.teal.startsWith('#')); + + if (bytecblock.size > 0) { + newTeal.splice(firstNonCommentLine, 0, { + teal: `bytecblock ${Array.from(bytecblock).join(' ')}`, + node: newTeal[0].node, + }); + } + + if (intcblock.size > 0) { + newTeal.splice(firstNonCommentLine, 0, { + teal: `intcblock ${Array.from(intcblock).join(' ')}`, + node: newTeal[0].node, + }); + } + + return newTeal; +} + export function optimizeTeal(inputTeal: TEALInfo[]) { let newTeal: TEALInfo[] = inputTeal.slice(); let oldTeal: TEALInfo[] = inputTeal.slice(); @@ -427,5 +638,7 @@ export function optimizeTeal(inputTeal: TEALInfo[]) { newTeal = optimizeOpcodes(newTeal); } while (JSON.stringify(newTeal.map((t) => t.teal)) !== JSON.stringify(oldTeal.map((t) => t.teal))); + newTeal = constantBlocks(newTeal); + return deDupTeal(newTeal); } diff --git a/src/types/arc56.d.ts b/src/types/arc56.d.ts index 1743a0052..f8f7ee123 100644 --- a/src/types/arc56.d.ts +++ b/src/types/arc56.d.ts @@ -59,9 +59,9 @@ export interface ARC56Contract { /** Information about the TEAL programs */ sourceInfo?: { /** Approval program information */ - approval: SourceInfo[]; + approval: ProgramSourceInfo; /** Clear program information */ - clear: SourceInfo[]; + clear: ProgramSourceInfo; }; /** The pre-compiled TEAL that may contain template variables. MUST be omitted if included as part of ARC23 */ source?: { @@ -247,12 +247,18 @@ export interface StorageMap { } export interface SourceInfo { - /** The line of pre-compiled TEAL */ - teal?: number; /** The program counter offset(s) that correspond to this line of TEAL */ pc?: Array; /** A human-readable string that describes the error when the program fails at this given line of TEAL */ - errorMessage?: string; - /** The line of the dissasembled TEAL this line of pre-compiled TEAL corresponds to */ - disassembledTeal?: number; + errorMessage: string; +} + +export interface ProgramSourceInfo { + /** The source information for the program */ + sourceInfo: SourceInfo[]; + /** How the program counter offset is calculated + * - none: The pc values in sourceInfo are not offset + * - cblocks: The pc values in sourceInfo are offset by the PC of the first op following the last cblock at the top of the program + */ + pcOffsetMethod: 'none' | 'cblocks'; } diff --git a/src/version.ts b/src/version.ts index f33a2f8b4..b708d2af7 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.103.2'; +export const VERSION = '0.104.0'; diff --git a/tests/account.test.ts b/tests/account.test.ts index 84d5fc741..a6b58d48b 100644 --- a/tests/account.test.ts +++ b/tests/account.test.ts @@ -41,7 +41,7 @@ describe('Account', function () { expect(await getTeal('assetBalance')).toEqual([ '// assert(a.assetBalance(AssetID.fromUint64(123)))', 'frame_dig -1 // a: Address', - 'int 123', + 'pushint 123', 'asset_holding_get AssetBalance', 'pop', 'assert', @@ -52,7 +52,7 @@ describe('Account', function () { expect(await getTeal('assetFrozen')).toEqual([ '// assert(a.assetFrozen(AssetID.fromUint64(123)))', 'frame_dig -1 // a: Address', - 'int 123', + 'pushint 123', 'asset_holding_get AssetFrozen', 'pop', 'assert', @@ -63,7 +63,7 @@ describe('Account', function () { expect(await getTeal('hasAsset')).toEqual([ '// assert(a.isOptedInToAsset(AssetID.fromUint64(123)))', 'frame_dig -1 // a: Address', - 'int 123', + 'pushint 123', 'asset_holding_get AssetBalance', 'swap', 'pop', diff --git a/tests/cblocks.test.ts b/tests/cblocks.test.ts new file mode 100644 index 000000000..48defaae9 --- /dev/null +++ b/tests/cblocks.test.ts @@ -0,0 +1,37 @@ +/* eslint-disable func-names */ +/* eslint-disable prefer-arrow-callback */ + +import * as algokit from '@algorandfoundation/algokit-utils'; +import { describe, test, expect } from '@jest/globals'; +import { artifactsTest, compileAndCreate, runMethod, algodClient, kmdClient } from './common'; + +const PATH = 'tests/contracts/cblocks.algo.ts'; +const ARTIFACTS_DIR = 'tests/contracts/artifacts/'; + +describe('bytecblock', function () { + const NAME = 'BytecblockTest'; + artifactsTest(PATH, ARTIFACTS_DIR, NAME); + + describe('E2E', function () { + const sender = algokit.getLocalNetDispenserAccount(algodClient, kmdClient); + + test('largeBytecblock', async function () { + const { appClient } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME); + expect(await runMethod({ appClient, method: 'largeBytecblock', fee: 2_000 })).toBe('1257'); + }); + }); +}); + +describe('intcblock', function () { + const NAME = 'IntcblockTest'; + artifactsTest(PATH, ARTIFACTS_DIR, NAME); + + describe('E2E', function () { + const sender = algokit.getLocalNetDispenserAccount(algodClient, kmdClient); + + test('largeBytecblock', async function () { + const { appClient } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME); + expect(await runMethod({ appClient, method: 'largeIntcblock' })).toBe(258n); + }); + }); +}); diff --git a/tests/common.ts b/tests/common.ts index 4118ee17e..cd8ad6599 100644 --- a/tests/common.ts +++ b/tests/common.ts @@ -88,7 +88,9 @@ export async function compileAndCreate( sender: algosdk.Account, sourcePath: string, artifactsPath: string, - className: string + className: string, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + deployTimeParams?: Record ): Promise<{ appClient: ApplicationClient; appId: number | bigint; @@ -129,6 +131,7 @@ export async function compileAndCreate( method: 'createApplication', methodArgs: [], sendParams: { suppressLog: true }, + deployTimeParams, }); return { appClient, appId, compiler }; diff --git a/tests/contracts/artifacts/A.approval.teal b/tests/contracts/artifacts/A.approval.teal index 52435e072..5cc8e1606 100644 --- a/tests/contracts/artifacts/A.approval.teal +++ b/tests/contracts/artifacts/A.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_a: // execute a()void callsub a - int 1 + pushint 1 return // a(): void @@ -35,17 +35,17 @@ a: // tests/contracts/inheritance.algo.ts:16 // this.aKey.value = 1337 - byte 0x61 // "a" - int 1337 + pushbytes 0x61 // "a" + pushint 1337 app_global_put retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -53,7 +53,7 @@ a: err *call_NoOp: - method "a()void" + pushbytes 0x1e7aad1c // method "a()void" txna ApplicationArgs 0 match *abi_route_a diff --git a/tests/contracts/artifacts/A.arc32.json b/tests/contracts/artifacts/A.arc32.json index 7400486e4..2f48b826e 100644 --- a/tests/contracts/artifacts/A.arc32.json +++ b/tests/contracts/artifacts/A.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCXB1c2hieXRlcyAweDYxIC8vICJhIgoJcHVzaGludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/A.arc56_draft.json b/tests/contracts/artifacts/A.arc56_draft.json index d1a5d4c23..2e9d7ce6b 100644 --- a/tests/contracts/artifacts/A.arc56_draft.json +++ b/tests/contracts/artifacts/A.arc56_draft.json @@ -67,267 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 12, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 12, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 12, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 12, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 12, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 12, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 12, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 12, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 12, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 15, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 15, - "pc": [ - 43 - ] - }, - { - "teal": 30, - "source": 15, - "pc": [ - 44 - ] - }, - { - "teal": 34, - "source": 15, - "pc": [ - 45, - 46, - 47 - ] - }, - { - "teal": 38, - "source": 16, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 39, - "source": 16, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 40, - "source": 16, - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 15, - "pc": [ - 55 - ] - }, - { - "teal": 44, - "source": 12, - "pc": [ - 56 - ] - }, - { - "teal": 45, - "source": 12, - "pc": [ - 57 - ] - }, - { - "teal": 48, - "source": 12, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 49, - "source": 12, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 50, - "source": 12, - "pc": [ - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 53, - "source": 12, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 71 - ] - }, - { - "teal": 56, - "source": 12, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 57, - "source": 12, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 58, - "source": 12, - "pc": [ - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 61, - "source": 12, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 85 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 70 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 84 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCXB1c2hieXRlcyAweDYxIC8vICJhIgoJcHVzaGludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MACEAAAAAAAAAAAAAABMAAAAAAAAAAAAAAIgAAiJDigAAgAFhgbkKZ4kiQ4AEuER7NjYaAI4B//EAgAQeeq0cNhoAjgH/0wA=", + "approval": "CjEYFIEGCzEZCI0MACMAAAAAAAAAAAAAABUAAAAAAAAAAAAAAIgAA4EBQ4oAAIABYYG5CmeJgQFDgAS4RHs2NhoAjgH/8ACABB56rRw2GgCOAf/RAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal b/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal index b38f8f2f9..9cfcb7b7f 100644 --- a/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestAccesStringInTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // accesStringInTuple()string *abi_route_accesStringInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute accesStringInTuple()string callsub accesStringInTuple @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // accesStringInTuple(): string @@ -51,14 +52,14 @@ accesStringInTuple: // a: [uint16, uint<8>[], string, uint<8>[]] = [1, [2], 'Hello World!', [3]] byte 0x // initial head byte 0x // initial tail - byte 0x0008 // initial head offset - byte 0x0001 + pushbytes 0x0008 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000102 + pushbytes 0x000102 callsub *process_dynamic_tuple_element - byte 0x000c48656c6c6f20576f726c6421 + pushbytes 0x000c48656c6c6f20576f726c6421 callsub *process_dynamic_tuple_element - byte 0x000103 + pushbytes 0x000103 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -68,7 +69,7 @@ accesStringInTuple: // assert(a[2] === 'Hello World!') frame_dig 0 // a: [uint16, uint<8>[], string, uint<8>[]] store 255 // full array - int 4 + pushint 4 load 255 // full array load 255 // full array uncover 2 @@ -77,13 +78,13 @@ accesStringInTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 - byte 0x48656c6c6f20576f726c6421 // "Hello World!" + pushbytes 0x48656c6c6f20576f726c6421 // "Hello World!" == assert @@ -91,7 +92,7 @@ accesStringInTuple: // return a[2]; frame_dig 0 // a: [uint16, uint<8>[], string, uint<8>[]] store 255 // full array - int 4 + pushint 4 load 255 // full array load 255 // full array uncover 2 @@ -100,9 +101,9 @@ accesStringInTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -112,11 +113,11 @@ accesStringInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -124,7 +125,7 @@ accesStringInTuple: err *call_NoOp: - method "accesStringInTuple()string" + pushbytes 0x942cf3c0 // method "accesStringInTuple()string" txna ApplicationArgs 0 match *abi_route_accesStringInTuple diff --git a/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json b/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json index 7a5f7c3b5..8be35d0cc 100644 --- a/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestAccesStringInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoJY2FsbHN1YiBhY2Nlc1N0cmluZ0luVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNTdHJpbmdJblR1cGxlKCk6IHN0cmluZwphY2Nlc1N0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTAKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDggLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTIKCS8vIGFzc2VydChhWzJdID09PSAnSGVsbG8gV29ybGQhJykKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJYnl0ZSAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTQKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWNjZXNTdHJpbmdJblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2VzU3RyaW5nSW5UdXBsZSgpc3RyaW5nCgljYWxsc3ViIGFjY2VzU3RyaW5nSW5UdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNTdHJpbmdJblR1cGxlKCk6IHN0cmluZwphY2Nlc1N0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTAKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwOCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUyCgkvLyBhc3NlcnQoYVsyXSA9PT0gJ0hlbGxvIFdvcmxkIScpCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXB1c2hieXRlcyAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTQKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDk0MmNmM2MwIC8vIG1ldGhvZCAiYWNjZXNTdHJpbmdJblR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccesStringInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestAccesStringInTuple.arc56_draft.json index 486fac7da..85f6dec7a 100644 --- a/tests/contracts/artifacts/ABITestAccesStringInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestAccesStringInTuple.arc56_draft.json @@ -61,980 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 548, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 548, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 548, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 548, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 16, - "source": 548, - "pc": [ - 14 - ] - }, - { - "teal": 17, - "source": 548, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 18, - "source": 548, - "pc": [ - 17 - ] - }, - { - "teal": 19, - "source": 548, - "pc": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ] - }, - { - "teal": 23, - "source": 548, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 44 - ] - }, - { - "teal": 28, - "source": 549, - "pc": [ - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 31, - "source": 549, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 32, - "source": 549, - "pc": [ - 54 - ] - }, - { - "teal": 33, - "source": 549, - "pc": [ - 55 - ] - }, - { - "teal": 34, - "source": 549, - "pc": [ - 56 - ] - }, - { - "teal": 35, - "source": 549, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 36, - "source": 549, - "pc": [ - 60 - ] - }, - { - "teal": 37, - "source": 549, - "pc": [ - 61 - ] - }, - { - "teal": 38, - "source": 549, - "pc": [ - 62 - ] - }, - { - "teal": 39, - "source": 549, - "pc": [ - 63 - ] - }, - { - "teal": 40, - "source": 549, - "pc": [ - 64 - ] - }, - { - "teal": 41, - "source": 549, - "pc": [ - 65 - ] - }, - { - "teal": 45, - "source": 549, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 549, - "pc": [ - 69 - ] - }, - { - "teal": 52, - "source": 550, - "pc": [ - 70 - ] - }, - { - "teal": 53, - "source": 550, - "pc": [ - 71 - ] - }, - { - "teal": 54, - "source": 550, - "pc": [ - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 55, - "source": 550, - "pc": [ - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 56, - "source": 550, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 57, - "source": 550, - "pc": [ - 83, - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 58, - "source": 550, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 59, - "source": 550, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 60, - "source": 550, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 61, - "source": 550, - "pc": [ - 110, - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 62, - "source": 550, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 63, - "source": 550, - "pc": [ - 118 - ] - }, - { - "teal": 64, - "source": 550, - "pc": [ - 119 - ] - }, - { - "teal": 65, - "source": 550, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 69, - "source": 552, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 70, - "source": 552, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 71, - "source": 552, - "pc": [ - 126 - ] - }, - { - "teal": 72, - "source": 552, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 73, - "source": 552, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 74, - "source": 552, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 75, - "source": 552, - "pc": [ - 133 - ] - }, - { - "teal": 76, - "source": 552, - "pc": [ - 134 - ] - }, - { - "teal": 77, - "source": 552, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 78, - "source": 552, - "pc": [ - 137 - ] - }, - { - "teal": 79, - "source": 552, - "pc": [ - 138 - ] - }, - { - "teal": 80, - "source": 552, - "pc": [ - 139 - ] - }, - { - "teal": 81, - "source": 552, - "pc": [ - 140 - ] - }, - { - "teal": 82, - "source": 552, - "pc": [ - 141 - ] - }, - { - "teal": 83, - "source": 552, - "pc": [ - 142 - ] - }, - { - "teal": 84, - "source": 552, - "pc": [ - 143 - ] - }, - { - "teal": 85, - "source": 552, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 86, - "source": 552, - "pc": [ - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160 - ] - }, - { - "teal": 87, - "source": 552, - "pc": [ - 161 - ] - }, - { - "teal": 88, - "source": 552, - "pc": [ - 162 - ] - }, - { - "teal": 92, - "source": 554, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 93, - "source": 554, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 94, - "source": 554, - "pc": [ - 167 - ] - }, - { - "teal": 95, - "source": 554, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 96, - "source": 554, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 97, - "source": 554, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 98, - "source": 554, - "pc": [ - 174 - ] - }, - { - "teal": 99, - "source": 554, - "pc": [ - 175 - ] - }, - { - "teal": 100, - "source": 554, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 101, - "source": 554, - "pc": [ - 178 - ] - }, - { - "teal": 102, - "source": 554, - "pc": [ - 179 - ] - }, - { - "teal": 103, - "source": 554, - "pc": [ - 180 - ] - }, - { - "teal": 104, - "source": 554, - "pc": [ - 181 - ] - }, - { - "teal": 105, - "source": 554, - "pc": [ - 182 - ] - }, - { - "teal": 106, - "source": 554, - "pc": [ - 183 - ] - }, - { - "teal": 107, - "source": 554, - "pc": [ - 184 - ] - }, - { - "teal": 108, - "source": 554, - "pc": [ - 185, - 186, - 187 - ] - }, - { - "teal": 111, - "source": 549, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 112, - "source": 549, - "pc": [ - 190 - ] - }, - { - "teal": 115, - "source": 548, - "pc": [ - 191 - ] - }, - { - "teal": 116, - "source": 548, - "pc": [ - 192 - ] - }, - { - "teal": 119, - "source": 548, - "pc": [ - 193, - 194, - 195, - 196, - 197, - 198 - ] - }, - { - "teal": 120, - "source": 548, - "pc": [ - 199, - 200, - 201 - ] - }, - { - "teal": 121, - "source": 548, - "pc": [ - 202, - 203, - 204, - 205 - ] - }, - { - "teal": 124, - "source": 548, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 206 - ] - }, - { - "teal": 127, - "source": 548, - "pc": [ - 207, - 208, - 209, - 210, - 211, - 212 - ] - }, - { - "teal": 128, - "source": 548, - "pc": [ - 213, - 214, - 215 - ] - }, - { - "teal": 129, - "source": 548, - "pc": [ - 216, - 217, - 218, - 219 - ] - }, - { - "teal": 132, - "source": 548, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 220 - ] - }, - { - "teal": 135, - "source": 548, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 136, - "source": 548, - "pc": [ - 224, - 225 - ] - }, - { - "teal": 137, - "source": 548, - "pc": [ - 226, - 227 - ] - }, - { - "teal": 138, - "source": 548, - "pc": [ - 228 - ] - }, - { - "teal": 139, - "source": 548, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 140, - "source": 548, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 141, - "source": 548, - "pc": [ - 233 - ] - }, - { - "teal": 144, - "source": 548, - "pc": [ - 234, - 235, - 236 - ] - }, - { - "teal": 145, - "source": 548, - "pc": [ - 237, - 238 - ] - }, - { - "teal": 146, - "source": 548, - "pc": [ - 239, - 240 - ] - }, - { - "teal": 147, - "source": 548, - "pc": [ - 241 - ] - }, - { - "teal": 148, - "source": 548, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 149, - "source": 548, - "pc": [ - 244, - 245 - ] - }, - { - "teal": 150, - "source": 548, - "pc": [ - 246 - ] - }, - { - "teal": 151, - "source": 548, - "pc": [ - 247 - ] - }, - { - "teal": 152, - "source": 548, - "pc": [ - 248, - 249 - ] - }, - { - "teal": 153, - "source": 548, - "pc": [ - 250 - ] - }, - { - "teal": 154, - "source": 548, - "pc": [ - 251 - ] - }, - { - "teal": 155, - "source": 548, - "pc": [ - 252 - ] - }, - { - "teal": 156, - "source": 548, - "pc": [ - 253, - 254, - 255 - ] - }, - { - "teal": 157, - "source": 548, - "pc": [ - 256, - 257 - ] - }, - { - "teal": 158, - "source": 548, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 159, - "source": 548, - "pc": [ - 260 - ] - }, - { - "teal": 160, - "source": 548, - "pc": [ - 261 - ] - }, - { - "teal": 161, - "source": 548, - "pc": [ - 262, - 263 - ] - }, - { - "teal": 162, - "source": 548, - "pc": [ - 264, - 265 - ] - }, - { - "teal": 163, - "source": 548, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 164, - "source": 548, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 165, - "source": 548, - "pc": [ - 270 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 212 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 226 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoJY2FsbHN1YiBhY2Nlc1N0cmluZ0luVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNTdHJpbmdJblR1cGxlKCk6IHN0cmluZwphY2Nlc1N0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTAKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDggLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTIKCS8vIGFzc2VydChhWzJdID09PSAnSGVsbG8gV29ybGQhJykKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJYnl0ZSAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTQKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYWNjZXNTdHJpbmdJblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc1N0cmluZ0luVHVwbGUoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2VzU3RyaW5nSW5UdXBsZSgpc3RyaW5nCgljYWxsc3ViIGFjY2VzU3RyaW5nSW5UdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNTdHJpbmdJblR1cGxlKCk6IHN0cmluZwphY2Nlc1N0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTAKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwOCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUyCgkvLyBhc3NlcnQoYVsyXSA9PT0gJ0hlbGxvIFdvcmxkIScpCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXB1c2hieXRlcyAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NTQKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDk0MmNmM2MwIC8vIG1ldGhvZCAiYWNjZXNTdHJpbmdJblR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2VzU3RyaW5nSW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQQCJgEAMRgUgQYLMRkIjQwAowAAAAAAAAAAAAAAlQAAAAAAAAAAAAAAgAQVH3x1iAAMSRUWVwYCTFBQsCJDigABKCgogAIACIACAAGIAIqAAwABAogAj4AOAAxIZWxsbyBXb3JsZCGIAHyAAwABA4gAdEhQjACLADX/IzT/NP9PAllJNP9MWSILJAhYVwIAgAxIZWxsbyBXb3JsZCESRIsANf8jNP80/08CWUk0/0xZIgskCFhXAgCMAIkiQ4AEuER7NjYaAI4B//EAgASULPPANhoAjgH/UQCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYBADEYFIEGCzEZCI0MAK4AAAAAAAAAAAAAAKAAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAIgAIAAYgAkYADAAECiACWgA4ADEhlbGxvIFdvcmxkIYgAg4ADAAEDiAB7SFCMAIsANf+BBDT/NP9PAllJNP9MWYEBC4ECCFhXAgCADEhlbGxvIFdvcmxkIRJEiwA1/4EENP80/08CWUk0/0xZgQELgQIIWFcCAIwAiYEBQ4AEuER7NjYaAI4B//AAgASULPPANhoAjgH/RgCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal index 0856f364e..0ca383e4c 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // accessDynamicArrayElementInTuple()uint8 *abi_route_accessDynamicArrayElementInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute accessDynamicArrayElementInTuple()uint8 callsub accessDynamicArrayElementInTuple itob dup bitlen - int 8 + pushint 8 <= // accessDynamicArrayElementInTuple return value overflowed 8 bits @@ -40,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 7 1 concat log - int 1 + pushint 1 return // accessDynamicArrayElementInTuple(): uint<8> @@ -54,10 +55,10 @@ accessDynamicArrayElementInTuple: // a: [uint16, uint<8>[]] = [11, [22, 33, 44]] byte 0x // initial head byte 0x // initial tail - byte 0x0004 // initial head offset - byte 0x000b + pushbytes 0x0004 // initial head offset + pushbytes 0x000b callsub *process_static_tuple_element - byte 0x000316212c + pushbytes 0x000316212c callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -68,15 +69,15 @@ accessDynamicArrayElementInTuple: frame_dig 0 // a: [uint16, uint<8>[]] store 255 // full array load 255 // full array - int 2 + pushint 2 extract_uint16 - int 1 // acc * typeLength + pushint 1 // acc * typeLength + - int 2 + pushint 2 + // add two for length load 255 // full array swap - int 1 + pushint 1 extract3 btoi @@ -85,11 +86,11 @@ accessDynamicArrayElementInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -97,7 +98,7 @@ accessDynamicArrayElementInTuple: err *call_NoOp: - method "accessDynamicArrayElementInTuple()uint8" + pushbytes 0xf8e517ce // method "accessDynamicArrayElementInTuple()uint8" txna ApplicationArgs 0 match *abi_route_accessDynamicArrayElementInTuple diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json index 0ab424647..c0858e070 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKCWNhbGxzdWIgYWNjZXNzRHluYW1pY0FycmF5RWxlbWVudEluVHVwbGUKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpOiB1aW50PDg+CmFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc0CgkvLyBhOiBbdWludDE2LCB1aW50PDg+W11dID0gWzExLCBbMjIsIDMzLCA0NF1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDBiCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzE2MjEyYwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc2CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZXh0cmFjdF91aW50MTYKCWludCAxIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50IDEKCWV4dHJhY3QzCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlKCl1aW50OAoJY2FsbHN1YiBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY0FycmF5RWxlbWVudEluVHVwbGUoKTogdWludDw4PgphY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY3NAoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdXSA9IFsxMSwgWzIyLCAzMywgNDRdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMGIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDMxNjIxMmMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY3NgoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAyCglleHRyYWN0X3VpbnQxNgoJcHVzaGludCAxIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCXB1c2hpbnQgMQoJZXh0cmFjdDMKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjhlNTE3Y2UgLy8gbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc56_draft.json index 0d22b69b7..7c82beea5 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc56_draft.json @@ -61,753 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 672, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - }, - { - "teal": 13, - "source": 672, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 14, - "source": 672, - "pc": [ - 10 - ] - }, - { - "teal": 15, - "source": 672, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 16, - "source": 672, - "pc": [ - 13 - ] - }, - { - "teal": 17, - "source": 672, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 18, - "source": 672, - "pc": [ - 16 - ] - }, - { - "teal": 19, - "source": 672, - "pc": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ] - }, - { - "teal": 23, - "source": 672, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 43 - ] - }, - { - "teal": 28, - "source": 673, - "pc": [ - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 31, - "source": 673, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 32, - "source": 673, - "pc": [ - 53 - ] - }, - { - "teal": 33, - "source": 673, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 673, - "pc": [ - 55 - ] - }, - { - "teal": 35, - "source": 673, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 36, - "source": 673, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 673, - "errorMessage": "accessDynamicArrayElementInTuple return value overflowed 8 bits", - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 673, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 41, - "source": 673, - "pc": [ - 63 - ] - }, - { - "teal": 42, - "source": 673, - "pc": [ - 64 - ] - }, - { - "teal": 43, - "source": 673, - "pc": [ - 65 - ] - }, - { - "teal": 44, - "source": 673, - "pc": [ - 66 - ] - }, - { - "teal": 48, - "source": 673, - "pc": [ - 67, - 68, - 69 - ] - }, - { - "teal": 51, - "source": 673, - "pc": [ - 70 - ] - }, - { - "teal": 55, - "source": 674, - "pc": [ - 71 - ] - }, - { - "teal": 56, - "source": 674, - "pc": [ - 72 - ] - }, - { - "teal": 57, - "source": 674, - "pc": [ - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 58, - "source": 674, - "pc": [ - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 59, - "source": 674, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 60, - "source": 674, - "pc": [ - 84, - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 61, - "source": 674, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 62, - "source": 674, - "pc": [ - 94 - ] - }, - { - "teal": 63, - "source": 674, - "pc": [ - 95 - ] - }, - { - "teal": 64, - "source": 674, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 68, - "source": 676, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 69, - "source": 676, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 70, - "source": 676, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 71, - "source": 676, - "pc": [ - 104 - ] - }, - { - "teal": 72, - "source": 676, - "pc": [ - 105 - ] - }, - { - "teal": 73, - "source": 676, - "pc": [ - 106 - ] - }, - { - "teal": 74, - "source": 676, - "pc": [ - 107 - ] - }, - { - "teal": 75, - "source": 676, - "pc": [ - 108 - ] - }, - { - "teal": 76, - "source": 676, - "pc": [ - 109 - ] - }, - { - "teal": 77, - "source": 676, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 78, - "source": 676, - "pc": [ - 112 - ] - }, - { - "teal": 79, - "source": 676, - "pc": [ - 113 - ] - }, - { - "teal": 80, - "source": 676, - "pc": [ - 114 - ] - }, - { - "teal": 81, - "source": 676, - "pc": [ - 115 - ] - }, - { - "teal": 84, - "source": 673, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 85, - "source": 673, - "pc": [ - 118 - ] - }, - { - "teal": 88, - "source": 672, - "pc": [ - 119 - ] - }, - { - "teal": 89, - "source": 672, - "pc": [ - 120 - ] - }, - { - "teal": 92, - "source": 672, - "pc": [ - 121, - 122, - 123, - 124, - 125, - 126 - ] - }, - { - "teal": 93, - "source": 672, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 94, - "source": 672, - "pc": [ - 130, - 131, - 132, - 133 - ] - }, - { - "teal": 97, - "source": 672, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 134 - ] - }, - { - "teal": 100, - "source": 672, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140 - ] - }, - { - "teal": 101, - "source": 672, - "pc": [ - 141, - 142, - 143 - ] - }, - { - "teal": 102, - "source": 672, - "pc": [ - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 105, - "source": 672, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 148 - ] - }, - { - "teal": 108, - "source": 672, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 109, - "source": 672, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 110, - "source": 672, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 111, - "source": 672, - "pc": [ - 156 - ] - }, - { - "teal": 112, - "source": 672, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 113, - "source": 672, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 114, - "source": 672, - "pc": [ - 161 - ] - }, - { - "teal": 117, - "source": 672, - "pc": [ - 162, - 163, - 164 - ] - }, - { - "teal": 118, - "source": 672, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 119, - "source": 672, - "pc": [ - 167, - 168 - ] - }, - { - "teal": 120, - "source": 672, - "pc": [ - 169 - ] - }, - { - "teal": 121, - "source": 672, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 122, - "source": 672, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 123, - "source": 672, - "pc": [ - 174 - ] - }, - { - "teal": 124, - "source": 672, - "pc": [ - 175 - ] - }, - { - "teal": 125, - "source": 672, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 126, - "source": 672, - "pc": [ - 178 - ] - }, - { - "teal": 127, - "source": 672, - "pc": [ - 179 - ] - }, - { - "teal": 128, - "source": 672, - "pc": [ - 180 - ] - }, - { - "teal": 129, - "source": 672, - "pc": [ - 181, - 182, - 183 - ] - }, - { - "teal": 130, - "source": 672, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 131, - "source": 672, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 132, - "source": 672, - "pc": [ - 188 - ] - }, - { - "teal": 133, - "source": 672, - "pc": [ - 189 - ] - }, - { - "teal": 134, - "source": 672, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 135, - "source": 672, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 136, - "source": 672, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 137, - "source": 672, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 138, - "source": 672, - "pc": [ - 198 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 55 + ], + "errorMessage": "accessDynamicArrayElementInTuple return value overflowed 8 bits" + }, + { + "pc": [ + 139 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 153 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKCWNhbGxzdWIgYWNjZXNzRHluYW1pY0FycmF5RWxlbWVudEluVHVwbGUKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpOiB1aW50PDg+CmFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc0CgkvLyBhOiBbdWludDE2LCB1aW50PDg+W11dID0gWzExLCBbMjIsIDMzLCA0NF1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDBiCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzE2MjEyYwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njc2CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZXh0cmFjdF91aW50MTYKCWludCAxIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJaW50IDEKCWV4dHJhY3QzCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgKKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlKCl1aW50OAoJY2FsbHN1YiBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyBhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY0FycmF5RWxlbWVudEluVHVwbGUoKTogdWludDw4PgphY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY3NAoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdXSA9IFsxMSwgWzIyLCAzMywgNDRdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMGIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDMxNjIxMmMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY3NgoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAyCglleHRyYWN0X3VpbnQxNgoJcHVzaGludCAxIC8vIGFjYyAqIHR5cGVMZW5ndGgKCSsKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCXB1c2hpbnQgMQoJZXh0cmFjdDMKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjhlNTE3Y2UgLy8gbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlFbGVtZW50SW5UdXBsZSgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUVsZW1lbnRJblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQImAQAxGBSBBgsxGQiNDABcAAAAAAAAAAAAAABOAAAAAAAAAAAAAACABBUffHWIAA4WSZOBCA5EVwcBULAiQ4oAASgoKIACAASAAgALiABBgAUAAxYhLIgAREhQjACLADX/NP8jWSIIIwg0/0wiWBeMAIkiQ4AEuER7NjYaAI4B//EAgAT45RfONhoAjgH/mACKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYBADEYFIEGCzEZCI0MAGUAAAAAAAAAAAAAAFcAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EIDkRXBwFQsIEBQ4oAAYAAgACAAIACAASAAgALiABGgAUAAxYhLIgASUhQjACLADX/NP+BAlmBAQiBAgg0/0yBAVgXjACJgQFDgAS4RHs2NhoAjgH/8ACABPjlF842GgCOAf+PAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal index b4e99463f..79e1d1b42 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // accessDynamicArrayInMiddleOfTuple()uint8[] *abi_route_accessDynamicArrayInMiddleOfTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute accessDynamicArrayInMiddleOfTuple()uint8[] callsub accessDynamicArrayInMiddleOfTuple @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // accessDynamicArrayInMiddleOfTuple(): uint<8>[] @@ -51,12 +52,12 @@ accessDynamicArrayInMiddleOfTuple: // a: [uint16, uint<8>[], uint16] = [1, [2], 3] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x0001 + pushbytes 0x0006 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000102 + pushbytes 0x000102 callsub *process_dynamic_tuple_element - byte 0x0003 + pushbytes 0x0003 callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail @@ -66,7 +67,7 @@ accessDynamicArrayInMiddleOfTuple: // return a[1]; frame_dig 0 // a: [uint16, uint<8>[], uint16] store 255 // full array - int 2 + pushint 2 load 255 // full array load 255 // full array uncover 2 @@ -75,9 +76,9 @@ accessDynamicArrayInMiddleOfTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -87,11 +88,11 @@ accessDynamicArrayInMiddleOfTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -99,7 +100,7 @@ accessDynamicArrayInMiddleOfTuple: err *call_NoOp: - method "accessDynamicArrayInMiddleOfTuple()uint8[]" + pushbytes 0x2ff382de // method "accessDynamicArrayInMiddleOfTuple()uint8[]" txna ApplicationArgs 0 match *abi_route_accessDynamicArrayInMiddleOfTuple diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json index a98414dcf..8ff81e67a 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCl1aW50OFtdCgljYWxsc3ViIGFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogdWludDw4PltdCmFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2NgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2OAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KCWNhbGxzdWIgYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogdWludDw4PltdCmFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2NgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjY4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmZmMzgyZGUgLy8gbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc56_draft.json index e0970bd72..03f2b3c0e 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc56_draft.json @@ -61,786 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 664, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - }, - { - "teal": 13, - "source": 664, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 14, - "source": 664, - "pc": [ - 10 - ] - }, - { - "teal": 15, - "source": 664, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 16, - "source": 664, - "pc": [ - 13 - ] - }, - { - "teal": 17, - "source": 664, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 18, - "source": 664, - "pc": [ - 16 - ] - }, - { - "teal": 19, - "source": 664, - "pc": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ] - }, - { - "teal": 23, - "source": 664, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 43 - ] - }, - { - "teal": 28, - "source": 665, - "pc": [ - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 31, - "source": 665, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 32, - "source": 665, - "pc": [ - 53 - ] - }, - { - "teal": 33, - "source": 665, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 665, - "pc": [ - 55 - ] - }, - { - "teal": 35, - "source": 665, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 36, - "source": 665, - "pc": [ - 59 - ] - }, - { - "teal": 37, - "source": 665, - "pc": [ - 60 - ] - }, - { - "teal": 38, - "source": 665, - "pc": [ - 61 - ] - }, - { - "teal": 39, - "source": 665, - "pc": [ - 62 - ] - }, - { - "teal": 40, - "source": 665, - "pc": [ - 63 - ] - }, - { - "teal": 41, - "source": 665, - "pc": [ - 64 - ] - }, - { - "teal": 45, - "source": 665, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 48, - "source": 665, - "pc": [ - 68 - ] - }, - { - "teal": 52, - "source": 666, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 666, - "pc": [ - 70 - ] - }, - { - "teal": 54, - "source": 666, - "pc": [ - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 55, - "source": 666, - "pc": [ - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 56, - "source": 666, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 57, - "source": 666, - "pc": [ - 82, - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 58, - "source": 666, - "pc": [ - 87, - 88, - 89 - ] - }, - { - "teal": 59, - "source": 666, - "pc": [ - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 60, - "source": 666, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 61, - "source": 666, - "pc": [ - 97 - ] - }, - { - "teal": 62, - "source": 666, - "pc": [ - 98 - ] - }, - { - "teal": 63, - "source": 666, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 67, - "source": 668, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 68, - "source": 668, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 69, - "source": 668, - "pc": [ - 105 - ] - }, - { - "teal": 70, - "source": 668, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 71, - "source": 668, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 72, - "source": 668, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 73, - "source": 668, - "pc": [ - 112 - ] - }, - { - "teal": 74, - "source": 668, - "pc": [ - 113 - ] - }, - { - "teal": 75, - "source": 668, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 76, - "source": 668, - "pc": [ - 116 - ] - }, - { - "teal": 77, - "source": 668, - "pc": [ - 117 - ] - }, - { - "teal": 78, - "source": 668, - "pc": [ - 118 - ] - }, - { - "teal": 79, - "source": 668, - "pc": [ - 119 - ] - }, - { - "teal": 80, - "source": 668, - "pc": [ - 120 - ] - }, - { - "teal": 81, - "source": 668, - "pc": [ - 121 - ] - }, - { - "teal": 82, - "source": 668, - "pc": [ - 122 - ] - }, - { - "teal": 83, - "source": 668, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 86, - "source": 665, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 87, - "source": 665, - "pc": [ - 128 - ] - }, - { - "teal": 90, - "source": 664, - "pc": [ - 129 - ] - }, - { - "teal": 91, - "source": 664, - "pc": [ - 130 - ] - }, - { - "teal": 94, - "source": 664, - "pc": [ - 131, - 132, - 133, - 134, - 135, - 136 - ] - }, - { - "teal": 95, - "source": 664, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 96, - "source": 664, - "pc": [ - 140, - 141, - 142, - 143 - ] - }, - { - "teal": 99, - "source": 664, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 144 - ] - }, - { - "teal": 102, - "source": 664, - "pc": [ - 145, - 146, - 147, - 148, - 149, - 150 - ] - }, - { - "teal": 103, - "source": 664, - "pc": [ - 151, - 152, - 153 - ] - }, - { - "teal": 104, - "source": 664, - "pc": [ - 154, - 155, - 156, - 157 - ] - }, - { - "teal": 107, - "source": 664, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 158 - ] - }, - { - "teal": 110, - "source": 664, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 111, - "source": 664, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 112, - "source": 664, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 113, - "source": 664, - "pc": [ - 166 - ] - }, - { - "teal": 114, - "source": 664, - "pc": [ - 167, - 168 - ] - }, - { - "teal": 115, - "source": 664, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 116, - "source": 664, - "pc": [ - 171 - ] - }, - { - "teal": 119, - "source": 664, - "pc": [ - 172, - 173, - 174 - ] - }, - { - "teal": 120, - "source": 664, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 121, - "source": 664, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 122, - "source": 664, - "pc": [ - 179 - ] - }, - { - "teal": 123, - "source": 664, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 124, - "source": 664, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 125, - "source": 664, - "pc": [ - 184 - ] - }, - { - "teal": 126, - "source": 664, - "pc": [ - 185 - ] - }, - { - "teal": 127, - "source": 664, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 128, - "source": 664, - "pc": [ - 188 - ] - }, - { - "teal": 129, - "source": 664, - "pc": [ - 189 - ] - }, - { - "teal": 130, - "source": 664, - "pc": [ - 190 - ] - }, - { - "teal": 131, - "source": 664, - "pc": [ - 191, - 192, - 193 - ] - }, - { - "teal": 132, - "source": 664, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 133, - "source": 664, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 134, - "source": 664, - "pc": [ - 198 - ] - }, - { - "teal": 135, - "source": 664, - "pc": [ - 199 - ] - }, - { - "teal": 136, - "source": 664, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 137, - "source": 664, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 138, - "source": 664, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 139, - "source": 664, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 140, - "source": 664, - "pc": [ - 208 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 162 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCl1aW50OFtdCgljYWxsc3ViIGFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogdWludDw4PltdCmFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2NgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2OAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10KCWNhbGxzdWIgYWNjZXNzRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogdWludDw4PltdCmFjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2NgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjY4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmZmMzgyZGUgLy8gbWV0aG9kICJhY2Nlc3NEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQImAQAxGBSBBgsxGQiNDABmAAAAAAAAAAAAAABYAAAAAAAAAAAAAACABBUffHWIAAxJFRZXBgJMUFCwIkOKAAEoKCiAAgAGgAIAAYgATYADAAECiABSgAIAA4gAPkhQjACLADX/IzT/NP9PAllJNP9MWSILIwhYVwIAjACJIkOABLhEezY2GgCOAf/xAIAEL/OC3jYaAI4B/44AigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", + "approval": "CiYBADEYFIEGCzEZCI0MAG4AAAAAAAAAAAAAAGAAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAGgAIAAYgAUYADAAECiABWgAIAA4gAQkhQjACLADX/gQI0/zT/TwJZSTT/TFmBAQuBAghYVwIAjACJgQFDgAS4RHs2NhoAjgH/8ACABC/zgt42GgCOAf+GAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal index 89704b5db..603420afc 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // accessDynamicStringArray()string *abi_route_accessDynamicStringArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute accessDynamicStringArray()string callsub accessDynamicStringArray @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // accessDynamicStringArray(): string @@ -51,16 +52,16 @@ accessDynamicStringArray: // a: string[] = ['Hello', 'World', '!'] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x000548656c6c6f + pushbytes 0x0006 // initial head offset + pushbytes 0x000548656c6c6f callsub *process_dynamic_tuple_element - byte 0x0005576f726c64 + pushbytes 0x0005576f726c64 callsub *process_dynamic_tuple_element - byte 0x000121 + pushbytes 0x000121 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail - byte 0x0003 + pushbytes 0x0003 swap concat frame_bury 0 // a: string[] @@ -69,20 +70,20 @@ accessDynamicStringArray: // return a[1]; frame_dig 0 // a: string[] store 255 // full array - int 4 + pushint 4 load 255 // full array load 255 // full array uncover 2 extract_uint16 - int 2 + pushint 2 + // add two for length dup // duplicate start of element load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -92,11 +93,11 @@ accessDynamicStringArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -104,7 +105,7 @@ accessDynamicStringArray: err *call_NoOp: - method "accessDynamicStringArray()string" + pushbytes 0xf84ba4bf // method "accessDynamicStringArray()string" txna ApplicationArgs 0 match *abi_route_accessDynamicStringArray diff --git a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json index fc3d6f3b9..120e9dade 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoJY2FsbHN1YiBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KCk6IHN0cmluZwphY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDU0ODY1NmM2YzZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcxMgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheSgpc3RyaW5nCgljYWxsc3ViIGFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KCk6IHN0cmluZwphY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDA1NDg2NTZjNmM2ZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBzdHJpbmdbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTIKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogc3RyaW5nW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGY4NGJhNGJmIC8vIG1ldGhvZCAiYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc56_draft.json b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc56_draft.json index f41a03624..02911b8ad 100644 --- a/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc56_draft.json @@ -61,780 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 708, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - }, - { - "teal": 13, - "source": 708, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 14, - "source": 708, - "pc": [ - 10 - ] - }, - { - "teal": 15, - "source": 708, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 16, - "source": 708, - "pc": [ - 13 - ] - }, - { - "teal": 17, - "source": 708, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 18, - "source": 708, - "pc": [ - 16 - ] - }, - { - "teal": 19, - "source": 708, - "pc": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ] - }, - { - "teal": 23, - "source": 708, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 43 - ] - }, - { - "teal": 28, - "source": 709, - "pc": [ - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 31, - "source": 709, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 32, - "source": 709, - "pc": [ - 53 - ] - }, - { - "teal": 33, - "source": 709, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 709, - "pc": [ - 55 - ] - }, - { - "teal": 35, - "source": 709, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 36, - "source": 709, - "pc": [ - 59 - ] - }, - { - "teal": 37, - "source": 709, - "pc": [ - 60 - ] - }, - { - "teal": 38, - "source": 709, - "pc": [ - 61 - ] - }, - { - "teal": 39, - "source": 709, - "pc": [ - 62 - ] - }, - { - "teal": 40, - "source": 709, - "pc": [ - 63 - ] - }, - { - "teal": 41, - "source": 709, - "pc": [ - 64 - ] - }, - { - "teal": 45, - "source": 709, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 48, - "source": 709, - "pc": [ - 68 - ] - }, - { - "teal": 52, - "source": 710, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 710, - "pc": [ - 70 - ] - }, - { - "teal": 54, - "source": 710, - "pc": [ - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 55, - "source": 710, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 56, - "source": 710, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 57, - "source": 710, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 58, - "source": 710, - "pc": [ - 96, - 97, - 98 - ] - }, - { - "teal": 59, - "source": 710, - "pc": [ - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 60, - "source": 710, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 61, - "source": 710, - "pc": [ - 107 - ] - }, - { - "teal": 62, - "source": 710, - "pc": [ - 108 - ] - }, - { - "teal": 63, - "source": 710, - "pc": [ - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 64, - "source": 710, - "pc": [ - 113 - ] - }, - { - "teal": 65, - "source": 710, - "pc": [ - 114 - ] - }, - { - "teal": 66, - "source": 710, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 70, - "source": 712, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 71, - "source": 712, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 72, - "source": 712, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 73, - "source": 712, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 74, - "source": 712, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 75, - "source": 712, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 76, - "source": 712, - "pc": [ - 129 - ] - }, - { - "teal": 77, - "source": 712, - "pc": [ - 130 - ] - }, - { - "teal": 78, - "source": 712, - "pc": [ - 131 - ] - }, - { - "teal": 79, - "source": 712, - "pc": [ - 132 - ] - }, - { - "teal": 80, - "source": 712, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 81, - "source": 712, - "pc": [ - 135 - ] - }, - { - "teal": 82, - "source": 712, - "pc": [ - 136 - ] - }, - { - "teal": 83, - "source": 712, - "pc": [ - 137 - ] - }, - { - "teal": 84, - "source": 712, - "pc": [ - 138 - ] - }, - { - "teal": 85, - "source": 712, - "pc": [ - 139 - ] - }, - { - "teal": 86, - "source": 712, - "pc": [ - 140 - ] - }, - { - "teal": 87, - "source": 712, - "pc": [ - 141 - ] - }, - { - "teal": 88, - "source": 712, - "pc": [ - 142, - 143, - 144 - ] - }, - { - "teal": 91, - "source": 709, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 92, - "source": 709, - "pc": [ - 147 - ] - }, - { - "teal": 95, - "source": 708, - "pc": [ - 148 - ] - }, - { - "teal": 96, - "source": 708, - "pc": [ - 149 - ] - }, - { - "teal": 99, - "source": 708, - "pc": [ - 150, - 151, - 152, - 153, - 154, - 155 - ] - }, - { - "teal": 100, - "source": 708, - "pc": [ - 156, - 157, - 158 - ] - }, - { - "teal": 101, - "source": 708, - "pc": [ - 159, - 160, - 161, - 162 - ] - }, - { - "teal": 104, - "source": 708, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 163 - ] - }, - { - "teal": 107, - "source": 708, - "pc": [ - 164, - 165, - 166, - 167, - 168, - 169 - ] - }, - { - "teal": 108, - "source": 708, - "pc": [ - 170, - 171, - 172 - ] - }, - { - "teal": 109, - "source": 708, - "pc": [ - 173, - 174, - 175, - 176 - ] - }, - { - "teal": 112, - "source": 708, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 177 - ] - }, - { - "teal": 115, - "source": 708, - "pc": [ - 178, - 179, - 180 - ] - }, - { - "teal": 116, - "source": 708, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 117, - "source": 708, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 118, - "source": 708, - "pc": [ - 185 - ] - }, - { - "teal": 119, - "source": 708, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 120, - "source": 708, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 121, - "source": 708, - "pc": [ - 190 - ] - }, - { - "teal": 122, - "source": 708, - "pc": [ - 191 - ] - }, - { - "teal": 123, - "source": 708, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 124, - "source": 708, - "pc": [ - 194 - ] - }, - { - "teal": 125, - "source": 708, - "pc": [ - 195 - ] - }, - { - "teal": 126, - "source": 708, - "pc": [ - 196 - ] - }, - { - "teal": 127, - "source": 708, - "pc": [ - 197, - 198, - 199 - ] - }, - { - "teal": 128, - "source": 708, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 129, - "source": 708, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 130, - "source": 708, - "pc": [ - 204 - ] - }, - { - "teal": 131, - "source": 708, - "pc": [ - 205 - ] - }, - { - "teal": 132, - "source": 708, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 133, - "source": 708, - "pc": [ - 208, - 209 - ] - }, - { - "teal": 134, - "source": 708, - "pc": [ - 210, - 211 - ] - }, - { - "teal": 135, - "source": 708, - "pc": [ - 212, - 213 - ] - }, - { - "teal": 136, - "source": 708, - "pc": [ - 214 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 167 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 181 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoJY2FsbHN1YiBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KCk6IHN0cmluZwphY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDU0ODY1NmM2YzZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcxMgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXkoKXN0cmluZwoqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheSgpc3RyaW5nCgljYWxsc3ViIGFjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KCk6IHN0cmluZwphY2Nlc3NEeW5hbWljU3RyaW5nQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDA1NDg2NTZjNmM2ZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBzdHJpbmdbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MTIKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogc3RyaW5nW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGY4NGJhNGJmIC8vIG1ldGhvZCAiYWNjZXNzRHluYW1pY1N0cmluZ0FycmF5KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc0R5bmFtaWNTdHJpbmdBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQImAQAxGBSBBgsxGQiNDAB5AAAAAAAAAAAAAABrAAAAAAAAAAAAAACABBUffHWIAAxJFRZXBgJMUFCwIkOKAAEoKCiAAgAGgAcABUhlbGxviABbgAcABVdvcmxkiABPgAMAASGIAEdIUIACAANMUIwAiwA1/4EENP80/08CWSMISTT/TFkiCyMIWFcCAIwAiSJDgAS4RHs2NhoAjgH/8QCABPhLpL82GgCOAf97AIoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", + "approval": "CiYBADEYFIEGCzEZCI0MAIEAAAAAAAAAAAAAAHMAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAGgAcABUhlbGxviABfgAcABVdvcmxkiABTgAMAASGIAEtIUIACAANMUIwAiwA1/4EENP80/08CWYECCEk0/0xZgQELgQIIWFcCAIwAiYEBQ4AEuER7NjYaAI4B//AAgAT4S6S/NhoAjgH/cwCKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.approval.teal b/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.approval.teal index 7e4ca713f..5e5cc24a6 100644 --- a/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.approval.teal +++ b/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x7374616b657273 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // accessStaticArrayInBoxInVariable()uint64 *abi_route_accessStaticArrayInBoxInVariable: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute accessStaticArrayInBoxInVariable()uint64 callsub accessStaticArrayInBoxInVariable itob concat log - int 1 + pushint 1 return // accessStaticArrayInBoxInVariable(): uint64 @@ -42,7 +43,7 @@ accessStaticArrayInBoxInVariable: // tests/contracts/abi.algo.ts:1516 // this.bKey.create() byte 0x7374616b657273 // "stakers" - int 120 + pushint 120 box_create pop @@ -51,25 +52,25 @@ accessStaticArrayInBoxInVariable: // tests/contracts/abi.algo.ts:1519 // val.u64 = 1 byte 0x7374616b657273 // "stakers" - int 0 - byte 0x0000000000000001 + pushint 0 + pushbytes 0x0000000000000001 box_replace // tests/contracts/abi.algo.ts:1521 // return val.u64; byte 0x7374616b657273 // "stakers" - int 0 - int 8 + pushint 0 + pushint 8 box_extract btoi retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -77,7 +78,7 @@ accessStaticArrayInBoxInVariable: err *call_NoOp: - method "accessStaticArrayInBoxInVariable()uint64" + pushbytes 0xce8a00b8 // method "accessStaticArrayInBoxInVariable()uint64" txna ApplicationArgs 0 match *abi_route_accessStaticArrayInBoxInVariable diff --git a/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc32.json b/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc32.json index c4a1e90e9..fdf17cbb1 100644 --- a/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc32.json +++ b/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZSgpdWludDY0CiphYmlfcm91dGVfYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBhY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCk6IHVpbnQ2NAphY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE2CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWludCAxMjAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE3CgkvLyB2YWwgPSB0aGlzLmJLZXkudmFsdWVbaV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE5CgkvLyB2YWwudTY0ID0gMQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJaW50IDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTIxCgkvLyByZXR1cm4gdmFsLnU2NDsKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg3Mzc0NjE2YjY1NzI3MwoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQKKmFiaV9yb3V0ZV9hY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQKCWNhbGxzdWIgYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGUoKTogdWludDY0CmFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MTYKCS8vIHRoaXMuYktleS5jcmVhdGUoKQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJcHVzaGludCAxMjAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE3CgkvLyB2YWwgPSB0aGlzLmJLZXkudmFsdWVbaV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE5CgkvLyB2YWwudTY0ID0gMQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJcHVzaGludCAwCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTIxCgkvLyByZXR1cm4gdmFsLnU2NDsKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCXB1c2hpbnQgMAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhjZThhMDBiOCAvLyBtZXRob2QgImFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc56_draft.json b/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc56_draft.json index 1f0680c1a..1785b35b4 100644 --- a/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc56_draft.json @@ -67,388 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1511, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ] - }, - { - "teal": 13, - "source": 1511, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 14, - "source": 1511, - "pc": [ - 17 - ] - }, - { - "teal": 15, - "source": 1511, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 16, - "source": 1511, - "pc": [ - 20 - ] - }, - { - "teal": 17, - "source": 1511, - "pc": [ - 21, - 22 - ] - }, - { - "teal": 18, - "source": 1511, - "pc": [ - 23 - ] - }, - { - "teal": 19, - "source": 1511, - "pc": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 23, - "source": 1511, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 50 - ] - }, - { - "teal": 28, - "source": 1514, - "pc": [ - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 31, - "source": 1514, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 32, - "source": 1514, - "pc": [ - 60 - ] - }, - { - "teal": 33, - "source": 1514, - "pc": [ - 61 - ] - }, - { - "teal": 34, - "source": 1514, - "pc": [ - 62 - ] - }, - { - "teal": 35, - "source": 1514, - "pc": [ - 63 - ] - }, - { - "teal": 36, - "source": 1514, - "pc": [ - 64 - ] - }, - { - "teal": 40, - "source": 1514, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 44, - "source": 1516, - "pc": [ - 68 - ] - }, - { - "teal": 45, - "source": 1516, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 46, - "source": 1516, - "pc": [ - 71 - ] - }, - { - "teal": 47, - "source": 1516, - "pc": [ - 72 - ] - }, - { - "teal": 53, - "source": 1517, - "pc": [ - 73 - ] - }, - { - "teal": 54, - "source": 1517, - "pc": [ - 74 - ] - }, - { - "teal": 55, - "source": 1517, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 56, - "source": 1517, - "pc": [ - 85 - ] - }, - { - "teal": 60, - "source": 1517, - "pc": [ - 86 - ] - }, - { - "teal": 61, - "source": 1517, - "pc": [ - 87 - ] - }, - { - "teal": 62, - "source": 1517, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 63, - "source": 1517, - "pc": [ - 90 - ] - }, - { - "teal": 64, - "source": 1521, - "pc": [ - 91 - ] - }, - { - "teal": 65, - "source": 1514, - "pc": [ - 92 - ] - }, - { - "teal": 68, - "source": 1511, - "pc": [ - 93 - ] - }, - { - "teal": 69, - "source": 1511, - "pc": [ - 94 - ] - }, - { - "teal": 72, - "source": 1511, - "pc": [ - 95, - 96, - 97, - 98, - 99, - 100 - ] - }, - { - "teal": 73, - "source": 1511, - "pc": [ - 101, - 102, - 103 - ] - }, - { - "teal": 74, - "source": 1511, - "pc": [ - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 77, - "source": 1511, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 108 - ] - }, - { - "teal": 80, - "source": 1511, - "pc": [ - 109, - 110, - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 81, - "source": 1511, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 82, - "source": 1511, - "pc": [ - 118, - 119, - 120, - 121 - ] - }, - { - "teal": 85, - "source": 1511, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 122 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 46 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 132 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 146 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZSgpdWludDY0CiphYmlfcm91dGVfYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBhY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCk6IHVpbnQ2NAphY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE2CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWludCAxMjAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE3CgkvLyB2YWwgPSB0aGlzLmJLZXkudmFsdWVbaV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE5CgkvLyB2YWwudTY0ID0gMQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJaW50IDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTIxCgkvLyByZXR1cm4gdmFsLnU2NDsKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg3Mzc0NjE2YjY1NzI3MwoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQKKmFiaV9yb3V0ZV9hY2Nlc3NTdGF0aWNBcnJheUluQm94SW5WYXJpYWJsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQKCWNhbGxzdWIgYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYWNjZXNzU3RhdGljQXJyYXlJbkJveEluVmFyaWFibGUoKTogdWludDY0CmFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MTYKCS8vIHRoaXMuYktleS5jcmVhdGUoKQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJcHVzaGludCAxMjAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE3CgkvLyB2YWwgPSB0aGlzLmJLZXkudmFsdWVbaV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTE5CgkvLyB2YWwudTY0ID0gMQoJYnl0ZSAweDczNzQ2MTZiNjU3MjczIC8vICJzdGFrZXJzIgoJcHVzaGludCAwCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTIxCgkvLyByZXR1cm4gdmFsLnU2NDsKCWJ5dGUgMHg3Mzc0NjE2YjY1NzI3MyAvLyAic3Rha2VycyIKCXB1c2hpbnQgMAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhjZThhMDBiOCAvLyBtZXRob2QgImFjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY0FycmF5SW5Cb3hJblZhcmlhYmxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQAmAQdzdGFrZXJzMRgUgQYLMRkIjQwAOwAAAAAAAAAAAAAALQAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAEogXi5SCgjgAgAAAAAAAAAAbsoI4EIuheJIkOABLhEezY2GgCOAf/xAIAEzooAuDYaAI4B/7kA", + "approval": "CiYBB3N0YWtlcnMxGBSBBgsxGQiNDABXAAAAAAAAAAAAAABJAAAAAAAAAAAAAACABBUffHWIAAYWULCBAUOKAAGAB3N0YWtlcnOBeLlIgAdzdGFrZXJzgQCACAAAAAAAAAABu4AHc3Rha2Vyc4EAgQi6F4mBAUOABLhEezY2GgCOAf/wAIAEzooAuDYaAI4B/50A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestAngularCasting.approval.teal b/tests/contracts/artifacts/ABITestAngularCasting.approval.teal index 1fafcfaf9..c989615c4 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestAngularCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,29 +25,29 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // angularCasting()uint256 *abi_route_angularCasting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute angularCasting()uint256 callsub angularCasting dup bitlen - int 256 + pushint 256 <= // angularCasting return value overflowed 256 bits assert - byte 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + pushbytes 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF b& dup len dup - int 32 + pushint 32 - swap substring3 concat log - int 1 + pushint 1 return // angularCasting(): uint256 @@ -55,11 +55,11 @@ angularCasting: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1033 // x = 1337 - byte 0x0000000000000000000000000000000000000000000000000000000000000539 + pushbytes 0x0000000000000000000000000000000000000000000000000000000000000539 frame_bury 0 // x: uint256 // tests/contracts/abi.algo.ts:1035 @@ -71,11 +71,11 @@ angularCasting: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -83,7 +83,7 @@ angularCasting: err *call_NoOp: - method "angularCasting()uint256" + pushbytes 0x176e57df // method "angularCasting()uint256" txna ApplicationArgs 0 match *abi_route_angularCasting diff --git a/tests/contracts/artifacts/ABITestAngularCasting.arc32.json b/tests/contracts/artifacts/ABITestAngularCasting.arc32.json index 803915724..f5e18cc31 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestAngularCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhbmd1bGFyQ2FzdGluZygpdWludDI1NgoqYWJpX3JvdXRlX2FuZ3VsYXJDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CgljYWxsc3ViIGFuZ3VsYXJDYXN0aW5nCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBhbmd1bGFyQ2FzdGluZyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFuZ3VsYXJDYXN0aW5nKCk6IHVpbnQyNTYKYW5ndWxhckNhc3Rpbmc6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDMzCgkvLyB4ID0gPHVpbnQyNTY+MTMzNwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMzUKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDI1NgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYW5ndWxhckNhc3RpbmcoKXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FuZ3VsYXJDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYW5ndWxhckNhc3RpbmcoKXVpbnQyNTYKKmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CgljYWxsc3ViIGFuZ3VsYXJDYXN0aW5nCglkdXAKCWJpdGxlbgoJcHVzaGludCAyNTYKCTw9CgoJLy8gYW5ndWxhckNhc3RpbmcgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYW5ndWxhckNhc3RpbmcoKTogdWludDI1Ngphbmd1bGFyQ2FzdGluZzoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAzMwoJLy8geCA9IDx1aW50MjU2PjEzMzcKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMzUKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDI1NgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxNzZlNTdkZiAvLyBtZXRob2QgImFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestAngularCasting.arc56_draft.json b/tests/contracts/artifacts/ABITestAngularCasting.arc56_draft.json index 4a8976f84..1dd9aa5c6 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestAngularCasting.arc56_draft.json @@ -61,475 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1031, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1031, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1031, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1031, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1031, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1031, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1031, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1031, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1031, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1032, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1032, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1032, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1032, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1032, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 35, - "source": 1032, - "pc": [ - 54 - ] - }, - { - "teal": 38, - "source": 1032, - "errorMessage": "angularCasting return value overflowed 256 bits", - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 1032, - "pc": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 40, - "source": 1032, - "pc": [ - 90 - ] - }, - { - "teal": 41, - "source": 1032, - "pc": [ - 91 - ] - }, - { - "teal": 42, - "source": 1032, - "pc": [ - 92 - ] - }, - { - "teal": 43, - "source": 1032, - "pc": [ - 93 - ] - }, - { - "teal": 44, - "source": 1032, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 45, - "source": 1032, - "pc": [ - 96 - ] - }, - { - "teal": 46, - "source": 1032, - "pc": [ - 97 - ] - }, - { - "teal": 47, - "source": 1032, - "pc": [ - 98 - ] - }, - { - "teal": 48, - "source": 1032, - "pc": [ - 99 - ] - }, - { - "teal": 49, - "source": 1032, - "pc": [ - 100 - ] - }, - { - "teal": 50, - "source": 1032, - "pc": [ - 101 - ] - }, - { - "teal": 51, - "source": 1032, - "pc": [ - 102 - ] - }, - { - "teal": 55, - "source": 1032, - "pc": [ - 103, - 104, - 105 - ] - }, - { - "teal": 58, - "source": 1032, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 62, - "source": 1033, - "pc": [ - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141 - ] - }, - { - "teal": 63, - "source": 1033, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 67, - "source": 1035, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 70, - "source": 1032, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 71, - "source": 1032, - "pc": [ - 148 - ] - }, - { - "teal": 74, - "source": 1031, - "pc": [ - 149 - ] - }, - { - "teal": 75, - "source": 1031, - "pc": [ - 150 - ] - }, - { - "teal": 78, - "source": 1031, - "pc": [ - 151, - 152, - 153, - 154, - 155, - 156 - ] - }, - { - "teal": 79, - "source": 1031, - "pc": [ - 157, - 158, - 159 - ] - }, - { - "teal": 80, - "source": 1031, - "pc": [ - 160, - 161, - 162, - 163 - ] - }, - { - "teal": 83, - "source": 1031, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 164 - ] - }, - { - "teal": 86, - "source": 1031, - "pc": [ - 165, - 166, - 167, - 168, - 169, - 170 - ] - }, - { - "teal": 87, - "source": 1031, - "pc": [ - 171, - 172, - 173 - ] - }, - { - "teal": 88, - "source": 1031, - "pc": [ - 174, - 175, - 176, - 177 - ] - }, - { - "teal": 91, - "source": 1031, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 178 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "angularCasting return value overflowed 256 bits" + }, + { + "pc": [ + 163 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 177 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhbmd1bGFyQ2FzdGluZygpdWludDI1NgoqYWJpX3JvdXRlX2FuZ3VsYXJDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CgljYWxsc3ViIGFuZ3VsYXJDYXN0aW5nCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBhbmd1bGFyQ2FzdGluZyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFuZ3VsYXJDYXN0aW5nKCk6IHVpbnQyNTYKYW5ndWxhckNhc3Rpbmc6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDMzCgkvLyB4ID0gPHVpbnQyNTY+MTMzNwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMzUKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDI1NgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYW5ndWxhckNhc3RpbmcoKXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FuZ3VsYXJDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYW5ndWxhckNhc3RpbmcoKXVpbnQyNTYKKmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CgljYWxsc3ViIGFuZ3VsYXJDYXN0aW5nCglkdXAKCWJpdGxlbgoJcHVzaGludCAyNTYKCTw9CgoJLy8gYW5ndWxhckNhc3RpbmcgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYW5ndWxhckNhc3RpbmcoKTogdWludDI1Ngphbmd1bGFyQ2FzdGluZzoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAzMwoJLy8geCA9IDx1aW50MjU2PjEzMzcKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMzUKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIDAgLy8geDogdWludDI1NgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxNzZlNTdkZiAvLyBtZXRob2QgImFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAH4AAAAAAAAAAAAAAHAAAAAAAAAAAAAAAIAEFR98dYgANkmTgYACDkSAIP//////////////////////////////////////////rEkVSYEgCUxSULAiQ4oAAYAAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFOYwAiwCMAIkiQ4AEuER7NjYaAI4B//EAgAQXblffNhoAjgH/dgA=", + "approval": "CjEYFIEGCzEZCI0MAIAAAAAAAAAAAAAAAHIAAAAAAAAAAAAAAIAEFR98dYgAN0mTgYACDkSAIP//////////////////////////////////////////rEkVSYEgCUxSULCBAUOKAAGAAIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTmMAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABBduV982GgCOAf90AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal b/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal index ea6136e34..004bcf8e6 100644 --- a/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInMethodCall.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_arrayInMethodCall: // execute arrayInMethodCall()void callsub arrayInMethodCall - int 1 + pushint 1 return // arrayInMethodCall(): void @@ -40,33 +40,33 @@ arrayInMethodCall: // methodArgs: [[1, 2], this.txn.sender, 3, false], // }) itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - method "foo((uint64,uint64),address,uint64,bool)void" + pushbytes 0x69a5458d // method "foo((uint64,uint64),address,uint64,bool)void" itxn_field ApplicationArgs // tests/contracts/abi.algo.ts:1394 // applicationID: AppID.fromUint64(0) - int 0 + pushint 0 itxn_field ApplicationID // tests/contracts/abi.algo.ts:1396 // methodArgs: [[1, 2], this.txn.sender, 3, false] - byte 0x00000000000000010000000000000002 + pushbytes 0x00000000000000010000000000000002 itxn_field ApplicationArgs txn Sender itxn_field ApplicationArgs - byte 0x0000000000000003 + pushbytes 0x0000000000000003 itxn_field ApplicationArgs - int 0 - byte 0x00 - int 0 + pushint 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit itxn_field ApplicationArgs // Fee field not set, defaulting to 0 - int 0 + pushint 0 itxn_field Fee // Submit inner transaction @@ -74,11 +74,11 @@ arrayInMethodCall: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -86,7 +86,7 @@ arrayInMethodCall: err *call_NoOp: - method "arrayInMethodCall()void" + pushbytes 0xbe15cf10 // method "arrayInMethodCall()void" txna ApplicationArgs 0 match *abi_route_arrayInMethodCall diff --git a/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json b/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json index f0227246f..afa9c12f7 100644 --- a/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayInMethodCall.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAoqYWJpX3JvdXRlX2FycmF5SW5NZXRob2RDYWxsOgoJLy8gZXhlY3V0ZSBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAoJY2FsbHN1YiBhcnJheUluTWV0aG9kQ2FsbAoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlJbk1ldGhvZENhbGwoKTogdm9pZAphcnJheUluTWV0aG9kQ2FsbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzkzCgkvLyBzZW5kTWV0aG9kQ2FsbDxbW3VpbnQ2NCwgdWludDY0XSwgQWRkcmVzcywgdWludDY0LCBib29sZWFuXSwgdm9pZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgwKSwKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW1sxLCAyXSwgdGhpcy50eG4uc2VuZGVyLCAzLCBmYWxzZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImZvbygodWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM5NAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgwKQoJaW50IDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk2CgkvLyBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5SW5NZXRob2RDYWxsKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheUluTWV0aG9kQ2FsbAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlJbk1ldGhvZENhbGwoKXZvaWQKKmFiaV9yb3V0ZV9hcnJheUluTWV0aG9kQ2FsbDoKCS8vIGV4ZWN1dGUgYXJyYXlJbk1ldGhvZENhbGwoKXZvaWQKCWNhbGxzdWIgYXJyYXlJbk1ldGhvZENhbGwKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpOiB2b2lkCmFycmF5SW5NZXRob2RDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzOTMKCS8vIHNlbmRNZXRob2RDYWxsPFtbdWludDY0LCB1aW50NjRdLCBBZGRyZXNzLCB1aW50NjQsIGJvb2xlYW5dLCB2b2lkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KDApLAoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDY5YTU0NThkIC8vIG1ldGhvZCAiZm9vKCh1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk0CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KDApCglwdXNoaW50IDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk2CgkvLyBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hpbnQgMAoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmUxNWNmMTAgLy8gbWV0aG9kICJhcnJheUluTWV0aG9kQ2FsbCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlJbk1ldGhvZENhbGwKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInMethodCall.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayInMethodCall.arc56_draft.json index 9e45a581e..07a684741 100644 --- a/tests/contracts/artifacts/ABITestArrayInMethodCall.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayInMethodCall.arc56_draft.json @@ -61,440 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1391, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1391, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1391, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1391, - "pc": [ - 9 - ] - }, - { - "teal": 16, - "source": 1391, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 1391, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 1391, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 1391, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 1391, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 1392, - "pc": [ - 41, - 42, - 43 - ] - }, - { - "teal": 29, - "source": 1392, - "pc": [ - 44 - ] - }, - { - "teal": 30, - "source": 1392, - "pc": [ - 45 - ] - }, - { - "teal": 34, - "source": 1392, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 42, - "source": 1393, - "pc": [ - 49 - ] - }, - { - "teal": 43, - "source": 1393, - "pc": [ - 50 - ] - }, - { - "teal": 44, - "source": 1393, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 45, - "source": 1395, - "pc": [ - 53, - 54, - 55, - 56, - 57, - 58 - ] - }, - { - "teal": 46, - "source": 1395, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 50, - "source": 1394, - "pc": [ - 61 - ] - }, - { - "teal": 51, - "source": 1394, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 55, - "source": 1396, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 56, - "source": 1396, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 57, - "source": 1396, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 58, - "source": 1396, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 59, - "source": 1396, - "pc": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 60, - "source": 1396, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 61, - "source": 1396, - "pc": [ - 100 - ] - }, - { - "teal": 62, - "source": 1396, - "pc": [ - 101, - 102, - 103 - ] - }, - { - "teal": 63, - "source": 1396, - "pc": [ - 104 - ] - }, - { - "teal": 64, - "source": 1396, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 65, - "source": 1396, - "pc": [ - 107 - ] - }, - { - "teal": 66, - "source": 1396, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 69, - "source": 1393, - "pc": [ - 110 - ] - }, - { - "teal": 70, - "source": 1393, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 73, - "source": 1393, - "pc": [ - 113 - ] - }, - { - "teal": 74, - "source": 1392, - "pc": [ - 114 - ] - }, - { - "teal": 77, - "source": 1391, - "pc": [ - 115 - ] - }, - { - "teal": 78, - "source": 1391, - "pc": [ - 116 - ] - }, - { - "teal": 81, - "source": 1391, - "pc": [ - 117, - 118, - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 82, - "source": 1391, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 83, - "source": 1391, - "pc": [ - 126, - 127, - 128, - 129 - ] - }, - { - "teal": 86, - "source": 1391, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 130 - ] - }, - { - "teal": 89, - "source": 1391, - "pc": [ - 131, - 132, - 133, - 134, - 135, - 136 - ] - }, - { - "teal": 90, - "source": 1391, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 91, - "source": 1391, - "pc": [ - 140, - 141, - 142, - 143 - ] - }, - { - "teal": 94, - "source": 1391, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 144 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 133 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 147 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAoqYWJpX3JvdXRlX2FycmF5SW5NZXRob2RDYWxsOgoJLy8gZXhlY3V0ZSBhcnJheUluTWV0aG9kQ2FsbCgpdm9pZAoJY2FsbHN1YiBhcnJheUluTWV0aG9kQ2FsbAoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlJbk1ldGhvZENhbGwoKTogdm9pZAphcnJheUluTWV0aG9kQ2FsbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzkzCgkvLyBzZW5kTWV0aG9kQ2FsbDxbW3VpbnQ2NCwgdWludDY0XSwgQWRkcmVzcywgdWludDY0LCBib29sZWFuXSwgdm9pZD4oewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgwKSwKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW1sxLCAyXSwgdGhpcy50eG4uc2VuZGVyLCAzLCBmYWxzZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImZvbygodWludDY0LHVpbnQ2NCksYWRkcmVzcyx1aW50NjQsYm9vbCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM5NAoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgwKQoJaW50IDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk2CgkvLyBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJaW50IDAKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5SW5NZXRob2RDYWxsKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheUluTWV0aG9kQ2FsbAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlJbk1ldGhvZENhbGwoKXZvaWQKKmFiaV9yb3V0ZV9hcnJheUluTWV0aG9kQ2FsbDoKCS8vIGV4ZWN1dGUgYXJyYXlJbk1ldGhvZENhbGwoKXZvaWQKCWNhbGxzdWIgYXJyYXlJbk1ldGhvZENhbGwKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluTWV0aG9kQ2FsbCgpOiB2b2lkCmFycmF5SW5NZXRob2RDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzOTMKCS8vIHNlbmRNZXRob2RDYWxsPFtbdWludDY0LCB1aW50NjRdLCBBZGRyZXNzLCB1aW50NjQsIGJvb2xlYW5dLCB2b2lkPih7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KDApLAoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweDY5YTU0NThkIC8vIG1ldGhvZCAiZm9vKCh1aW50NjQsdWludDY0KSxhZGRyZXNzLHVpbnQ2NCxib29sKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk0CgkvLyBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KDApCglwdXNoaW50IDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzk2CgkvLyBtZXRob2RBcmdzOiBbWzEsIDJdLCB0aGlzLnR4bi5zZW5kZXIsIDMsIGZhbHNlXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMwoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hpbnQgMAoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmUxNWNmMTAgLy8gbWV0aG9kICJhcnJheUluTWV0aG9kQ2FsbCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlJbk1ldGhvZENhbGwKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAAYBMRgUIwsxGQiNDABbAAAAAAAAAAAAAABNAAAAAAAAAAAAAACIAAIkQ4oAALEjshCABGmlRY2yGiKyGIAQAAAAAAAAAAEAAAAAAAAAArIaMQCyGoAIAAAAAAAAAAOyGiKAAQAiTwJUshoisgGziSRDgAS4RHs2NhoAjgH/8QCABL4VzxA2GgCOAf+ZAA==", + "approval": "CjEYFIEGCzEZCI0MAGIAAAAAAAAAAAAAAFQAAAAAAAAAAAAAAIgAA4EBQ4oAALGBBrIQgARppUWNshqBALIYgBAAAAAAAAAAAQAAAAAAAAACshoxALIagAgAAAAAAAAAA7IagQCAAQCBAE8CVLIagQCyAbOJgQFDgAS4RHs2NhoAjgH/8ACABL4VzxA2GgCOAf+SAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal b/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal index acfdc1bdc..4f4313cfa 100644 --- a/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInObjectInState.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayInObjectInState()uint64 *abi_route_arrayInObjectInState: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayInObjectInState()uint64 callsub arrayInObjectInState itob concat log - int 1 + pushint 1 return // arrayInObjectInState(): uint64 @@ -42,14 +42,14 @@ arrayInObjectInState: // tests/contracts/abi.algo.ts:1078 // this.gMap(this.txn.sender).value = { bar: [1, 2] } txn Sender - byte 0x00000000000000010000000000000002 + pushbytes 0x00000000000000010000000000000002 app_global_put // tests/contracts/abi.algo.ts:1079 // this.gMap(this.txn.sender).value.bar[1] = 3 txn Sender app_global_get - byte 0x0000000000000003 + pushbytes 0x0000000000000003 replace2 8 txn Sender swap @@ -64,11 +64,11 @@ arrayInObjectInState: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -76,7 +76,7 @@ arrayInObjectInState: err *call_NoOp: - method "arrayInObjectInState()uint64" + pushbytes 0x350298a8 // method "arrayInObjectInState()uint64" txna ApplicationArgs 0 match *abi_route_arrayInObjectInState diff --git a/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json b/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json index 9d6db5eda..74861f65d 100644 --- a/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayInObjectInState.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUluT2JqZWN0SW5TdGF0ZSgpdWludDY0CiphYmlfcm91dGVfYXJyYXlJbk9iamVjdEluU3RhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluT2JqZWN0SW5TdGF0ZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5SW5PYmplY3RJblN0YXRlKCk6IHVpbnQ2NAphcnJheUluT2JqZWN0SW5TdGF0ZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc4CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IHsgYmFyOiBbMSwgMl0gfQoJdHhuIFNlbmRlcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc5CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV0gPSAzCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMKCXJlcGxhY2UyIDgKCXR4biBTZW5kZXIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODAKCS8vIHJldHVybiB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV07Cgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5SW5PYmplY3RJblN0YXRlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluT2JqZWN0SW5TdGF0ZQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluT2JqZWN0SW5TdGF0ZSgpOiB1aW50NjQKYXJyYXlJbk9iamVjdEluU3RhdGU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA3OAoJLy8gdGhpcy5nTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSB7IGJhcjogWzEsIDJdIH0KCXR4biBTZW5kZXIKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc5CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV0gPSAzCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMwoJcmVwbGFjZTIgOAoJdHhuIFNlbmRlcgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA4MAoJLy8gcmV0dXJuIHRoaXMuZ01hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlLmJhclsxXTsKCXR4biBTZW5kZXIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgzNTAyOThhOCAvLyBtZXRob2QgImFycmF5SW5PYmplY3RJblN0YXRlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInObjectInState.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayInObjectInState.arc56_draft.json index 2e5ea6d94..1c5c3aaab 100644 --- a/tests/contracts/artifacts/ABITestArrayInObjectInState.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayInObjectInState.arc56_draft.json @@ -73,406 +73,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1074, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1074, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1074, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1074, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1074, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1074, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1074, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1074, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1074, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1077, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1077, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1077, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1077, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1077, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1077, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1077, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1077, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 44, - "source": 1078, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 45, - "source": 1078, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 46, - "source": 1078, - "pc": [ - 77 - ] - }, - { - "teal": 50, - "source": 1079, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 51, - "source": 1079, - "pc": [ - 80 - ] - }, - { - "teal": 52, - "source": 1079, - "pc": [ - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 53, - "source": 1079, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 54, - "source": 1079, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 55, - "source": 1079, - "pc": [ - 95 - ] - }, - { - "teal": 56, - "source": 1079, - "pc": [ - 96 - ] - }, - { - "teal": 60, - "source": 1080, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 61, - "source": 1080, - "pc": [ - 99 - ] - }, - { - "teal": 62, - "source": 1080, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 63, - "source": 1080, - "pc": [ - 103 - ] - }, - { - "teal": 64, - "source": 1077, - "pc": [ - 104 - ] - }, - { - "teal": 67, - "source": 1074, - "pc": [ - 105 - ] - }, - { - "teal": 68, - "source": 1074, - "pc": [ - 106 - ] - }, - { - "teal": 71, - "source": 1074, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 72, - "source": 1074, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 73, - "source": 1074, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 76, - "source": 1074, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 120 - ] - }, - { - "teal": 79, - "source": 1074, - "pc": [ - 121, - 122, - 123, - 124, - 125, - 126 - ] - }, - { - "teal": 80, - "source": 1074, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 81, - "source": 1074, - "pc": [ - 130, - 131, - 132, - 133 - ] - }, - { - "teal": 84, - "source": 1074, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 134 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 133 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUluT2JqZWN0SW5TdGF0ZSgpdWludDY0CiphYmlfcm91dGVfYXJyYXlJbk9iamVjdEluU3RhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluT2JqZWN0SW5TdGF0ZQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5SW5PYmplY3RJblN0YXRlKCk6IHVpbnQ2NAphcnJheUluT2JqZWN0SW5TdGF0ZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc4CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IHsgYmFyOiBbMSwgMl0gfQoJdHhuIFNlbmRlcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc5CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV0gPSAzCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMKCXJlcGxhY2UyIDgKCXR4biBTZW5kZXIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODAKCS8vIHJldHVybiB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV07Cgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5SW5PYmplY3RJblN0YXRlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlJbk9iamVjdEluU3RhdGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluT2JqZWN0SW5TdGF0ZQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluT2JqZWN0SW5TdGF0ZSgpOiB1aW50NjQKYXJyYXlJbk9iamVjdEluU3RhdGU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA3OAoJLy8gdGhpcy5nTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSB7IGJhcjogWzEsIDJdIH0KCXR4biBTZW5kZXIKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDc5CgkvLyB0aGlzLmdNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5iYXJbMV0gPSAzCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX2dldAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMwoJcmVwbGFjZTIgOAoJdHhuIFNlbmRlcgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA4MAoJLy8gcmV0dXJuIHRoaXMuZ01hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlLmJhclsxXTsKCXR4biBTZW5kZXIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgzNTAyOThhOCAvLyBtZXRob2QgImFycmF5SW5PYmplY3RJblN0YXRlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5PYmplY3RJblN0YXRlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAFIAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABMQCAEAAAAAAAAAABAAAAAAAAAAJnMQBkgAgAAAAAAAAAA1wIMQBMZzEAZFcICBeJIkOABLhEezY2GgCOAf/xAIAENQKYqDYaAI4B/6IA", + "approval": "CjEYFIEGCzEZCI0MAFQAAAAAAAAAAAAAAEYAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAATEAgBAAAAAAAAAAAQAAAAAAAAACZzEAZIAIAAAAAAAAAANcCDEATGcxAGRXCAgXiYEBQ4AEuER7NjYaAI4B//AAgAQ1ApioNhoAjgH/oAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal b/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal index 9fedef66f..f74aba2ae 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayInTuple()uint64 *abi_route_arrayInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayInTuple()uint64 callsub arrayInTuple itob concat log - int 1 + pushint 1 return // arrayInTuple(): uint64 @@ -40,11 +40,11 @@ arrayInTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:265 // a: [uint64, uint16, StaticArray, uint16] = [11, 22, [33, 44], 55] - byte 0x000000000000000b00160000000000000021000000000000002c0037 + pushbytes 0x000000000000000b00160000000000000021000000000000002c0037 frame_bury 0 // a: [uint64, uint16, StaticArray, uint16] // tests/contracts/abi.algo.ts:267 @@ -58,11 +58,11 @@ arrayInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -70,7 +70,7 @@ arrayInTuple: err *call_NoOp: - method "arrayInTuple()uint64" + pushbytes 0x677d63d9 // method "arrayInTuple()uint64" txna ApplicationArgs 0 match *abi_route_arrayInTuple diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json b/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json index e2be49a88..915781561 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUluVHVwbGUoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluVHVwbGUoKTogdWludDY0CmFycmF5SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NQoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NwoJLy8gcmV0dXJuIGFbMl1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0KCWV4dHJhY3QgMTggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlJblR1cGxlKCl1aW50NjQKKmFiaV9yb3V0ZV9hcnJheUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYXJyYXlJblR1cGxlKCk6IHVpbnQ2NAphcnJheUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NQoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMzcKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjY3CgkvLyByZXR1cm4gYVsyXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgdWludDE2XQoJZXh0cmFjdCAxOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY3N2Q2M2Q5IC8vIG1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayInTuple.arc56_draft.json index 2581a2d58..22d2934c1 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayInTuple.arc56_draft.json @@ -61,359 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 263, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 263, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 263, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 263, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 263, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 263, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 263, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 263, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 263, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 264, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 264, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 264, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 264, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 264, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 264, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 264, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 264, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 264, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 265, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 48, - "source": 265, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 52, - "source": 267, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 53, - "source": 267, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 54, - "source": 267, - "pc": [ - 96 - ] - }, - { - "teal": 57, - "source": 264, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 58, - "source": 264, - "pc": [ - 99 - ] - }, - { - "teal": 61, - "source": 263, - "pc": [ - 100 - ] - }, - { - "teal": 62, - "source": 263, - "pc": [ - 101 - ] - }, - { - "teal": 65, - "source": 263, - "pc": [ - 102, - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 66, - "source": 263, - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 67, - "source": 263, - "pc": [ - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 70, - "source": 263, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 115 - ] - }, - { - "teal": 73, - "source": 263, - "pc": [ - 116, - 117, - 118, - 119, - 120, - 121 - ] - }, - { - "teal": 74, - "source": 263, - "pc": [ - 122, - 123, - 124 - ] - }, - { - "teal": 75, - "source": 263, - "pc": [ - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 78, - "source": 263, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 129 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUluVHVwbGUoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheUluVHVwbGUoKTogdWludDY0CmFycmF5SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NQoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NwoJLy8gcmV0dXJuIGFbMl1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0KCWV4dHJhY3QgMTggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlJblR1cGxlKCl1aW50NjQKKmFiaV9yb3V0ZV9hcnJheUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYXJyYXlJblR1cGxlKCk6IHVpbnQ2NAphcnJheUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NQoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCB1aW50MTZdID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMzcKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjY3CgkvLyByZXR1cm4gYVsyXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgdWludDE2XQoJZXh0cmFjdCAxOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY3N2Q2M2Q5IC8vIG1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE0AAAAAAAAAAAAAAD8AAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAHAAAAAAAAAALABYAAAAAAAAAIQAAAAAAAAAsADeMAIsAVxIIF4wAiSJDgAS4RHs2NhoAjgH/8QCABGd9Y9k2GgCOAf+nAA==", + "approval": "CjEYFIEGCzEZCI0MAE8AAAAAAAAAAAAAAEEAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBwAAAAAAAAACwAWAAAAAAAAACEAAAAAAAAALAA3jACLAFcSCBeMAImBAUOABLhEezY2GgCOAf/wAIAEZ31j2TYaAI4B/6UA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayLength.approval.teal b/tests/contracts/artifacts/ABITestArrayLength.approval.teal index 242f56278..383156d7f 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayLength()uint64 *abi_route_arrayLength: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayLength()uint64 callsub arrayLength itob concat log - int 1 + pushint 1 return // arrayLength(): uint64 @@ -40,18 +40,18 @@ arrayLength: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:735 // a: uint<8>[] = [11, 22, 33, 44, 55] - byte 0x0b16212c37 + pushbytes 0x0b16212c37 frame_bury 0 // a: uint<8>[] // tests/contracts/abi.algo.ts:737 // return a.length; frame_dig 0 // a: uint<8>[] len - int 1 + pushint 1 / // set the subroutine return value @@ -59,11 +59,11 @@ arrayLength: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -71,7 +71,7 @@ arrayLength: err *call_NoOp: - method "arrayLength()uint64" + pushbytes 0x9d452c75 // method "arrayLength()uint64" txna ApplicationArgs 0 match *abi_route_arrayLength diff --git a/tests/contracts/artifacts/ABITestArrayLength.arc32.json b/tests/contracts/artifacts/ABITestArrayLength.arc32.json index 5f69d1500..51afc9d82 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5TGVuZ3RoKCk6IHVpbnQ2NAphcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNwoJLy8gcmV0dXJuIGEubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCglsZW4KCWludCAxCgkvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheUxlbmd0aCgpOiB1aW50NjQKYXJyYXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCXB1c2hieXRlcyAweDBiMTYyMTJjMzcKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzM3CgkvLyByZXR1cm4gYS5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCWxlbgoJcHVzaGludCAxCgkvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDlkNDUyYzc1IC8vIG1ldGhvZCAiYXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayLength.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayLength.arc56_draft.json index 49311eb31..ff6311aab 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayLength.arc56_draft.json @@ -61,341 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 733, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 733, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 733, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 733, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 733, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 733, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 733, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 733, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 733, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 734, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 734, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 734, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 734, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 734, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 734, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 734, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 734, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 734, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 735, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 48, - "source": 735, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 52, - "source": 737, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 53, - "source": 737, - "pc": [ - 70 - ] - }, - { - "teal": 54, - "source": 737, - "pc": [ - 71 - ] - }, - { - "teal": 55, - "source": 737, - "pc": [ - 72 - ] - }, - { - "teal": 58, - "source": 734, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 59, - "source": 734, - "pc": [ - 75 - ] - }, - { - "teal": 62, - "source": 733, - "pc": [ - 76 - ] - }, - { - "teal": 63, - "source": 733, - "pc": [ - 77 - ] - }, - { - "teal": 66, - "source": 733, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 67, - "source": 733, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 68, - "source": 733, - "pc": [ - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 71, - "source": 733, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 91 - ] - }, - { - "teal": 74, - "source": 733, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 75, - "source": 733, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 76, - "source": 733, - "pc": [ - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 79, - "source": 733, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 105 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 91 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 105 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5TGVuZ3RoKCk6IHVpbnQ2NAphcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNwoJLy8gcmV0dXJuIGEubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCglsZW4KCWludCAxCgkvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2FycmF5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBhcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheUxlbmd0aCgpOiB1aW50NjQKYXJyYXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCXB1c2hieXRlcyAweDBiMTYyMTJjMzcKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzM3CgkvLyByZXR1cm4gYS5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCWxlbgoJcHVzaGludCAxCgkvCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDlkNDUyYzc1IC8vIG1ldGhvZCAiYXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADUAAAAAAAAAAAAAACcAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACABQsWISw3jACLABUiCowAiSJDgAS4RHs2NhoAjgH/8QCABJ1FLHU2GgCOAf+/AA==", + "approval": "CjEYFIEGCzEZCI0MADgAAAAAAAAAAAAAACoAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAULFiEsN4wAiwAVgQEKjACJgQFDgAS4RHs2NhoAjgH/8ACABJ1FLHU2GgCOAf+8AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayPop.approval.teal b/tests/contracts/artifacts/ABITestArrayPop.approval.teal index 7188cf82b..05add4b7c 100644 --- a/tests/contracts/artifacts/ABITestArrayPop.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayPop.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayPop()uint16[] *abi_route_arrayPop: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayPop()uint16[] callsub arrayPop dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // arrayPop(): uint16[] @@ -47,11 +47,11 @@ arrayPop: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:439 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:441 @@ -59,9 +59,9 @@ arrayPop: frame_dig 0 // a: uint16[] dup len - int 2 + pushint 2 - - int 0 + pushint 0 swap extract3 frame_bury 0 // a: uint16[] @@ -75,11 +75,11 @@ arrayPop: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -87,7 +87,7 @@ arrayPop: err *call_NoOp: - method "arrayPop()uint16[]" + pushbytes 0x30d77006 // method "arrayPop()uint16[]" txna ApplicationArgs 0 match *abi_route_arrayPop diff --git a/tests/contracts/artifacts/ABITestArrayPop.arc32.json b/tests/contracts/artifacts/ABITestArrayPop.arc32.json index 687797ea0..f6ca78824 100644 --- a/tests/contracts/artifacts/ABITestArrayPop.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayPop.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVBvcCgpdWludDE2W10KKmFiaV9yb3V0ZV9hcnJheVBvcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVBvcCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQb3AKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UG9wKCk6IHVpbnQxNltdCmFycmF5UG9wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDM5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0MQoJLy8gYS5wb3AoKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLQoJaW50IDAKCXN3YXAKCWV4dHJhY3QzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVBvcCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlQb3AoKXVpbnQxNltdCiphYmlfcm91dGVfYXJyYXlQb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVBvcCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQb3AKCWR1cAoJbGVuCglwdXNoaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYXJyYXlQb3AoKTogdWludDE2W10KYXJyYXlQb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQzOQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0MQoJLy8gYS5wb3AoKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglwdXNoaW50IDIKCS0KCXB1c2hpbnQgMAoJc3dhcAoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NDMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MzBkNzcwMDYgLy8gbWV0aG9kICJhcnJheVBvcCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayPop.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayPop.arc56_draft.json index 7ca3f66c2..986f786ba 100644 --- a/tests/contracts/artifacts/ABITestArrayPop.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayPop.arc56_draft.json @@ -61,439 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 437, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 437, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 437, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 437, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 437, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 437, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 437, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 437, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 437, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 438, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 438, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 438, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 438, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 438, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 438, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 438, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 438, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 38, - "source": 438, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 438, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 438, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 438, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 438, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 438, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 438, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 50, - "source": 438, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 54, - "source": 439, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 55, - "source": 439, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 59, - "source": 441, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 60, - "source": 441, - "pc": [ - 81 - ] - }, - { - "teal": 61, - "source": 441, - "pc": [ - 82 - ] - }, - { - "teal": 62, - "source": 441, - "pc": [ - 83 - ] - }, - { - "teal": 63, - "source": 441, - "pc": [ - 84 - ] - }, - { - "teal": 64, - "source": 441, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 65, - "source": 441, - "pc": [ - 87 - ] - }, - { - "teal": 66, - "source": 441, - "pc": [ - 88 - ] - }, - { - "teal": 67, - "source": 441, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 71, - "source": 443, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 74, - "source": 438, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 75, - "source": 438, - "pc": [ - 95 - ] - }, - { - "teal": 78, - "source": 437, - "pc": [ - 96 - ] - }, - { - "teal": 79, - "source": 437, - "pc": [ - 97 - ] - }, - { - "teal": 82, - "source": 437, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 83, - "source": 437, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 84, - "source": 437, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 87, - "source": 437, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 111 - ] - }, - { - "teal": 90, - "source": 437, - "pc": [ - 112, - 113, - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 91, - "source": 437, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 92, - "source": 437, - "pc": [ - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 95, - "source": 437, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 125 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 111 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 125 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVBvcCgpdWludDE2W10KKmFiaV9yb3V0ZV9hcnJheVBvcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVBvcCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQb3AKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UG9wKCk6IHVpbnQxNltdCmFycmF5UG9wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDM5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0MQoJLy8gYS5wb3AoKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLQoJaW50IDAKCXN3YXAKCWV4dHJhY3QzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVBvcCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlQb3AoKXVpbnQxNltdCiphYmlfcm91dGVfYXJyYXlQb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVBvcCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQb3AKCWR1cAoJbGVuCglwdXNoaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYXJyYXlQb3AoKTogdWludDE2W10KYXJyYXlQb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQzOQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0MQoJLy8gYS5wb3AoKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglwdXNoaW50IDIKCS0KCXB1c2hpbnQgMAoJc3dhcAoJZXh0cmFjdDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NDMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MzBkNzcwMDYgLy8gbWV0aG9kICJhcnJheVBvcCgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAgExGBSBBgsxGQiNDABIAAAAAAAAAAAAAAA6AAAAAAAAAAAAAACABBUffHWIAA5JFSIKFlcGAkxQULAjQ4oAAYAAgAYAAQACAAOMAIsASRUiCYEATFiMAIsAjACJI0OABLhEezY2GgCOAf/xAIAEMNdwBjYaAI4B/6wA", + "approval": "CjEYFIEGCzEZCI0MAEwAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAIAGAAEAAgADjACLAEkVgQIJgQBMWIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEMNdwBjYaAI4B/6gA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal b/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal index e30162dea..97ff21b17 100644 --- a/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayPopValue.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayPopValue()uint16 *abi_route_arrayPopValue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayPopValue()uint16 callsub arrayPopValue itob dup bitlen - int 16 + pushint 16 <= // arrayPopValue return value overflowed 16 bits @@ -40,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 6 2 concat log - int 1 + pushint 1 return // arrayPopValue(): uint16 @@ -53,7 +54,7 @@ arrayPopValue: // tests/contracts/abi.algo.ts:449 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:451 @@ -61,14 +62,14 @@ arrayPopValue: frame_dig 0 // a: uint16[] dup len - int 2 + pushint 2 - - int 0 + pushint 0 swap extract3 dup len - int 2 + pushint 2 frame_dig 0 // a: uint16[] cover 2 extract3 @@ -89,11 +90,11 @@ arrayPopValue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -101,7 +102,7 @@ arrayPopValue: err *call_NoOp: - method "arrayPopValue()uint16" + pushbytes 0x180d3fb4 // method "arrayPopValue()uint16" txna ApplicationArgs 0 match *abi_route_arrayPopValue diff --git a/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json b/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json index e8174a5d7..de5b9f604 100644 --- a/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayPopValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVBvcFZhbHVlKCl1aW50MTYKKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UG9wVmFsdWUoKXVpbnQxNgoJY2FsbHN1YiBhcnJheVBvcFZhbHVlCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoKCS8vIGFycmF5UG9wVmFsdWUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UG9wVmFsdWUoKTogdWludDE2CmFycmF5UG9wVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0OQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NTEKCS8vIHYgPSBhLnBvcCgpIQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLQoJaW50IDAKCXN3YXAKCWV4dHJhY3QzCglkdXAKCWxlbgoJaW50IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgljb3ZlciAyCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglidG9pCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1MwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVBvcFZhbHVlKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wVmFsdWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVBvcFZhbHVlKCl1aW50MTYKKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlQb3BWYWx1ZSgpdWludDE2CgljYWxsc3ViIGFycmF5UG9wVmFsdWUKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIGFycmF5UG9wVmFsdWUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheVBvcFZhbHVlKCk6IHVpbnQxNgphcnJheVBvcFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NDkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglwdXNoYnl0ZXMgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NTEKCS8vIHYgPSBhLnBvcCgpIQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglwdXNoaW50IDIKCS0KCXB1c2hpbnQgMAoJc3dhcAoJZXh0cmFjdDMKCWR1cAoJbGVuCglwdXNoaW50IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgljb3ZlciAyCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglidG9pCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1MwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDE4MGQzZmI0IC8vIG1ldGhvZCAiYXJyYXlQb3BWYWx1ZSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayPopValue.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayPopValue.arc56_draft.json index d48e73eb2..21f6b677f 100644 --- a/tests/contracts/artifacts/ABITestArrayPopValue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayPopValue.arc56_draft.json @@ -61,515 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 447, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 447, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 447, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 447, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 447, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 447, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 447, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 447, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 447, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 448, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 448, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 448, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 448, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 448, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 448, - "pc": [ - 53, - 54 - ] - }, - { - "teal": 36, - "source": 448, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 448, - "errorMessage": "arrayPopValue return value overflowed 16 bits", - "pc": [ - 56 - ] - }, - { - "teal": 40, - "source": 448, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 41, - "source": 448, - "pc": [ - 60 - ] - }, - { - "teal": 42, - "source": 448, - "pc": [ - 61 - ] - }, - { - "teal": 43, - "source": 448, - "pc": [ - 62 - ] - }, - { - "teal": 44, - "source": 448, - "pc": [ - 63 - ] - }, - { - "teal": 48, - "source": 448, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 51, - "source": 448, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 52, - "source": 448, - "pc": [ - 69 - ] - }, - { - "teal": 56, - "source": 449, - "pc": [ - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 57, - "source": 449, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 61, - "source": 451, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 62, - "source": 451, - "pc": [ - 82 - ] - }, - { - "teal": 63, - "source": 451, - "pc": [ - 83 - ] - }, - { - "teal": 64, - "source": 451, - "pc": [ - 84 - ] - }, - { - "teal": 65, - "source": 451, - "pc": [ - 85 - ] - }, - { - "teal": 66, - "source": 451, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 67, - "source": 451, - "pc": [ - 88 - ] - }, - { - "teal": 68, - "source": 451, - "pc": [ - 89 - ] - }, - { - "teal": 69, - "source": 451, - "pc": [ - 90 - ] - }, - { - "teal": 70, - "source": 451, - "pc": [ - 91 - ] - }, - { - "teal": 71, - "source": 451, - "pc": [ - 92 - ] - }, - { - "teal": 72, - "source": 451, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 73, - "source": 451, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 74, - "source": 451, - "pc": [ - 97 - ] - }, - { - "teal": 75, - "source": 451, - "pc": [ - 98 - ] - }, - { - "teal": 76, - "source": 451, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 77, - "source": 451, - "pc": [ - 101 - ] - }, - { - "teal": 78, - "source": 451, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 82, - "source": 453, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 85, - "source": 448, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 88, - "source": 448, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 89, - "source": 448, - "pc": [ - 110 - ] - }, - { - "teal": 92, - "source": 447, - "pc": [ - 111 - ] - }, - { - "teal": 93, - "source": 447, - "pc": [ - 112 - ] - }, - { - "teal": 96, - "source": 447, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 97, - "source": 447, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 98, - "source": 447, - "pc": [ - 122, - 123, - 124, - 125 - ] - }, - { - "teal": 101, - "source": 447, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 126 - ] - }, - { - "teal": 104, - "source": 447, - "pc": [ - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 105, - "source": 447, - "pc": [ - 133, - 134, - 135 - ] - }, - { - "teal": 106, - "source": 447, - "pc": [ - 136, - 137, - 138, - 139 - ] - }, - { - "teal": 109, - "source": 447, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 140 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 55 + ], + "errorMessage": "arrayPopValue return value overflowed 16 bits" + }, + { + "pc": [ + 129 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 143 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVBvcFZhbHVlKCl1aW50MTYKKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UG9wVmFsdWUoKXVpbnQxNgoJY2FsbHN1YiBhcnJheVBvcFZhbHVlCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDE2Cgk8PQoKCS8vIGFycmF5UG9wVmFsdWUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UG9wVmFsdWUoKTogdWludDE2CmFycmF5UG9wVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ0OQoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NTEKCS8vIHYgPSBhLnBvcCgpIQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLQoJaW50IDAKCXN3YXAKCWV4dHJhY3QzCglkdXAKCWxlbgoJaW50IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgljb3ZlciAyCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglidG9pCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1MwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVBvcFZhbHVlKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UG9wVmFsdWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVBvcFZhbHVlKCl1aW50MTYKKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlQb3BWYWx1ZSgpdWludDE2CgljYWxsc3ViIGFycmF5UG9wVmFsdWUKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIGFycmF5UG9wVmFsdWUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheVBvcFZhbHVlKCk6IHVpbnQxNgphcnJheVBvcFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NDkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglwdXNoYnl0ZXMgMHgwMDAxMDAwMjAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NTEKCS8vIHYgPSBhLnBvcCgpIQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglwdXNoaW50IDIKCS0KCXB1c2hpbnQgMAoJc3dhcAoJZXh0cmFjdDMKCWR1cAoJbGVuCglwdXNoaW50IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgljb3ZlciAyCglleHRyYWN0MwoJc3dhcAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCglidG9pCglmcmFtZV9idXJ5IDEgLy8gdjogdWludDE2CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1MwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTYKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDE4MGQzZmI0IC8vIG1ldGhvZCAiYXJyYXlQb3BWYWx1ZSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheVBvcFZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQIxGBSBBgsxGQiNDABXAAAAAAAAAAAAAABJAAAAAAAAAAAAAACABBUffHWIAA4WSZOBEA5EVwYCULAiQ4oAAYAASYAGAAEAAgADjACLAEkVIwmBAExYSRUjiwBOAlhMjAAXjAGLAYwARgGJIkOABLhEezY2GgCOAf/xAIAEGA0/tDYaAI4B/50A", + "approval": "CiYBADEYFIEGCzEZCI0MAFsAAAAAAAAAAAAAAE0AAAAAAAAAAAAAAIAEFR98dYgADxZJk4EQDkRXBgJQsIEBQ4oAAYAASYAGAAEAAgADjACLAEkVgQIJgQBMWEkVgQKLAE4CWEyMABeMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEGA0/tDYaAI4B/5kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayPush.approval.teal b/tests/contracts/artifacts/ABITestArrayPush.approval.teal index d395ba3bd..189913151 100644 --- a/tests/contracts/artifacts/ABITestArrayPush.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayPush.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayPush()uint16[] *abi_route_arrayPush: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayPush()uint16[] callsub arrayPush dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // arrayPush(): uint16[] @@ -47,17 +47,17 @@ arrayPush: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:429 // a: uint16[] = [1, 2] - byte 0x00010002 + pushbytes 0x00010002 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:431 // a.push(3 as uint16) frame_dig 0 // a: uint16[] - byte 0x0003 + pushbytes 0x0003 concat frame_bury 0 // a: uint16[] @@ -70,11 +70,11 @@ arrayPush: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -82,7 +82,7 @@ arrayPush: err *call_NoOp: - method "arrayPush()uint16[]" + pushbytes 0xf6c50ebd // method "arrayPush()uint16[]" txna ApplicationArgs 0 match *abi_route_arrayPush diff --git a/tests/contracts/artifacts/ABITestArrayPush.arc32.json b/tests/contracts/artifacts/ABITestArrayPush.arc32.json index 92775d6ce..b9af08695 100644 --- a/tests/contracts/artifacts/ABITestArrayPush.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayPush.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVB1c2goKXVpbnQxNltdCiphYmlfcm91dGVfYXJyYXlQdXNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UHVzaCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQdXNoCglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheVB1c2goKTogdWludDE2W10KYXJyYXlQdXNoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDI5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyXQoJYnl0ZSAweDAwMDEwMDAyCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMxCgkvLyBhLnB1c2goMyBhcyB1aW50MTYpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJYnl0ZSAweDAwMDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQzMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlQdXNoKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlQdXNoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlQdXNoKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5UHVzaDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UHVzaCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQdXNoCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGFycmF5UHVzaCgpOiB1aW50MTZbXQphcnJheVB1c2g6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyOQoJLy8gYTogdWludDE2W10gPSBbMSwgMl0KCXB1c2hieXRlcyAweDAwMDEwMDAyCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMxCgkvLyBhLnB1c2goMyBhcyB1aW50MTYpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGJ5dGVzIDB4MDAwMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGY2YzUwZWJkIC8vIG1ldGhvZCAiYXJyYXlQdXNoKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlQdXNoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayPush.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayPush.arc56_draft.json index eb6f01092..7b8231670 100644 --- a/tests/contracts/artifacts/ABITestArrayPush.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayPush.arc56_draft.json @@ -61,404 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 427, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 427, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 427, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 427, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 427, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 427, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 427, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 427, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 427, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 428, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 428, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 428, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 428, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 428, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 428, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 428, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 428, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 38, - "source": 428, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 428, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 428, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 428, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 428, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 428, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 428, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 50, - "source": 428, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 54, - "source": 429, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 55, - "source": 429, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 59, - "source": 431, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 60, - "source": 431, - "pc": [ - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 61, - "source": 431, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 431, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 66, - "source": 433, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 69, - "source": 428, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 70, - "source": 428, - "pc": [ - 90 - ] - }, - { - "teal": 73, - "source": 427, - "pc": [ - 91 - ] - }, - { - "teal": 74, - "source": 427, - "pc": [ - 92 - ] - }, - { - "teal": 77, - "source": 427, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 78, - "source": 427, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 79, - "source": 427, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 82, - "source": 427, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 106 - ] - }, - { - "teal": 85, - "source": 427, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 86, - "source": 427, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 87, - "source": 427, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 90, - "source": 427, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 120 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 105 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVB1c2goKXVpbnQxNltdCiphYmlfcm91dGVfYXJyYXlQdXNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UHVzaCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQdXNoCglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhcnJheVB1c2goKTogdWludDE2W10KYXJyYXlQdXNoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDI5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyXQoJYnl0ZSAweDAwMDEwMDAyCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMxCgkvLyBhLnB1c2goMyBhcyB1aW50MTYpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJYnl0ZSAweDAwMDMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQzMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlQdXNoKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlQdXNoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlQdXNoKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5UHVzaDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UHVzaCgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlQdXNoCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGFycmF5UHVzaCgpOiB1aW50MTZbXQphcnJheVB1c2g6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyOQoJLy8gYTogdWludDE2W10gPSBbMSwgMl0KCXB1c2hieXRlcyAweDAwMDEwMDAyCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMxCgkvLyBhLnB1c2goMyBhcyB1aW50MTYpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGJ5dGVzIDB4MDAwMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDMzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGY2YzUwZWJkIC8vIG1ldGhvZCAiYXJyYXlQdXNoKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlQdXNoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEQAAAAAAAAAAAAAADYAAAAAAAAAAAAAAIAEFR98dYgAD0kVgQIKFlcGAkxQULAiQ4oAAYAAgAQAAQACjACLAIACAANQjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABPbFDr02GgCOAf+wAA==", + "approval": "CjEYFIEGCzEZCI0MAEYAAAAAAAAAAAAAADgAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAIAEAAEAAowAiwCAAgADUIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAE9sUOvTYaAI4B/64A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArrayRef.approval.teal b/tests/contracts/artifacts/ABITestArrayRef.approval.teal index 42c208777..6cddbf580 100644 --- a/tests/contracts/artifacts/ABITestArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arrayRef()uint8[] *abi_route_arrayRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arrayRef()uint8[] callsub arrayRef @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // arrayRef(): uint<8>[] @@ -45,11 +45,11 @@ arrayRef: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:750 // a: uint<8>[] = [1, 2, 3] - byte 0x010203 + pushbytes 0x010203 frame_bury 0 // a: uint<8>[] // tests/contracts/abi.algo.ts:753 @@ -57,7 +57,7 @@ arrayRef: frame_dig 0 // a: uint<8>[] store 255 // full array load 255 // full array - byte 0x04 + pushbytes 0x04 replace2 1 frame_bury 0 // b: uint<8>[] @@ -70,11 +70,11 @@ arrayRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -82,7 +82,7 @@ arrayRef: err *call_NoOp: - method "arrayRef()uint8[]" + pushbytes 0x03e1132d // method "arrayRef()uint8[]" txna ApplicationArgs 0 match *abi_route_arrayRef diff --git a/tests/contracts/artifacts/ABITestArrayRef.arc32.json b/tests/contracts/artifacts/ABITestArrayRef.arc32.json index c12bd9c35..9d67b3042 100644 --- a/tests/contracts/artifacts/ABITestArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVJlZigpdWludDhbXQoqYWJpX3JvdXRlX2FycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UmVmKCl1aW50OFtdCgljYWxsc3ViIGFycmF5UmVmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UmVmKCk6IHVpbnQ8OD5bXQphcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MAoJLy8gYTogdWludDw4PltdID0gWzEsIDIsIDNdCglieXRlIDB4MDEwMjAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MwoJLy8gYlsxXSA9IDQgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDA0CglyZXBsYWNlMiAxCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1NQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5UmVmKCl1aW50OFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlSZWYoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UmVmKCl1aW50OFtdCgljYWxsc3ViIGFycmF5UmVmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheVJlZigpOiB1aW50PDg+W10KYXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MAoJLy8gYTogdWludDw4PltdID0gWzEsIDIsIDNdCglwdXNoYnl0ZXMgMHgwMTAyMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzUzCgkvLyBiWzFdID0gNCBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwNAoJcmVwbGFjZTIgMQoJZnJhbWVfYnVyeSAwIC8vIGI6IHVpbnQ8OD5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NTUKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDAzZTExMzJkIC8vIG1ldGhvZCAiYXJyYXlSZWYoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayRef.arc56_draft.json b/tests/contracts/artifacts/ABITestArrayRef.arc56_draft.json index cb3b7d4e3..0587574a1 100644 --- a/tests/contracts/artifacts/ABITestArrayRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArrayRef.arc56_draft.json @@ -61,404 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 748, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 748, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 748, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 748, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 748, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 748, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 748, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 748, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 748, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 749, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 749, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 749, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 749, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 749, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 749, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 749, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 749, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 749, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 749, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 749, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 749, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 749, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 48, - "source": 749, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 52, - "source": 750, - "pc": [ - 66, - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 53, - "source": 750, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 57, - "source": 753, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 58, - "source": 753, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 59, - "source": 753, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 60, - "source": 753, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 61, - "source": 753, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 62, - "source": 753, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 66, - "source": 755, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 69, - "source": 749, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 70, - "source": 749, - "pc": [ - 90 - ] - }, - { - "teal": 73, - "source": 748, - "pc": [ - 91 - ] - }, - { - "teal": 74, - "source": 748, - "pc": [ - 92 - ] - }, - { - "teal": 77, - "source": 748, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 78, - "source": 748, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 79, - "source": 748, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 82, - "source": 748, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 106 - ] - }, - { - "teal": 85, - "source": 748, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 86, - "source": 748, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 87, - "source": 748, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 90, - "source": 748, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 120 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 105 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVJlZigpdWludDhbXQoqYWJpX3JvdXRlX2FycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UmVmKCl1aW50OFtdCgljYWxsc3ViIGFycmF5UmVmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5UmVmKCk6IHVpbnQ8OD5bXQphcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MAoJLy8gYTogdWludDw4PltdID0gWzEsIDIsIDNdCglieXRlIDB4MDEwMjAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MwoJLy8gYlsxXSA9IDQgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDA0CglyZXBsYWNlMiAxCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDw4PltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1NQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5UmVmKCl1aW50OFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hcnJheVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlSZWYoKXVpbnQ4W10KKmFiaV9yb3V0ZV9hcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFycmF5UmVmKCl1aW50OFtdCgljYWxsc3ViIGFycmF5UmVmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhcnJheVJlZigpOiB1aW50PDg+W10KYXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1MAoJLy8gYTogdWludDw4PltdID0gWzEsIDIsIDNdCglwdXNoYnl0ZXMgMHgwMTAyMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50PDg+W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzUzCgkvLyBiWzFdID0gNCBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50PDg+W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwNAoJcmVwbGFjZTIgMQoJZnJhbWVfYnVyeSAwIC8vIGI6IHVpbnQ8OD5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NTUKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDw4PltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDAzZTExMzJkIC8vIG1ldGhvZCAiYXJyYXlSZWYoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2FycmF5UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEQAAAAAAAAAAAAAADYAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYAAgAMBAgOMAIsANf80/4ABBFwBjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABAPhEy02GgCOAf+wAA==", + "approval": "CjEYFIEGCzEZCI0MAEYAAAAAAAAAAAAAADgAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIADAQIDjACLADX/NP+AAQRcAYwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEA+ETLTYaAI4B/64A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArraySplice.approval.teal b/tests/contracts/artifacts/ABITestArraySplice.approval.teal index fa8107fd0..aa4a9ff15 100644 --- a/tests/contracts/artifacts/ABITestArraySplice.approval.teal +++ b/tests/contracts/artifacts/ABITestArraySplice.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arraySplice()uint64[] *abi_route_arraySplice: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arraySplice()uint64[] callsub arraySplice dup len - int 8 + pushint 8 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // arraySplice(): uint64[] @@ -47,23 +47,23 @@ arraySplice: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:459 // a: uint64[] = [1, 2, 3] - byte 0x000000000000000100000000000000020000000000000003 + pushbytes 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: uint64[] // tests/contracts/abi.algo.ts:461 // a.splice(1, 1) frame_dig 0 // a: uint64[] - int 1 - int 8 + pushint 1 + pushint 8 store 247 // splice start - int 16 + pushint 16 store 246 // splice byte length frame_dig 0 // a: uint64[] - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 0 // a: uint64[] @@ -72,7 +72,7 @@ arraySplice: load 247 // splice start load 246 // splice byte length + - int 8 + pushint 8 - swap substring3 @@ -88,11 +88,11 @@ arraySplice: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -100,7 +100,7 @@ arraySplice: err *call_NoOp: - method "arraySplice()uint64[]" + pushbytes 0x9463a4ac // method "arraySplice()uint64[]" txna ApplicationArgs 0 match *abi_route_arraySplice diff --git a/tests/contracts/artifacts/ABITestArraySplice.arc32.json b/tests/contracts/artifacts/ABITestArraySplice.arc32.json index 54c841d95..791b8e134 100644 --- a/tests/contracts/artifacts/ABITestArraySplice.arc32.json +++ b/tests/contracts/artifacts/ABITestArraySplice.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVNwbGljZSgpdWludDY0W10KKmFiaV9yb3V0ZV9hcnJheVNwbGljZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZSgpdWludDY0W10KCWNhbGxzdWIgYXJyYXlTcGxpY2UKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5U3BsaWNlKCk6IHVpbnQ2NFtdCmFycmF5U3BsaWNlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDU5CgkvLyBhOiB1aW50NjRbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MQoJLy8gYS5zcGxpY2UoMSwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglpbnQgMQoJaW50IDgKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCWludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5U3BsaWNlKCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2UKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlTcGxpY2UoKXVpbnQ2NFtdCiphYmlfcm91dGVfYXJyYXlTcGxpY2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZSgpdWludDY0W10KCWNhbGxzdWIgYXJyYXlTcGxpY2UKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYXJyYXlTcGxpY2UoKTogdWludDY0W10KYXJyYXlTcGxpY2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1OQoJLy8gYTogdWludDY0W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MQoJLy8gYS5zcGxpY2UoMSwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglwdXNoaW50IDEKCXB1c2hpbnQgOAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXB1c2hpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglwdXNoaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5NDYzYTRhYyAvLyBtZXRob2QgImFycmF5U3BsaWNlKCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2UKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArraySplice.arc56_draft.json b/tests/contracts/artifacts/ABITestArraySplice.arc56_draft.json index 9ed17479d..c504aa512 100644 --- a/tests/contracts/artifacts/ABITestArraySplice.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArraySplice.arc56_draft.json @@ -61,556 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 457, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 457, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 457, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 457, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 457, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 457, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 457, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 457, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 457, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 458, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 458, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 458, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 458, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 458, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 458, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 458, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 458, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 38, - "source": 458, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 458, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 458, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 458, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 458, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 458, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 458, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 50, - "source": 458, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 54, - "source": 459, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 55, - "source": 459, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 59, - "source": 461, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 60, - "source": 461, - "pc": [ - 99 - ] - }, - { - "teal": 61, - "source": 461, - "pc": [ - 100 - ] - }, - { - "teal": 62, - "source": 461, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 63, - "source": 461, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 64, - "source": 461, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 65, - "source": 461, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 66, - "source": 461, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 67, - "source": 461, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 68, - "source": 461, - "pc": [ - 113 - ] - }, - { - "teal": 69, - "source": 461, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 70, - "source": 461, - "pc": [ - 116 - ] - }, - { - "teal": 71, - "source": 461, - "pc": [ - 117 - ] - }, - { - "teal": 72, - "source": 461, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 73, - "source": 461, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 74, - "source": 461, - "pc": [ - 122 - ] - }, - { - "teal": 75, - "source": 461, - "pc": [ - 123 - ] - }, - { - "teal": 76, - "source": 461, - "pc": [ - 124 - ] - }, - { - "teal": 77, - "source": 461, - "pc": [ - 125 - ] - }, - { - "teal": 78, - "source": 461, - "pc": [ - 126 - ] - }, - { - "teal": 79, - "source": 461, - "pc": [ - 127 - ] - }, - { - "teal": 80, - "source": 461, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 84, - "source": 463, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 87, - "source": 458, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 88, - "source": 458, - "pc": [ - 134 - ] - }, - { - "teal": 91, - "source": 457, - "pc": [ - 135 - ] - }, - { - "teal": 92, - "source": 457, - "pc": [ - 136 - ] - }, - { - "teal": 95, - "source": 457, - "pc": [ - 137, - 138, - 139, - 140, - 141, - 142 - ] - }, - { - "teal": 96, - "source": 457, - "pc": [ - 143, - 144, - 145 - ] - }, - { - "teal": 97, - "source": 457, - "pc": [ - 146, - 147, - 148, - 149 - ] - }, - { - "teal": 100, - "source": 457, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 150 - ] - }, - { - "teal": 103, - "source": 457, - "pc": [ - 151, - 152, - 153, - 154, - 155, - 156 - ] - }, - { - "teal": 104, - "source": 457, - "pc": [ - 157, - 158, - 159 - ] - }, - { - "teal": 105, - "source": 457, - "pc": [ - 160, - 161, - 162, - 163 - ] - }, - { - "teal": 108, - "source": 457, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 164 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 152 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 166 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVNwbGljZSgpdWludDY0W10KKmFiaV9yb3V0ZV9hcnJheVNwbGljZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZSgpdWludDY0W10KCWNhbGxzdWIgYXJyYXlTcGxpY2UKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFycmF5U3BsaWNlKCk6IHVpbnQ2NFtdCmFycmF5U3BsaWNlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDU5CgkvLyBhOiB1aW50NjRbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MQoJLy8gYS5zcGxpY2UoMSwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglpbnQgMQoJaW50IDgKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCWludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImFycmF5U3BsaWNlKCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2UKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYXJyYXlTcGxpY2UoKXVpbnQ2NFtdCiphYmlfcm91dGVfYXJyYXlTcGxpY2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZSgpdWludDY0W10KCWNhbGxzdWIgYXJyYXlTcGxpY2UKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYXJyYXlTcGxpY2UoKTogdWludDY0W10KYXJyYXlTcGxpY2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1OQoJLy8gYTogdWludDY0W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MQoJLy8gYS5zcGxpY2UoMSwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglwdXNoaW50IDEKCXB1c2hpbnQgOAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXB1c2hpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJZHVwCglsZW4KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCgkrCglwdXNoaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2MwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5NDYzYTRhYyAvLyBtZXRob2QgImFycmF5U3BsaWNlKCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2UKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACCAExGBSBBgsxGQiNDABvAAAAAAAAAAAAAABhAAAAAAAAAAAAAACABBUffHWIAA5JFSIKFlcGAkxQULAjQ4oAAYAAgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMAIsAIyI194EQNfaLAIEANPdSiwBJFTT3NPYIIglMUlCMAIsAjACJI0OABLhEezY2GgCOAf/xAIAElGOkrDYaAI4B/4UA", + "approval": "CjEYFIEGCzEZCI0MAHUAAAAAAAAAAAAAAGcAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQgKFlcGAkxQULCBAUOKAAGAAIAYAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADjACLAIEBgQg194EQNfaLAIEANPdSiwBJFTT3NPYIgQgJTFJQjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgASUY6SsNhoAjgH/fwA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal b/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal index 6dbeb8ca4..4aa58e626 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // arraySpliceValue()uint16[] *abi_route_arraySpliceValue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute arraySpliceValue()uint16[] callsub arraySpliceValue dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // arraySpliceValue(): uint16[] @@ -52,29 +53,29 @@ arraySpliceValue: // tests/contracts/abi.algo.ts:469 // a: uint16[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - byte 0x000100020003000400050006000700080009000a + pushbytes 0x000100020003000400050006000700080009000a frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:471 // i = btoi(itob(1)) - int 1 + pushint 1 frame_bury 1 // i: uint64 // tests/contracts/abi.algo.ts:472 // l = btoi(itob(7)) - int 7 + pushint 7 frame_bury 2 // l: uint64 // tests/contracts/abi.algo.ts:473 // v = a.splice(i, l) frame_dig 0 // a: uint16[] - int 7 // l: uint64 - int 2 + pushint 7 // l: uint64 + pushint 2 store 247 // splice start - int 16 + pushint 16 store 246 // splice byte length frame_dig 0 // a: uint16[] - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 0 // a: uint16[] @@ -83,7 +84,7 @@ arraySpliceValue: load 247 // splice start load 246 // splice byte length + - int 2 + pushint 2 - swap substring3 @@ -91,7 +92,7 @@ arraySpliceValue: frame_dig 0 // a: uint16[] load 247 // splice start load 246 // splice byte length - int 2 + pushint 2 - extract3 swap @@ -110,11 +111,11 @@ arraySpliceValue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -122,7 +123,7 @@ arraySpliceValue: err *call_NoOp: - method "arraySpliceValue()uint16[]" + pushbytes 0x729567bc // method "arraySpliceValue()uint16[]" txna ApplicationArgs 0 match *abi_route_arraySpliceValue diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json b/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json index bf549021e..730fdeeb4 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5U3BsaWNlVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlTcGxpY2VWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlTcGxpY2VWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlTcGxpY2VWYWx1ZSgpOiB1aW50MTZbXQphcnJheVNwbGljZVZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQoJYnl0ZSAweDAwMDEwMDAyMDAwMzAwMDQwMDA1MDAwNjAwMDcwMDA4MDAwOTAwMGEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSBidG9pKGl0b2IoMSkpCglpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzIKCS8vIGwgPSBidG9pKGl0b2IoNykpCglpbnQgNwoJZnJhbWVfYnVyeSAyIC8vIGw6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzMKCS8vIHYgPSBhLnNwbGljZShpLCBsKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCA3IC8vIGw6IHVpbnQ2NAoJaW50IDIKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCWludCAyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJaW50IDIKCS0KCWV4dHJhY3QzCglzd2FwCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzUKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDMgLy8gdjogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5U3BsaWNlVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBhcnJheVNwbGljZVZhbHVlCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGFycmF5U3BsaWNlVmFsdWUoKTogdWludDE2W10KYXJyYXlTcGxpY2VWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDY5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMzAwMDQwMDA1MDAwNjAwMDcwMDA4MDAwOTAwMGEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSBidG9pKGl0b2IoMSkpCglwdXNoaW50IDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcyCgkvLyBsID0gYnRvaShpdG9iKDcpKQoJcHVzaGludCA3CglmcmFtZV9idXJ5IDIgLy8gbDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MwoJLy8gdiA9IGEuc3BsaWNlKGksIGwpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCA3IC8vIGw6IHVpbnQ2NAoJcHVzaGludCAyCglzdG9yZSAyNDcgLy8gc3BsaWNlIHN0YXJ0CglwdXNoaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCXB1c2hpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3NQoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NzI5NTY3YmMgLy8gbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.arc56_draft.json b/tests/contracts/artifacts/ABITestArraySpliceValue.arc56_draft.json index 5ddc5da9a..d87e2bd9f 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.arc56_draft.json @@ -61,659 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 467, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 467, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 467, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 467, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 467, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 467, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 467, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 467, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 467, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 468, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 468, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 468, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 468, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 468, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 468, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 468, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 468, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 38, - "source": 468, - "pc": [ - 59 - ] - }, - { - "teal": 39, - "source": 468, - "pc": [ - 60 - ] - }, - { - "teal": 40, - "source": 468, - "pc": [ - 61 - ] - }, - { - "teal": 41, - "source": 468, - "pc": [ - 62 - ] - }, - { - "teal": 42, - "source": 468, - "pc": [ - 63 - ] - }, - { - "teal": 43, - "source": 468, - "pc": [ - 64 - ] - }, - { - "teal": 47, - "source": 468, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 50, - "source": 468, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 51, - "source": 468, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 55, - "source": 469, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 56, - "source": 469, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 60, - "source": 471, - "pc": [ - 96 - ] - }, - { - "teal": 61, - "source": 471, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 65, - "source": 472, - "pc": [ - 99 - ] - }, - { - "teal": 66, - "source": 472, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 70, - "source": 473, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 71, - "source": 473, - "pc": [ - 104 - ] - }, - { - "teal": 72, - "source": 473, - "pc": [ - 105 - ] - }, - { - "teal": 73, - "source": 473, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 74, - "source": 473, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 75, - "source": 473, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 76, - "source": 473, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 77, - "source": 473, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 78, - "source": 473, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 79, - "source": 473, - "pc": [ - 118 - ] - }, - { - "teal": 80, - "source": 473, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 81, - "source": 473, - "pc": [ - 121 - ] - }, - { - "teal": 82, - "source": 473, - "pc": [ - 122 - ] - }, - { - "teal": 83, - "source": 473, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 84, - "source": 473, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 85, - "source": 473, - "pc": [ - 127 - ] - }, - { - "teal": 86, - "source": 473, - "pc": [ - 128 - ] - }, - { - "teal": 87, - "source": 473, - "pc": [ - 129 - ] - }, - { - "teal": 88, - "source": 473, - "pc": [ - 130 - ] - }, - { - "teal": 89, - "source": 473, - "pc": [ - 131 - ] - }, - { - "teal": 90, - "source": 473, - "pc": [ - 132 - ] - }, - { - "teal": 91, - "source": 473, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 92, - "source": 473, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 93, - "source": 473, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 94, - "source": 473, - "pc": [ - 139 - ] - }, - { - "teal": 95, - "source": 473, - "pc": [ - 140 - ] - }, - { - "teal": 96, - "source": 473, - "pc": [ - 141 - ] - }, - { - "teal": 97, - "source": 473, - "pc": [ - 142 - ] - }, - { - "teal": 98, - "source": 473, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 99, - "source": 473, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 103, - "source": 475, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 106, - "source": 468, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 109, - "source": 468, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 110, - "source": 468, - "pc": [ - 153 - ] - }, - { - "teal": 113, - "source": 467, - "pc": [ - 154 - ] - }, - { - "teal": 114, - "source": 467, - "pc": [ - 155 - ] - }, - { - "teal": 117, - "source": 467, - "pc": [ - 156, - 157, - 158, - 159, - 160, - 161 - ] - }, - { - "teal": 118, - "source": 467, - "pc": [ - 162, - 163, - 164 - ] - }, - { - "teal": 119, - "source": 467, - "pc": [ - 165, - 166, - 167, - 168 - ] - }, - { - "teal": 122, - "source": 467, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 169 - ] - }, - { - "teal": 125, - "source": 467, - "pc": [ - 170, - 171, - 172, - 173, - 174, - 175 - ] - }, - { - "teal": 126, - "source": 467, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 127, - "source": 467, - "pc": [ - 179, - 180, - 181, - 182 - ] - }, - { - "teal": 130, - "source": 467, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 183 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 176 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 190 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5U3BsaWNlVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXJyYXlTcGxpY2VWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlTcGxpY2VWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYXJyYXlTcGxpY2VWYWx1ZSgpOiB1aW50MTZbXQphcnJheVNwbGljZVZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjkKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQoJYnl0ZSAweDAwMDEwMDAyMDAwMzAwMDQwMDA1MDAwNjAwMDcwMDA4MDAwOTAwMGEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSBidG9pKGl0b2IoMSkpCglpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzIKCS8vIGwgPSBidG9pKGl0b2IoNykpCglpbnQgNwoJZnJhbWVfYnVyeSAyIC8vIGw6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzMKCS8vIHYgPSBhLnNwbGljZShpLCBsKQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCA3IC8vIGw6IHVpbnQ2NAoJaW50IDIKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCWludCAyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJaW50IDIKCS0KCWV4dHJhY3QzCglzd2FwCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzUKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDMgLy8gdjogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX2FycmF5U3BsaWNlVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBhcnJheVNwbGljZVZhbHVlCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGFycmF5U3BsaWNlVmFsdWUoKTogdWludDE2W10KYXJyYXlTcGxpY2VWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDY5CgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMzAwMDQwMDA1MDAwNjAwMDcwMDA4MDAwOTAwMGEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSBidG9pKGl0b2IoMSkpCglwdXNoaW50IDEKCWZyYW1lX2J1cnkgMSAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcyCgkvLyBsID0gYnRvaShpdG9iKDcpKQoJcHVzaGludCA3CglmcmFtZV9idXJ5IDIgLy8gbDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MwoJLy8gdiA9IGEuc3BsaWNlKGksIGwpCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCA3IC8vIGw6IHVpbnQ2NAoJcHVzaGludCAyCglzdG9yZSAyNDcgLy8gc3BsaWNlIHN0YXJ0CglwdXNoaW50IDE2CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCXB1c2hpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3NQoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NzI5NTY3YmMgLy8gbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYXJyYXlTcGxpY2VWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAgEHMRgUgQYLMRkIjQwAgQAAAAAAAAAAAAAAcwAAAAAAAAAAAAAAgAQVH3x1iAAOSRUiChZXBgJMUFCwI0OKAAGAAEcDgBQAAQACAAMABAAFAAYABwAIAAkACowAI4wBJIwCiwAkIjX3gRA19osAgQA091KLAEkVNPc09ggiCUxSUIsANPc09iIJWEyMAIwDiwOMAEYDiSNDgAS4RHs2NhoAjgH/8QCABHKVZ7w2GgCOAf9zAA==", + "approval": "CiYBADEYFIEGCzEZCI0MAIoAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAEcDgBQAAQACAAMABAAFAAYABwAIAAkACowAgQGMAYEHjAKLAIEHgQI194EQNfaLAIEANPdSiwBJFTT3NPYIgQIJTFJQiwA09zT2gQIJWEyMAIwDiwOMAEYDiYEBQ4AEuER7NjYaAI4B//AAgARylWe8NhoAjgH/agA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal b/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal index 1777f1df2..f50f15049 100644 --- a/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestBiggerByteCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // biggerByteCasting(byte[2])byte[4] *abi_route_biggerByteCasting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: byte[2] txna ApplicationArgs 1 dup len - int 2 + pushint 2 == // argument 0 (a) for biggerByteCasting must be a byte[2] @@ -41,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM callsub biggerByteCasting concat log - int 1 + pushint 1 return // biggerByteCasting(a: bytes<2>): bytes<4> @@ -51,16 +51,16 @@ biggerByteCasting: // tests/contracts/abi.algo.ts:1207 // return >a; frame_dig -1 // a: bytes<2> - byte 0x0000 + pushbytes 0x0000 concat retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -68,7 +68,7 @@ biggerByteCasting: err *call_NoOp: - method "biggerByteCasting(byte[2])byte[4]" + pushbytes 0xf4c366c0 // method "biggerByteCasting(byte[2])byte[4]" txna ApplicationArgs 0 match *abi_route_biggerByteCasting diff --git a/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json b/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json index 1dbe29f1b..de42b23fb 100644 --- a/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestBiggerByteCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KKmFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogYnl0ZVsyXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBiaWdnZXJCeXRlQ2FzdGluZyBtdXN0IGJlIGEgYnl0ZVsyXQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KCWNhbGxzdWIgYmlnZ2VyQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhhOiBieXRlczwyPik6IGJ5dGVzPDQ+CmJpZ2dlckJ5dGVDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMDcKCS8vIHJldHVybiA8Ynl0ZXM8ND4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlczwyPgoJYnl0ZSAweDAwMDAKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdCiphYmlfcm91dGVfYmlnZ2VyQnl0ZUNhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYTogYnl0ZVsyXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYmlnZ2VyQnl0ZUNhc3RpbmcgbXVzdCBiZSBhIGJ5dGVbMl0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdCgljYWxsc3ViIGJpZ2dlckJ5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGJpZ2dlckJ5dGVDYXN0aW5nKGE6IGJ5dGVzPDI+KTogYnl0ZXM8ND4KYmlnZ2VyQnl0ZUNhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwNwoJLy8gcmV0dXJuIDxieXRlczw0Pj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzPDI+CglwdXNoYnl0ZXMgMHgwMDAwCgljb25jYXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjRjMzY2YzAgLy8gbWV0aG9kICJiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2JpZ2dlckJ5dGVDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBiggerByteCasting.arc56_draft.json b/tests/contracts/artifacts/ABITestBiggerByteCasting.arc56_draft.json index 288050ce6..e9f15c1d1 100644 --- a/tests/contracts/artifacts/ABITestBiggerByteCasting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBiggerByteCasting.arc56_draft.json @@ -66,339 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1205, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1205, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1205, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1205, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1205, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1205, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1205, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1205, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1205, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1206, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1206, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1206, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1206, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1206, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 1206, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 1206, - "errorMessage": "argument 0 (a) for biggerByteCasting must be a byte[2]", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 1206, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 1206, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 1206, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1206, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1206, - "pc": [ - 61 - ] - }, - { - "teal": 49, - "source": 1206, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 53, - "source": 1207, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 54, - "source": 1207, - "pc": [ - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 55, - "source": 1207, - "pc": [ - 71 - ] - }, - { - "teal": 56, - "source": 1206, - "pc": [ - 72 - ] - }, - { - "teal": 59, - "source": 1205, - "pc": [ - 73 - ] - }, - { - "teal": 60, - "source": 1205, - "pc": [ - 74 - ] - }, - { - "teal": 63, - "source": 1205, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 64, - "source": 1205, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 65, - "source": 1205, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 68, - "source": 1205, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 71, - "source": 1205, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 72, - "source": 1205, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 73, - "source": 1205, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 76, - "source": 1205, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for biggerByteCasting must be a byte[2]" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KKmFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogYnl0ZVsyXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBiaWdnZXJCeXRlQ2FzdGluZyBtdXN0IGJlIGEgYnl0ZVsyXQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0KCWNhbGxzdWIgYmlnZ2VyQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaWdnZXJCeXRlQ2FzdGluZyhhOiBieXRlczwyPik6IGJ5dGVzPDQ+CmJpZ2dlckJ5dGVDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMDcKCS8vIHJldHVybiA8Ynl0ZXM8ND4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlczwyPgoJYnl0ZSAweDAwMDAKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9iaWdnZXJCeXRlQ2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdCiphYmlfcm91dGVfYmlnZ2VyQnl0ZUNhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYTogYnl0ZVsyXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYmlnZ2VyQnl0ZUNhc3RpbmcgbXVzdCBiZSBhIGJ5dGVbMl0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYmlnZ2VyQnl0ZUNhc3RpbmcoYnl0ZVsyXSlieXRlWzRdCgljYWxsc3ViIGJpZ2dlckJ5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGJpZ2dlckJ5dGVDYXN0aW5nKGE6IGJ5dGVzPDI+KTogYnl0ZXM8ND4KYmlnZ2VyQnl0ZUNhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwNwoJLy8gcmV0dXJuIDxieXRlczw0Pj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzPDI+CglwdXNoYnl0ZXMgMHgwMDAwCgljb25jYXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjRjMzY2YzAgLy8gbWV0aG9kICJiaWdnZXJCeXRlQ2FzdGluZyhieXRlWzJdKWJ5dGVbNF0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2JpZ2dlckJ5dGVDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQISRIgABFCwIkOKAQGL/4ACAABQiSJDgAS4RHs2NhoAjgH/8QCABPTDZsA2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQISRIgABVCwgQFDigEBi/+AAgAAUImBAUOABLhEezY2GgCOAf/wAIAE9MNmwDYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBoolFirstInTuple.approval.teal b/tests/contracts/artifacts/ABITestBoolFirstInTuple.approval.teal index e68f9149c..9a14d7698 100644 --- a/tests/contracts/artifacts/ABITestBoolFirstInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolFirstInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // boolFirstInTuple()(bool,uint64,uint64) *abi_route_boolFirstInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute boolFirstInTuple()(bool,uint64,uint64) callsub boolFirstInTuple concat log - int 1 + pushint 1 return // boolFirstInTuple(): [boolean, uint64, uint64] @@ -39,17 +39,17 @@ boolFirstInTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1582 // a: [boolean, uint64, uint64] = [true, 1, 2] - byte 0x00 - int 0 - int 1 + pushbytes 0x00 + pushint 0 + pushint 1 setbit - byte 0x0000000000000001 + pushbytes 0x0000000000000001 concat - byte 0x0000000000000002 + pushbytes 0x0000000000000002 concat frame_bury 0 // a: [boolean, uint64, uint64] @@ -62,11 +62,11 @@ boolFirstInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -74,7 +74,7 @@ boolFirstInTuple: err *call_NoOp: - method "boolFirstInTuple()(bool,uint64,uint64)" + pushbytes 0xa27318d5 // method "boolFirstInTuple()(bool,uint64,uint64)" txna ApplicationArgs 0 match *abi_route_boolFirstInTuple diff --git a/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc32.json b/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc32.json index d46be2376..eab715348 100644 --- a/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sRmlyc3RJblR1cGxlKCkoYm9vbCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2Jvb2xGaXJzdEluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbEZpcnN0SW5UdXBsZSgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYm9vbEZpcnN0SW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xGaXJzdEluVHVwbGUoKTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XQpib29sRmlyc3RJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU4MgoJLy8gYTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XSA9IFt0cnVlLCAxLCAyXQoJYnl0ZSAweDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCB1aW50NjQsIHVpbnQ2NF0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU4NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgdWludDY0LCB1aW50NjRdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sRmlyc3RJblR1cGxlKCkoYm9vbCx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEZpcnN0SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbEZpcnN0SW5UdXBsZSgpKGJvb2wsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9ib29sRmlyc3RJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbEZpcnN0SW5UdXBsZSgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYm9vbEZpcnN0SW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBib29sRmlyc3RJblR1cGxlKCk6IFtib29sZWFuLCB1aW50NjQsIHVpbnQ2NF0KYm9vbEZpcnN0SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU4MgoJLy8gYTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XSA9IFt0cnVlLCAxLCAyXQoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTg0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCB1aW50NjQsIHVpbnQ2NF0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YTI3MzE4ZDUgLy8gbWV0aG9kICJib29sRmlyc3RJblR1cGxlKCkoYm9vbCx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEZpcnN0SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc56_draft.json index 2beeb4176..de3c25410 100644 --- a/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBoolFirstInTuple.arc56_draft.json @@ -61,377 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1580, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1580, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1580, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1580, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1580, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1580, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1580, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1580, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1580, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1581, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1581, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1581, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1581, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1581, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1581, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1581, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 1581, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 1582, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 47, - "source": 1582, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 48, - "source": 1582, - "pc": [ - 63 - ] - }, - { - "teal": 49, - "source": 1582, - "pc": [ - 64 - ] - }, - { - "teal": 50, - "source": 1582, - "pc": [ - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 51, - "source": 1582, - "pc": [ - 75 - ] - }, - { - "teal": 52, - "source": 1582, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 53, - "source": 1582, - "pc": [ - 86 - ] - }, - { - "teal": 54, - "source": 1582, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 58, - "source": 1584, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 61, - "source": 1581, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 62, - "source": 1581, - "pc": [ - 93 - ] - }, - { - "teal": 65, - "source": 1580, - "pc": [ - 94 - ] - }, - { - "teal": 66, - "source": 1580, - "pc": [ - 95 - ] - }, - { - "teal": 69, - "source": 1580, - "pc": [ - 96, - 97, - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 70, - "source": 1580, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 71, - "source": 1580, - "pc": [ - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 74, - "source": 1580, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 109 - ] - }, - { - "teal": 77, - "source": 1580, - "pc": [ - 110, - 111, - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 78, - "source": 1580, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 79, - "source": 1580, - "pc": [ - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 82, - "source": 1580, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 123 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 109 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 123 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sRmlyc3RJblR1cGxlKCkoYm9vbCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2Jvb2xGaXJzdEluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbEZpcnN0SW5UdXBsZSgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYm9vbEZpcnN0SW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xGaXJzdEluVHVwbGUoKTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XQpib29sRmlyc3RJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU4MgoJLy8gYTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XSA9IFt0cnVlLCAxLCAyXQoJYnl0ZSAweDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCB1aW50NjQsIHVpbnQ2NF0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU4NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgdWludDY0LCB1aW50NjRdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sRmlyc3RJblR1cGxlKCkoYm9vbCx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEZpcnN0SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbEZpcnN0SW5UdXBsZSgpKGJvb2wsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9ib29sRmlyc3RJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbEZpcnN0SW5UdXBsZSgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgYm9vbEZpcnN0SW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBib29sRmlyc3RJblR1cGxlKCk6IFtib29sZWFuLCB1aW50NjQsIHVpbnQ2NF0KYm9vbEZpcnN0SW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU4MgoJLy8gYTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XSA9IFt0cnVlLCAxLCAyXQoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIHVpbnQ2NCwgdWludDY0XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTg0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCB1aW50NjQsIHVpbnQ2NF0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YTI3MzE4ZDUgLy8gbWV0aG9kICJib29sRmlyc3RJblR1cGxlKCkoYm9vbCx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEZpcnN0SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEcAAAAAAAAAAAAAADkAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIABAIEAIlSACAAAAAAAAAABUIAIAAAAAAAAAAJQjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABKJzGNU2GgCOAf+tAA==", + "approval": "CjEYFIEGCzEZCI0MAEoAAAAAAAAAAAAAADwAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAQCBAIEBVIAIAAAAAAAAAAFQgAgAAAAAAAAAAlCMAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABKJzGNU2GgCOAf+qAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal b/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal index a0099f1b4..89defb3d0 100644 --- a/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x00 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,17 +26,17 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // boolInNestedTuple()bool *abi_route_boolInNestedTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute boolInNestedTuple()bool callsub boolInNestedTuple byte 0x00 - int 0 + pushint 0 uncover 2 setbit concat log - int 1 + pushint 1 return // boolInNestedTuple(): boolean @@ -43,17 +44,17 @@ boolInNestedTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1442 // a: [[uint64, uint64, uint64], boolean, boolean] = [[0, 0, 0], true, false] - byte 0x000000000000000000000000000000000000000000000000 + pushbytes 0x000000000000000000000000000000000000000000000000 byte 0x00 - int 0 - int 1 + pushint 0 + pushint 1 setbit - int 1 - int 0 + pushint 1 + pushint 0 setbit concat frame_bury 0 // a: [[uint64, uint64, uint64], boolean, boolean] @@ -63,8 +64,8 @@ boolInNestedTuple: frame_dig 0 // a: [[uint64, uint64, uint64], boolean, boolean] store 255 // full array load 255 // full array - int 192 - int 0 + pushint 192 + pushint 0 setbit frame_bury 0 // a: [[uint64, uint64, uint64], boolean, boolean] @@ -73,8 +74,8 @@ boolInNestedTuple: frame_dig 0 // a: [[uint64, uint64, uint64], boolean, boolean] store 255 // full array load 255 // full array - int 193 - int 1 + pushint 193 + pushint 1 setbit frame_bury 0 // a: [[uint64, uint64, uint64], boolean, boolean] @@ -83,7 +84,7 @@ boolInNestedTuple: frame_dig 0 // a: [[uint64, uint64, uint64], boolean, boolean] store 255 // full array load 255 // full array - int 193 + pushint 193 getbit // set the subroutine return value @@ -91,11 +92,11 @@ boolInNestedTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -103,7 +104,7 @@ boolInNestedTuple: err *call_NoOp: - method "boolInNestedTuple()bool" + pushbytes 0x38cef598 // method "boolInNestedTuple()bool" txna ApplicationArgs 0 match *abi_route_boolInNestedTuple diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json index 8ec80a54c..adc47e6b4 100644 --- a/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sSW5OZXN0ZWRUdXBsZSgpYm9vbAoqYWJpX3JvdXRlX2Jvb2xJbk5lc3RlZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJvb2xJbk5lc3RlZFR1cGxlKClib29sCgljYWxsc3ViIGJvb2xJbk5lc3RlZFR1cGxlCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xJbk5lc3RlZFR1cGxlKCk6IGJvb2xlYW4KYm9vbEluTmVzdGVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDQyCgkvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXSA9IFtbMCwgMCwgMF0sIHRydWUsIGZhbHNlXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDQKCS8vIGFbMV0gPSBmYWxzZQoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTkyCglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ0NQoJLy8gYVsyXSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MwoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDcKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTkzCglnZXRiaXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xJbk5lc3RlZFR1cGxlKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sSW5OZXN0ZWRUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGJvb2xJbk5lc3RlZFR1cGxlKClib29sCiphYmlfcm91dGVfYm9vbEluTmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sSW5OZXN0ZWRUdXBsZSgpYm9vbAoJY2FsbHN1YiBib29sSW5OZXN0ZWRUdXBsZQoJYnl0ZSAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGJvb2xJbk5lc3RlZFR1cGxlKCk6IGJvb2xlYW4KYm9vbEluTmVzdGVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDIKCS8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dID0gW1swLCAwLCAwXSwgdHJ1ZSwgZmFsc2VdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMAoJcHVzaGludCAwCglwdXNoaW50IDEKCXNldGJpdAoJcHVzaGludCAxCglwdXNoaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ0NAoJLy8gYVsxXSA9IGZhbHNlCglmcmFtZV9kaWcgMCAvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkyCglwdXNoaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDUKCS8vIGFbMl0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkzCglwdXNoaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDcKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDE5MwoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDM4Y2VmNTk4IC8vIG1ldGhvZCAiYm9vbEluTmVzdGVkVHVwbGUoKWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xJbk5lc3RlZFR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc56_draft.json index 76caedb4e..487f09b87 100644 --- a/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBoolInNestedTuple.arc56_draft.json @@ -61,562 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1440, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ] - }, - { - "teal": 13, - "source": 1440, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 14, - "source": 1440, - "pc": [ - 13 - ] - }, - { - "teal": 15, - "source": 1440, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 16, - "source": 1440, - "pc": [ - 16 - ] - }, - { - "teal": 17, - "source": 1440, - "pc": [ - 17, - 18 - ] - }, - { - "teal": 18, - "source": 1440, - "pc": [ - 19 - ] - }, - { - "teal": 19, - "source": 1440, - "pc": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 23, - "source": 1440, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 46 - ] - }, - { - "teal": 28, - "source": 1441, - "pc": [ - 47, - 48, - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 31, - "source": 1441, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 32, - "source": 1441, - "pc": [ - 56 - ] - }, - { - "teal": 33, - "source": 1441, - "pc": [ - 57 - ] - }, - { - "teal": 34, - "source": 1441, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 35, - "source": 1441, - "pc": [ - 60 - ] - }, - { - "teal": 36, - "source": 1441, - "pc": [ - 61 - ] - }, - { - "teal": 37, - "source": 1441, - "pc": [ - 62 - ] - }, - { - "teal": 38, - "source": 1441, - "pc": [ - 63 - ] - }, - { - "teal": 39, - "source": 1441, - "pc": [ - 64 - ] - }, - { - "teal": 43, - "source": 1441, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 46, - "source": 1441, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 50, - "source": 1442, - "pc": [ - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 51, - "source": 1442, - "pc": [ - 96 - ] - }, - { - "teal": 52, - "source": 1442, - "pc": [ - 97 - ] - }, - { - "teal": 53, - "source": 1442, - "pc": [ - 98 - ] - }, - { - "teal": 54, - "source": 1442, - "pc": [ - 99 - ] - }, - { - "teal": 55, - "source": 1442, - "pc": [ - 100 - ] - }, - { - "teal": 56, - "source": 1442, - "pc": [ - 101 - ] - }, - { - "teal": 57, - "source": 1442, - "pc": [ - 102 - ] - }, - { - "teal": 58, - "source": 1442, - "pc": [ - 103 - ] - }, - { - "teal": 59, - "source": 1442, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 63, - "source": 1444, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 64, - "source": 1444, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 65, - "source": 1444, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 66, - "source": 1444, - "pc": [ - 112, - 113, - 114 - ] - }, - { - "teal": 67, - "source": 1444, - "pc": [ - 115 - ] - }, - { - "teal": 68, - "source": 1444, - "pc": [ - 116 - ] - }, - { - "teal": 69, - "source": 1444, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 73, - "source": 1445, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 74, - "source": 1445, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 75, - "source": 1445, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 76, - "source": 1445, - "pc": [ - 125 - ] - }, - { - "teal": 77, - "source": 1445, - "pc": [ - 126 - ] - }, - { - "teal": 78, - "source": 1445, - "pc": [ - 127 - ] - }, - { - "teal": 79, - "source": 1445, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 83, - "source": 1447, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 84, - "source": 1447, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 85, - "source": 1447, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 86, - "source": 1447, - "pc": [ - 136 - ] - }, - { - "teal": 87, - "source": 1447, - "pc": [ - 137 - ] - }, - { - "teal": 90, - "source": 1441, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 91, - "source": 1441, - "pc": [ - 140 - ] - }, - { - "teal": 94, - "source": 1440, - "pc": [ - 141 - ] - }, - { - "teal": 95, - "source": 1440, - "pc": [ - 142 - ] - }, - { - "teal": 98, - "source": 1440, - "pc": [ - 143, - 144, - 145, - 146, - 147, - 148 - ] - }, - { - "teal": 99, - "source": 1440, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 100, - "source": 1440, - "pc": [ - 152, - 153, - 154, - 155 - ] - }, - { - "teal": 103, - "source": 1440, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 156 - ] - }, - { - "teal": 106, - "source": 1440, - "pc": [ - 157, - 158, - 159, - 160, - 161, - 162 - ] - }, - { - "teal": 107, - "source": 1440, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 108, - "source": 1440, - "pc": [ - 166, - 167, - 168, - 169 - ] - }, - { - "teal": 111, - "source": 1440, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 170 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 40 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 167 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 181 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sSW5OZXN0ZWRUdXBsZSgpYm9vbAoqYWJpX3JvdXRlX2Jvb2xJbk5lc3RlZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJvb2xJbk5lc3RlZFR1cGxlKClib29sCgljYWxsc3ViIGJvb2xJbk5lc3RlZFR1cGxlCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xJbk5lc3RlZFR1cGxlKCk6IGJvb2xlYW4KYm9vbEluTmVzdGVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDQyCgkvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXSA9IFtbMCwgMCwgMF0sIHRydWUsIGZhbHNlXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDQKCS8vIGFbMV0gPSBmYWxzZQoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTkyCglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ0NQoJLy8gYVsyXSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDE5MwoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDcKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMTkzCglnZXRiaXQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xJbk5lc3RlZFR1cGxlKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sSW5OZXN0ZWRUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGJvb2xJbk5lc3RlZFR1cGxlKClib29sCiphYmlfcm91dGVfYm9vbEluTmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sSW5OZXN0ZWRUdXBsZSgpYm9vbAoJY2FsbHN1YiBib29sSW5OZXN0ZWRUdXBsZQoJYnl0ZSAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGJvb2xJbk5lc3RlZFR1cGxlKCk6IGJvb2xlYW4KYm9vbEluTmVzdGVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDIKCS8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dID0gW1swLCAwLCAwXSwgdHJ1ZSwgZmFsc2VdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMAoJcHVzaGludCAwCglwdXNoaW50IDEKCXNldGJpdAoJcHVzaGludCAxCglwdXNoaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ0NAoJLy8gYVsxXSA9IGZhbHNlCglmcmFtZV9kaWcgMCAvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkyCglwdXNoaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDUKCS8vIGFbMl0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBbW3VpbnQ2NCwgdWludDY0LCB1aW50NjRdLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMTkzCglwdXNoaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtbdWludDY0LCB1aW50NjQsIHVpbnQ2NF0sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NDcKCS8vIHJldHVybiBhWzJdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1t1aW50NjQsIHVpbnQ2NCwgdWludDY0XSwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDE5MwoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDM4Y2VmNTk4IC8vIG1ldGhvZCAiYm9vbEluTmVzdGVkVHVwbGUoKWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xJbk5lc3RlZFR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQDBASYBAQAxGBSBBgsxGQiNDABvAAAAAAAAAAAAAABhAAAAAAAAAAAAAACABBUffHWIAAkoI08CVFCwIkOKAAGAAIAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCMiVCIjVFCMAIsANf80/4HAASNUjACLADX/NP8kIlSMAIsANf80/yRTjACJIkOABLhEezY2GgCOAf/xAIAEOM71mDYaAI4B/4UA", + "approval": "CiYBAQAxGBSBBgsxGQiNDACAAAAAAAAAAAAAAAByAAAAAAAAAAAAAACABBUffHWIAA2AAQCBAE8CVFCwgQFDigABgACAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAIEAgQFUgQGBAFRQjACLADX/NP+BwAGBAFSMAIsANf80/4HBAYEBVIwAiwA1/zT/gcEBU4wAiYEBQ4AEuER7NjYaAI4B//AAgAQ4zvWYNhoAjgH/dAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBoolInObj.approval.teal b/tests/contracts/artifacts/ABITestBoolInObj.approval.teal index b2f2ca0e5..899ad22e8 100644 --- a/tests/contracts/artifacts/ABITestBoolInObj.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolInObj.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 1 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -34,18 +35,18 @@ boolInObj: proto 0 0 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1225 // x: { foo: boolean; bar: boolean; baz: boolean } = { foo: true, bar: true, baz: true } - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 int 1 setbit int 1 dup setbit - int 2 + pushint 2 int 1 setbit frame_bury 0 // x: { foo: boolean; bar: boolean; baz: boolean } @@ -56,7 +57,7 @@ boolInObj: store 255 // full array load 255 // full array int 1 - int 0 + pushint 0 setbit frame_bury 0 // x: { foo: boolean; bar: boolean; baz: boolean } @@ -65,7 +66,7 @@ boolInObj: frame_dig 0 // x: { foo: boolean; bar: boolean; baz: boolean } store 255 // full array load 255 // full array - int 0 + pushint 0 getbit int 1 == @@ -77,7 +78,7 @@ boolInObj: load 255 // full array int 1 getbit - int 0 + pushint 0 == // asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true) @@ -85,7 +86,7 @@ boolInObj: frame_dig 0 // x: { foo: boolean; bar: boolean; baz: boolean } store 255 // full array load 255 // full array - int 2 + pushint 2 getbit int 1 == @@ -99,7 +100,7 @@ boolInObj: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -107,7 +108,7 @@ boolInObj: err *call_NoOp: - method "boolInObj()void" + pushbytes 0xe67c8fcb // method "boolInObj()void" txna ApplicationArgs 0 match *abi_route_boolInObj diff --git a/tests/contracts/artifacts/ABITestBoolInObj.arc32.json b/tests/contracts/artifacts/ABITestBoolInObj.arc32.json index d00e58624..59345d929 100644 --- a/tests/contracts/artifacts/ABITestBoolInObj.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolInObj.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sSW5PYmooKXZvaWQKKmFiaV9yb3V0ZV9ib29sSW5PYmo6CgkvLyBleGVjdXRlIGJvb2xJbk9iaigpdm9pZAoJY2FsbHN1YiBib29sSW5PYmoKCWludCAxCglyZXR1cm4KCi8vIGJvb2xJbk9iaigpOiB2b2lkCmJvb2xJbk9iajoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMjUKCS8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9ID0geyBmb286IHRydWUsIGJhcjogdHJ1ZSwgYmF6OiB0cnVlIH0KCWJ5dGUgMHgwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglkdXAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjI2CgkvLyB4LmJhciA9IGZhbHNlCglmcmFtZV9kaWcgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxCglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyNwoJLy8gYXNzZXJ0cyh4LmZvbyA9PT0gdHJ1ZSwgeC5iYXIgPT09IGZhbHNlLCB4LmJheiA9PT0gdHJ1ZSkKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWdldGJpdAoJaW50IDEKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJaW50IDAKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWdldGJpdAoJaW50IDEKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xJbk9iaigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEluT2JqCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbEluT2JqKCl2b2lkCiphYmlfcm91dGVfYm9vbEluT2JqOgoJLy8gZXhlY3V0ZSBib29sSW5PYmooKXZvaWQKCWNhbGxzdWIgYm9vbEluT2JqCglpbnQgMQoJcmV0dXJuCgovLyBib29sSW5PYmooKTogdm9pZApib29sSW5PYmo6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMjUKCS8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9ID0geyBmb286IHRydWUsIGJhcjogdHJ1ZSwgYmF6OiB0cnVlIH0KCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglkdXAKCXNldGJpdAoJcHVzaGludCAyCglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyNgoJLy8geC5iYXIgPSBmYWxzZQoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjI3CgkvLyBhc3NlcnRzKHguZm9vID09PSB0cnVlLCB4LmJhciA9PT0gZmFsc2UsIHguYmF6ID09PSB0cnVlKQoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWdldGJpdAoJaW50IDEKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJcHVzaGludCAwCgk9PQoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKHguZm9vID09PSB0cnVlLCB4LmJhciA9PT0gZmFsc2UsIHguYmF6ID09PSB0cnVlKQoJYXNzZXJ0CglmcmFtZV9kaWcgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJZ2V0Yml0CglpbnQgMQoJPT0KCgkvLyBhc3NlcnRzIGZhaWxlZDogYXNzZXJ0cyh4LmZvbyA9PT0gdHJ1ZSwgeC5iYXIgPT09IGZhbHNlLCB4LmJheiA9PT0gdHJ1ZSkKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGU2N2M4ZmNiIC8vIG1ldGhvZCAiYm9vbEluT2JqKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sSW5PYmoKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolInObj.arc56_draft.json b/tests/contracts/artifacts/ABITestBoolInObj.arc56_draft.json index f80573db1..4e55c420c 100644 --- a/tests/contracts/artifacts/ABITestBoolInObj.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBoolInObj.arc56_draft.json @@ -61,565 +61,58 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1223, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1223, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1223, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1223, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1223, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1223, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1223, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1223, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1223, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1224, - "pc": [ - 42, - 43, - 44 - ] - }, - { - "teal": 29, - "source": 1224, - "pc": [ - 45 - ] - }, - { - "teal": 30, - "source": 1224, - "pc": [ - 46 - ] - }, - { - "teal": 34, - "source": 1224, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 37, - "source": 1224, - "pc": [ - 50, - 51 - ] - }, - { - "teal": 41, - "source": 1225, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 42, - "source": 1225, - "pc": [ - 55 - ] - }, - { - "teal": 43, - "source": 1225, - "pc": [ - 56 - ] - }, - { - "teal": 44, - "source": 1225, - "pc": [ - 57 - ] - }, - { - "teal": 45, - "source": 1225, - "pc": [ - 58 - ] - }, - { - "teal": 46, - "source": 1225, - "pc": [ - 59 - ] - }, - { - "teal": 47, - "source": 1225, - "pc": [ - 60 - ] - }, - { - "teal": 48, - "source": 1225, - "pc": [ - 61 - ] - }, - { - "teal": 49, - "source": 1225, - "pc": [ - 62 - ] - }, - { - "teal": 50, - "source": 1225, - "pc": [ - 63 - ] - }, - { - "teal": 51, - "source": 1225, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 55, - "source": 1226, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 56, - "source": 1226, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 57, - "source": 1226, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 58, - "source": 1226, - "pc": [ - 72 - ] - }, - { - "teal": 59, - "source": 1226, - "pc": [ - 73 - ] - }, - { - "teal": 60, - "source": 1226, - "pc": [ - 74 - ] - }, - { - "teal": 61, - "source": 1226, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 65, - "source": 1227, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 66, - "source": 1227, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 67, - "source": 1227, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 68, - "source": 1227, - "pc": [ - 83 - ] - }, - { - "teal": 69, - "source": 1227, - "pc": [ - 84 - ] - }, - { - "teal": 70, - "source": 1227, - "pc": [ - 85 - ] - }, - { - "teal": 71, - "source": 1227, - "pc": [ - 86 - ] - }, - { - "teal": 74, - "source": 1227, - "errorMessage": "asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true)", - "pc": [ - 87 - ] - }, - { - "teal": 75, - "source": 1227, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 76, - "source": 1227, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 77, - "source": 1227, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 78, - "source": 1227, - "pc": [ - 94 - ] - }, - { - "teal": 79, - "source": 1227, - "pc": [ - 95 - ] - }, - { - "teal": 80, - "source": 1227, - "pc": [ - 96 - ] - }, - { - "teal": 81, - "source": 1227, - "pc": [ - 97 - ] - }, - { - "teal": 84, - "source": 1227, - "errorMessage": "asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true)", - "pc": [ - 98 - ] - }, - { - "teal": 85, - "source": 1227, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 86, - "source": 1227, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 87, - "source": 1227, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 88, - "source": 1227, - "pc": [ - 105 - ] - }, - { - "teal": 89, - "source": 1227, - "pc": [ - 106 - ] - }, - { - "teal": 90, - "source": 1227, - "pc": [ - 107 - ] - }, - { - "teal": 91, - "source": 1227, - "pc": [ - 108 - ] - }, - { - "teal": 94, - "source": 1227, - "errorMessage": "asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true)", - "pc": [ - 109 - ] - }, - { - "teal": 95, - "source": 1224, - "pc": [ - 110 - ] - }, - { - "teal": 98, - "source": 1223, - "pc": [ - 111 - ] - }, - { - "teal": 99, - "source": 1223, - "pc": [ - 112 - ] - }, - { - "teal": 102, - "source": 1223, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 103, - "source": 1223, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 104, - "source": 1223, - "pc": [ - 122, - 123, - 124, - 125 - ] - }, - { - "teal": 107, - "source": 1223, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 126 - ] - }, - { - "teal": 110, - "source": 1223, - "pc": [ - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 111, - "source": 1223, - "pc": [ - 133, - 134, - 135 - ] - }, - { - "teal": 112, - "source": 1223, - "pc": [ - 136, - 137, - 138, - 139 - ] - }, - { - "teal": 115, - "source": 1223, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 140 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 95 + ], + "errorMessage": "asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true)" + }, + { + "pc": [ + 108 + ], + "errorMessage": "asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true)" + }, + { + "pc": [ + 121 + ], + "errorMessage": "asserts failed: asserts(x.foo === true, x.bar === false, x.baz === true)" + }, + { + "pc": [ + 139 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 153 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sSW5PYmooKXZvaWQKKmFiaV9yb3V0ZV9ib29sSW5PYmo6CgkvLyBleGVjdXRlIGJvb2xJbk9iaigpdm9pZAoJY2FsbHN1YiBib29sSW5PYmoKCWludCAxCglyZXR1cm4KCi8vIGJvb2xJbk9iaigpOiB2b2lkCmJvb2xJbk9iajoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMjUKCS8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9ID0geyBmb286IHRydWUsIGJhcjogdHJ1ZSwgYmF6OiB0cnVlIH0KCWJ5dGUgMHgwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglkdXAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjI2CgkvLyB4LmJhciA9IGZhbHNlCglmcmFtZV9kaWcgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAxCglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyNwoJLy8gYXNzZXJ0cyh4LmZvbyA9PT0gdHJ1ZSwgeC5iYXIgPT09IGZhbHNlLCB4LmJheiA9PT0gdHJ1ZSkKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWdldGJpdAoJaW50IDEKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJaW50IDAKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWdldGJpdAoJaW50IDEKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xJbk9iaigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbEluT2JqCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbEluT2JqKCl2b2lkCiphYmlfcm91dGVfYm9vbEluT2JqOgoJLy8gZXhlY3V0ZSBib29sSW5PYmooKXZvaWQKCWNhbGxzdWIgYm9vbEluT2JqCglpbnQgMQoJcmV0dXJuCgovLyBib29sSW5PYmooKTogdm9pZApib29sSW5PYmo6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMjUKCS8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9ID0geyBmb286IHRydWUsIGJhcjogdHJ1ZSwgYmF6OiB0cnVlIH0KCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglkdXAKCXNldGJpdAoJcHVzaGludCAyCglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyNgoJLy8geC5iYXIgPSBmYWxzZQoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjI3CgkvLyBhc3NlcnRzKHguZm9vID09PSB0cnVlLCB4LmJhciA9PT0gZmFsc2UsIHguYmF6ID09PSB0cnVlKQoJZnJhbWVfZGlnIDAgLy8geDogeyBmb286IGJvb2xlYW47IGJhcjogYm9vbGVhbjsgYmF6OiBib29sZWFuIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWdldGJpdAoJaW50IDEKCT09CgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoeC5mb28gPT09IHRydWUsIHguYmFyID09PSBmYWxzZSwgeC5iYXogPT09IHRydWUpCglhc3NlcnQKCWZyYW1lX2RpZyAwIC8vIHg6IHsgZm9vOiBib29sZWFuOyBiYXI6IGJvb2xlYW47IGJhejogYm9vbGVhbiB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWdldGJpdAoJcHVzaGludCAwCgk9PQoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKHguZm9vID09PSB0cnVlLCB4LmJhciA9PT0gZmFsc2UsIHguYmF6ID09PSB0cnVlKQoJYXNzZXJ0CglmcmFtZV9kaWcgMCAvLyB4OiB7IGZvbzogYm9vbGVhbjsgYmFyOiBib29sZWFuOyBiYXo6IGJvb2xlYW4gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJZ2V0Yml0CglpbnQgMQoJPT0KCgkvLyBhc3NlcnRzIGZhaWxlZDogYXNzZXJ0cyh4LmZvbyA9PT0gdHJ1ZSwgeC5iYXIgPT09IGZhbHNlLCB4LmJheiA9PT0gdHJ1ZSkKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGU2N2M4ZmNiIC8vIG1ldGhvZCAiYm9vbEluT2JqKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sSW5PYmoKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQACMRgUgQYLMRkIjQwAVgAAAAAAAAAAAAAASAAAAAAAAAAAAAAAiAACIkOKAACAAIABACMiVCJJVCQiVIwAiwA1/zT/IiNUjACLADX/NP8jUyISRIsANf80/yJTIxJEiwA1/zT/JFMiEkSJIkOABLhEezY2GgCOAf/xAIAE5nyPyzYaAI4B/54A", + "approval": "CiABATEYFIEGCzEZCI0MAGUAAAAAAAAAAAAAAFcAAAAAAAAAAAAAAIgAA4EBQ4oAAIAAgAEAgQCBAVSBAUlUgQKBAVSMAIsANf80/4EBgQBUjACLADX/NP+BAFOBARJEiwA1/zT/gQFTgQASRIsANf80/4ECU4EBEkSJgQFDgAS4RHs2NhoAjgH/8ACABOZ8j8s2GgCOAf+PAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBoolTuple.approval.teal b/tests/contracts/artifacts/ABITestBoolTuple.approval.teal index b690b6da8..e717f4160 100644 --- a/tests/contracts/artifacts/ABITestBoolTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // boolTuple()(bool,bool,bool,bool,bool,bool,bool,bool,bool) *abi_route_boolTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute boolTuple()(bool,bool,bool,bool,bool,bool,bool,bool,bool) callsub boolTuple concat log - int 1 + pushint 1 return // boolTuple(): [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] @@ -39,7 +39,7 @@ boolTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:879 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] = [ @@ -53,33 +53,33 @@ boolTuple: // false, // false, // ] - byte 0x0000 - int 0 - int 1 + pushbytes 0x0000 + pushint 0 + pushint 1 setbit - int 1 - int 0 + pushint 1 + pushint 0 setbit - int 2 - int 1 + pushint 2 + pushint 1 setbit - int 3 - int 1 + pushint 3 + pushint 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 - int 1 + pushint 6 + pushint 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit frame_bury 0 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] @@ -92,11 +92,11 @@ boolTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -104,7 +104,7 @@ boolTuple: err *call_NoOp: - method "boolTuple()(bool,bool,bool,bool,bool,bool,bool,bool,bool)" + pushbytes 0xd4593afe // method "boolTuple()(bool,bool,bool,bool,bool,bool,bool,bool,bool)" txna ApplicationArgs 0 match *abi_route_boolTuple diff --git a/tests/contracts/artifacts/ABITestBoolTuple.arc32.json b/tests/contracts/artifacts/ABITestBoolTuple.arc32.json index cf7c46551..944029f73 100644 --- a/tests/contracts/artifacts/ABITestBoolTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9ib29sVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODc5CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCiphYmlfcm91dGVfYm9vbFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGUoKTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCmJvb2xUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODc5CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDAwCglwdXNoaW50IDAKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDIKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDMKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDcKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDgKCXB1c2hpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg5MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDQ1OTNhZmUgLy8gbWV0aG9kICJib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestBoolTuple.arc56_draft.json index 8431bf966..3be19e446 100644 --- a/tests/contracts/artifacts/ABITestBoolTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBoolTuple.arc56_draft.json @@ -61,506 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 877, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 877, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 877, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 877, - "pc": [ - 9 - ] - }, - { - "teal": 16, - "source": 877, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 877, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 877, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 877, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 877, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 878, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 878, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 878, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 878, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 878, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 878, - "pc": [ - 53 - ] - }, - { - "teal": 39, - "source": 878, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 42, - "source": 878, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 56, - "source": 880, - "pc": [ - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 57, - "source": 880, - "pc": [ - 63 - ] - }, - { - "teal": 58, - "source": 880, - "pc": [ - 64 - ] - }, - { - "teal": 59, - "source": 880, - "pc": [ - 65 - ] - }, - { - "teal": 60, - "source": 881, - "pc": [ - 66 - ] - }, - { - "teal": 61, - "source": 881, - "pc": [ - 67 - ] - }, - { - "teal": 62, - "source": 881, - "pc": [ - 68 - ] - }, - { - "teal": 63, - "source": 882, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 64, - "source": 882, - "pc": [ - 71 - ] - }, - { - "teal": 65, - "source": 882, - "pc": [ - 72 - ] - }, - { - "teal": 66, - "source": 883, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 67, - "source": 883, - "pc": [ - 75 - ] - }, - { - "teal": 68, - "source": 883, - "pc": [ - 76 - ] - }, - { - "teal": 69, - "source": 884, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 70, - "source": 884, - "pc": [ - 79 - ] - }, - { - "teal": 71, - "source": 884, - "pc": [ - 80 - ] - }, - { - "teal": 72, - "source": 885, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 73, - "source": 885, - "pc": [ - 83 - ] - }, - { - "teal": 74, - "source": 885, - "pc": [ - 84 - ] - }, - { - "teal": 75, - "source": 886, - "pc": [ - 85 - ] - }, - { - "teal": 76, - "source": 886, - "pc": [ - 86 - ] - }, - { - "teal": 77, - "source": 886, - "pc": [ - 87 - ] - }, - { - "teal": 78, - "source": 887, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 79, - "source": 887, - "pc": [ - 90 - ] - }, - { - "teal": 80, - "source": 887, - "pc": [ - 91 - ] - }, - { - "teal": 81, - "source": 888, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 82, - "source": 888, - "pc": [ - 94 - ] - }, - { - "teal": 83, - "source": 888, - "pc": [ - 95 - ] - }, - { - "teal": 84, - "source": 879, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 88, - "source": 891, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 91, - "source": 878, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 92, - "source": 878, - "pc": [ - 102 - ] - }, - { - "teal": 95, - "source": 877, - "pc": [ - 103 - ] - }, - { - "teal": 96, - "source": 877, - "pc": [ - 104 - ] - }, - { - "teal": 99, - "source": 877, - "pc": [ - 105, - 106, - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 100, - "source": 877, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 101, - "source": 877, - "pc": [ - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 104, - "source": 877, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 118 - ] - }, - { - "teal": 107, - "source": 877, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 108, - "source": 877, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 109, - "source": 877, - "pc": [ - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 112, - "source": 877, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 132 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 142 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9ib29sVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODc5CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCiphYmlfcm91dGVfYm9vbFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGUoKTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCmJvb2xUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODc5CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDAwCglwdXNoaW50IDAKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDIKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDMKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDcKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDgKCXB1c2hpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg5MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDQ1OTNhZmUgLy8gbWV0aG9kICJib29sVHVwbGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAGMRgUJAsxGQiNDABPAAAAAAAAAAAAAABBAAAAAAAAAAAAAACABBUffHWIAARQsCJDigABgACAAgAAIyJUIiNUgQIiVIEDIlSBBCNUgQUjVCQiVIEHI1SBCCNUjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABNRZOv42GgCOAf+lAA==", + "approval": "CjEYFIEGCzEZCI0MAF0AAAAAAAAAAAAAAE8AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAgAAgQCBAVSBAYEAVIECgQFUgQOBAVSBBIEAVIEFgQBUgQaBAVSBB4EAVIEIgQBUjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgATUWTr+NhoAjgH/lwA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal b/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal index 965167d3b..daa58d69e 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolTupleAccess.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 0 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,17 +26,17 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // boolTupleAccess()bool *abi_route_boolTupleAccess: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute boolTupleAccess()bool callsub boolTupleAccess - byte 0x00 + pushbytes 0x00 int 0 uncover 2 setbit concat log - int 1 + pushint 1 return // boolTupleAccess(): boolean @@ -43,7 +44,7 @@ boolTupleAccess: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:905 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] = [ @@ -57,33 +58,33 @@ boolTupleAccess: // false, // true, // ] - byte 0x0000 + pushbytes 0x0000 int 0 dup setbit - int 1 + pushint 1 int 0 setbit - int 2 + pushint 2 int 0 setbit - int 3 + pushint 3 int 0 setbit - int 4 + pushint 4 int 0 setbit - int 5 + pushint 5 int 0 setbit - int 6 + pushint 6 int 0 setbit - int 7 + pushint 7 int 0 setbit - int 8 - int 1 + pushint 8 + pushint 1 setbit frame_bury 0 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] @@ -92,7 +93,7 @@ boolTupleAccess: frame_dig 0 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] store 255 // full array load 255 // full array - int 8 + pushint 8 getbit // set the subroutine return value @@ -100,11 +101,11 @@ boolTupleAccess: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -112,7 +113,7 @@ boolTupleAccess: err *call_NoOp: - method "boolTupleAccess()bool" + pushbytes 0xc8f25ed1 // method "boolTupleAccess()bool" txna ApplicationArgs 0 match *abi_route_boolTupleAccess diff --git a/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json b/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json index 77345b325..dc6a467b6 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolTupleAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sVHVwbGVBY2Nlc3MoKWJvb2wKKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlQWNjZXNzKClib29sCgljYWxsc3ViIGJvb2xUdXBsZUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGVBY2Nlc3MoKTogYm9vbGVhbgpib29sVHVwbGVBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MDUKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJZHVwCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDAKCXNldGJpdAoJaW50IDMKCWludCAwCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAwCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MTcKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbFR1cGxlQWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbFR1cGxlQWNjZXNzKClib29sCiphYmlfcm91dGVfYm9vbFR1cGxlQWNjZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlQWNjZXNzKClib29sCgljYWxsc3ViIGJvb2xUdXBsZUFjY2VzcwoJcHVzaGJ5dGVzIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGVBY2Nlc3MoKTogYm9vbGVhbgpib29sVHVwbGVBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwNQoJLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dID0gWwoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMAoJaW50IDAKCWR1cAoJc2V0Yml0CglwdXNoaW50IDEKCWludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJaW50IDAKCXNldGJpdAoJcHVzaGludCAzCglpbnQgMAoJc2V0Yml0CglwdXNoaW50IDQKCWludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJaW50IDAKCXNldGJpdAoJcHVzaGludCA2CglpbnQgMAoJc2V0Yml0CglwdXNoaW50IDcKCWludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAxCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTE3CgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGM4ZjI1ZWQxIC8vIG1ldGhvZCAiYm9vbFR1cGxlQWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolTupleAccess.arc56_draft.json b/tests/contracts/artifacts/ABITestBoolTupleAccess.arc56_draft.json index 17193aaf3..3e72cd1e0 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleAccess.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBoolTupleAccess.arc56_draft.json @@ -61,567 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 903, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 903, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 903, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 903, - "pc": [ - 10 - ] - }, - { - "teal": 16, - "source": 903, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 903, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 903, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 903, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 903, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 904, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 904, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 904, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 33, - "source": 904, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 904, - "pc": [ - 55, - 56 - ] - }, - { - "teal": 35, - "source": 904, - "pc": [ - 57 - ] - }, - { - "teal": 36, - "source": 904, - "pc": [ - 58 - ] - }, - { - "teal": 37, - "source": 904, - "pc": [ - 59 - ] - }, - { - "teal": 38, - "source": 904, - "pc": [ - 60 - ] - }, - { - "teal": 39, - "source": 904, - "pc": [ - 61 - ] - }, - { - "teal": 43, - "source": 904, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 46, - "source": 904, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 60, - "source": 906, - "pc": [ - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 61, - "source": 906, - "pc": [ - 71 - ] - }, - { - "teal": 62, - "source": 906, - "pc": [ - 72 - ] - }, - { - "teal": 63, - "source": 906, - "pc": [ - 73 - ] - }, - { - "teal": 64, - "source": 907, - "pc": [ - 74 - ] - }, - { - "teal": 65, - "source": 907, - "pc": [ - 75 - ] - }, - { - "teal": 66, - "source": 907, - "pc": [ - 76 - ] - }, - { - "teal": 67, - "source": 908, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 68, - "source": 908, - "pc": [ - 79 - ] - }, - { - "teal": 69, - "source": 908, - "pc": [ - 80 - ] - }, - { - "teal": 70, - "source": 909, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 71, - "source": 909, - "pc": [ - 83 - ] - }, - { - "teal": 72, - "source": 909, - "pc": [ - 84 - ] - }, - { - "teal": 73, - "source": 910, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 74, - "source": 910, - "pc": [ - 87 - ] - }, - { - "teal": 75, - "source": 910, - "pc": [ - 88 - ] - }, - { - "teal": 76, - "source": 911, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 77, - "source": 911, - "pc": [ - 91 - ] - }, - { - "teal": 78, - "source": 911, - "pc": [ - 92 - ] - }, - { - "teal": 79, - "source": 912, - "pc": [ - 93 - ] - }, - { - "teal": 80, - "source": 912, - "pc": [ - 94 - ] - }, - { - "teal": 81, - "source": 912, - "pc": [ - 95 - ] - }, - { - "teal": 82, - "source": 913, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 83, - "source": 913, - "pc": [ - 98 - ] - }, - { - "teal": 84, - "source": 913, - "pc": [ - 99 - ] - }, - { - "teal": 85, - "source": 914, - "pc": [ - 100 - ] - }, - { - "teal": 86, - "source": 914, - "pc": [ - 101 - ] - }, - { - "teal": 87, - "source": 914, - "pc": [ - 102 - ] - }, - { - "teal": 88, - "source": 905, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 92, - "source": 917, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 93, - "source": 917, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 94, - "source": 917, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 95, - "source": 917, - "pc": [ - 111 - ] - }, - { - "teal": 96, - "source": 917, - "pc": [ - 112 - ] - }, - { - "teal": 99, - "source": 904, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 100, - "source": 904, - "pc": [ - 115 - ] - }, - { - "teal": 103, - "source": 903, - "pc": [ - 116 - ] - }, - { - "teal": 104, - "source": 903, - "pc": [ - 117 - ] - }, - { - "teal": 107, - "source": 903, - "pc": [ - 118, - 119, - 120, - 121, - 122, - 123 - ] - }, - { - "teal": 108, - "source": 903, - "pc": [ - 124, - 125, - 126 - ] - }, - { - "teal": 109, - "source": 903, - "pc": [ - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 112, - "source": 903, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 131 - ] - }, - { - "teal": 115, - "source": 903, - "pc": [ - 132, - 133, - 134, - 135, - 136, - 137 - ] - }, - { - "teal": 116, - "source": 903, - "pc": [ - 138, - 139, - 140 - ] - }, - { - "teal": 117, - "source": 903, - "pc": [ - 141, - 142, - 143, - 144 - ] - }, - { - "teal": 120, - "source": 903, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 145 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 145 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 159 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sVHVwbGVBY2Nlc3MoKWJvb2wKKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlQWNjZXNzKClib29sCgljYWxsc3ViIGJvb2xUdXBsZUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGVBY2Nlc3MoKTogYm9vbGVhbgpib29sVHVwbGVBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MDUKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJZHVwCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDAKCXNldGJpdAoJaW50IDMKCWludCAwCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAwCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MTcKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbFR1cGxlQWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbFR1cGxlQWNjZXNzKClib29sCiphYmlfcm91dGVfYm9vbFR1cGxlQWNjZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlQWNjZXNzKClib29sCgljYWxsc3ViIGJvb2xUdXBsZUFjY2VzcwoJcHVzaGJ5dGVzIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBib29sVHVwbGVBY2Nlc3MoKTogYm9vbGVhbgpib29sVHVwbGVBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwNQoJLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dID0gWwoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMAoJaW50IDAKCWR1cAoJc2V0Yml0CglwdXNoaW50IDEKCWludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJaW50IDAKCXNldGJpdAoJcHVzaGludCAzCglpbnQgMAoJc2V0Yml0CglwdXNoaW50IDQKCWludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJaW50IDAKCXNldGJpdAoJcHVzaGludCA2CglpbnQgMAoJc2V0Yml0CglwdXNoaW50IDcKCWludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAxCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTE3CgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGM4ZjI1ZWQxIC8vIG1ldGhvZCAiYm9vbFR1cGxlQWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sVHVwbGVBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAAEGCDEYFCQLMRkIjQwAWwAAAAAAAAAAAAAATQAAAAAAAAAAAAAAgAQVH3x1iAALgAEAIk8CVFCwI0OKAAGAAIACAAAiSVQjIlSBAiJUgQMiVIEEIlSBBSJUJCJUgQciVCUjVIwAiwA1/zT/JVOMAIkjQ4AEuER7NjYaAI4B//EAgATI8l7RNhoAjgH/mQA=", + "approval": "CiABADEYFIEGCzEZCI0MAGsAAAAAAAAAAAAAAF0AAAAAAAAAAAAAAIAEFR98dYgADYABAIEATwJUULCBAUOKAAGAAIACAACBAElUgQGBAFSBAoEAVIEDgQBUgQSBAFSBBYEAVIEGgQBUgQeBAFSBCIEBVIwAiwA1/zT/gQhTjACJgQFDgAS4RHs2NhoAjgH/8ACABMjyXtE2GgCOAf+JAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal b/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal index 8b5cccc0f..b4970b619 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal +++ b/tests/contracts/artifacts/ABITestBoolTupleUpdate.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 1 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // boolTupleUpdate()(bool,bool,bool,bool,bool,bool,bool,bool,bool) *abi_route_boolTupleUpdate: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute boolTupleUpdate()(bool,bool,bool,bool,bool,bool,bool,bool,bool) callsub boolTupleUpdate @@ -39,7 +40,7 @@ boolTupleUpdate: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:967 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] = [ @@ -53,33 +54,33 @@ boolTupleUpdate: // false, // false, // ] - byte 0x0000 - int 0 + pushbytes 0x0000 + pushint 0 int 1 setbit int 1 - int 0 + pushint 0 setbit - int 2 + pushint 2 int 1 setbit - int 3 + pushint 3 int 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 + pushint 6 int 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit frame_bury 0 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] @@ -88,7 +89,7 @@ boolTupleUpdate: frame_dig 0 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] store 255 // full array load 255 // full array - int 8 + pushint 8 int 1 setbit frame_bury 0 // a: [boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean] @@ -106,7 +107,7 @@ boolTupleUpdate: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -114,7 +115,7 @@ boolTupleUpdate: err *call_NoOp: - method "boolTupleUpdate()(bool,bool,bool,bool,bool,bool,bool,bool,bool)" + pushbytes 0x2a18bb7d // method "boolTupleUpdate()(bool,bool,bool,bool,bool,bool,bool,bool,bool)" txna ApplicationArgs 0 match *abi_route_boolTupleUpdate diff --git a/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json b/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json index 567c591c8..e82b49198 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json +++ b/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9ib29sVHVwbGVVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZVVwZGF0ZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlVXBkYXRlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTY3CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NzkKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCiphYmlfcm91dGVfYm9vbFR1cGxlVXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZVVwZGF0ZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlVXBkYXRlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NjcKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgIF0KCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDIKCWludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJaW50IDEKCXNldGJpdAoJcHVzaGludCA0CglwdXNoaW50IDAKCXNldGJpdAoJcHVzaGludCA1CglwdXNoaW50IDAKCXNldGJpdAoJcHVzaGludCA2CglpbnQgMQoJc2V0Yml0CglwdXNoaW50IDcKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDgKCXB1c2hpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk3OQoJLy8gYVs4XSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmExOGJiN2QgLy8gbWV0aG9kICJib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc56_draft.json b/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc56_draft.json index 719729e3b..905f3750f 100644 --- a/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBoolTupleUpdate.arc56_draft.json @@ -61,559 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 965, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 965, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 965, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 965, - "pc": [ - 10 - ] - }, - { - "teal": 16, - "source": 965, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 965, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 965, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 965, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 965, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 966, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 966, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 966, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 966, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 966, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 966, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 966, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 966, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 56, - "source": 968, - "pc": [ - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 57, - "source": 968, - "pc": [ - 64 - ] - }, - { - "teal": 58, - "source": 968, - "pc": [ - 65 - ] - }, - { - "teal": 59, - "source": 968, - "pc": [ - 66 - ] - }, - { - "teal": 60, - "source": 969, - "pc": [ - 67 - ] - }, - { - "teal": 61, - "source": 969, - "pc": [ - 68 - ] - }, - { - "teal": 62, - "source": 969, - "pc": [ - 69 - ] - }, - { - "teal": 63, - "source": 970, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 64, - "source": 970, - "pc": [ - 72 - ] - }, - { - "teal": 65, - "source": 970, - "pc": [ - 73 - ] - }, - { - "teal": 66, - "source": 971, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 67, - "source": 971, - "pc": [ - 76 - ] - }, - { - "teal": 68, - "source": 971, - "pc": [ - 77 - ] - }, - { - "teal": 69, - "source": 972, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 70, - "source": 972, - "pc": [ - 80 - ] - }, - { - "teal": 71, - "source": 972, - "pc": [ - 81 - ] - }, - { - "teal": 72, - "source": 973, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 73, - "source": 973, - "pc": [ - 84 - ] - }, - { - "teal": 74, - "source": 973, - "pc": [ - 85 - ] - }, - { - "teal": 75, - "source": 974, - "pc": [ - 86 - ] - }, - { - "teal": 76, - "source": 974, - "pc": [ - 87 - ] - }, - { - "teal": 77, - "source": 974, - "pc": [ - 88 - ] - }, - { - "teal": 78, - "source": 975, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 79, - "source": 975, - "pc": [ - 91 - ] - }, - { - "teal": 80, - "source": 975, - "pc": [ - 92 - ] - }, - { - "teal": 81, - "source": 976, - "pc": [ - 93 - ] - }, - { - "teal": 82, - "source": 976, - "pc": [ - 94 - ] - }, - { - "teal": 83, - "source": 976, - "pc": [ - 95 - ] - }, - { - "teal": 84, - "source": 967, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 88, - "source": 979, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 89, - "source": 979, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 90, - "source": 979, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 91, - "source": 979, - "pc": [ - 104 - ] - }, - { - "teal": 92, - "source": 979, - "pc": [ - 105 - ] - }, - { - "teal": 93, - "source": 979, - "pc": [ - 106 - ] - }, - { - "teal": 94, - "source": 979, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 98, - "source": 980, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 101, - "source": 966, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 102, - "source": 966, - "pc": [ - 113 - ] - }, - { - "teal": 105, - "source": 965, - "pc": [ - 114 - ] - }, - { - "teal": 106, - "source": 965, - "pc": [ - 115 - ] - }, - { - "teal": 109, - "source": 965, - "pc": [ - 116, - 117, - 118, - 119, - 120, - 121 - ] - }, - { - "teal": 110, - "source": 965, - "pc": [ - 122, - 123, - 124 - ] - }, - { - "teal": 111, - "source": 965, - "pc": [ - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 114, - "source": 965, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 129 - ] - }, - { - "teal": 117, - "source": 965, - "pc": [ - 130, - 131, - 132, - 133, - 134, - 135 - ] - }, - { - "teal": 118, - "source": 965, - "pc": [ - 136, - 137, - 138 - ] - }, - { - "teal": 119, - "source": 965, - "pc": [ - 139, - 140, - 141, - 142 - ] - }, - { - "teal": 122, - "source": 965, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 143 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 144 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 158 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkKKmFiaV9yb3V0ZV9ib29sVHVwbGVVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZVVwZGF0ZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlVXBkYXRlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTY3CgkvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0gPSBbCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgdHJ1ZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICBdCglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NzkKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCiphYmlfcm91dGVfYm9vbFR1cGxlVXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm9vbFR1cGxlVXBkYXRlKCkoYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wpCgljYWxsc3ViIGJvb2xUdXBsZVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xUdXBsZVVwZGF0ZSgpOiBbYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbiwgYm9vbGVhbl0KYm9vbFR1cGxlVXBkYXRlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NjcKCS8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXSA9IFsKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICB0cnVlLAoJLy8gICAgICAgZmFsc2UsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIHRydWUsCgkvLyAgICAgICBmYWxzZSwKCS8vICAgICAgIGZhbHNlLAoJLy8gICAgIF0KCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDIKCWludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJaW50IDEKCXNldGJpdAoJcHVzaGludCA0CglwdXNoaW50IDAKCXNldGJpdAoJcHVzaGludCA1CglwdXNoaW50IDAKCXNldGJpdAoJcHVzaGludCA2CglpbnQgMQoJc2V0Yml0CglwdXNoaW50IDcKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDgKCXB1c2hpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk3OQoJLy8gYVs4XSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFtib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuLCBib29sZWFuXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmExOGJiN2QgLy8gbWV0aG9kICJib29sVHVwbGVVcGRhdGUoKShib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCxib29sLGJvb2wsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xUdXBsZVVwZGF0ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQAGCDEYFCQLMRkIjQwAWQAAAAAAAAAAAAAASwAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAAYAAgAIAACMiVCIjVIECIlSBAyJUgQQjVIEFI1QkIlSBByNUJSNUjACLADX/NP8lIlSMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEKhi7fTYaAI4B/5sA", + "approval": "CiABATEYFIEGCzEZCI0MAGoAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAgAAgQCBAVSBAYEAVIECgQFUgQOBAVSBBIEAVIEFgQBUgQaBAVSBB4EAVIEIgQBUjACLADX/NP+BCIEBVIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEKhi7fTYaAI4B/4oA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal index f13c0cad2..8ad0656b8 100644 --- a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,29 +25,29 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // booleanArgAndReturn(bool)bool *abi_route_booleanArgAndReturn: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: bool txna ApplicationArgs 1 dup len - int 1 + pushint 1 == // argument 0 (a) for booleanArgAndReturn must be a bool assert - int 0 + pushint 0 getbit // execute booleanArgAndReturn(bool)bool callsub booleanArgAndReturn - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit concat log - int 1 + pushint 1 return // booleanArgAndReturn(a: boolean): boolean @@ -60,11 +60,11 @@ booleanArgAndReturn: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -72,7 +72,7 @@ booleanArgAndReturn: err *call_NoOp: - method "booleanArgAndReturn(bool)bool" + pushbytes 0xf4d0e52e // method "booleanArgAndReturn(bool)bool" txna ApplicationArgs 0 match *abi_route_booleanArgAndReturn diff --git a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json index 1707bae19..4ae08ddec 100644 --- a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAoqYWJpX3JvdXRlX2Jvb2xlYW5BcmdBbmRSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYm9vbGVhbkFyZ0FuZFJldHVybiBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAoJY2FsbHN1YiBib29sZWFuQXJnQW5kUmV0dXJuCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xlYW5BcmdBbmRSZXR1cm4oYTogYm9vbGVhbik6IGJvb2xlYW4KYm9vbGVhbkFyZ0FuZFJldHVybjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NzMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xlYW5BcmdBbmRSZXR1cm4oYm9vbClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sZWFuQXJnQW5kUmV0dXJuCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbGVhbkFyZ0FuZFJldHVybihib29sKWJvb2wKKmFiaV9yb3V0ZV9ib29sZWFuQXJnQW5kUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGJvb2xlYW5BcmdBbmRSZXR1cm4gbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJcHVzaGludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGJvb2xlYW5BcmdBbmRSZXR1cm4oYm9vbClib29sCgljYWxsc3ViIGJvb2xlYW5BcmdBbmRSZXR1cm4KCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGJvb2xlYW5BcmdBbmRSZXR1cm4oYTogYm9vbGVhbik6IGJvb2xlYW4KYm9vbGVhbkFyZ0FuZFJldHVybjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NzMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjRkMGU1MmUgLy8gbWV0aG9kICJib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbGVhbkFyZ0FuZFJldHVybgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc56_draft.json b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc56_draft.json index 5f01f69aa..659ddee9b 100644 --- a/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc56_draft.json @@ -66,367 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 871, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 871, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 871, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 871, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 871, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 871, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 871, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 871, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 871, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 872, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 872, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 872, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 872, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 872, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 872, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 872, - "errorMessage": "argument 0 (a) for booleanArgAndReturn must be a bool", - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 872, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 872, - "pc": [ - 56 - ] - }, - { - "teal": 43, - "source": 872, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 44, - "source": 872, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 45, - "source": 872, - "pc": [ - 63 - ] - }, - { - "teal": 46, - "source": 872, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 47, - "source": 872, - "pc": [ - 66 - ] - }, - { - "teal": 48, - "source": 872, - "pc": [ - 67 - ] - }, - { - "teal": 49, - "source": 872, - "pc": [ - 68 - ] - }, - { - "teal": 50, - "source": 872, - "pc": [ - 69 - ] - }, - { - "teal": 51, - "source": 872, - "pc": [ - 70 - ] - }, - { - "teal": 55, - "source": 872, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 59, - "source": 873, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 60, - "source": 872, - "pc": [ - 76 - ] - }, - { - "teal": 63, - "source": 871, - "pc": [ - 77 - ] - }, - { - "teal": 64, - "source": 871, - "pc": [ - 78 - ] - }, - { - "teal": 67, - "source": 871, - "pc": [ - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 68, - "source": 871, - "pc": [ - 85, - 86, - 87 - ] - }, - { - "teal": 69, - "source": 871, - "pc": [ - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 72, - "source": 871, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 92 - ] - }, - { - "teal": 75, - "source": 871, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 76, - "source": 871, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 77, - "source": 871, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 80, - "source": 871, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 106 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for booleanArgAndReturn must be a bool" + }, + { + "pc": [ + 93 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 107 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAoqYWJpX3JvdXRlX2Jvb2xlYW5BcmdBbmRSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYm9vbGVhbkFyZ0FuZFJldHVybiBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbAoJY2FsbHN1YiBib29sZWFuQXJnQW5kUmV0dXJuCglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJvb2xlYW5BcmdBbmRSZXR1cm4oYTogYm9vbGVhbik6IGJvb2xlYW4KYm9vbGVhbkFyZ0FuZFJldHVybjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NzMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJvb2xlYW5BcmdBbmRSZXR1cm4oYm9vbClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ib29sZWFuQXJnQW5kUmV0dXJuCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbGVhbkFyZ0FuZFJldHVybihib29sKWJvb2wKKmFiaV9yb3V0ZV9ib29sZWFuQXJnQW5kUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGJvb2xlYW5BcmdBbmRSZXR1cm4gbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJcHVzaGludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGJvb2xlYW5BcmdBbmRSZXR1cm4oYm9vbClib29sCgljYWxsc3ViIGJvb2xlYW5BcmdBbmRSZXR1cm4KCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGJvb2xlYW5BcmdBbmRSZXR1cm4oYTogYm9vbGVhbik6IGJvb2xlYW4KYm9vbGVhbkFyZ0FuZFJldHVybjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NzMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjRkMGU1MmUgLy8gbWV0aG9kICJib29sZWFuQXJnQW5kUmV0dXJuKGJvb2wpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbGVhbkFyZ0FuZFJldHVybgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQAxGBSBBgsxGQiNDAA1AAAAAAAAAAAAAAAnAAAAAAAAAAAAAACABBUffHU2GgFJFSISRCNTiAALgAEAI08CVFCwIkOKAQGL/4kiQ4AEuER7NjYaAI4B//EAgAT00OUuNhoAjgH/vwA=", + "approval": "CjEYFIEGCzEZCI0MADoAAAAAAAAAAAAAACwAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQESRIEAU4gADYABAIEATwJUULCBAUOKAQGL/4mBAUOABLhEezY2GgCOAf/wAIAE9NDlLjYaAI4B/7oA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal b/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal index 90468d980..5be746ac6 100644 --- a/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal +++ b/tests/contracts/artifacts/ABITestBooleanLastInObj.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // booleanLastInObj()(uint64,bool) *abi_route_booleanLastInObj: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute booleanLastInObj()(uint64,bool) callsub booleanLastInObj concat log - int 1 + pushint 1 return // booleanLastInObj(): { n: uint64; b: boolean } @@ -43,20 +43,20 @@ booleanLastInObj: // n: 1, // b: false, // }; - byte 0x0000000000000001 - byte 0x00 - int 0 - dup + pushbytes 0x0000000000000001 + pushbytes 0x00 + pushint 0 + pushint 0 setbit concat retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -64,7 +64,7 @@ booleanLastInObj: err *call_NoOp: - method "booleanLastInObj()(uint64,bool)" + pushbytes 0x66c890ca // method "booleanLastInObj()(uint64,bool)" txna ApplicationArgs 0 match *abi_route_booleanLastInObj diff --git a/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json b/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json index 273e70885..732c09876 100644 --- a/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json +++ b/tests/contracts/artifacts/ABITestBooleanLastInObj.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCiphYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iajoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCgljYWxsc3ViIGJvb2xlYW5MYXN0SW5PYmoKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sZWFuTGFzdEluT2JqKCk6IHsgbjogdWludDY0OyBiOiBib29sZWFuIH0KYm9vbGVhbkxhc3RJbk9iajoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjY1CgkvLyByZXR1cm4gewoJLy8gICAgICAgbjogMSwKCS8vICAgICAgIGI6IGZhbHNlLAoJLy8gICAgIH07CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJYnl0ZSAweDAwCglpbnQgMAoJZHVwCglzZXRiaXQKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbGVhbkxhc3RJbk9iaigpKHVpbnQ2NCxib29sKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iagoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbGVhbkxhc3RJbk9iaigpKHVpbnQ2NCxib29sKQoqYWJpX3JvdXRlX2Jvb2xlYW5MYXN0SW5PYmo6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCgljYWxsc3ViIGJvb2xlYW5MYXN0SW5PYmoKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYm9vbGVhbkxhc3RJbk9iaigpOiB7IG46IHVpbnQ2NDsgYjogYm9vbGVhbiB9CmJvb2xlYW5MYXN0SW5PYmo6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2NQoJLy8gcmV0dXJuIHsKCS8vICAgICAgIG46IDEsCgkvLyAgICAgICBiOiBmYWxzZSwKCS8vICAgICB9OwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJcHVzaGludCAwCglzZXRiaXQKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2NmM4OTBjYSAvLyBtZXRob2QgImJvb2xlYW5MYXN0SW5PYmooKSh1aW50NjQsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xlYW5MYXN0SW5PYmoKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBooleanLastInObj.arc56_draft.json b/tests/contracts/artifacts/ABITestBooleanLastInObj.arc56_draft.json index 83094a41d..4f97aac65 100644 --- a/tests/contracts/artifacts/ABITestBooleanLastInObj.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBooleanLastInObj.arc56_draft.json @@ -73,322 +73,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1263, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1263, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1263, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1263, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1263, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1263, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1263, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1263, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1263, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1264, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1264, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1264, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1264, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1264, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1264, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1264, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 46, - "source": 1266, - "pc": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 47, - "source": 1267, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 1267, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 49, - "source": 1267, - "pc": [ - 71 - ] - }, - { - "teal": 50, - "source": 1267, - "pc": [ - 72 - ] - }, - { - "teal": 51, - "source": 1265, - "pc": [ - 73 - ] - }, - { - "teal": 52, - "source": 1264, - "pc": [ - 74 - ] - }, - { - "teal": 55, - "source": 1263, - "pc": [ - 75 - ] - }, - { - "teal": 56, - "source": 1263, - "pc": [ - 76 - ] - }, - { - "teal": 59, - "source": 1263, - "pc": [ - 77, - 78, - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 60, - "source": 1263, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 61, - "source": 1263, - "pc": [ - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 64, - "source": 1263, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 90 - ] - }, - { - "teal": 67, - "source": 1263, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 68, - "source": 1263, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 69, - "source": 1263, - "pc": [ - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 72, - "source": 1263, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 104 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 90 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 104 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCiphYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iajoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCgljYWxsc3ViIGJvb2xlYW5MYXN0SW5PYmoKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib29sZWFuTGFzdEluT2JqKCk6IHsgbjogdWludDY0OyBiOiBib29sZWFuIH0KYm9vbGVhbkxhc3RJbk9iajoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjY1CgkvLyByZXR1cm4gewoJLy8gICAgICAgbjogMSwKCS8vICAgICAgIGI6IGZhbHNlLAoJLy8gICAgIH07CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJYnl0ZSAweDAwCglpbnQgMAoJZHVwCglzZXRiaXQKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYm9vbGVhbkxhc3RJbk9iaigpKHVpbnQ2NCxib29sKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYm9vbGVhbkxhc3RJbk9iagoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYm9vbGVhbkxhc3RJbk9iaigpKHVpbnQ2NCxib29sKQoqYWJpX3JvdXRlX2Jvb2xlYW5MYXN0SW5PYmo6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib29sZWFuTGFzdEluT2JqKCkodWludDY0LGJvb2wpCgljYWxsc3ViIGJvb2xlYW5MYXN0SW5PYmoKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYm9vbGVhbkxhc3RJbk9iaigpOiB7IG46IHVpbnQ2NDsgYjogYm9vbGVhbiB9CmJvb2xlYW5MYXN0SW5PYmo6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2NQoJLy8gcmV0dXJuIHsKCS8vICAgICAgIG46IDEsCgkvLyAgICAgICBiOiBmYWxzZSwKCS8vICAgICB9OwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJcHVzaGludCAwCglzZXRiaXQKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2NmM4OTBjYSAvLyBtZXRob2QgImJvb2xlYW5MYXN0SW5PYmooKSh1aW50NjQsYm9vbCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Jvb2xlYW5MYXN0SW5PYmoKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGACAAAAAAAAAABgAEAgQBJVFCJIkOABLhEezY2GgCOAf/xAIAEZsiQyjYaAI4B/8AA", + "approval": "CjEYFIEGCzEZCI0MADcAAAAAAAAAAAAAACkAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgAgAAAAAAAAAAYABAIEAgQBUUImBAUOABLhEezY2GgCOAf/wAIAEZsiQyjYaAI4B/70A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBytesCasting.approval.teal b/tests/contracts/artifacts/ABITestBytesCasting.approval.teal index 40e35a03d..17a547fd4 100644 --- a/tests/contracts/artifacts/ABITestBytesCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestBytesCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // bytesCasting(byte[])byte[2] *abi_route_bytesCasting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: byte[] txna ApplicationArgs 1 @@ -35,7 +35,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM callsub bytesCasting concat log - int 1 + pushint 1 return // bytesCasting(a: bytes): bytes<2> @@ -45,22 +45,22 @@ bytesCasting: // tests/contracts/abi.algo.ts:1201 // return >a; frame_dig -1 // a: bytes - byte 0x0000 + pushbytes 0x0000 concat dup extract 2 0 - byte 0x + pushbytes 0x b== assert extract 0 2 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -68,7 +68,7 @@ bytesCasting: err *call_NoOp: - method "bytesCasting(byte[])byte[2]" + pushbytes 0x9789c75b // method "bytesCasting(byte[])byte[2]" txna ApplicationArgs 0 match *abi_route_bytesCasting diff --git a/tests/contracts/artifacts/ABITestBytesCasting.arc32.json b/tests/contracts/artifacts/ABITestBytesCasting.arc32.json index ebbffd7ce..02b87e697 100644 --- a/tests/contracts/artifacts/ABITestBytesCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestBytesCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBieXRlc0Nhc3RpbmcoYnl0ZVtdKWJ5dGVbMl0KKmFiaV9yb3V0ZV9ieXRlc0Nhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXQoJY2FsbHN1YiBieXRlc0Nhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBieXRlc0Nhc3RpbmcoYTogYnl0ZXMpOiBieXRlczwyPgpieXRlc0Nhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwMQoJLy8gcmV0dXJuIDxieXRlczwyPj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzCglieXRlIDB4MDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMiAwCglieXRlIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYnl0ZXNDYXN0aW5nKGJ5dGVbXSlieXRlWzJdCiphYmlfcm91dGVfYnl0ZXNDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXQoJY2FsbHN1YiBieXRlc0Nhc3RpbmcKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYnl0ZXNDYXN0aW5nKGE6IGJ5dGVzKTogYnl0ZXM8Mj4KYnl0ZXNDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMDEKCS8vIHJldHVybiA8Ynl0ZXM8Mj4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlcwoJcHVzaGJ5dGVzIDB4MDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMiAwCglwdXNoYnl0ZXMgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5Nzg5Yzc1YiAvLyBtZXRob2QgImJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBytesCasting.arc56_draft.json b/tests/contracts/artifacts/ABITestBytesCasting.arc56_draft.json index 6b494d48e..e8284813e 100644 --- a/tests/contracts/artifacts/ABITestBytesCasting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBytesCasting.arc56_draft.json @@ -66,358 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1199, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1199, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1199, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1199, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1199, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1199, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1199, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1199, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1199, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1200, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1200, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1200, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 35, - "source": 1200, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 1200, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 1200, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 1200, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 1200, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 1200, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 47, - "source": 1201, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 48, - "source": 1201, - "pc": [ - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 49, - "source": 1201, - "pc": [ - 68 - ] - }, - { - "teal": 50, - "source": 1201, - "pc": [ - 69 - ] - }, - { - "teal": 51, - "source": 1201, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 52, - "source": 1201, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 53, - "source": 1201, - "pc": [ - 75 - ] - }, - { - "teal": 54, - "source": 1201, - "pc": [ - 76 - ] - }, - { - "teal": 55, - "source": 1201, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 56, - "source": 1200, - "pc": [ - 80 - ] - }, - { - "teal": 59, - "source": 1199, - "pc": [ - 81 - ] - }, - { - "teal": 60, - "source": 1199, - "pc": [ - 82 - ] - }, - { - "teal": 63, - "source": 1199, - "pc": [ - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 64, - "source": 1199, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 65, - "source": 1199, - "pc": [ - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 68, - "source": 1199, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 96 - ] - }, - { - "teal": 71, - "source": 1199, - "pc": [ - 97, - 98, - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 72, - "source": 1199, - "pc": [ - 103, - 104, - 105 - ] - }, - { - "teal": 73, - "source": 1199, - "pc": [ - 106, - 107, - 108, - 109 - ] - }, - { - "teal": 76, - "source": 1199, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 110 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 95 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 109 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBieXRlc0Nhc3RpbmcoYnl0ZVtdKWJ5dGVbMl0KKmFiaV9yb3V0ZV9ieXRlc0Nhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXQoJY2FsbHN1YiBieXRlc0Nhc3RpbmcKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBieXRlc0Nhc3RpbmcoYTogYnl0ZXMpOiBieXRlczwyPgpieXRlc0Nhc3Rpbmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwMQoJLy8gcmV0dXJuIDxieXRlczwyPj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IGJ5dGVzCglieXRlIDB4MDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMiAwCglieXRlIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYnl0ZXNDYXN0aW5nKGJ5dGVbXSlieXRlWzJdCiphYmlfcm91dGVfYnl0ZXNDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXQoJY2FsbHN1YiBieXRlc0Nhc3RpbmcKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYnl0ZXNDYXN0aW5nKGE6IGJ5dGVzKTogYnl0ZXM8Mj4KYnl0ZXNDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMDEKCS8vIHJldHVybiA8Ynl0ZXM8Mj4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlcwoJcHVzaGJ5dGVzIDB4MDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMiAwCglwdXNoYnl0ZXMgMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgMgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5Nzg5Yzc1YiAvLyBtZXRob2QgImJ5dGVzQ2FzdGluZyhieXRlW10pYnl0ZVsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADoAAAAAAAAAAAAAACwAAAAAAAAAAAAAAIAEFR98dTYaAVcCAIgABFCwIkOKAQGL/4ACAABQSVcCAIAAqERXAAKJIkOABLhEezY2GgCOAf/xAIAEl4nHWzYaAI4B/7oA", + "approval": "CjEYFIEGCzEZCI0MADwAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIAEFR98dTYaAVcCAIgABVCwgQFDigEBi/+AAgAAUElXAgCAAKhEVwACiYEBQ4AEuER7NjYaAI4B//AAgASXicdbNhoAjgH/uAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestBytesReturn.approval.teal b/tests/contracts/artifacts/ABITestBytesReturn.approval.teal index 776db437a..5d17f34de 100644 --- a/tests/contracts/artifacts/ABITestBytesReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestBytesReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // bytesReturn()byte[] *abi_route_bytesReturn: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute bytesReturn()byte[] callsub bytesReturn @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // bytesReturn(): bytes @@ -46,15 +46,15 @@ bytesReturn: // tests/contracts/abi.algo.ts:1126 // return 'foo'; - byte 0x666f6f // "foo" + pushbytes 0x666f6f // "foo" retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -62,7 +62,7 @@ bytesReturn: err *call_NoOp: - method "bytesReturn()byte[]" + pushbytes 0x208bcf97 // method "bytesReturn()byte[]" txna ApplicationArgs 0 match *abi_route_bytesReturn diff --git a/tests/contracts/artifacts/ABITestBytesReturn.arc32.json b/tests/contracts/artifacts/ABITestBytesReturn.arc32.json index b03cceff1..0a3c13ef8 100644 --- a/tests/contracts/artifacts/ABITestBytesReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestBytesReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBieXRlc1JldHVybigpYnl0ZVtdCiphYmlfcm91dGVfYnl0ZXNSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnl0ZXNSZXR1cm4oKWJ5dGVbXQoJY2FsbHN1YiBieXRlc1JldHVybgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBieXRlc1JldHVybigpOiBieXRlcwpieXRlc1JldHVybjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTI2CgkvLyByZXR1cm4gJ2Zvbyc7CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJieXRlc1JldHVybigpYnl0ZVtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ieXRlc1JldHVybgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYnl0ZXNSZXR1cm4oKWJ5dGVbXQoqYWJpX3JvdXRlX2J5dGVzUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnl0ZXNSZXR1cm4oKWJ5dGVbXQoJY2FsbHN1YiBieXRlc1JldHVybgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYnl0ZXNSZXR1cm4oKTogYnl0ZXMKYnl0ZXNSZXR1cm46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEyNgoJLy8gcmV0dXJuICdmb28nOwoJcHVzaGJ5dGVzIDB4NjY2ZjZmIC8vICJmb28iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDIwOGJjZjk3IC8vIG1ldGhvZCAiYnl0ZXNSZXR1cm4oKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNSZXR1cm4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestBytesReturn.arc56_draft.json b/tests/contracts/artifacts/ABITestBytesReturn.arc56_draft.json index ba7b98e84..e7aedb190 100644 --- a/tests/contracts/artifacts/ABITestBytesReturn.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestBytesReturn.arc56_draft.json @@ -61,323 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1124, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1124, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1124, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1124, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1124, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1124, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1124, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1124, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1124, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1125, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1125, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1125, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1125, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1125, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1125, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 1125, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 1125, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 1125, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 1125, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 1125, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 1125, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1125, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 49, - "source": 1126, - "pc": [ - 64, - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 50, - "source": 1125, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 1124, - "pc": [ - 70 - ] - }, - { - "teal": 54, - "source": 1124, - "pc": [ - 71 - ] - }, - { - "teal": 57, - "source": 1124, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 58, - "source": 1124, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 59, - "source": 1124, - "pc": [ - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 62, - "source": 1124, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 85 - ] - }, - { - "teal": 65, - "source": 1124, - "pc": [ - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 66, - "source": 1124, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 67, - "source": 1124, - "pc": [ - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 70, - "source": 1124, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 99 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 84 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 98 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBieXRlc1JldHVybigpYnl0ZVtdCiphYmlfcm91dGVfYnl0ZXNSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnl0ZXNSZXR1cm4oKWJ5dGVbXQoJY2FsbHN1YiBieXRlc1JldHVybgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBieXRlc1JldHVybigpOiBieXRlcwpieXRlc1JldHVybjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTI2CgkvLyByZXR1cm4gJ2Zvbyc7CglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJieXRlc1JldHVybigpYnl0ZVtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ieXRlc1JldHVybgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYnl0ZXNSZXR1cm4oKWJ5dGVbXQoqYWJpX3JvdXRlX2J5dGVzUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnl0ZXNSZXR1cm4oKWJ5dGVbXQoJY2FsbHN1YiBieXRlc1JldHVybgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gYnl0ZXNSZXR1cm4oKTogYnl0ZXMKYnl0ZXNSZXR1cm46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEyNgoJLy8gcmV0dXJuICdmb28nOwoJcHVzaGJ5dGVzIDB4NjY2ZjZmIC8vICJmb28iCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDIwOGJjZjk3IC8vIG1ldGhvZCAiYnl0ZXNSZXR1cm4oKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYnl0ZXNSZXR1cm4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYADZm9viSJDgAS4RHs2NhoAjgH/8QCABCCLz5c2GgCOAf/FAA==", + "approval": "CjEYFIEGCzEZCI0MADEAAAAAAAAAAAAAACMAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAA2Zvb4mBAUOABLhEezY2GgCOAf/wAIAEIIvPlzYaAI4B/8MA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal b/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal index a7044110a..fb2f5ce47 100644 --- a/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal +++ b/tests/contracts/artifacts/ABITestCastBytesFunction.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // castBytesFunction()uint8[3] *abi_route_castBytesFunction: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute castBytesFunction()uint8[3] callsub castBytesFunction concat log - int 1 + pushint 1 return // castBytesFunction(): StaticArray, 3> @@ -40,15 +40,15 @@ castBytesFunction: // tests/contracts/abi.algo.ts:1047 // return castBytes, 3>>(hex('0x010203')); - byte 0x010203 + pushbytes 0x010203 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -56,7 +56,7 @@ castBytesFunction: err *call_NoOp: - method "castBytesFunction()uint8[3]" + pushbytes 0x3d3617fd // method "castBytesFunction()uint8[3]" txna ApplicationArgs 0 match *abi_route_castBytesFunction diff --git a/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json b/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json index f3b7d3b3d..f3fedfc12 100644 --- a/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json +++ b/tests/contracts/artifacts/ABITestCastBytesFunction.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KKmFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KCWNhbGxzdWIgY2FzdEJ5dGVzRnVuY3Rpb24KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPgpjYXN0Qnl0ZXNGdW5jdGlvbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDQ3CgkvLyByZXR1cm4gY2FzdEJ5dGVzPFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+PihoZXgoJzB4MDEwMjAzJykpOwoJYnl0ZSAweDAxMDIwMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY2FzdEJ5dGVzRnVuY3Rpb24oKXVpbnQ4WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY2FzdEJ5dGVzRnVuY3Rpb24oKXVpbnQ4WzNdCiphYmlfcm91dGVfY2FzdEJ5dGVzRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KCWNhbGxzdWIgY2FzdEJ5dGVzRnVuY3Rpb24KCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2FzdEJ5dGVzRnVuY3Rpb24oKTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KY2FzdEJ5dGVzRnVuY3Rpb246Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0NwoJLy8gcmV0dXJuIGNhc3RCeXRlczxTdGF0aWNBcnJheTx1aW50PDg+LCAzPj4oaGV4KCcweDAxMDIwMycpKTsKCXB1c2hieXRlcyAweDAxMDIwMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgzZDM2MTdmZCAvLyBtZXRob2QgImNhc3RCeXRlc0Z1bmN0aW9uKCl1aW50OFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2FzdEJ5dGVzRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestCastBytesFunction.arc56_draft.json b/tests/contracts/artifacts/ABITestCastBytesFunction.arc56_draft.json index d3f88ad1b..2284f6ce9 100644 --- a/tests/contracts/artifacts/ABITestCastBytesFunction.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestCastBytesFunction.arc56_draft.json @@ -61,279 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1045, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1045, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1045, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1045, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1045, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1045, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1045, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1045, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1045, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1046, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1046, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1046, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1046, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1046, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1046, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1046, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 43, - "source": 1047, - "pc": [ - 56, - 57, - 58, - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1046, - "pc": [ - 61 - ] - }, - { - "teal": 47, - "source": 1045, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 1045, - "pc": [ - 63 - ] - }, - { - "teal": 51, - "source": 1045, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 52, - "source": 1045, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 53, - "source": 1045, - "pc": [ - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 56, - "source": 1045, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 77 - ] - }, - { - "teal": 59, - "source": 1045, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 60, - "source": 1045, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 61, - "source": 1045, - "pc": [ - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 64, - "source": 1045, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 91 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 76 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 90 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KKmFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KCWNhbGxzdWIgY2FzdEJ5dGVzRnVuY3Rpb24KCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjYXN0Qnl0ZXNGdW5jdGlvbigpOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPgpjYXN0Qnl0ZXNGdW5jdGlvbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDQ3CgkvLyByZXR1cm4gY2FzdEJ5dGVzPFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+PihoZXgoJzB4MDEwMjAzJykpOwoJYnl0ZSAweDAxMDIwMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY2FzdEJ5dGVzRnVuY3Rpb24oKXVpbnQ4WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jYXN0Qnl0ZXNGdW5jdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY2FzdEJ5dGVzRnVuY3Rpb24oKXVpbnQ4WzNdCiphYmlfcm91dGVfY2FzdEJ5dGVzRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjYXN0Qnl0ZXNGdW5jdGlvbigpdWludDhbM10KCWNhbGxzdWIgY2FzdEJ5dGVzRnVuY3Rpb24KCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2FzdEJ5dGVzRnVuY3Rpb24oKTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KY2FzdEJ5dGVzRnVuY3Rpb246Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0NwoJLy8gcmV0dXJuIGNhc3RCeXRlczxTdGF0aWNBcnJheTx1aW50PDg+LCAzPj4oaGV4KCcweDAxMDIwMycpKTsKCXB1c2hieXRlcyAweDAxMDIwMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgzZDM2MTdmZCAvLyBtZXRob2QgImNhc3RCeXRlc0Z1bmN0aW9uKCl1aW50OFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2FzdEJ5dGVzRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MACcAAAAAAAAAAAAAABkAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAwECA4kiQ4AEuER7NjYaAI4B//EAgAQ9Nhf9NhoAjgH/zQA=", + "approval": "CjEYFIEGCzEZCI0MACkAAAAAAAAAAAAAABsAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgAMBAgOJgQFDgAS4RHs2NhoAjgH/8ACABD02F/02GgCOAf/LAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal index 4d817456b..df8aa1616 100644 --- a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -30,7 +30,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // execute chainedPropertyAfterTuple(uint64)void callsub chainedPropertyAfterTuple - int 1 + pushint 1 return // chainedPropertyAfterTuple(asa: AssetID): void @@ -38,7 +38,7 @@ chainedPropertyAfterTuple: proto 1 0 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1173 // o: T7 = { foo: this.app.address } @@ -58,11 +58,11 @@ chainedPropertyAfterTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -70,7 +70,7 @@ chainedPropertyAfterTuple: err *call_NoOp: - method "chainedPropertyAfterTuple(uint64)void" + pushbytes 0x2ffebf47 // method "chainedPropertyAfterTuple(uint64)void" txna ApplicationArgs 0 match *abi_route_chainedPropertyAfterTuple diff --git a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json index 5c27d8df3..7f07664d5 100644 --- a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZToKCS8vIGFzYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGUKCWludCAxCglyZXR1cm4KCi8vIGNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGUoYXNhOiBBc3NldElEKTogdm9pZApjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE3MwoJLy8gbzogVDcgPSB7IGZvbzogdGhpcy5hcHAuYWRkcmVzcyB9CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIG86IFQ3CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNzUKCS8vIGFzc2VydCghby5mb28uaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIDAgLy8gbzogVDcKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIGFzYTogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglzd2FwCglwb3AKCSEKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZSh1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZSh1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGU6CgkvLyBhc2E6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZSh1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZShhc2E6IEFzc2V0SUQpOiB2b2lkCmNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGU6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNzMKCS8vIG86IFQ3ID0geyBmb286IHRoaXMuYXBwLmFkZHJlc3MgfQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBvOiBUNwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTc1CgkvLyBhc3NlcnQoIW8uZm9vLmlzT3B0ZWRJblRvQXNzZXQoYXNhKSkKCWZyYW1lX2RpZyAwIC8vIG86IFQ3CglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMSAvLyBhc2E6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmZmZWJmNDcgLy8gbWV0aG9kICJjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc56_draft.json index 4f7518031..1d7a56405 100644 --- a/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc56_draft.json @@ -66,343 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1171, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1171, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1171, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1171, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1171, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1171, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1171, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1171, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1171, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1172, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 1172, - "pc": [ - 43 - ] - }, - { - "teal": 32, - "source": 1172, - "pc": [ - 44, - 45, - 46 - ] - }, - { - "teal": 33, - "source": 1172, - "pc": [ - 47 - ] - }, - { - "teal": 34, - "source": 1172, - "pc": [ - 48 - ] - }, - { - "teal": 38, - "source": 1172, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 41, - "source": 1172, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 45, - "source": 1173, - "pc": [ - 54, - 55 - ] - }, - { - "teal": 46, - "source": 1173, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 50, - "source": 1175, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 51, - "source": 1175, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 52, - "source": 1175, - "pc": [ - 63, - 64 - ] - }, - { - "teal": 53, - "source": 1175, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 54, - "source": 1175, - "pc": [ - 67 - ] - }, - { - "teal": 55, - "source": 1175, - "pc": [ - 68 - ] - }, - { - "teal": 56, - "source": 1175, - "pc": [ - 69 - ] - }, - { - "teal": 57, - "source": 1175, - "pc": [ - 70 - ] - }, - { - "teal": 58, - "source": 1172, - "pc": [ - 71 - ] - }, - { - "teal": 61, - "source": 1171, - "pc": [ - 72 - ] - }, - { - "teal": 62, - "source": 1171, - "pc": [ - 73 - ] - }, - { - "teal": 65, - "source": 1171, - "pc": [ - 74, - 75, - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 66, - "source": 1171, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 67, - "source": 1171, - "pc": [ - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 70, - "source": 1171, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 87 - ] - }, - { - "teal": 73, - "source": 1171, - "pc": [ - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 74, - "source": 1171, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 75, - "source": 1171, - "pc": [ - 97, - 98, - 99, - 100 - ] - }, - { - "teal": 78, - "source": 1171, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 101 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 86 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 100 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZToKCS8vIGFzYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKHVpbnQ2NCl2b2lkCgljYWxsc3ViIGNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGUKCWludCAxCglyZXR1cm4KCi8vIGNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGUoYXNhOiBBc3NldElEKTogdm9pZApjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlOgoJcHJvdG8gMSAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE3MwoJLy8gbzogVDcgPSB7IGZvbzogdGhpcy5hcHAuYWRkcmVzcyB9CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIG86IFQ3CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNzUKCS8vIGFzc2VydCghby5mb28uaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIDAgLy8gbzogVDcKCWV4dHJhY3QgMCAzMgoJZnJhbWVfZGlnIC0xIC8vIGFzYTogQXNzZXRJRAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglzd2FwCglwb3AKCSEKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZSh1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZSh1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2NoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGU6CgkvLyBhc2E6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZSh1aW50NjQpdm9pZAoJY2FsbHN1YiBjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2hhaW5lZFByb3BlcnR5QWZ0ZXJUdXBsZShhc2E6IEFzc2V0SUQpOiB2b2lkCmNoYWluZWRQcm9wZXJ0eUFmdGVyVHVwbGU6Cglwcm90byAxIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNzMKCS8vIG86IFQ3ID0geyBmb286IHRoaXMuYXBwLmFkZHJlc3MgfQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBvOiBUNwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTc1CgkvLyBhc3NlcnQoIW8uZm9vLmlzT3B0ZWRJblRvQXNzZXQoYXNhKSkKCWZyYW1lX2RpZyAwIC8vIG86IFQ3CglleHRyYWN0IDAgMzIKCWZyYW1lX2RpZyAtMSAvLyBhc2E6IEFzc2V0SUQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmZmZWJmNDcgLy8gbWV0aG9kICJjaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlKHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jaGFpbmVkUHJvcGVydHlBZnRlclR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADEAAAAAAAAAAAAAACMAAAAAAAAAAAAAADYaAReIAAIiQ4oBAIAAMgqMAIsAVwAgi/9wAExIFESJIkOABLhEezY2GgCOAf/xAIAEL/6/RzYaAI4B/8MA", + "approval": "CjEYFIEGCzEZCI0MADMAAAAAAAAAAAAAACUAAAAAAAAAAAAAADYaAReIAAOBAUOKAQCAADIKjACLAFcAIIv/cABMSBREiYEBQ4AEuER7NjYaAI4B//AAgAQv/r9HNhoAjgH/wQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestCustomTypes.approval.teal b/tests/contracts/artifacts/ABITestCustomTypes.approval.teal index f90d5b687..3f210e191 100644 --- a/tests/contracts/artifacts/ABITestCustomTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestCustomTypes.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x000c48656c6c6f20576f726c6421 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // customTypes()string *abi_route_customTypes: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute customTypes()string callsub customTypes @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // customTypes(): string @@ -54,10 +55,10 @@ customTypes: // } byte 0x // initial head byte 0x // initial tail - byte 0x0004 // initial head offset - byte 0x0001 + pushbytes 0x0004 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000348693f + pushbytes 0x000348693f callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -67,7 +68,7 @@ customTypes: // aa.bar = 'Hello World!' frame_dig 0 // aa: CustomType store 255 // full array - int 2 + pushint 2 dup store 251 // element head offset load 255 // full array @@ -80,13 +81,13 @@ customTypes: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x000c48656c6c6f20576f726c6421 @@ -110,7 +111,7 @@ customTypes: // return aa.bar; frame_dig 0 // aa: CustomType store 255 // full array - int 2 + pushint 2 load 255 // full array load 255 // full array uncover 2 @@ -119,9 +120,9 @@ customTypes: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -131,11 +132,11 @@ customTypes: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -143,7 +144,7 @@ customTypes: err *call_NoOp: - method "customTypes()string" + pushbytes 0xa46386c7 // method "customTypes()string" txna ApplicationArgs 0 match *abi_route_customTypes @@ -192,7 +193,7 @@ customTypes: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -200,7 +201,7 @@ customTypes: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestCustomTypes.arc32.json b/tests/contracts/artifacts/ABITestCustomTypes.arc32.json index 8b6b5ea45..bab22fc64 100644 --- a/tests/contracts/artifacts/ABITestCustomTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestCustomTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21UeXBlcygpc3RyaW5nCiphYmlfcm91dGVfY3VzdG9tVHlwZXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY3VzdG9tVHlwZXMoKXN0cmluZwoJY2FsbHN1YiBjdXN0b21UeXBlcwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21UeXBlcygpOiBzdHJpbmcKY3VzdG9tVHlwZXM6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzIKCS8vIGFhOiBDdXN0b21UeXBlID0gewoJLy8gICAgICAgZm9vOiAxLAoJLy8gICAgICAgYmFyOiAnSGk/JywKCS8vICAgICB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzQ4NjkzZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGFhOiBDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYzNwoJLy8gYWEuYmFyID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGFhOiBDdXN0b21UeXBlCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYWE6IEN1c3RvbVR5cGUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjM5CgkvLyByZXR1cm4gYWEuYmFyOwoJZnJhbWVfZGlnIDAgLy8gYWE6IEN1c3RvbVR5cGUKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21UeXBlcygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21UeXBlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3VzdG9tVHlwZXMoKXN0cmluZwoqYWJpX3JvdXRlX2N1c3RvbVR5cGVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY3VzdG9tVHlwZXMoKXN0cmluZwoJY2FsbHN1YiBjdXN0b21UeXBlcwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY3VzdG9tVHlwZXMoKTogc3RyaW5nCmN1c3RvbVR5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjMyCgkvLyBhYTogQ3VzdG9tVHlwZSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hpPycsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhYTogQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzcKCS8vIGFhLmJhciA9ICdIZWxsbyBXb3JsZCEnCglmcmFtZV9kaWcgMCAvLyBhYTogQ3VzdG9tVHlwZQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhYTogQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzkKCS8vIHJldHVybiBhYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhYTogQ3VzdG9tVHlwZQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YTQ2Mzg2YzcgLy8gbWV0aG9kICJjdXN0b21UeXBlcygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21UeXBlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglwdXNoaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglwdXNoaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestCustomTypes.arc56_draft.json b/tests/contracts/artifacts/ABITestCustomTypes.arc56_draft.json index 6f3247551..12f1af7ef 100644 --- a/tests/contracts/artifacts/ABITestCustomTypes.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestCustomTypes.arc56_draft.json @@ -61,1232 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 630, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 630, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 630, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 630, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 16, - "source": 630, - "pc": [ - 14 - ] - }, - { - "teal": 17, - "source": 630, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 18, - "source": 630, - "pc": [ - 17 - ] - }, - { - "teal": 19, - "source": 630, - "pc": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ] - }, - { - "teal": 23, - "source": 630, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 44 - ] - }, - { - "teal": 28, - "source": 631, - "pc": [ - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 31, - "source": 631, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 32, - "source": 631, - "pc": [ - 54 - ] - }, - { - "teal": 33, - "source": 631, - "pc": [ - 55 - ] - }, - { - "teal": 34, - "source": 631, - "pc": [ - 56 - ] - }, - { - "teal": 35, - "source": 631, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 36, - "source": 631, - "pc": [ - 60 - ] - }, - { - "teal": 37, - "source": 631, - "pc": [ - 61 - ] - }, - { - "teal": 38, - "source": 631, - "pc": [ - 62 - ] - }, - { - "teal": 39, - "source": 631, - "pc": [ - 63 - ] - }, - { - "teal": 40, - "source": 631, - "pc": [ - 64 - ] - }, - { - "teal": 41, - "source": 631, - "pc": [ - 65 - ] - }, - { - "teal": 45, - "source": 631, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 631, - "pc": [ - 69 - ] - }, - { - "teal": 55, - "source": 632, - "pc": [ - 70 - ] - }, - { - "teal": 56, - "source": 632, - "pc": [ - 71 - ] - }, - { - "teal": 57, - "source": 632, - "pc": [ - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 58, - "source": 633, - "pc": [ - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 59, - "source": 633, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 60, - "source": 634, - "pc": [ - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 61, - "source": 634, - "pc": [ - 90, - 91, - 92 - ] - }, - { - "teal": 62, - "source": 632, - "pc": [ - 93 - ] - }, - { - "teal": 63, - "source": 632, - "pc": [ - 94 - ] - }, - { - "teal": 64, - "source": 632, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 68, - "source": 637, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 69, - "source": 637, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 70, - "source": 637, - "pc": [ - 101 - ] - }, - { - "teal": 71, - "source": 637, - "pc": [ - 102 - ] - }, - { - "teal": 72, - "source": 637, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 73, - "source": 637, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 74, - "source": 637, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 75, - "source": 637, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 76, - "source": 637, - "pc": [ - 111 - ] - }, - { - "teal": 77, - "source": 637, - "pc": [ - 112 - ] - }, - { - "teal": 78, - "source": 637, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 79, - "source": 637, - "pc": [ - 115 - ] - }, - { - "teal": 80, - "source": 637, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 81, - "source": 637, - "pc": [ - 118 - ] - }, - { - "teal": 82, - "source": 637, - "pc": [ - 119 - ] - }, - { - "teal": 83, - "source": 637, - "pc": [ - 120 - ] - }, - { - "teal": 84, - "source": 637, - "pc": [ - 121 - ] - }, - { - "teal": 85, - "source": 637, - "pc": [ - 122 - ] - }, - { - "teal": 86, - "source": 637, - "pc": [ - 123 - ] - }, - { - "teal": 87, - "source": 637, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 88, - "source": 637, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 89, - "source": 637, - "pc": [ - 128 - ] - }, - { - "teal": 90, - "source": 637, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 91, - "source": 637, - "pc": [ - 131 - ] - }, - { - "teal": 92, - "source": 637, - "pc": [ - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 93, - "source": 637, - "pc": [ - 148 - ] - }, - { - "teal": 94, - "source": 637, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 95, - "source": 637, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 96, - "source": 637, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 97, - "source": 637, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 98, - "source": 637, - "pc": [ - 157 - ] - }, - { - "teal": 99, - "source": 637, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 100, - "source": 637, - "pc": [ - 160 - ] - }, - { - "teal": 101, - "source": 637, - "pc": [ - 161 - ] - }, - { - "teal": 102, - "source": 637, - "pc": [ - 162 - ] - }, - { - "teal": 103, - "source": 637, - "pc": [ - 163 - ] - }, - { - "teal": 104, - "source": 637, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 105, - "source": 637, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 106, - "source": 637, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 107, - "source": 637, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 111, - "source": 639, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 112, - "source": 639, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 113, - "source": 639, - "pc": [ - 177 - ] - }, - { - "teal": 114, - "source": 639, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 115, - "source": 639, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 116, - "source": 639, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 117, - "source": 639, - "pc": [ - 184 - ] - }, - { - "teal": 118, - "source": 639, - "pc": [ - 185 - ] - }, - { - "teal": 119, - "source": 639, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 120, - "source": 639, - "pc": [ - 188 - ] - }, - { - "teal": 121, - "source": 639, - "pc": [ - 189 - ] - }, - { - "teal": 122, - "source": 639, - "pc": [ - 190 - ] - }, - { - "teal": 123, - "source": 639, - "pc": [ - 191 - ] - }, - { - "teal": 124, - "source": 639, - "pc": [ - 192 - ] - }, - { - "teal": 125, - "source": 639, - "pc": [ - 193 - ] - }, - { - "teal": 126, - "source": 639, - "pc": [ - 194 - ] - }, - { - "teal": 127, - "source": 639, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 130, - "source": 631, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 131, - "source": 631, - "pc": [ - 200 - ] - }, - { - "teal": 134, - "source": 630, - "pc": [ - 201 - ] - }, - { - "teal": 135, - "source": 630, - "pc": [ - 202 - ] - }, - { - "teal": 138, - "source": 630, - "pc": [ - 203, - 204, - 205, - 206, - 207, - 208 - ] - }, - { - "teal": 139, - "source": 630, - "pc": [ - 209, - 210, - 211 - ] - }, - { - "teal": 140, - "source": 630, - "pc": [ - 212, - 213, - 214, - 215 - ] - }, - { - "teal": 143, - "source": 630, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 216 - ] - }, - { - "teal": 146, - "source": 630, - "pc": [ - 217, - 218, - 219, - 220, - 221, - 222 - ] - }, - { - "teal": 147, - "source": 630, - "pc": [ - 223, - 224, - 225 - ] - }, - { - "teal": 148, - "source": 630, - "pc": [ - 226, - 227, - 228, - 229 - ] - }, - { - "teal": 151, - "source": 630, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 230 - ] - }, - { - "teal": 154, - "source": 630, - "pc": [ - 231, - 232, - 233 - ] - }, - { - "teal": 155, - "source": 630, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 156, - "source": 630, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 157, - "source": 630, - "pc": [ - 238 - ] - }, - { - "teal": 158, - "source": 630, - "pc": [ - 239, - 240 - ] - }, - { - "teal": 159, - "source": 630, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 160, - "source": 630, - "pc": [ - 243 - ] - }, - { - "teal": 163, - "source": 630, - "pc": [ - 244, - 245, - 246 - ] - }, - { - "teal": 164, - "source": 630, - "pc": [ - 247, - 248 - ] - }, - { - "teal": 165, - "source": 630, - "pc": [ - 249, - 250 - ] - }, - { - "teal": 166, - "source": 630, - "pc": [ - 251 - ] - }, - { - "teal": 167, - "source": 630, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 168, - "source": 630, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 169, - "source": 630, - "pc": [ - 256 - ] - }, - { - "teal": 170, - "source": 630, - "pc": [ - 257 - ] - }, - { - "teal": 171, - "source": 630, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 172, - "source": 630, - "pc": [ - 260 - ] - }, - { - "teal": 173, - "source": 630, - "pc": [ - 261 - ] - }, - { - "teal": 174, - "source": 630, - "pc": [ - 262 - ] - }, - { - "teal": 175, - "source": 630, - "pc": [ - 263, - 264, - 265 - ] - }, - { - "teal": 176, - "source": 630, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 177, - "source": 630, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 178, - "source": 630, - "pc": [ - 270 - ] - }, - { - "teal": 179, - "source": 630, - "pc": [ - 271 - ] - }, - { - "teal": 180, - "source": 630, - "pc": [ - 272, - 273 - ] - }, - { - "teal": 181, - "source": 630, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 182, - "source": 630, - "pc": [ - 276, - 277 - ] - }, - { - "teal": 183, - "source": 630, - "pc": [ - 278, - 279 - ] - }, - { - "teal": 184, - "source": 630, - "pc": [ - 280 - ] - }, - { - "teal": 187, - "source": 630, - "pc": [ - 281, - 282 - ] - }, - { - "teal": 188, - "source": 630, - "pc": [ - 283 - ] - }, - { - "teal": 189, - "source": 630, - "pc": [ - 284, - 285 - ] - }, - { - "teal": 190, - "source": 630, - "pc": [ - 286 - ] - }, - { - "teal": 191, - "source": 630, - "pc": [ - 287, - 288, - 289 - ] - }, - { - "teal": 192, - "source": 630, - "pc": [ - 290, - 291 - ] - }, - { - "teal": 193, - "source": 630, - "pc": [ - 292 - ] - }, - { - "teal": 194, - "source": 630, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 195, - "source": 630, - "pc": [ - 295 - ] - }, - { - "teal": 196, - "source": 630, - "pc": [ - 296, - 297 - ] - }, - { - "teal": 197, - "source": 630, - "pc": [ - 298, - 299, - 300 - ] - }, - { - "teal": 200, - "source": 630, - "pc": [ - 301, - 302 - ] - }, - { - "teal": 201, - "source": 630, - "pc": [ - 303, - 304 - ] - }, - { - "teal": 202, - "source": 630, - "pc": [ - 305 - ] - }, - { - "teal": 203, - "source": 630, - "pc": [ - 306 - ] - }, - { - "teal": 204, - "source": 630, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 207, - "source": 630, - "pc": [ - 309 - ] - }, - { - "teal": 208, - "source": 630, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 209, - "source": 630, - "pc": [ - 312 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 54 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 238 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 252 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21UeXBlcygpc3RyaW5nCiphYmlfcm91dGVfY3VzdG9tVHlwZXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY3VzdG9tVHlwZXMoKXN0cmluZwoJY2FsbHN1YiBjdXN0b21UeXBlcwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21UeXBlcygpOiBzdHJpbmcKY3VzdG9tVHlwZXM6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzIKCS8vIGFhOiBDdXN0b21UeXBlID0gewoJLy8gICAgICAgZm9vOiAxLAoJLy8gICAgICAgYmFyOiAnSGk/JywKCS8vICAgICB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzQ4NjkzZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGFhOiBDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYzNwoJLy8gYWEuYmFyID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGFhOiBDdXN0b21UeXBlCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYWE6IEN1c3RvbVR5cGUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjM5CgkvLyByZXR1cm4gYWEuYmFyOwoJZnJhbWVfZGlnIDAgLy8gYWE6IEN1c3RvbVR5cGUKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21UeXBlcygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21UeXBlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3VzdG9tVHlwZXMoKXN0cmluZwoqYWJpX3JvdXRlX2N1c3RvbVR5cGVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY3VzdG9tVHlwZXMoKXN0cmluZwoJY2FsbHN1YiBjdXN0b21UeXBlcwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY3VzdG9tVHlwZXMoKTogc3RyaW5nCmN1c3RvbVR5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjMyCgkvLyBhYTogQ3VzdG9tVHlwZSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hpPycsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhYTogQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzcKCS8vIGFhLmJhciA9ICdIZWxsbyBXb3JsZCEnCglmcmFtZV9kaWcgMCAvLyBhYTogQ3VzdG9tVHlwZQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhYTogQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MzkKCS8vIHJldHVybiBhYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhYTogQ3VzdG9tVHlwZQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YTQ2Mzg2YzcgLy8gbWV0aG9kICJjdXN0b21UeXBlcygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21UeXBlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglwdXNoaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglwdXNoaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIAJgEAMRgUgQYLMRkIjQwArQAAAAAAAAAAAAAAnwAAAAAAAAAAAAAAgAQVH3x1iAAMSRUWVwYCTFBQsCJDigABKCgogAIABIACAAGIAJSABQADSGk/iACXSFCMAIsANf8jSTX7NP80/08CWUk1/kk0/0xZIgsjCDX9NP8kNP5SgA4ADEhlbGxvIFdvcmxkIUk1/DT/NP40/Qg0/xVSUFA1/4gAcDT/jACLADX/IzT/NP9PAllJNP9MWSILIwhYVwIAjACJIkOABLhEezY2GgCOAf/xAIAEpGOGxzYaAI4B/0cAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok0/BU0/QxAAAs0/BU0/SI1+UIACDT9NPwVJDX5CTX6iQ==", + "approval": "CiYCDgAMSGVsbG8gV29ybGQhADEYFIEGCzEZCI0MALkAAAAAAAAAAAAAAKsAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAEgAIAAYgAnIAFAANIaT+IAJ9IUIwAiwA1/4ECSTX7NP80/08CWUk1/kk0/0xZgQELgQIINf00/4EANP5SgA4ADEhlbGxvIFdvcmxkIUk1/DT/NP40/Qg0/xVSUFA1/4gAdDT/jACLADX/gQI0/zT/TwJZSTT/TFmBAQuBAghYVwIAjACJgQFDgAS4RHs2NhoAjgH/8ACABKRjhsc2GgCOAf87AIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JNPwVNP0MQAAMNPwVNP2BATX5QgAJNP00/BWBADX5CTX6iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDisgusting.approval.teal b/tests/contracts/artifacts/ABITestDisgusting.approval.teal index 5226e1370..15db8a698 100644 --- a/tests/contracts/artifacts/ABITestDisgusting.approval.teal +++ b/tests/contracts/artifacts/ABITestDisgusting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // disgusting()uint64 *abi_route_disgusting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute disgusting()uint64 callsub disgusting itob concat log - int 1 + pushint 1 return // disgusting(): uint64 @@ -40,7 +40,7 @@ disgusting: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:304 // a: StaticArray< @@ -66,13 +66,13 @@ disgusting: // ], // ], // ] - byte 0x000b00160000000000000021002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063006f00de000000000000014d01bc000000000000022b000000000000029a0000000000000309000000000000037800000000000003e7 + pushbytes 0x000b00160000000000000021002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063006f00de000000000000014d01bc000000000000022b000000000000029a0000000000000309000000000000037800000000000003e7 frame_bury 0 // a: StaticArray< [StaticArray, uint64, [uint16, uint64], StaticArray, 2>], 2 > // tests/contracts/abi.algo.ts:328 // a[1][3][1] = [8888, 9999] frame_dig 0 // a: StaticArray< [StaticArray, uint64, [uint16, uint64], StaticArray, 2>], 2 > - byte 0x00000000000022b8000000000000270f + pushbytes 0x00000000000022b8000000000000270f replace2 92 frame_bury 0 // a: StaticArray< [StaticArray, uint64, [uint16, uint64], StaticArray, 2>], 2 > @@ -87,11 +87,11 @@ disgusting: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -99,7 +99,7 @@ disgusting: err *call_NoOp: - method "disgusting()uint64" + pushbytes 0x1b6c968e // method "disgusting()uint64" txna ApplicationArgs 0 match *abi_route_disgusting diff --git a/tests/contracts/artifacts/ABITestDisgusting.arc32.json b/tests/contracts/artifacts/ABITestDisgusting.arc32.json index c0bfa79e7..89485dff0 100644 --- a/tests/contracts/artifacts/ABITestDisgusting.arc32.json +++ b/tests/contracts/artifacts/ABITestDisgusting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkaXNndXN0aW5nKCl1aW50NjQKKmFiaV9yb3V0ZV9kaXNndXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGRpc2d1c3RpbmcoKXVpbnQ2NAoJY2FsbHN1YiBkaXNndXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGlzZ3VzdGluZygpOiB1aW50NjQKZGlzZ3VzdGluZzoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMwNAoJLy8gYTogU3RhdGljQXJyYXk8CgkvLyAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sCgkvLyAgICAgICAyCgkvLyAgICAgPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIDMzLAoJLy8gICAgICAgICBbNDQsIDU1XSwKCS8vICAgICAgICAgWwoJLy8gICAgICAgICAgIFs2NiwgNzddLAoJLy8gICAgICAgICAgIFs4OCwgOTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExMSwgMjIyXSwKCS8vICAgICAgICAgMzMzLAoJLy8gICAgICAgICBbNDQ0LCA1NTVdLAoJLy8gICAgICAgICBbCgkvLyAgICAgICAgICAgWzY2NiwgNzc3XSwKCS8vICAgICAgICAgICBbODg4LCA5OTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzMDA2ZjAwZGUwMDAwMDAwMDAwMDAwMTRkMDFiYzAwMDAwMDAwMDAwMDAyMmIwMDAwMDAwMDAwMDAwMjlhMDAwMDAwMDAwMDAwMDMwOTAwMDAwMDAwMDAwMDAzNzgwMDAwMDAwMDAwMDAwM2U3CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMjgKCS8vIGFbMV1bM11bMV0gPSBbODg4OCwgOTk5OV0KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PCAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sICAgICAgIDIgICAgID4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAyMmI4MDAwMDAwMDAwMDAwMjcwZgoJcmVwbGFjZTIgOTIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMyOQoJLy8gcmV0dXJuIGFbMV1bM11bMV1bMF07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CglleHRyYWN0IDkyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImRpc2d1c3RpbmcoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGlzZ3VzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZGlzZ3VzdGluZygpdWludDY0CiphYmlfcm91dGVfZGlzZ3VzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGRpc2d1c3RpbmcoKXVpbnQ2NAoJY2FsbHN1YiBkaXNndXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGRpc2d1c3RpbmcoKTogdWludDY0CmRpc2d1c3Rpbmc6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMwNAoJLy8gYTogU3RhdGljQXJyYXk8CgkvLyAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sCgkvLyAgICAgICAyCgkvLyAgICAgPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIDMzLAoJLy8gICAgICAgICBbNDQsIDU1XSwKCS8vICAgICAgICAgWwoJLy8gICAgICAgICAgIFs2NiwgNzddLAoJLy8gICAgICAgICAgIFs4OCwgOTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExMSwgMjIyXSwKCS8vICAgICAgICAgMzMzLAoJLy8gICAgICAgICBbNDQ0LCA1NTVdLAoJLy8gICAgICAgICBbCgkvLyAgICAgICAgICAgWzY2NiwgNzc3XSwKCS8vICAgICAgICAgICBbODg4LCA5OTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjMDAwMDAwMDAwMDAwMDAzNzAwMDAwMDAwMDAwMDAwNDIwMDAwMDAwMDAwMDAwMDRkMDAwMDAwMDAwMDAwMDA1ODAwMDAwMDAwMDAwMDAwNjMwMDZmMDBkZTAwMDAwMDAwMDAwMDAxNGQwMWJjMDAwMDAwMDAwMDAwMDIyYjAwMDAwMDAwMDAwMDAyOWEwMDAwMDAwMDAwMDAwMzA5MDAwMDAwMDAwMDAwMDM3ODAwMDAwMDAwMDAwMDAzZTcKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMyOAoJLy8gYVsxXVszXVsxXSA9IFs4ODg4LCA5OTk5XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMjJiODAwMDAwMDAwMDAwMDI3MGYKCXJlcGxhY2UyIDkyCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMjkKCS8vIHJldHVybiBhWzFdWzNdWzFdWzBdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoJZXh0cmFjdCA5MiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDFiNmM5NjhlIC8vIG1ldGhvZCAiZGlzZ3VzdGluZygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kaXNndXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDisgusting.arc56_draft.json b/tests/contracts/artifacts/ABITestDisgusting.arc56_draft.json index a8434e7b2..6223864e9 100644 --- a/tests/contracts/artifacts/ABITestDisgusting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDisgusting.arc56_draft.json @@ -61,487 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 302, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 302, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 302, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 302, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 302, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 302, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 302, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 302, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 302, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 303, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 303, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 303, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 303, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 303, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 303, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 303, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 303, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 303, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 69, - "source": 307, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168 - ] - }, - { - "teal": 70, - "source": 304, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 74, - "source": 328, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 75, - "source": 328, - "pc": [ - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190 - ] - }, - { - "teal": 76, - "source": 328, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 77, - "source": 328, - "pc": [ - 193, - 194 - ] - }, - { - "teal": 81, - "source": 329, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 82, - "source": 329, - "pc": [ - 197, - 198, - 199 - ] - }, - { - "teal": 83, - "source": 329, - "pc": [ - 200 - ] - }, - { - "teal": 86, - "source": 303, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 87, - "source": 303, - "pc": [ - 203 - ] - }, - { - "teal": 90, - "source": 302, - "pc": [ - 204 - ] - }, - { - "teal": 91, - "source": 302, - "pc": [ - 205 - ] - }, - { - "teal": 94, - "source": 302, - "pc": [ - 206, - 207, - 208, - 209, - 210, - 211 - ] - }, - { - "teal": 95, - "source": 302, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 96, - "source": 302, - "pc": [ - 215, - 216, - 217, - 218 - ] - }, - { - "teal": 99, - "source": 302, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 219 - ] - }, - { - "teal": 102, - "source": 302, - "pc": [ - 220, - 221, - 222, - 223, - 224, - 225 - ] - }, - { - "teal": 103, - "source": 302, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 104, - "source": 302, - "pc": [ - 229, - 230, - 231, - 232 - ] - }, - { - "teal": 107, - "source": 302, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 233 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 218 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 232 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkaXNndXN0aW5nKCl1aW50NjQKKmFiaV9yb3V0ZV9kaXNndXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGRpc2d1c3RpbmcoKXVpbnQ2NAoJY2FsbHN1YiBkaXNndXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGlzZ3VzdGluZygpOiB1aW50NjQKZGlzZ3VzdGluZzoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMwNAoJLy8gYTogU3RhdGljQXJyYXk8CgkvLyAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sCgkvLyAgICAgICAyCgkvLyAgICAgPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIDMzLAoJLy8gICAgICAgICBbNDQsIDU1XSwKCS8vICAgICAgICAgWwoJLy8gICAgICAgICAgIFs2NiwgNzddLAoJLy8gICAgICAgICAgIFs4OCwgOTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExMSwgMjIyXSwKCS8vICAgICAgICAgMzMzLAoJLy8gICAgICAgICBbNDQ0LCA1NTVdLAoJLy8gICAgICAgICBbCgkvLyAgICAgICAgICAgWzY2NiwgNzc3XSwKCS8vICAgICAgICAgICBbODg4LCA5OTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzMDA2ZjAwZGUwMDAwMDAwMDAwMDAwMTRkMDFiYzAwMDAwMDAwMDAwMDAyMmIwMDAwMDAwMDAwMDAwMjlhMDAwMDAwMDAwMDAwMDMwOTAwMDAwMDAwMDAwMDAzNzgwMDAwMDAwMDAwMDAwM2U3CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMjgKCS8vIGFbMV1bM11bMV0gPSBbODg4OCwgOTk5OV0KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PCAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sICAgICAgIDIgICAgID4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAyMmI4MDAwMDAwMDAwMDAwMjcwZgoJcmVwbGFjZTIgOTIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMyOQoJLy8gcmV0dXJuIGFbMV1bM11bMV1bMF07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CglleHRyYWN0IDkyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImRpc2d1c3RpbmcoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZGlzZ3VzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZGlzZ3VzdGluZygpdWludDY0CiphYmlfcm91dGVfZGlzZ3VzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGRpc2d1c3RpbmcoKXVpbnQ2NAoJY2FsbHN1YiBkaXNndXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGRpc2d1c3RpbmcoKTogdWludDY0CmRpc2d1c3Rpbmc6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMwNAoJLy8gYTogU3RhdGljQXJyYXk8CgkvLyAgICAgICBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgdWludDY0LCBbdWludDE2LCB1aW50NjRdLCBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDI+LCAyPl0sCgkvLyAgICAgICAyCgkvLyAgICAgPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIDMzLAoJLy8gICAgICAgICBbNDQsIDU1XSwKCS8vICAgICAgICAgWwoJLy8gICAgICAgICAgIFs2NiwgNzddLAoJLy8gICAgICAgICAgIFs4OCwgOTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExMSwgMjIyXSwKCS8vICAgICAgICAgMzMzLAoJLy8gICAgICAgICBbNDQ0LCA1NTVdLAoJLy8gICAgICAgICBbCgkvLyAgICAgICAgICAgWzY2NiwgNzc3XSwKCS8vICAgICAgICAgICBbODg4LCA5OTldLAoJLy8gICAgICAgICBdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjMDAwMDAwMDAwMDAwMDAzNzAwMDAwMDAwMDAwMDAwNDIwMDAwMDAwMDAwMDAwMDRkMDAwMDAwMDAwMDAwMDA1ODAwMDAwMDAwMDAwMDAwNjMwMDZmMDBkZTAwMDAwMDAwMDAwMDAxNGQwMWJjMDAwMDAwMDAwMDAwMDIyYjAwMDAwMDAwMDAwMDAyOWEwMDAwMDAwMDAwMDAwMzA5MDAwMDAwMDAwMDAwMDM3ODAwMDAwMDAwMDAwMDAzZTcKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTwgICAgICAgW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIHVpbnQ2NCwgW3VpbnQxNiwgdWludDY0XSwgU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAyPiwgMj5dLCAgICAgICAyICAgICA+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMyOAoJLy8gYVsxXVszXVsxXSA9IFs4ODg4LCA5OTk5XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMjJiODAwMDAwMDAwMDAwMDI3MGYKCXJlcGxhY2UyIDkyCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMjkKCS8vIHJldHVybiBhWzFdWzNdWzFdWzBdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8ICAgICAgIFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCB1aW50NjQsIFt1aW50MTYsIHVpbnQ2NF0sIFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIDI+XSwgICAgICAgMiAgICAgPgoJZXh0cmFjdCA5MiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDFiNmM5NjhlIC8vIG1ldGhvZCAiZGlzZ3VzdGluZygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kaXNndXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MALUAAAAAAAAAAAAAAKcAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAbAALABYAAAAAAAAAIQAsAAAAAAAAADcAAAAAAAAAQgAAAAAAAABNAAAAAAAAAFgAAAAAAAAAYwBvAN4AAAAAAAABTQG8AAAAAAAAAisAAAAAAAACmgAAAAAAAAMJAAAAAAAAA3gAAAAAAAAD54wAiwCAEAAAAAAAACK4AAAAAAAAJw9cXIwAiwBXXAgXjACJIkOABLhEezY2GgCOAf/xAIAEG2yWjjYaAI4B/z8A", + "approval": "CjEYFIEGCzEZCI0MALcAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgGwACwAWAAAAAAAAACEALAAAAAAAAAA3AAAAAAAAAEIAAAAAAAAATQAAAAAAAABYAAAAAAAAAGMAbwDeAAAAAAAAAU0BvAAAAAAAAAIrAAAAAAAAApoAAAAAAAADCQAAAAAAAAN4AAAAAAAAA+eMAIsAgBAAAAAAAAAiuAAAAAAAACcPXFyMAIsAV1wIF4wAiYEBQ4AEuER7NjYaAI4B//AAgAQbbJaONhoAjgH/PQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal index e8b92bc11..ede8136f0 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicAccessOfDynamicElementInStaticArray(string[3])string *abi_route_dynamicAccessOfDynamicElementInStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: string[3] txna ApplicationArgs 1 @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // dynamicAccessOfDynamicElementInStaticArray(a: StaticArray): string @@ -48,20 +48,20 @@ dynamicAccessOfDynamicElementInStaticArray: proto 1 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:651 // i = btoi(itob(1)) - int 1 + pushint 1 frame_bury 0 // i: uint64 // tests/contracts/abi.algo.ts:652 // return a[i]; frame_dig -1 // a: StaticArray store 255 // full array - int 0 // initial offset + pushint 0 // initial offset frame_dig 0 // i: uint64 - int 2 + pushint 2 * // acc * 2 + load 255 // full array @@ -72,9 +72,9 @@ dynamicAccessOfDynamicElementInStaticArray: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -84,11 +84,11 @@ dynamicAccessOfDynamicElementInStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -96,7 +96,7 @@ dynamicAccessOfDynamicElementInStaticArray: err *call_NoOp: - method "dynamicAccessOfDynamicElementInStaticArray(string[3])string" + pushbytes 0x5aa0f316 // method "dynamicAccessOfDynamicElementInStaticArray(string[3])string" txna ApplicationArgs 0 match *abi_route_dynamicAccessOfDynamicElementInStaticArray diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json index 5249a819a..561a7bb09 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogc3RyaW5nWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4pOiBzdHJpbmcKZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gYnRvaShpdG9iKDEpKQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUyCgkvLyByZXR1cm4gYVtpXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAgLy8gaW5pdGlhbCBvZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIKCSogLy8gYWNjICogMgoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KHN0cmluZ1szXSlzdHJpbmcKKmFiaV9yb3V0ZV9keW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYTogc3RyaW5nWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheShhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+KTogc3RyaW5nCmR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheToKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gYnRvaShpdG9iKDEpKQoJcHVzaGludCAxCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY1MgoJLy8gcmV0dXJuIGFbaV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMCAvLyBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDIKCSogLy8gYWNjICogMgoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NWFhMGYzMTYgLy8gbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc56_draft.json index 75c031321..dce58d854 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc56_draft.json @@ -66,510 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 649, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 649, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 649, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 649, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 649, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 649, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 649, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 649, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 649, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 650, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 650, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 34, - "source": 650, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 650, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 650, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 650, - "pc": [ - 55 - ] - }, - { - "teal": 38, - "source": 650, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 39, - "source": 650, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 650, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 650, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 650, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 650, - "pc": [ - 63 - ] - }, - { - "teal": 44, - "source": 650, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 650, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 51, - "source": 650, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 55, - "source": 651, - "pc": [ - 70 - ] - }, - { - "teal": 56, - "source": 651, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 60, - "source": 652, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 61, - "source": 652, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 62, - "source": 652, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 63, - "source": 652, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 64, - "source": 652, - "pc": [ - 81 - ] - }, - { - "teal": 65, - "source": 652, - "pc": [ - 82 - ] - }, - { - "teal": 66, - "source": 652, - "pc": [ - 83 - ] - }, - { - "teal": 67, - "source": 652, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 68, - "source": 652, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 69, - "source": 652, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 70, - "source": 652, - "pc": [ - 90 - ] - }, - { - "teal": 71, - "source": 652, - "pc": [ - 91 - ] - }, - { - "teal": 72, - "source": 652, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 73, - "source": 652, - "pc": [ - 94 - ] - }, - { - "teal": 74, - "source": 652, - "pc": [ - 95 - ] - }, - { - "teal": 75, - "source": 652, - "pc": [ - 96 - ] - }, - { - "teal": 76, - "source": 652, - "pc": [ - 97 - ] - }, - { - "teal": 77, - "source": 652, - "pc": [ - 98 - ] - }, - { - "teal": 78, - "source": 652, - "pc": [ - 99 - ] - }, - { - "teal": 79, - "source": 652, - "pc": [ - 100 - ] - }, - { - "teal": 80, - "source": 652, - "pc": [ - 101, - 102, - 103 - ] - }, - { - "teal": 83, - "source": 650, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 84, - "source": 650, - "pc": [ - 106 - ] - }, - { - "teal": 87, - "source": 649, - "pc": [ - 107 - ] - }, - { - "teal": 88, - "source": 649, - "pc": [ - 108 - ] - }, - { - "teal": 91, - "source": 649, - "pc": [ - 109, - 110, - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 92, - "source": 649, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 93, - "source": 649, - "pc": [ - 118, - 119, - 120, - 121 - ] - }, - { - "teal": 96, - "source": 649, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 122 - ] - }, - { - "teal": 99, - "source": 649, - "pc": [ - 123, - 124, - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 100, - "source": 649, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 101, - "source": 649, - "pc": [ - 132, - 133, - 134, - 135 - ] - }, - { - "teal": 104, - "source": 649, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 136 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 138 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogc3RyaW5nWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4pOiBzdHJpbmcKZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gYnRvaShpdG9iKDEpKQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUyCgkvLyByZXR1cm4gYVtpXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAgLy8gaW5pdGlhbCBvZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDIKCSogLy8gYWNjICogMgoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KHN0cmluZ1szXSlzdHJpbmcKKmFiaV9yb3V0ZV9keW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYTogc3RyaW5nWzNdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheShhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+KTogc3RyaW5nCmR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheToKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gYnRvaShpdG9iKDEpKQoJcHVzaGludCAxCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY1MgoJLy8gcmV0dXJuIGFbaV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMCAvLyBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDIKCSogLy8gYWNjICogMgoJKwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NWFhMGYzMTYgLy8gbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQIxGBSBBgsxGQiNDABTAAAAAAAAAAAAAABFAAAAAAAAAAAAAACABBUffHU2GgGIAAxJFRZXBgJMUFCwIkOKAQGAACKMAIv/Nf+BAIsAIwsINP80/08CWUk0/0xZIgsjCFhXAgCMAIkiQ4AEuER7NjYaAI4B//EAgARaoPMWNhoAjgH/oQA=", + "approval": "CjEYFIEGCzEZCI0MAFkAAAAAAAAAAAAAAEsAAAAAAAAAAAAAAIAEFR98dTYaAYgADUkVFlcGAkxQULCBAUOKAQGAAIEBjACL/zX/gQCLAIECCwg0/zT/TwJZSTT/TFmBAQuBAghYVwIAjACJgQFDgAS4RHs2NhoAjgH/8ACABFqg8xY2GgCOAf+bAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicArray.approval.teal index 1fa001396..c8bdcba0b 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicArray()uint64 *abi_route_dynamicArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicArray()uint64 callsub dynamicArray itob concat log - int 1 + pushint 1 return // dynamicArray(): uint64 @@ -40,11 +40,11 @@ dynamicArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:348 // a: uint64[] = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: uint64[] // tests/contracts/abi.algo.ts:350 @@ -60,11 +60,11 @@ dynamicArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -72,7 +72,7 @@ dynamicArray: err *call_NoOp: - method "dynamicArray()uint64" + pushbytes 0xbdfe660e // method "dynamicArray()uint64" txna ApplicationArgs 0 match *abi_route_dynamicArray diff --git a/tests/contracts/artifacts/ABITestDynamicArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicArray.arc32.json index 3fa7f6bbe..bc0e2cbd7 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXkKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXkoKTogdWludDY0CmR5bmFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0OAoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNTAKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0FycmF5KCl1aW50NjQKKmFiaV9yb3V0ZV9keW5hbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXkKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5KCk6IHVpbnQ2NApkeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0OAoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1MAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGJkZmU2NjBlIC8vIG1ldGhvZCAiZHluYW1pY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArray.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicArray.arc56_draft.json index 23e33ee72..16d04cc6a 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicArray.arc56_draft.json @@ -61,371 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 346, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 346, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 346, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 346, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 346, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 346, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 346, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 346, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 346, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 347, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 347, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 347, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 347, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 347, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 347, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 347, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 347, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 347, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 348, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 48, - "source": 348, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 52, - "source": 350, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 53, - "source": 350, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 54, - "source": 350, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 55, - "source": 350, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 56, - "source": 350, - "pc": [ - 96 - ] - }, - { - "teal": 59, - "source": 347, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 60, - "source": 347, - "pc": [ - 99 - ] - }, - { - "teal": 63, - "source": 346, - "pc": [ - 100 - ] - }, - { - "teal": 64, - "source": 346, - "pc": [ - 101 - ] - }, - { - "teal": 67, - "source": 346, - "pc": [ - 102, - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 68, - "source": 346, - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 69, - "source": 346, - "pc": [ - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 72, - "source": 346, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 115 - ] - }, - { - "teal": 75, - "source": 346, - "pc": [ - 116, - 117, - 118, - 119, - 120, - 121 - ] - }, - { - "teal": 76, - "source": 346, - "pc": [ - 122, - 123, - 124 - ] - }, - { - "teal": 77, - "source": 346, - "pc": [ - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 80, - "source": 346, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 129 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXkKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXkoKTogdWludDY0CmR5bmFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0OAoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNTAKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0FycmF5KCl1aW50NjQKKmFiaV9yb3V0ZV9keW5hbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXkKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5KCk6IHVpbnQ2NApkeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0OAoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1MAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGJkZmU2NjBlIC8vIG1ldGhvZCAiZHluYW1pY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE0AAAAAAAAAAAAAAD8AAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAiwA1/zT/VwgIF4wAiSJDgAS4RHs2NhoAjgH/8QCABL3+Zg42GgCOAf+nAA==", + "approval": "CjEYFIEGCzEZCI0MAE8AAAAAAAAAAAAAAEEAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIsANf80/1cICBeMAImBAUOABLhEezY2GgCOAf/wAIAEvf5mDjYaAI4B/6UA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal index 7be05452d..8053451ff 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicArrayArg(uint64[])uint64 *abi_route_dynamicArrayArg: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: uint64[] txna ApplicationArgs 1 @@ -36,7 +36,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob concat log - int 1 + pushint 1 return // dynamicArrayArg(a: uint64[]): uint64 @@ -53,11 +53,11 @@ dynamicArrayArg: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -65,7 +65,7 @@ dynamicArrayArg: err *call_NoOp: - method "dynamicArrayArg(uint64[])uint64" + pushbytes 0xaac44c79 // method "dynamicArrayArg(uint64[])uint64" txna ApplicationArgs 0 match *abi_route_dynamicArrayArg diff --git a/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json index 7aae17bb0..58cf1832d 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlBcmcodWludDY0W10pdWludDY0CiphYmlfcm91dGVfZHluYW1pY0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5QXJnKGE6IHVpbnQ2NFtdKTogdWludDY0CmR5bmFtaWNBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNjMKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUFyZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0FycmF5QXJnKHVpbnQ2NFtdKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUFyZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBcnJheUFyZyhhOiB1aW50NjRbXSk6IHVpbnQ2NApkeW5hbWljQXJyYXlBcmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYzCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGFhYzQ0Yzc5IC8vIG1ldGhvZCAiZHluYW1pY0FycmF5QXJnKHVpbnQ2NFtdKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayArg.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicArrayArg.arc56_draft.json index 9c30bf998..b2ad7afc0 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayArg.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayArg.arc56_draft.json @@ -66,333 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 361, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 361, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 361, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 361, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 361, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 361, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 361, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 361, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 361, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 362, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 362, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 362, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 35, - "source": 362, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 362, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 362, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 362, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 362, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 362, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 362, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 48, - "source": 363, - "pc": [ - 63, - 64 - ] - }, - { - "teal": 49, - "source": 363, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 50, - "source": 363, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 51, - "source": 363, - "pc": [ - 69, - 70, - 71 - ] - }, - { - "teal": 52, - "source": 363, - "pc": [ - 72 - ] - }, - { - "teal": 53, - "source": 362, - "pc": [ - 73 - ] - }, - { - "teal": 56, - "source": 361, - "pc": [ - 74 - ] - }, - { - "teal": 57, - "source": 361, - "pc": [ - 75 - ] - }, - { - "teal": 60, - "source": 361, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 61, - "source": 361, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 62, - "source": 361, - "pc": [ - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 65, - "source": 361, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 89 - ] - }, - { - "teal": 68, - "source": 361, - "pc": [ - 90, - 91, - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 69, - "source": 361, - "pc": [ - 96, - 97, - 98 - ] - }, - { - "teal": 70, - "source": 361, - "pc": [ - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 73, - "source": 361, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 103 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 88 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 102 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlBcmcodWludDY0W10pdWludDY0CiphYmlfcm91dGVfZHluYW1pY0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5QXJnKGE6IHVpbnQ2NFtdKTogdWludDY0CmR5bmFtaWNBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNjMKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUFyZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0FycmF5QXJnKHVpbnQ2NFtdKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUFyZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjRbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUFyZyh1aW50NjRbXSl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBcnJheUFyZyhhOiB1aW50NjRbXSk6IHVpbnQ2NApkeW5hbWljQXJyYXlBcmc6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYzCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGFhYzQ0Yzc5IC8vIG1ldGhvZCAiZHluYW1pY0FycmF5QXJnKHVpbnQ2NFtdKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADMAAAAAAAAAAAAAACUAAAAAAAAAAAAAAIAEFR98dTYaAVcCAIgABRZQsCJDigEBi/81/zT/VwgIF4kiQ4AEuER7NjYaAI4B//EAgASqxEx5NhoAjgH/wQA=", + "approval": "CjEYFIEGCzEZCI0MADUAAAAAAAAAAAAAACcAAAAAAAAAAAAAAIAEFR98dTYaAVcCAIgABhZQsIEBQ4oBAYv/Nf80/1cICBeJgQFDgAS4RHs2NhoAjgH/8ACABKrETHk2GgCOAf+/AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal index 6f7a367a9..9c7bc4398 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicArrayElements()uint16[] *abi_route_dynamicArrayElements: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicArrayElements()uint16[] callsub dynamicArrayElements dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // dynamicArrayElements(): uint16[] @@ -52,7 +53,7 @@ dynamicArrayElements: // tests/contracts/abi.algo.ts:481 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:482 @@ -94,11 +95,11 @@ dynamicArrayElements: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -106,7 +107,7 @@ dynamicArrayElements: err *call_NoOp: - method "dynamicArrayElements()uint16[]" + pushbytes 0xb4dcb75e // method "dynamicArrayElements()uint16[]" txna ApplicationArgs 0 match *abi_route_dynamicArrayElements diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json index 28768d04a..5cee18295 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KCWNhbGxzdWIgZHluYW1pY0FycmF5RWxlbWVudHMKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBcnJheUVsZW1lbnRzKCk6IHVpbnQxNltdCmR5bmFtaWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODEKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgyCgkvLyBuZXdBOiB1aW50MTZbXSA9IFthWzBdLCBhWzFdLCBhWzJdXQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAyIDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA0IDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBuZXdBOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODQKCS8vIHJldHVybiBuZXdBOwoJZnJhbWVfZGlnIDEgLy8gbmV3QTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUVsZW1lbnRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUVsZW1lbnRzKCl1aW50MTZbXQoJY2FsbHN1YiBkeW5hbWljQXJyYXlFbGVtZW50cwoJZHVwCglsZW4KCXB1c2hpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpOiB1aW50MTZbXQpkeW5hbWljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgxCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgyCgkvLyBuZXdBOiB1aW50MTZbXSA9IFthWzBdLCBhWzFdLCBhWzJdXQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAyIDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA0IDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBuZXdBOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODQKCS8vIHJldHVybiBuZXdBOwoJZnJhbWVfZGlnIDEgLy8gbmV3QTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGI0ZGNiNzVlIC8vIG1ldGhvZCAiZHluYW1pY0FycmF5RWxlbWVudHMoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicArrayElements.arc56_draft.json index 24bf35823..ae03c50a3 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.arc56_draft.json @@ -61,578 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 479, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 479, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 479, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 479, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 479, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 479, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 479, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 479, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 479, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 480, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 480, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 480, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 480, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 480, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 480, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 480, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 480, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 38, - "source": 480, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 480, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 480, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 480, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 480, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 480, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 480, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 50, - "source": 480, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 51, - "source": 480, - "pc": [ - 69 - ] - }, - { - "teal": 55, - "source": 481, - "pc": [ - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 56, - "source": 481, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 60, - "source": 482, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 61, - "source": 482, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 62, - "source": 482, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 63, - "source": 482, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 64, - "source": 482, - "pc": [ - 89 - ] - }, - { - "teal": 65, - "source": 482, - "pc": [ - 90 - ] - }, - { - "teal": 66, - "source": 482, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 67, - "source": 482, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 68, - "source": 482, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 69, - "source": 482, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 70, - "source": 482, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 71, - "source": 482, - "pc": [ - 103 - ] - }, - { - "teal": 72, - "source": 482, - "pc": [ - 104 - ] - }, - { - "teal": 73, - "source": 482, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 74, - "source": 482, - "pc": [ - 108 - ] - }, - { - "teal": 75, - "source": 482, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 76, - "source": 482, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 77, - "source": 482, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 78, - "source": 482, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 79, - "source": 482, - "pc": [ - 118 - ] - }, - { - "teal": 80, - "source": 482, - "pc": [ - 119 - ] - }, - { - "teal": 81, - "source": 482, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 82, - "source": 482, - "pc": [ - 123 - ] - }, - { - "teal": 83, - "source": 482, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 87, - "source": 484, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 90, - "source": 480, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 93, - "source": 480, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 94, - "source": 480, - "pc": [ - 132 - ] - }, - { - "teal": 97, - "source": 479, - "pc": [ - 133 - ] - }, - { - "teal": 98, - "source": 479, - "pc": [ - 134 - ] - }, - { - "teal": 101, - "source": 479, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140 - ] - }, - { - "teal": 102, - "source": 479, - "pc": [ - 141, - 142, - 143 - ] - }, - { - "teal": 103, - "source": 479, - "pc": [ - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 106, - "source": 479, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 148 - ] - }, - { - "teal": 109, - "source": 479, - "pc": [ - 149, - 150, - 151, - 152, - 153, - 154 - ] - }, - { - "teal": 110, - "source": 479, - "pc": [ - 155, - 156, - 157 - ] - }, - { - "teal": 111, - "source": 479, - "pc": [ - 158, - 159, - 160, - 161 - ] - }, - { - "teal": 114, - "source": 479, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 162 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 150 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 164 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KCWNhbGxzdWIgZHluYW1pY0FycmF5RWxlbWVudHMKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBcnJheUVsZW1lbnRzKCk6IHVpbnQxNltdCmR5bmFtaWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODEKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgyCgkvLyBuZXdBOiB1aW50MTZbXSA9IFthWzBdLCBhWzFdLCBhWzJdXQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAyIDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA0IDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBuZXdBOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODQKCS8vIHJldHVybiBuZXdBOwoJZnJhbWVfZGlnIDEgLy8gbmV3QTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUVsZW1lbnRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUVsZW1lbnRzKCl1aW50MTZbXQoJY2FsbHN1YiBkeW5hbWljQXJyYXlFbGVtZW50cwoJZHVwCglsZW4KCXB1c2hpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlFbGVtZW50cygpOiB1aW50MTZbXQpkeW5hbWljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgxCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDgyCgkvLyBuZXdBOiB1aW50MTZbXSA9IFthWzBdLCBhWzFdLCBhWzJdXQoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMgoJYnRvaQoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAyIDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA0IDIKCWJ0b2kKCWl0b2IKCWV4dHJhY3QgNiAyCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBuZXdBOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODQKCS8vIHJldHVybiBuZXdBOwoJZnJhbWVfZGlnIDEgLy8gbmV3QTogdWludDE2W10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGI0ZGNiNzVlIC8vIG1ldGhvZCAiZHluYW1pY0FycmF5RWxlbWVudHMoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAG4AAAAAAAAAAAAAAGAAAAAAAAAAAAAAAIAEFR98dYgAD0kVgQIKFlcGAkxQULAiQ4oAAYAASYAGAAEAAgADjACLADX/NP9XAAIXFlcGAosANf80/1cCAhcWVwYCUIsANf80/1cEAhcWVwYCUIwBiwGMAEYBiSJDgAS4RHs2NhoAjgH/8QCABLTct142GgCOAf+GAA==", + "approval": "CiYBADEYFIEGCzEZCI0MAHAAAAAAAAAAAAAAAGIAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAEmABgABAAIAA4wAiwA1/zT/VwACFxZXBgKLADX/NP9XAgIXFlcGAlCLADX/NP9XBAIXFlcGAlCMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEtNy3XjYaAI4B/4QA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal index c67630aa7..4a171c30a 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16) *abi_route_dynamicArrayInMiddleOfTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16) callsub dynamicArrayInMiddleOfTuple concat log - int 1 + pushint 1 return // dynamicArrayInMiddleOfTuple(): [uint16, uint<8>[], uint16] @@ -45,12 +46,12 @@ dynamicArrayInMiddleOfTuple: // a: [uint16, uint<8>[], uint16] = [1, [2], 3] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x0001 + pushbytes 0x0006 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000102 + pushbytes 0x000102 callsub *process_dynamic_tuple_element - byte 0x0003 + pushbytes 0x0003 callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail @@ -65,11 +66,11 @@ dynamicArrayInMiddleOfTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -77,7 +78,7 @@ dynamicArrayInMiddleOfTuple: err *call_NoOp: - method "dynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16)" + pushbytes 0xacbf2e73 // method "dynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16)" txna ApplicationArgs 0 match *abi_route_dynamicArrayInMiddleOfTuple diff --git a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json index fc581e05f..4e26afbd8 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQpkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTgKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NjAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KQoJY2FsbHN1YiBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQpkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTgKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YWNiZjJlNzMgLy8gbWV0aG9kICJkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc56_draft.json index b95663b9d..59d945cad 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc56_draft.json @@ -61,622 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 656, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 656, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 656, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 656, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 656, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 656, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 656, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 656, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 656, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 657, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 657, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 657, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 657, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 657, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 657, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 657, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 42, - "source": 657, - "pc": [ - 59 - ] - }, - { - "teal": 46, - "source": 658, - "pc": [ - 60 - ] - }, - { - "teal": 47, - "source": 658, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 658, - "pc": [ - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 49, - "source": 658, - "pc": [ - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 50, - "source": 658, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 51, - "source": 658, - "pc": [ - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 52, - "source": 658, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 53, - "source": 658, - "pc": [ - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 54, - "source": 658, - "pc": [ - 85, - 86, - 87 - ] - }, - { - "teal": 55, - "source": 658, - "pc": [ - 88 - ] - }, - { - "teal": 56, - "source": 658, - "pc": [ - 89 - ] - }, - { - "teal": 57, - "source": 658, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 61, - "source": 660, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 64, - "source": 657, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 65, - "source": 657, - "pc": [ - 96 - ] - }, - { - "teal": 68, - "source": 656, - "pc": [ - 97 - ] - }, - { - "teal": 69, - "source": 656, - "pc": [ - 98 - ] - }, - { - "teal": 72, - "source": 656, - "pc": [ - 99, - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 73, - "source": 656, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 74, - "source": 656, - "pc": [ - 108, - 109, - 110, - 111 - ] - }, - { - "teal": 77, - "source": 656, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 112 - ] - }, - { - "teal": 80, - "source": 656, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 81, - "source": 656, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 82, - "source": 656, - "pc": [ - 122, - 123, - 124, - 125 - ] - }, - { - "teal": 85, - "source": 656, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 126 - ] - }, - { - "teal": 88, - "source": 656, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 89, - "source": 656, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 90, - "source": 656, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 91, - "source": 656, - "pc": [ - 134 - ] - }, - { - "teal": 92, - "source": 656, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 93, - "source": 656, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 94, - "source": 656, - "pc": [ - 139 - ] - }, - { - "teal": 97, - "source": 656, - "pc": [ - 140, - 141, - 142 - ] - }, - { - "teal": 98, - "source": 656, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 99, - "source": 656, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 100, - "source": 656, - "pc": [ - 147 - ] - }, - { - "teal": 101, - "source": 656, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 102, - "source": 656, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 103, - "source": 656, - "pc": [ - 152 - ] - }, - { - "teal": 104, - "source": 656, - "pc": [ - 153 - ] - }, - { - "teal": 105, - "source": 656, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 106, - "source": 656, - "pc": [ - 156 - ] - }, - { - "teal": 107, - "source": 656, - "pc": [ - 157 - ] - }, - { - "teal": 108, - "source": 656, - "pc": [ - 158 - ] - }, - { - "teal": 109, - "source": 656, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 110, - "source": 656, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 111, - "source": 656, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 112, - "source": 656, - "pc": [ - 166 - ] - }, - { - "teal": 113, - "source": 656, - "pc": [ - 167 - ] - }, - { - "teal": 114, - "source": 656, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 115, - "source": 656, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 116, - "source": 656, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 117, - "source": 656, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 118, - "source": 656, - "pc": [ - 176 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQpkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTgKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NjAKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KQoJY2FsbHN1YiBkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQpkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NTgKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YWNiZjJlNzMgLy8gbWV0aG9kICJkeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAEcAAAAAAAAAAAAAADkAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoKCiAAgAGgAIAAYgANoADAAECiAA7gAIAA4gAJ0hQjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABKy/LnM2GgCOAf+tAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", + "approval": "CiYBADEYFIEGCzEZCI0MAEwAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIABoACAAGIADeAAwABAogAPIACAAOIAChIUIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAErL8uczYaAI4B/6gAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayIteration.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayIteration.approval.teal index 4686fb7bb..81bf2123d 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayIteration.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayIteration.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicArrayIteration()string *abi_route_dynamicArrayIteration: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicArrayIteration()string callsub dynamicArrayIteration @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // dynamicArrayIteration(): string @@ -52,16 +53,16 @@ dynamicArrayIteration: // a: string[] = ['Hello ', 'World', '!'] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x000648656c6c6f20 + pushbytes 0x0006 // initial head offset + pushbytes 0x000648656c6c6f20 callsub *process_dynamic_tuple_element - byte 0x0005576f726c64 + pushbytes 0x0005576f726c64 callsub *process_dynamic_tuple_element - byte 0x000121 + pushbytes 0x000121 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail - byte 0x0003 + pushbytes 0x0003 swap concat frame_bury 0 // a: string[] @@ -73,7 +74,7 @@ dynamicArrayIteration: // tests/contracts/abi.algo.ts:1603 // for (let i = 0; i < a.length; i += 1) - int 0 + pushint 0 frame_bury 2 // i: uint64 *for_0: @@ -81,7 +82,7 @@ dynamicArrayIteration: // i < a.length frame_dig 2 // i: uint64 frame_dig 0 // a: string[] - int 0 + pushint 0 extract_uint16 < bz *for_0_end @@ -91,26 +92,26 @@ dynamicArrayIteration: frame_dig 1 // message: byte[] frame_dig 0 // a: string[] store 255 // full array - int 0 // initial offset + pushint 0 // initial offset frame_dig 2 // i: uint64 - int 2 + pushint 2 * // acc * 2 + - int 2 + pushint 2 + // add two for length load 255 // full array load 255 // full array uncover 2 extract_uint16 - int 2 + pushint 2 + // add two for length dup // duplicate start of element load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -121,7 +122,7 @@ dynamicArrayIteration: // tests/contracts/abi.algo.ts:1603 // i += 1 frame_dig 2 // i: uint64 - int 1 + pushint 1 + frame_bury 2 // i: uint64 b *for_0 @@ -139,11 +140,11 @@ dynamicArrayIteration: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -151,7 +152,7 @@ dynamicArrayIteration: err *call_NoOp: - method "dynamicArrayIteration()string" + pushbytes 0xa957c5ed // method "dynamicArrayIteration()string" txna ApplicationArgs 0 match *abi_route_dynamicArrayIteration diff --git a/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc32.json index d11bfd16d..bf7fe30ca 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUl0ZXJhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQXJyYXlJdGVyYXRpb24KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SXRlcmF0aW9uKCk6IHN0cmluZwpkeW5hbWljQXJyYXlJdGVyYXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbyAnLCAnV29ybGQnLCAnISddCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDA2NDg2NTZjNmM2ZjIwCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDEKCS8vIG1lc3NhZ2UgPSAnJwoJYnl0ZSAweCAvLyAiIgoJZnJhbWVfYnVyeSAxIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjAzCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDMKCS8vIGkgPCBhLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJaW50IDAKCWV4dHJhY3RfdWludDE2Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDQKCS8vIG1lc3NhZ2UgKz0gYVtpXQoJZnJhbWVfZGlnIDEgLy8gbWVzc2FnZTogYnl0ZVtdCglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwIC8vIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyCgkqIC8vIGFjYyAqIDIKCSsKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYwNwoJLy8gcmV0dXJuIG1lc3NhZ2U7CglmcmFtZV9kaWcgMSAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FycmF5SXRlcmF0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUl0ZXJhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUl0ZXJhdGlvbigpc3RyaW5nCgljYWxsc3ViIGR5bmFtaWNBcnJheUl0ZXJhdGlvbgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SXRlcmF0aW9uKCk6IHN0cmluZwpkeW5hbWljQXJyYXlJdGVyYXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbyAnLCAnV29ybGQnLCAnISddCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwNjQ4NjU2YzZjNmYyMAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBzdHJpbmdbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjAxCgkvLyBtZXNzYWdlID0gJycKCWJ5dGUgMHggLy8gIiIKCWZyYW1lX2J1cnkgMSAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYwMwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKQoJcHVzaGludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYwMwoJLy8gaSA8IGEubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGE6IHN0cmluZ1tdCglwdXNoaW50IDAKCWV4dHJhY3RfdWludDE2Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDQKCS8vIG1lc3NhZ2UgKz0gYVtpXQoJZnJhbWVfZGlnIDEgLy8gbWVzc2FnZTogYnl0ZVtdCglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMCAvLyBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglwdXNoaW50IDIKCSogLy8gYWNjICogMgoJKwoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglwdXNoaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDcKCS8vIHJldHVybiBtZXNzYWdlOwoJZnJhbWVfZGlnIDEgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhhOTU3YzVlZCAvLyBtZXRob2QgImR5bmFtaWNBcnJheUl0ZXJhdGlvbigpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJdGVyYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc56_draft.json index 7fa438f86..5f23b90b8 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayIteration.arc56_draft.json @@ -61,986 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1598, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 1598, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 1598, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 1598, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 16, - "source": 1598, - "pc": [ - 14 - ] - }, - { - "teal": 17, - "source": 1598, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 18, - "source": 1598, - "pc": [ - 17 - ] - }, - { - "teal": 19, - "source": 1598, - "pc": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ] - }, - { - "teal": 23, - "source": 1598, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 44 - ] - }, - { - "teal": 28, - "source": 1599, - "pc": [ - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 31, - "source": 1599, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 32, - "source": 1599, - "pc": [ - 54 - ] - }, - { - "teal": 33, - "source": 1599, - "pc": [ - 55 - ] - }, - { - "teal": 34, - "source": 1599, - "pc": [ - 56 - ] - }, - { - "teal": 35, - "source": 1599, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 36, - "source": 1599, - "pc": [ - 60 - ] - }, - { - "teal": 37, - "source": 1599, - "pc": [ - 61 - ] - }, - { - "teal": 38, - "source": 1599, - "pc": [ - 62 - ] - }, - { - "teal": 39, - "source": 1599, - "pc": [ - 63 - ] - }, - { - "teal": 40, - "source": 1599, - "pc": [ - 64 - ] - }, - { - "teal": 41, - "source": 1599, - "pc": [ - 65 - ] - }, - { - "teal": 45, - "source": 1599, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 1599, - "pc": [ - 69 - ] - }, - { - "teal": 49, - "source": 1599, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 53, - "source": 1600, - "pc": [ - 72 - ] - }, - { - "teal": 54, - "source": 1600, - "pc": [ - 73 - ] - }, - { - "teal": 55, - "source": 1600, - "pc": [ - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 56, - "source": 1600, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 57, - "source": 1600, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 58, - "source": 1600, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 59, - "source": 1600, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 60, - "source": 1600, - "pc": [ - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 61, - "source": 1600, - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 62, - "source": 1600, - "pc": [ - 111 - ] - }, - { - "teal": 63, - "source": 1600, - "pc": [ - 112 - ] - }, - { - "teal": 64, - "source": 1600, - "pc": [ - 113, - 114, - 115, - 116 - ] - }, - { - "teal": 65, - "source": 1600, - "pc": [ - 117 - ] - }, - { - "teal": 66, - "source": 1600, - "pc": [ - 118 - ] - }, - { - "teal": 67, - "source": 1600, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 71, - "source": 1601, - "pc": [ - 121 - ] - }, - { - "teal": 72, - "source": 1601, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 76, - "source": 1603, - "pc": [ - 124 - ] - }, - { - "teal": 77, - "source": 1603, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 82, - "source": 1603, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 83, - "source": 1603, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 84, - "source": 1603, - "pc": [ - 131 - ] - }, - { - "teal": 85, - "source": 1603, - "pc": [ - 132 - ] - }, - { - "teal": 86, - "source": 1603, - "pc": [ - 133 - ] - }, - { - "teal": 87, - "source": 1603, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 91, - "source": 1604, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 92, - "source": 1604, - "pc": [ - 139, - 140 - ] - }, - { - "teal": 93, - "source": 1604, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 94, - "source": 1604, - "pc": [ - 143 - ] - }, - { - "teal": 95, - "source": 1604, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 96, - "source": 1604, - "pc": [ - 146 - ] - }, - { - "teal": 97, - "source": 1604, - "pc": [ - 147 - ] - }, - { - "teal": 98, - "source": 1604, - "pc": [ - 148 - ] - }, - { - "teal": 99, - "source": 1604, - "pc": [ - 149 - ] - }, - { - "teal": 100, - "source": 1604, - "pc": [ - 150 - ] - }, - { - "teal": 101, - "source": 1604, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 102, - "source": 1604, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 103, - "source": 1604, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 104, - "source": 1604, - "pc": [ - 157 - ] - }, - { - "teal": 105, - "source": 1604, - "pc": [ - 158 - ] - }, - { - "teal": 106, - "source": 1604, - "pc": [ - 159 - ] - }, - { - "teal": 107, - "source": 1604, - "pc": [ - 160 - ] - }, - { - "teal": 108, - "source": 1604, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 109, - "source": 1604, - "pc": [ - 163 - ] - }, - { - "teal": 110, - "source": 1604, - "pc": [ - 164 - ] - }, - { - "teal": 111, - "source": 1604, - "pc": [ - 165 - ] - }, - { - "teal": 112, - "source": 1604, - "pc": [ - 166 - ] - }, - { - "teal": 113, - "source": 1604, - "pc": [ - 167 - ] - }, - { - "teal": 114, - "source": 1604, - "pc": [ - 168 - ] - }, - { - "teal": 115, - "source": 1604, - "pc": [ - 169 - ] - }, - { - "teal": 116, - "source": 1604, - "pc": [ - 170, - 171, - 172 - ] - }, - { - "teal": 117, - "source": 1604, - "pc": [ - 173 - ] - }, - { - "teal": 118, - "source": 1604, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 123, - "source": 1603, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 124, - "source": 1603, - "pc": [ - 178 - ] - }, - { - "teal": 125, - "source": 1603, - "pc": [ - 179 - ] - }, - { - "teal": 126, - "source": 1603, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 127, - "source": 1603, - "pc": [ - 182, - 183, - 184 - ] - }, - { - "teal": 132, - "source": 1607, - "pc": [ - 185, - 186 - ] - }, - { - "teal": 135, - "source": 1599, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 138, - "source": 1599, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 139, - "source": 1599, - "pc": [ - 191 - ] - }, - { - "teal": 142, - "source": 1598, - "pc": [ - 192 - ] - }, - { - "teal": 143, - "source": 1598, - "pc": [ - 193 - ] - }, - { - "teal": 146, - "source": 1598, - "pc": [ - 194, - 195, - 196, - 197, - 198, - 199 - ] - }, - { - "teal": 147, - "source": 1598, - "pc": [ - 200, - 201, - 202 - ] - }, - { - "teal": 148, - "source": 1598, - "pc": [ - 203, - 204, - 205, - 206 - ] - }, - { - "teal": 151, - "source": 1598, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 207 - ] - }, - { - "teal": 154, - "source": 1598, - "pc": [ - 208, - 209, - 210, - 211, - 212, - 213 - ] - }, - { - "teal": 155, - "source": 1598, - "pc": [ - 214, - 215, - 216 - ] - }, - { - "teal": 156, - "source": 1598, - "pc": [ - 217, - 218, - 219, - 220 - ] - }, - { - "teal": 159, - "source": 1598, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 221 - ] - }, - { - "teal": 162, - "source": 1598, - "pc": [ - 222, - 223, - 224 - ] - }, - { - "teal": 163, - "source": 1598, - "pc": [ - 225, - 226 - ] - }, - { - "teal": 164, - "source": 1598, - "pc": [ - 227, - 228 - ] - }, - { - "teal": 165, - "source": 1598, - "pc": [ - 229 - ] - }, - { - "teal": 166, - "source": 1598, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 167, - "source": 1598, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 168, - "source": 1598, - "pc": [ - 234 - ] - }, - { - "teal": 169, - "source": 1598, - "pc": [ - 235 - ] - }, - { - "teal": 170, - "source": 1598, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 171, - "source": 1598, - "pc": [ - 238 - ] - }, - { - "teal": 172, - "source": 1598, - "pc": [ - 239 - ] - }, - { - "teal": 173, - "source": 1598, - "pc": [ - 240 - ] - }, - { - "teal": 174, - "source": 1598, - "pc": [ - 241, - 242, - 243 - ] - }, - { - "teal": 175, - "source": 1598, - "pc": [ - 244, - 245 - ] - }, - { - "teal": 176, - "source": 1598, - "pc": [ - 246, - 247 - ] - }, - { - "teal": 177, - "source": 1598, - "pc": [ - 248 - ] - }, - { - "teal": 178, - "source": 1598, - "pc": [ - 249 - ] - }, - { - "teal": 179, - "source": 1598, - "pc": [ - 250, - 251 - ] - }, - { - "teal": 180, - "source": 1598, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 181, - "source": 1598, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 182, - "source": 1598, - "pc": [ - 256, - 257 - ] - }, - { - "teal": 183, - "source": 1598, - "pc": [ - 258 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 217 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 231 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUl0ZXJhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZwoJY2FsbHN1YiBkeW5hbWljQXJyYXlJdGVyYXRpb24KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SXRlcmF0aW9uKCk6IHN0cmluZwpkeW5hbWljQXJyYXlJdGVyYXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbyAnLCAnV29ybGQnLCAnISddCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDA2NDg2NTZjNmM2ZjIwCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDEKCS8vIG1lc3NhZ2UgPSAnJwoJYnl0ZSAweCAvLyAiIgoJZnJhbWVfYnVyeSAxIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjAzCgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDMKCS8vIGkgPCBhLmxlbmd0aAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJaW50IDAKCWV4dHJhY3RfdWludDE2Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDQKCS8vIG1lc3NhZ2UgKz0gYVtpXQoJZnJhbWVfZGlnIDEgLy8gbWVzc2FnZTogYnl0ZVtdCglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwIC8vIGluaXRpYWwgb2Zmc2V0CglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWludCAyCgkqIC8vIGFjYyAqIDIKCSsKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAyIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYwNwoJLy8gcmV0dXJuIG1lc3NhZ2U7CglmcmFtZV9kaWcgMSAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FycmF5SXRlcmF0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlJdGVyYXRpb24oKXN0cmluZwoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUl0ZXJhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUl0ZXJhdGlvbigpc3RyaW5nCgljYWxsc3ViIGR5bmFtaWNBcnJheUl0ZXJhdGlvbgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0FycmF5SXRlcmF0aW9uKCk6IHN0cmluZwpkeW5hbWljQXJyYXlJdGVyYXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDAKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbyAnLCAnV29ybGQnLCAnISddCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwNjQ4NjU2YzZjNmYyMAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBzdHJpbmdbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjAxCgkvLyBtZXNzYWdlID0gJycKCWJ5dGUgMHggLy8gIiIKCWZyYW1lX2J1cnkgMSAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYwMwoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSArPSAxKQoJcHVzaGludCAwCglmcmFtZV9idXJ5IDIgLy8gaTogdWludDY0CgoqZm9yXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYwMwoJLy8gaSA8IGEubGVuZ3RoCglmcmFtZV9kaWcgMiAvLyBpOiB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIGE6IHN0cmluZ1tdCglwdXNoaW50IDAKCWV4dHJhY3RfdWludDE2Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDQKCS8vIG1lc3NhZ2UgKz0gYVtpXQoJZnJhbWVfZGlnIDEgLy8gbWVzc2FnZTogYnl0ZVtdCglmcmFtZV9kaWcgMCAvLyBhOiBzdHJpbmdbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMCAvLyBpbml0aWFsIG9mZnNldAoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglwdXNoaW50IDIKCSogLy8gYWNjICogMgoJKwoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDMKCS8vIGkgKz0gMQoJZnJhbWVfZGlnIDIgLy8gaTogdWludDY0CglwdXNoaW50IDEKCSsKCWZyYW1lX2J1cnkgMiAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MDcKCS8vIHJldHVybiBtZXNzYWdlOwoJZnJhbWVfZGlnIDEgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhhOTU3YzVlZCAvLyBtZXRob2QgImR5bmFtaWNBcnJheUl0ZXJhdGlvbigpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQXJyYXlJdGVyYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIAJgEAMRgUgQYLMRkIjQwApAAAAAAAAAAAAAAAlgAAAAAAAAAAAAAAgAQVH3x1iAAMSRUWVwYCTFBQsCJDigABKEcCKCiAAgAGgAgABkhlbGxvIIgAg4AHAAVXb3JsZIgAd4ADAAEhiABvSFCAAgADTFCMACiMASSMAosCiwAkWQxBADCLAYsANf8kiwIjCwgjCDT/NP9PAlkjCEk0/0xZIgsjCFhXAgBQjAGLAiIIjAJC/8aLAYwARgKJIkOABLhEezY2GgCOAf/xAIAEqVfF7TYaAI4B/1AAigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYBADEYFIEGCzEZCI0MALMAAAAAAAAAAAAAAKUAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAEcCgACAAIACAAaACAAGSGVsbG8giACOgAcABVdvcmxkiACCgAMAASGIAHpIUIACAANMUIwAgACMAYEAjAKLAosAgQBZDEEAN4sBiwA1/4EAiwKBAgsIgQIINP80/08CWYECCEk0/0xZgQELgQIIWFcCAFCMAYsCgQEIjAJC/76LAYwARgKJgQFDgAS4RHs2NhoAjgH/8ACABKlXxe02GgCOAf9BAIoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayLength.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayLength.approval.teal index a6f1a4e87..890accc47 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayLength.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicArrayLength()uint64 *abi_route_dynamicArrayLength: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicArrayLength()uint64 callsub dynamicArrayLength itob concat log - int 1 + pushint 1 return // dynamicArrayLength(): uint64 @@ -47,10 +48,10 @@ dynamicArrayLength: // o: { a: uint64; b: uint64[] } = { a: 1, b: [1, 2, 3] } byte 0x // initial head byte 0x // initial tail - byte 0x000a // initial head offset - byte 0x0000000000000001 + pushbytes 0x000a // initial head offset + pushbytes 0x0000000000000001 callsub *process_static_tuple_element - byte 0x0003000000000000000100000000000000020000000000000003 + pushbytes 0x0003000000000000000100000000000000020000000000000003 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -60,16 +61,16 @@ dynamicArrayLength: // a: string[] = ['Hello', 'World', '!'] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x000548656c6c6f + pushbytes 0x0006 // initial head offset + pushbytes 0x000548656c6c6f callsub *process_dynamic_tuple_element - byte 0x0005576f726c64 + pushbytes 0x0005576f726c64 callsub *process_dynamic_tuple_element - byte 0x000121 + pushbytes 0x000121 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail - byte 0x0003 + pushbytes 0x0003 swap concat frame_bury 1 // a: string[] @@ -77,11 +78,11 @@ dynamicArrayLength: // tests/contracts/abi.algo.ts:1594 // return a.length + o.b.length; frame_dig 1 // a: string[] - int 0 + pushint 0 extract_uint16 frame_dig 0 // o: { a: uint64; b: uint64[] } store 255 // full array - int 8 + pushint 8 load 255 // full array load 255 // full array uncover 2 @@ -90,14 +91,14 @@ dynamicArrayLength: load 255 // full array swap extract_uint16 // get number of elements - int 8 // get type length + pushint 8 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 len - int 8 + pushint 8 / + @@ -109,11 +110,11 @@ dynamicArrayLength: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -121,7 +122,7 @@ dynamicArrayLength: err *call_NoOp: - method "dynamicArrayLength()uint64" + pushbytes 0xdf3e60f1 // method "dynamicArrayLength()uint64" txna ApplicationArgs 0 match *abi_route_dynamicArrayLength diff --git a/tests/contracts/artifacts/ABITestDynamicArrayLength.arc32.json b/tests/contracts/artifacts/ABITestDynamicArrayLength.arc32.json index ac1f77124..6b42ce297 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXlMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKTogdWludDY0CmR5bmFtaWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU5MAoJLy8gbzogeyBhOiB1aW50NjQ7IGI6IHVpbnQ2NFtdIH0gPSB7IGE6IDEsIGI6IFsxLCAyLCAzXSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDBhIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIG86IHsgYTogdWludDY0OyBiOiB1aW50NjRbXSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1OTIKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDU0ODY1NmM2YzZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1OTQKCS8vIHJldHVybiBhLmxlbmd0aCArIG8uYi5sZW5ndGg7CglmcmFtZV9kaWcgMSAvLyBhOiBzdHJpbmdbXQoJaW50IDAKCWV4dHJhY3RfdWludDE2CglmcmFtZV9kaWcgMCAvLyBvOiB7IGE6IHVpbnQ2NDsgYjogdWludDY0W10gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA4Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCA4IC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWxlbgoJaW50IDgKCS8KCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FycmF5TGVuZ3RoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUxlbmd0aCgpdWludDY0CgljYWxsc3ViIGR5bmFtaWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKTogdWludDY0CmR5bmFtaWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU5MAoJLy8gbzogeyBhOiB1aW50NjQ7IGI6IHVpbnQ2NFtdIH0gPSB7IGE6IDEsIGI6IFsxLCAyLCAzXSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMGEgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMzAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIG86IHsgYTogdWludDY0OyBiOiB1aW50NjRbXSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1OTIKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDA1NDg2NTZjNmM2ZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBhOiBzdHJpbmdbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTk0CgkvLyByZXR1cm4gYS5sZW5ndGggKyBvLmIubGVuZ3RoOwoJZnJhbWVfZGlnIDEgLy8gYTogc3RyaW5nW10KCXB1c2hpbnQgMAoJZXh0cmFjdF91aW50MTYKCWZyYW1lX2RpZyAwIC8vIG86IHsgYTogdWludDY0OyBiOiB1aW50NjRbXSB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCA4Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCXB1c2hpbnQgOCAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJbGVuCglwdXNoaW50IDgKCS8KCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGRmM2U2MGYxIC8vIG1ldGhvZCAiZHluYW1pY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayLength.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicArrayLength.arc56_draft.json index 42ee017e7..b07d0b735 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayLength.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayLength.arc56_draft.json @@ -61,964 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1588, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - }, - { - "teal": 13, - "source": 1588, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 14, - "source": 1588, - "pc": [ - 10 - ] - }, - { - "teal": 15, - "source": 1588, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 16, - "source": 1588, - "pc": [ - 13 - ] - }, - { - "teal": 17, - "source": 1588, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 18, - "source": 1588, - "pc": [ - 16 - ] - }, - { - "teal": 19, - "source": 1588, - "pc": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ] - }, - { - "teal": 23, - "source": 1588, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 43 - ] - }, - { - "teal": 28, - "source": 1589, - "pc": [ - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 31, - "source": 1589, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 32, - "source": 1589, - "pc": [ - 53 - ] - }, - { - "teal": 33, - "source": 1589, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 1589, - "pc": [ - 55 - ] - }, - { - "teal": 35, - "source": 1589, - "pc": [ - 56 - ] - }, - { - "teal": 36, - "source": 1589, - "pc": [ - 57 - ] - }, - { - "teal": 40, - "source": 1589, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 43, - "source": 1589, - "pc": [ - 61 - ] - }, - { - "teal": 44, - "source": 1589, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 1590, - "pc": [ - 63 - ] - }, - { - "teal": 49, - "source": 1590, - "pc": [ - 64 - ] - }, - { - "teal": 50, - "source": 1590, - "pc": [ - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 51, - "source": 1590, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 52, - "source": 1590, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 53, - "source": 1590, - "pc": [ - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109 - ] - }, - { - "teal": 54, - "source": 1590, - "pc": [ - 110, - 111, - 112 - ] - }, - { - "teal": 55, - "source": 1590, - "pc": [ - 113 - ] - }, - { - "teal": 56, - "source": 1590, - "pc": [ - 114 - ] - }, - { - "teal": 57, - "source": 1590, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 61, - "source": 1592, - "pc": [ - 117 - ] - }, - { - "teal": 62, - "source": 1592, - "pc": [ - 118 - ] - }, - { - "teal": 63, - "source": 1592, - "pc": [ - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 64, - "source": 1592, - "pc": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 65, - "source": 1592, - "pc": [ - 132, - 133, - 134 - ] - }, - { - "teal": 66, - "source": 1592, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143 - ] - }, - { - "teal": 67, - "source": 1592, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 68, - "source": 1592, - "pc": [ - 147, - 148, - 149, - 150, - 151 - ] - }, - { - "teal": 69, - "source": 1592, - "pc": [ - 152, - 153, - 154 - ] - }, - { - "teal": 70, - "source": 1592, - "pc": [ - 155 - ] - }, - { - "teal": 71, - "source": 1592, - "pc": [ - 156 - ] - }, - { - "teal": 72, - "source": 1592, - "pc": [ - 157, - 158, - 159, - 160 - ] - }, - { - "teal": 73, - "source": 1592, - "pc": [ - 161 - ] - }, - { - "teal": 74, - "source": 1592, - "pc": [ - 162 - ] - }, - { - "teal": 75, - "source": 1592, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 79, - "source": 1594, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 80, - "source": 1594, - "pc": [ - 167, - 168 - ] - }, - { - "teal": 81, - "source": 1594, - "pc": [ - 169 - ] - }, - { - "teal": 82, - "source": 1594, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 83, - "source": 1594, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 84, - "source": 1594, - "pc": [ - 174 - ] - }, - { - "teal": 85, - "source": 1594, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 86, - "source": 1594, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 87, - "source": 1594, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 88, - "source": 1594, - "pc": [ - 181 - ] - }, - { - "teal": 89, - "source": 1594, - "pc": [ - 182 - ] - }, - { - "teal": 90, - "source": 1594, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 91, - "source": 1594, - "pc": [ - 185 - ] - }, - { - "teal": 92, - "source": 1594, - "pc": [ - 186 - ] - }, - { - "teal": 93, - "source": 1594, - "pc": [ - 187 - ] - }, - { - "teal": 94, - "source": 1594, - "pc": [ - 188 - ] - }, - { - "teal": 95, - "source": 1594, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 96, - "source": 1594, - "pc": [ - 191 - ] - }, - { - "teal": 97, - "source": 1594, - "pc": [ - 192 - ] - }, - { - "teal": 98, - "source": 1594, - "pc": [ - 193, - 194, - 195 - ] - }, - { - "teal": 99, - "source": 1594, - "pc": [ - 196 - ] - }, - { - "teal": 100, - "source": 1594, - "pc": [ - 197 - ] - }, - { - "teal": 101, - "source": 1594, - "pc": [ - 198 - ] - }, - { - "teal": 102, - "source": 1594, - "pc": [ - 199 - ] - }, - { - "teal": 105, - "source": 1589, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 108, - "source": 1589, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 109, - "source": 1589, - "pc": [ - 204 - ] - }, - { - "teal": 112, - "source": 1588, - "pc": [ - 205 - ] - }, - { - "teal": 113, - "source": 1588, - "pc": [ - 206 - ] - }, - { - "teal": 116, - "source": 1588, - "pc": [ - 207, - 208, - 209, - 210, - 211, - 212 - ] - }, - { - "teal": 117, - "source": 1588, - "pc": [ - 213, - 214, - 215 - ] - }, - { - "teal": 118, - "source": 1588, - "pc": [ - 216, - 217, - 218, - 219 - ] - }, - { - "teal": 121, - "source": 1588, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 220 - ] - }, - { - "teal": 124, - "source": 1588, - "pc": [ - 221, - 222, - 223, - 224, - 225, - 226 - ] - }, - { - "teal": 125, - "source": 1588, - "pc": [ - 227, - 228, - 229 - ] - }, - { - "teal": 126, - "source": 1588, - "pc": [ - 230, - 231, - 232, - 233 - ] - }, - { - "teal": 129, - "source": 1588, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 234 - ] - }, - { - "teal": 132, - "source": 1588, - "pc": [ - 235, - 236, - 237 - ] - }, - { - "teal": 133, - "source": 1588, - "pc": [ - 238, - 239 - ] - }, - { - "teal": 134, - "source": 1588, - "pc": [ - 240, - 241 - ] - }, - { - "teal": 135, - "source": 1588, - "pc": [ - 242 - ] - }, - { - "teal": 136, - "source": 1588, - "pc": [ - 243, - 244 - ] - }, - { - "teal": 137, - "source": 1588, - "pc": [ - 245, - 246 - ] - }, - { - "teal": 138, - "source": 1588, - "pc": [ - 247 - ] - }, - { - "teal": 141, - "source": 1588, - "pc": [ - 248, - 249, - 250 - ] - }, - { - "teal": 142, - "source": 1588, - "pc": [ - 251, - 252 - ] - }, - { - "teal": 143, - "source": 1588, - "pc": [ - 253, - 254 - ] - }, - { - "teal": 144, - "source": 1588, - "pc": [ - 255 - ] - }, - { - "teal": 145, - "source": 1588, - "pc": [ - 256, - 257 - ] - }, - { - "teal": 146, - "source": 1588, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 147, - "source": 1588, - "pc": [ - 260 - ] - }, - { - "teal": 148, - "source": 1588, - "pc": [ - 261 - ] - }, - { - "teal": 149, - "source": 1588, - "pc": [ - 262, - 263 - ] - }, - { - "teal": 150, - "source": 1588, - "pc": [ - 264 - ] - }, - { - "teal": 151, - "source": 1588, - "pc": [ - 265 - ] - }, - { - "teal": 152, - "source": 1588, - "pc": [ - 266 - ] - }, - { - "teal": 153, - "source": 1588, - "pc": [ - 267, - 268, - 269 - ] - }, - { - "teal": 154, - "source": 1588, - "pc": [ - 270, - 271 - ] - }, - { - "teal": 155, - "source": 1588, - "pc": [ - 272, - 273 - ] - }, - { - "teal": 156, - "source": 1588, - "pc": [ - 274 - ] - }, - { - "teal": 157, - "source": 1588, - "pc": [ - 275 - ] - }, - { - "teal": 158, - "source": 1588, - "pc": [ - 276, - 277 - ] - }, - { - "teal": 159, - "source": 1588, - "pc": [ - 278, - 279 - ] - }, - { - "teal": 160, - "source": 1588, - "pc": [ - 280, - 281 - ] - }, - { - "teal": 161, - "source": 1588, - "pc": [ - 282, - 283 - ] - }, - { - "teal": 162, - "source": 1588, - "pc": [ - 284 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 226 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 240 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljQXJyYXlMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKTogdWludDY0CmR5bmFtaWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU5MAoJLy8gbzogeyBhOiB1aW50NjQ7IGI6IHVpbnQ2NFtdIH0gPSB7IGE6IDEsIGI6IFsxLCAyLCAzXSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDBhIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIG86IHsgYTogdWludDY0OyBiOiB1aW50NjRbXSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1OTIKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDU0ODY1NmM2YzZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYnl0ZSAweDAwMDMKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIGE6IHN0cmluZ1tdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1OTQKCS8vIHJldHVybiBhLmxlbmd0aCArIG8uYi5sZW5ndGg7CglmcmFtZV9kaWcgMSAvLyBhOiBzdHJpbmdbXQoJaW50IDAKCWV4dHJhY3RfdWludDE2CglmcmFtZV9kaWcgMCAvLyBvOiB7IGE6IHVpbnQ2NDsgYjogdWludDY0W10gfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA4Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCA4IC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCWxlbgoJaW50IDgKCS8KCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0FycmF5TGVuZ3RoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNBcnJheUxlbmd0aCgpdWludDY0CgljYWxsc3ViIGR5bmFtaWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQXJyYXlMZW5ndGgoKTogdWludDY0CmR5bmFtaWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU5MAoJLy8gbzogeyBhOiB1aW50NjQ7IGI6IHVpbnQ2NFtdIH0gPSB7IGE6IDEsIGI6IFsxLCAyLCAzXSB9CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMGEgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMzAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIG86IHsgYTogdWludDY0OyBiOiB1aW50NjRbXSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1OTIKCS8vIGE6IHN0cmluZ1tdID0gWydIZWxsbycsICdXb3JsZCcsICchJ10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDA1NDg2NTZjNmM2ZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDU1NzZmNzI2YzY0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyBhOiBzdHJpbmdbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTk0CgkvLyByZXR1cm4gYS5sZW5ndGggKyBvLmIubGVuZ3RoOwoJZnJhbWVfZGlnIDEgLy8gYTogc3RyaW5nW10KCXB1c2hpbnQgMAoJZXh0cmFjdF91aW50MTYKCWZyYW1lX2RpZyAwIC8vIG86IHsgYTogdWludDY0OyBiOiB1aW50NjRbXSB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCA4Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCXB1c2hpbnQgOCAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCWV4dHJhY3QzCglleHRyYWN0IDIgMAoJbGVuCglwdXNoaW50IDgKCS8KCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGRmM2U2MGYxIC8vIG1ldGhvZCAiZHluYW1pY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNBcnJheUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACCAEmAQAxGBSBBgsxGQiNDACyAAAAAAAAAAAAAACkAAAAAAAAAAAAAACABBUffHWIAAUWULAjQ4oAAShJKCiAAgAKgAgAAAAAAAAAAYgAmYAaAAMAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOIAIdIUIwAKCiAAgAGgAcABUhlbGxviABxgAcABVdvcmxkiABlgAMAASGIAF1IUIACAANMUIwBiwGBAFmLADX/IjT/NP9PAllJNP9MWSILgQIIWFcCABUiCgiMAEYBiSNDgAS4RHs2NhoAjgH/8QCABN8+YPE2GgCOAf9CAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", + "approval": "CiYBADEYFIEGCzEZCI0MALwAAAAAAAAAAAAAAK4AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAASYAAgACAAgAKgAgAAAAAAAAAAYgAn4AaAAMAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOIAI1IUIwAgACAAIACAAaABwAFSGVsbG+IAHWABwAFV29ybGSIAGmAAwABIYgAYUhQgAIAA0xQjAGLAYEAWYsANf+BCDT/NP9PAllJNP9MWYEIC4ECCFhXAgAVgQgKCIwARgGJgQFDgAS4RHs2NhoAjgH/8ACABN8+YPE2GgCOAf84AIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal index fc3b26a77..f72f6a294 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicBoolArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicBoolArray()bool[] *abi_route_dynamicBoolArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicBoolArray()bool[] callsub dynamicBoolArray concat log - int 1 + pushint 1 return // dynamicBoolArray(): boolean[] @@ -39,38 +39,38 @@ dynamicBoolArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:931 // a: boolean[] = [true, false, true, true, false, false, true, false, false] - byte 0x0009 - byte 0x0000 - int 0 - int 1 + pushbytes 0x0009 + pushbytes 0x0000 + pushint 0 + pushint 1 setbit - int 1 - int 0 + pushint 1 + pushint 0 setbit - int 2 - int 1 + pushint 2 + pushint 1 setbit - int 3 - int 1 + pushint 3 + pushint 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 - int 1 + pushint 6 + pushint 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit concat frame_bury 0 // a: boolean[] @@ -84,11 +84,11 @@ dynamicBoolArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -96,7 +96,7 @@ dynamicBoolArray: err *call_NoOp: - method "dynamicBoolArray()bool[]" + pushbytes 0x3542d0d5 // method "dynamicBoolArray()bool[]" txna ApplicationArgs 0 match *abi_route_dynamicBoolArray diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json index 8e6d99bbc..18b6096ac 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5KClib29sW10KKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMQoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0Jvb2xBcnJheSgpYm9vbFtdCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNCb29sQXJyYXkoKTogYm9vbGVhbltdCmR5bmFtaWNCb29sQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMQoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCXB1c2hieXRlcyAweDAwMDkKCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNAoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDM1NDJkMGQ1IC8vIG1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheSgpYm9vbFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArray.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicBoolArray.arc56_draft.json index 9f56dbac3..8a3724b9e 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArray.arc56_draft.json @@ -61,523 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 929, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 929, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 929, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 929, - "pc": [ - 9 - ] - }, - { - "teal": 16, - "source": 929, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 929, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 929, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 929, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 929, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 930, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 930, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 930, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 930, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 930, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 930, - "pc": [ - 53 - ] - }, - { - "teal": 39, - "source": 930, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 42, - "source": 930, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 46, - "source": 931, - "pc": [ - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 47, - "source": 931, - "pc": [ - 63, - 64, - 65, - 66 - ] - }, - { - "teal": 48, - "source": 931, - "pc": [ - 67 - ] - }, - { - "teal": 49, - "source": 931, - "pc": [ - 68 - ] - }, - { - "teal": 50, - "source": 931, - "pc": [ - 69 - ] - }, - { - "teal": 51, - "source": 931, - "pc": [ - 70 - ] - }, - { - "teal": 52, - "source": 931, - "pc": [ - 71 - ] - }, - { - "teal": 53, - "source": 931, - "pc": [ - 72 - ] - }, - { - "teal": 54, - "source": 931, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 55, - "source": 931, - "pc": [ - 75 - ] - }, - { - "teal": 56, - "source": 931, - "pc": [ - 76 - ] - }, - { - "teal": 57, - "source": 931, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 58, - "source": 931, - "pc": [ - 79 - ] - }, - { - "teal": 59, - "source": 931, - "pc": [ - 80 - ] - }, - { - "teal": 60, - "source": 931, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 61, - "source": 931, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 931, - "pc": [ - 84 - ] - }, - { - "teal": 63, - "source": 931, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 64, - "source": 931, - "pc": [ - 87 - ] - }, - { - "teal": 65, - "source": 931, - "pc": [ - 88 - ] - }, - { - "teal": 66, - "source": 931, - "pc": [ - 89 - ] - }, - { - "teal": 67, - "source": 931, - "pc": [ - 90 - ] - }, - { - "teal": 68, - "source": 931, - "pc": [ - 91 - ] - }, - { - "teal": 69, - "source": 931, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 70, - "source": 931, - "pc": [ - 94 - ] - }, - { - "teal": 71, - "source": 931, - "pc": [ - 95 - ] - }, - { - "teal": 72, - "source": 931, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 73, - "source": 931, - "pc": [ - 98 - ] - }, - { - "teal": 74, - "source": 931, - "pc": [ - 99 - ] - }, - { - "teal": 75, - "source": 931, - "pc": [ - 100 - ] - }, - { - "teal": 76, - "source": 931, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 80, - "source": 933, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 83, - "source": 930, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 84, - "source": 930, - "pc": [ - 107 - ] - }, - { - "teal": 87, - "source": 929, - "pc": [ - 108 - ] - }, - { - "teal": 88, - "source": 929, - "pc": [ - 109 - ] - }, - { - "teal": 91, - "source": 929, - "pc": [ - 110, - 111, - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 92, - "source": 929, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 93, - "source": 929, - "pc": [ - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 96, - "source": 929, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 123 - ] - }, - { - "teal": 99, - "source": 929, - "pc": [ - 124, - 125, - 126, - 127, - 128, - 129 - ] - }, - { - "teal": 100, - "source": 929, - "pc": [ - 130, - 131, - 132 - ] - }, - { - "teal": 101, - "source": 929, - "pc": [ - 133, - 134, - 135, - 136 - ] - }, - { - "teal": 104, - "source": 929, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 137 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 133 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 147 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5KClib29sW10KKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMQoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0Jvb2xBcnJheSgpYm9vbFtdCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXkoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNCb29sQXJyYXkoKTogYm9vbGVhbltdCmR5bmFtaWNCb29sQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzMQoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCXB1c2hieXRlcyAweDAwMDkKCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNAoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDM1NDJkMGQ1IC8vIG1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheSgpYm9vbFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAGMRgUJAsxGQiNDABUAAAAAAAAAAAAAABGAAAAAAAAAAAAAACABBUffHWIAARQsCJDigABgACAAgAJgAIAACMiVCIjVIECIlSBAyJUgQQjVIEFI1QkIlSBByNUgQgjVFCMAIsAjACJIkOABLhEezY2GgCOAf/xAIAENULQ1TYaAI4B/6AA", + "approval": "CjEYFIEGCzEZCI0MAGIAAAAAAAAAAAAAAFQAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAgAJgAIAAIEAgQFUgQGBAFSBAoEBVIEDgQFUgQSBAFSBBYEAVIEGgQFUgQeBAFSBCIEAVFCMAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABDVC0NU2GgCOAf+SAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal index ade7b93a7..fe84e546b 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,17 +25,17 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicBoolArrayAccess()bool *abi_route_dynamicBoolArrayAccess: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicBoolArrayAccess()bool callsub dynamicBoolArrayAccess - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit concat log - int 1 + pushint 1 return // dynamicBoolArrayAccess(): boolean @@ -43,38 +43,38 @@ dynamicBoolArrayAccess: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:939 // a: boolean[] = [true, false, true, true, false, false, true, false, false] - byte 0x0009 - byte 0x0000 - int 0 - int 1 + pushbytes 0x0009 + pushbytes 0x0000 + pushint 0 + pushint 1 setbit - int 1 - int 0 + pushint 1 + pushint 0 setbit - int 2 - int 1 + pushint 2 + pushint 1 setbit - int 3 - int 1 + pushint 3 + pushint 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 - int 1 + pushint 6 + pushint 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit concat frame_bury 0 // a: boolean[] @@ -84,7 +84,7 @@ dynamicBoolArrayAccess: frame_dig 0 // a: boolean[] store 255 // full array load 255 // full array - int 8 + pushint 8 getbit // set the subroutine return value @@ -92,11 +92,11 @@ dynamicBoolArrayAccess: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -104,7 +104,7 @@ dynamicBoolArrayAccess: err *call_NoOp: - method "dynamicBoolArrayAccess()bool" + pushbytes 0x8ec80249 // method "dynamicBoolArrayAccess()bool" txna ApplicationArgs 0 match *abi_route_dynamicBoolArrayAccess diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json index 6252d7e10..28ed9503b 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpOiBib29sZWFuCmR5bmFtaWNCb29sQXJyYXlBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzkKCS8vIGE6IGJvb2xlYW5bXSA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdCglieXRlIDB4MDAwOQoJYnl0ZSAweDAwMDAKCWludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJaW50IDAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWludCAzCglpbnQgMQoJc2V0Yml0CglpbnQgNAoJaW50IDAKCXNldGJpdAoJaW50IDUKCWludCAwCglzZXRiaXQKCWludCA2CglpbnQgMQoJc2V0Yml0CglpbnQgNwoJaW50IDAKCXNldGJpdAoJaW50IDgKCWludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDEKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbAoqYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MKCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MoKTogYm9vbGVhbgpkeW5hbWljQm9vbEFycmF5QWNjZXNzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzkKCS8vIGE6IGJvb2xlYW5bXSA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdCglwdXNoYnl0ZXMgMHgwMDA5CglwdXNoYnl0ZXMgMHgwMDAwCglwdXNoaW50IDAKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDIKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDMKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDcKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDgKCXB1c2hpbnQgMAoJc2V0Yml0Cgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBib29sZWFuW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTQxCgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IGJvb2xlYW5bXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDhlYzgwMjQ5IC8vIG1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc56_draft.json index d773db716..f20f1c78c 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc56_draft.json @@ -61,584 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 937, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 937, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 937, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 937, - "pc": [ - 10 - ] - }, - { - "teal": 16, - "source": 937, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 937, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 937, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 937, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 937, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 938, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 938, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 938, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 33, - "source": 938, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 938, - "pc": [ - 55, - 56 - ] - }, - { - "teal": 35, - "source": 938, - "pc": [ - 57 - ] - }, - { - "teal": 36, - "source": 938, - "pc": [ - 58 - ] - }, - { - "teal": 37, - "source": 938, - "pc": [ - 59 - ] - }, - { - "teal": 38, - "source": 938, - "pc": [ - 60 - ] - }, - { - "teal": 39, - "source": 938, - "pc": [ - 61 - ] - }, - { - "teal": 43, - "source": 938, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 46, - "source": 938, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 50, - "source": 939, - "pc": [ - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 51, - "source": 939, - "pc": [ - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 52, - "source": 939, - "pc": [ - 75 - ] - }, - { - "teal": 53, - "source": 939, - "pc": [ - 76 - ] - }, - { - "teal": 54, - "source": 939, - "pc": [ - 77 - ] - }, - { - "teal": 55, - "source": 939, - "pc": [ - 78 - ] - }, - { - "teal": 56, - "source": 939, - "pc": [ - 79 - ] - }, - { - "teal": 57, - "source": 939, - "pc": [ - 80 - ] - }, - { - "teal": 58, - "source": 939, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 59, - "source": 939, - "pc": [ - 83 - ] - }, - { - "teal": 60, - "source": 939, - "pc": [ - 84 - ] - }, - { - "teal": 61, - "source": 939, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 62, - "source": 939, - "pc": [ - 87 - ] - }, - { - "teal": 63, - "source": 939, - "pc": [ - 88 - ] - }, - { - "teal": 64, - "source": 939, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 65, - "source": 939, - "pc": [ - 91 - ] - }, - { - "teal": 66, - "source": 939, - "pc": [ - 92 - ] - }, - { - "teal": 67, - "source": 939, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 68, - "source": 939, - "pc": [ - 95 - ] - }, - { - "teal": 69, - "source": 939, - "pc": [ - 96 - ] - }, - { - "teal": 70, - "source": 939, - "pc": [ - 97 - ] - }, - { - "teal": 71, - "source": 939, - "pc": [ - 98 - ] - }, - { - "teal": 72, - "source": 939, - "pc": [ - 99 - ] - }, - { - "teal": 73, - "source": 939, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 74, - "source": 939, - "pc": [ - 102 - ] - }, - { - "teal": 75, - "source": 939, - "pc": [ - 103 - ] - }, - { - "teal": 76, - "source": 939, - "pc": [ - 104 - ] - }, - { - "teal": 77, - "source": 939, - "pc": [ - 105 - ] - }, - { - "teal": 78, - "source": 939, - "pc": [ - 106 - ] - }, - { - "teal": 79, - "source": 939, - "pc": [ - 107 - ] - }, - { - "teal": 80, - "source": 939, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 84, - "source": 941, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 85, - "source": 941, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 86, - "source": 941, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 87, - "source": 941, - "pc": [ - 116 - ] - }, - { - "teal": 88, - "source": 941, - "pc": [ - 117 - ] - }, - { - "teal": 91, - "source": 938, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 92, - "source": 938, - "pc": [ - 120 - ] - }, - { - "teal": 95, - "source": 937, - "pc": [ - 121 - ] - }, - { - "teal": 96, - "source": 937, - "pc": [ - 122 - ] - }, - { - "teal": 99, - "source": 937, - "pc": [ - 123, - 124, - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 100, - "source": 937, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 101, - "source": 937, - "pc": [ - 132, - 133, - 134, - 135 - ] - }, - { - "teal": 104, - "source": 937, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 136 - ] - }, - { - "teal": 107, - "source": 937, - "pc": [ - 137, - 138, - 139, - 140, - 141, - 142 - ] - }, - { - "teal": 108, - "source": 937, - "pc": [ - 143, - 144, - 145 - ] - }, - { - "teal": 109, - "source": 937, - "pc": [ - 146, - 147, - 148, - 149 - ] - }, - { - "teal": 112, - "source": 937, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 150 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 162 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MKCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpOiBib29sZWFuCmR5bmFtaWNCb29sQXJyYXlBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzkKCS8vIGE6IGJvb2xlYW5bXSA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdCglieXRlIDB4MDAwOQoJYnl0ZSAweDAwMDAKCWludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJaW50IDAKCXNldGJpdAoJaW50IDIKCWludCAxCglzZXRiaXQKCWludCAzCglpbnQgMQoJc2V0Yml0CglpbnQgNAoJaW50IDAKCXNldGJpdAoJaW50IDUKCWludCAwCglzZXRiaXQKCWludCA2CglpbnQgMQoJc2V0Yml0CglpbnQgNwoJaW50IDAKCXNldGJpdAoJaW50IDgKCWludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDEKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbAoqYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkeW5hbWljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MKCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNCb29sQXJyYXlBY2Nlc3MoKTogYm9vbGVhbgpkeW5hbWljQm9vbEFycmF5QWNjZXNzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MzkKCS8vIGE6IGJvb2xlYW5bXSA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdCglwdXNoYnl0ZXMgMHgwMDA5CglwdXNoYnl0ZXMgMHgwMDAwCglwdXNoaW50IDAKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDIKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDMKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCXB1c2hpbnQgMQoJc2V0Yml0CglwdXNoaW50IDcKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDgKCXB1c2hpbnQgMAoJc2V0Yml0Cgljb25jYXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBib29sZWFuW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTQxCgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IGJvb2xlYW5bXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJZ2V0Yml0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDhlYzgwMjQ5IC8vIG1ldGhvZCAiZHluYW1pY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheUFjY2VzcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAAEGCDEYFCQLMRkIjQwAYAAAAAAAAAAAAAAAUgAAAAAAAAAAAAAAgAQVH3x1iAALgAEAIk8CVFCwI0OKAAGAAIACAAmAAgAAIiNUIyJUgQIjVIEDI1SBBCJUgQUiVCQjVIEHIlQlIlRQjACLADX/NP8lU4wAiSNDgAS4RHs2NhoAjgH/8QCABI7IAkk2GgCOAf+UAA==", + "approval": "CjEYFIEGCzEZCI0MAHEAAAAAAAAAAAAAAGMAAAAAAAAAAAAAAIAEFR98dYgADYABAIEATwJUULCBAUOKAAGAAIACAAmAAgAAgQCBAVSBAYEAVIECgQFUgQOBAVSBBIEAVIEFgQBUgQaBAVSBB4EAVIEIgQBUUIwAiwA1/zT/gQhTjACJgQFDgAS4RHs2NhoAjgH/8ACABI7IAkk2GgCOAf+DAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal index 70c01f12b..7e615f718 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 1 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicBoolArrayUpdate()bool[] *abi_route_dynamicBoolArrayUpdate: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicBoolArrayUpdate()bool[] callsub dynamicBoolArrayUpdate @@ -39,38 +40,38 @@ dynamicBoolArrayUpdate: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:957 // a: boolean[] = [true, false, true, true, false, false, true, false, false] - byte 0x0009 - byte 0x0000 - int 0 + pushbytes 0x0009 + pushbytes 0x0000 + pushint 0 int 1 setbit int 1 - int 0 + pushint 0 setbit - int 2 + pushint 2 int 1 setbit - int 3 + pushint 3 int 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 + pushint 6 int 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit concat frame_bury 0 // a: boolean[] @@ -80,7 +81,7 @@ dynamicBoolArrayUpdate: frame_dig 0 // a: boolean[] store 255 // full array load 255 // full array - int 24 + pushint 24 int 1 setbit frame_bury 0 // a: boolean[] @@ -98,7 +99,7 @@ dynamicBoolArrayUpdate: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -106,7 +107,7 @@ dynamicBoolArrayUpdate: err *call_NoOp: - method "dynamicBoolArrayUpdate()bool[]" + pushbytes 0xd71960a6 // method "dynamicBoolArrayUpdate()bool[]" txna ApplicationArgs 0 match *abi_route_dynamicBoolArrayUpdate diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json index e3b21e179..310fd50a2 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10KKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5VXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5VXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1NwoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1OQoJLy8gYVs4XSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IGJvb2xlYW5bXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyNAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NjEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlVcGRhdGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpYm9vbFtdCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5VXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTU3CgkvLyBhOiBib29sZWFuW10gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJcHVzaGJ5dGVzIDB4MDAwOQoJcHVzaGJ5dGVzIDB4MDAwMAoJcHVzaGludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJaW50IDEKCXNldGJpdAoJcHVzaGludCAzCglpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCWludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NTkKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDI0CglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk2MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkNzE5NjBhNiAvLyBtZXRob2QgImR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheVVwZGF0ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc56_draft.json index 9a074f402..bfd71ca77 100644 --- a/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc56_draft.json @@ -61,577 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 955, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 955, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 955, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 955, - "pc": [ - 9 - ] - }, - { - "teal": 16, - "source": 955, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 955, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 955, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 955, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 955, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 956, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 956, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 956, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 956, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 956, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 956, - "pc": [ - 53 - ] - }, - { - "teal": 39, - "source": 956, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 42, - "source": 956, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 46, - "source": 957, - "pc": [ - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 47, - "source": 957, - "pc": [ - 63, - 64, - 65, - 66 - ] - }, - { - "teal": 48, - "source": 957, - "pc": [ - 67 - ] - }, - { - "teal": 49, - "source": 957, - "pc": [ - 68 - ] - }, - { - "teal": 50, - "source": 957, - "pc": [ - 69 - ] - }, - { - "teal": 51, - "source": 957, - "pc": [ - 70 - ] - }, - { - "teal": 52, - "source": 957, - "pc": [ - 71 - ] - }, - { - "teal": 53, - "source": 957, - "pc": [ - 72 - ] - }, - { - "teal": 54, - "source": 957, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 55, - "source": 957, - "pc": [ - 75 - ] - }, - { - "teal": 56, - "source": 957, - "pc": [ - 76 - ] - }, - { - "teal": 57, - "source": 957, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 58, - "source": 957, - "pc": [ - 79 - ] - }, - { - "teal": 59, - "source": 957, - "pc": [ - 80 - ] - }, - { - "teal": 60, - "source": 957, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 61, - "source": 957, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 957, - "pc": [ - 84 - ] - }, - { - "teal": 63, - "source": 957, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 64, - "source": 957, - "pc": [ - 87 - ] - }, - { - "teal": 65, - "source": 957, - "pc": [ - 88 - ] - }, - { - "teal": 66, - "source": 957, - "pc": [ - 89 - ] - }, - { - "teal": 67, - "source": 957, - "pc": [ - 90 - ] - }, - { - "teal": 68, - "source": 957, - "pc": [ - 91 - ] - }, - { - "teal": 69, - "source": 957, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 70, - "source": 957, - "pc": [ - 94 - ] - }, - { - "teal": 71, - "source": 957, - "pc": [ - 95 - ] - }, - { - "teal": 72, - "source": 957, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 73, - "source": 957, - "pc": [ - 98 - ] - }, - { - "teal": 74, - "source": 957, - "pc": [ - 99 - ] - }, - { - "teal": 75, - "source": 957, - "pc": [ - 100 - ] - }, - { - "teal": 76, - "source": 957, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 80, - "source": 959, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 81, - "source": 959, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 82, - "source": 959, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 83, - "source": 959, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 84, - "source": 959, - "pc": [ - 111 - ] - }, - { - "teal": 85, - "source": 959, - "pc": [ - 112 - ] - }, - { - "teal": 86, - "source": 959, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 90, - "source": 961, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 93, - "source": 956, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 94, - "source": 956, - "pc": [ - 119 - ] - }, - { - "teal": 97, - "source": 955, - "pc": [ - 120 - ] - }, - { - "teal": 98, - "source": 955, - "pc": [ - 121 - ] - }, - { - "teal": 101, - "source": 955, - "pc": [ - 122, - 123, - 124, - 125, - 126, - 127 - ] - }, - { - "teal": 102, - "source": 955, - "pc": [ - 128, - 129, - 130 - ] - }, - { - "teal": 103, - "source": 955, - "pc": [ - 131, - 132, - 133, - 134 - ] - }, - { - "teal": 106, - "source": 955, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 135 - ] - }, - { - "teal": 109, - "source": 955, - "pc": [ - 136, - 137, - 138, - 139, - 140, - 141 - ] - }, - { - "teal": 110, - "source": 955, - "pc": [ - 142, - 143, - 144 - ] - }, - { - "teal": 111, - "source": 955, - "pc": [ - 145, - 146, - 147, - 148 - ] - }, - { - "teal": 114, - "source": 955, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 149 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 149 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 163 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10KKmFiaV9yb3V0ZV9keW5hbWljQm9vbEFycmF5VXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5VXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1NwoJLy8gYTogYm9vbGVhbltdID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDA5CglieXRlIDB4MDAwMAoJaW50IDAKCWludCAxCglzZXRiaXQKCWludCAxCglpbnQgMAoJc2V0Yml0CglpbnQgMgoJaW50IDEKCXNldGJpdAoJaW50IDMKCWludCAxCglzZXRiaXQKCWludCA0CglpbnQgMAoJc2V0Yml0CglpbnQgNQoJaW50IDAKCXNldGJpdAoJaW50IDYKCWludCAxCglzZXRiaXQKCWludCA3CglpbnQgMAoJc2V0Yml0CglpbnQgOAoJaW50IDAKCXNldGJpdAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1OQoJLy8gYVs4XSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIGE6IGJvb2xlYW5bXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyNAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NjEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogYm9vbGVhbltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQm9vbEFycmF5VXBkYXRlKClib29sW10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2R5bmFtaWNCb29sQXJyYXlVcGRhdGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpYm9vbFtdCiphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXQoJY2FsbHN1YiBkeW5hbWljQm9vbEFycmF5VXBkYXRlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY0Jvb2xBcnJheVVwZGF0ZSgpOiBib29sZWFuW10KZHluYW1pY0Jvb2xBcnJheVVwZGF0ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTU3CgkvLyBhOiBib29sZWFuW10gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJcHVzaGJ5dGVzIDB4MDAwOQoJcHVzaGJ5dGVzIDB4MDAwMAoJcHVzaGludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJaW50IDEKCXNldGJpdAoJcHVzaGludCAzCglpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCWludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IGJvb2xlYW5bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NTkKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDI0CglpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogYm9vbGVhbltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk2MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBib29sZWFuW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkNzE5NjBhNiAvLyBtZXRob2QgImR5bmFtaWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZHluYW1pY0Jvb2xBcnJheVVwZGF0ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAGMRgUJAsxGQiNDABgAAAAAAAAAAAAAABSAAAAAAAAAAAAAACABBUffHWIAARQsCJDigABgACAAgAJgAIAACMiVCIjVIECIlSBAyJUgQQjVIEFI1QkIlSBByNUgQgjVFCMAIsANf80/4EYIlSMAIsAjACJIkOABLhEezY2GgCOAf/xAIAE1xlgpjYaAI4B/5QA", + "approval": "CiABATEYFIEGCzEZCI0MAG8AAAAAAAAAAAAAAGEAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAgAJgAIAAIEAgQFUgQGBAFSBAoEBVIEDgQFUgQSBAFSBBYEAVIEGgQFUgQeBAFSBCIEAVFCMAIsANf80/4EYgQFUjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgATXGWCmNhoAjgH/hQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal index 2ed64548a..be8824dfe 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // dynamicTupleArray()uint64 *abi_route_dynamicTupleArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute dynamicTupleArray()uint64 callsub dynamicTupleArray itob concat log - int 1 + pushint 1 return // dynamicTupleArray(): uint64 @@ -40,14 +40,14 @@ dynamicTupleArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:379 // a: [uint16, uint64][] = [ // [11, 22], // [33, 44], // ] - byte 0x000b00000000000000160021000000000000002c + pushbytes 0x000b00000000000000160021000000000000002c frame_bury 0 // a: [uint16, uint64][] // tests/contracts/abi.algo.ts:384 @@ -63,11 +63,11 @@ dynamicTupleArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -75,7 +75,7 @@ dynamicTupleArray: err *call_NoOp: - method "dynamicTupleArray()uint64" + pushbytes 0x10c57510 // method "dynamicTupleArray()uint64" txna ApplicationArgs 0 match *abi_route_dynamicTupleArray diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json b/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json index bd34f5f4f..c10dc6169 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljVHVwbGVBcnJheSgpdWludDY0CiphYmlfcm91dGVfZHluYW1pY1R1cGxlQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljVHVwbGVBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNUdXBsZUFycmF5KCk6IHVpbnQ2NApkeW5hbWljVHVwbGVBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQxNiwgdWludDY0XVtdID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMDAwMDAwMDAwMDAwMTYwMDIxMDAwMDAwMDAwMDAwMDAyYwoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ2NF1bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozODQKCS8vIHJldHVybiBhWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDY0XVtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljVHVwbGVBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNUdXBsZUFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljVHVwbGVBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljVHVwbGVBcnJheSgpOiB1aW50NjQKZHluYW1pY1R1cGxlQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQxNiwgdWludDY0XVtdID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMjEwMDAwMDAwMDAwMDAwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDY0XVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50NjRdW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDEyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MTBjNTc1MTAgLy8gbWV0aG9kICJkeW5hbWljVHVwbGVBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.arc56_draft.json b/tests/contracts/artifacts/ABITestDynamicTupleArray.arc56_draft.json index f9e8ae9a8..5f5df3bc2 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.arc56_draft.json @@ -61,367 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 377, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 377, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 377, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 377, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 377, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 377, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 377, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 377, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 377, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 378, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 378, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 378, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 378, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 378, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 378, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 378, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 378, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 378, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 50, - "source": 379, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 51, - "source": 379, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 55, - "source": 384, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 56, - "source": 384, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 57, - "source": 384, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 58, - "source": 384, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 59, - "source": 384, - "pc": [ - 92 - ] - }, - { - "teal": 62, - "source": 378, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 63, - "source": 378, - "pc": [ - 95 - ] - }, - { - "teal": 66, - "source": 377, - "pc": [ - 96 - ] - }, - { - "teal": 67, - "source": 377, - "pc": [ - 97 - ] - }, - { - "teal": 70, - "source": 377, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 71, - "source": 377, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 72, - "source": 377, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 75, - "source": 377, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 111 - ] - }, - { - "teal": 78, - "source": 377, - "pc": [ - 112, - 113, - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 79, - "source": 377, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 80, - "source": 377, - "pc": [ - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 83, - "source": 377, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 125 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkeW5hbWljVHVwbGVBcnJheSgpdWludDY0CiphYmlfcm91dGVfZHluYW1pY1R1cGxlQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljVHVwbGVBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNUdXBsZUFycmF5KCk6IHVpbnQ2NApkeW5hbWljVHVwbGVBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQxNiwgdWludDY0XVtdID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMDAwMDAwMDAwMDAwMTYwMDIxMDAwMDAwMDAwMDAwMDAyYwoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ2NF1bXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozODQKCS8vIHJldHVybiBhWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDY0XVtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljVHVwbGVBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX2R5bmFtaWNUdXBsZUFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBkeW5hbWljVHVwbGVBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljVHVwbGVBcnJheSgpOiB1aW50NjQKZHluYW1pY1R1cGxlQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQxNiwgdWludDY0XVtdID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMjEwMDAwMDAwMDAwMDAwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDY0XVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50NjRdW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDEyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MTBjNTc1MTAgLy8gbWV0aG9kICJkeW5hbWljVHVwbGVBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEkAAAAAAAAAAAAAADsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAFAALAAAAAAAAABYAIQAAAAAAAAAsjACLADX/NP9XDAgXjACJIkOABLhEezY2GgCOAf/xAIAEEMV1EDYaAI4B/6sA", + "approval": "CjEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBQACwAAAAAAAAAWACEAAAAAAAAALIwAiwA1/zT/VwwIF4wAiYEBQ4AEuER7NjYaAI4B//AAgAQQxXUQNhoAjgH/qQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal index ed7da0fb4..5f68b14f7 100644 --- a/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestEmptyDynamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // emptyDynamicArray()uint64[] *abi_route_emptyDynamicArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute emptyDynamicArray()uint64[] callsub emptyDynamicArray dup len - int 8 + pushint 8 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // emptyDynamicArray(): uint64[] @@ -48,15 +48,15 @@ emptyDynamicArray: // tests/contracts/abi.algo.ts:868 // return []; - byte 0x + pushbytes 0x retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -64,7 +64,7 @@ emptyDynamicArray: err *call_NoOp: - method "emptyDynamicArray()uint64[]" + pushbytes 0xc5a2896d // method "emptyDynamicArray()uint64[]" txna ApplicationArgs 0 match *abi_route_emptyDynamicArray diff --git a/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json b/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json index e3744e345..2bdc291d8 100644 --- a/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KKmFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgZW1wdHlEeW5hbWljQXJyYXkKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVtcHR5RHluYW1pY0FycmF5KCk6IHVpbnQ2NFtdCmVtcHR5RHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg2OAoJLy8gcmV0dXJuIFtdOwoJYnl0ZSAweAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZW1wdHlEeW5hbWljQXJyYXkoKXVpbnQ2NFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZW1wdHlEeW5hbWljQXJyYXkoKXVpbnQ2NFtdCiphYmlfcm91dGVfZW1wdHlEeW5hbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgZW1wdHlEeW5hbWljQXJyYXkKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZW1wdHlEeW5hbWljQXJyYXkoKTogdWludDY0W10KZW1wdHlEeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODY4CgkvLyByZXR1cm4gW107CglwdXNoYnl0ZXMgMHgKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzVhMjg5NmQgLy8gbWV0aG9kICJlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2VtcHR5RHluYW1pY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc56_draft.json b/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc56_draft.json index c048e1185..750796f75 100644 --- a/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestEmptyDynamicArray.arc56_draft.json @@ -61,335 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 866, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 866, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 866, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 866, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 866, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 866, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 866, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 866, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 866, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 867, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 867, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 867, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 867, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 867, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 867, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 867, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 867, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 38, - "source": 867, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 867, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 867, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 867, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 867, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 867, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 867, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 51, - "source": 868, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 52, - "source": 867, - "pc": [ - 69 - ] - }, - { - "teal": 55, - "source": 866, - "pc": [ - 70 - ] - }, - { - "teal": 56, - "source": 866, - "pc": [ - 71 - ] - }, - { - "teal": 59, - "source": 866, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 60, - "source": 866, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 61, - "source": 866, - "pc": [ - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 64, - "source": 866, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 85 - ] - }, - { - "teal": 67, - "source": 866, - "pc": [ - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 68, - "source": 866, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 69, - "source": 866, - "pc": [ - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 72, - "source": 866, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 99 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 84 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 98 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KKmFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgZW1wdHlEeW5hbWljQXJyYXkKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVtcHR5RHluYW1pY0FycmF5KCk6IHVpbnQ2NFtdCmVtcHR5RHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg2OAoJLy8gcmV0dXJuIFtdOwoJYnl0ZSAweAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZW1wdHlEeW5hbWljQXJyYXkoKXVpbnQ2NFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9lbXB0eUR5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZW1wdHlEeW5hbWljQXJyYXkoKXVpbnQ2NFtdCiphYmlfcm91dGVfZW1wdHlEeW5hbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgZW1wdHlEeW5hbWljQXJyYXkKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZW1wdHlEeW5hbWljQXJyYXkoKTogdWludDY0W10KZW1wdHlEeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODY4CgkvLyByZXR1cm4gW107CglwdXNoYnl0ZXMgMHgKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzVhMjg5NmQgLy8gbWV0aG9kICJlbXB0eUR5bmFtaWNBcnJheSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2VtcHR5RHluYW1pY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIAEFR98dYgAD0kVgQgKFlcGAkxQULAiQ4oAAYAAiSJDgAS4RHs2NhoAjgH/8QCABMWiiW02GgCOAf/FAA==", + "approval": "CjEYFIEGCzEZCI0MADEAAAAAAAAAAAAAACMAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQgKFlcGAkxQULCBAUOKAAGAAImBAUOABLhEezY2GgCOAf/wAIAExaKJbTYaAI4B/8MA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal b/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal index 056b18ebb..623672f01 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // emptyStaticArray()uint16[3] *abi_route_emptyStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute emptyStaticArray()uint16[3] callsub emptyStaticArray concat log - int 1 + pushint 1 return // emptyStaticArray(): StaticArray @@ -39,11 +39,11 @@ emptyStaticArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:842 // a: StaticArray = [] - byte 0x000000000000 + pushbytes 0x000000000000 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:844 @@ -55,11 +55,11 @@ emptyStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -67,7 +67,7 @@ emptyStaticArray: err *call_NoOp: - method "emptyStaticArray()uint16[3]" + pushbytes 0xb68841a8 // method "emptyStaticArray()uint16[3]" txna ApplicationArgs 0 match *abi_route_emptyStaticArray diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json b/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json index 8bcc11761..e3a75553a 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10KKmFiaV9yb3V0ZV9lbXB0eVN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBlbXB0eVN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZW1wdHlTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CmVtcHR5U3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbXQoJYnl0ZSAweDAwMDAwMDAwMDAwMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODQ0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZW1wdHlTdGF0aWNBcnJheSgpdWludDE2WzNdCiphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBlbXB0eVN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGVtcHR5U3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgplbXB0eVN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhiNjg4NDFhOCAvLyBtZXRob2QgImVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestEmptyStaticArray.arc56_draft.json index 870e06ccd..e17e61d76 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.arc56_draft.json @@ -61,314 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 840, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 840, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 840, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 840, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 840, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 840, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 840, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 840, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 840, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 841, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 841, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 841, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 841, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 841, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 841, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 841, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 841, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 842, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 47, - "source": 842, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 51, - "source": 844, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 54, - "source": 841, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 55, - "source": 841, - "pc": [ - 72 - ] - }, - { - "teal": 58, - "source": 840, - "pc": [ - 73 - ] - }, - { - "teal": 59, - "source": 840, - "pc": [ - 74 - ] - }, - { - "teal": 62, - "source": 840, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 63, - "source": 840, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 64, - "source": 840, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 67, - "source": 840, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 70, - "source": 840, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 71, - "source": 840, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 72, - "source": 840, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 75, - "source": 840, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10KKmFiaV9yb3V0ZV9lbXB0eVN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBlbXB0eVN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZW1wdHlTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CmVtcHR5U3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbXQoJYnl0ZSAweDAwMDAwMDAwMDAwMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODQ0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZW1wdHlTdGF0aWNBcnJheSgpdWludDE2WzNdCiphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBlbXB0eVN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGVtcHR5U3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgplbXB0eVN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDE2LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhiNjg4NDFhOCAvLyBtZXRob2QgImVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAGAAAAAAAAjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABLaIQag2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACABgAAAAAAAIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEtohBqDYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestExtractUint.approval.teal b/tests/contracts/artifacts/ABITestExtractUint.approval.teal index 0c73607ff..23917bbed 100644 --- a/tests/contracts/artifacts/ABITestExtractUint.approval.teal +++ b/tests/contracts/artifacts/ABITestExtractUint.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // extractUint(uint64)uint8 *abi_route_extractUint: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // arg: uint64 txna ApplicationArgs 1 @@ -36,7 +36,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob dup bitlen - int 8 + pushint 8 <= // extractUint return value overflowed 8 bits @@ -44,7 +44,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 7 1 concat log - int 1 + pushint 1 return // extractUint(arg: uint64): uint<8> @@ -52,7 +52,7 @@ extractUint: proto 1 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1119 // x = >arg @@ -68,11 +68,11 @@ extractUint: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -80,7 +80,7 @@ extractUint: err *call_NoOp: - method "extractUint(uint64)uint8" + pushbytes 0x3b3f6b79 // method "extractUint(uint64)uint8" txna ApplicationArgs 0 match *abi_route_extractUint diff --git a/tests/contracts/artifacts/ABITestExtractUint.arc32.json b/tests/contracts/artifacts/ABITestExtractUint.arc32.json index fd1996a13..c2d8373fe 100644 --- a/tests/contracts/artifacts/ABITestExtractUint.arc32.json +++ b/tests/contracts/artifacts/ABITestExtractUint.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBleHRyYWN0VWludCh1aW50NjQpdWludDgKKmFiaV9yb3V0ZV9leHRyYWN0VWludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4dHJhY3RVaW50KHVpbnQ2NCl1aW50OAoJY2FsbHN1YiBleHRyYWN0VWludAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoKCS8vIGV4dHJhY3RVaW50IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4dHJhY3RVaW50KGFyZzogdWludDY0KTogdWludDw4PgpleHRyYWN0VWludDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTkKCS8vIHggPSA8dWludDw4Pj5hcmcKCWZyYW1lX2RpZyAtMSAvLyBhcmc6IHVpbnQ2NAoJZnJhbWVfYnVyeSAwIC8vIHg6IHVuc2FmZSB1aW50OAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTIwCgkvLyByZXR1cm4geDsKCWZyYW1lX2RpZyAwIC8vIHg6IHVuc2FmZSB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZXh0cmFjdFVpbnQodWludDY0KXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9leHRyYWN0VWludAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZXh0cmFjdFVpbnQodWludDY0KXVpbnQ4CiphYmlfcm91dGVfZXh0cmFjdFVpbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYXJnOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4dHJhY3RVaW50KHVpbnQ2NCl1aW50OAoJY2FsbHN1YiBleHRyYWN0VWludAoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyBleHRyYWN0VWludCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZXh0cmFjdFVpbnQoYXJnOiB1aW50NjQpOiB1aW50PDg+CmV4dHJhY3RVaW50OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTE5CgkvLyB4ID0gPHVpbnQ8OD4+YXJnCglmcmFtZV9kaWcgLTEgLy8gYXJnOiB1aW50NjQKCWZyYW1lX2J1cnkgMCAvLyB4OiB1bnNhZmUgdWludDgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEyMAoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgMCAvLyB4OiB1bnNhZmUgdWludDgKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4M2IzZjZiNzkgLy8gbWV0aG9kICJleHRyYWN0VWludCh1aW50NjQpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2V4dHJhY3RVaW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestExtractUint.arc56_draft.json b/tests/contracts/artifacts/ABITestExtractUint.arc56_draft.json index 4e450b81d..e81b5eb59 100644 --- a/tests/contracts/artifacts/ABITestExtractUint.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestExtractUint.arc56_draft.json @@ -66,377 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1117, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1117, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1117, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1117, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1117, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1117, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1117, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1117, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1117, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1118, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1118, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1118, - "pc": [ - 49 - ] - }, - { - "teal": 35, - "source": 1118, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 36, - "source": 1118, - "pc": [ - 53 - ] - }, - { - "teal": 37, - "source": 1118, - "pc": [ - 54 - ] - }, - { - "teal": 38, - "source": 1118, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 1118, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 40, - "source": 1118, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 1118, - "errorMessage": "extractUint return value overflowed 8 bits", - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1118, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 45, - "source": 1118, - "pc": [ - 63 - ] - }, - { - "teal": 46, - "source": 1118, - "pc": [ - 64 - ] - }, - { - "teal": 47, - "source": 1118, - "pc": [ - 65 - ] - }, - { - "teal": 48, - "source": 1118, - "pc": [ - 66 - ] - }, - { - "teal": 52, - "source": 1118, - "pc": [ - 67, - 68, - 69 - ] - }, - { - "teal": 55, - "source": 1118, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 59, - "source": 1119, - "pc": [ - 72, - 73 - ] - }, - { - "teal": 60, - "source": 1119, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 64, - "source": 1120, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 67, - "source": 1118, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 68, - "source": 1118, - "pc": [ - 80 - ] - }, - { - "teal": 71, - "source": 1117, - "pc": [ - 81 - ] - }, - { - "teal": 72, - "source": 1117, - "pc": [ - 82 - ] - }, - { - "teal": 75, - "source": 1117, - "pc": [ - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 76, - "source": 1117, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 77, - "source": 1117, - "pc": [ - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 80, - "source": 1117, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 96 - ] - }, - { - "teal": 83, - "source": 1117, - "pc": [ - 97, - 98, - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 84, - "source": 1117, - "pc": [ - 103, - 104, - 105 - ] - }, - { - "teal": 85, - "source": 1117, - "pc": [ - 106, - 107, - 108, - 109 - ] - }, - { - "teal": 88, - "source": 1117, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 110 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 56 + ], + "errorMessage": "extractUint return value overflowed 8 bits" + }, + { + "pc": [ + 95 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 109 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBleHRyYWN0VWludCh1aW50NjQpdWludDgKKmFiaV9yb3V0ZV9leHRyYWN0VWludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4dHJhY3RVaW50KHVpbnQ2NCl1aW50OAoJY2FsbHN1YiBleHRyYWN0VWludAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoKCS8vIGV4dHJhY3RVaW50IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4dHJhY3RVaW50KGFyZzogdWludDY0KTogdWludDw4PgpleHRyYWN0VWludDoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTkKCS8vIHggPSA8dWludDw4Pj5hcmcKCWZyYW1lX2RpZyAtMSAvLyBhcmc6IHVpbnQ2NAoJZnJhbWVfYnVyeSAwIC8vIHg6IHVuc2FmZSB1aW50OAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTIwCgkvLyByZXR1cm4geDsKCWZyYW1lX2RpZyAwIC8vIHg6IHVuc2FmZSB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZXh0cmFjdFVpbnQodWludDY0KXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9leHRyYWN0VWludAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZXh0cmFjdFVpbnQodWludDY0KXVpbnQ4CiphYmlfcm91dGVfZXh0cmFjdFVpbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYXJnOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4dHJhY3RVaW50KHVpbnQ2NCl1aW50OAoJY2FsbHN1YiBleHRyYWN0VWludAoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyBleHRyYWN0VWludCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZXh0cmFjdFVpbnQoYXJnOiB1aW50NjQpOiB1aW50PDg+CmV4dHJhY3RVaW50OgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTE5CgkvLyB4ID0gPHVpbnQ8OD4+YXJnCglmcmFtZV9kaWcgLTEgLy8gYXJnOiB1aW50NjQKCWZyYW1lX2J1cnkgMCAvLyB4OiB1bnNhZmUgdWludDgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEyMAoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgMCAvLyB4OiB1bnNhZmUgdWludDgKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4M2IzZjZiNzkgLy8gbWV0aG9kICJleHRyYWN0VWludCh1aW50NjQpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2V4dHJhY3RVaW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADoAAAAAAAAAAAAAACwAAAAAAAAAAAAAAIAEFR98dTYaAReIAA4WSZOBCA5EVwcBULAiQ4oBAYAAi/+MAIsAjACJIkOABLhEezY2GgCOAf/xAIAEOz9reTYaAI4B/7oA", + "approval": "CjEYFIEGCzEZCI0MADwAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIAEFR98dTYaAReIAA8WSZOBCA5EVwcBULCBAUOKAQGAAIv/jACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgAQ7P2t5NhoAjgH/uAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestForEachReturn.approval.teal b/tests/contracts/artifacts/ABITestForEachReturn.approval.teal index 3317bfa53..b8f936179 100644 --- a/tests/contracts/artifacts/ABITestForEachReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestForEachReturn.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // forEachReturn()uint64 *abi_route_forEachReturn: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute forEachReturn()uint64 callsub forEachReturn itob concat log - int 1 + pushint 1 return // forEachReturn(): uint64 @@ -45,12 +46,12 @@ forEachReturn: // tests/contracts/abi.algo.ts:1372 // a: StaticArray = [1, 2, 3] - byte 0x000000000000000100000000000000020000000000000003 + pushbytes 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1373 // sum = 0 - int 0 + pushint 0 frame_bury 1 // sum: uint64 // tests/contracts/abi.algo.ts:1375 @@ -61,7 +62,7 @@ forEachReturn: extract 0 8 btoi frame_bury 3 // v: uint64 - int 0 + pushint 0 frame_bury 4 // the offset we are extracting the next element from *forEach_0: @@ -69,7 +70,7 @@ forEachReturn: // tests/contracts/abi.algo.ts:1376 // sum > 2 frame_dig 1 // sum: uint64 - int 2 + pushint 2 > bz *if0_end @@ -88,16 +89,16 @@ forEachReturn: // increment offset and loop if not out of bounds frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forEach_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 3 // v: uint64 @@ -116,11 +117,11 @@ forEachReturn: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -128,7 +129,7 @@ forEachReturn: err *call_NoOp: - method "forEachReturn()uint64" + pushbytes 0xe0e67827 // method "forEachReturn()uint64" txna ApplicationArgs 0 match *abi_route_forEachReturn diff --git a/tests/contracts/artifacts/ABITestForEachReturn.arc32.json b/tests/contracts/artifacts/ABITestForEachReturn.arc32.json index 933254c0e..399b3591a 100644 --- a/tests/contracts/artifacts/ABITestForEachReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestForEachReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JFYWNoUmV0dXJuKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JFYWNoUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckVhY2hSZXR1cm4oKXVpbnQ2NAoJY2FsbHN1YiBmb3JFYWNoUmV0dXJuCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yRWFjaFJldHVybigpOiB1aW50NjQKZm9yRWFjaFJldHVybjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3MgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3MwoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc1CgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzYKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc2CgkvLyByZXR1cm47CgliICpmb3JFYWNoXzBfZW5kCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc3CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc5CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJmb3JFYWNoUmV0dXJuKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JFYWNoUmV0dXJuKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JFYWNoUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yRWFjaFJldHVybigpdWludDY0CgljYWxsc3ViIGZvckVhY2hSZXR1cm4KCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZm9yRWFjaFJldHVybigpOiB1aW50NjQKZm9yRWFjaFJldHVybjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3MgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzczCgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc1CgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc2CgkvLyBzdW0gPiAyCglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJcHVzaGludCAyCgk+CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzYKCS8vIHJldHVybjsKCWIgKmZvckVhY2hfMF9lbmQKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzcKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CgkrCglkdXAKCXB1c2hpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzkKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTBlNjc4MjcgLy8gbWV0aG9kICJmb3JFYWNoUmV0dXJuKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestForEachReturn.arc56_draft.json b/tests/contracts/artifacts/ABITestForEachReturn.arc56_draft.json index aea0b73a4..0dd389ea1 100644 --- a/tests/contracts/artifacts/ABITestForEachReturn.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestForEachReturn.arc56_draft.json @@ -61,621 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1370, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1370, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1370, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1370, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1370, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1370, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1370, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1370, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1370, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1371, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 1371, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 1371, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 1371, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 1371, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1371, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1371, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1371, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1371, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1371, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 48, - "source": 1372, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 49, - "source": 1372, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 53, - "source": 1373, - "pc": [ - 91 - ] - }, - { - "teal": 54, - "source": 1373, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 58, - "source": 1375, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 59, - "source": 1375, - "pc": [ - 96 - ] - }, - { - "teal": 60, - "source": 1375, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 61, - "source": 1375, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 62, - "source": 1375, - "pc": [ - 102 - ] - }, - { - "teal": 63, - "source": 1375, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 64, - "source": 1375, - "pc": [ - 105 - ] - }, - { - "teal": 65, - "source": 1375, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 71, - "source": 1376, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 72, - "source": 1376, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 73, - "source": 1376, - "pc": [ - 112 - ] - }, - { - "teal": 74, - "source": 1376, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 79, - "source": 1376, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 84, - "source": 1377, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 85, - "source": 1377, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 86, - "source": 1377, - "pc": [ - 123 - ] - }, - { - "teal": 87, - "source": 1377, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 90, - "source": 1375, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 91, - "source": 1375, - "pc": [ - 128 - ] - }, - { - "teal": 92, - "source": 1375, - "pc": [ - 129 - ] - }, - { - "teal": 93, - "source": 1375, - "pc": [ - 130 - ] - }, - { - "teal": 94, - "source": 1375, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 95, - "source": 1375, - "pc": [ - 133 - ] - }, - { - "teal": 96, - "source": 1375, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 97, - "source": 1375, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 98, - "source": 1375, - "pc": [ - 139, - 140 - ] - }, - { - "teal": 99, - "source": 1375, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 100, - "source": 1375, - "pc": [ - 143 - ] - }, - { - "teal": 101, - "source": 1375, - "pc": [ - 144 - ] - }, - { - "teal": 102, - "source": 1375, - "pc": [ - 145 - ] - }, - { - "teal": 103, - "source": 1375, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 104, - "source": 1375, - "pc": [ - 148, - 149, - 150 - ] - }, - { - "teal": 109, - "source": 1379, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 112, - "source": 1371, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 115, - "source": 1371, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 116, - "source": 1371, - "pc": [ - 157 - ] - }, - { - "teal": 119, - "source": 1370, - "pc": [ - 158 - ] - }, - { - "teal": 120, - "source": 1370, - "pc": [ - 159 - ] - }, - { - "teal": 123, - "source": 1370, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 124, - "source": 1370, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 125, - "source": 1370, - "pc": [ - 169, - 170, - 171, - 172 - ] - }, - { - "teal": 128, - "source": 1370, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 173 - ] - }, - { - "teal": 131, - "source": 1370, - "pc": [ - 174, - 175, - 176, - 177, - 178, - 179 - ] - }, - { - "teal": 132, - "source": 1370, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 133, - "source": 1370, - "pc": [ - 183, - 184, - 185, - 186 - ] - }, - { - "teal": 136, - "source": 1370, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 187 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 177 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 191 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JFYWNoUmV0dXJuKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JFYWNoUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckVhY2hSZXR1cm4oKXVpbnQ2NAoJY2FsbHN1YiBmb3JFYWNoUmV0dXJuCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yRWFjaFJldHVybigpOiB1aW50NjQKZm9yRWFjaFJldHVybjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3MgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3MwoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc1CgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzYKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc2CgkvLyByZXR1cm47CgliICpmb3JFYWNoXzBfZW5kCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc3CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc5CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJmb3JFYWNoUmV0dXJuKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JFYWNoUmV0dXJuKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JFYWNoUmV0dXJuOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yRWFjaFJldHVybigpdWludDY0CgljYWxsc3ViIGZvckVhY2hSZXR1cm4KCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZm9yRWFjaFJldHVybigpOiB1aW50NjQKZm9yRWFjaFJldHVybjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM3MgoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzczCgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc1CgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzc2CgkvLyBzdW0gPiAyCglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJcHVzaGludCAyCgk+CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzYKCS8vIHJldHVybjsKCWIgKmZvckVhY2hfMF9lbmQKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzcKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CgkrCglkdXAKCXB1c2hpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNzkKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTBlNjc4MjcgLy8gbWV0aG9kICJmb3JFYWNoUmV0dXJuKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2ZvckVhY2hSZXR1cm4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAIMRgUgQYLMRkIjQwAhQAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEcEgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMACOMAYsASYwCVwAIF4wDI4wEiwGBAg1BAANCACCLAYsDCIwBiwQkCEmBGAxBAA6MBIsCiwQkWBeMA0L/1YsBjABGBIkiQ4AEuER7NjYaAI4B//EAgATg5ngnNhoAjgH/bwA=", + "approval": "CiYBADEYFIEGCzEZCI0MAIsAAAAAAAAAAAAAAH0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSAGAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA4wAgQCMAYsASYwCVwAIF4wDgQCMBIsBgQINQQADQgAiiwGLAwiMAYsEgQgISYEYDEEAD4wEiwKLBIEIWBeMA0L/04sBjABGBImBAUOABLhEezY2GgCOAf/wAIAE4OZ4JzYaAI4B/2kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestForOfBreak.approval.teal b/tests/contracts/artifacts/ABITestForOfBreak.approval.teal index c194a7e2d..031f35079 100644 --- a/tests/contracts/artifacts/ABITestForOfBreak.approval.teal +++ b/tests/contracts/artifacts/ABITestForOfBreak.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // forOfBreak()uint64 *abi_route_forOfBreak: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute forOfBreak()uint64 callsub forOfBreak itob concat log - int 1 + pushint 1 return // forOfBreak(): uint64 @@ -45,12 +46,12 @@ forOfBreak: // tests/contracts/abi.algo.ts:1498 // a: StaticArray = [1, 2, 3] - byte 0x000000000000000100000000000000020000000000000003 + pushbytes 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1499 // sum = 0 - int 0 + pushint 0 frame_bury 1 // sum: uint64 frame_dig 0 // a: StaticArray dup @@ -58,7 +59,7 @@ forOfBreak: extract 0 8 btoi frame_bury 3 // v: uint64 - int 0 + pushint 0 frame_bury 4 // the offset we are extracting the next element from *forOf_0: @@ -66,7 +67,7 @@ forOfBreak: // tests/contracts/abi.algo.ts:1504 // sum > 2 frame_dig 1 // sum: uint64 - int 2 + pushint 2 > bz *if0_end @@ -84,16 +85,16 @@ forOfBreak: *forOf_0_continue: // increment offset and loop if not out of bounds frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forOf_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 3 // v: uint64 @@ -112,11 +113,11 @@ forOfBreak: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -124,7 +125,7 @@ forOfBreak: err *call_NoOp: - method "forOfBreak()uint64" + pushbytes 0xc9c60dfd // method "forOfBreak()uint64" txna ApplicationArgs 0 match *abi_route_forOfBreak diff --git a/tests/contracts/artifacts/ABITestForOfBreak.arc32.json b/tests/contracts/artifacts/ABITestForOfBreak.arc32.json index 36f211afd..27e2680ea 100644 --- a/tests/contracts/artifacts/ABITestForOfBreak.arc32.json +++ b/tests/contracts/artifacts/ABITestForOfBreak.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkJyZWFrKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkJyZWFrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvck9mQnJlYWsoKXVpbnQ2NAoJY2FsbHN1YiBmb3JPZkJyZWFrCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yT2ZCcmVhaygpOiB1aW50NjQKZm9yT2ZCcmVhazoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5OAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5OQoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MDQKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvck9mXzBfZW5kCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTA1CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CgliICpmb3JPZl8wCgoqZm9yT2ZfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUwNwoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZm9yT2ZCcmVhaygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9mb3JPZkJyZWFrCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkJyZWFrKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkJyZWFrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yT2ZCcmVhaygpdWludDY0CgljYWxsc3ViIGZvck9mQnJlYWsKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZm9yT2ZCcmVhaygpOiB1aW50NjQKZm9yT2ZCcmVhazoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5OAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDk5CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTA0CgkvLyBzdW0gPiAyCglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJcHVzaGludCAyCgk+CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJYiAqZm9yT2ZfMF9lbmQKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MDUKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgOAoJKwoJZHVwCglwdXNoaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTA3CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGM5YzYwZGZkIC8vIG1ldGhvZCAiZm9yT2ZCcmVhaygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9mb3JPZkJyZWFrCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestForOfBreak.arc56_draft.json b/tests/contracts/artifacts/ABITestForOfBreak.arc56_draft.json index 1be4f5763..f0cb413bc 100644 --- a/tests/contracts/artifacts/ABITestForOfBreak.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestForOfBreak.arc56_draft.json @@ -61,621 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1496, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1496, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1496, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1496, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1496, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1496, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1496, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1496, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1496, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1497, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 1497, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 1497, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 1497, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 1497, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1497, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1497, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1497, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1497, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1497, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 48, - "source": 1498, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 49, - "source": 1498, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 53, - "source": 1499, - "pc": [ - 91 - ] - }, - { - "teal": 54, - "source": 1499, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 55, - "source": 1502, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 56, - "source": 1502, - "pc": [ - 96 - ] - }, - { - "teal": 57, - "source": 1502, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 58, - "source": 1502, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 59, - "source": 1502, - "pc": [ - 102 - ] - }, - { - "teal": 60, - "source": 1502, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 61, - "source": 1502, - "pc": [ - 105 - ] - }, - { - "teal": 62, - "source": 1502, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 68, - "source": 1504, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 69, - "source": 1504, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 70, - "source": 1504, - "pc": [ - 112 - ] - }, - { - "teal": 71, - "source": 1504, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 74, - "source": 1504, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 79, - "source": 1505, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 80, - "source": 1505, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 81, - "source": 1505, - "pc": [ - 123 - ] - }, - { - "teal": 82, - "source": 1505, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 86, - "source": 1502, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 87, - "source": 1502, - "pc": [ - 128 - ] - }, - { - "teal": 88, - "source": 1502, - "pc": [ - 129 - ] - }, - { - "teal": 89, - "source": 1502, - "pc": [ - 130 - ] - }, - { - "teal": 90, - "source": 1502, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 91, - "source": 1502, - "pc": [ - 133 - ] - }, - { - "teal": 92, - "source": 1502, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 93, - "source": 1502, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 94, - "source": 1502, - "pc": [ - 139, - 140 - ] - }, - { - "teal": 95, - "source": 1502, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 96, - "source": 1502, - "pc": [ - 143 - ] - }, - { - "teal": 97, - "source": 1502, - "pc": [ - 144 - ] - }, - { - "teal": 98, - "source": 1502, - "pc": [ - 145 - ] - }, - { - "teal": 99, - "source": 1502, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 100, - "source": 1502, - "pc": [ - 148, - 149, - 150 - ] - }, - { - "teal": 105, - "source": 1507, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 108, - "source": 1497, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 111, - "source": 1497, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 112, - "source": 1497, - "pc": [ - 157 - ] - }, - { - "teal": 115, - "source": 1496, - "pc": [ - 158 - ] - }, - { - "teal": 116, - "source": 1496, - "pc": [ - 159 - ] - }, - { - "teal": 119, - "source": 1496, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 120, - "source": 1496, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 121, - "source": 1496, - "pc": [ - 169, - 170, - 171, - 172 - ] - }, - { - "teal": 124, - "source": 1496, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 173 - ] - }, - { - "teal": 127, - "source": 1496, - "pc": [ - 174, - 175, - 176, - 177, - 178, - 179 - ] - }, - { - "teal": 128, - "source": 1496, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 129, - "source": 1496, - "pc": [ - 183, - 184, - 185, - 186 - ] - }, - { - "teal": 132, - "source": 1496, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 187 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 177 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 191 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkJyZWFrKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkJyZWFrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvck9mQnJlYWsoKXVpbnQ2NAoJY2FsbHN1YiBmb3JPZkJyZWFrCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yT2ZCcmVhaygpOiB1aW50NjQKZm9yT2ZCcmVhazoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5OAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5OQoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MDQKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvck9mXzBfZW5kCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTA1CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CgliICpmb3JPZl8wCgoqZm9yT2ZfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUwNwoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZm9yT2ZCcmVhaygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9mb3JPZkJyZWFrCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkJyZWFrKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkJyZWFrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yT2ZCcmVhaygpdWludDY0CgljYWxsc3ViIGZvck9mQnJlYWsKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZm9yT2ZCcmVhaygpOiB1aW50NjQKZm9yT2ZCcmVhazoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5OAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDk5CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTA0CgkvLyBzdW0gPiAyCglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJcHVzaGludCAyCgk+CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJYiAqZm9yT2ZfMF9lbmQKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MDUKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgOAoJKwoJZHVwCglwdXNoaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTA3CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGM5YzYwZGZkIC8vIG1ldGhvZCAiZm9yT2ZCcmVhaygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9mb3JPZkJyZWFrCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAIMRgUgQYLMRkIjQwAhQAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEcEgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMACOMAYsASYwCVwAIF4wDI4wEiwGBAg1BAANCACCLAYsDCIwBiwQkCEmBGAxBAA6MBIsCiwQkWBeMA0L/1YsBjABGBIkiQ4AEuER7NjYaAI4B//EAgATJxg39NhoAjgH/bwA=", + "approval": "CiYBADEYFIEGCzEZCI0MAIsAAAAAAAAAAAAAAH0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSAGAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA4wAgQCMAYsASYwCVwAIF4wDgQCMBIsBgQINQQADQgAiiwGLAwiMAYsEgQgISYEYDEEAD4wEiwKLBIEIWBeMA0L/04sBjABGBImBAUOABLhEezY2GgCOAf/wAIAEycYN/TYaAI4B/2kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestForOfContinue.approval.teal b/tests/contracts/artifacts/ABITestForOfContinue.approval.teal index b1918c098..8f36b49f4 100644 --- a/tests/contracts/artifacts/ABITestForOfContinue.approval.teal +++ b/tests/contracts/artifacts/ABITestForOfContinue.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // forOfContinue()uint64 *abi_route_forOfContinue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute forOfContinue()uint64 callsub forOfContinue itob concat log - int 1 + pushint 1 return // forOfContinue(): uint64 @@ -45,12 +46,12 @@ forOfContinue: // tests/contracts/abi.algo.ts:1483 // a: StaticArray = [1, 2, 3] - byte 0x000000000000000100000000000000020000000000000003 + pushbytes 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1484 // sum = 0 - int 0 + pushint 0 frame_bury 1 // sum: uint64 frame_dig 0 // a: StaticArray dup @@ -58,7 +59,7 @@ forOfContinue: extract 0 8 btoi frame_bury 3 // v: uint64 - int 0 + pushint 0 frame_bury 4 // the offset we are extracting the next element from *forOf_0: @@ -66,7 +67,7 @@ forOfContinue: // tests/contracts/abi.algo.ts:1489 // sum > 2 frame_dig 1 // sum: uint64 - int 2 + pushint 2 > bz *if0_end @@ -84,16 +85,16 @@ forOfContinue: *forOf_0_continue: // increment offset and loop if not out of bounds frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forOf_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 3 // v: uint64 @@ -112,11 +113,11 @@ forOfContinue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -124,7 +125,7 @@ forOfContinue: err *call_NoOp: - method "forOfContinue()uint64" + pushbytes 0x7b121ee3 // method "forOfContinue()uint64" txna ApplicationArgs 0 match *abi_route_forOfContinue diff --git a/tests/contracts/artifacts/ABITestForOfContinue.arc32.json b/tests/contracts/artifacts/ABITestForOfContinue.arc32.json index 75caedcf5..71a2b5d5f 100644 --- a/tests/contracts/artifacts/ABITestForOfContinue.arc32.json +++ b/tests/contracts/artifacts/ABITestForOfContinue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkNvbnRpbnVlKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkNvbnRpbnVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvck9mQ29udGludWUoKXVpbnQ2NAoJY2FsbHN1YiBmb3JPZkNvbnRpbnVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yT2ZDb250aW51ZSgpOiB1aW50NjQKZm9yT2ZDb250aW51ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4NAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0ODkKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvck9mXzBfY29udGludWUKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OTAKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yT2ZfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDkyCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJmb3JPZkNvbnRpbnVlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Zvck9mQ29udGludWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkNvbnRpbnVlKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkNvbnRpbnVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yT2ZDb250aW51ZSgpdWludDY0CgljYWxsc3ViIGZvck9mQ29udGludWUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZm9yT2ZDb250aW51ZSgpOiB1aW50NjQKZm9yT2ZDb250aW51ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDg0CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDg5CgkvLyBzdW0gPiAyCglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJcHVzaGludCAyCgk+CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJYiAqZm9yT2ZfMF9jb250aW51ZQoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5MAoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKKmZvck9mXzBfY29udGludWU6CgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CgkrCglkdXAKCXB1c2hpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OTIKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4N2IxMjFlZTMgLy8gbWV0aG9kICJmb3JPZkNvbnRpbnVlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Zvck9mQ29udGludWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestForOfContinue.arc56_draft.json b/tests/contracts/artifacts/ABITestForOfContinue.arc56_draft.json index 22dbcef24..07aa59bc6 100644 --- a/tests/contracts/artifacts/ABITestForOfContinue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestForOfContinue.arc56_draft.json @@ -61,621 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1481, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1481, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1481, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1481, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1481, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1481, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1481, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1481, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1481, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1482, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 1482, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 1482, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 1482, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 1482, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1482, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1482, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1482, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1482, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1482, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 48, - "source": 1483, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 49, - "source": 1483, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 53, - "source": 1484, - "pc": [ - 91 - ] - }, - { - "teal": 54, - "source": 1484, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 55, - "source": 1487, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 56, - "source": 1487, - "pc": [ - 96 - ] - }, - { - "teal": 57, - "source": 1487, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 58, - "source": 1487, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 59, - "source": 1487, - "pc": [ - 102 - ] - }, - { - "teal": 60, - "source": 1487, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 61, - "source": 1487, - "pc": [ - 105 - ] - }, - { - "teal": 62, - "source": 1487, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 68, - "source": 1489, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 69, - "source": 1489, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 70, - "source": 1489, - "pc": [ - 112 - ] - }, - { - "teal": 71, - "source": 1489, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 74, - "source": 1489, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 79, - "source": 1490, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 80, - "source": 1490, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 81, - "source": 1490, - "pc": [ - 123 - ] - }, - { - "teal": 82, - "source": 1490, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 86, - "source": 1487, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 87, - "source": 1487, - "pc": [ - 128 - ] - }, - { - "teal": 88, - "source": 1487, - "pc": [ - 129 - ] - }, - { - "teal": 89, - "source": 1487, - "pc": [ - 130 - ] - }, - { - "teal": 90, - "source": 1487, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 91, - "source": 1487, - "pc": [ - 133 - ] - }, - { - "teal": 92, - "source": 1487, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 93, - "source": 1487, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 94, - "source": 1487, - "pc": [ - 139, - 140 - ] - }, - { - "teal": 95, - "source": 1487, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 96, - "source": 1487, - "pc": [ - 143 - ] - }, - { - "teal": 97, - "source": 1487, - "pc": [ - 144 - ] - }, - { - "teal": 98, - "source": 1487, - "pc": [ - 145 - ] - }, - { - "teal": 99, - "source": 1487, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 100, - "source": 1487, - "pc": [ - 148, - 149, - 150 - ] - }, - { - "teal": 105, - "source": 1492, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 108, - "source": 1482, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 111, - "source": 1482, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 112, - "source": 1482, - "pc": [ - 157 - ] - }, - { - "teal": 115, - "source": 1481, - "pc": [ - 158 - ] - }, - { - "teal": 116, - "source": 1481, - "pc": [ - 159 - ] - }, - { - "teal": 119, - "source": 1481, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 120, - "source": 1481, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 121, - "source": 1481, - "pc": [ - 169, - 170, - 171, - 172 - ] - }, - { - "teal": 124, - "source": 1481, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 173 - ] - }, - { - "teal": 127, - "source": 1481, - "pc": [ - 174, - 175, - 176, - 177, - 178, - 179 - ] - }, - { - "teal": 128, - "source": 1481, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 129, - "source": 1481, - "pc": [ - 183, - 184, - 185, - 186 - ] - }, - { - "teal": 132, - "source": 1481, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 187 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 177 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 191 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkNvbnRpbnVlKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkNvbnRpbnVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvck9mQ29udGludWUoKXVpbnQ2NAoJY2FsbHN1YiBmb3JPZkNvbnRpbnVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yT2ZDb250aW51ZSgpOiB1aW50NjQKZm9yT2ZDb250aW51ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4NAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0ODkKCS8vIHN1bSA+IDIKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglpbnQgMgoJPgoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKmZvck9mXzBfY29udGludWUKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OTAKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yT2ZfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDkyCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJmb3JPZkNvbnRpbnVlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Zvck9mQ29udGludWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBmb3JPZkNvbnRpbnVlKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JPZkNvbnRpbnVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yT2ZDb250aW51ZSgpdWludDY0CgljYWxsc3ViIGZvck9mQ29udGludWUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gZm9yT2ZDb250aW51ZSgpOiB1aW50NjQKZm9yT2ZDb250aW51ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDg0CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDg5CgkvLyBzdW0gPiAyCglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJcHVzaGludCAyCgk+CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJYiAqZm9yT2ZfMF9jb250aW51ZQoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5MAoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKKmZvck9mXzBfY29udGludWU6CgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CgkrCglkdXAKCXB1c2hpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OTIKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4N2IxMjFlZTMgLy8gbWV0aG9kICJmb3JPZkNvbnRpbnVlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2Zvck9mQ29udGludWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAIMRgUgQYLMRkIjQwAhQAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEcEgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMACOMAYsASYwCVwAIF4wDI4wEiwGBAg1BAANCAAeLAYsDCIwBiwQkCEmBGAxBAA6MBIsCiwQkWBeMA0L/1YsBjABGBIkiQ4AEuER7NjYaAI4B//EAgAR7Eh7jNhoAjgH/bwA=", + "approval": "CiYBADEYFIEGCzEZCI0MAIsAAAAAAAAAAAAAAH0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSAGAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA4wAgQCMAYsASYwCVwAIF4wDgQCMBIsBgQINQQADQgAHiwGLAwiMAYsEgQgISYEYDEEAD4wEiwKLBIEIWBeMA0L/04sBjABGBImBAUOABLhEezY2GgCOAf/wAIAEexIe4zYaAI4B/2kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal b/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal index 3ab209d13..ca66b9039 100644 --- a/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal +++ b/tests/contracts/artifacts/ABITestGlobalMethodInChain.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // globalMethodInChain()uint8 *abi_route_globalMethodInChain: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute globalMethodInChain()uint8 callsub globalMethodInChain itob dup bitlen - int 8 + pushint 8 <= // globalMethodInChain return value overflowed 8 bits @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 7 1 concat log - int 1 + pushint 1 return // globalMethodInChain(): uint<8> @@ -49,15 +49,15 @@ globalMethodInChain: // tests/contracts/abi.algo.ts:1061 // return castBytes(hex('0x00')).bar; - int 0 + pushint 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -65,7 +65,7 @@ globalMethodInChain: err *call_NoOp: - method "globalMethodInChain()uint8" + pushbytes 0xaefbbacb // method "globalMethodInChain()uint8" txna ApplicationArgs 0 match *abi_route_globalMethodInChain diff --git a/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json b/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json index 651c7d6a2..dcabc22bf 100644 --- a/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json +++ b/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OAoqYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKCWNhbGxzdWIgZ2xvYmFsTWV0aG9kSW5DaGFpbgoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoKCS8vIGdsb2JhbE1ldGhvZEluQ2hhaW4gcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWV0aG9kSW5DaGFpbigpOiB1aW50PDg+Cmdsb2JhbE1ldGhvZEluQ2hhaW46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA2MQoJLy8gcmV0dXJuIGNhc3RCeXRlczxUMT4oaGV4KCcweDAwJykpLmJhcjsKCWludCAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZ2xvYmFsTWV0aG9kSW5DaGFpbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKKmFiaV9yb3V0ZV9nbG9iYWxNZXRob2RJbkNoYWluOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKCWNhbGxzdWIgZ2xvYmFsTWV0aG9kSW5DaGFpbgoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyBnbG9iYWxNZXRob2RJbkNoYWluIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNZXRob2RJbkNoYWluKCk6IHVpbnQ8OD4KZ2xvYmFsTWV0aG9kSW5DaGFpbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDYxCgkvLyByZXR1cm4gY2FzdEJ5dGVzPFQxPihoZXgoJzB4MDAnKSkuYmFyOwoJcHVzaGludCAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGFlZmJiYWNiIC8vIG1ldGhvZCAiZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc56_draft.json b/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc56_draft.json index 22ca8b353..ac38b3418 100644 --- a/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestGlobalMethodInChain.arc56_draft.json @@ -61,329 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1059, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1059, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1059, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1059, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1059, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1059, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1059, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1059, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1059, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1060, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1060, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1060, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1060, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1060, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1060, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 36, - "source": 1060, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 1060, - "errorMessage": "globalMethodInChain return value overflowed 8 bits", - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1060, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 41, - "source": 1060, - "pc": [ - 59 - ] - }, - { - "teal": 42, - "source": 1060, - "pc": [ - 60 - ] - }, - { - "teal": 43, - "source": 1060, - "pc": [ - 61 - ] - }, - { - "teal": 44, - "source": 1060, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 1060, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 52, - "source": 1061, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 53, - "source": 1060, - "pc": [ - 68 - ] - }, - { - "teal": 56, - "source": 1059, - "pc": [ - 69 - ] - }, - { - "teal": 57, - "source": 1059, - "pc": [ - 70 - ] - }, - { - "teal": 60, - "source": 1059, - "pc": [ - 71, - 72, - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 61, - "source": 1059, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 62, - "source": 1059, - "pc": [ - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 65, - "source": 1059, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 84 - ] - }, - { - "teal": 68, - "source": 1059, - "pc": [ - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 69, - "source": 1059, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 70, - "source": 1059, - "pc": [ - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 73, - "source": 1059, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 98 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "globalMethodInChain return value overflowed 8 bits" + }, + { + "pc": [ + 83 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 97 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OAoqYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKCWNhbGxzdWIgZ2xvYmFsTWV0aG9kSW5DaGFpbgoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoKCS8vIGdsb2JhbE1ldGhvZEluQ2hhaW4gcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWV0aG9kSW5DaGFpbigpOiB1aW50PDg+Cmdsb2JhbE1ldGhvZEluQ2hhaW46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA2MQoJLy8gcmV0dXJuIGNhc3RCeXRlczxUMT4oaGV4KCcweDAwJykpLmJhcjsKCWludCAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJnbG9iYWxNZXRob2RJbkNoYWluKCl1aW50OCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZ2xvYmFsTWV0aG9kSW5DaGFpbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKKmFiaV9yb3V0ZV9nbG9iYWxNZXRob2RJbkNoYWluOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgKCWNhbGxzdWIgZ2xvYmFsTWV0aG9kSW5DaGFpbgoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyBnbG9iYWxNZXRob2RJbkNoYWluIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNZXRob2RJbkNoYWluKCk6IHVpbnQ8OD4KZ2xvYmFsTWV0aG9kSW5DaGFpbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDYxCgkvLyByZXR1cm4gY2FzdEJ5dGVzPFQxPihoZXgoJzB4MDAnKSkuYmFyOwoJcHVzaGludCAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGFlZmJiYWNiIC8vIG1ldGhvZCAiZ2xvYmFsTWV0aG9kSW5DaGFpbigpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2dsb2JhbE1ldGhvZEluQ2hhaW4KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAC4AAAAAAAAAAAAAACAAAAAAAAAAAAAAAIAEFR98dYgADhZJk4EIDkRXBwFQsCJDigABgQCJIkOABLhEezY2GgCOAf/xAIAErvu6yzYaAI4B/8YA", + "approval": "CjEYFIEGCzEZCI0MADAAAAAAAAAAAAAAACIAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EIDkRXBwFQsIEBQ4oAAYEAiYEBQ4AEuER7NjYaAI4B//AAgASu+7rLNhoAjgH/xAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal index d54465eb2..fec28bcf0 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x624b6579 0x0a8101 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // largeNestedStaticForEachInBox()uint64 *abi_route_largeNestedStaticForEachInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute largeNestedStaticForEachInBox()uint64 callsub largeNestedStaticForEachInBox itob concat log - int 1 + pushint 1 return // largeNestedStaticForEachInBox(): uint64 @@ -46,34 +47,34 @@ largeNestedStaticForEachInBox: // tests/contracts/abi.algo.ts:1358 // increaseOpcodeBudget() itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - int 0 + pushint 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit // tests/contracts/abi.algo.ts:1359 // this.bKey.create() byte 0x624b6579 // "bKey" - int 4192 + pushint 4192 box_create pop // tests/contracts/abi.algo.ts:1360 // sum = 0 - int 0 + pushint 0 frame_bury 0 // sum: uint64 // tests/contracts/abi.algo.ts:1362 // this.bKey.value[1].forEach - int 32 // headOffset - int 4160 + pushint 32 // headOffset + pushint 4160 byte 0x624b6579 // "bKey" frame_bury 1 // key for the box that contains the array we are iterating over swap @@ -83,7 +84,7 @@ largeNestedStaticForEachInBox: frame_bury 3 // the offset of the last element byte 0x624b6579 // "bKey" // key for the box that contains the array we are iterating over frame_dig 2 // the offset we are extracting the next element from - int 64 + pushint 64 box_extract frame_bury 4 // v: uint512 @@ -91,13 +92,13 @@ largeNestedStaticForEachInBox: // tests/contracts/abi.algo.ts:1363 // sum += 1 frame_dig 0 // sum: uint64 - int 1 + pushint 1 + frame_bury 0 // sum: uint64 // increment offset and loop if not out of bounds frame_dig 2 // the offset we are extracting the next element from - int 64 + pushint 64 + dup frame_dig 3 // the offset of the last element @@ -106,7 +107,7 @@ largeNestedStaticForEachInBox: frame_bury 2 // the offset we are extracting the next element from byte 0x624b6579 // "bKey" // key for the box that contains the array we are iterating over frame_dig 2 // the offset we are extracting the next element from - int 64 + pushint 64 box_extract frame_bury 4 // v: uint512 b *forEach_0 @@ -124,11 +125,11 @@ largeNestedStaticForEachInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -136,7 +137,7 @@ largeNestedStaticForEachInBox: err *call_NoOp: - method "largeNestedStaticForEachInBox()uint64" + pushbytes 0xd9450260 // method "largeNestedStaticForEachInBox()uint64" txna ApplicationArgs 0 match *abi_route_largeNestedStaticForEachInBox diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json index 0c2cddd11..4190df72a 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CiphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCk6IHVpbnQ2NApsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM1OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWludCA0MTkyCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM2MAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzYyCgkvLyB0aGlzLmJLZXkudmFsdWVbMV0uZm9yRWFjaAoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWludCA0MTYwCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiCglmcmFtZV9idXJ5IDEgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJc3dhcAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCSsKCWZyYW1lX2J1cnkgMyAvLyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IGVsZW1lbnQKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjMKCS8vIHN1bSArPSAxCglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCSsKCWR1cAoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gdjogdWludDUxMgoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzY2CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRiNjU3OSAweDBhODEwMSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCl1aW50NjQKKmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCl1aW50NjQKCWNhbGxzdWIgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKTogdWludDY0CmxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU4CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCXB1c2hpbnQgNDE5MgoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjAKCS8vIHN1bSA9IDAKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjIKCS8vIHRoaXMuYktleS52YWx1ZVsxXS5mb3JFYWNoCglwdXNoaW50IDMyIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgNDE2MAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJZnJhbWVfYnVyeSAxIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCXN3YXAKCWR1cAoJZnJhbWVfYnVyeSAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgkrCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50CglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM2MwoJLy8gc3VtICs9IDEKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CglwdXNoaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDY0CgkrCglkdXAKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjYKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDk0NTAyNjAgLy8gbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc56_draft.json index dea5fd7e1..6b615b202 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc56_draft.json @@ -67,706 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1354, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ] - }, - { - "teal": 13, - "source": 1354, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 14, - "source": 1354, - "pc": [ - 16 - ] - }, - { - "teal": 15, - "source": 1354, - "pc": [ - 17 - ] - }, - { - "teal": 16, - "source": 1354, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 1354, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 1354, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 1354, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 1354, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 28, - "source": 1357, - "pc": [ - 49, - 50, - 51, - 52, - 53, - 54 - ] - }, - { - "teal": 31, - "source": 1357, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 32, - "source": 1357, - "pc": [ - 58 - ] - }, - { - "teal": 33, - "source": 1357, - "pc": [ - 59 - ] - }, - { - "teal": 34, - "source": 1357, - "pc": [ - 60 - ] - }, - { - "teal": 35, - "source": 1357, - "pc": [ - 61 - ] - }, - { - "teal": 36, - "source": 1357, - "pc": [ - 62 - ] - }, - { - "teal": 40, - "source": 1357, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 43, - "source": 1357, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 44, - "source": 1357, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 48, - "source": 1358, - "pc": [ - 70 - ] - }, - { - "teal": 49, - "source": 1358, - "pc": [ - 71 - ] - }, - { - "teal": 50, - "source": 1358, - "pc": [ - 72, - 73 - ] - }, - { - "teal": 51, - "source": 1358, - "pc": [ - 74 - ] - }, - { - "teal": 52, - "source": 1358, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 53, - "source": 1358, - "pc": [ - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 54, - "source": 1358, - "pc": [ - 82 - ] - }, - { - "teal": 55, - "source": 1358, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 56, - "source": 1358, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 57, - "source": 1358, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 58, - "source": 1358, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 59, - "source": 1358, - "pc": [ - 91 - ] - }, - { - "teal": 63, - "source": 1359, - "pc": [ - 92 - ] - }, - { - "teal": 64, - "source": 1359, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 65, - "source": 1359, - "pc": [ - 96 - ] - }, - { - "teal": 66, - "source": 1359, - "pc": [ - 97 - ] - }, - { - "teal": 70, - "source": 1360, - "pc": [ - 98 - ] - }, - { - "teal": 71, - "source": 1360, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 75, - "source": 1362, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 76, - "source": 1362, - "pc": [ - 103, - 104, - 105 - ] - }, - { - "teal": 77, - "source": 1362, - "pc": [ - 106 - ] - }, - { - "teal": 78, - "source": 1362, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 79, - "source": 1362, - "pc": [ - 109 - ] - }, - { - "teal": 80, - "source": 1362, - "pc": [ - 110 - ] - }, - { - "teal": 81, - "source": 1362, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 82, - "source": 1362, - "pc": [ - 113 - ] - }, - { - "teal": 83, - "source": 1362, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 84, - "source": 1362, - "pc": [ - 116 - ] - }, - { - "teal": 85, - "source": 1362, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 86, - "source": 1362, - "pc": [ - 119 - ] - }, - { - "teal": 87, - "source": 1362, - "pc": [ - 120 - ] - }, - { - "teal": 88, - "source": 1362, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 93, - "source": 1363, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 94, - "source": 1363, - "pc": [ - 125 - ] - }, - { - "teal": 95, - "source": 1363, - "pc": [ - 126 - ] - }, - { - "teal": 96, - "source": 1363, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 99, - "source": 1362, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 100, - "source": 1362, - "pc": [ - 131 - ] - }, - { - "teal": 101, - "source": 1362, - "pc": [ - 132 - ] - }, - { - "teal": 102, - "source": 1362, - "pc": [ - 133 - ] - }, - { - "teal": 103, - "source": 1362, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 104, - "source": 1362, - "pc": [ - 136 - ] - }, - { - "teal": 105, - "source": 1362, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 106, - "source": 1362, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 107, - "source": 1362, - "pc": [ - 142 - ] - }, - { - "teal": 108, - "source": 1362, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 109, - "source": 1362, - "pc": [ - 145 - ] - }, - { - "teal": 110, - "source": 1362, - "pc": [ - 146 - ] - }, - { - "teal": 111, - "source": 1362, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 112, - "source": 1362, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 117, - "source": 1366, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 120, - "source": 1357, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 123, - "source": 1357, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 124, - "source": 1357, - "pc": [ - 158 - ] - }, - { - "teal": 127, - "source": 1354, - "pc": [ - 159 - ] - }, - { - "teal": 128, - "source": 1354, - "pc": [ - 160 - ] - }, - { - "teal": 131, - "source": 1354, - "pc": [ - 161, - 162, - 163, - 164, - 165, - 166 - ] - }, - { - "teal": 132, - "source": 1354, - "pc": [ - 167, - 168, - 169 - ] - }, - { - "teal": 133, - "source": 1354, - "pc": [ - 170, - 171, - 172, - 173 - ] - }, - { - "teal": 136, - "source": 1354, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 174 - ] - }, - { - "teal": 139, - "source": 1354, - "pc": [ - 175, - 176, - 177, - 178, - 179, - 180 - ] - }, - { - "teal": 140, - "source": 1354, - "pc": [ - 181, - 182, - 183 - ] - }, - { - "teal": 141, - "source": 1354, - "pc": [ - 184, - 185, - 186, - 187 - ] - }, - { - "teal": 144, - "source": 1354, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 188 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 48 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 203 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 217 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CiphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCk6IHVpbnQ2NApsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM1OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWludCA0MTkyCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM2MAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzYyCgkvLyB0aGlzLmJLZXkudmFsdWVbMV0uZm9yRWFjaAoJaW50IDMyIC8vIGhlYWRPZmZzZXQKCWludCA0MTYwCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiCglmcmFtZV9idXJ5IDEgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJc3dhcAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCSsKCWZyYW1lX2J1cnkgMyAvLyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IGVsZW1lbnQKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjMKCS8vIHN1bSArPSAxCglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCSsKCWR1cAoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gdjogdWludDUxMgoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzY2CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRiNjU3OSAweDBhODEwMSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCl1aW50NjQKKmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCl1aW50NjQKCWNhbGxzdWIgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbGFyZ2VOZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKTogdWludDY0CmxhcmdlTmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU4CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzU5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCXB1c2hpbnQgNDE5MgoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjAKCS8vIHN1bSA9IDAKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjIKCS8vIHRoaXMuYktleS52YWx1ZVsxXS5mb3JFYWNoCglwdXNoaW50IDMyIC8vIGhlYWRPZmZzZXQKCXB1c2hpbnQgNDE2MAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJZnJhbWVfYnVyeSAxIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCXN3YXAKCWR1cAoJZnJhbWVfYnVyeSAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgkrCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50CglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM2MwoJLy8gc3VtICs9IDEKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CglwdXNoaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDY0CgkrCglkdXAKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNjYKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDk0NTAyNjAgLy8gbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9sYXJnZU5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAUAGACYBBGJLZXkxGBQkCzEZCI0MAH8AAAAAAAAAAAAAAHEAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgABHBLEkshAlsgGAAwqBAUmyHrIfgQWyGbMogeAguUgljACBIIHAICiMAUxJjAIIjAMoiwIjuowEiwAiCIwAiwIjCEmLAwxBAAyMAiiLAiO6jARC/+OLAIwARgSJIkOABLhEezY2GgCOAf/xAIAE2UUCYDYaAI4B/3UA", + "approval": "CiYDBGJLZXkDCoEBADEYFIEGCzEZCI0MAJwAAAAAAAAAAAAAAI4AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOABGJLZXmB4CC5SIEAjACBIIHAIIAEYktleYwBTEmMAgiMA4AEYktleYsCgUC6jASLAIEBCIwAiwKBQAhJiwMMQQASjAKABGJLZXmLAoFAuowEQv/biwCMAEYEiYEBQ4AEuER7NjYaAI4B//AAgATZRQJgNhoAjgH/WAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.approval.teal b/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.approval.teal index 0907499a5..8f271cbab 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x624b6579 0x0a8101 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // largeNestedStaticForOfInBox()uint64 *abi_route_largeNestedStaticForOfInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute largeNestedStaticForOfInBox()uint64 callsub largeNestedStaticForOfInBox itob concat log - int 1 + pushint 1 return // largeNestedStaticForOfInBox(): uint64 @@ -46,34 +47,34 @@ largeNestedStaticForOfInBox: // tests/contracts/abi.algo.ts:1468 // increaseOpcodeBudget() itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - int 0 + pushint 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + pushint 5 // DeleteApplication itxn_field OnCompletion itxn_submit // tests/contracts/abi.algo.ts:1469 // this.bKey.create() byte 0x624b6579 // "bKey" - int 4192 + pushint 4192 box_create pop // tests/contracts/abi.algo.ts:1470 // sum = 0 - int 0 + pushint 0 frame_bury 0 // sum: uint64 // tests/contracts/abi.algo.ts:1473 // this.bKey.value[1] - int 32 // headOffset - int 4160 + pushint 32 // headOffset + pushint 4160 byte 0x624b6579 // "bKey" frame_bury 1 // key for the box that contains the array we are iterating over swap @@ -83,7 +84,7 @@ largeNestedStaticForOfInBox: frame_bury 3 // the offset of the last element byte 0x624b6579 // "bKey" // key for the box that contains the array we are iterating over frame_dig 2 // the offset we are extracting the next element from - int 64 + pushint 64 box_extract frame_bury 4 // v: uint512 @@ -91,14 +92,14 @@ largeNestedStaticForOfInBox: // tests/contracts/abi.algo.ts:1474 // sum += 1 frame_dig 0 // sum: uint64 - int 1 + pushint 1 + frame_bury 0 // sum: uint64 *forOf_0_continue: // increment offset and loop if not out of bounds frame_dig 2 // the offset we are extracting the next element from - int 64 + pushint 64 + dup frame_dig 3 // the offset of the last element @@ -107,7 +108,7 @@ largeNestedStaticForOfInBox: frame_bury 2 // the offset we are extracting the next element from byte 0x624b6579 // "bKey" // key for the box that contains the array we are iterating over frame_dig 2 // the offset we are extracting the next element from - int 64 + pushint 64 box_extract frame_bury 4 // v: uint512 b *forOf_0 @@ -125,11 +126,11 @@ largeNestedStaticForOfInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -137,7 +138,7 @@ largeNestedStaticForOfInBox: err *call_NoOp: - method "largeNestedStaticForOfInBox()uint64" + pushbytes 0x1f6a7331 // method "largeNestedStaticForOfInBox()uint64" txna ApplicationArgs 0 match *abi_route_largeNestedStaticForOfInBox diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc32.json b/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc32.json index c15aa198d..d8b5f35d3 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NAoqYWJpX3JvdXRlX2xhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKTogdWludDY0CmxhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ2OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDY5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWludCA0MTkyCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3MAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDczCgkvLyB0aGlzLmJLZXkudmFsdWVbMV0KCWludCAzMiAvLyBoZWFkT2Zmc2V0CglpbnQgNDE2MAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJZnJhbWVfYnVyeSAxIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCXN3YXAKCWR1cAoJZnJhbWVfYnVyeSAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgkrCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50CglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gdjogdWludDUxMgoKKmZvck9mXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3NAoJLy8gc3VtICs9IDEKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCSsKCWR1cAoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yT2ZfMF9lbmQKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDc3CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRiNjU3OSAweDBhODEwMSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveCgpdWludDY0CiphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94KCl1aW50NjQKCWNhbGxzdWIgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveCgpOiB1aW50NjQKbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDY4CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDY5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCXB1c2hpbnQgNDE5MgoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NzAKCS8vIHN1bSA9IDAKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NzMKCS8vIHRoaXMuYktleS52YWx1ZVsxXQoJcHVzaGludCAzMiAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDQxNjAKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWZyYW1lX2J1cnkgMSAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglzd2FwCglkdXAKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJKwoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgoqZm9yT2ZfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDc0CgkvLyBzdW0gKz0gMQoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCXB1c2hpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDY0CgkrCglkdXAKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgNjQKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gdjogdWludDUxMgoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NzcKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MWY2YTczMzEgLy8gbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc56_draft.json index a746008f9..2178e20d1 100644 --- a/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc56_draft.json @@ -67,706 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1464, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ] - }, - { - "teal": 13, - "source": 1464, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 14, - "source": 1464, - "pc": [ - 16 - ] - }, - { - "teal": 15, - "source": 1464, - "pc": [ - 17 - ] - }, - { - "teal": 16, - "source": 1464, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 1464, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 1464, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 1464, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 1464, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 28, - "source": 1467, - "pc": [ - 49, - 50, - 51, - 52, - 53, - 54 - ] - }, - { - "teal": 31, - "source": 1467, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 32, - "source": 1467, - "pc": [ - 58 - ] - }, - { - "teal": 33, - "source": 1467, - "pc": [ - 59 - ] - }, - { - "teal": 34, - "source": 1467, - "pc": [ - 60 - ] - }, - { - "teal": 35, - "source": 1467, - "pc": [ - 61 - ] - }, - { - "teal": 36, - "source": 1467, - "pc": [ - 62 - ] - }, - { - "teal": 40, - "source": 1467, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 43, - "source": 1467, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 44, - "source": 1467, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 48, - "source": 1468, - "pc": [ - 70 - ] - }, - { - "teal": 49, - "source": 1468, - "pc": [ - 71 - ] - }, - { - "teal": 50, - "source": 1468, - "pc": [ - 72, - 73 - ] - }, - { - "teal": 51, - "source": 1468, - "pc": [ - 74 - ] - }, - { - "teal": 52, - "source": 1468, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 53, - "source": 1468, - "pc": [ - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 54, - "source": 1468, - "pc": [ - 82 - ] - }, - { - "teal": 55, - "source": 1468, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 56, - "source": 1468, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 57, - "source": 1468, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 58, - "source": 1468, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 59, - "source": 1468, - "pc": [ - 91 - ] - }, - { - "teal": 63, - "source": 1469, - "pc": [ - 92 - ] - }, - { - "teal": 64, - "source": 1469, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 65, - "source": 1469, - "pc": [ - 96 - ] - }, - { - "teal": 66, - "source": 1469, - "pc": [ - 97 - ] - }, - { - "teal": 70, - "source": 1470, - "pc": [ - 98 - ] - }, - { - "teal": 71, - "source": 1470, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 75, - "source": 1473, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 76, - "source": 1473, - "pc": [ - 103, - 104, - 105 - ] - }, - { - "teal": 77, - "source": 1473, - "pc": [ - 106 - ] - }, - { - "teal": 78, - "source": 1473, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 79, - "source": 1473, - "pc": [ - 109 - ] - }, - { - "teal": 80, - "source": 1473, - "pc": [ - 110 - ] - }, - { - "teal": 81, - "source": 1473, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 82, - "source": 1473, - "pc": [ - 113 - ] - }, - { - "teal": 83, - "source": 1473, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 84, - "source": 1473, - "pc": [ - 116 - ] - }, - { - "teal": 85, - "source": 1473, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 86, - "source": 1473, - "pc": [ - 119 - ] - }, - { - "teal": 87, - "source": 1473, - "pc": [ - 120 - ] - }, - { - "teal": 88, - "source": 1473, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 93, - "source": 1474, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 94, - "source": 1474, - "pc": [ - 125 - ] - }, - { - "teal": 95, - "source": 1474, - "pc": [ - 126 - ] - }, - { - "teal": 96, - "source": 1474, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 100, - "source": 1473, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 101, - "source": 1473, - "pc": [ - 131 - ] - }, - { - "teal": 102, - "source": 1473, - "pc": [ - 132 - ] - }, - { - "teal": 103, - "source": 1473, - "pc": [ - 133 - ] - }, - { - "teal": 104, - "source": 1473, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 105, - "source": 1473, - "pc": [ - 136 - ] - }, - { - "teal": 106, - "source": 1473, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 107, - "source": 1473, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 108, - "source": 1473, - "pc": [ - 142 - ] - }, - { - "teal": 109, - "source": 1473, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 110, - "source": 1473, - "pc": [ - 145 - ] - }, - { - "teal": 111, - "source": 1473, - "pc": [ - 146 - ] - }, - { - "teal": 112, - "source": 1473, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 113, - "source": 1473, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 118, - "source": 1477, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 121, - "source": 1467, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 124, - "source": 1467, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 125, - "source": 1467, - "pc": [ - 158 - ] - }, - { - "teal": 128, - "source": 1464, - "pc": [ - 159 - ] - }, - { - "teal": 129, - "source": 1464, - "pc": [ - 160 - ] - }, - { - "teal": 132, - "source": 1464, - "pc": [ - 161, - 162, - 163, - 164, - 165, - 166 - ] - }, - { - "teal": 133, - "source": 1464, - "pc": [ - 167, - 168, - 169 - ] - }, - { - "teal": 134, - "source": 1464, - "pc": [ - 170, - 171, - 172, - 173 - ] - }, - { - "teal": 137, - "source": 1464, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 174 - ] - }, - { - "teal": 140, - "source": 1464, - "pc": [ - 175, - 176, - 177, - 178, - 179, - 180 - ] - }, - { - "teal": 141, - "source": 1464, - "pc": [ - 181, - 182, - 183 - ] - }, - { - "teal": 142, - "source": 1464, - "pc": [ - 184, - 185, - 186, - 187 - ] - }, - { - "teal": 145, - "source": 1464, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 188 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 48 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 203 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 217 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NAoqYWJpX3JvdXRlX2xhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKTogdWludDY0CmxhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ2OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDY5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWludCA0MTkyCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3MAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDczCgkvLyB0aGlzLmJLZXkudmFsdWVbMV0KCWludCAzMiAvLyBoZWFkT2Zmc2V0CglpbnQgNDE2MAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJZnJhbWVfYnVyeSAxIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCXN3YXAKCWR1cAoJZnJhbWVfYnVyeSAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgkrCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50CglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiIC8vIGtleSBmb3IgdGhlIGJveCB0aGF0IGNvbnRhaW5zIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gdjogdWludDUxMgoKKmZvck9mXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3NAoJLy8gc3VtICs9IDEKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgNjQKCSsKCWR1cAoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yT2ZfMF9lbmQKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDY0Cglib3hfZXh0cmFjdAoJZnJhbWVfYnVyeSA0IC8vIHY6IHVpbnQ1MTIKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDc3CgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRiNjU3OSAweDBhODEwMSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveCgpdWludDY0CiphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94KCl1aW50NjQKCWNhbGxzdWIgbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGxhcmdlTmVzdGVkU3RhdGljRm9yT2ZJbkJveCgpOiB1aW50NjQKbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDY4CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSAweDBhODEwMSAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDY5CgkvLyB0aGlzLmJLZXkuY3JlYXRlKCkKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCXB1c2hpbnQgNDE5MgoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NzAKCS8vIHN1bSA9IDAKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NzMKCS8vIHRoaXMuYktleS52YWx1ZVsxXQoJcHVzaGludCAzMiAvLyBoZWFkT2Zmc2V0CglwdXNoaW50IDQxNjAKCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWZyYW1lX2J1cnkgMSAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglzd2FwCglkdXAKCWZyYW1lX2J1cnkgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJKwoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IiAvLyBrZXkgZm9yIHRoZSBib3ggdGhhdCBjb250YWlucyB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgMiAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA2NAoJYm94X2V4dHJhY3QKCWZyYW1lX2J1cnkgNCAvLyB2OiB1aW50NTEyCgoqZm9yT2ZfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDc0CgkvLyBzdW0gKz0gMQoJZnJhbWVfZGlnIDAgLy8gc3VtOiB1aW50NjQKCXB1c2hpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoqZm9yT2ZfMF9jb250aW51ZToKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAyIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDY0CgkrCglkdXAKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvck9mXzBfZW5kCglmcmFtZV9idXJ5IDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIgLy8ga2V5IGZvciB0aGUgYm94IHRoYXQgY29udGFpbnMgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDIgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgNjQKCWJveF9leHRyYWN0CglmcmFtZV9idXJ5IDQgLy8gdjogdWludDUxMgoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NzcKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MWY2YTczMzEgLy8gbWV0aG9kICJsYXJnZU5lc3RlZFN0YXRpY0Zvck9mSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VOZXN0ZWRTdGF0aWNGb3JPZkluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAUAGACYBBGJLZXkxGBQkCzEZCI0MAH8AAAAAAAAAAAAAAHEAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgABHBLEkshAlsgGAAwqBAUmyHrIfgQWyGbMogeAguUgljACBIIHAICiMAUxJjAIIjAMoiwIjuowEiwAiCIwAiwIjCEmLAwxBAAyMAiiLAiO6jARC/+OLAIwARgSJIkOABLhEezY2GgCOAf/xAIAEH2pzMTYaAI4B/3UA", + "approval": "CiYDBGJLZXkDCoEBADEYFIEGCzEZCI0MAJwAAAAAAAAAAAAAAI4AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOABGJLZXmB4CC5SIEAjACBIIHAIIAEYktleYwBTEmMAgiMA4AEYktleYsCgUC6jASLAIEBCIwAiwKBQAhJiwMMQQASjAKABGJLZXmLAoFAuowEQv/biwCMAEYEiYEBQ4AEuER7NjYaAI4B//AAgAQfanMxNhoAjgH/WAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal b/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal index a5d06d640..243898644 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal +++ b/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // maxUfixed()ufixed64x2 *abi_route_maxUfixed: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute maxUfixed()ufixed64x2 callsub maxUfixed @@ -33,7 +33,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 0 8 concat log - int 1 + pushint 1 return // maxUfixed(): ufixed<64, 2> @@ -41,11 +41,11 @@ maxUfixed: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1142 // u64max: ufixed<64, 2> = 12.34 - int 1234 + pushint 1234 frame_bury 0 // u64max: ufixed<64, 2> // tests/contracts/abi.algo.ts:1144 @@ -57,11 +57,11 @@ maxUfixed: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -69,7 +69,7 @@ maxUfixed: err *call_NoOp: - method "maxUfixed()ufixed64x2" + pushbytes 0x54ed3d2e // method "maxUfixed()ufixed64x2" txna ApplicationArgs 0 match *abi_route_maxUfixed diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json b/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json index dba53c5cc..3fc8fc5b6 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json +++ b/tests/contracts/artifacts/ABITestMaxUfixed.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtYXhVZml4ZWQoKXVmaXhlZDY0eDIKKmFiaV9yb3V0ZV9tYXhVZml4ZWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIG1heFVmaXhlZAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtYXhVZml4ZWQoKTogdWZpeGVkPDY0LCAyPgptYXhVZml4ZWQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQyCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxMi4zNAoJaW50IDEyMzQKCWZyYW1lX2J1cnkgMCAvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE0NAoJLy8gcmV0dXJuIHU2NG1heDsKCWZyYW1lX2RpZyAwIC8vIHU2NG1heDogdWZpeGVkPDY0LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibWF4VWZpeGVkKCl1Zml4ZWQ2NHgyIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tYXhVZml4ZWQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCiphYmlfcm91dGVfbWF4VWZpeGVkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIG1heFVmaXhlZAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbWF4VWZpeGVkKCk6IHVmaXhlZDw2NCwgMj4KbWF4VWZpeGVkOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQyCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxMi4zNAoJcHVzaGludCAxMjM0CglmcmFtZV9idXJ5IDAgLy8gdTY0bWF4OiB1Zml4ZWQ8NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNDQKCS8vIHJldHVybiB1NjRtYXg7CglmcmFtZV9kaWcgMCAvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NTRlZDNkMmUgLy8gbWV0aG9kICJtYXhVZml4ZWQoKXVmaXhlZDY0eDIiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21heFVmaXhlZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.arc56_draft.json b/tests/contracts/artifacts/ABITestMaxUfixed.arc56_draft.json index 11ed62c03..3388db3d5 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestMaxUfixed.arc56_draft.json @@ -61,325 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1140, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1140, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1140, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1140, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1140, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1140, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1140, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1140, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1140, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1141, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1141, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1141, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1141, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 34, - "source": 1141, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1141, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1141, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 1141, - "pc": [ - 56 - ] - }, - { - "teal": 41, - "source": 1141, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 44, - "source": 1141, - "pc": [ - 60, - 61 - ] - }, - { - "teal": 48, - "source": 1142, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 49, - "source": 1142, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 53, - "source": 1144, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 56, - "source": 1141, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 57, - "source": 1141, - "pc": [ - 71 - ] - }, - { - "teal": 60, - "source": 1140, - "pc": [ - 72 - ] - }, - { - "teal": 61, - "source": 1140, - "pc": [ - 73 - ] - }, - { - "teal": 64, - "source": 1140, - "pc": [ - 74, - 75, - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 65, - "source": 1140, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 66, - "source": 1140, - "pc": [ - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 69, - "source": 1140, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 87 - ] - }, - { - "teal": 72, - "source": 1140, - "pc": [ - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 73, - "source": 1140, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 74, - "source": 1140, - "pc": [ - 97, - 98, - 99, - 100 - ] - }, - { - "teal": 77, - "source": 1140, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 101 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 86 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 100 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtYXhVZml4ZWQoKXVmaXhlZDY0eDIKKmFiaV9yb3V0ZV9tYXhVZml4ZWQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIG1heFVmaXhlZAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtYXhVZml4ZWQoKTogdWZpeGVkPDY0LCAyPgptYXhVZml4ZWQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQyCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxMi4zNAoJaW50IDEyMzQKCWZyYW1lX2J1cnkgMCAvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE0NAoJLy8gcmV0dXJuIHU2NG1heDsKCWZyYW1lX2RpZyAwIC8vIHU2NG1heDogdWZpeGVkPDY0LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibWF4VWZpeGVkKCl1Zml4ZWQ2NHgyIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tYXhVZml4ZWQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCiphYmlfcm91dGVfbWF4VWZpeGVkOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIG1heFVmaXhlZAoJaXRvYgoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbWF4VWZpeGVkKCk6IHVmaXhlZDw2NCwgMj4KbWF4VWZpeGVkOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQyCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxMi4zNAoJcHVzaGludCAxMjM0CglmcmFtZV9idXJ5IDAgLy8gdTY0bWF4OiB1Zml4ZWQ8NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNDQKCS8vIHJldHVybiB1NjRtYXg7CglmcmFtZV9kaWcgMCAvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NTRlZDNkMmUgLy8gbWV0aG9kICJtYXhVZml4ZWQoKXVmaXhlZDY0eDIiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21heFVmaXhlZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADEAAAAAAAAAAAAAACMAAAAAAAAAAAAAAIAEFR98dYgACBZXAAhQsCJDigABgACB0gmMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEVO09LjYaAI4B/8MA", + "approval": "CjEYFIEGCzEZCI0MADMAAAAAAAAAAAAAACUAAAAAAAAAAAAAAIAEFR98dYgACRZXAAhQsIEBQ4oAAYAAgdIJjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgARU7T0uNhoAjgH/wQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal index b51c38446..bfb750601 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // mixedStaticArrayElements()uint64 *abi_route_mixedStaticArrayElements: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute mixedStaticArrayElements()uint64 callsub mixedStaticArrayElements itob concat log - int 1 + pushint 1 return // mixedStaticArrayElements(): uint64 @@ -45,34 +46,34 @@ mixedStaticArrayElements: // tests/contracts/abi.algo.ts:44 // n1 = btoi(itob(3)) - int 3 + pushint 3 frame_bury 0 // n1: uint64 // tests/contracts/abi.algo.ts:45 // n2 = btoi(itob(4)) - int 4 + pushint 4 frame_bury 1 // n2: uint64 // tests/contracts/abi.algo.ts:46 // n3 = btoi(itob(5)) - int 5 + pushint 5 frame_bury 2 // n3: uint64 // tests/contracts/abi.algo.ts:47 // a: StaticArray = [0, 1, 2, n1, n2, n3, 6, 7, 8] - byte 0x000000000000000000000000000000010000000000000002 + pushbytes 0x000000000000000000000000000000010000000000000002 frame_dig 0 // n1: uint64 itob concat - byte 0x0000000000000004 + pushbytes 0x0000000000000004 concat - byte 0x0000000000000005 + pushbytes 0x0000000000000005 concat - byte 0x0000000000000006 + pushbytes 0x0000000000000006 concat - byte 0x0000000000000007 + pushbytes 0x0000000000000007 concat - byte 0x0000000000000008 + pushbytes 0x0000000000000008 concat frame_bury 3 // a: StaticArray @@ -98,11 +99,11 @@ mixedStaticArrayElements: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -110,7 +111,7 @@ mixedStaticArrayElements: err *call_NoOp: - method "mixedStaticArrayElements()uint64" + pushbytes 0x869deebc // method "mixedStaticArrayElements()uint64" txna ApplicationArgs 0 match *abi_route_mixedStaticArrayElements diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json index 0db9fbc8b..42f985884 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKTogdWludDY0Cm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQKCS8vIG4xID0gYnRvaShpdG9iKDMpKQoJaW50IDMKCWZyYW1lX2J1cnkgMCAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1CgkvLyBuMiA9IGJ0b2koaXRvYig0KSkKCWludCA0CglmcmFtZV9idXJ5IDEgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NgoJLy8gbjMgPSBidG9pKGl0b2IoNSkpCglpbnQgNQoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4gPSBbMCwgMSwgMiwgbjEsIG4yLCBuMywgNiwgNywgOF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDUKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDYKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDcKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJZnJhbWVfYnVyeSAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkKCS8vIHJldHVybiBhWzFdICsgYVs0XSArIGFbN107CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PgoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDU2IDgKCWJ0b2kKCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CgljYWxsc3ViIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cwoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKTogdWludDY0Cm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQKCS8vIG4xID0gYnRvaShpdG9iKDMpKQoJcHVzaGludCAzCglmcmFtZV9idXJ5IDAgLy8gbjE6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NQoJLy8gbjIgPSBidG9pKGl0b2IoNCkpCglwdXNoaW50IDQKCWZyYW1lX2J1cnkgMSAvLyBuMjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2CgkvLyBuMyA9IGJ0b2koaXRvYig1KSkKCXB1c2hpbnQgNQoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4gPSBbMCwgMSwgMiwgbjEsIG4yLCBuMywgNiwgNywgOF0KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJZnJhbWVfZGlnIDAgLy8gbjE6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDA0Cgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDUKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwNgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDA3Cgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJZnJhbWVfYnVyeSAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkKCS8vIHJldHVybiBhWzFdICsgYVs0XSArIGFbN107CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PgoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDU2IDgKCWJ0b2kKCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg2OWRlZWJjIC8vIG1ldGhvZCAibWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc56_draft.json b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc56_draft.json index 2981256a7..d3d204a19 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc56_draft.json @@ -61,618 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 42, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 42, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 42, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 42, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 42, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 42, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 42, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 42, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 42, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 43, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 43, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 43, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 43, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 43, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 43, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 43, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 43, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 43, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 44, - "source": 43, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 48, - "source": 44, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 49, - "source": 44, - "pc": [ - 63, - 64 - ] - }, - { - "teal": 53, - "source": 45, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 54, - "source": 45, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 58, - "source": 46, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 59, - "source": 46, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 63, - "source": 47, - "pc": [ - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 64, - "source": 47, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 65, - "source": 47, - "pc": [ - 101 - ] - }, - { - "teal": 66, - "source": 47, - "pc": [ - 102 - ] - }, - { - "teal": 67, - "source": 47, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 68, - "source": 47, - "pc": [ - 113 - ] - }, - { - "teal": 69, - "source": 47, - "pc": [ - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123 - ] - }, - { - "teal": 70, - "source": 47, - "pc": [ - 124 - ] - }, - { - "teal": 71, - "source": 47, - "pc": [ - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134 - ] - }, - { - "teal": 72, - "source": 47, - "pc": [ - 135 - ] - }, - { - "teal": 73, - "source": 47, - "pc": [ - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 74, - "source": 47, - "pc": [ - 146 - ] - }, - { - "teal": 75, - "source": 47, - "pc": [ - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156 - ] - }, - { - "teal": 76, - "source": 47, - "pc": [ - 157 - ] - }, - { - "teal": 77, - "source": 47, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 81, - "source": 49, - "pc": [ - 160, - 161 - ] - }, - { - "teal": 82, - "source": 49, - "pc": [ - 162, - 163, - 164 - ] - }, - { - "teal": 83, - "source": 49, - "pc": [ - 165 - ] - }, - { - "teal": 84, - "source": 49, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 85, - "source": 49, - "pc": [ - 168, - 169, - 170 - ] - }, - { - "teal": 86, - "source": 49, - "pc": [ - 171 - ] - }, - { - "teal": 87, - "source": 49, - "pc": [ - 172 - ] - }, - { - "teal": 88, - "source": 49, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 89, - "source": 49, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 90, - "source": 49, - "pc": [ - 178 - ] - }, - { - "teal": 91, - "source": 49, - "pc": [ - 179 - ] - }, - { - "teal": 94, - "source": 43, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 97, - "source": 43, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 98, - "source": 43, - "pc": [ - 184 - ] - }, - { - "teal": 101, - "source": 42, - "pc": [ - 185 - ] - }, - { - "teal": 102, - "source": 42, - "pc": [ - 186 - ] - }, - { - "teal": 105, - "source": 42, - "pc": [ - 187, - 188, - 189, - 190, - 191, - 192 - ] - }, - { - "teal": 106, - "source": 42, - "pc": [ - 193, - 194, - 195 - ] - }, - { - "teal": 107, - "source": 42, - "pc": [ - 196, - 197, - 198, - 199 - ] - }, - { - "teal": 110, - "source": 42, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 200 - ] - }, - { - "teal": 113, - "source": 42, - "pc": [ - 201, - 202, - 203, - 204, - 205, - 206 - ] - }, - { - "teal": 114, - "source": 42, - "pc": [ - 207, - 208, - 209 - ] - }, - { - "teal": 115, - "source": 42, - "pc": [ - 210, - 211, - 212, - 213 - ] - }, - { - "teal": 118, - "source": 42, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 214 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 202 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 216 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKTogdWludDY0Cm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQKCS8vIG4xID0gYnRvaShpdG9iKDMpKQoJaW50IDMKCWZyYW1lX2J1cnkgMCAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1CgkvLyBuMiA9IGJ0b2koaXRvYig0KSkKCWludCA0CglmcmFtZV9idXJ5IDEgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NgoJLy8gbjMgPSBidG9pKGl0b2IoNSkpCglpbnQgNQoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4gPSBbMCwgMSwgMiwgbjEsIG4yLCBuMywgNiwgNywgOF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDUKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDYKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDcKCWNvbmNhdAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJZnJhbWVfYnVyeSAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkKCS8vIHJldHVybiBhWzFdICsgYVs0XSArIGFbN107CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PgoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDU2IDgKCWJ0b2kKCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CgljYWxsc3ViIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cwoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKTogdWludDY0Cm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDQKCS8vIG4xID0gYnRvaShpdG9iKDMpKQoJcHVzaGludCAzCglmcmFtZV9idXJ5IDAgLy8gbjE6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NQoJLy8gbjIgPSBidG9pKGl0b2IoNCkpCglwdXNoaW50IDQKCWZyYW1lX2J1cnkgMSAvLyBuMjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2CgkvLyBuMyA9IGJ0b2koaXRvYig1KSkKCXB1c2hpbnQgNQoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4gPSBbMCwgMSwgMiwgbjEsIG4yLCBuMywgNiwgNywgOF0KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJZnJhbWVfZGlnIDAgLy8gbjE6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDA0Cgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDUKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwNgoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDA3Cgljb25jYXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDgKCWNvbmNhdAoJZnJhbWVfYnVyeSAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkKCS8vIHJldHVybiBhWzFdICsgYVs0XSArIGFbN107CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PgoJZXh0cmFjdCAzMiA4CglidG9pCgkrCglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDk+CglleHRyYWN0IDU2IDgKCWJ0b2kKCSsKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg2OWRlZWJjIC8vIG1ldGhvZCAibWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAKIAAAAAAAAAAAAAAJQAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgABHA4EDjACBBIwBgQWMAoAYAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACiwAWUIAIAAAAAAAAAARQgAgAAAAAAAAABVCACAAAAAAAAAAGUIAIAAAAAAAAAAdQgAgAAAAAAAAACFCMA4sDVwgIF4sDVyAIFwiLA1c4CBcIjABGA4kiQ4AEuER7NjYaAI4B//EAgASGne68NhoAjgH/UgA=", + "approval": "CiYBADEYFIEGCzEZCI0MAKQAAAAAAAAAAAAAAJYAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwOBA4wAgQSMAYEFjAKAGAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAosAFlCACAAAAAAAAAAEUIAIAAAAAAAAAAVQgAgAAAAAAAAABlCACAAAAAAAAAAHUIAIAAAAAAAAAAhQjAOLA1cICBeLA1cgCBcIiwNXOAgXCIwARgOJgQFDgAS4RHs2NhoAjgH/8ACABIad7rw2GgCOAf9QAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal b/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal index 2e3fd25f2..820ae59c2 100644 --- a/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestMultiBytesTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // multiBytesTuple()(byte[],byte[]) *abi_route_multiBytesTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute multiBytesTuple()(byte[],byte[]) callsub multiBytesTuple concat log - int 1 + pushint 1 return // multiBytesTuple(): [bytes, bytes] @@ -42,21 +43,21 @@ multiBytesTuple: // return [hex('0x01'), hex('0x02')]; byte 0x // initial head byte 0x // initial tail - byte 0x0004 // initial head offset - byte 0x000101 + pushbytes 0x0004 // initial head offset + pushbytes 0x000101 callsub *process_dynamic_tuple_element - byte 0x000102 + pushbytes 0x000102 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -64,7 +65,7 @@ multiBytesTuple: err *call_NoOp: - method "multiBytesTuple()(byte[],byte[])" + pushbytes 0x7bfd9357 // method "multiBytesTuple()(byte[],byte[])" txna ApplicationArgs 0 match *abi_route_multiBytesTuple diff --git a/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json b/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json index 8eebeee51..a58242810 100644 --- a/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestMultiBytesTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoqYWJpX3JvdXRlX211bHRpQnl0ZXNUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoJY2FsbHN1YiBtdWx0aUJ5dGVzVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUJ5dGVzVHVwbGUoKTogW2J5dGVzLCBieXRlc10KbXVsdGlCeXRlc1R1cGxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTkKCS8vIHJldHVybiBbaGV4KCcweDAxJyksIGhleCgnMHgwMicpXTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEwMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm11bHRpQnl0ZXNUdXBsZSgpKGJ5dGVbXSxieXRlW10pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tdWx0aUJ5dGVzVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoqYWJpX3JvdXRlX211bHRpQnl0ZXNUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG11bHRpQnl0ZXNUdXBsZSgpKGJ5dGVbXSxieXRlW10pCgljYWxsc3ViIG11bHRpQnl0ZXNUdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUJ5dGVzVHVwbGUoKTogW2J5dGVzLCBieXRlc10KbXVsdGlCeXRlc1R1cGxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTkKCS8vIHJldHVybiBbaGV4KCcweDAxJyksIGhleCgnMHgwMicpXTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxMDEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4N2JmZDkzNTcgLy8gbWV0aG9kICJtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbXVsdGlCeXRlc1R1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMultiBytesTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestMultiBytesTuple.arc56_draft.json index 435fe2282..5076b2001 100644 --- a/tests/contracts/artifacts/ABITestMultiBytesTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestMultiBytesTuple.arc56_draft.json @@ -61,518 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1217, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 1217, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 1217, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 1217, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 1217, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 1217, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 1217, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 1217, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 1217, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 1218, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 1218, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 1218, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 1218, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 1218, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 1218, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 1218, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1219, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1219, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1219, - "pc": [ - 61, - 62, - 63, - 64 - ] - }, - { - "teal": 46, - "source": 1219, - "pc": [ - 65, - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 47, - "source": 1219, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 48, - "source": 1219, - "pc": [ - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 49, - "source": 1219, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 50, - "source": 1219, - "pc": [ - 81 - ] - }, - { - "teal": 51, - "source": 1219, - "pc": [ - 82 - ] - }, - { - "teal": 52, - "source": 1218, - "pc": [ - 83 - ] - }, - { - "teal": 55, - "source": 1217, - "pc": [ - 84 - ] - }, - { - "teal": 56, - "source": 1217, - "pc": [ - 85 - ] - }, - { - "teal": 59, - "source": 1217, - "pc": [ - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 60, - "source": 1217, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 61, - "source": 1217, - "pc": [ - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 64, - "source": 1217, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 99 - ] - }, - { - "teal": 67, - "source": 1217, - "pc": [ - 100, - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 68, - "source": 1217, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 69, - "source": 1217, - "pc": [ - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 72, - "source": 1217, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 113 - ] - }, - { - "teal": 75, - "source": 1217, - "pc": [ - 114, - 115, - 116 - ] - }, - { - "teal": 76, - "source": 1217, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 77, - "source": 1217, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 78, - "source": 1217, - "pc": [ - 121 - ] - }, - { - "teal": 79, - "source": 1217, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 80, - "source": 1217, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 81, - "source": 1217, - "pc": [ - 126 - ] - }, - { - "teal": 82, - "source": 1217, - "pc": [ - 127 - ] - }, - { - "teal": 83, - "source": 1217, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 84, - "source": 1217, - "pc": [ - 130 - ] - }, - { - "teal": 85, - "source": 1217, - "pc": [ - 131 - ] - }, - { - "teal": 86, - "source": 1217, - "pc": [ - 132 - ] - }, - { - "teal": 87, - "source": 1217, - "pc": [ - 133, - 134, - 135 - ] - }, - { - "teal": 88, - "source": 1217, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 89, - "source": 1217, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 90, - "source": 1217, - "pc": [ - 140 - ] - }, - { - "teal": 91, - "source": 1217, - "pc": [ - 141 - ] - }, - { - "teal": 92, - "source": 1217, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 93, - "source": 1217, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 94, - "source": 1217, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 95, - "source": 1217, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 96, - "source": 1217, - "pc": [ - 150 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 100 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoqYWJpX3JvdXRlX211bHRpQnl0ZXNUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoJY2FsbHN1YiBtdWx0aUJ5dGVzVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUJ5dGVzVHVwbGUoKTogW2J5dGVzLCBieXRlc10KbXVsdGlCeXRlc1R1cGxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTkKCS8vIHJldHVybiBbaGV4KCcweDAxJyksIGhleCgnMHgwMicpXTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDQgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEwMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm11bHRpQnl0ZXNUdXBsZSgpKGJ5dGVbXSxieXRlW10pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tdWx0aUJ5dGVzVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKQoqYWJpX3JvdXRlX211bHRpQnl0ZXNUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG11bHRpQnl0ZXNUdXBsZSgpKGJ5dGVbXSxieXRlW10pCgljYWxsc3ViIG11bHRpQnl0ZXNUdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUJ5dGVzVHVwbGUoKTogW2J5dGVzLCBieXRlc10KbXVsdGlCeXRlc1R1cGxlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTkKCS8vIHJldHVybiBbaGV4KCcweDAxJyksIGhleCgnMHgwMicpXTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxMDEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4N2JmZDkzNTcgLy8gbWV0aG9kICJtdWx0aUJ5dGVzVHVwbGUoKShieXRlW10sYnl0ZVtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbXVsdGlCeXRlc1R1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MADoAAAAAAAAAAAAAACwAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoKIACAASAAwABAYgAKYADAAECiAAhSFCJIkOABLhEezY2GgCOAf/xAIAEe/2TVzYaAI4B/7oAigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYBADEYFIEGCzEZCI0MAD4AAAAAAAAAAAAAADAAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIACAASAAwABAYgAKoADAAECiAAiSFCJgQFDgAS4RHs2NhoAjgH/8ACABHv9k1c2GgCOAf+2AIoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal index f2e3c9943..8456ba0fc 100644 --- a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // multiNestedArrayRef()uint8[2][2][2] *abi_route_multiNestedArrayRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute multiNestedArrayRef()uint8[2][2][2] callsub multiNestedArrayRef concat log - int 1 + pushint 1 return // multiNestedArrayRef(): StaticArray, 2>, 2>, 2> @@ -39,7 +39,7 @@ multiNestedArrayRef: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:793 // a: StaticArray, 2>, 2>, 2> = [ @@ -52,7 +52,7 @@ multiNestedArrayRef: // [7, 8], // ], // ] - byte 0x0102030405060708 + pushbytes 0x0102030405060708 frame_bury 0 // a: StaticArray, 2>, 2>, 2> // tests/contracts/abi.algo.ts:804 @@ -62,7 +62,7 @@ multiNestedArrayRef: // tests/contracts/abi.algo.ts:807 // c[1] = 9 as uint<8> frame_dig 0 // a: StaticArray, 2>, 2>, 2> - byte 0x09 + pushbytes 0x09 replace2 7 frame_bury 0 // c: StaticArray, 2>, 2>, 2> @@ -75,11 +75,11 @@ multiNestedArrayRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -87,7 +87,7 @@ multiNestedArrayRef: err *call_NoOp: - method "multiNestedArrayRef()uint8[2][2][2]" + pushbytes 0x3d6405df // method "multiNestedArrayRef()uint8[2][2][2]" txna ApplicationArgs 0 match *abi_route_multiNestedArrayRef diff --git a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json index 6699dd2a6..ba3781057 100644 --- a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtdWx0aU5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXVsyXQoqYWJpX3JvdXRlX211bHRpTmVzdGVkQXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KCWNhbGxzdWIgbXVsdGlOZXN0ZWRBcnJheVJlZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG11bHRpTmVzdGVkQXJyYXlSZWYoKTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgptdWx0aU5lc3RlZEFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzkzCgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBbCgkvLyAgICAgICAgIFs1LCA2XSwKCS8vICAgICAgICAgWzcsIDhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDEwMjAzMDQwNTA2MDcwOAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODA0CgkvLyBiID0gYVsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgwNQoJLy8gYyA9IGJbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MDcKCS8vIGNbMV0gPSA5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCWJ5dGUgMHgwOQoJcmVwbGFjZTIgNwoJZnJhbWVfYnVyeSAwIC8vIGM6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODA5CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm11bHRpTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tdWx0aU5lc3RlZEFycmF5UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KKmFiaV9yb3V0ZV9tdWx0aU5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KCWNhbGxzdWIgbXVsdGlOZXN0ZWRBcnJheVJlZgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtdWx0aU5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KbXVsdGlOZXN0ZWRBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzkzCgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBbCgkvLyAgICAgICAgIFs1LCA2XSwKCS8vICAgICAgICAgWzcsIDhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMTAyMDMwNDA1MDYwNzA4CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MDQKCS8vIGIgPSBhWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODA1CgkvLyBjID0gYlsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgwNwoJLy8gY1sxXSA9IDkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoJcHVzaGJ5dGVzIDB4MDkKCXJlcGxhY2UyIDcKCWZyYW1lX2J1cnkgMCAvLyBjOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgwOQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDNkNjQwNWRmIC8vIG1ldGhvZCAibXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX211bHRpTmVzdGVkQXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc56_draft.json b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc56_draft.json index bfb8e73bc..e5f1960f5 100644 --- a/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc56_draft.json @@ -61,349 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 791, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 791, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 791, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 791, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 791, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 791, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 791, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 791, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 791, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 792, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 792, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 792, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 792, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 792, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 792, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 792, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 792, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 55, - "source": 793, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 56, - "source": 793, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 64, - "source": 807, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 65, - "source": 807, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 66, - "source": 807, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 67, - "source": 807, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 71, - "source": 809, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 74, - "source": 792, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 75, - "source": 792, - "pc": [ - 83 - ] - }, - { - "teal": 78, - "source": 791, - "pc": [ - 84 - ] - }, - { - "teal": 79, - "source": 791, - "pc": [ - 85 - ] - }, - { - "teal": 82, - "source": 791, - "pc": [ - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 83, - "source": 791, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 84, - "source": 791, - "pc": [ - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 87, - "source": 791, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 99 - ] - }, - { - "teal": 90, - "source": 791, - "pc": [ - 100, - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 91, - "source": 791, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 92, - "source": 791, - "pc": [ - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 95, - "source": 791, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 113 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 98 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 112 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtdWx0aU5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXVsyXQoqYWJpX3JvdXRlX211bHRpTmVzdGVkQXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KCWNhbGxzdWIgbXVsdGlOZXN0ZWRBcnJheVJlZgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG11bHRpTmVzdGVkQXJyYXlSZWYoKTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgptdWx0aU5lc3RlZEFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzkzCgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBbCgkvLyAgICAgICAgIFs1LCA2XSwKCS8vICAgICAgICAgWzcsIDhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglieXRlIDB4MDEwMjAzMDQwNTA2MDcwOAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODA0CgkvLyBiID0gYVsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgwNQoJLy8gYyA9IGJbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MDcKCS8vIGNbMV0gPSA5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCWJ5dGUgMHgwOQoJcmVwbGFjZTIgNwoJZnJhbWVfYnVyeSAwIC8vIGM6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODA5CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm11bHRpTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9tdWx0aU5lc3RlZEFycmF5UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KKmFiaV9yb3V0ZV9tdWx0aU5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0KCWNhbGxzdWIgbXVsdGlOZXN0ZWRBcnJheVJlZgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtdWx0aU5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiwgMj4KbXVsdGlOZXN0ZWRBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzkzCgkvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgICBbCgkvLyAgICAgICAgIFs1LCA2XSwKCS8vICAgICAgICAgWzcsIDhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMTAyMDMwNDA1MDYwNzA4CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MDQKCS8vIGIgPSBhWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODA1CgkvLyBjID0gYlsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgwNwoJLy8gY1sxXSA9IDkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+LCAyPgoJcHVzaGJ5dGVzIDB4MDkKCXJlcGxhY2UyIDcKCWZyYW1lX2J1cnkgMCAvLyBjOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgwOQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4sIDI+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDNkNjQwNWRmIC8vIG1ldGhvZCAibXVsdGlOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl1bMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX211bHRpTmVzdGVkQXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAD0AAAAAAAAAAAAAAC8AAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAIAQIDBAUGBwiMAIsAgAEJXAeMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEPWQF3zYaAI4B/7cA", + "approval": "CjEYFIEGCzEZCI0MAD8AAAAAAAAAAAAAADEAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACACAECAwQFBgcIjACLAIABCVwHjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgAQ9ZAXfNhoAjgH/tQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNamedTuple.approval.teal b/tests/contracts/artifacts/ABITestNamedTuple.approval.teal index 54ec4dd75..6e57a4ce2 100644 --- a/tests/contracts/artifacts/ABITestNamedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNamedTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // namedTuple()string *abi_route_namedTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute namedTuple()string callsub namedTuple @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // namedTuple(): string @@ -57,10 +58,10 @@ namedTuple: // } byte 0x // initial head byte 0x // initial tail - byte 0x0004 // initial head offset - byte 0x0001 + pushbytes 0x0004 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000c48656c6c6f20576f726c6421 + pushbytes 0x000c48656c6c6f20576f726c6421 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -70,7 +71,7 @@ namedTuple: // return a.bar; frame_dig 0 // a: { foo: uint16; bar: string; } store 255 // full array - int 2 + pushint 2 load 255 // full array load 255 // full array uncover 2 @@ -79,9 +80,9 @@ namedTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -91,11 +92,11 @@ namedTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -103,7 +104,7 @@ namedTuple: err *call_NoOp: - method "namedTuple()string" + pushbytes 0xa7565053 // method "namedTuple()string" txna ApplicationArgs 0 match *abi_route_namedTuple diff --git a/tests/contracts/artifacts/ABITestNamedTuple.arc32.json b/tests/contracts/artifacts/ABITestNamedTuple.arc32.json index f8fbe6f3a..2ddb740df 100644 --- a/tests/contracts/artifacts/ABITestNamedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestNamedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV9uYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiBuYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5hbWVkVHVwbGUoKTogc3RyaW5nCm5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MDIKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjEwCgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25hbWVkVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV9uYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmFtZWRUdXBsZSgpc3RyaW5nCgljYWxsc3ViIG5hbWVkVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5hbWVkVHVwbGUoKTogc3RyaW5nCm5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MDIKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjEwCgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGE3NTY1MDUzIC8vIG1ldGhvZCAibmFtZWRUdXBsZSgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uYW1lZFR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNamedTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestNamedTuple.arc56_draft.json index 16cbd1af3..b62ec1262 100644 --- a/tests/contracts/artifacts/ABITestNamedTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNamedTuple.arc56_draft.json @@ -61,778 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 600, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ] - }, - { - "teal": 13, - "source": 600, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 14, - "source": 600, - "pc": [ - 10 - ] - }, - { - "teal": 15, - "source": 600, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 16, - "source": 600, - "pc": [ - 13 - ] - }, - { - "teal": 17, - "source": 600, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 18, - "source": 600, - "pc": [ - 16 - ] - }, - { - "teal": 19, - "source": 600, - "pc": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ] - }, - { - "teal": 23, - "source": 600, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 43 - ] - }, - { - "teal": 28, - "source": 601, - "pc": [ - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 31, - "source": 601, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 32, - "source": 601, - "pc": [ - 53 - ] - }, - { - "teal": 33, - "source": 601, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 601, - "pc": [ - 55 - ] - }, - { - "teal": 35, - "source": 601, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 36, - "source": 601, - "pc": [ - 59 - ] - }, - { - "teal": 37, - "source": 601, - "pc": [ - 60 - ] - }, - { - "teal": 38, - "source": 601, - "pc": [ - 61 - ] - }, - { - "teal": 39, - "source": 601, - "pc": [ - 62 - ] - }, - { - "teal": 40, - "source": 601, - "pc": [ - 63 - ] - }, - { - "teal": 41, - "source": 601, - "pc": [ - 64 - ] - }, - { - "teal": 45, - "source": 601, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 48, - "source": 601, - "pc": [ - 68 - ] - }, - { - "teal": 58, - "source": 605, - "pc": [ - 69 - ] - }, - { - "teal": 59, - "source": 605, - "pc": [ - 70 - ] - }, - { - "teal": 60, - "source": 605, - "pc": [ - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 61, - "source": 606, - "pc": [ - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 62, - "source": 606, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 63, - "source": 607, - "pc": [ - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 64, - "source": 607, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 65, - "source": 605, - "pc": [ - 101 - ] - }, - { - "teal": 66, - "source": 605, - "pc": [ - 102 - ] - }, - { - "teal": 67, - "source": 602, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 71, - "source": 610, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 72, - "source": 610, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 73, - "source": 610, - "pc": [ - 109 - ] - }, - { - "teal": 74, - "source": 610, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 75, - "source": 610, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 76, - "source": 610, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 77, - "source": 610, - "pc": [ - 116 - ] - }, - { - "teal": 78, - "source": 610, - "pc": [ - 117 - ] - }, - { - "teal": 79, - "source": 610, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 80, - "source": 610, - "pc": [ - 120 - ] - }, - { - "teal": 81, - "source": 610, - "pc": [ - 121 - ] - }, - { - "teal": 82, - "source": 610, - "pc": [ - 122 - ] - }, - { - "teal": 83, - "source": 610, - "pc": [ - 123 - ] - }, - { - "teal": 84, - "source": 610, - "pc": [ - 124 - ] - }, - { - "teal": 85, - "source": 610, - "pc": [ - 125 - ] - }, - { - "teal": 86, - "source": 610, - "pc": [ - 126 - ] - }, - { - "teal": 87, - "source": 610, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 90, - "source": 601, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 91, - "source": 601, - "pc": [ - 132 - ] - }, - { - "teal": 94, - "source": 600, - "pc": [ - 133 - ] - }, - { - "teal": 95, - "source": 600, - "pc": [ - 134 - ] - }, - { - "teal": 98, - "source": 600, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140 - ] - }, - { - "teal": 99, - "source": 600, - "pc": [ - 141, - 142, - 143 - ] - }, - { - "teal": 100, - "source": 600, - "pc": [ - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 103, - "source": 600, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 148 - ] - }, - { - "teal": 106, - "source": 600, - "pc": [ - 149, - 150, - 151, - 152, - 153, - 154 - ] - }, - { - "teal": 107, - "source": 600, - "pc": [ - 155, - 156, - 157 - ] - }, - { - "teal": 108, - "source": 600, - "pc": [ - 158, - 159, - 160, - 161 - ] - }, - { - "teal": 111, - "source": 600, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 162 - ] - }, - { - "teal": 114, - "source": 600, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 115, - "source": 600, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 116, - "source": 600, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 117, - "source": 600, - "pc": [ - 170 - ] - }, - { - "teal": 118, - "source": 600, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 119, - "source": 600, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 120, - "source": 600, - "pc": [ - 175 - ] - }, - { - "teal": 123, - "source": 600, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 124, - "source": 600, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 125, - "source": 600, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 126, - "source": 600, - "pc": [ - 183 - ] - }, - { - "teal": 127, - "source": 600, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 128, - "source": 600, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 129, - "source": 600, - "pc": [ - 188 - ] - }, - { - "teal": 130, - "source": 600, - "pc": [ - 189 - ] - }, - { - "teal": 131, - "source": 600, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 132, - "source": 600, - "pc": [ - 192 - ] - }, - { - "teal": 133, - "source": 600, - "pc": [ - 193 - ] - }, - { - "teal": 134, - "source": 600, - "pc": [ - 194 - ] - }, - { - "teal": 135, - "source": 600, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 136, - "source": 600, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 137, - "source": 600, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 138, - "source": 600, - "pc": [ - 202 - ] - }, - { - "teal": 139, - "source": 600, - "pc": [ - 203 - ] - }, - { - "teal": 140, - "source": 600, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 141, - "source": 600, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 142, - "source": 600, - "pc": [ - 208, - 209 - ] - }, - { - "teal": 143, - "source": 600, - "pc": [ - 210, - 211 - ] - }, - { - "teal": 144, - "source": 600, - "pc": [ - 212 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 152 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 166 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV9uYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiBuYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5hbWVkVHVwbGUoKTogc3RyaW5nCm5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MDIKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjEwCgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25hbWVkVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV9uYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmFtZWRUdXBsZSgpc3RyaW5nCgljYWxsc3ViIG5hbWVkVHVwbGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5hbWVkVHVwbGUoKTogc3RyaW5nCm5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MDIKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjEwCgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGE3NTY1MDUzIC8vIG1ldGhvZCAibmFtZWRUdXBsZSgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uYW1lZFR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQImAQAxGBSBBgsxGQiNDABqAAAAAAAAAAAAAABcAAAAAAAAAAAAAACABBUffHWIAAxJFRZXBgJMUFCwIkOKAAEoKCiAAgAEgAIAAYgAUYAOAAxIZWxsbyBXb3JsZCGIAEtIUIwAiwA1/yM0/zT/TwJZSTT/TFkiCyMIWFcCAIwAiSJDgAS4RHs2NhoAjgH/8QCABKdWUFM2GgCOAf+KAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", + "approval": "CiYBADEYFIEGCzEZCI0MAHIAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAEgAIAAYgAVYAOAAxIZWxsbyBXb3JsZCGIAE9IUIwAiwA1/4ECNP80/08CWUk0/0xZgQELgQIIWFcCAIwAiYEBQ4AEuER7NjYaAI4B//AAgASnVlBTNhoAjgH/ggCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal index 0bc7fb603..3f111af54 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedArrayLengthInObject()uint64 *abi_route_nestedArrayLengthInObject: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedArrayLengthInObject()uint64 callsub nestedArrayLengthInObject itob concat log - int 1 + pushint 1 return // nestedArrayLengthInObject(): uint64 @@ -40,28 +40,28 @@ nestedArrayLengthInObject: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1426 // a: { foo: StaticArray } = { foo: [11, 22, 33, 44, 55] } - byte 0x0b16212c37 + pushbytes 0x0b16212c37 frame_bury 0 // a: { foo: StaticArray } // tests/contracts/abi.algo.ts:1428 // return a.foo.length; frame_dig 0 // a: { foo: StaticArray } - int 5 + pushint 5 // set the subroutine return value frame_bury 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -69,7 +69,7 @@ nestedArrayLengthInObject: err *call_NoOp: - method "nestedArrayLengthInObject()uint64" + pushbytes 0x0d0b9b49 // method "nestedArrayLengthInObject()uint64" txna ApplicationArgs 0 match *abi_route_nestedArrayLengthInObject diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json index 7963a8b9e..b06ce8fd3 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0KCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpOiB1aW50NjQKbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjYKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDI4CgkvLyByZXR1cm4gYS5mb28ubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKTogdWludDY0Cm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3Q6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjYKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglwdXNoYnl0ZXMgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjgKCS8vIHJldHVybiBhLmZvby5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiB7IGZvbzogU3RhdGljQXJyYXk8dWludDgsIDU+IH0KCXB1c2hpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgwZDBiOWI0OSAvLyBtZXRob2QgIm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc56_draft.json index 251b58706..52314a521 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc56_draft.json @@ -61,328 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1424, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1424, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1424, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1424, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1424, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1424, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1424, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1424, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1424, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1425, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1425, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1425, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1425, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1425, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1425, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1425, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1425, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 1425, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 1426, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 48, - "source": 1426, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 52, - "source": 1428, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 53, - "source": 1428, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 56, - "source": 1425, - "pc": [ - 72, - 73 - ] - }, - { - "teal": 57, - "source": 1425, - "pc": [ - 74 - ] - }, - { - "teal": 60, - "source": 1424, - "pc": [ - 75 - ] - }, - { - "teal": 61, - "source": 1424, - "pc": [ - 76 - ] - }, - { - "teal": 64, - "source": 1424, - "pc": [ - 77, - 78, - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 65, - "source": 1424, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 66, - "source": 1424, - "pc": [ - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 69, - "source": 1424, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 90 - ] - }, - { - "teal": 72, - "source": 1424, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 73, - "source": 1424, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 74, - "source": 1424, - "pc": [ - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 77, - "source": 1424, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 104 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 89 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 103 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0KCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpOiB1aW50NjQKbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjYKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDI4CgkvLyByZXR1cm4gYS5mb28ubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKTogdWludDY0Cm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3Q6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjYKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglwdXNoYnl0ZXMgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MjgKCS8vIHJldHVybiBhLmZvby5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiB7IGZvbzogU3RhdGljQXJyYXk8dWludDgsIDU+IH0KCXB1c2hpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgwZDBiOWI0OSAvLyBtZXRob2QgIm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3QoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACABQsWISw3jACLAIEFjACJIkOABLhEezY2GgCOAf/xAIAEDQubSTYaAI4B/8AA", + "approval": "CjEYFIEGCzEZCI0MADYAAAAAAAAAAAAAACgAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAULFiEsN4wAiwCBBYwAiYEBQ4AEuER7NjYaAI4B//AAgAQNC5tJNhoAjgH/vgA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal index 11333cce6..1bd2b5312 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedArrayLengthInObjectVariable()uint64 *abi_route_nestedArrayLengthInObjectVariable: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedArrayLengthInObjectVariable()uint64 callsub nestedArrayLengthInObjectVariable itob concat log - int 1 + pushint 1 return // nestedArrayLengthInObjectVariable(): uint64 @@ -40,27 +40,27 @@ nestedArrayLengthInObjectVariable: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1434 // a: { foo: StaticArray } = { foo: [11, 22, 33, 44, 55] } - byte 0x0b16212c37 + pushbytes 0x0b16212c37 frame_bury 0 // a: { foo: StaticArray } // tests/contracts/abi.algo.ts:1437 // return b.length; - int 5 + pushint 5 // set the subroutine return value frame_bury 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -68,7 +68,7 @@ nestedArrayLengthInObjectVariable: err *call_NoOp: - method "nestedArrayLengthInObjectVariable()uint64" + pushbytes 0x8608e0d6 // method "nestedArrayLengthInObjectVariable()uint64" txna ApplicationArgs 0 match *abi_route_nestedArrayLengthInObjectVariable diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json index 6266144d3..71ae6846b 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKTogdWludDY0Cm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzQKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDM3CgkvLyByZXR1cm4gYi5sZW5ndGg7CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCk6IHVpbnQ2NApuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzQKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglwdXNoYnl0ZXMgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzcKCS8vIHJldHVybiBiLmxlbmd0aDsKCXB1c2hpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4NjA4ZTBkNiAvLyBtZXRob2QgIm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc56_draft.json index 48adf908f..10b30889c 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc56_draft.json @@ -61,320 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1432, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1432, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1432, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1432, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1432, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1432, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1432, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1432, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1432, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1433, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1433, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1433, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1433, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1433, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1433, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1433, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1433, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 1433, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 1434, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 48, - "source": 1434, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 52, - "source": 1437, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 55, - "source": 1433, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 56, - "source": 1433, - "pc": [ - 72 - ] - }, - { - "teal": 59, - "source": 1432, - "pc": [ - 73 - ] - }, - { - "teal": 60, - "source": 1432, - "pc": [ - 74 - ] - }, - { - "teal": 63, - "source": 1432, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 64, - "source": 1432, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 65, - "source": 1432, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 68, - "source": 1432, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 71, - "source": 1432, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 72, - "source": 1432, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 73, - "source": 1432, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 76, - "source": 1432, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKTogdWludDY0Cm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzQKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDM3CgkvLyByZXR1cm4gYi5sZW5ndGg7CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlMZW5ndGhJbk9iamVjdFZhcmlhYmxlKCk6IHVpbnQ2NApuZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzQKCS8vIGE6IHsgZm9vOiBTdGF0aWNBcnJheTx1aW50OCwgNT4gfSA9IHsgZm9vOiBbMTEsIDIyLCAzMywgNDQsIDU1XSB9CglwdXNoYnl0ZXMgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MzcKCS8vIHJldHVybiBiLmxlbmd0aDsKCXB1c2hpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4NjA4ZTBkNiAvLyBtZXRob2QgIm5lc3RlZEFycmF5TGVuZ3RoSW5PYmplY3RWYXJpYWJsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheUxlbmd0aEluT2JqZWN0VmFyaWFibGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACABQsWISw3jACBBYwAiSJDgAS4RHs2NhoAjgH/8QCABIYI4NY2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAULFiEsN4wAgQWMAImBAUOABLhEezY2GgCOAf/wAIAEhgjg1jYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal b/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal index d4c534253..8b47c2f17 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedArrayRef()uint8[2][2] *abi_route_nestedArrayRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedArrayRef()uint8[2][2] callsub nestedArrayRef concat log - int 1 + pushint 1 return // nestedArrayRef(): StaticArray, 2>, 2> @@ -39,14 +39,14 @@ nestedArrayRef: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:761 // a: StaticArray, 2>, 2> = [ // [1, 2], // [3, 4], // ] - byte 0x01020304 + pushbytes 0x01020304 frame_bury 0 // a: StaticArray, 2>, 2> // tests/contracts/abi.algo.ts:765 @@ -54,7 +54,7 @@ nestedArrayRef: // tests/contracts/abi.algo.ts:767 // b[1] = 5 as uint<8> frame_dig 0 // a: StaticArray, 2>, 2> - byte 0x05 + pushbytes 0x05 replace2 3 frame_bury 0 // b: StaticArray, 2>, 2> @@ -67,11 +67,11 @@ nestedArrayRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -79,7 +79,7 @@ nestedArrayRef: err *call_NoOp: - method "nestedArrayRef()uint8[2][2]" + pushbytes 0x2252e0e7 // method "nestedArrayRef()uint8[2][2]" txna ApplicationArgs 0 match *abi_route_nestedArrayRef diff --git a/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json b/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json index a391da569..6108049c9 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheVJlZigpOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KbmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NjEKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsxLCAyXSwKCS8vICAgICAgIFszLCA0XSwKCS8vICAgICBdCglieXRlIDB4MDEwMjAzMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY1CgkvLyBiID0gYVsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc2NwoJLy8gYlsxXSA9IDUgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CglieXRlIDB4MDUKCXJlcGxhY2UyIDMKCWZyYW1lX2J1cnkgMCAvLyBiOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY5CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbmVzdGVkQXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlSZWYoKTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+Cm5lc3RlZEFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NjEKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsxLCAyXSwKCS8vICAgICAgIFszLCA0XSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMTAyMDMwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NjUKCS8vIGIgPSBhWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY3CgkvLyBiWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCXB1c2hieXRlcyAweDA1CglyZXBsYWNlMiAzCglmcmFtZV9idXJ5IDAgLy8gYjogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc2OQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MjI1MmUwZTcgLy8gbWV0aG9kICJuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZEFycmF5UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedArrayRef.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedArrayRef.arc56_draft.json index 26455f185..1428eaaf0 100644 --- a/tests/contracts/artifacts/ABITestNestedArrayRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedArrayRef.arc56_draft.json @@ -61,345 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 759, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 759, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 759, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 759, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 759, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 759, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 759, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 759, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 759, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 760, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 760, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 760, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 760, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 760, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 760, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 760, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 760, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 49, - "source": 761, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 50, - "source": 761, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 56, - "source": 767, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 57, - "source": 767, - "pc": [ - 68, - 69, - 70 - ] - }, - { - "teal": 58, - "source": 767, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 59, - "source": 767, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 63, - "source": 769, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 66, - "source": 760, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 67, - "source": 760, - "pc": [ - 79 - ] - }, - { - "teal": 70, - "source": 759, - "pc": [ - 80 - ] - }, - { - "teal": 71, - "source": 759, - "pc": [ - 81 - ] - }, - { - "teal": 74, - "source": 759, - "pc": [ - 82, - 83, - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 75, - "source": 759, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 76, - "source": 759, - "pc": [ - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 79, - "source": 759, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 95 - ] - }, - { - "teal": 82, - "source": 759, - "pc": [ - 96, - 97, - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 83, - "source": 759, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 84, - "source": 759, - "pc": [ - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 87, - "source": 759, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 109 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 94 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 108 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRBcnJheVJlZigpOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KbmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NjEKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsxLCAyXSwKCS8vICAgICAgIFszLCA0XSwKCS8vICAgICBdCglieXRlIDB4MDEwMjAzMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY1CgkvLyBiID0gYVsxXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc2NwoJLy8gYlsxXSA9IDUgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CglieXRlIDB4MDUKCXJlcGxhY2UyIDMKCWZyYW1lX2J1cnkgMCAvLyBiOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY5CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRBcnJheVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbmVzdGVkQXJyYXlSZWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkQXJyYXlSZWYoKTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+Cm5lc3RlZEFycmF5UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NjEKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsxLCAyXSwKCS8vICAgICAgIFszLCA0XSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMTAyMDMwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NjUKCS8vIGIgPSBhWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzY3CgkvLyBiWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCXB1c2hieXRlcyAweDA1CglyZXBsYWNlMiAzCglmcmFtZV9idXJ5IDAgLy8gYjogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc2OQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MjI1MmUwZTcgLy8gbWV0aG9kICJuZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZEFycmF5UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADkAAAAAAAAAAAAAACsAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAEAQIDBIwAiwCAAQVcA4wAiwCMAIkiQ4AEuER7NjYaAI4B//EAgAQiUuDnNhoAjgH/uwA=", + "approval": "CjEYFIEGCzEZCI0MADsAAAAAAAAAAAAAAC0AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACABAECAwSMAIsAgAEFXAOMAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABCJS4Oc2GgCOAf+5AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedObject.approval.teal b/tests/contracts/artifacts/ABITestNestedObject.approval.teal index 489bb5c55..66b46d8b2 100644 --- a/tests/contracts/artifacts/ABITestNestedObject.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedObject.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedObject()uint64 *abi_route_nestedObject: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedObject()uint64 callsub nestedObject itob concat log - int 1 + pushint 1 return // nestedObject(): uint64 @@ -40,17 +40,17 @@ nestedObject: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1086 // a: { b: { c: { d: uint64 } } } = { b: { c: { d: 1 } } } - byte 0x0000000000000001 + pushbytes 0x0000000000000001 frame_bury 0 // a: { b: { c: { d: uint64 } } } // tests/contracts/abi.algo.ts:1087 // a.b.c.d = 2 frame_dig 0 // a: { b: { c: { d: uint64 } } } - byte 0x0000000000000002 + pushbytes 0x0000000000000002 replace2 0 frame_bury 0 // a: { b: { c: { d: uint64 } } } @@ -65,11 +65,11 @@ nestedObject: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -77,7 +77,7 @@ nestedObject: err *call_NoOp: - method "nestedObject()uint64" + pushbytes 0x2c3c7c2a // method "nestedObject()uint64" txna ApplicationArgs 0 match *abi_route_nestedObject diff --git a/tests/contracts/artifacts/ABITestNestedObject.arc32.json b/tests/contracts/artifacts/ABITestNestedObject.arc32.json index 9c4325595..720a87062 100644 --- a/tests/contracts/artifacts/ABITestNestedObject.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedObject.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZE9iamVjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRPYmplY3QoKTogdWludDY0Cm5lc3RlZE9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODYKCS8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfSA9IHsgYjogeyBjOiB7IGQ6IDEgfSB9IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglmcmFtZV9idXJ5IDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODcKCS8vIGEuYi5jLmQgPSAyCglmcmFtZV9kaWcgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODgKCS8vIHJldHVybiBhLmIuYy5kOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CglleHRyYWN0IDAgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkT2JqZWN0KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZE9iamVjdAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkT2JqZWN0KCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3QKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkT2JqZWN0KCk6IHVpbnQ2NApuZXN0ZWRPYmplY3Q6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODYKCS8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfSA9IHsgYjogeyBjOiB7IGQ6IDEgfSB9IH0KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA4NwoJLy8gYS5iLmMuZCA9IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDg4CgkvLyByZXR1cm4gYS5iLmMuZDsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoJZXh0cmFjdCAwIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmMzYzdjMmEgLy8gbWV0aG9kICJuZXN0ZWRPYmplY3QoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkT2JqZWN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedObject.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedObject.arc56_draft.json index 427cfe2a8..b86bf067f 100644 --- a/tests/contracts/artifacts/ABITestNestedObject.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedObject.arc56_draft.json @@ -61,379 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1084, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1084, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1084, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1084, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1084, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1084, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1084, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1084, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1084, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1085, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1085, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1085, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1085, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1085, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1085, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1085, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1085, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 1085, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 1086, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 1086, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 52, - "source": 1087, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 53, - "source": 1087, - "pc": [ - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 54, - "source": 1087, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 55, - "source": 1087, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 59, - "source": 1088, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 60, - "source": 1088, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 61, - "source": 1088, - "pc": [ - 92 - ] - }, - { - "teal": 64, - "source": 1085, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 65, - "source": 1085, - "pc": [ - 95 - ] - }, - { - "teal": 68, - "source": 1084, - "pc": [ - 96 - ] - }, - { - "teal": 69, - "source": 1084, - "pc": [ - 97 - ] - }, - { - "teal": 72, - "source": 1084, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 73, - "source": 1084, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 74, - "source": 1084, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 77, - "source": 1084, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 111 - ] - }, - { - "teal": 80, - "source": 1084, - "pc": [ - 112, - 113, - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 81, - "source": 1084, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 82, - "source": 1084, - "pc": [ - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 85, - "source": 1084, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 125 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZE9iamVjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRPYmplY3QoKTogdWludDY0Cm5lc3RlZE9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODYKCS8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfSA9IHsgYjogeyBjOiB7IGQ6IDEgfSB9IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglmcmFtZV9idXJ5IDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODcKCS8vIGEuYi5jLmQgPSAyCglmcmFtZV9kaWcgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODgKCS8vIHJldHVybiBhLmIuYy5kOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBiOiB7IGM6IHsgZDogdWludDY0IH0gfSB9CglleHRyYWN0IDAgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkT2JqZWN0KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZE9iamVjdAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkT2JqZWN0KCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRPYmplY3QoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3QKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkT2JqZWN0KCk6IHVpbnQ2NApuZXN0ZWRPYmplY3Q6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwODYKCS8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfSA9IHsgYjogeyBjOiB7IGQ6IDEgfSB9IH0KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGI6IHsgYzogeyBkOiB1aW50NjQgfSB9IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA4NwoJLy8gYS5iLmMuZCA9IDIKCWZyYW1lX2RpZyAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDg4CgkvLyByZXR1cm4gYS5iLmMuZDsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgYjogeyBjOiB7IGQ6IHVpbnQ2NCB9IH0gfQoJZXh0cmFjdCAwIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmMzYzdjMmEgLy8gbWV0aG9kICJuZXN0ZWRPYmplY3QoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkT2JqZWN0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEkAAAAAAAAAAAAAADsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACACAAAAAAAAAABjACLAIAIAAAAAAAAAAJcAIwAiwBXAAgXjACJIkOABLhEezY2GgCOAf/xAIAELDx8KjYaAI4B/6sA", + "approval": "CjEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAgAAAAAAAAAAYwAiwCACAAAAAAAAAACXACMAIsAVwAIF4wAiYEBQ4AEuER7NjYaAI4B//AAgAQsPHwqNhoAjgH/qQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal b/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal index 65502e1f2..a5d82e3ac 100644 --- a/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedObjectType.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedObjectType()uint64 *abi_route_nestedObjectType: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedObjectType()uint64 callsub nestedObjectType itob concat log - int 1 + pushint 1 return // nestedObjectType(): uint64 @@ -40,17 +40,17 @@ nestedObjectType: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1096 // a: T4 = { b: { c: { d: 1 } } } - byte 0x0000000000000001 + pushbytes 0x0000000000000001 frame_bury 0 // a: T4 // tests/contracts/abi.algo.ts:1097 // a.b.c.d = 2 frame_dig 0 // a: T4 - byte 0x0000000000000002 + pushbytes 0x0000000000000002 replace2 0 frame_bury 0 // a: T4 @@ -65,11 +65,11 @@ nestedObjectType: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -77,7 +77,7 @@ nestedObjectType: err *call_NoOp: - method "nestedObjectType()uint64" + pushbytes 0xee264a18 // method "nestedObjectType()uint64" txna ApplicationArgs 0 match *abi_route_nestedObjectType diff --git a/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json b/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json index 1ab68e646..069a6271b 100644 --- a/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedObjectType.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRPYmplY3RUeXBlKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3RUeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3RUeXBlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkT2JqZWN0VHlwZSgpOiB1aW50NjQKbmVzdGVkT2JqZWN0VHlwZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTYKCS8vIGE6IFQ0ID0geyBiOiB7IGM6IHsgZDogMSB9IH0gfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBhOiBUNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDk3CgkvLyBhLmIuYy5kID0gMgoJZnJhbWVfZGlnIDAgLy8gYTogVDQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogVDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA5OAoJLy8gcmV0dXJuIGEuYi5jLmQ7CglmcmFtZV9kaWcgMCAvLyBhOiBUNAoJZXh0cmFjdCAwIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkT2JqZWN0VHlwZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkT2JqZWN0VHlwZSgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkT2JqZWN0VHlwZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3RUeXBlCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZE9iamVjdFR5cGUoKTogdWludDY0Cm5lc3RlZE9iamVjdFR5cGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTYKCS8vIGE6IFQ0ID0geyBiOiB7IGM6IHsgZDogMSB9IH0gfQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFQ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTcKCS8vIGEuYi5jLmQgPSAyCglmcmFtZV9kaWcgMCAvLyBhOiBUNAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFQ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTgKCS8vIHJldHVybiBhLmIuYy5kOwoJZnJhbWVfZGlnIDAgLy8gYTogVDQKCWV4dHJhY3QgMCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGVlMjY0YTE4IC8vIG1ldGhvZCAibmVzdGVkT2JqZWN0VHlwZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3RUeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedObjectType.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedObjectType.arc56_draft.json index 22691c2c0..5f9acb492 100644 --- a/tests/contracts/artifacts/ABITestNestedObjectType.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedObjectType.arc56_draft.json @@ -61,379 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1094, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1094, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1094, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1094, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1094, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1094, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1094, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1094, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1094, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1095, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1095, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1095, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1095, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1095, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1095, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1095, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1095, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 1095, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 1096, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 1096, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 52, - "source": 1097, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 53, - "source": 1097, - "pc": [ - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 54, - "source": 1097, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 55, - "source": 1097, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 59, - "source": 1098, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 60, - "source": 1098, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 61, - "source": 1098, - "pc": [ - 92 - ] - }, - { - "teal": 64, - "source": 1095, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 65, - "source": 1095, - "pc": [ - 95 - ] - }, - { - "teal": 68, - "source": 1094, - "pc": [ - 96 - ] - }, - { - "teal": 69, - "source": 1094, - "pc": [ - 97 - ] - }, - { - "teal": 72, - "source": 1094, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 73, - "source": 1094, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 74, - "source": 1094, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 77, - "source": 1094, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 111 - ] - }, - { - "teal": 80, - "source": 1094, - "pc": [ - 112, - 113, - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 81, - "source": 1094, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 82, - "source": 1094, - "pc": [ - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 85, - "source": 1094, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 125 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRPYmplY3RUeXBlKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3RUeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3RUeXBlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkT2JqZWN0VHlwZSgpOiB1aW50NjQKbmVzdGVkT2JqZWN0VHlwZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTYKCS8vIGE6IFQ0ID0geyBiOiB7IGM6IHsgZDogMSB9IH0gfQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBhOiBUNAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDk3CgkvLyBhLmIuYy5kID0gMgoJZnJhbWVfZGlnIDAgLy8gYTogVDQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogVDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA5OAoJLy8gcmV0dXJuIGEuYi5jLmQ7CglmcmFtZV9kaWcgMCAvLyBhOiBUNAoJZXh0cmFjdCAwIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkT2JqZWN0VHlwZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkT2JqZWN0VHlwZSgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkT2JqZWN0VHlwZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZE9iamVjdFR5cGUoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRPYmplY3RUeXBlCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZE9iamVjdFR5cGUoKTogdWludDY0Cm5lc3RlZE9iamVjdFR5cGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTYKCS8vIGE6IFQ0ID0geyBiOiB7IGM6IHsgZDogMSB9IH0gfQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFQ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTcKCS8vIGEuYi5jLmQgPSAyCglmcmFtZV9kaWcgMCAvLyBhOiBUNAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFQ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwOTgKCS8vIHJldHVybiBhLmIuYy5kOwoJZnJhbWVfZGlnIDAgLy8gYTogVDQKCWV4dHJhY3QgMCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGVlMjY0YTE4IC8vIG1ldGhvZCAibmVzdGVkT2JqZWN0VHlwZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRPYmplY3RUeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEkAAAAAAAAAAAAAADsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACACAAAAAAAAAABjACLAIAIAAAAAAAAAAJcAIwAiwBXAAgXjACJIkOABLhEezY2GgCOAf/xAIAE7iZKGDYaAI4B/6sA", + "approval": "CjEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAgAAAAAAAAAAYwAiwCACAAAAAAAAAACXACMAIsAVwAIF4wAiYEBQ4AEuER7NjYaAI4B//AAgATuJkoYNhoAjgH/qQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal index 45e2d8be6..0015ff517 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedStaticArray()uint64 *abi_route_nestedStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedStaticArray()uint64 callsub nestedStaticArray itob concat log - int 1 + pushint 1 return // nestedStaticArray(): uint64 @@ -40,7 +40,7 @@ nestedStaticArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:198 // a: StaticArray, 3> = [ @@ -48,7 +48,7 @@ nestedStaticArray: // [44, 55, 66], // [77, 88, 99], // ] - byte 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 + pushbytes 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 frame_bury 0 // a: StaticArray, 3> // tests/contracts/abi.algo.ts:204 @@ -62,11 +62,11 @@ nestedStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -74,7 +74,7 @@ nestedStaticArray: err *call_NoOp: - method "nestedStaticArray()uint64" + pushbytes 0x3e307c55 // method "nestedStaticArray()uint64" txna ApplicationArgs 0 match *abi_route_nestedStaticArray diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json index 30b844f29..9e85fbc07 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0FycmF5KCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIwNAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNBcnJheSgpOiB1aW50NjQKbmVzdGVkU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjA0CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4M2UzMDdjNTUgLy8gbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedStaticArray.arc56_draft.json index fa0e3eb56..efd14a316 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.arc56_draft.json @@ -61,403 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 196, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 196, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 196, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 196, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 196, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 196, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 196, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 196, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 196, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 197, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 197, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 197, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 197, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 197, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 197, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 197, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 197, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 197, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 51, - "source": 198, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 52, - "source": 198, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 56, - "source": 204, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 57, - "source": 204, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 58, - "source": 204, - "pc": [ - 140 - ] - }, - { - "teal": 61, - "source": 197, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 62, - "source": 197, - "pc": [ - 143 - ] - }, - { - "teal": 65, - "source": 196, - "pc": [ - 144 - ] - }, - { - "teal": 66, - "source": 196, - "pc": [ - 145 - ] - }, - { - "teal": 69, - "source": 196, - "pc": [ - 146, - 147, - 148, - 149, - 150, - 151 - ] - }, - { - "teal": 70, - "source": 196, - "pc": [ - 152, - 153, - 154 - ] - }, - { - "teal": 71, - "source": 196, - "pc": [ - 155, - 156, - 157, - 158 - ] - }, - { - "teal": 74, - "source": 196, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 159 - ] - }, - { - "teal": 77, - "source": 196, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 78, - "source": 196, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 79, - "source": 196, - "pc": [ - 169, - 170, - 171, - 172 - ] - }, - { - "teal": 82, - "source": 196, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 173 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 158 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 172 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0FycmF5KCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIwNAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNBcnJheSgpOiB1aW50NjQKbmVzdGVkU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjA0CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4M2UzMDdjNTUgLy8gbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAHkAAAAAAAAAAAAAAGsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACASAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIQAAAAAAAAAsAAAAAAAAADcAAAAAAAAAQgAAAAAAAABNAAAAAAAAAFgAAAAAAAAAY4wAiwBXIAgXjACJIkOABLhEezY2GgCOAf/xAIAEPjB8VTYaAI4B/3sA", + "approval": "CjEYFIEGCzEZCI0MAHsAAAAAAAAAAAAAAG0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgEgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACEAAAAAAAAALAAAAAAAAAA3AAAAAAAAAEIAAAAAAAAATQAAAAAAAABYAAAAAAAAAGOMAIsAVyAIF4wAiYEBQ4AEuER7NjYaAI4B//AAgAQ+MHxVNhoAjgH/eQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal index d2852a04e..f27045eb4 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedStaticArrayLength()uint64 *abi_route_nestedStaticArrayLength: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedStaticArrayLength()uint64 callsub nestedStaticArrayLength itob concat log - int 1 + pushint 1 return // nestedStaticArrayLength(): uint64 @@ -40,7 +40,7 @@ nestedStaticArrayLength: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1414 // a: StaticArray, 3> = [ @@ -48,24 +48,24 @@ nestedStaticArrayLength: // [66, 77, 88, 99, 100], // [101, 102, 103, 104, 105], // ] - byte 0x0b16212c37424d5863646566676869 + pushbytes 0x0b16212c37424d5863646566676869 frame_bury 0 // a: StaticArray, 3> // tests/contracts/abi.algo.ts:1420 // return a[0].length; frame_dig 0 // a: StaticArray, 3> - int 5 + pushint 5 // set the subroutine return value frame_bury 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -73,7 +73,7 @@ nestedStaticArrayLength: err *call_NoOp: - method "nestedStaticArrayLength()uint64" + pushbytes 0xc5788c19 // method "nestedStaticArrayLength()uint64" txna ApplicationArgs 0 match *abi_route_nestedStaticArrayLength diff --git a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json index abf23bcef..f6867fdf7 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljQXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoKCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTQKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzMywgNDQsIDU1XSwKCS8vICAgICAgIFs2NiwgNzcsIDg4LCA5OSwgMTAwXSwKCS8vICAgICAgIFsxMDEsIDEwMiwgMTAzLCAxMDQsIDEwNV0sCgkvLyAgICAgXQoJYnl0ZSAweDBiMTYyMTJjMzc0MjRkNTg2MzY0NjU2NjY3Njg2OQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQyMAoJLy8gcmV0dXJuIGFbMF0ubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPgoJaW50IDUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5TGVuZ3RoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpOiB1aW50NjQKbmVzdGVkU3RhdGljQXJyYXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTQKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzMywgNDQsIDU1XSwKCS8vICAgICAgIFs2NiwgNzcsIDg4LCA5OSwgMTAwXSwKCS8vICAgICAgIFsxMDEsIDEwMiwgMTAzLCAxMDQsIDEwNV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MGIxNjIxMmMzNzQyNGQ1ODYzNjQ2NTY2Njc2ODY5CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDIwCgkvLyByZXR1cm4gYVswXS5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50OCwgNT4sIDM+CglwdXNoaW50IDUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzU3ODhjMTkgLy8gbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc56_draft.json index 2dd5481e5..76d154975 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc56_draft.json @@ -61,338 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1412, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1412, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1412, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1412, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1412, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1412, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1412, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1412, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1412, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1413, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1413, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1413, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1413, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1413, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1413, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1413, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1413, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 1413, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 51, - "source": 1414, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 52, - "source": 1414, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 56, - "source": 1420, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 57, - "source": 1420, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 60, - "source": 1413, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 61, - "source": 1413, - "pc": [ - 84 - ] - }, - { - "teal": 64, - "source": 1412, - "pc": [ - 85 - ] - }, - { - "teal": 65, - "source": 1412, - "pc": [ - 86 - ] - }, - { - "teal": 68, - "source": 1412, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 69, - "source": 1412, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 70, - "source": 1412, - "pc": [ - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 73, - "source": 1412, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 100 - ] - }, - { - "teal": 76, - "source": 1412, - "pc": [ - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 77, - "source": 1412, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 78, - "source": 1412, - "pc": [ - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 81, - "source": 1412, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 114 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 99 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 113 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljQXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoKCk6IHVpbnQ2NApuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTQKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzMywgNDQsIDU1XSwKCS8vICAgICAgIFs2NiwgNzcsIDg4LCA5OSwgMTAwXSwKCS8vICAgICAgIFsxMDEsIDEwMiwgMTAzLCAxMDQsIDEwNV0sCgkvLyAgICAgXQoJYnl0ZSAweDBiMTYyMTJjMzc0MjRkNTg2MzY0NjU2NjY3Njg2OQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQyMAoJLy8gcmV0dXJuIGFbMF0ubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPgoJaW50IDUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5TGVuZ3RoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpOiB1aW50NjQKbmVzdGVkU3RhdGljQXJyYXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MTQKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ4LCA1PiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzMywgNDQsIDU1XSwKCS8vICAgICAgIFs2NiwgNzcsIDg4LCA5OSwgMTAwXSwKCS8vICAgICAgIFsxMDEsIDEwMiwgMTAzLCAxMDQsIDEwNV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MGIxNjIxMmMzNzQyNGQ1ODYzNjQ2NTY2Njc2ODY5CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDgsIDU+LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDIwCgkvLyByZXR1cm4gYVswXS5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50OCwgNT4sIDM+CglwdXNoaW50IDUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzU3ODhjMTkgLy8gbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAD4AAAAAAAAAAAAAADAAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACADwsWISw3Qk1YY2RlZmdoaYwAiwCBBYwAiSJDgAS4RHs2NhoAjgH/8QCABMV4jBk2GgCOAf+2AA==", + "approval": "CjEYFIEGCzEZCI0MAEAAAAAAAAAAAAAAADIAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgA8LFiEsN0JNWGNkZWZnaGmMAIsAgQWMAImBAUOABLhEezY2GgCOAf/wAIAExXiMGTYaAI4B/7QA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal index 5a2871e96..e71c61729 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticForEach.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedStaticForEach()uint64 *abi_route_nestedStaticForEach: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedStaticForEach()uint64 callsub nestedStaticForEach itob concat log - int 1 + pushint 1 return // nestedStaticForEach(): uint64 @@ -49,12 +50,12 @@ nestedStaticForEach: // [4, 5, 6], // [7, 8, 9], // ] - byte 0x000000000000000100000000000000020000000000000003000000000000000400000000000000050000000000000006000000000000000700000000000000080000000000000009 + pushbytes 0x000000000000000100000000000000020000000000000003000000000000000400000000000000050000000000000006000000000000000700000000000000080000000000000009 frame_bury 0 // a: StaticArray, 3> // tests/contracts/abi.algo.ts:1325 // sum = 0 - int 0 + pushint 0 frame_bury 1 // sum: uint64 // tests/contracts/abi.algo.ts:1327 @@ -66,7 +67,7 @@ nestedStaticForEach: extract 0 8 btoi frame_bury 3 // v: uint64 - int 0 + pushint 0 frame_bury 4 // the offset we are extracting the next element from *forEach_0: @@ -79,16 +80,16 @@ nestedStaticForEach: // increment offset and loop if not out of bounds frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forEach_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 3 // v: uint64 @@ -107,11 +108,11 @@ nestedStaticForEach: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -119,7 +120,7 @@ nestedStaticForEach: err *call_NoOp: - method "nestedStaticForEach()uint64" + pushbytes 0x65b1921d // method "nestedStaticForEach()uint64" txna ApplicationArgs 0 match *abi_route_nestedStaticForEach diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json index a08240e58..98c9052c0 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticForEach.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFN0YXRpY0ZvckVhY2goKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNGb3JFYWNoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljRm9yRWFjaCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMDAwMDAwMDAwMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwOQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMjUKCS8vIHN1bSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyNwoJLy8gYVsxXS5mb3JFYWNoCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAyNCAyNAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvckVhY2hfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzI4CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzMxCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljRm9yRWFjaCgpdWludDY0CgljYWxsc3ViIG5lc3RlZFN0YXRpY0ZvckVhY2gKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljRm9yRWFjaCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDUwMDAwMDAwMDAwMDAwMDA2MDAwMDAwMDAwMDAwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDA5CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyNQoJLy8gc3VtID0gMAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyNwoJLy8gYVsxXS5mb3JFYWNoCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAyNCAyNAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyOAoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCSsKCWR1cAoJcHVzaGludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzMQoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2NWIxOTIxZCAvLyBtZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkU3RhdGljRm9yRWFjaAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEach.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedStaticForEach.arc56_draft.json index ab81e9a26..42650cd22 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEach.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedStaticForEach.arc56_draft.json @@ -61,637 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1318, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1318, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1318, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1318, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1318, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1318, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1318, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1318, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1318, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1319, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 1319, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 1319, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 1319, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 1319, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1319, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1319, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1319, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1319, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1319, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 52, - "source": 1320, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ] - }, - { - "teal": 53, - "source": 1320, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 57, - "source": 1325, - "pc": [ - 139 - ] - }, - { - "teal": 58, - "source": 1325, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 62, - "source": 1327, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 63, - "source": 1327, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 64, - "source": 1327, - "pc": [ - 147 - ] - }, - { - "teal": 65, - "source": 1327, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 66, - "source": 1327, - "pc": [ - 150, - 151, - 152 - ] - }, - { - "teal": 67, - "source": 1327, - "pc": [ - 153 - ] - }, - { - "teal": 68, - "source": 1327, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 69, - "source": 1327, - "pc": [ - 156 - ] - }, - { - "teal": 70, - "source": 1327, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 75, - "source": 1328, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 76, - "source": 1328, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 77, - "source": 1328, - "pc": [ - 163 - ] - }, - { - "teal": 78, - "source": 1328, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 81, - "source": 1327, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 82, - "source": 1327, - "pc": [ - 168 - ] - }, - { - "teal": 83, - "source": 1327, - "pc": [ - 169 - ] - }, - { - "teal": 84, - "source": 1327, - "pc": [ - 170 - ] - }, - { - "teal": 85, - "source": 1327, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 86, - "source": 1327, - "pc": [ - 173 - ] - }, - { - "teal": 87, - "source": 1327, - "pc": [ - 174, - 175, - 176 - ] - }, - { - "teal": 88, - "source": 1327, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 89, - "source": 1327, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 90, - "source": 1327, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 91, - "source": 1327, - "pc": [ - 183 - ] - }, - { - "teal": 92, - "source": 1327, - "pc": [ - 184 - ] - }, - { - "teal": 93, - "source": 1327, - "pc": [ - 185 - ] - }, - { - "teal": 94, - "source": 1327, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 95, - "source": 1327, - "pc": [ - 188, - 189, - 190 - ] - }, - { - "teal": 100, - "source": 1331, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 103, - "source": 1319, - "pc": [ - 193, - 194 - ] - }, - { - "teal": 106, - "source": 1319, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 107, - "source": 1319, - "pc": [ - 197 - ] - }, - { - "teal": 110, - "source": 1318, - "pc": [ - 198 - ] - }, - { - "teal": 111, - "source": 1318, - "pc": [ - 199 - ] - }, - { - "teal": 114, - "source": 1318, - "pc": [ - 200, - 201, - 202, - 203, - 204, - 205 - ] - }, - { - "teal": 115, - "source": 1318, - "pc": [ - 206, - 207, - 208 - ] - }, - { - "teal": 116, - "source": 1318, - "pc": [ - 209, - 210, - 211, - 212 - ] - }, - { - "teal": 119, - "source": 1318, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 213 - ] - }, - { - "teal": 122, - "source": 1318, - "pc": [ - 214, - 215, - 216, - 217, - 218, - 219 - ] - }, - { - "teal": 123, - "source": 1318, - "pc": [ - 220, - 221, - 222 - ] - }, - { - "teal": 124, - "source": 1318, - "pc": [ - 223, - 224, - 225, - 226 - ] - }, - { - "teal": 127, - "source": 1318, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 227 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 217 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 231 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFN0YXRpY0ZvckVhY2goKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNGb3JFYWNoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljRm9yRWFjaCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDA1MDAwMDAwMDAwMDAwMDAwNjAwMDAwMDAwMDAwMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwOQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMjUKCS8vIHN1bSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyNwoJLy8gYVsxXS5mb3JFYWNoCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAyNCAyNAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvckVhY2hfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzI4CgkvLyBzdW0gKz0gdgoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCWZyYW1lX2RpZyAzIC8vIHY6IHVpbnQ2NAoJKwoJZnJhbWVfYnVyeSAxIC8vIHN1bTogdWludDY0CgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CgkrCglkdXAKCWludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yRWFjaF8wCgoqZm9yRWFjaF8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzMxCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljRm9yRWFjaCgpdWludDY0CgljYWxsc3ViIG5lc3RlZFN0YXRpY0ZvckVhY2gKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RhdGljRm9yRWFjaCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDUwMDAwMDAwMDAwMDAwMDA2MDAwMDAwMDAwMDAwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDA5CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyNQoJLy8gc3VtID0gMAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyNwoJLy8gYVsxXS5mb3JFYWNoCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAyNCAyNAoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMyOAoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCSsKCWR1cAoJcHVzaGludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzMQoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2NWIxOTIxZCAvLyBtZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkU3RhdGljRm9yRWFjaAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAIMRgUgQYLMRkIjQwArQAAAAAAAAAAAAAAnwAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEcEgEgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAmMACOMAYsAVxgYSYwCVwAIF4wDI4wEiwGLAwiMAYsEJAhJgRgMQQAOjASLAosEJFgXjANC/+CLAYwARgSJIkOABLhEezY2GgCOAf/xAIAEZbGSHTYaAI4B/0cA", + "approval": "CiYBADEYFIEGCzEZCI0MALMAAAAAAAAAAAAAAKUAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSASAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAUAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAgAAAAAAAAACYwAgQCMAYsAVxgYSYwCVwAIF4wDgQCMBIsBiwMIjAGLBIEICEmBGAxBAA+MBIsCiwSBCFgXjANC/96LAYwARgSJgQFDgAS4RHs2NhoAjgH/8ACABGWxkh02GgCOAf9BAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal index 7ec327b6e..9e26cd9d5 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x624b6579 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedStaticForEachInBox()uint64 *abi_route_nestedStaticForEachInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedStaticForEachInBox()uint64 callsub nestedStaticForEachInBox itob concat log - int 1 + pushint 1 return // nestedStaticForEachInBox(): uint64 @@ -50,26 +51,26 @@ nestedStaticForEachInBox: // [7, 8, 9], // ] byte 0x624b6579 // "bKey" - byte 0x000000000000000100000000000000020000000000000003000000000000000400000000000000050000000000000006000000000000000700000000000000080000000000000009 + pushbytes 0x000000000000000100000000000000020000000000000003000000000000000400000000000000050000000000000006000000000000000700000000000000080000000000000009 box_put // tests/contracts/abi.algo.ts:1344 // sum = 0 - int 0 + pushint 0 frame_bury 0 // sum: uint64 // tests/contracts/abi.algo.ts:1346 // this.bKey.value[1].forEach byte 0x624b6579 // "bKey" - int 24 - dup + pushint 24 + pushint 24 box_extract dup frame_bury 1 // copy of the array we are iterating over extract 0 8 btoi frame_bury 2 // v: uint64 - int 0 + pushint 0 frame_bury 3 // the offset we are extracting the next element from *forEach_0: @@ -82,16 +83,16 @@ nestedStaticForEachInBox: // increment offset and loop if not out of bounds frame_dig 3 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forEach_0_end frame_bury 3 // the offset we are extracting the next element from frame_dig 1 // copy of the array we are iterating over frame_dig 3 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 2 // v: uint64 @@ -110,11 +111,11 @@ nestedStaticForEachInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -122,7 +123,7 @@ nestedStaticForEachInBox: err *call_NoOp: - method "nestedStaticForEachInBox()uint64" + pushbytes 0xe20908a2 // method "nestedStaticForEachInBox()uint64" txna ApplicationArgs 0 match *abi_route_nestedStaticForEachInBox diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json index 8b819fe20..a754ac334 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKTogdWludDY0Cm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzOQoJLy8gdGhpcy5iS2V5LnZhbHVlID0gWwoJLy8gICAgICAgWzEsIDIsIDNdLAoJLy8gICAgICAgWzQsIDUsIDZdLAoJLy8gICAgICAgWzcsIDgsIDldLAoJLy8gICAgIF0KCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwNTAwMDAwMDAwMDAwMDAwMDYwMDAwMDAwMDAwMDAwMDA3MDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDkKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM0NAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzQ2CgkvLyB0aGlzLmJLZXkudmFsdWVbMV0uZm9yRWFjaAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJaW50IDI0CglkdXAKCWJveF9leHRyYWN0CglkdXAKCWZyYW1lX2J1cnkgMSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNDcKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDAgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgMyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JFYWNoXzBfZW5kCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAxIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNTAKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRiNjU3OSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkU3RhdGljRm9yRWFjaEluQm94CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzM5CgkvLyB0aGlzLmJLZXkudmFsdWUgPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDUwMDAwMDAwMDAwMDAwMDA2MDAwMDAwMDAwMDAwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDA5Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNDQKCS8vIHN1bSA9IDAKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNDYKCS8vIHRoaXMuYktleS52YWx1ZVsxXS5mb3JFYWNoCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiCglwdXNoaW50IDI0CglwdXNoaW50IDI0Cglib3hfZXh0cmFjdAoJZHVwCglmcmFtZV9idXJ5IDEgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM0NwoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMiAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCSsKCWR1cAoJcHVzaGludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM1MAoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlMjA5MDhhMiAvLyBtZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc56_draft.json index 07c896143..44dfabccf 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc56_draft.json @@ -67,661 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1335, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ] - }, - { - "teal": 13, - "source": 1335, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 14, - "source": 1335, - "pc": [ - 16 - ] - }, - { - "teal": 15, - "source": 1335, - "pc": [ - 17, - 18 - ] - }, - { - "teal": 16, - "source": 1335, - "pc": [ - 19 - ] - }, - { - "teal": 17, - "source": 1335, - "pc": [ - 20, - 21 - ] - }, - { - "teal": 18, - "source": 1335, - "pc": [ - 22 - ] - }, - { - "teal": 19, - "source": 1335, - "pc": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 23, - "source": 1335, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 49 - ] - }, - { - "teal": 28, - "source": 1338, - "pc": [ - 50, - 51, - 52, - 53, - 54, - 55 - ] - }, - { - "teal": 31, - "source": 1338, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 32, - "source": 1338, - "pc": [ - 59 - ] - }, - { - "teal": 33, - "source": 1338, - "pc": [ - 60 - ] - }, - { - "teal": 34, - "source": 1338, - "pc": [ - 61 - ] - }, - { - "teal": 35, - "source": 1338, - "pc": [ - 62 - ] - }, - { - "teal": 36, - "source": 1338, - "pc": [ - 63 - ] - }, - { - "teal": 40, - "source": 1338, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 43, - "source": 1338, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 44, - "source": 1338, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 52, - "source": 1339, - "pc": [ - 71 - ] - }, - { - "teal": 53, - "source": 1339, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 54, - "source": 1339, - "pc": [ - 146 - ] - }, - { - "teal": 58, - "source": 1344, - "pc": [ - 147 - ] - }, - { - "teal": 59, - "source": 1344, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 63, - "source": 1346, - "pc": [ - 150 - ] - }, - { - "teal": 64, - "source": 1346, - "pc": [ - 151 - ] - }, - { - "teal": 65, - "source": 1346, - "pc": [ - 152 - ] - }, - { - "teal": 66, - "source": 1346, - "pc": [ - 153 - ] - }, - { - "teal": 67, - "source": 1346, - "pc": [ - 154 - ] - }, - { - "teal": 68, - "source": 1346, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 69, - "source": 1346, - "pc": [ - 157, - 158, - 159 - ] - }, - { - "teal": 70, - "source": 1346, - "pc": [ - 160 - ] - }, - { - "teal": 71, - "source": 1346, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 72, - "source": 1346, - "pc": [ - 163 - ] - }, - { - "teal": 73, - "source": 1346, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 78, - "source": 1347, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 79, - "source": 1347, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 80, - "source": 1347, - "pc": [ - 170 - ] - }, - { - "teal": 81, - "source": 1347, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 84, - "source": 1346, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 85, - "source": 1346, - "pc": [ - 175 - ] - }, - { - "teal": 86, - "source": 1346, - "pc": [ - 176 - ] - }, - { - "teal": 87, - "source": 1346, - "pc": [ - 177 - ] - }, - { - "teal": 88, - "source": 1346, - "pc": [ - 178 - ] - }, - { - "teal": 89, - "source": 1346, - "pc": [ - 179 - ] - }, - { - "teal": 90, - "source": 1346, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 91, - "source": 1346, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 92, - "source": 1346, - "pc": [ - 185, - 186 - ] - }, - { - "teal": 93, - "source": 1346, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 94, - "source": 1346, - "pc": [ - 189 - ] - }, - { - "teal": 95, - "source": 1346, - "pc": [ - 190 - ] - }, - { - "teal": 96, - "source": 1346, - "pc": [ - 191 - ] - }, - { - "teal": 97, - "source": 1346, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 98, - "source": 1346, - "pc": [ - 194, - 195, - 196 - ] - }, - { - "teal": 103, - "source": 1350, - "pc": [ - 197, - 198 - ] - }, - { - "teal": 106, - "source": 1338, - "pc": [ - 199, - 200 - ] - }, - { - "teal": 109, - "source": 1338, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 110, - "source": 1338, - "pc": [ - 203 - ] - }, - { - "teal": 113, - "source": 1335, - "pc": [ - 204 - ] - }, - { - "teal": 114, - "source": 1335, - "pc": [ - 205 - ] - }, - { - "teal": 117, - "source": 1335, - "pc": [ - 206, - 207, - 208, - 209, - 210, - 211 - ] - }, - { - "teal": 118, - "source": 1335, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 119, - "source": 1335, - "pc": [ - 215, - 216, - 217, - 218 - ] - }, - { - "teal": 122, - "source": 1335, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 219 - ] - }, - { - "teal": 125, - "source": 1335, - "pc": [ - 220, - 221, - 222, - 223, - 224, - 225 - ] - }, - { - "teal": 126, - "source": 1335, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 127, - "source": 1335, - "pc": [ - 229, - 230, - 231, - 232 - ] - }, - { - "teal": 130, - "source": 1335, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 233 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 44 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 233 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 247 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoqYWJpX3JvdXRlX25lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3goKTogdWludDY0Cm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMzOQoJLy8gdGhpcy5iS2V5LnZhbHVlID0gWwoJLy8gICAgICAgWzEsIDIsIDNdLAoJLy8gICAgICAgWzQsIDUsIDZdLAoJLy8gICAgICAgWzcsIDgsIDldLAoJLy8gICAgIF0KCWJ5dGUgMHg2MjRiNjU3OSAvLyAiYktleSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwNTAwMDAwMDAwMDAwMDAwMDYwMDAwMDAwMDAwMDAwMDA3MDAwMDAwMDAwMDAwMDAwODAwMDAwMDAwMDAwMDAwMDkKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM0NAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzQ2CgkvLyB0aGlzLmJLZXkudmFsdWVbMV0uZm9yRWFjaAoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJaW50IDI0CglkdXAKCWJveF9leHRyYWN0CglkdXAKCWZyYW1lX2J1cnkgMSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CglpbnQgMAoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNDcKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDIgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDAgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgMyAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JFYWNoXzBfZW5kCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWZyYW1lX2RpZyAxIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZnJhbWVfZGlnIDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCWludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDIgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNTAKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRiNjU3OSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0CiphYmlfcm91dGVfbmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RhdGljRm9yRWFjaEluQm94KCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkU3RhdGljRm9yRWFjaEluQm94CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpOiB1aW50NjQKbmVzdGVkU3RhdGljRm9yRWFjaEluQm94OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzM5CgkvLyB0aGlzLmJLZXkudmFsdWUgPSBbCgkvLyAgICAgICBbMSwgMiwgM10sCgkvLyAgICAgICBbNCwgNSwgNl0sCgkvLyAgICAgICBbNywgOCwgOV0sCgkvLyAgICAgXQoJYnl0ZSAweDYyNGI2NTc5IC8vICJiS2V5IgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDUwMDAwMDAwMDAwMDAwMDA2MDAwMDAwMDAwMDAwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDA5Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNDQKCS8vIHN1bSA9IDAKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIHN1bTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzNDYKCS8vIHRoaXMuYktleS52YWx1ZVsxXS5mb3JFYWNoCglieXRlIDB4NjI0YjY1NzkgLy8gImJLZXkiCglwdXNoaW50IDI0CglwdXNoaW50IDI0Cglib3hfZXh0cmFjdAoJZHVwCglmcmFtZV9idXJ5IDEgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAyIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDMgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM0NwoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMiAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMCAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCSsKCWR1cAoJcHVzaGludCAyNCAvLyBvZmZzZXQgb2YgbGFzdCBlbGVtZW50Cgk8CglieiAqZm9yRWFjaF8wX2VuZAoJZnJhbWVfYnVyeSAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMSAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyAzIC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTM1MAoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAwIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlMjA5MDhhMiAvLyBtZXRob2QgIm5lc3RlZFN0YXRpY0ZvckVhY2hJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNGb3JFYWNoSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQAYCCYBBGJLZXkxGBSBBgsxGQiNDACrAAAAAAAAAAAAAACdAAAAAAAAAAAAAACABBUffHWIAAUWULAiQ4oAAYAARwMogEgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMAAAAAAAAABAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAIAAAAAAAAAAm/I4wAKCRJukmMAVcACBeMAiOMA4sAiwIIjACLAyUISSQMQQAOjAOLAYsDJVgXjAJC/+GLAIwARgOJIkOABLhEezY2GgCOAf/xAIAE4gkIojYaAI4B/0kA", + "approval": "CiYCBGJLZXkAMRgUgQYLMRkIjQwAvgAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAgAQVH3x1iAAGFlCwgQFDigABgABHA4AEYktleYBIAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAGAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAJv4EAjACABGJLZXmBGIEYukmMAVcACBeMAoEAjAOLAIsCCIwAiwOBCAhJgRgMQQAPjAOLAYsDgQhYF4wCQv/eiwCMAEYDiYEBQ4AEuER7NjYaAI4B//AAgATiCQiiNhoAjgH/NgA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal index 2e1fbf350..a186dbb57 100644 --- a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x624d6170 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedStructInBoxMap()((uint8)) *abi_route_nestedStructInBoxMap: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedStructInBoxMap()((uint8)) callsub nestedStructInBoxMap concat log - int 1 + pushint 1 return // nestedStructInBoxMap(): T8 @@ -41,21 +42,21 @@ nestedStructInBoxMap: // tests/contracts/abi.algo.ts:1280 // this.bMap('bMap').value = { foo: { bar: 1 } } byte 0x624d6170 // "bMap" - byte 0x01 + pushbytes 0x01 box_put // tests/contracts/abi.algo.ts:1281 // this.bMap('bMap').value.foo.bar = 3 byte 0x624d6170 // "bMap" - int 0 - byte 0x03 + pushint 0 + pushbytes 0x03 box_replace // tests/contracts/abi.algo.ts:1282 // this.bMap('bMap').value.foo.bar = 2 byte 0x624d6170 // "bMap" - int 0 - byte 0x02 + pushint 0 + pushbytes 0x02 box_replace // tests/contracts/abi.algo.ts:1283 @@ -68,11 +69,11 @@ nestedStructInBoxMap: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -80,7 +81,7 @@ nestedStructInBoxMap: err *call_NoOp: - method "nestedStructInBoxMap()((uint8))" + pushbytes 0xa413a09f // method "nestedStructInBoxMap()((uint8))" txna ApplicationArgs 0 match *abi_route_nestedStructInBoxMap diff --git a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json index 8aea734bf..059174c5e 100644 --- a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdHJ1Y3RJbkJveE1hcCgpKCh1aW50OCkpCiphYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RydWN0SW5Cb3hNYXAoKSgodWludDgpKQoJY2FsbHN1YiBuZXN0ZWRTdHJ1Y3RJbkJveE1hcAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0cnVjdEluQm94TWFwKCk6IFQ4Cm5lc3RlZFN0cnVjdEluQm94TWFwOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODAKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlID0geyBmb286IHsgYmFyOiAxIH0gfQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYnl0ZSAweDAxCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODEKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmZvby5iYXIgPSAzCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgMAoJYnl0ZSAweDAzCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjgyCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5mb28uYmFyID0gPHVpbnQ4PjIKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCAwCglieXRlIDB4MDIKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODMKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZTsKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0cnVjdEluQm94TWFwCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRkNjE3MAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIG5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkKKmFiaV9yb3V0ZV9uZXN0ZWRTdHJ1Y3RJbkJveE1hcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkKCWNhbGxzdWIgbmVzdGVkU3RydWN0SW5Cb3hNYXAKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RydWN0SW5Cb3hNYXAoKTogVDgKbmVzdGVkU3RydWN0SW5Cb3hNYXA6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI4MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogeyBiYXI6IDEgfSB9CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglwdXNoYnl0ZXMgMHgwMQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjgxCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5mb28uYmFyID0gMwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJcHVzaGludCAwCglwdXNoYnl0ZXMgMHgwMwoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI4MgoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuZm9vLmJhciA9IDx1aW50OD4yCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglwdXNoaW50IDAKCXB1c2hieXRlcyAweDAyCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjgzCgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWU7CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGE0MTNhMDlmIC8vIG1ldGhvZCAibmVzdGVkU3RydWN0SW5Cb3hNYXAoKSgodWludDgpKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXAKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc56_draft.json index fe265709f..518d892a9 100644 --- a/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc56_draft.json @@ -79,381 +79,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1276, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - }, - { - "teal": 13, - "source": 1276, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 14, - "source": 1276, - "pc": [ - 14 - ] - }, - { - "teal": 15, - "source": 1276, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 16, - "source": 1276, - "pc": [ - 17 - ] - }, - { - "teal": 17, - "source": 1276, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 18, - "source": 1276, - "pc": [ - 20 - ] - }, - { - "teal": 19, - "source": 1276, - "pc": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 23, - "source": 1276, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 47 - ] - }, - { - "teal": 28, - "source": 1279, - "pc": [ - 48, - 49, - 50, - 51, - 52, - 53 - ] - }, - { - "teal": 31, - "source": 1279, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 32, - "source": 1279, - "pc": [ - 57 - ] - }, - { - "teal": 33, - "source": 1279, - "pc": [ - 58 - ] - }, - { - "teal": 34, - "source": 1279, - "pc": [ - 59 - ] - }, - { - "teal": 35, - "source": 1279, - "pc": [ - 60 - ] - }, - { - "teal": 39, - "source": 1279, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 43, - "source": 1280, - "pc": [ - 64 - ] - }, - { - "teal": 44, - "source": 1280, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 45, - "source": 1280, - "pc": [ - 68 - ] - }, - { - "teal": 49, - "source": 1281, - "pc": [ - 69 - ] - }, - { - "teal": 50, - "source": 1281, - "pc": [ - 70 - ] - }, - { - "teal": 51, - "source": 1281, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 52, - "source": 1281, - "pc": [ - 74 - ] - }, - { - "teal": 56, - "source": 1282, - "pc": [ - 75 - ] - }, - { - "teal": 57, - "source": 1282, - "pc": [ - 76 - ] - }, - { - "teal": 58, - "source": 1282, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 59, - "source": 1282, - "pc": [ - 80 - ] - }, - { - "teal": 63, - "source": 1283, - "pc": [ - 81 - ] - }, - { - "teal": 64, - "source": 1283, - "pc": [ - 82 - ] - }, - { - "teal": 67, - "source": 1283, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 83 - ] - }, - { - "teal": 68, - "source": 1279, - "pc": [ - 84 - ] - }, - { - "teal": 71, - "source": 1276, - "pc": [ - 85 - ] - }, - { - "teal": 72, - "source": 1276, - "pc": [ - 86 - ] - }, - { - "teal": 75, - "source": 1276, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 76, - "source": 1276, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 77, - "source": 1276, - "pc": [ - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 80, - "source": 1276, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 100 - ] - }, - { - "teal": 83, - "source": 1276, - "pc": [ - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 84, - "source": 1276, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 85, - "source": 1276, - "pc": [ - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 88, - "source": 1276, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 114 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 43 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 102 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 120 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRTdHJ1Y3RJbkJveE1hcCgpKCh1aW50OCkpCiphYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkU3RydWN0SW5Cb3hNYXAoKSgodWludDgpKQoJY2FsbHN1YiBuZXN0ZWRTdHJ1Y3RJbkJveE1hcAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFN0cnVjdEluQm94TWFwKCk6IFQ4Cm5lc3RlZFN0cnVjdEluQm94TWFwOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODAKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlID0geyBmb286IHsgYmFyOiAxIH0gfQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYnl0ZSAweDAxCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODEKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmZvby5iYXIgPSAzCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgMAoJYnl0ZSAweDAzCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjgyCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5mb28uYmFyID0gPHVpbnQ4PjIKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCAwCglieXRlIDB4MDIKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyODMKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZTsKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFN0cnVjdEluQm94TWFwCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRkNjE3MAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIG5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkKKmFiaV9yb3V0ZV9uZXN0ZWRTdHJ1Y3RJbkJveE1hcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFN0cnVjdEluQm94TWFwKCkoKHVpbnQ4KSkKCWNhbGxzdWIgbmVzdGVkU3RydWN0SW5Cb3hNYXAKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbmVzdGVkU3RydWN0SW5Cb3hNYXAoKTogVDgKbmVzdGVkU3RydWN0SW5Cb3hNYXA6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI4MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogeyBiYXI6IDEgfSB9CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglwdXNoYnl0ZXMgMHgwMQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjgxCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5mb28uYmFyID0gMwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJcHVzaGludCAwCglwdXNoYnl0ZXMgMHgwMwoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI4MgoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuZm9vLmJhciA9IDx1aW50OD4yCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglwdXNoaW50IDAKCXB1c2hieXRlcyAweDAyCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjgzCgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWU7CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGE0MTNhMDlmIC8vIG1ldGhvZCAibmVzdGVkU3RydWN0SW5Cb3hNYXAoKSgodWludDgpKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkU3RydWN0SW5Cb3hNYXAKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQAmAQRiTWFwMRgUgQYLMRkIjQwANgAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAASiAAQG/KCOAAQO7KCOAAQK7KL5EiSJDgAS4RHs2NhoAjgH/8QCABKQToJ82GgCOAf++AA==", + "approval": "CiYBBGJNYXAxGBSBBgsxGQiNDABOAAAAAAAAAAAAAABAAAAAAAAAAAAAAACABBUffHWIAAVQsIEBQ4oAAYAEYk1hcIABAb+ABGJNYXCBAIABA7uABGJNYXCBAIABAruABGJNYXC+RImBAUOABLhEezY2GgCOAf/wAIAEpBOgnzYaAI4B/6YA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedTuple.approval.teal b/tests/contracts/artifacts/ABITestNestedTuple.approval.teal index 5e88aafff..63449d8e6 100644 --- a/tests/contracts/artifacts/ABITestNestedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedTuple()(uint16,(uint8,string),(uint16,string)) *abi_route_nestedTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedTuple()(uint16,(uint8,string),(uint16,string)) callsub nestedTuple concat log - int 1 + pushint 1 return // nestedTuple(): [uint16, [uint<8>, string], [uint16, string]] @@ -45,25 +46,25 @@ nestedTuple: // a: [uint16, [uint<8>, string], [uint16, string]] = [11, [22, 'foo'], [33, 'bar']] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x000b + pushbytes 0x0006 // initial head offset + pushbytes 0x000b callsub *process_static_tuple_element byte 0x // initial head byte 0x // initial tail - byte 0x0003 // initial head offset - byte 0x16 + pushbytes 0x0003 // initial head offset + pushbytes 0x16 callsub *process_static_tuple_element - byte 0x0003666f6f + pushbytes 0x0003666f6f callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail callsub *process_dynamic_tuple_element byte 0x // initial head byte 0x // initial tail - byte 0x0004 // initial head offset - byte 0x0021 + pushbytes 0x0004 // initial head offset + pushbytes 0x0021 callsub *process_static_tuple_element - byte 0x0003626172 + pushbytes 0x0003626172 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -81,11 +82,11 @@ nestedTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -93,7 +94,7 @@ nestedTuple: err *call_NoOp: - method "nestedTuple()(uint16,(uint8,string),(uint16,string))" + pushbytes 0x49bb7019 // method "nestedTuple()(uint16,(uint8,string),(uint16,string))" txna ApplicationArgs 0 match *abi_route_nestedTuple diff --git a/tests/contracts/artifacts/ABITestNestedTuple.arc32.json b/tests/contracts/artifacts/ABITestNestedTuple.arc32.json index a4be30011..debcb6762 100644 --- a/tests/contracts/artifacts/ABITestNestedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCiphYmlfcm91dGVfbmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkVHVwbGUoKSh1aW50MTYsKHVpbnQ4LHN0cmluZyksKHVpbnQxNixzdHJpbmcpKQoJY2FsbHN1YiBuZXN0ZWRUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR1cGxlKCk6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQpuZXN0ZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY5MgoJLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dID0gWzExLCBbMjIsICdmb28nXSwgWzMzLCAnYmFyJ11dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDBiCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDAzIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgxNgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM2NjZmNmYKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDIxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzYyNjE3MgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2OTQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCiphYmlfcm91dGVfbmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCgljYWxsc3ViIG5lc3RlZFR1cGxlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR1cGxlKCk6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQpuZXN0ZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY5MgoJLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dID0gWzExLCBbMjIsICdmb28nXSwgWzMzLCAnYmFyJ11dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDE2CgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzNjY2ZjZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMjEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDM2MjYxNzIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCBbdWludDw4Piwgc3RyaW5nXSwgW3VpbnQxNiwgc3RyaW5nXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njk0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0OWJiNzAxOSAvLyBtZXRob2QgIm5lc3RlZFR1cGxlKCkodWludDE2LCh1aW50OCxzdHJpbmcpLCh1aW50MTYsc3RyaW5nKSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedTuple.arc56_draft.json index 5ba57aed4..b577bc186 100644 --- a/tests/contracts/artifacts/ABITestNestedTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedTuple.arc56_draft.json @@ -61,758 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 690, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 690, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 690, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 690, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 690, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 690, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 690, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 690, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 690, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 691, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 691, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 691, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 691, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 691, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 691, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 691, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 42, - "source": 691, - "pc": [ - 59 - ] - }, - { - "teal": 46, - "source": 692, - "pc": [ - 60 - ] - }, - { - "teal": 47, - "source": 692, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 692, - "pc": [ - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 49, - "source": 692, - "pc": [ - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 50, - "source": 692, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 51, - "source": 692, - "pc": [ - 73 - ] - }, - { - "teal": 52, - "source": 692, - "pc": [ - 74 - ] - }, - { - "teal": 53, - "source": 692, - "pc": [ - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 54, - "source": 692, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 55, - "source": 692, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 56, - "source": 692, - "pc": [ - 85, - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 57, - "source": 692, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 58, - "source": 692, - "pc": [ - 95 - ] - }, - { - "teal": 59, - "source": 692, - "pc": [ - 96 - ] - }, - { - "teal": 60, - "source": 692, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 61, - "source": 692, - "pc": [ - 100 - ] - }, - { - "teal": 62, - "source": 692, - "pc": [ - 101 - ] - }, - { - "teal": 63, - "source": 692, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 64, - "source": 692, - "pc": [ - 106, - 107, - 108, - 109 - ] - }, - { - "teal": 65, - "source": 692, - "pc": [ - 110, - 111, - 112 - ] - }, - { - "teal": 66, - "source": 692, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 67, - "source": 692, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 68, - "source": 692, - "pc": [ - 123 - ] - }, - { - "teal": 69, - "source": 692, - "pc": [ - 124 - ] - }, - { - "teal": 70, - "source": 692, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 71, - "source": 692, - "pc": [ - 128 - ] - }, - { - "teal": 72, - "source": 692, - "pc": [ - 129 - ] - }, - { - "teal": 73, - "source": 692, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 77, - "source": 694, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 80, - "source": 691, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 81, - "source": 691, - "pc": [ - 136 - ] - }, - { - "teal": 84, - "source": 690, - "pc": [ - 137 - ] - }, - { - "teal": 85, - "source": 690, - "pc": [ - 138 - ] - }, - { - "teal": 88, - "source": 690, - "pc": [ - 139, - 140, - 141, - 142, - 143, - 144 - ] - }, - { - "teal": 89, - "source": 690, - "pc": [ - 145, - 146, - 147 - ] - }, - { - "teal": 90, - "source": 690, - "pc": [ - 148, - 149, - 150, - 151 - ] - }, - { - "teal": 93, - "source": 690, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 152 - ] - }, - { - "teal": 96, - "source": 690, - "pc": [ - 153, - 154, - 155, - 156, - 157, - 158 - ] - }, - { - "teal": 97, - "source": 690, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 98, - "source": 690, - "pc": [ - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 101, - "source": 690, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 166 - ] - }, - { - "teal": 104, - "source": 690, - "pc": [ - 167, - 168, - 169 - ] - }, - { - "teal": 105, - "source": 690, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 106, - "source": 690, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 107, - "source": 690, - "pc": [ - 174 - ] - }, - { - "teal": 108, - "source": 690, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 109, - "source": 690, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 110, - "source": 690, - "pc": [ - 179 - ] - }, - { - "teal": 113, - "source": 690, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 114, - "source": 690, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 115, - "source": 690, - "pc": [ - 185, - 186 - ] - }, - { - "teal": 116, - "source": 690, - "pc": [ - 187 - ] - }, - { - "teal": 117, - "source": 690, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 118, - "source": 690, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 119, - "source": 690, - "pc": [ - 192 - ] - }, - { - "teal": 120, - "source": 690, - "pc": [ - 193 - ] - }, - { - "teal": 121, - "source": 690, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 122, - "source": 690, - "pc": [ - 196 - ] - }, - { - "teal": 123, - "source": 690, - "pc": [ - 197 - ] - }, - { - "teal": 124, - "source": 690, - "pc": [ - 198 - ] - }, - { - "teal": 125, - "source": 690, - "pc": [ - 199, - 200, - 201 - ] - }, - { - "teal": 126, - "source": 690, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 127, - "source": 690, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 128, - "source": 690, - "pc": [ - 206 - ] - }, - { - "teal": 129, - "source": 690, - "pc": [ - 207 - ] - }, - { - "teal": 130, - "source": 690, - "pc": [ - 208, - 209 - ] - }, - { - "teal": 131, - "source": 690, - "pc": [ - 210, - 211 - ] - }, - { - "teal": 132, - "source": 690, - "pc": [ - 212, - 213 - ] - }, - { - "teal": 133, - "source": 690, - "pc": [ - 214, - 215 - ] - }, - { - "teal": 134, - "source": 690, - "pc": [ - 216 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 158 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 172 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCiphYmlfcm91dGVfbmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbmVzdGVkVHVwbGUoKSh1aW50MTYsKHVpbnQ4LHN0cmluZyksKHVpbnQxNixzdHJpbmcpKQoJY2FsbHN1YiBuZXN0ZWRUdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR1cGxlKCk6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQpuZXN0ZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY5MgoJLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dID0gWzExLCBbMjIsICdmb28nXSwgWzMzLCAnYmFyJ11dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDBiCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDAzIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgxNgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM2NjZmNmYKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDIxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMzYyNjE3MgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2OTQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9uZXN0ZWRUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCiphYmlfcm91dGVfbmVzdGVkVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBuZXN0ZWRUdXBsZSgpKHVpbnQxNiwodWludDgsc3RyaW5nKSwodWludDE2LHN0cmluZykpCgljYWxsc3ViIG5lc3RlZFR1cGxlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR1cGxlKCk6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQpuZXN0ZWRUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY5MgoJLy8gYTogW3VpbnQxNiwgW3VpbnQ8OD4sIHN0cmluZ10sIFt1aW50MTYsIHN0cmluZ11dID0gWzExLCBbMjIsICdmb28nXSwgWzMzLCAnYmFyJ11dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDAwYgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDAzIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDE2CgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzNjY2ZjZmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA0IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMjEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDM2MjYxNzIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCBbdWludDw4Piwgc3RyaW5nXSwgW3VpbnQxNiwgc3RyaW5nXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njk0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIFt1aW50PDg+LCBzdHJpbmddLCBbdWludDE2LCBzdHJpbmddXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0OWJiNzAxOSAvLyBtZXRob2QgIm5lc3RlZFR1cGxlKCkodWludDE2LCh1aW50OCxzdHJpbmcpLCh1aW50MTYsc3RyaW5nKSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAG8AAAAAAAAAAAAAAGEAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoKCiAAgAGgAIAC4gAXigogAIAA4ABFogAUoAFAANmb2+IAFVIUIgAUCgogAIABIACACGIADaABQADYmFyiAA5SFCIADRIUIwAiwCMAIkiQ4AEuER7NjYaAI4B//EAgARJu3AZNhoAjgH/hQCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYBADEYFIEGCzEZCI0MAHgAAAAAAAAAAAAAAGoAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIABoACAAuIAGOAAIAAgAIAA4ABFogAVYAFAANmb2+IAFhIUIgAU4AAgACAAgAEgAIAIYgAN4AFAANiYXKIADpIUIgANUhQjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgARJu3AZNhoAjgH/fACKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal b/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal index 00ad23e4a..12af68c22 100644 --- a/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedTypesInSignature.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nestedTypesInSignature()((uint64,uint64),uint64) *abi_route_nestedTypesInSignature: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nestedTypesInSignature()((uint64,uint64),uint64) callsub nestedTypesInSignature concat log - int 1 + pushint 1 return // nestedTypesInSignature(): [T5, uint64] @@ -40,15 +40,15 @@ nestedTypesInSignature: // tests/contracts/abi.algo.ts:1136 // return [bzero(), 0]; - byte 0x000000000000000000000000000000000000000000000000 + pushbytes 0x000000000000000000000000000000000000000000000000 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -56,7 +56,7 @@ nestedTypesInSignature: err *call_NoOp: - method "nestedTypesInSignature()((uint64,uint64),uint64)" + pushbytes 0x22733166 // method "nestedTypesInSignature()((uint64,uint64),uint64)" txna ApplicationArgs 0 match *abi_route_nestedTypesInSignature diff --git a/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json b/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json index 5f0d5e247..d7b1be8ca 100644 --- a/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json +++ b/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkKKmFiaV9yb3V0ZV9uZXN0ZWRUeXBlc0luU2lnbmF0dXJlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KQoJY2FsbHN1YiBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkVHlwZXNJblNpZ25hdHVyZSgpOiBbVDUsIHVpbnQ2NF0KbmVzdGVkVHlwZXNJblNpZ25hdHVyZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTM2CgkvLyByZXR1cm4gW2J6ZXJvPFQ1PigpLCAwXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkVHlwZXNJblNpZ25hdHVyZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkVHlwZXNJblNpZ25hdHVyZSgpKCh1aW50NjQsdWludDY0KSx1aW50NjQpCiphYmlfcm91dGVfbmVzdGVkVHlwZXNJblNpZ25hdHVyZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KQoJY2FsbHN1YiBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKTogW1Q1LCB1aW50NjRdCm5lc3RlZFR5cGVzSW5TaWduYXR1cmU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEzNgoJLy8gcmV0dXJuIFtiemVybzxUNT4oKSwgMF07CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MjI3MzMxNjYgLy8gbWV0aG9kICJuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFR5cGVzSW5TaWduYXR1cmUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc56_draft.json b/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc56_draft.json index 31a8bfe2f..a79402eb2 100644 --- a/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNestedTypesInSignature.arc56_draft.json @@ -61,300 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1134, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1134, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1134, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1134, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1134, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1134, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1134, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1134, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1134, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1135, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1135, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1135, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1135, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1135, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1135, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1135, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 43, - "source": 1136, - "pc": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 44, - "source": 1135, - "pc": [ - 82 - ] - }, - { - "teal": 47, - "source": 1134, - "pc": [ - 83 - ] - }, - { - "teal": 48, - "source": 1134, - "pc": [ - 84 - ] - }, - { - "teal": 51, - "source": 1134, - "pc": [ - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 52, - "source": 1134, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 53, - "source": 1134, - "pc": [ - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 56, - "source": 1134, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 98 - ] - }, - { - "teal": 59, - "source": 1134, - "pc": [ - 99, - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 60, - "source": 1134, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 61, - "source": 1134, - "pc": [ - 108, - 109, - 110, - 111 - ] - }, - { - "teal": 64, - "source": 1134, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 112 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 97 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 111 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkKKmFiaV9yb3V0ZV9uZXN0ZWRUeXBlc0luU2lnbmF0dXJlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KQoJY2FsbHN1YiBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkVHlwZXNJblNpZ25hdHVyZSgpOiBbVDUsIHVpbnQ2NF0KbmVzdGVkVHlwZXNJblNpZ25hdHVyZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTM2CgkvLyByZXR1cm4gW2J6ZXJvPFQ1PigpLCAwXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbmVzdGVkVHlwZXNJblNpZ25hdHVyZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbmVzdGVkVHlwZXNJblNpZ25hdHVyZSgpKCh1aW50NjQsdWludDY0KSx1aW50NjQpCiphYmlfcm91dGVfbmVzdGVkVHlwZXNJblNpZ25hdHVyZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKSgodWludDY0LHVpbnQ2NCksdWludDY0KQoJY2FsbHN1YiBuZXN0ZWRUeXBlc0luU2lnbmF0dXJlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5lc3RlZFR5cGVzSW5TaWduYXR1cmUoKTogW1Q1LCB1aW50NjRdCm5lc3RlZFR5cGVzSW5TaWduYXR1cmU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTEzNgoJLy8gcmV0dXJuIFtiemVybzxUNT4oKSwgMF07CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MjI3MzMxNjYgLy8gbWV0aG9kICJuZXN0ZWRUeXBlc0luU2lnbmF0dXJlKCkoKHVpbnQ2NCx1aW50NjQpLHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25lc3RlZFR5cGVzSW5TaWduYXR1cmUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADwAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkiQ4AEuER7NjYaAI4B//EAgAQiczFmNhoAjgH/uAA=", + "approval": "CjEYFIEGCzEZCI0MAD4AAAAAAAAAAAAAADAAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJgQFDgAS4RHs2NhoAjgH/8ACABCJzMWY2GgCOAf+2AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNonE2E.approval.teal b/tests/contracts/artifacts/ABITestNonE2E.approval.teal index d16634c67..a47e62a48 100644 --- a/tests/contracts/artifacts/ABITestNonE2E.approval.teal +++ b/tests/contracts/artifacts/ABITestNonE2E.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // typeWithComments()(string,uint64,uint64) *abi_route_typeWithComments: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute typeWithComments()(string,uint64,uint64) callsub typeWithComments concat log - int 1 + pushint 1 return // typeWithComments(): T6 @@ -46,23 +47,23 @@ typeWithComments: // }; byte 0x // initial head byte 0x // initial tail - byte 0x0012 // initial head offset - byte 0x000c48656c6c6f20576f726c6421 + pushbytes 0x0012 // initial head offset + pushbytes 0x000c48656c6c6f20576f726c6421 callsub *process_dynamic_tuple_element - byte 0x0000000000000001 + pushbytes 0x0000000000000001 callsub *process_static_tuple_element - byte 0x0000000000000002 + pushbytes 0x0000000000000002 callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -70,7 +71,7 @@ typeWithComments: err *call_NoOp: - method "typeWithComments()(string,uint64,uint64)" + pushbytes 0x2117a3b8 // method "typeWithComments()(string,uint64,uint64)" txna ApplicationArgs 0 match *abi_route_typeWithComments diff --git a/tests/contracts/artifacts/ABITestNonE2E.arc32.json b/tests/contracts/artifacts/ABITestNonE2E.arc32.json index 303defaca..e69c9ca93 100644 --- a/tests/contracts/artifacts/ABITestNonE2E.arc32.json +++ b/tests/contracts/artifacts/ABITestNonE2E.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIHR5cGVXaXRoQ29tbWVudHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0eXBlV2l0aENvbW1lbnRzKCk6IFQ2CnR5cGVXaXRoQ29tbWVudHM6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2MAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGZvbzogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgICBiYXI6IDEsCgkvLyAgICAgICBiYXo6IDIsCgkvLyAgICAgfTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMTIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidHlwZVdpdGhDb21tZW50cygpKHN0cmluZyx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHR5cGVXaXRoQ29tbWVudHMoKShzdHJpbmcsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgdHlwZVdpdGhDb21tZW50cwoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB0eXBlV2l0aENvbW1lbnRzKCk6IFQ2CnR5cGVXaXRoQ29tbWVudHM6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2MAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGZvbzogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgICBiYXI6IDEsCgkvLyAgICAgICBiYXo6IDIsCgkvLyAgICAgfTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAxMiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDIxMTdhM2I4IC8vIG1ldGhvZCAidHlwZVdpdGhDb21tZW50cygpKHN0cmluZyx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonE2E.arc56_draft.json b/tests/contracts/artifacts/ABITestNonE2E.arc56_draft.json index 385d2f732..8f38fc912 100644 --- a/tests/contracts/artifacts/ABITestNonE2E.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNonE2E.arc56_draft.json @@ -77,614 +77,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1158, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 1158, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 1158, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 1158, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 1158, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 1158, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 1158, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 1158, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 1158, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 1159, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 1159, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 1159, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 1159, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 1159, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 1159, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 1159, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 47, - "source": 1160, - "pc": [ - 59 - ] - }, - { - "teal": 48, - "source": 1160, - "pc": [ - 60 - ] - }, - { - "teal": 49, - "source": 1160, - "pc": [ - 61, - 62, - 63, - 64 - ] - }, - { - "teal": 50, - "source": 1161, - "pc": [ - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 51, - "source": 1161, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 52, - "source": 1162, - "pc": [ - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 53, - "source": 1162, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 54, - "source": 1163, - "pc": [ - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 55, - "source": 1163, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 56, - "source": 1160, - "pc": [ - 110 - ] - }, - { - "teal": 57, - "source": 1160, - "pc": [ - 111 - ] - }, - { - "teal": 58, - "source": 1159, - "pc": [ - 112 - ] - }, - { - "teal": 61, - "source": 1158, - "pc": [ - 113 - ] - }, - { - "teal": 62, - "source": 1158, - "pc": [ - 114 - ] - }, - { - "teal": 65, - "source": 1158, - "pc": [ - 115, - 116, - 117, - 118, - 119, - 120 - ] - }, - { - "teal": 66, - "source": 1158, - "pc": [ - 121, - 122, - 123 - ] - }, - { - "teal": 67, - "source": 1158, - "pc": [ - 124, - 125, - 126, - 127 - ] - }, - { - "teal": 70, - "source": 1158, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 128 - ] - }, - { - "teal": 73, - "source": 1158, - "pc": [ - 129, - 130, - 131, - 132, - 133, - 134 - ] - }, - { - "teal": 74, - "source": 1158, - "pc": [ - 135, - 136, - 137 - ] - }, - { - "teal": 75, - "source": 1158, - "pc": [ - 138, - 139, - 140, - 141 - ] - }, - { - "teal": 78, - "source": 1158, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 142 - ] - }, - { - "teal": 81, - "source": 1158, - "pc": [ - 143, - 144, - 145 - ] - }, - { - "teal": 82, - "source": 1158, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 83, - "source": 1158, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 84, - "source": 1158, - "pc": [ - 150 - ] - }, - { - "teal": 85, - "source": 1158, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 86, - "source": 1158, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 87, - "source": 1158, - "pc": [ - 155 - ] - }, - { - "teal": 90, - "source": 1158, - "pc": [ - 156, - 157, - 158 - ] - }, - { - "teal": 91, - "source": 1158, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 92, - "source": 1158, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 93, - "source": 1158, - "pc": [ - 163 - ] - }, - { - "teal": 94, - "source": 1158, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 95, - "source": 1158, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 96, - "source": 1158, - "pc": [ - 168 - ] - }, - { - "teal": 97, - "source": 1158, - "pc": [ - 169 - ] - }, - { - "teal": 98, - "source": 1158, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 99, - "source": 1158, - "pc": [ - 172 - ] - }, - { - "teal": 100, - "source": 1158, - "pc": [ - 173 - ] - }, - { - "teal": 101, - "source": 1158, - "pc": [ - 174 - ] - }, - { - "teal": 102, - "source": 1158, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 103, - "source": 1158, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 104, - "source": 1158, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 105, - "source": 1158, - "pc": [ - 182 - ] - }, - { - "teal": 106, - "source": 1158, - "pc": [ - 183 - ] - }, - { - "teal": 107, - "source": 1158, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 108, - "source": 1158, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 109, - "source": 1158, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 110, - "source": 1158, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 111, - "source": 1158, - "pc": [ - 192 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 129 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 143 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIHR5cGVXaXRoQ29tbWVudHMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0eXBlV2l0aENvbW1lbnRzKCk6IFQ2CnR5cGVXaXRoQ29tbWVudHM6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2MAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGZvbzogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgICBiYXI6IDEsCgkvLyAgICAgICBiYXo6IDIsCgkvLyAgICAgfTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMTIgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidHlwZVdpdGhDb21tZW50cygpKHN0cmluZyx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eXBlV2l0aENvbW1lbnRzKCkoc3RyaW5nLHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHR5cGVXaXRoQ29tbWVudHMoKShzdHJpbmcsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgdHlwZVdpdGhDb21tZW50cwoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB0eXBlV2l0aENvbW1lbnRzKCk6IFQ2CnR5cGVXaXRoQ29tbWVudHM6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2MAoJLy8gcmV0dXJuIHsKCS8vICAgICAgIGZvbzogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgICBiYXI6IDEsCgkvLyAgICAgICBiYXo6IDIsCgkvLyAgICAgfTsKCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAxMiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDIxMTdhM2I4IC8vIG1ldGhvZCAidHlwZVdpdGhDb21tZW50cygpKHN0cmluZyx1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZVdpdGhDb21tZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAFcAAAAAAAAAAAAAAEkAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoKIACABKADgAMSGVsbG8gV29ybGQhiABIgAgAAAAAAAAAAYgALoAIAAAAAAAAAAKIACFIUIkiQ4AEuER7NjYaAI4B//EAgAQhF6O4NhoAjgH/nQCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYBADEYFIEGCzEZCI0MAFsAAAAAAAAAAAAAAE0AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIACABKADgAMSGVsbG8gV29ybGQhiABJgAgAAAAAAAAAAYgAL4AIAAAAAAAAAAKIACJIUImBAUOABLhEezY2GgCOAf/wAIAEIRejuDYaAI4B/5kAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal index 8fad75ae4..cce06afa0 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nonLiteralDynamicElementInTuple()(uint8,uint16,uint8[],uint16[],uint8[]) *abi_route_nonLiteralDynamicElementInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nonLiteralDynamicElementInTuple()(uint8,uint16,uint8[],uint16[],uint8[]) callsub nonLiteralDynamicElementInTuple concat log - int 1 + pushint 1 return // nonLiteralDynamicElementInTuple(): [uint<8>, uint16, uint<8>[], uint16[], uint<8>[]] @@ -44,31 +45,31 @@ nonLiteralDynamicElementInTuple: // tests/contracts/abi.algo.ts:420 // e: uint16[] = [5, 6] - byte 0x00050006 + pushbytes 0x00050006 frame_bury 0 // e: uint16[] // tests/contracts/abi.algo.ts:421 // a: [uint<8>, uint16, uint<8>[], uint16[], uint<8>[]] = [1, 2, [3, 4], e, [7, 8]] byte 0x // initial head byte 0x // initial tail - byte 0x0009 // initial head offset - byte 0x01 + pushbytes 0x0009 // initial head offset + pushbytes 0x01 callsub *process_static_tuple_element - byte 0x0002 + pushbytes 0x0002 callsub *process_static_tuple_element - byte 0x00020304 + pushbytes 0x00020304 callsub *process_dynamic_tuple_element frame_dig 0 // e: uint16[] dup len - int 2 + pushint 2 / itob extract 6 2 swap concat callsub *process_dynamic_tuple_element - byte 0x00020708 + pushbytes 0x00020708 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -86,11 +87,11 @@ nonLiteralDynamicElementInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -98,7 +99,7 @@ nonLiteralDynamicElementInTuple: err *call_NoOp: - method "nonLiteralDynamicElementInTuple()(uint8,uint16,uint8[],uint16[],uint8[])" + pushbytes 0x1346a20f // method "nonLiteralDynamicElementInTuple()(uint8,uint16,uint8[],uint16[],uint8[])" txna ApplicationArgs 0 match *abi_route_nonLiteralDynamicElementInTuple diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json index 2b7a006ec..5b5c6d2fd 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV9ub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoJY2FsbHN1YiBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDE2W10gPSBbNSwgNl0KCWJ5dGUgMHgwMDA1MDAwNgoJZnJhbWVfYnVyeSAwIC8vIGU6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMQoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIGUsIFs3LCA4XV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMzA0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDAgLy8gZTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDcwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV9ub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNix1aW50OFtdLHVpbnQxNltdLHVpbnQ4W10pCgljYWxsc3ViIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDE2W10gPSBbNSwgNl0KCXB1c2hieXRlcyAweDAwMDUwMDA2CglmcmFtZV9idXJ5IDAgLy8gZTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIxCgkvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dID0gWzEsIDIsIFszLCA0XSwgZSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyMDMwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAwIC8vIGU6IHVpbnQxNltdCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMjA3MDgKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMSAvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMSAvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxMzQ2YTIwZiAvLyBtZXRob2QgIm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc56_draft.json index 8a1e34929..f6e1b0d0a 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc56_draft.json @@ -61,754 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 418, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 418, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 418, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 418, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 418, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 418, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 418, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 418, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 418, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 419, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 419, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 419, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 419, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 419, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 419, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 419, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 42, - "source": 419, - "pc": [ - 59 - ] - }, - { - "teal": 43, - "source": 419, - "pc": [ - 60 - ] - }, - { - "teal": 47, - "source": 420, - "pc": [ - 61, - 62, - 63, - 64, - 65, - 66 - ] - }, - { - "teal": 48, - "source": 420, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 52, - "source": 421, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 421, - "pc": [ - 70 - ] - }, - { - "teal": 54, - "source": 421, - "pc": [ - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 55, - "source": 421, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 56, - "source": 421, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 57, - "source": 421, - "pc": [ - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 58, - "source": 421, - "pc": [ - 85, - 86, - 87 - ] - }, - { - "teal": 59, - "source": 421, - "pc": [ - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 60, - "source": 421, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 61, - "source": 421, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 62, - "source": 421, - "pc": [ - 99 - ] - }, - { - "teal": 63, - "source": 421, - "pc": [ - 100 - ] - }, - { - "teal": 64, - "source": 421, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 65, - "source": 421, - "pc": [ - 103 - ] - }, - { - "teal": 66, - "source": 421, - "pc": [ - 104 - ] - }, - { - "teal": 67, - "source": 421, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 68, - "source": 421, - "pc": [ - 108 - ] - }, - { - "teal": 69, - "source": 421, - "pc": [ - 109 - ] - }, - { - "teal": 70, - "source": 421, - "pc": [ - 110, - 111, - 112 - ] - }, - { - "teal": 71, - "source": 421, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 72, - "source": 421, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 73, - "source": 421, - "pc": [ - 122 - ] - }, - { - "teal": 74, - "source": 421, - "pc": [ - 123 - ] - }, - { - "teal": 75, - "source": 421, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 79, - "source": 423, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 82, - "source": 419, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 85, - "source": 419, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 86, - "source": 419, - "pc": [ - 132 - ] - }, - { - "teal": 89, - "source": 418, - "pc": [ - 133 - ] - }, - { - "teal": 90, - "source": 418, - "pc": [ - 134 - ] - }, - { - "teal": 93, - "source": 418, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140 - ] - }, - { - "teal": 94, - "source": 418, - "pc": [ - 141, - 142, - 143 - ] - }, - { - "teal": 95, - "source": 418, - "pc": [ - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 98, - "source": 418, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 148 - ] - }, - { - "teal": 101, - "source": 418, - "pc": [ - 149, - 150, - 151, - 152, - 153, - 154 - ] - }, - { - "teal": 102, - "source": 418, - "pc": [ - 155, - 156, - 157 - ] - }, - { - "teal": 103, - "source": 418, - "pc": [ - 158, - 159, - 160, - 161 - ] - }, - { - "teal": 106, - "source": 418, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 162 - ] - }, - { - "teal": 109, - "source": 418, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 110, - "source": 418, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 111, - "source": 418, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 112, - "source": 418, - "pc": [ - 170 - ] - }, - { - "teal": 113, - "source": 418, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 114, - "source": 418, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 115, - "source": 418, - "pc": [ - 175 - ] - }, - { - "teal": 118, - "source": 418, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 119, - "source": 418, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 120, - "source": 418, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 121, - "source": 418, - "pc": [ - 183 - ] - }, - { - "teal": 122, - "source": 418, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 123, - "source": 418, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 124, - "source": 418, - "pc": [ - 188 - ] - }, - { - "teal": 125, - "source": 418, - "pc": [ - 189 - ] - }, - { - "teal": 126, - "source": 418, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 127, - "source": 418, - "pc": [ - 192 - ] - }, - { - "teal": 128, - "source": 418, - "pc": [ - 193 - ] - }, - { - "teal": 129, - "source": 418, - "pc": [ - 194 - ] - }, - { - "teal": 130, - "source": 418, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 131, - "source": 418, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 132, - "source": 418, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 133, - "source": 418, - "pc": [ - 202 - ] - }, - { - "teal": 134, - "source": 418, - "pc": [ - 203 - ] - }, - { - "teal": 135, - "source": 418, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 136, - "source": 418, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 137, - "source": 418, - "pc": [ - 208, - 209 - ] - }, - { - "teal": 138, - "source": 418, - "pc": [ - 210, - 211 - ] - }, - { - "teal": 139, - "source": 418, - "pc": [ - 212 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 150 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 164 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV9ub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoJY2FsbHN1YiBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDE2W10gPSBbNSwgNl0KCWJ5dGUgMHgwMDA1MDAwNgoJZnJhbWVfYnVyeSAwIC8vIGU6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMQoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIGUsIFs3LCA4XV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMzA0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJZnJhbWVfZGlnIDAgLy8gZTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDcwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAxIC8vIGE6IFt1aW50PDg+LCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV9ub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNix1aW50OFtdLHVpbnQxNltdLHVpbnQ4W10pCgljYWxsc3ViIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZSgpOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDE2W10gPSBbNSwgNl0KCXB1c2hieXRlcyAweDAwMDUwMDA2CglmcmFtZV9idXJ5IDAgLy8gZTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDIxCgkvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dID0gWzEsIDIsIFszLCA0XSwgZSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyMDMwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWZyYW1lX2RpZyAwIC8vIGU6IHVpbnQxNltdCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMjA3MDgKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMSAvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMSAvLyBhOiBbdWludDw4PiwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxMzQ2YTIwZiAvLyBtZXRob2QgIm5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAGsAAAAAAAAAAAAAAF0AAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoSYAEAAUABowAKCiAAgAJgAEBiABSgAIAAogAS4AEAAIDBIgAT4sASRWBAgoWVwYCTFCIAD+ABAACBwiIADZIUIwBiwGMAEYBiSJDgAS4RHs2NhoAjgH/8QCABBNGog82GgCOAf+JAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6J", + "approval": "CiYBADEYFIEGCzEZCI0MAHAAAAAAAAAAAAAAAGIAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgABJgAQABQAGjACAAIAAgAIACYABAYgAU4ACAAKIAEyABAACAwSIAFCLAEkVgQIKFlcGAkxQiABAgAQAAgcIiAA3SFCMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEE0aiDzYaAI4B/4QAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal index 42ec2e183..6dbe9500e 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nonLiteralNestedArrayRef()uint8[2][2] *abi_route_nonLiteralNestedArrayRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nonLiteralNestedArrayRef()uint8[2][2] callsub nonLiteralNestedArrayRef concat log - int 1 + pushint 1 return // nonLiteralNestedArrayRef(): StaticArray, 2>, 2> @@ -47,30 +48,30 @@ nonLiteralNestedArrayRef: // [1, 2], // [3, 4], // ] - byte 0x01020304 + pushbytes 0x01020304 frame_bury 0 // a: StaticArray, 2>, 2> // tests/contracts/abi.algo.ts:780 // i = 1 - int 1 + pushint 1 frame_bury 1 // i: uint64 frame_dig 1 // i: uint64 frame_bury 2 // accessor: accessor//0//b // tests/contracts/abi.algo.ts:783 // i = 1337 - int 1337 + pushint 1337 frame_bury 1 // i: uint64 // tests/contracts/abi.algo.ts:785 // b[1] = 5 as uint<8> frame_dig 0 // a: StaticArray, 2>, 2> frame_dig 2 // saved accessor: accessor//0//b - int 2 + pushint 2 * // acc * typeLength - int 1 + pushint 1 + - byte 0x05 + pushbytes 0x05 replace3 frame_bury 0 // b: StaticArray, 2>, 2> @@ -86,11 +87,11 @@ nonLiteralNestedArrayRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -98,7 +99,7 @@ nonLiteralNestedArrayRef: err *call_NoOp: - method "nonLiteralNestedArrayRef()uint8[2][2]" + pushbytes 0xe940c63a // method "nonLiteralNestedArrayRef()uint8[2][2]" txna ApplicationArgs 0 match *abi_route_nonLiteralNestedArrayRef diff --git a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json index 19765ec85..aa56d9185 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgpub25MaXRlcmFsTmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc3NQoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWzEsIDJdLAoJLy8gICAgICAgWzMsIDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMTAyMDMwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3ODAKCS8vIGkgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4MwoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4NQoJLy8gYlsxXSA9IDUgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CglmcmFtZV9kaWcgMiAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2IKCWludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAxCgkrCglieXRlIDB4MDUKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYjogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXQoJY2FsbHN1YiBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgpub25MaXRlcmFsTmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc3NQoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWzEsIDJdLAoJLy8gICAgICAgWzMsIDRdLAoJLy8gICAgIF0KCXB1c2hieXRlcyAweDAxMDIwMzA0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4MAoJLy8gaSA9IDEKCXB1c2hpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4MwoJLy8gaSA9IDEzMzcKCXB1c2hpbnQgMTMzNwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3ODUKCS8vIGJbMV0gPSA1IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoJZnJhbWVfZGlnIDIgLy8gc2F2ZWQgYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCglwdXNoaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAxCgkrCglwdXNoYnl0ZXMgMHgwNQoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBiOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzg3CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTk0MGM2M2EgLy8gbWV0aG9kICJub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc56_draft.json b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc56_draft.json index 240c70beb..70793a1cb 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc56_draft.json @@ -61,445 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 773, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 773, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 773, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 773, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 773, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 773, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 773, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 773, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 773, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 774, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 774, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 774, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 774, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 774, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 774, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 774, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 774, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 43, - "source": 774, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 50, - "source": 775, - "pc": [ - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 51, - "source": 775, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 55, - "source": 780, - "pc": [ - 68 - ] - }, - { - "teal": 56, - "source": 780, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 57, - "source": 781, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 58, - "source": 781, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 62, - "source": 783, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 63, - "source": 783, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 67, - "source": 785, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 68, - "source": 785, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 69, - "source": 785, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 70, - "source": 785, - "pc": [ - 86 - ] - }, - { - "teal": 71, - "source": 785, - "pc": [ - 87 - ] - }, - { - "teal": 72, - "source": 785, - "pc": [ - 88 - ] - }, - { - "teal": 73, - "source": 785, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 74, - "source": 785, - "pc": [ - 92 - ] - }, - { - "teal": 75, - "source": 785, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 79, - "source": 787, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 82, - "source": 774, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 85, - "source": 774, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 86, - "source": 774, - "pc": [ - 101 - ] - }, - { - "teal": 89, - "source": 773, - "pc": [ - 102 - ] - }, - { - "teal": 90, - "source": 773, - "pc": [ - 103 - ] - }, - { - "teal": 93, - "source": 773, - "pc": [ - 104, - 105, - 106, - 107, - 108, - 109 - ] - }, - { - "teal": 94, - "source": 773, - "pc": [ - 110, - 111, - 112 - ] - }, - { - "teal": 95, - "source": 773, - "pc": [ - 113, - 114, - 115, - 116 - ] - }, - { - "teal": 98, - "source": 773, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 117 - ] - }, - { - "teal": 101, - "source": 773, - "pc": [ - 118, - 119, - 120, - 121, - 122, - 123 - ] - }, - { - "teal": 102, - "source": 773, - "pc": [ - 124, - 125, - 126 - ] - }, - { - "teal": 103, - "source": 773, - "pc": [ - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 106, - "source": 773, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 131 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 121 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 135 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxOZXN0ZWRBcnJheVJlZigpdWludDhbMl1bMl0KCWNhbGxzdWIgbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgpub25MaXRlcmFsTmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc3NQoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWzEsIDJdLAoJLy8gICAgICAgWzMsIDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMTAyMDMwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3ODAKCS8vIGkgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4MwoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDEgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4NQoJLy8gYlsxXSA9IDUgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CglmcmFtZV9kaWcgMiAvLyBzYXZlZCBhY2Nlc3NvcjogYWNjZXNzb3IvLzAvL2IKCWludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCWludCAxCgkrCglieXRlIDB4MDUKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYjogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdCiphYmlfcm91dGVfbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCl1aW50OFsyXVsyXQoJY2FsbHN1YiBub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbm9uTGl0ZXJhbE5lc3RlZEFycmF5UmVmKCk6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgpub25MaXRlcmFsTmVzdGVkQXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAyCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc3NQoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWzEsIDJdLAoJLy8gICAgICAgWzMsIDRdLAoJLy8gICAgIF0KCXB1c2hieXRlcyAweDAxMDIwMzA0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDw4PiwgMj4sIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4MAoJLy8gaSA9IDEKCXB1c2hpbnQgMQoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoJZnJhbWVfZGlnIDEgLy8gaTogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc4MwoJLy8gaSA9IDEzMzcKCXB1c2hpbnQgMTMzNwoJZnJhbWVfYnVyeSAxIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3ODUKCS8vIGJbMV0gPSA1IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoJZnJhbWVfZGlnIDIgLy8gc2F2ZWQgYWNjZXNzb3I6IGFjY2Vzc29yLy8wLy9iCglwdXNoaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJcHVzaGludCAxCgkrCglwdXNoYnl0ZXMgMHgwNQoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBiOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50PDg+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Nzg3CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ8OD4sIDI+LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTk0MGM2M2EgLy8gbWV0aG9kICJub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYoKXVpbnQ4WzJdWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsTmVzdGVkQXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE8AAAAAAAAAAAAAAEEAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAEcCgAQBAgMEjAAijAGLAYwCgbkKjAGLAIsCgQILIgiAAQVdjACLAIwARgKJIkOABLhEezY2GgCOAf/xAIAE6UDGOjYaAI4B/6UA", + "approval": "CiYBADEYFIEGCzEZCI0MAFMAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgABHAoAEAQIDBIwAgQGMAYsBjAKBuQqMAYsAiwKBAguBAQiAAQVdjACLAIwARgKJgQFDgAS4RHs2NhoAjgH/8ACABOlAxjo2GgCOAf+hAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal index cafff4e60..03c324d3d 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nonLiteralStaticArrayAccess()uint64 *abi_route_nonLiteralStaticArrayAccess: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nonLiteralStaticArrayAccess()uint64 callsub nonLiteralStaticArrayAccess itob concat log - int 1 + pushint 1 return // nonLiteralStaticArrayAccess(): uint64 @@ -45,12 +46,12 @@ nonLiteralStaticArrayAccess: // tests/contracts/abi.algo.ts:55 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:56 // n = btoi(itob(2)) - int 2 + pushint 2 frame_bury 1 // n: uint64 // tests/contracts/abi.algo.ts:58 @@ -67,11 +68,11 @@ nonLiteralStaticArrayAccess: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -79,7 +80,7 @@ nonLiteralStaticArrayAccess: err *call_NoOp: - method "nonLiteralStaticArrayAccess()uint64" + pushbytes 0xd7bd8df8 // method "nonLiteralStaticArrayAccess()uint64" txna ApplicationArgs 0 match *abi_route_nonLiteralStaticArrayAccess diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json index d999b9ff0..4481b1ddd 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKTogdWludDY0Cm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2CgkvLyBuID0gYnRvaShpdG9iKDIpKQoJaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBuOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgKCS8vIHJldHVybiBhW25dOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAxNiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0CgljYWxsc3ViIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKTogdWludDY0Cm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYKCS8vIG4gPSBidG9pKGl0b2IoMikpCglwdXNoaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBuOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgKCS8vIHJldHVybiBhW25dOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAxNiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkN2JkOGRmOCAvLyBtZXRob2QgIm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc56_draft.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc56_draft.json index 200c564ce..aa3f4367d 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc56_draft.json @@ -61,386 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 53, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 53, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 53, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 53, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 53, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 53, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 53, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 53, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 53, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 54, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 54, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 54, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 54, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 54, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 54, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 54, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 54, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 54, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 44, - "source": 54, - "pc": [ - 59 - ] - }, - { - "teal": 48, - "source": 55, - "pc": [ - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 49, - "source": 55, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 53, - "source": 56, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 54, - "source": 56, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 58, - "source": 58, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 59, - "source": 58, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 60, - "source": 58, - "pc": [ - 97 - ] - }, - { - "teal": 63, - "source": 54, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 66, - "source": 54, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 67, - "source": 54, - "pc": [ - 102 - ] - }, - { - "teal": 70, - "source": 53, - "pc": [ - 103 - ] - }, - { - "teal": 71, - "source": 53, - "pc": [ - 104 - ] - }, - { - "teal": 74, - "source": 53, - "pc": [ - 105, - 106, - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 75, - "source": 53, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 76, - "source": 53, - "pc": [ - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 79, - "source": 53, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 118 - ] - }, - { - "teal": 82, - "source": 53, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 83, - "source": 53, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 84, - "source": 53, - "pc": [ - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 87, - "source": 53, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 132 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 120 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKTogdWludDY0Cm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2CgkvLyBuID0gYnRvaShpdG9iKDIpKQoJaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBuOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgKCS8vIHJldHVybiBhW25dOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAxNiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoqYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0CgljYWxsc3ViIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKTogdWludDY0Cm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYKCS8vIG4gPSBidG9pKGl0b2IoMikpCglwdXNoaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBuOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgKCS8vIHJldHVybiBhW25dOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAxNiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkN2JkOGRmOCAvLyBtZXRob2QgIm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAFAAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgABJgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIECjAGLAFcQCBeMAEYBiSJDgAS4RHs2NhoAjgH/8QCABNe9jfg2GgCOAf+kAA==", + "approval": "CiYBADEYFIEGCzEZCI0MAFIAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAASYAYAAAAAAAAAAsAAAAAAAAAFgAAAAAAAAAhjACBAowBiwBXEAgXjABGAYmBAUOABLhEezY2GgCOAf/wAIAE172N+DYaAI4B/6IA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal index a7b91739d..954e87128 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // nonLiteralStaticArrayElements()uint64 *abi_route_nonLiteralStaticArrayElements: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute nonLiteralStaticArrayElements()uint64 callsub nonLiteralStaticArrayElements itob concat log - int 1 + pushint 1 return // nonLiteralStaticArrayElements(): uint64 @@ -45,26 +46,26 @@ nonLiteralStaticArrayElements: // tests/contracts/abi.algo.ts:33 // n1 = btoi(itob(11)) - int 11 + pushint 11 frame_bury 0 // n1: uint64 // tests/contracts/abi.algo.ts:34 // n2 = btoi(itob(22)) - int 22 + pushint 22 frame_bury 1 // n2: uint64 // tests/contracts/abi.algo.ts:35 // n3 = btoi(itob(33)) - int 33 + pushint 33 frame_bury 2 // n3: uint64 // tests/contracts/abi.algo.ts:36 // a: StaticArray = [n1, n2, n3] frame_dig 0 // n1: uint64 itob - byte 0x0000000000000016 + pushbytes 0x0000000000000016 concat - byte 0x0000000000000021 + pushbytes 0x0000000000000021 concat frame_bury 3 // a: StaticArray @@ -82,11 +83,11 @@ nonLiteralStaticArrayElements: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -94,7 +95,7 @@ nonLiteralStaticArrayElements: err *call_NoOp: - method "nonLiteralStaticArrayElements()uint64" + pushbytes 0xbcecf31f // method "nonLiteralStaticArrayElements()uint64" txna ApplicationArgs 0 match *abi_route_nonLiteralStaticArrayElements diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json index b86dc24ae..dc7444f42 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CiphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCk6IHVpbnQ2NApub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gYnRvaShpdG9iKDExKSkKCWludCAxMQoJZnJhbWVfYnVyeSAwIC8vIG4xOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQKCS8vIG4yID0gYnRvaShpdG9iKDIyKSkKCWludCAyMgoJZnJhbWVfYnVyeSAxIC8vIG4yOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzUKCS8vIG4zID0gYnRvaShpdG9iKDMzKSkKCWludCAzMwoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDE2Cgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDIxCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CiphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CgljYWxsc3ViIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCk6IHVpbnQ2NApub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gYnRvaShpdG9iKDExKSkKCXB1c2hpbnQgMTEKCWZyYW1lX2J1cnkgMCAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0CgkvLyBuMiA9IGJ0b2koaXRvYigyMikpCglwdXNoaW50IDIyCglmcmFtZV9idXJ5IDEgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNQoJLy8gbjMgPSBidG9pKGl0b2IoMzMpKQoJcHVzaGludCAzMwoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMTYKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAyMQoJY29uY2F0CglmcmFtZV9idXJ5IDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozOAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmNlY2YzMWYgLy8gbWV0aG9kICJub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc56_draft.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc56_draft.json index 862e6d2b9..9354f29cb 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc56_draft.json @@ -61,448 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 31, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 31, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 31, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 31, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 31, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 31, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 31, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 31, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 31, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 32, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 32, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 32, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 32, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 32, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 32, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 32, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 32, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 32, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 44, - "source": 32, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 48, - "source": 33, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 49, - "source": 33, - "pc": [ - 63, - 64 - ] - }, - { - "teal": 53, - "source": 34, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 54, - "source": 34, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 58, - "source": 35, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 59, - "source": 35, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 63, - "source": 36, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 64, - "source": 36, - "pc": [ - 75 - ] - }, - { - "teal": 65, - "source": 36, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 66, - "source": 36, - "pc": [ - 86 - ] - }, - { - "teal": 67, - "source": 36, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 68, - "source": 36, - "pc": [ - 97 - ] - }, - { - "teal": 69, - "source": 36, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 73, - "source": 38, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 74, - "source": 38, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 75, - "source": 38, - "pc": [ - 105 - ] - }, - { - "teal": 78, - "source": 32, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 81, - "source": 32, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 82, - "source": 32, - "pc": [ - 110 - ] - }, - { - "teal": 85, - "source": 31, - "pc": [ - 111 - ] - }, - { - "teal": 86, - "source": 31, - "pc": [ - 112 - ] - }, - { - "teal": 89, - "source": 31, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 90, - "source": 31, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 91, - "source": 31, - "pc": [ - 122, - 123, - 124, - 125 - ] - }, - { - "teal": 94, - "source": 31, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 126 - ] - }, - { - "teal": 97, - "source": 31, - "pc": [ - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 98, - "source": 31, - "pc": [ - 133, - 134, - 135 - ] - }, - { - "teal": 99, - "source": 31, - "pc": [ - 136, - 137, - 138, - 139 - ] - }, - { - "teal": 102, - "source": 31, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 140 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 142 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CiphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCk6IHVpbnQ2NApub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gYnRvaShpdG9iKDExKSkKCWludCAxMQoJZnJhbWVfYnVyeSAwIC8vIG4xOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQKCS8vIG4yID0gYnRvaShpdG9iKDIyKSkKCWludCAyMgoJZnJhbWVfYnVyeSAxIC8vIG4yOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzUKCS8vIG4zID0gYnRvaShpdG9iKDMzKSkKCWludCAzMwoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDE2Cgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDIxCgljb25jYXQKCWZyYW1lX2J1cnkgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAzIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CiphYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CgljYWxsc3ViIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCk6IHVpbnQ2NApub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gYnRvaShpdG9iKDExKSkKCXB1c2hpbnQgMTEKCWZyYW1lX2J1cnkgMCAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0CgkvLyBuMiA9IGJ0b2koaXRvYigyMikpCglwdXNoaW50IDIyCglmcmFtZV9idXJ5IDEgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNQoJLy8gbjMgPSBidG9pKGl0b2IoMzMpKQoJcHVzaGludCAzMwoJZnJhbWVfYnVyeSAyIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCWZyYW1lX2RpZyAwIC8vIG4xOiB1aW50NjQKCWl0b2IKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMTYKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAyMQoJY29uY2F0CglmcmFtZV9idXJ5IDMgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozOAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMyAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDMKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmNlY2YzMWYgLy8gbWV0aG9kICJub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAFgAAAAAAAAAAAAAAEoAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgABHA4ELjACBFowBgSGMAosAFoAIAAAAAAAAABZQgAgAAAAAAAAAIVCMA4sDVwgIF4wARgOJIkOABLhEezY2GgCOAf/xAIAEvOzzHzYaAI4B/5wA", + "approval": "CiYBADEYFIEGCzEZCI0MAFoAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwOBC4wAgRaMAYEhjAKLABaACAAAAAAAAAAWUIAIAAAAAAAAACFQjAOLA1cICBeMAEYDiYEBQ4AEuER7NjYaAI4B//AAgAS87PMfNhoAjgH/mgA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal b/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal index 1b82f110e..417ce2c95 100644 --- a/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal +++ b/tests/contracts/artifacts/ABITestObjectArrayRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // objectArrayRef()(uint8[2][2]) *abi_route_objectArrayRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute objectArrayRef()(uint8[2][2]) callsub objectArrayRef concat log - int 1 + pushint 1 return // objectArrayRef(): ObjectRefType @@ -39,7 +39,7 @@ objectArrayRef: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:817 // a: ObjectRefType = { @@ -48,7 +48,7 @@ objectArrayRef: // [3, 4], // ], // } - byte 0x01020304 + pushbytes 0x01020304 frame_bury 0 // a: ObjectRefType // tests/contracts/abi.algo.ts:824 @@ -56,7 +56,7 @@ objectArrayRef: // tests/contracts/abi.algo.ts:826 // c[1] = 5 as uint<8> frame_dig 0 // a: ObjectRefType - byte 0x05 + pushbytes 0x05 replace2 3 frame_bury 0 // c: ObjectRefType @@ -69,11 +69,11 @@ objectArrayRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +81,7 @@ objectArrayRef: err *call_NoOp: - method "objectArrayRef()(uint8[2][2])" + pushbytes 0x545b4016 // method "objectArrayRef()(uint8[2][2])" txna ApplicationArgs 0 match *abi_route_objectArrayRef diff --git a/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json b/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json index b17e474b8..1b1e6a8f2 100644 --- a/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json +++ b/tests/contracts/artifacts/ABITestObjectArrayRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKQoqYWJpX3JvdXRlX29iamVjdEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pCgljYWxsc3ViIG9iamVjdEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb2JqZWN0QXJyYXlSZWYoKTogT2JqZWN0UmVmVHlwZQpvYmplY3RBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgxNwoJLy8gYTogT2JqZWN0UmVmVHlwZSA9IHsKCS8vICAgICAgIGZvbzogWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgfQoJYnl0ZSAweDAxMDIwMzA0CglmcmFtZV9idXJ5IDAgLy8gYTogT2JqZWN0UmVmVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MjQKCS8vIGMgPSBiWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODI2CgkvLyBjWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBPYmplY3RSZWZUeXBlCglieXRlIDB4MDUKCXJlcGxhY2UyIDMKCWZyYW1lX2J1cnkgMCAvLyBjOiBPYmplY3RSZWZUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgyOAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBPYmplY3RSZWZUeXBlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0QXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gb2JqZWN0QXJyYXlSZWYoKSh1aW50OFsyXVsyXSkKKmFiaV9yb3V0ZV9vYmplY3RBcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pCgljYWxsc3ViIG9iamVjdEFycmF5UmVmCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG9iamVjdEFycmF5UmVmKCk6IE9iamVjdFJlZlR5cGUKb2JqZWN0QXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgxNwoJLy8gYTogT2JqZWN0UmVmVHlwZSA9IHsKCS8vICAgICAgIGZvbzogWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgfQoJcHVzaGJ5dGVzIDB4MDEwMjAzMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiBPYmplY3RSZWZUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgyNAoJLy8gYyA9IGJbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MjYKCS8vIGNbMV0gPSA1IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IE9iamVjdFJlZlR5cGUKCXB1c2hieXRlcyAweDA1CglyZXBsYWNlMiAzCglmcmFtZV9idXJ5IDAgLy8gYzogT2JqZWN0UmVmVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MjgKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogT2JqZWN0UmVmVHlwZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg1NDViNDAxNiAvLyBtZXRob2QgIm9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vYmplY3RBcnJheVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestObjectArrayRef.arc56_draft.json b/tests/contracts/artifacts/ABITestObjectArrayRef.arc56_draft.json index 86ed75848..dd910bd77 100644 --- a/tests/contracts/artifacts/ABITestObjectArrayRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestObjectArrayRef.arc56_draft.json @@ -69,345 +69,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 815, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 815, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 815, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 815, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 815, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 815, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 815, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 815, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 815, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 816, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 816, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 816, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 816, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 816, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 816, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 816, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 816, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 51, - "source": 818, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 52, - "source": 817, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 58, - "source": 826, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 59, - "source": 826, - "pc": [ - 68, - 69, - 70 - ] - }, - { - "teal": 60, - "source": 826, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 61, - "source": 826, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 65, - "source": 828, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 68, - "source": 816, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 69, - "source": 816, - "pc": [ - 79 - ] - }, - { - "teal": 72, - "source": 815, - "pc": [ - 80 - ] - }, - { - "teal": 73, - "source": 815, - "pc": [ - 81 - ] - }, - { - "teal": 76, - "source": 815, - "pc": [ - 82, - 83, - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 77, - "source": 815, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 78, - "source": 815, - "pc": [ - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 81, - "source": 815, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 95 - ] - }, - { - "teal": 84, - "source": 815, - "pc": [ - 96, - 97, - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 85, - "source": 815, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 86, - "source": 815, - "pc": [ - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 89, - "source": 815, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 109 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 94 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 108 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKQoqYWJpX3JvdXRlX29iamVjdEFycmF5UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pCgljYWxsc3ViIG9iamVjdEFycmF5UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb2JqZWN0QXJyYXlSZWYoKTogT2JqZWN0UmVmVHlwZQpvYmplY3RBcnJheVJlZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgxNwoJLy8gYTogT2JqZWN0UmVmVHlwZSA9IHsKCS8vICAgICAgIGZvbzogWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgfQoJYnl0ZSAweDAxMDIwMzA0CglmcmFtZV9idXJ5IDAgLy8gYTogT2JqZWN0UmVmVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MjQKCS8vIGMgPSBiWzFdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODI2CgkvLyBjWzFdID0gNSBhcyB1aW50PDg+CglmcmFtZV9kaWcgMCAvLyBhOiBPYmplY3RSZWZUeXBlCglieXRlIDB4MDUKCXJlcGxhY2UyIDMKCWZyYW1lX2J1cnkgMCAvLyBjOiBPYmplY3RSZWZUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgyOAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBPYmplY3RSZWZUeXBlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RBcnJheVJlZigpKHVpbnQ4WzJdWzJdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0QXJyYXlSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gb2JqZWN0QXJyYXlSZWYoKSh1aW50OFsyXVsyXSkKKmFiaV9yb3V0ZV9vYmplY3RBcnJheVJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pCgljYWxsc3ViIG9iamVjdEFycmF5UmVmCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG9iamVjdEFycmF5UmVmKCk6IE9iamVjdFJlZlR5cGUKb2JqZWN0QXJyYXlSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgxNwoJLy8gYTogT2JqZWN0UmVmVHlwZSA9IHsKCS8vICAgICAgIGZvbzogWwoJLy8gICAgICAgICBbMSwgMl0sCgkvLyAgICAgICAgIFszLCA0XSwKCS8vICAgICAgIF0sCgkvLyAgICAgfQoJcHVzaGJ5dGVzIDB4MDEwMjAzMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiBPYmplY3RSZWZUeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgyNAoJLy8gYyA9IGJbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MjYKCS8vIGNbMV0gPSA1IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IE9iamVjdFJlZlR5cGUKCXB1c2hieXRlcyAweDA1CglyZXBsYWNlMiAzCglmcmFtZV9idXJ5IDAgLy8gYzogT2JqZWN0UmVmVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MjgKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogT2JqZWN0UmVmVHlwZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg1NDViNDAxNiAvLyBtZXRob2QgIm9iamVjdEFycmF5UmVmKCkodWludDhbMl1bMl0pIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vYmplY3RBcnJheVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADkAAAAAAAAAAAAAACsAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAEAQIDBIwAiwCAAQVcA4wAiwCMAIkiQ4AEuER7NjYaAI4B//EAgARUW0AWNhoAjgH/uwA=", + "approval": "CjEYFIEGCzEZCI0MADsAAAAAAAAAAAAAAC0AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACABAECAwSMAIsAgAEFXAOMAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABFRbQBY2GgCOAf+5AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal b/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal index 10cabe6c0..d89e60310 100644 --- a/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal +++ b/tests/contracts/artifacts/ABITestObjectInArgs.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -40,14 +40,14 @@ privateMethod: // objectInArgs()uint64 *abi_route_objectInArgs: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute objectInArgs()uint64 callsub objectInArgs itob concat log - int 1 + pushint 1 return // objectInArgs(): uint64 @@ -56,17 +56,17 @@ objectInArgs: // tests/contracts/abi.algo.ts:1408 // return this.privateMethod(this.txn.sender, { foo: 1, bar: 2 }); - byte 0x00000000000000010000000000000002 + pushbytes 0x00000000000000010000000000000002 txn Sender callsub privateMethod retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -74,7 +74,7 @@ objectInArgs: err *call_NoOp: - method "objectInArgs()uint64" + pushbytes 0x6886a971 // method "objectInArgs()uint64" txna ApplicationArgs 0 match *abi_route_objectInArgs diff --git a/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json b/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json index 9c1ae517a..21d794c7c 100644 --- a/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json +++ b/tests/contracts/artifacts/ABITestObjectInArgs.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwcml2YXRlTWV0aG9kKGE6IEFkZHJlc3MsIG9iajogT2JqZWN0SW5BcmdzVHlwZSk6IHVpbnQ2NApwcml2YXRlTWV0aG9kOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MDQKCS8vIHJldHVybiBvYmouYmFyICsgb2JqLmZvbzsKCWZyYW1lX2RpZyAtMiAvLyBvYmo6IE9iamVjdEluQXJnc1R5cGUKCWV4dHJhY3QgOCA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gb2JqOiBPYmplY3RJbkFyZ3NUeXBlCglleHRyYWN0IDAgOAoJYnRvaQoJKwoJcmV0c3ViCgovLyBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoqYWJpX3JvdXRlX29iamVjdEluQXJnczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoJY2FsbHN1YiBvYmplY3RJbkFyZ3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBvYmplY3RJbkFyZ3MoKTogdWludDY0Cm9iamVjdEluQXJnczoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDA4CgkvLyByZXR1cm4gdGhpcy5wcml2YXRlTWV0aG9kKHRoaXMudHhuLnNlbmRlciwgeyBmb286IDEsIGJhcjogMiB9KTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwcml2YXRlTWV0aG9kCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RJbkFyZ3MoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0SW5BcmdzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcHJpdmF0ZU1ldGhvZChhOiBBZGRyZXNzLCBvYmo6IE9iamVjdEluQXJnc1R5cGUpOiB1aW50NjQKcHJpdmF0ZU1ldGhvZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDA0CgkvLyByZXR1cm4gb2JqLmJhciArIG9iai5mb287CglmcmFtZV9kaWcgLTIgLy8gb2JqOiBPYmplY3RJbkFyZ3NUeXBlCglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIG9iajogT2JqZWN0SW5BcmdzVHlwZQoJZXh0cmFjdCAwIDgKCWJ0b2kKCSsKCXJldHN1YgoKLy8gb2JqZWN0SW5BcmdzKCl1aW50NjQKKmFiaV9yb3V0ZV9vYmplY3RJbkFyZ3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoJY2FsbHN1YiBvYmplY3RJbkFyZ3MKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gb2JqZWN0SW5BcmdzKCk6IHVpbnQ2NApvYmplY3RJbkFyZ3M6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQwOAoJLy8gcmV0dXJuIHRoaXMucHJpdmF0ZU1ldGhvZCh0aGlzLnR4bi5zZW5kZXIsIHsgZm9vOiAxLCBiYXI6IDIgfSk7CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwcml2YXRlTWV0aG9kCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY4ODZhOTcxIC8vIG1ldGhvZCAib2JqZWN0SW5BcmdzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29iamVjdEluQXJncwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestObjectInArgs.arc56_draft.json b/tests/contracts/artifacts/ABITestObjectInArgs.arc56_draft.json index e54fbaf3c..b9a855de6 100644 --- a/tests/contracts/artifacts/ABITestObjectInArgs.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestObjectInArgs.arc56_draft.json @@ -61,387 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1402, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1402, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1402, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1402, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1402, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1402, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1402, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1402, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1402, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 27, - "source": 1403, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 31, - "source": 1404, - "pc": [ - 43, - 44 - ] - }, - { - "teal": 32, - "source": 1404, - "pc": [ - 45, - 46, - 47 - ] - }, - { - "teal": 33, - "source": 1404, - "pc": [ - 48 - ] - }, - { - "teal": 34, - "source": 1404, - "pc": [ - 49, - 50 - ] - }, - { - "teal": 35, - "source": 1404, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 36, - "source": 1404, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 1404, - "pc": [ - 55 - ] - }, - { - "teal": 38, - "source": 1403, - "pc": [ - 56 - ] - }, - { - "teal": 43, - "source": 1407, - "pc": [ - 57, - 58, - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 46, - "source": 1407, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 47, - "source": 1407, - "pc": [ - 66 - ] - }, - { - "teal": 48, - "source": 1407, - "pc": [ - 67 - ] - }, - { - "teal": 49, - "source": 1407, - "pc": [ - 68 - ] - }, - { - "teal": 50, - "source": 1407, - "pc": [ - 69 - ] - }, - { - "teal": 51, - "source": 1407, - "pc": [ - 70 - ] - }, - { - "teal": 55, - "source": 1407, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 59, - "source": 1408, - "pc": [ - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 60, - "source": 1408, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 61, - "source": 1408, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 62, - "source": 1407, - "pc": [ - 97 - ] - }, - { - "teal": 65, - "source": 1402, - "pc": [ - 98 - ] - }, - { - "teal": 66, - "source": 1402, - "pc": [ - 99 - ] - }, - { - "teal": 69, - "source": 1402, - "pc": [ - 100, - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 70, - "source": 1402, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 71, - "source": 1402, - "pc": [ - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 74, - "source": 1402, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 113 - ] - }, - { - "teal": 77, - "source": 1402, - "pc": [ - 114, - 115, - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 78, - "source": 1402, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 79, - "source": 1402, - "pc": [ - 123, - 124, - 125, - 126 - ] - }, - { - "teal": 82, - "source": 1402, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 127 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 112 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 126 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwcml2YXRlTWV0aG9kKGE6IEFkZHJlc3MsIG9iajogT2JqZWN0SW5BcmdzVHlwZSk6IHVpbnQ2NApwcml2YXRlTWV0aG9kOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0MDQKCS8vIHJldHVybiBvYmouYmFyICsgb2JqLmZvbzsKCWZyYW1lX2RpZyAtMiAvLyBvYmo6IE9iamVjdEluQXJnc1R5cGUKCWV4dHJhY3QgOCA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gb2JqOiBPYmplY3RJbkFyZ3NUeXBlCglleHRyYWN0IDAgOAoJYnRvaQoJKwoJcmV0c3ViCgovLyBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoqYWJpX3JvdXRlX29iamVjdEluQXJnczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoJY2FsbHN1YiBvYmplY3RJbkFyZ3MKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBvYmplY3RJbkFyZ3MoKTogdWludDY0Cm9iamVjdEluQXJnczoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDA4CgkvLyByZXR1cm4gdGhpcy5wcml2YXRlTWV0aG9kKHRoaXMudHhuLnNlbmRlciwgeyBmb286IDEsIGJhcjogMiB9KTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwcml2YXRlTWV0aG9kCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvYmplY3RJbkFyZ3MoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0SW5BcmdzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcHJpdmF0ZU1ldGhvZChhOiBBZGRyZXNzLCBvYmo6IE9iamVjdEluQXJnc1R5cGUpOiB1aW50NjQKcHJpdmF0ZU1ldGhvZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDA0CgkvLyByZXR1cm4gb2JqLmJhciArIG9iai5mb287CglmcmFtZV9kaWcgLTIgLy8gb2JqOiBPYmplY3RJbkFyZ3NUeXBlCglleHRyYWN0IDggOAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIG9iajogT2JqZWN0SW5BcmdzVHlwZQoJZXh0cmFjdCAwIDgKCWJ0b2kKCSsKCXJldHN1YgoKLy8gb2JqZWN0SW5BcmdzKCl1aW50NjQKKmFiaV9yb3V0ZV9vYmplY3RJbkFyZ3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBvYmplY3RJbkFyZ3MoKXVpbnQ2NAoJY2FsbHN1YiBvYmplY3RJbkFyZ3MKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gb2JqZWN0SW5BcmdzKCk6IHVpbnQ2NApvYmplY3RJbkFyZ3M6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQwOAoJLy8gcmV0dXJuIHRoaXMucHJpdmF0ZU1ldGhvZCh0aGlzLnR4bi5zZW5kZXIsIHsgZm9vOiAxLCBiYXI6IDIgfSk7CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJdHhuIFNlbmRlcgoJY2FsbHN1YiBwcml2YXRlTWV0aG9kCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY4ODZhOTcxIC8vIG1ldGhvZCAib2JqZWN0SW5BcmdzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29iamVjdEluQXJncwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIoCAYv+VwgIF4v+VwAIFwiJgAQVH3x1iAAFFlCwIkOKAAGAEAAAAAAAAAABAAAAAAAAAAIxAIj/x4kiQ4AEuER7NjYaAI4B//EAgARohqlxNhoAjgH/ugA=", + "approval": "CjEYFIEGCzEZCI0MAE0AAAAAAAAAAAAAAD8AAAAAAAAAAAAAAIoCAYv+VwgIF4v+VwAIFwiJgAQVH3x1iAAGFlCwgQFDigABgBAAAAAAAAAAAQAAAAAAAAACMQCI/8aJgQFDgAS4RHs2NhoAjgH/8ACABGiGqXE2GgCOAf+4AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestObjectRef.approval.teal b/tests/contracts/artifacts/ABITestObjectRef.approval.teal index bec9ccf36..1f118f638 100644 --- a/tests/contracts/artifacts/ABITestObjectRef.approval.teal +++ b/tests/contracts/artifacts/ABITestObjectRef.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // objectRef()(uint64) *abi_route_objectRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute objectRef()(uint64) callsub objectRef concat log - int 1 + pushint 1 return // objectRef(): { foo: uint64 } @@ -39,17 +39,17 @@ objectRef: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:986 // o: { foo: uint64 } = { foo: 1 } - byte 0x0000000000000001 + pushbytes 0x0000000000000001 frame_bury 0 // o: { foo: uint64 } // tests/contracts/abi.algo.ts:990 // r.foo = 2 frame_dig 0 // o: { foo: uint64 } - byte 0x0000000000000002 + pushbytes 0x0000000000000002 replace2 0 frame_bury 0 // r: { foo: uint64 } @@ -62,11 +62,11 @@ objectRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -74,7 +74,7 @@ objectRef: err *call_NoOp: - method "objectRef()(uint64)" + pushbytes 0x85c75aca // method "objectRef()(uint64)" txna ApplicationArgs 0 match *abi_route_objectRef diff --git a/tests/contracts/artifacts/ABITestObjectRef.arc32.json b/tests/contracts/artifacts/ABITestObjectRef.arc32.json index 352191f2c..0acf07078 100644 --- a/tests/contracts/artifacts/ABITestObjectRef.arc32.json +++ b/tests/contracts/artifacts/ABITestObjectRef.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBvYmplY3RSZWYoKSh1aW50NjQpCiphYmlfcm91dGVfb2JqZWN0UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdFJlZigpKHVpbnQ2NCkKCWNhbGxzdWIgb2JqZWN0UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb2JqZWN0UmVmKCk6IHsgZm9vOiB1aW50NjQgfQpvYmplY3RSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODYKCS8vIG86IHsgZm9vOiB1aW50NjQgfSA9IHsgZm9vOiAxIH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglmcmFtZV9idXJ5IDAgLy8gbzogeyBmb286IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk5MAoJLy8gci5mb28gPSAyCglmcmFtZV9kaWcgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gcjogeyBmb286IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk5MgoJLy8gcmV0dXJuIG87CglmcmFtZV9kaWcgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm9iamVjdFJlZigpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29iamVjdFJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gb2JqZWN0UmVmKCkodWludDY0KQoqYWJpX3JvdXRlX29iamVjdFJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdFJlZigpKHVpbnQ2NCkKCWNhbGxzdWIgb2JqZWN0UmVmCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG9iamVjdFJlZigpOiB7IGZvbzogdWludDY0IH0Kb2JqZWN0UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODYKCS8vIG86IHsgZm9vOiB1aW50NjQgfSA9IHsgZm9vOiAxIH0KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTkwCgkvLyByLmZvbyA9IDIKCWZyYW1lX2RpZyAwIC8vIG86IHsgZm9vOiB1aW50NjQgfQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIHI6IHsgZm9vOiB1aW50NjQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5OTIKCS8vIHJldHVybiBvOwoJZnJhbWVfZGlnIDAgLy8gbzogeyBmb286IHVpbnQ2NCB9CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg1Yzc1YWNhIC8vIG1ldGhvZCAib2JqZWN0UmVmKCkodWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestObjectRef.arc56_draft.json b/tests/contracts/artifacts/ABITestObjectRef.arc56_draft.json index 2646fcc2d..54bafdd21 100644 --- a/tests/contracts/artifacts/ABITestObjectRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestObjectRef.arc56_draft.json @@ -69,356 +69,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 984, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 984, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 984, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 984, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 984, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 984, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 984, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 984, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 984, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 985, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 985, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 985, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 985, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 985, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 985, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 985, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 985, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 986, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 47, - "source": 986, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 51, - "source": 990, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 52, - "source": 990, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 53, - "source": 990, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 54, - "source": 990, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 58, - "source": 992, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 61, - "source": 985, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 62, - "source": 985, - "pc": [ - 90 - ] - }, - { - "teal": 65, - "source": 984, - "pc": [ - 91 - ] - }, - { - "teal": 66, - "source": 984, - "pc": [ - 92 - ] - }, - { - "teal": 69, - "source": 984, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 70, - "source": 984, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 71, - "source": 984, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 74, - "source": 984, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 106 - ] - }, - { - "teal": 77, - "source": 984, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 78, - "source": 984, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 79, - "source": 984, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 82, - "source": 984, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 120 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 105 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBvYmplY3RSZWYoKSh1aW50NjQpCiphYmlfcm91dGVfb2JqZWN0UmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdFJlZigpKHVpbnQ2NCkKCWNhbGxzdWIgb2JqZWN0UmVmCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gb2JqZWN0UmVmKCk6IHsgZm9vOiB1aW50NjQgfQpvYmplY3RSZWY6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODYKCS8vIG86IHsgZm9vOiB1aW50NjQgfSA9IHsgZm9vOiAxIH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglmcmFtZV9idXJ5IDAgLy8gbzogeyBmb286IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk5MAoJLy8gci5mb28gPSAyCglmcmFtZV9kaWcgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gcjogeyBmb286IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk5MgoJLy8gcmV0dXJuIG87CglmcmFtZV9kaWcgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgIm9iamVjdFJlZigpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29iamVjdFJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gb2JqZWN0UmVmKCkodWludDY0KQoqYWJpX3JvdXRlX29iamVjdFJlZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG9iamVjdFJlZigpKHVpbnQ2NCkKCWNhbGxzdWIgb2JqZWN0UmVmCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIG9iamVjdFJlZigpOiB7IGZvbzogdWludDY0IH0Kb2JqZWN0UmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5ODYKCS8vIG86IHsgZm9vOiB1aW50NjQgfSA9IHsgZm9vOiAxIH0KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWZyYW1lX2J1cnkgMCAvLyBvOiB7IGZvbzogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTkwCgkvLyByLmZvbyA9IDIKCWZyYW1lX2RpZyAwIC8vIG86IHsgZm9vOiB1aW50NjQgfQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMgoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIHI6IHsgZm9vOiB1aW50NjQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5OTIKCS8vIHJldHVybiBvOwoJZnJhbWVfZGlnIDAgLy8gbzogeyBmb286IHVpbnQ2NCB9CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg1Yzc1YWNhIC8vIG1ldGhvZCAib2JqZWN0UmVmKCkodWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfb2JqZWN0UmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEQAAAAAAAAAAAAAADYAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAIAAAAAAAAAAGMAIsAgAgAAAAAAAAAAlwAjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABIXHWso2GgCOAf+wAA==", + "approval": "CjEYFIEGCzEZCI0MAEYAAAAAAAAAAAAAADgAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACACAAAAAAAAAABjACLAIAIAAAAAAAAAAJcAIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEhcdayjYaAI4B/64A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal index 4d7509b01..f0d54036a 100644 --- a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal +++ b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // opcodeParamFromObject()address *abi_route_opcodeParamFromObject: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute opcodeParamFromObject()address callsub opcodeParamFromObject concat log - int 1 + pushint 1 return // opcodeParamFromObject(): Address @@ -39,7 +39,7 @@ opcodeParamFromObject: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1067 // a: { myApp: AppID } = { myApp: this.app } @@ -56,11 +56,11 @@ opcodeParamFromObject: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -68,7 +68,7 @@ opcodeParamFromObject: err *call_NoOp: - method "opcodeParamFromObject()address" + pushbytes 0x79f70333 // method "opcodeParamFromObject()address" txna ApplicationArgs 0 match *abi_route_opcodeParamFromObject diff --git a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json index f01038d5b..facf0bb3c 100644 --- a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json +++ b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MKKmFiaV9yb3V0ZV9vcGNvZGVQYXJhbUZyb21PYmplY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCgljYWxsc3ViIG9wY29kZVBhcmFtRnJvbU9iamVjdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG9wY29kZVBhcmFtRnJvbU9iamVjdCgpOiBBZGRyZXNzCm9wY29kZVBhcmFtRnJvbU9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjcKCS8vIGE6IHsgbXlBcHA6IEFwcElEIH0gPSB7IG15QXBwOiB0aGlzLmFwcCB9Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglmcmFtZV9idXJ5IDAgLy8gYTogeyBteUFwcDogQXBwSUQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDY5CgkvLyByZXR1cm4gdGhpcy5hcHAuYWRkcmVzczsKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wY29kZVBhcmFtRnJvbU9iamVjdAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCiphYmlfcm91dGVfb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCgljYWxsc3ViIG9wY29kZVBhcmFtRnJvbU9iamVjdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBvcGNvZGVQYXJhbUZyb21PYmplY3QoKTogQWRkcmVzcwpvcGNvZGVQYXJhbUZyb21PYmplY3Q6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjcKCS8vIGE6IHsgbXlBcHA6IEFwcElEIH0gPSB7IG15QXBwOiB0aGlzLmFwcCB9Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglmcmFtZV9idXJ5IDAgLy8gYTogeyBteUFwcDogQXBwSUQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDY5CgkvLyByZXR1cm4gdGhpcy5hcHAuYWRkcmVzczsKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDc5ZjcwMzMzIC8vIG1ldGhvZCAib3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcGNvZGVQYXJhbUZyb21PYmplY3QKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc56_draft.json b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc56_draft.json index d21d3e4d3..58ea75de8 100644 --- a/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc56_draft.json @@ -61,316 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1065, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1065, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1065, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1065, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1065, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1065, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1065, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1065, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1065, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1066, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1066, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1066, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1066, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1066, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1066, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1066, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 1066, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 1067, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 47, - "source": 1067, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 1067, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 52, - "source": 1069, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 55, - "source": 1066, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 56, - "source": 1066, - "pc": [ - 68 - ] - }, - { - "teal": 59, - "source": 1065, - "pc": [ - 69 - ] - }, - { - "teal": 60, - "source": 1065, - "pc": [ - 70 - ] - }, - { - "teal": 63, - "source": 1065, - "pc": [ - 71, - 72, - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 64, - "source": 1065, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 65, - "source": 1065, - "pc": [ - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 68, - "source": 1065, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 84 - ] - }, - { - "teal": 71, - "source": 1065, - "pc": [ - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 72, - "source": 1065, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 73, - "source": 1065, - "pc": [ - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 76, - "source": 1065, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 98 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 83 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 97 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MKKmFiaV9yb3V0ZV9vcGNvZGVQYXJhbUZyb21PYmplY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCgljYWxsc3ViIG9wY29kZVBhcmFtRnJvbU9iamVjdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG9wY29kZVBhcmFtRnJvbU9iamVjdCgpOiBBZGRyZXNzCm9wY29kZVBhcmFtRnJvbU9iamVjdDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjcKCS8vIGE6IHsgbXlBcHA6IEFwcElEIH0gPSB7IG15QXBwOiB0aGlzLmFwcCB9Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglmcmFtZV9idXJ5IDAgLy8gYTogeyBteUFwcDogQXBwSUQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDY5CgkvLyByZXR1cm4gdGhpcy5hcHAuYWRkcmVzczsKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJvcGNvZGVQYXJhbUZyb21PYmplY3QoKWFkZHJlc3MiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wY29kZVBhcmFtRnJvbU9iamVjdAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCiphYmlfcm91dGVfb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgb3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzCgljYWxsc3ViIG9wY29kZVBhcmFtRnJvbU9iamVjdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBvcGNvZGVQYXJhbUZyb21PYmplY3QoKTogQWRkcmVzcwpvcGNvZGVQYXJhbUZyb21PYmplY3Q6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjcKCS8vIGE6IHsgbXlBcHA6IEFwcElEIH0gPSB7IG15QXBwOiB0aGlzLmFwcCB9Cgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglmcmFtZV9idXJ5IDAgLy8gYTogeyBteUFwcDogQXBwSUQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDY5CgkvLyByZXR1cm4gdGhpcy5hcHAuYWRkcmVzczsKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDc5ZjcwMzMzIC8vIG1ldGhvZCAib3Bjb2RlUGFyYW1Gcm9tT2JqZWN0KClhZGRyZXNzIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcGNvZGVQYXJhbUZyb21PYmplY3QKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAC4AAAAAAAAAAAAAACAAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAADYyABaMADIKjACJIkOABLhEezY2GgCOAf/xAIAEefcDMzYaAI4B/8YA", + "approval": "CjEYFIEGCzEZCI0MADAAAAAAAAAAAAAAACIAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgAA2MgAWjAAyCowAiYEBQ4AEuER7NjYaAI4B//AAgAR59wMzNhoAjgH/xAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal b/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal index 5e3998779..74754e778 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // partialStaticArray()uint16[3] *abi_route_partialStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute partialStaticArray()uint16[3] callsub partialStaticArray concat log - int 1 + pushint 1 return // partialStaticArray(): StaticArray @@ -39,11 +39,11 @@ partialStaticArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:850 // a: StaticArray = [1] - byte 0x000100000000 + pushbytes 0x000100000000 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:852 @@ -55,11 +55,11 @@ partialStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -67,7 +67,7 @@ partialStaticArray: err *call_NoOp: - method "partialStaticArray()uint16[3]" + pushbytes 0xd294dc14 // method "partialStaticArray()uint16[3]" txna ApplicationArgs 0 match *abi_route_partialStaticArray diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json b/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json index ebbc4fe60..314aef48b 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoqYWJpX3JvdXRlX3BhcnRpYWxTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTAKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbMV0KCWJ5dGUgMHgwMDAxMDAwMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg1MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10KKmFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcGFydGlhbFN0YXRpY0FycmF5KCk6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KcGFydGlhbFN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTAKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbMV0KCXB1c2hieXRlcyAweDAwMDEwMDAwMDAwMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODUyCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDI5NGRjMTQgLy8gbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestPartialStaticArray.arc56_draft.json index efca55c30..1c8d70553 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.arc56_draft.json @@ -61,314 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 848, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 848, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 848, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 848, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 848, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 848, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 848, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 848, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 848, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 849, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 849, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 849, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 849, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 849, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 849, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 849, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 849, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 850, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 47, - "source": 850, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 51, - "source": 852, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 54, - "source": 849, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 55, - "source": 849, - "pc": [ - 72 - ] - }, - { - "teal": 58, - "source": 848, - "pc": [ - 73 - ] - }, - { - "teal": 59, - "source": 848, - "pc": [ - 74 - ] - }, - { - "teal": 62, - "source": 848, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 63, - "source": 848, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 64, - "source": 848, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 67, - "source": 848, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 70, - "source": 848, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 71, - "source": 848, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 72, - "source": 848, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 75, - "source": 848, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoqYWJpX3JvdXRlX3BhcnRpYWxTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTAKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbMV0KCWJ5dGUgMHgwMDAxMDAwMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg1MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10KKmFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcGFydGlhbFN0YXRpY0FycmF5KCk6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KcGFydGlhbFN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTAKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4gPSBbMV0KCXB1c2hieXRlcyAweDAwMDEwMDAwMDAwMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODUyCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQxNiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZDI5NGRjMTQgLy8gbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAGAAEAAAAAjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABNKU3BQ2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACABgABAAAAAIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAE0pTcFDYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal index d77c3b5bc..433d0b1eb 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal +++ b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // plusEqualsArrayValue()uint64[2] *abi_route_plusEqualsArrayValue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute plusEqualsArrayValue()uint64[2] callsub plusEqualsArrayValue concat log - int 1 + pushint 1 return // plusEqualsArrayValue(): StaticArray @@ -39,21 +39,21 @@ plusEqualsArrayValue: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1233 // a: StaticArray = [1, 2] - byte 0x00000000000000010000000000000002 + pushbytes 0x00000000000000010000000000000002 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1234 // a[1] += 1 frame_dig 0 // a: StaticArray - int 8 + pushint 8 frame_dig 0 // a: StaticArray extract 8 8 btoi - int 1 + pushint 1 + itob replace3 @@ -68,11 +68,11 @@ plusEqualsArrayValue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -80,7 +80,7 @@ plusEqualsArrayValue: err *call_NoOp: - method "plusEqualsArrayValue()uint64[2]" + pushbytes 0xb5ef79bd // method "plusEqualsArrayValue()uint64[2]" txna ApplicationArgs 0 match *abi_route_plusEqualsArrayValue diff --git a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json index 88af5f7c9..36512e25a 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdCiphYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoJY2FsbHN1YiBwbHVzRXF1YWxzQXJyYXlWYWx1ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNBcnJheVZhbHVlKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KcGx1c0VxdWFsc0FycmF5VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjMzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+ID0gWzEsIDJdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMzQKCS8vIGFbMV0gKz0gMQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoJaW50IDgKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMzUKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoqYWJpX3JvdXRlX3BsdXNFcXVhbHNBcnJheVZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoJY2FsbHN1YiBwbHVzRXF1YWxzQXJyYXlWYWx1ZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CnBsdXNFcXVhbHNBcnJheVZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjMzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+ID0gWzEsIDJdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIzNAoJLy8gYVsxXSArPSAxCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CglwdXNoaW50IDgKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCWV4dHJhY3QgOCA4CglidG9pCglwdXNoaW50IDEKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjM1CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YjVlZjc5YmQgLy8gbWV0aG9kICJwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wbHVzRXF1YWxzQXJyYXlWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc56_draft.json b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc56_draft.json index 71e9a7f9e..f4f1cc988 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc56_draft.json @@ -61,400 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1231, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1231, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1231, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1231, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1231, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1231, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1231, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1231, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1231, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1232, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1232, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1232, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1232, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1232, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1232, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1232, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 1232, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 1233, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 47, - "source": 1233, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 51, - "source": 1234, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 52, - "source": 1234, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 53, - "source": 1234, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 54, - "source": 1234, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 55, - "source": 1234, - "pc": [ - 87 - ] - }, - { - "teal": 56, - "source": 1234, - "pc": [ - 88 - ] - }, - { - "teal": 57, - "source": 1234, - "pc": [ - 89 - ] - }, - { - "teal": 58, - "source": 1234, - "pc": [ - 90 - ] - }, - { - "teal": 59, - "source": 1234, - "pc": [ - 91 - ] - }, - { - "teal": 60, - "source": 1234, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 64, - "source": 1235, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 67, - "source": 1232, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 68, - "source": 1232, - "pc": [ - 98 - ] - }, - { - "teal": 71, - "source": 1231, - "pc": [ - 99 - ] - }, - { - "teal": 72, - "source": 1231, - "pc": [ - 100 - ] - }, - { - "teal": 75, - "source": 1231, - "pc": [ - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 76, - "source": 1231, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 77, - "source": 1231, - "pc": [ - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 80, - "source": 1231, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 114 - ] - }, - { - "teal": 83, - "source": 1231, - "pc": [ - 115, - 116, - 117, - 118, - 119, - 120 - ] - }, - { - "teal": 84, - "source": 1231, - "pc": [ - 121, - 122, - 123 - ] - }, - { - "teal": 85, - "source": 1231, - "pc": [ - 124, - 125, - 126, - 127 - ] - }, - { - "teal": 88, - "source": 1231, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 128 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdCiphYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoJY2FsbHN1YiBwbHVzRXF1YWxzQXJyYXlWYWx1ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNBcnJheVZhbHVlKCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KcGx1c0VxdWFsc0FycmF5VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjMzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+ID0gWzEsIDJdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMzQKCS8vIGFbMV0gKz0gMQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoJaW50IDgKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMzUKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc0FycmF5VmFsdWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoqYWJpX3JvdXRlX3BsdXNFcXVhbHNBcnJheVZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc0FycmF5VmFsdWUoKXVpbnQ2NFsyXQoJY2FsbHN1YiBwbHVzRXF1YWxzQXJyYXlWYWx1ZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CnBsdXNFcXVhbHNBcnJheVZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjMzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+ID0gWzEsIDJdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIzNAoJLy8gYVsxXSArPSAxCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDI+CglwdXNoaW50IDgKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCWV4dHJhY3QgOCA4CglidG9pCglwdXNoaW50IDEKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjM1CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YjVlZjc5YmQgLy8gbWV0aG9kICJwbHVzRXF1YWxzQXJyYXlWYWx1ZSgpdWludDY0WzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wbHVzRXF1YWxzQXJyYXlWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEwAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAQAAAAAAAAAAEAAAAAAAAAAowAiwCBCIsAVwgIFyIIFl2MAIsAjACJIkOABLhEezY2GgCOAf/xAIAEte95vTYaAI4B/6gA", + "approval": "CjEYFIEGCzEZCI0MAE8AAAAAAAAAAAAAAEEAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAEAAAAAAAAAABAAAAAAAAAAKMAIsAgQiLAFcICBeBAQgWXYwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEte95vTYaAI4B/6UA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal index ff04029f8..3548ad97d 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // plusEqualsObjValue()(uint64,uint64) *abi_route_plusEqualsObjValue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute plusEqualsObjValue()(uint64,uint64) callsub plusEqualsObjValue concat log - int 1 + pushint 1 return // plusEqualsObjValue(): { foo: uint64; bar: uint64 } @@ -39,21 +39,21 @@ plusEqualsObjValue: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1241 // a: { foo: uint64; bar: uint64 } = { foo: 3, bar: 4 } - byte 0x00000000000000030000000000000004 + pushbytes 0x00000000000000030000000000000004 frame_bury 0 // a: { foo: uint64; bar: uint64 } // tests/contracts/abi.algo.ts:1242 // a.bar += 1 frame_dig 0 // a: { foo: uint64; bar: uint64 } - int 8 // headOffset + pushint 8 // headOffset frame_dig 0 // a: { foo: uint64; bar: uint64 } extract 8 8 btoi - int 1 + pushint 1 + itob replace3 @@ -68,11 +68,11 @@ plusEqualsObjValue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -80,7 +80,7 @@ plusEqualsObjValue: err *call_NoOp: - method "plusEqualsObjValue()(uint64,uint64)" + pushbytes 0x29f86f8c // method "plusEqualsObjValue()(uint64,uint64)" txna ApplicationArgs 0 match *abi_route_plusEqualsObjValue diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json index a8ae06f47..08172ef97 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQpwbHVzRXF1YWxzT2JqVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQxCgkvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9ID0geyBmb286IDMsIGJhcjogNCB9CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDIKCS8vIGEuYmFyICs9IDEKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWludCA4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlKCkodWludDY0LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcGx1c0VxdWFsc09ialZhbHVlKCkodWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWUKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc09ialZhbHVlKCk6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KcGx1c0VxdWFsc09ialZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQxCgkvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9ID0geyBmb286IDMsIGJhcjogNCB9CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0MgoJLy8gYS5iYXIgKz0gMQoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoJcHVzaGludCA4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWV4dHJhY3QgOCA4CglidG9pCglwdXNoaW50IDEKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MjlmODZmOGMgLy8gbWV0aG9kICJwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc56_draft.json b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc56_draft.json index f9fd97530..9fdf94a83 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc56_draft.json @@ -73,400 +73,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1239, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1239, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1239, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1239, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1239, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1239, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1239, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1239, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1239, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1240, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1240, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1240, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1240, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1240, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1240, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1240, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 1240, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 1241, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 47, - "source": 1241, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 51, - "source": 1242, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 52, - "source": 1242, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 53, - "source": 1242, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 54, - "source": 1242, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 55, - "source": 1242, - "pc": [ - 87 - ] - }, - { - "teal": 56, - "source": 1242, - "pc": [ - 88 - ] - }, - { - "teal": 57, - "source": 1242, - "pc": [ - 89 - ] - }, - { - "teal": 58, - "source": 1242, - "pc": [ - 90 - ] - }, - { - "teal": 59, - "source": 1242, - "pc": [ - 91 - ] - }, - { - "teal": 60, - "source": 1242, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 64, - "source": 1243, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 67, - "source": 1240, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 68, - "source": 1240, - "pc": [ - 98 - ] - }, - { - "teal": 71, - "source": 1239, - "pc": [ - 99 - ] - }, - { - "teal": 72, - "source": 1239, - "pc": [ - 100 - ] - }, - { - "teal": 75, - "source": 1239, - "pc": [ - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 76, - "source": 1239, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 77, - "source": 1239, - "pc": [ - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 80, - "source": 1239, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 114 - ] - }, - { - "teal": 83, - "source": 1239, - "pc": [ - 115, - 116, - 117, - 118, - 119, - 120 - ] - }, - { - "teal": 84, - "source": 1239, - "pc": [ - 121, - 122, - 123 - ] - }, - { - "teal": 85, - "source": 1239, - "pc": [ - 124, - 125, - 126, - 127 - ] - }, - { - "teal": 88, - "source": 1239, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 128 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzT2JqVmFsdWUoKTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQpwbHVzRXF1YWxzT2JqVmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQxCgkvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9ID0geyBmb286IDMsIGJhcjogNCB9CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDIKCS8vIGEuYmFyICs9IDEKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWludCA4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWV4dHJhY3QgOCA4CglidG9pCglpbnQgMQoJKwoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNDMKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlKCkodWludDY0LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3BsdXNFcXVhbHNPYmpWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcGx1c0VxdWFsc09ialZhbHVlKCkodWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWUKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc09ialZhbHVlKCk6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KcGx1c0VxdWFsc09ialZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQxCgkvLyBhOiB7IGZvbzogdWludDY0OyBiYXI6IHVpbnQ2NCB9ID0geyBmb286IDMsIGJhcjogNCB9CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0MgoJLy8gYS5iYXIgKz0gMQoJZnJhbWVfZGlnIDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoJcHVzaGludCA4IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCWV4dHJhY3QgOCA4CglidG9pCglwdXNoaW50IDEKCSsKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjQzCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MjlmODZmOGMgLy8gbWV0aG9kICJwbHVzRXF1YWxzT2JqVmFsdWUoKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEwAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAQAAAAAAAAAAMAAAAAAAAABIwAiwCBCIsAVwgIFyIIFl2MAIsAjACJIkOABLhEezY2GgCOAf/xAIAEKfhvjDYaAI4B/6gA", + "approval": "CjEYFIEGCzEZCI0MAE8AAAAAAAAAAAAAAEEAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAEAAAAAAAAAADAAAAAAAAAASMAIsAgQiLAFcICBeBAQgWXYwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEKfhvjDYaAI4B/6UA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal index 14a023109..459f7b331 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x624d6170 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // plusEqualsObjValueInBox()(uint64,uint64) *abi_route_plusEqualsObjValueInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute plusEqualsObjValueInBox()(uint64,uint64) callsub plusEqualsObjValueInBox concat log - int 1 + pushint 1 return // plusEqualsObjValueInBox(): { foo: uint64; bar: uint64 } @@ -41,18 +42,18 @@ plusEqualsObjValueInBox: // tests/contracts/abi.algo.ts:1251 // this.bMap('bMap').value = { foo: 3, bar: 4 } byte 0x624d6170 // "bMap" - byte 0x00000000000000030000000000000004 + pushbytes 0x00000000000000030000000000000004 box_put // tests/contracts/abi.algo.ts:1252 // this.bMap('bMap').value.bar += 1 - int 8 // headOffset + pushint 8 // headOffset byte 0x624d6170 // "bMap" - int 8 // headOffset - int 8 + pushint 8 // headOffset + pushint 8 box_extract btoi - int 1 + pushint 1 + itob byte 0x624d6170 // "bMap" @@ -69,11 +70,11 @@ plusEqualsObjValueInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +82,7 @@ plusEqualsObjValueInBox: err *call_NoOp: - method "plusEqualsObjValueInBox()(uint64,uint64)" + pushbytes 0x6619b511 // method "plusEqualsObjValueInBox()(uint64,uint64)" txna ApplicationArgs 0 match *abi_route_plusEqualsObjValueInBox diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json index e78f95837..046480bd3 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveCgpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCk6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KcGx1c0VxdWFsc09ialZhbHVlSW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogMywgYmFyOiA0IH0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUyCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5iYXIgKz0gMQoJaW50IDggLy8gaGVhZE9mZnNldAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJKwoJaXRvYgoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MwoJLy8gcmV0dXJuIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlOwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRkNjE3MAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCkodWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWVJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgcGx1c0VxdWFsc09ialZhbHVlSW5Cb3gKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQpwbHVzRXF1YWxzT2JqVmFsdWVJbkJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUxCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IHsgZm9vOiAzLCBiYXI6IDQgfQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MgoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuYmFyICs9IDEKCXB1c2hpbnQgOCAvLyBoZWFkT2Zmc2V0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglwdXNoaW50IDggLy8gaGVhZE9mZnNldAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJcHVzaGludCAxCgkrCglpdG9iCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUzCgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWU7CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY2MTliNTExIC8vIG1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc56_draft.json index 2fc38e303..de2ca0bea 100644 --- a/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc56_draft.json @@ -88,421 +88,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1247, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - }, - { - "teal": 13, - "source": 1247, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 14, - "source": 1247, - "pc": [ - 14 - ] - }, - { - "teal": 15, - "source": 1247, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 16, - "source": 1247, - "pc": [ - 17 - ] - }, - { - "teal": 17, - "source": 1247, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 18, - "source": 1247, - "pc": [ - 20 - ] - }, - { - "teal": 19, - "source": 1247, - "pc": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 23, - "source": 1247, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 47 - ] - }, - { - "teal": 28, - "source": 1250, - "pc": [ - 48, - 49, - 50, - 51, - 52, - 53 - ] - }, - { - "teal": 31, - "source": 1250, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 32, - "source": 1250, - "pc": [ - 57 - ] - }, - { - "teal": 33, - "source": 1250, - "pc": [ - 58 - ] - }, - { - "teal": 34, - "source": 1250, - "pc": [ - 59 - ] - }, - { - "teal": 35, - "source": 1250, - "pc": [ - 60 - ] - }, - { - "teal": 39, - "source": 1250, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 43, - "source": 1251, - "pc": [ - 64 - ] - }, - { - "teal": 44, - "source": 1251, - "pc": [ - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 45, - "source": 1251, - "pc": [ - 83 - ] - }, - { - "teal": 49, - "source": 1252, - "pc": [ - 84 - ] - }, - { - "teal": 50, - "source": 1252, - "pc": [ - 85 - ] - }, - { - "teal": 51, - "source": 1252, - "pc": [ - 86 - ] - }, - { - "teal": 52, - "source": 1252, - "pc": [ - 87 - ] - }, - { - "teal": 53, - "source": 1252, - "pc": [ - 88 - ] - }, - { - "teal": 54, - "source": 1252, - "pc": [ - 89 - ] - }, - { - "teal": 55, - "source": 1252, - "pc": [ - 90 - ] - }, - { - "teal": 56, - "source": 1252, - "pc": [ - 91 - ] - }, - { - "teal": 57, - "source": 1252, - "pc": [ - 92 - ] - }, - { - "teal": 58, - "source": 1252, - "pc": [ - 93 - ] - }, - { - "teal": 59, - "source": 1252, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 60, - "source": 1252, - "pc": [ - 96 - ] - }, - { - "teal": 64, - "source": 1253, - "pc": [ - 97 - ] - }, - { - "teal": 65, - "source": 1253, - "pc": [ - 98 - ] - }, - { - "teal": 68, - "source": 1253, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 99 - ] - }, - { - "teal": 69, - "source": 1250, - "pc": [ - 100 - ] - }, - { - "teal": 72, - "source": 1247, - "pc": [ - 101 - ] - }, - { - "teal": 73, - "source": 1247, - "pc": [ - 102 - ] - }, - { - "teal": 76, - "source": 1247, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 77, - "source": 1247, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 78, - "source": 1247, - "pc": [ - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 81, - "source": 1247, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 116 - ] - }, - { - "teal": 84, - "source": 1247, - "pc": [ - 117, - 118, - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 85, - "source": 1247, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 86, - "source": 1247, - "pc": [ - 126, - 127, - 128, - 129 - ] - }, - { - "teal": 89, - "source": 1247, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 130 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 43 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 120 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 138 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 152 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveCgpKHVpbnQ2NCx1aW50NjQpCiphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KQoJY2FsbHN1YiBwbHVzRXF1YWxzT2JqVmFsdWVJbkJveAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCk6IHsgZm9vOiB1aW50NjQ7IGJhcjogdWludDY0IH0KcGx1c0VxdWFsc09ialZhbHVlSW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogMywgYmFyOiA0IH0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUyCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5iYXIgKz0gMQoJaW50IDggLy8gaGVhZE9mZnNldAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJKwoJaXRvYgoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MwoJLy8gcmV0dXJuIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlOwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRkNjE3MAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCkodWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzT2JqVmFsdWVJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHBsdXNFcXVhbHNPYmpWYWx1ZUluQm94KCkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgcGx1c0VxdWFsc09ialZhbHVlSW5Cb3gKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKTogeyBmb286IHVpbnQ2NDsgYmFyOiB1aW50NjQgfQpwbHVzRXF1YWxzT2JqVmFsdWVJbkJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUxCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IHsgZm9vOiAzLCBiYXI6IDQgfQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI1MgoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuYmFyICs9IDEKCXB1c2hpbnQgOCAvLyBoZWFkT2Zmc2V0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglwdXNoaW50IDggLy8gaGVhZE9mZnNldAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJcHVzaGludCAxCgkrCglpdG9iCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCgljb3ZlciAyCglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjUzCgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWU7CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY2MTliNTExIC8vIG1ldGhvZCAicGx1c0VxdWFsc09ialZhbHVlSW5Cb3goKSh1aW50NjQsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGx1c0VxdWFsc09ialZhbHVlSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQgmAQRiTWFwMRgUgQYLMRkIjQwARgAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAASiAEAAAAAAAAAADAAAAAAAAAAS/IygjI7oXIggWKE4Cuyi+RIkiQ4AEuER7NjYaAI4B//EAgARmGbURNhoAjgH/rgA=", + "approval": "CiYBBGJNYXAxGBSBBgsxGQiNDABgAAAAAAAAAAAAAABSAAAAAAAAAAAAAACABBUffHWIAAVQsIEBQ4oAAYAEYk1hcIAQAAAAAAAAAAMAAAAAAAAABL+BCIAEYk1hcIEIgQi6F4EBCBaABGJNYXBOAruABGJNYXC+RImBAUOABLhEezY2GgCOAf/wAIAEZhm1ETYaAI4B/5QA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestPostBoolTupleOffset.approval.teal b/tests/contracts/artifacts/ABITestPostBoolTupleOffset.approval.teal index 0839684d3..43e978143 100644 --- a/tests/contracts/artifacts/ABITestPostBoolTupleOffset.approval.teal +++ b/tests/contracts/artifacts/ABITestPostBoolTupleOffset.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x0000000000000000 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // postBoolTupleOffset()(bool,uint64,uint64) *abi_route_postBoolTupleOffset: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute postBoolTupleOffset()(bool,uint64,uint64) callsub postBoolTupleOffset concat log - int 1 + pushint 1 return // postBoolTupleOffset(): T9 @@ -39,13 +40,13 @@ postBoolTupleOffset: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1619 // retVal: T9 = { a: false, b: 0, c: 0 } - byte 0x00 - int 0 - dup + pushbytes 0x00 + pushint 0 + pushint 0 setbit byte 0x0000000000000000 concat @@ -58,8 +59,8 @@ postBoolTupleOffset: frame_dig 0 // retVal: T9 store 255 // full array load 255 // full array - int 0 - int 1 + pushint 0 + pushint 1 setbit frame_bury 0 // retVal: T9 @@ -68,7 +69,7 @@ postBoolTupleOffset: frame_dig 0 // retVal: T9 store 255 // full array load 255 // full array - byte 0x0000000000000001 + pushbytes 0x0000000000000001 replace2 1 frame_bury 0 // retVal: T9 @@ -77,7 +78,7 @@ postBoolTupleOffset: frame_dig 0 // retVal: T9 store 255 // full array load 255 // full array - byte 0x0000000000000002 + pushbytes 0x0000000000000002 replace2 9 frame_bury 0 // retVal: T9 @@ -90,11 +91,11 @@ postBoolTupleOffset: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -102,7 +103,7 @@ postBoolTupleOffset: err *call_NoOp: - method "postBoolTupleOffset()(bool,uint64,uint64)" + pushbytes 0xe8e4cfc5 // method "postBoolTupleOffset()(bool,uint64,uint64)" txna ApplicationArgs 0 match *abi_route_postBoolTupleOffset diff --git a/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc32.json b/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc32.json index deebedb0a..2c7b209d6 100644 --- a/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc32.json +++ b/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwb3N0Qm9vbFR1cGxlT2Zmc2V0KCkoYm9vbCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX3Bvc3RCb29sVHVwbGVPZmZzZXQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgcG9zdEJvb2xUdXBsZU9mZnNldAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBvc3RCb29sVHVwbGVPZmZzZXQoKTogVDkKcG9zdEJvb2xUdXBsZU9mZnNldDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MTkKCS8vIHJldFZhbDogVDkgPSB7IGE6IGZhbHNlLCBiOiAwLCBjOiAwIH0KCWJ5dGUgMHgwMAoJaW50IDAKCWR1cAoJc2V0Yml0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIxCgkvLyByZXRWYWwuYSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIHJldFZhbDogVDkKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYyMgoJLy8gcmV0VmFsLmIgPSAxCglmcmFtZV9kaWcgMCAvLyByZXRWYWw6IFQ5CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCXJlcGxhY2UyIDEKCWZyYW1lX2J1cnkgMCAvLyByZXRWYWw6IFQ5CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MjMKCS8vIHJldFZhbC5jID0gMgoJZnJhbWVfZGlnIDAgLy8gcmV0VmFsOiBUOQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiA5CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjI1CgkvLyByZXR1cm4gcmV0VmFsOwoJZnJhbWVfZGlnIDAgLy8gcmV0VmFsOiBUOQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Bvc3RCb29sVHVwbGVPZmZzZXQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9wb3N0Qm9vbFR1cGxlT2Zmc2V0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgcG9zdEJvb2xUdXBsZU9mZnNldAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBwb3N0Qm9vbFR1cGxlT2Zmc2V0KCk6IFQ5CnBvc3RCb29sVHVwbGVPZmZzZXQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MTkKCS8vIHJldFZhbDogVDkgPSB7IGE6IGZhbHNlLCBiOiAwLCBjOiAwIH0KCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXB1c2hpbnQgMAoJc2V0Yml0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIxCgkvLyByZXRWYWwuYSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCXB1c2hpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIyCgkvLyByZXRWYWwuYiA9IDEKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxCglyZXBsYWNlMiAxCglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIzCgkvLyByZXRWYWwuYyA9IDIKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiA5CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjI1CgkvLyByZXR1cm4gcmV0VmFsOwoJZnJhbWVfZGlnIDAgLy8gcmV0VmFsOiBUOQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlOGU0Y2ZjNSAvLyBtZXRob2QgInBvc3RCb29sVHVwbGVPZmZzZXQoKShib29sLHVpbnQ2NCx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wb3N0Qm9vbFR1cGxlT2Zmc2V0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc56_draft.json b/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc56_draft.json index b7c93e513..5f274a2bf 100644 --- a/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc56_draft.json @@ -77,535 +77,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1617, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15 - ] - }, - { - "teal": 13, - "source": 1617, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 14, - "source": 1617, - "pc": [ - 18 - ] - }, - { - "teal": 15, - "source": 1617, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 16, - "source": 1617, - "pc": [ - 21 - ] - }, - { - "teal": 17, - "source": 1617, - "pc": [ - 22, - 23 - ] - }, - { - "teal": 18, - "source": 1617, - "pc": [ - 24 - ] - }, - { - "teal": 19, - "source": 1617, - "pc": [ - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 23, - "source": 1617, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 51 - ] - }, - { - "teal": 28, - "source": 1618, - "pc": [ - 52, - 53, - 54, - 55, - 56, - 57 - ] - }, - { - "teal": 31, - "source": 1618, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 32, - "source": 1618, - "pc": [ - 61 - ] - }, - { - "teal": 33, - "source": 1618, - "pc": [ - 62 - ] - }, - { - "teal": 34, - "source": 1618, - "pc": [ - 63 - ] - }, - { - "teal": 35, - "source": 1618, - "pc": [ - 64 - ] - }, - { - "teal": 39, - "source": 1618, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 42, - "source": 1618, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 46, - "source": 1619, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 47, - "source": 1619, - "pc": [ - 73 - ] - }, - { - "teal": 48, - "source": 1619, - "pc": [ - 74 - ] - }, - { - "teal": 49, - "source": 1619, - "pc": [ - 75 - ] - }, - { - "teal": 50, - "source": 1619, - "pc": [ - 76 - ] - }, - { - "teal": 51, - "source": 1619, - "pc": [ - 77 - ] - }, - { - "teal": 52, - "source": 1619, - "pc": [ - 78 - ] - }, - { - "teal": 53, - "source": 1619, - "pc": [ - 79 - ] - }, - { - "teal": 54, - "source": 1619, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 58, - "source": 1621, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 59, - "source": 1621, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 60, - "source": 1621, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 61, - "source": 1621, - "pc": [ - 88 - ] - }, - { - "teal": 62, - "source": 1621, - "pc": [ - 89 - ] - }, - { - "teal": 63, - "source": 1621, - "pc": [ - 90 - ] - }, - { - "teal": 64, - "source": 1621, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 68, - "source": 1622, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 69, - "source": 1622, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 70, - "source": 1622, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 71, - "source": 1622, - "pc": [ - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 72, - "source": 1622, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 73, - "source": 1622, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 77, - "source": 1623, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 78, - "source": 1623, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 79, - "source": 1623, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 80, - "source": 1623, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 81, - "source": 1623, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 82, - "source": 1623, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 86, - "source": 1625, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 89, - "source": 1618, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 90, - "source": 1618, - "pc": [ - 137 - ] - }, - { - "teal": 93, - "source": 1617, - "pc": [ - 138 - ] - }, - { - "teal": 94, - "source": 1617, - "pc": [ - 139 - ] - }, - { - "teal": 97, - "source": 1617, - "pc": [ - 140, - 141, - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 98, - "source": 1617, - "pc": [ - 146, - 147, - 148 - ] - }, - { - "teal": 99, - "source": 1617, - "pc": [ - 149, - 150, - 151, - 152 - ] - }, - { - "teal": 102, - "source": 1617, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 153 - ] - }, - { - "teal": 105, - "source": 1617, - "pc": [ - 154, - 155, - 156, - 157, - 158, - 159 - ] - }, - { - "teal": 106, - "source": 1617, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 107, - "source": 1617, - "pc": [ - 163, - 164, - 165, - 166 - ] - }, - { - "teal": 110, - "source": 1617, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 167 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 47 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 173 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 187 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwb3N0Qm9vbFR1cGxlT2Zmc2V0KCkoYm9vbCx1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX3Bvc3RCb29sVHVwbGVPZmZzZXQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgcG9zdEJvb2xUdXBsZU9mZnNldAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBvc3RCb29sVHVwbGVPZmZzZXQoKTogVDkKcG9zdEJvb2xUdXBsZU9mZnNldDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MTkKCS8vIHJldFZhbDogVDkgPSB7IGE6IGZhbHNlLCBiOiAwLCBjOiAwIH0KCWJ5dGUgMHgwMAoJaW50IDAKCWR1cAoJc2V0Yml0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIxCgkvLyByZXRWYWwuYSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIHJldFZhbDogVDkKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTYyMgoJLy8gcmV0VmFsLmIgPSAxCglmcmFtZV9kaWcgMCAvLyByZXRWYWw6IFQ5CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEKCXJlcGxhY2UyIDEKCWZyYW1lX2J1cnkgMCAvLyByZXRWYWw6IFQ5CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MjMKCS8vIHJldFZhbC5jID0gMgoJZnJhbWVfZGlnIDAgLy8gcmV0VmFsOiBUOQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiA5CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjI1CgkvLyByZXR1cm4gcmV0VmFsOwoJZnJhbWVfZGlnIDAgLy8gcmV0VmFsOiBUOQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Bvc3RCb29sVHVwbGVPZmZzZXQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkKKmFiaV9yb3V0ZV9wb3N0Qm9vbFR1cGxlT2Zmc2V0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcG9zdEJvb2xUdXBsZU9mZnNldCgpKGJvb2wsdWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgcG9zdEJvb2xUdXBsZU9mZnNldAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBwb3N0Qm9vbFR1cGxlT2Zmc2V0KCk6IFQ5CnBvc3RCb29sVHVwbGVPZmZzZXQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE2MTkKCS8vIHJldFZhbDogVDkgPSB7IGE6IGZhbHNlLCBiOiAwLCBjOiAwIH0KCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXB1c2hpbnQgMAoJc2V0Yml0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIxCgkvLyByZXRWYWwuYSA9IHRydWUKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCXB1c2hpbnQgMQoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIyCgkvLyByZXRWYWwuYiA9IDEKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxCglyZXBsYWNlMiAxCglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjIzCgkvLyByZXRWYWwuYyA9IDIKCWZyYW1lX2RpZyAwIC8vIHJldFZhbDogVDkKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAyCglyZXBsYWNlMiA5CglmcmFtZV9idXJ5IDAgLy8gcmV0VmFsOiBUOQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNjI1CgkvLyByZXR1cm4gcmV0VmFsOwoJZnJhbWVfZGlnIDAgLy8gcmV0VmFsOiBUOQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlOGU0Y2ZjNSAvLyBtZXRob2QgInBvc3RCb29sVHVwbGVPZmZzZXQoKShib29sLHVpbnQ2NCx1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wb3N0Qm9vbFR1cGxlT2Zmc2V0CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQAmAQgAAAAAAAAAADEYFIEGCzEZCI0MAGcAAAAAAAAAAAAAAFkAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIABACNJVChQKFCMAIsANf80/yMiVIwAiwA1/zT/gAgAAAAAAAAAAVwBjACLADX/NP+ACAAAAAAAAAACXAmMAIsAjACJIkOABLhEezY2GgCOAf/xAIAE6OTPxTYaAI4B/40A", + "approval": "CiYBCAAAAAAAAAAAMRgUgQYLMRkIjQwAfwAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAgAQVH3x1iAAFULCBAUOKAAGAAIABAIEAgQBUgAgAAAAAAAAAAFCACAAAAAAAAAAAUIwAiwA1/zT/gQCBAVSMAIsANf80/4AIAAAAAAAAAAFcAYwAiwA1/zT/gAgAAAAAAAAAAlwJjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgATo5M/FNhoAjgH/dQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestPushToArrayInBox.approval.teal b/tests/contracts/artifacts/ABITestPushToArrayInBox.approval.teal index 1cb5e1003..077ea512e 100644 --- a/tests/contracts/artifacts/ABITestPushToArrayInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestPushToArrayInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x624d6170 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // pushToArrayInBox()uint64[] *abi_route_pushToArrayInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute pushToArrayInBox()uint64[] callsub pushToArrayInBox dup len - int 8 + pushint 8 / itob extract 6 2 @@ -39,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // pushToArrayInBox(): AppID[] @@ -52,7 +53,7 @@ pushToArrayInBox: dup box_del pop - byte 0x000200000000000000010000000000000002 + pushbytes 0x000200000000000000010000000000000002 box_put // tests/contracts/abi.algo.ts:1556 @@ -63,7 +64,7 @@ pushToArrayInBox: // box value does not exist: this.bMap('bMap').value assert extract 2 0 - byte 0x0000000000000003 + pushbytes 0x0000000000000003 concat byte 0x624d6170 // "bMap" dup @@ -72,7 +73,7 @@ pushToArrayInBox: swap dup len - int 8 + pushint 8 / itob extract 6 2 @@ -88,7 +89,7 @@ pushToArrayInBox: // box value does not exist: this.bMap('bMap').value assert extract 2 0 - byte 0x0000000000000004 + pushbytes 0x0000000000000004 concat byte 0x624d6170 // "bMap" dup @@ -97,7 +98,7 @@ pushToArrayInBox: swap dup len - int 8 + pushint 8 / itob extract 6 2 @@ -116,11 +117,11 @@ pushToArrayInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -128,7 +129,7 @@ pushToArrayInBox: err *call_NoOp: - method "pushToArrayInBox()uint64[]" + pushbytes 0xafa07f62 // method "pushToArrayInBox()uint64[]" txna ApplicationArgs 0 match *abi_route_pushToArrayInBox diff --git a/tests/contracts/artifacts/ABITestPushToArrayInBox.arc32.json b/tests/contracts/artifacts/ABITestPushToArrayInBox.arc32.json index ed8253b96..602ec945d 100644 --- a/tests/contracts/artifacts/ABITestPushToArrayInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestPushToArrayInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdXNoVG9BcnJheUluQm94KCl1aW50NjRbXQoqYWJpX3JvdXRlX3B1c2hUb0FycmF5SW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcHVzaFRvQXJyYXlJbkJveCgpdWludDY0W10KCWNhbGxzdWIgcHVzaFRvQXJyYXlJbkJveAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVzaFRvQXJyYXlJbkJveCgpOiBBcHBJRFtdCnB1c2hUb0FycmF5SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBbQXBwSUQuZnJvbVVpbnQ2NCgxKSwgQXBwSUQuZnJvbVVpbnQ2NCgyKV0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NTYKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLnB1c2goQXBwSUQuZnJvbVVpbnQ2NCgzKSkKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMwoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NTcKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLnB1c2goQXBwSUQuZnJvbVVpbnQ2NCg0KSkKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NTkKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZTsKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwdXNoVG9BcnJheUluQm94KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcHVzaFRvQXJyYXlJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRkNjE3MAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHB1c2hUb0FycmF5SW5Cb3goKXVpbnQ2NFtdCiphYmlfcm91dGVfcHVzaFRvQXJyYXlJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHB1c2hUb0FycmF5SW5Cb3goKXVpbnQ2NFtdCgljYWxsc3ViIHB1c2hUb0FycmF5SW5Cb3gKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcHVzaFRvQXJyYXlJbkJveCgpOiBBcHBJRFtdCnB1c2hUb0FycmF5SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBbQXBwSUQuZnJvbVVpbnQ2NCgxKSwgQXBwSUQuZnJvbVVpbnQ2NCgyKV0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWR1cAoJYm94X2RlbAoJcG9wCglwdXNoYnl0ZXMgMHgwMDAyMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NgoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUucHVzaChBcHBJRC5mcm9tVWludDY0KDMpKQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMKCWNvbmNhdAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NwoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUucHVzaChBcHBJRC5mcm9tVWludDY0KDQpKQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDQKCWNvbmNhdAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1OQoJLy8gcmV0dXJuIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlOwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YWZhMDdmNjIgLy8gbWV0aG9kICJwdXNoVG9BcnJheUluQm94KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcHVzaFRvQXJyYXlJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPushToArrayInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestPushToArrayInBox.arc56_draft.json index 02858d79e..2bed489bb 100644 --- a/tests/contracts/artifacts/ABITestPushToArrayInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestPushToArrayInBox.arc56_draft.json @@ -66,734 +66,58 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1550, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - }, - { - "teal": 13, - "source": 1550, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 14, - "source": 1550, - "pc": [ - 14 - ] - }, - { - "teal": 15, - "source": 1550, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 16, - "source": 1550, - "pc": [ - 17 - ] - }, - { - "teal": 17, - "source": 1550, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 18, - "source": 1550, - "pc": [ - 20 - ] - }, - { - "teal": 19, - "source": 1550, - "pc": [ - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 23, - "source": 1550, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 47 - ] - }, - { - "teal": 28, - "source": 1553, - "pc": [ - 48, - 49, - 50, - 51, - 52, - 53 - ] - }, - { - "teal": 31, - "source": 1553, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 32, - "source": 1553, - "pc": [ - 57 - ] - }, - { - "teal": 33, - "source": 1553, - "pc": [ - 58 - ] - }, - { - "teal": 34, - "source": 1553, - "pc": [ - 59 - ] - }, - { - "teal": 35, - "source": 1553, - "pc": [ - 60 - ] - }, - { - "teal": 36, - "source": 1553, - "pc": [ - 61 - ] - }, - { - "teal": 37, - "source": 1553, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 38, - "source": 1553, - "pc": [ - 65 - ] - }, - { - "teal": 39, - "source": 1553, - "pc": [ - 66 - ] - }, - { - "teal": 40, - "source": 1553, - "pc": [ - 67 - ] - }, - { - "teal": 41, - "source": 1553, - "pc": [ - 68 - ] - }, - { - "teal": 42, - "source": 1553, - "pc": [ - 69 - ] - }, - { - "teal": 43, - "source": 1553, - "pc": [ - 70 - ] - }, - { - "teal": 47, - "source": 1553, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 51, - "source": 1554, - "pc": [ - 74 - ] - }, - { - "teal": 52, - "source": 1554, - "pc": [ - 75 - ] - }, - { - "teal": 53, - "source": 1554, - "pc": [ - 76 - ] - }, - { - "teal": 54, - "source": 1554, - "pc": [ - 77 - ] - }, - { - "teal": 55, - "source": 1554, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 56, - "source": 1554, - "pc": [ - 98 - ] - }, - { - "teal": 60, - "source": 1556, - "pc": [ - 99 - ] - }, - { - "teal": 61, - "source": 1556, - "pc": [ - 100 - ] - }, - { - "teal": 64, - "source": 1556, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 101 - ] - }, - { - "teal": 65, - "source": 1556, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 66, - "source": 1556, - "pc": [ - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 67, - "source": 1556, - "pc": [ - 115 - ] - }, - { - "teal": 68, - "source": 1556, - "pc": [ - 116 - ] - }, - { - "teal": 69, - "source": 1556, - "pc": [ - 117 - ] - }, - { - "teal": 70, - "source": 1556, - "pc": [ - 118 - ] - }, - { - "teal": 71, - "source": 1556, - "pc": [ - 119 - ] - }, - { - "teal": 72, - "source": 1556, - "pc": [ - 120 - ] - }, - { - "teal": 73, - "source": 1556, - "pc": [ - 121 - ] - }, - { - "teal": 74, - "source": 1556, - "pc": [ - 122 - ] - }, - { - "teal": 75, - "source": 1556, - "pc": [ - 123 - ] - }, - { - "teal": 76, - "source": 1556, - "pc": [ - 124 - ] - }, - { - "teal": 77, - "source": 1556, - "pc": [ - 125 - ] - }, - { - "teal": 78, - "source": 1556, - "pc": [ - 126, - 127, - 128 - ] - }, - { - "teal": 79, - "source": 1556, - "pc": [ - 129 - ] - }, - { - "teal": 80, - "source": 1556, - "pc": [ - 130 - ] - }, - { - "teal": 81, - "source": 1556, - "pc": [ - 131 - ] - }, - { - "teal": 85, - "source": 1557, - "pc": [ - 132 - ] - }, - { - "teal": 86, - "source": 1557, - "pc": [ - 133 - ] - }, - { - "teal": 89, - "source": 1557, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 134 - ] - }, - { - "teal": 90, - "source": 1557, - "pc": [ - 135, - 136, - 137 - ] - }, - { - "teal": 91, - "source": 1557, - "pc": [ - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 92, - "source": 1557, - "pc": [ - 148 - ] - }, - { - "teal": 93, - "source": 1557, - "pc": [ - 149 - ] - }, - { - "teal": 94, - "source": 1557, - "pc": [ - 150 - ] - }, - { - "teal": 95, - "source": 1557, - "pc": [ - 151 - ] - }, - { - "teal": 96, - "source": 1557, - "pc": [ - 152 - ] - }, - { - "teal": 97, - "source": 1557, - "pc": [ - 153 - ] - }, - { - "teal": 98, - "source": 1557, - "pc": [ - 154 - ] - }, - { - "teal": 99, - "source": 1557, - "pc": [ - 155 - ] - }, - { - "teal": 100, - "source": 1557, - "pc": [ - 156 - ] - }, - { - "teal": 101, - "source": 1557, - "pc": [ - 157 - ] - }, - { - "teal": 102, - "source": 1557, - "pc": [ - 158 - ] - }, - { - "teal": 103, - "source": 1557, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 104, - "source": 1557, - "pc": [ - 162 - ] - }, - { - "teal": 105, - "source": 1557, - "pc": [ - 163 - ] - }, - { - "teal": 106, - "source": 1557, - "pc": [ - 164 - ] - }, - { - "teal": 110, - "source": 1559, - "pc": [ - 165 - ] - }, - { - "teal": 111, - "source": 1559, - "pc": [ - 166 - ] - }, - { - "teal": 114, - "source": 1559, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 167 - ] - }, - { - "teal": 115, - "source": 1559, - "pc": [ - 168, - 169, - 170 - ] - }, - { - "teal": 116, - "source": 1553, - "pc": [ - 171 - ] - }, - { - "teal": 119, - "source": 1550, - "pc": [ - 172 - ] - }, - { - "teal": 120, - "source": 1550, - "pc": [ - 173 - ] - }, - { - "teal": 123, - "source": 1550, - "pc": [ - 174, - 175, - 176, - 177, - 178, - 179 - ] - }, - { - "teal": 124, - "source": 1550, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 125, - "source": 1550, - "pc": [ - 183, - 184, - 185, - 186 - ] - }, - { - "teal": 128, - "source": 1550, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 187 - ] - }, - { - "teal": 131, - "source": 1550, - "pc": [ - 188, - 189, - 190, - 191, - 192, - 193 - ] - }, - { - "teal": 132, - "source": 1550, - "pc": [ - 194, - 195, - 196 - ] - }, - { - "teal": 133, - "source": 1550, - "pc": [ - 197, - 198, - 199, - 200 - ] - }, - { - "teal": 136, - "source": 1550, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 201 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 43 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 109 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 153 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 197 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 218 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 232 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdXNoVG9BcnJheUluQm94KCl1aW50NjRbXQoqYWJpX3JvdXRlX3B1c2hUb0FycmF5SW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcHVzaFRvQXJyYXlJbkJveCgpdWludDY0W10KCWNhbGxzdWIgcHVzaFRvQXJyYXlJbkJveAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVzaFRvQXJyYXlJbkJveCgpOiBBcHBJRFtdCnB1c2hUb0FycmF5SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBbQXBwSUQuZnJvbVVpbnQ2NCgxKSwgQXBwSUQuZnJvbVVpbnQ2NCgyKV0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NTYKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLnB1c2goQXBwSUQuZnJvbVVpbnQ2NCgzKSkKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMwoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NTcKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLnB1c2goQXBwSUQuZnJvbVVpbnQ2NCg0KSkKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NTkKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZTsKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlCglhc3NlcnQKCWV4dHJhY3QgMiAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwdXNoVG9BcnJheUluQm94KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcHVzaFRvQXJyYXlJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MjRkNjE3MAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHB1c2hUb0FycmF5SW5Cb3goKXVpbnQ2NFtdCiphYmlfcm91dGVfcHVzaFRvQXJyYXlJbkJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHB1c2hUb0FycmF5SW5Cb3goKXVpbnQ2NFtdCgljYWxsc3ViIHB1c2hUb0FycmF5SW5Cb3gKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcHVzaFRvQXJyYXlJbkJveCgpOiBBcHBJRFtdCnB1c2hUb0FycmF5SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBbQXBwSUQuZnJvbVVpbnQ2NCgxKSwgQXBwSUQuZnJvbVVpbnQ2NCgyKV0KCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWR1cAoJYm94X2RlbAoJcG9wCglwdXNoYnl0ZXMgMHgwMDAyMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NgoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUucHVzaChBcHBJRC5mcm9tVWludDY0KDMpKQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDMKCWNvbmNhdAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1NwoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUucHVzaChBcHBJRC5mcm9tVWludDY0KDQpKQoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDQKCWNvbmNhdAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJZHVwCglib3hfZGVsCglwb3AKCXN3YXAKCWR1cAoJbGVuCglwdXNoaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU1OQoJLy8gcmV0dXJuIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlOwoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YWZhMDdmNjIgLy8gbWV0aG9kICJwdXNoVG9BcnJheUluQm94KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcHVzaFRvQXJyYXlJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACCAEmAQRiTWFwMRgUgQYLMRkIjQwAjQAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAgAQVH3x1iAAOSRUiChZXBgJMUFCwI0OKAAEoSbxIgBIAAgAAAAAAAAABAAAAAAAAAAK/KL5EVwIAgAgAAAAAAAAAA1AoSbxITEkVIgoWVwYCTFC/KL5EVwIAgAgAAAAAAAAABFAoSbxITEkVIgoWVwYCTFC/KL5EVwIAiSNDgAS4RHs2NhoAjgH/8QCABK+gf2I2GgCOAf9nAA==", + "approval": "CiYBBGJNYXAxGBSBBgsxGQiNDACwAAAAAAAAAAAAAACiAAAAAAAAAAAAAACABBUffHWIABBJFYEIChZXBgJMUFCwgQFDigABgARiTWFwSbxIgBIAAgAAAAAAAAABAAAAAAAAAAK/gARiTWFwvkRXAgCACAAAAAAAAAADUIAEYk1hcEm8SExJFYEIChZXBgJMUL+ABGJNYXC+RFcCAIAIAAAAAAAAAARQgARiTWFwSbxITEkVgQgKFlcGAkxQv4AEYk1hcL5EVwIAiYEBQ4AEuER7NjYaAI4B//AAgASvoH9iNhoAjgH/RAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal b/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal index 252c29a3a..8630331a3 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // rawBytesFunction()string *abi_route_rawBytesFunction: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute rawBytesFunction()string callsub rawBytesFunction @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // rawBytesFunction(): string @@ -45,11 +45,11 @@ rawBytesFunction: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1053 // a: StaticArray, 3> = [1, 2, 3] - byte 0x010203 + pushbytes 0x010203 frame_bury 0 // a: StaticArray, 3> // tests/contracts/abi.algo.ts:1054 @@ -61,11 +61,11 @@ rawBytesFunction: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -73,7 +73,7 @@ rawBytesFunction: err *call_NoOp: - method "rawBytesFunction()string" + pushbytes 0x08784adb // method "rawBytesFunction()string" txna ApplicationArgs 0 match *abi_route_rawBytesFunction diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json b/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json index 41c7d2e6f..8e31f83dd 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmcKKmFiaV9yb3V0ZV9yYXdCeXRlc0Z1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwoJY2FsbHN1YiByYXdCeXRlc0Z1bmN0aW9uCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJhd0J5dGVzRnVuY3Rpb24oKTogc3RyaW5nCnJhd0J5dGVzRnVuY3Rpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDUzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAxMDIwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNTQKCS8vIHJldHVybiByYXdCeXRlcyhhKTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJyYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmF3Qnl0ZXNGdW5jdGlvbigpc3RyaW5nCiphYmlfcm91dGVfcmF3Qnl0ZXNGdW5jdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwoJY2FsbHN1YiByYXdCeXRlc0Z1bmN0aW9uCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyByYXdCeXRlc0Z1bmN0aW9uKCk6IHN0cmluZwpyYXdCeXRlc0Z1bmN0aW9uOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDUzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDEwMjAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA1NAoJLy8gcmV0dXJuIHJhd0J5dGVzKGEpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MDg3ODRhZGIgLy8gbWV0aG9kICJyYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.arc56_draft.json b/tests/contracts/artifacts/ABITestRawBytesFunction.arc56_draft.json index 345cd46de..49b8c79f4 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.arc56_draft.json @@ -61,355 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1051, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1051, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1051, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1051, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1051, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1051, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1051, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1051, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1051, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1052, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1052, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1052, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1052, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1052, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1052, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 1052, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 1052, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 1052, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 1052, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 1052, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 1052, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1052, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 48, - "source": 1052, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 52, - "source": 1053, - "pc": [ - 66, - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 53, - "source": 1053, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 57, - "source": 1054, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 60, - "source": 1052, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 61, - "source": 1052, - "pc": [ - 77 - ] - }, - { - "teal": 64, - "source": 1051, - "pc": [ - 78 - ] - }, - { - "teal": 65, - "source": 1051, - "pc": [ - 79 - ] - }, - { - "teal": 68, - "source": 1051, - "pc": [ - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 69, - "source": 1051, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 70, - "source": 1051, - "pc": [ - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 73, - "source": 1051, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 93 - ] - }, - { - "teal": 76, - "source": 1051, - "pc": [ - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 77, - "source": 1051, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 78, - "source": 1051, - "pc": [ - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 81, - "source": 1051, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 107 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 92 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 106 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmcKKmFiaV9yb3V0ZV9yYXdCeXRlc0Z1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwoJY2FsbHN1YiByYXdCeXRlc0Z1bmN0aW9uCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJhd0J5dGVzRnVuY3Rpb24oKTogc3RyaW5nCnJhd0J5dGVzRnVuY3Rpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDUzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAxMDIwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNTQKCS8vIHJldHVybiByYXdCeXRlcyhhKTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8OD4sIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJyYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmF3Qnl0ZXNGdW5jdGlvbigpc3RyaW5nCiphYmlfcm91dGVfcmF3Qnl0ZXNGdW5jdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwoJY2FsbHN1YiByYXdCeXRlc0Z1bmN0aW9uCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyByYXdCeXRlc0Z1bmN0aW9uKCk6IHN0cmluZwpyYXdCeXRlc0Z1bmN0aW9uOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDUzCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDEwMjAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA1NAoJLy8gcmV0dXJuIHJhd0J5dGVzKGEpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDw4PiwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MDg3ODRhZGIgLy8gbWV0aG9kICJyYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADcAAAAAAAAAAAAAACkAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYAAgAMBAgOMAIsAjACJIkOABLhEezY2GgCOAf/xAIAECHhK2zYaAI4B/70A", + "approval": "CjEYFIEGCzEZCI0MADkAAAAAAAAAAAAAACsAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIADAQIDjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgAQIeErbNhoAjgH/uwA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestRefTypes.approval.teal b/tests/contracts/artifacts/ABITestRefTypes.approval.teal index 6d419fe1a..7f48b391b 100644 --- a/tests/contracts/artifacts/ABITestRefTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestRefTypes.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -41,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // execute refTypes(account,application,asset)void callsub refTypes - int 1 + pushint 1 return // refTypes(acct: AccountReference, app: AppReference, asa: AssetReference): void @@ -72,11 +72,11 @@ refTypes: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -84,7 +84,7 @@ refTypes: err *call_NoOp: - method "refTypes(account,application,asset)void" + pushbytes 0xe1e9d6c3 // method "refTypes(account,application,asset)void" txna ApplicationArgs 0 match *abi_route_refTypes diff --git a/tests/contracts/artifacts/ABITestRefTypes.arc32.json b/tests/contracts/artifacts/ABITestRefTypes.arc32.json index 414676d51..5695a1b76 100644 --- a/tests/contracts/artifacts/ABITestRefTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestRefTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV9yZWZUeXBlczoKCS8vIGFzYTogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFwcDogYXBwbGljYXRpb24KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFwcGxpY2F0aW9ucwoKCS8vIGFjY3Q6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSByZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQKCWNhbGxzdWIgcmVmVHlwZXMKCWludCAxCglyZXR1cm4KCi8vIHJlZlR5cGVzKGFjY3Q6IEFjY291bnRSZWZlcmVuY2UsIGFwcDogQXBwUmVmZXJlbmNlLCBhc2E6IEFzc2V0UmVmZXJlbmNlKTogdm9pZApyZWZUeXBlczoKCXByb3RvIDMgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTI2CgkvLyBhc3NlcnQoIWFjY3QuaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIC0xIC8vIGFjY3Q6IEFjY291bnRSZWZlcmVuY2UKCWZyYW1lX2RpZyAtMyAvLyBhc2E6IEFzc2V0UmVmZXJlbmNlCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MjcKCS8vIGFzc2VydCghYXBwLmFkZHJlc3MuaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIC0yIC8vIGFwcDogQXBwUmVmZXJlbmNlCglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2RpZyAtMyAvLyBhc2E6IEFzc2V0UmVmZXJlbmNlCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJyZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JlZlR5cGVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmVmVHlwZXMoYWNjb3VudCxhcHBsaWNhdGlvbixhc3NldCl2b2lkCiphYmlfcm91dGVfcmVmVHlwZXM6CgkvLyBhc2E6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhcHA6IGFwcGxpY2F0aW9uCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBcHBsaWNhdGlvbnMKCgkvLyBhY2N0OiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgcmVmVHlwZXMoYWNjb3VudCxhcHBsaWNhdGlvbixhc3NldCl2b2lkCgljYWxsc3ViIHJlZlR5cGVzCglwdXNoaW50IDEKCXJldHVybgoKLy8gcmVmVHlwZXMoYWNjdDogQWNjb3VudFJlZmVyZW5jZSwgYXBwOiBBcHBSZWZlcmVuY2UsIGFzYTogQXNzZXRSZWZlcmVuY2UpOiB2b2lkCnJlZlR5cGVzOgoJcHJvdG8gMyAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MjYKCS8vIGFzc2VydCghYWNjdC5pc09wdGVkSW5Ub0Fzc2V0KGFzYSkpCglmcmFtZV9kaWcgLTEgLy8gYWNjdDogQWNjb3VudFJlZmVyZW5jZQoJZnJhbWVfZGlnIC0zIC8vIGFzYTogQXNzZXRSZWZlcmVuY2UKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUyNwoJLy8gYXNzZXJ0KCFhcHAuYWRkcmVzcy5pc09wdGVkSW5Ub0Fzc2V0KGFzYSkpCglmcmFtZV9kaWcgLTIgLy8gYXBwOiBBcHBSZWZlcmVuY2UKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIC0zIC8vIGFzYTogQXNzZXRSZWZlcmVuY2UKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTFlOWQ2YzMgLy8gbWV0aG9kICJyZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JlZlR5cGVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestRefTypes.arc56_draft.json b/tests/contracts/artifacts/ABITestRefTypes.arc56_draft.json index 2736f61b0..290848b5f 100644 --- a/tests/contracts/artifacts/ABITestRefTypes.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestRefTypes.arc56_draft.json @@ -74,433 +74,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1524, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1524, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1524, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1524, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1524, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1524, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1524, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1524, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1524, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1525, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 1525, - "pc": [ - 43 - ] - }, - { - "teal": 30, - "source": 1525, - "pc": [ - 44, - 45 - ] - }, - { - "teal": 33, - "source": 1525, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 34, - "source": 1525, - "pc": [ - 49 - ] - }, - { - "teal": 35, - "source": 1525, - "pc": [ - 50, - 51 - ] - }, - { - "teal": 38, - "source": 1525, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 39, - "source": 1525, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1525, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 43, - "source": 1525, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1525, - "pc": [ - 61 - ] - }, - { - "teal": 45, - "source": 1525, - "pc": [ - 62 - ] - }, - { - "teal": 49, - "source": 1525, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 53, - "source": 1526, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 54, - "source": 1526, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 55, - "source": 1526, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 56, - "source": 1526, - "pc": [ - 72 - ] - }, - { - "teal": 57, - "source": 1526, - "pc": [ - 73 - ] - }, - { - "teal": 58, - "source": 1526, - "pc": [ - 74 - ] - }, - { - "teal": 59, - "source": 1526, - "pc": [ - 75 - ] - }, - { - "teal": 63, - "source": 1527, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 64, - "source": 1527, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 65, - "source": 1527, - "pc": [ - 80 - ] - }, - { - "teal": 66, - "source": 1527, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 67, - "source": 1527, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 68, - "source": 1527, - "pc": [ - 85 - ] - }, - { - "teal": 69, - "source": 1527, - "pc": [ - 86 - ] - }, - { - "teal": 70, - "source": 1527, - "pc": [ - 87 - ] - }, - { - "teal": 71, - "source": 1527, - "pc": [ - 88 - ] - }, - { - "teal": 72, - "source": 1525, - "pc": [ - 89 - ] - }, - { - "teal": 75, - "source": 1524, - "pc": [ - 90 - ] - }, - { - "teal": 76, - "source": 1524, - "pc": [ - 91 - ] - }, - { - "teal": 79, - "source": 1524, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 80, - "source": 1524, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 81, - "source": 1524, - "pc": [ - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 84, - "source": 1524, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 105 - ] - }, - { - "teal": 87, - "source": 1524, - "pc": [ - 106, - 107, - 108, - 109, - 110, - 111 - ] - }, - { - "teal": 88, - "source": 1524, - "pc": [ - 112, - 113, - 114 - ] - }, - { - "teal": 89, - "source": 1524, - "pc": [ - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 92, - "source": 1524, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 119 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 104 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 118 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQKKmFiaV9yb3V0ZV9yZWZUeXBlczoKCS8vIGFzYTogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFwcDogYXBwbGljYXRpb24KCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFwcGxpY2F0aW9ucwoKCS8vIGFjY3Q6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSByZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQKCWNhbGxzdWIgcmVmVHlwZXMKCWludCAxCglyZXR1cm4KCi8vIHJlZlR5cGVzKGFjY3Q6IEFjY291bnRSZWZlcmVuY2UsIGFwcDogQXBwUmVmZXJlbmNlLCBhc2E6IEFzc2V0UmVmZXJlbmNlKTogdm9pZApyZWZUeXBlczoKCXByb3RvIDMgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTI2CgkvLyBhc3NlcnQoIWFjY3QuaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIC0xIC8vIGFjY3Q6IEFjY291bnRSZWZlcmVuY2UKCWZyYW1lX2RpZyAtMyAvLyBhc2E6IEFzc2V0UmVmZXJlbmNlCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MjcKCS8vIGFzc2VydCghYXBwLmFkZHJlc3MuaXNPcHRlZEluVG9Bc3NldChhc2EpKQoJZnJhbWVfZGlnIC0yIC8vIGFwcDogQXBwUmVmZXJlbmNlCglhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCglwb3AKCWZyYW1lX2RpZyAtMyAvLyBhc2E6IEFzc2V0UmVmZXJlbmNlCglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCXN3YXAKCXBvcAoJIQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJyZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JlZlR5cGVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmVmVHlwZXMoYWNjb3VudCxhcHBsaWNhdGlvbixhc3NldCl2b2lkCiphYmlfcm91dGVfcmVmVHlwZXM6CgkvLyBhc2E6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhcHA6IGFwcGxpY2F0aW9uCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBcHBsaWNhdGlvbnMKCgkvLyBhY2N0OiBhY2NvdW50Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBY2NvdW50cwoKCS8vIGV4ZWN1dGUgcmVmVHlwZXMoYWNjb3VudCxhcHBsaWNhdGlvbixhc3NldCl2b2lkCgljYWxsc3ViIHJlZlR5cGVzCglwdXNoaW50IDEKCXJldHVybgoKLy8gcmVmVHlwZXMoYWNjdDogQWNjb3VudFJlZmVyZW5jZSwgYXBwOiBBcHBSZWZlcmVuY2UsIGFzYTogQXNzZXRSZWZlcmVuY2UpOiB2b2lkCnJlZlR5cGVzOgoJcHJvdG8gMyAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MjYKCS8vIGFzc2VydCghYWNjdC5pc09wdGVkSW5Ub0Fzc2V0KGFzYSkpCglmcmFtZV9kaWcgLTEgLy8gYWNjdDogQWNjb3VudFJlZmVyZW5jZQoJZnJhbWVfZGlnIC0zIC8vIGFzYTogQXNzZXRSZWZlcmVuY2UKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUyNwoJLy8gYXNzZXJ0KCFhcHAuYWRkcmVzcy5pc09wdGVkSW5Ub0Fzc2V0KGFzYSkpCglmcmFtZV9kaWcgLTIgLy8gYXBwOiBBcHBSZWZlcmVuY2UKCWFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKCXBvcAoJZnJhbWVfZGlnIC0zIC8vIGFzYTogQXNzZXRSZWZlcmVuY2UKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCgkhCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTFlOWQ2YzMgLy8gbWV0aG9kICJyZWZUeXBlcyhhY2NvdW50LGFwcGxpY2F0aW9uLGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JlZlR5cGVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEMAAAAAAAAAAAAAADUAAAAAAAAAAAAAADYaAxfAMDYaAhfAMjYaARfAHIgAAiJDigMAi/+L/XAATEgURIv+cghIi/1wAExIFESJIkOABLhEezY2GgCOAf/xAIAE4enWwzYaAI4B/7EA", + "approval": "CjEYFIEGCzEZCI0MAEUAAAAAAAAAAAAAADcAAAAAAAAAAAAAADYaAxfAMDYaAhfAMjYaARfAHIgAA4EBQ4oDAIv/i/1wAExIFESL/nIISIv9cABMSBREiYEBQ4AEuER7NjYaAI4B//AAgATh6dbDNhoAjgH/rwA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestReturnByte.approval.teal b/tests/contracts/artifacts/ABITestReturnByte.approval.teal index 0acfdf0e7..a75328ecc 100644 --- a/tests/contracts/artifacts/ABITestReturnByte.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnByte.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // returnByte()byte *abi_route_returnByte: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute returnByte()byte callsub returnByte @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // returnByte(): byte @@ -46,19 +46,19 @@ returnByte: // tests/contracts/abi.algo.ts:1565 // return rawByte(true); - int 1 - byte 0x00 - int 0 + pushint 1 + pushbytes 0x00 + pushint 0 uncover 2 setbit retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -66,7 +66,7 @@ returnByte: err *call_NoOp: - method "returnByte()byte" + pushbytes 0x76b434cf // method "returnByte()byte" txna ApplicationArgs 0 match *abi_route_returnByte diff --git a/tests/contracts/artifacts/ABITestReturnByte.arc32.json b/tests/contracts/artifacts/ABITestReturnByte.arc32.json index ebb34b39f..4eec2526a 100644 --- a/tests/contracts/artifacts/ABITestReturnByte.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnByte.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5CeXRlKClieXRlCiphYmlfcm91dGVfcmV0dXJuQnl0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5CeXRlKClieXRlCgljYWxsc3ViIHJldHVybkJ5dGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQnl0ZSgpOiBieXRlCnJldHVybkJ5dGU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU2NQoJLy8gcmV0dXJuIHJhd0J5dGUodHJ1ZSk7CglpbnQgMQoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVybkJ5dGUoKWJ5dGUiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkJ5dGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuQnl0ZSgpYnl0ZQoqYWJpX3JvdXRlX3JldHVybkJ5dGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5CeXRlKClieXRlCgljYWxsc3ViIHJldHVybkJ5dGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVybkJ5dGUoKTogYnl0ZQpyZXR1cm5CeXRlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NjUKCS8vIHJldHVybiByYXdCeXRlKHRydWUpOwoJcHVzaGludCAxCglwdXNoYnl0ZXMgMHgwMAoJcHVzaGludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg3NmI0MzRjZiAvLyBtZXRob2QgInJldHVybkJ5dGUoKWJ5dGUiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkJ5dGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnByte.arc56_draft.json b/tests/contracts/artifacts/ABITestReturnByte.arc56_draft.json index e811440dc..5ce75c1b6 100644 --- a/tests/contracts/artifacts/ABITestReturnByte.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestReturnByte.arc56_draft.json @@ -61,351 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1563, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1563, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1563, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1563, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1563, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1563, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1563, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1563, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1563, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1564, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1564, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1564, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1564, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1564, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1564, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 1564, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 1564, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 1564, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 1564, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 1564, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 1564, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1564, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 49, - "source": 1565, - "pc": [ - 64 - ] - }, - { - "teal": 50, - "source": 1565, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 51, - "source": 1565, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 52, - "source": 1565, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 53, - "source": 1565, - "pc": [ - 72 - ] - }, - { - "teal": 54, - "source": 1564, - "pc": [ - 73 - ] - }, - { - "teal": 57, - "source": 1563, - "pc": [ - 74 - ] - }, - { - "teal": 58, - "source": 1563, - "pc": [ - 75 - ] - }, - { - "teal": 61, - "source": 1563, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 62, - "source": 1563, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 63, - "source": 1563, - "pc": [ - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 66, - "source": 1563, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 89 - ] - }, - { - "teal": 69, - "source": 1563, - "pc": [ - 90, - 91, - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 70, - "source": 1563, - "pc": [ - 96, - 97, - 98 - ] - }, - { - "teal": 71, - "source": 1563, - "pc": [ - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 74, - "source": 1563, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 103 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 89 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 103 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5CeXRlKClieXRlCiphYmlfcm91dGVfcmV0dXJuQnl0ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5CeXRlKClieXRlCgljYWxsc3ViIHJldHVybkJ5dGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQnl0ZSgpOiBieXRlCnJldHVybkJ5dGU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU2NQoJLy8gcmV0dXJuIHJhd0J5dGUodHJ1ZSk7CglpbnQgMQoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVybkJ5dGUoKWJ5dGUiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkJ5dGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuQnl0ZSgpYnl0ZQoqYWJpX3JvdXRlX3JldHVybkJ5dGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5CeXRlKClieXRlCgljYWxsc3ViIHJldHVybkJ5dGUKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVybkJ5dGUoKTogYnl0ZQpyZXR1cm5CeXRlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NjUKCS8vIHJldHVybiByYXdCeXRlKHRydWUpOwoJcHVzaGludCAxCglwdXNoYnl0ZXMgMHgwMAoJcHVzaGludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg3NmI0MzRjZiAvLyBtZXRob2QgInJldHVybkJ5dGUoKWJ5dGUiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkJ5dGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADMAAAAAAAAAAAAAACUAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAASKAAQCBAE8CVIkiQ4AEuER7NjYaAI4B//EAgAR2tDTPNhoAjgH/wQA=", + "approval": "CjEYFIEGCzEZCI0MADYAAAAAAAAAAAAAACgAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGBAYABAIEATwJUiYEBQ4AEuER7NjYaAI4B//AAgAR2tDTPNhoAjgH/vgA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal index 5e4b9984f..bb6f7c7c5 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // returnDynamicArray()uint64[] *abi_route_returnDynamicArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute returnDynamicArray()uint64[] callsub returnDynamicArray dup len - int 8 + pushint 8 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // returnDynamicArray(): uint64[] @@ -47,11 +47,11 @@ returnDynamicArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:356 // a: uint64[] = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: uint64[] // tests/contracts/abi.algo.ts:357 @@ -63,11 +63,11 @@ returnDynamicArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -75,7 +75,7 @@ returnDynamicArray: err *call_NoOp: - method "returnDynamicArray()uint64[]" + pushbytes 0x9def6e9d // method "returnDynamicArray()uint64[]" txna ApplicationArgs 0 match *abi_route_returnDynamicArray diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json b/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json index 8985a4b51..6a0ae3d89 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdCiphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5CglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKTogdWludDY0W10KcmV0dXJuRHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzU2CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuRHluYW1pY0FycmF5KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuRHluYW1pY0FycmF5KCl1aW50NjRbXQoqYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5CglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVybkR5bmFtaWNBcnJheSgpOiB1aW50NjRbXQpyZXR1cm5EeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NgoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5ZGVmNmU5ZCAvLyBtZXRob2QgInJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.arc56_draft.json b/tests/contracts/artifacts/ABITestReturnDynamicArray.arc56_draft.json index d5322f661..484424fac 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.arc56_draft.json @@ -61,391 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 354, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 354, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 354, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 354, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 354, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 354, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 354, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 354, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 354, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 355, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 355, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 355, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 355, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 355, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 355, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 355, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 355, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 38, - "source": 355, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 355, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 355, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 355, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 355, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 355, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 355, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 50, - "source": 355, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 54, - "source": 356, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 55, - "source": 356, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 59, - "source": 357, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 62, - "source": 355, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 63, - "source": 355, - "pc": [ - 101 - ] - }, - { - "teal": 66, - "source": 354, - "pc": [ - 102 - ] - }, - { - "teal": 67, - "source": 354, - "pc": [ - 103 - ] - }, - { - "teal": 70, - "source": 354, - "pc": [ - 104, - 105, - 106, - 107, - 108, - 109 - ] - }, - { - "teal": 71, - "source": 354, - "pc": [ - 110, - 111, - 112 - ] - }, - { - "teal": 72, - "source": 354, - "pc": [ - 113, - 114, - 115, - 116 - ] - }, - { - "teal": 75, - "source": 354, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 117 - ] - }, - { - "teal": 78, - "source": 354, - "pc": [ - 118, - 119, - 120, - 121, - 122, - 123 - ] - }, - { - "teal": 79, - "source": 354, - "pc": [ - 124, - 125, - 126 - ] - }, - { - "teal": 80, - "source": 354, - "pc": [ - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 83, - "source": 354, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 131 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 116 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 130 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdCiphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5CglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXkoKTogdWludDY0W10KcmV0dXJuRHluYW1pY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzU2CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuRHluYW1pY0FycmF5KCl1aW50NjRbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuRHluYW1pY0FycmF5KCl1aW50NjRbXQoqYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5CglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVybkR5bmFtaWNBcnJheSgpOiB1aW50NjRbXQpyZXR1cm5EeW5hbWljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NgoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NwoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5ZGVmNmU5ZCAvLyBtZXRob2QgInJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE8AAAAAAAAAAAAAAEEAAAAAAAAAAAAAAIAEFR98dYgAD0kVgQgKFlcGAkxQULAiQ4oAAYAAgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEne9unTYaAI4B/6UA", + "approval": "CjEYFIEGCzEZCI0MAFEAAAAAAAAAAAAAAEMAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQgKFlcGAkxQULCBAUOKAAGAAIAYAAAAAAAAAAsAAAAAAAAAFgAAAAAAAAAhjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgASd726dNhoAjgH/owA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal index db7028f86..71f2061a2 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // returnDynamicArrayFromTuple()uint8[] *abi_route_returnDynamicArrayFromTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute returnDynamicArrayFromTuple()uint8[] callsub returnDynamicArrayFromTuple @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // returnDynamicArrayFromTuple(): uint<8>[] @@ -51,16 +52,16 @@ returnDynamicArrayFromTuple: // a: [uint<8>, uint16, uint<8>[], uint16[], uint<8>[]] = [1, 2, [3, 4], [5, 6], [7, 8]] byte 0x // initial head byte 0x // initial tail - byte 0x0009 // initial head offset - byte 0x01 + pushbytes 0x0009 // initial head offset + pushbytes 0x01 callsub *process_static_tuple_element - byte 0x0002 + pushbytes 0x0002 callsub *process_static_tuple_element - byte 0x00020304 + pushbytes 0x00020304 callsub *process_dynamic_tuple_element - byte 0x000200050006 + pushbytes 0x000200050006 callsub *process_dynamic_tuple_element - byte 0x00020708 + pushbytes 0x00020708 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -70,7 +71,7 @@ returnDynamicArrayFromTuple: // return a[4]; frame_dig 0 // a: [uint<8>, uint16, uint<8>[], uint16[], uint<8>[]] store 255 // full array - int 7 + pushint 7 load 255 // full array load 255 // full array uncover 2 @@ -79,9 +80,9 @@ returnDynamicArrayFromTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -91,11 +92,11 @@ returnDynamicArrayFromTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -103,7 +104,7 @@ returnDynamicArrayFromTuple: err *call_NoOp: - method "returnDynamicArrayFromTuple()uint8[]" + pushbytes 0xfe6648c6 // method "returnDynamicArrayFromTuple()uint8[]" txna ApplicationArgs 0 match *abi_route_returnDynamicArrayFromTuple diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json index 442c41f96..13c636593 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9yZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlKCl1aW50OFtdCgljYWxsc3ViIHJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKTogdWludDw4PltdCnJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5OAoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIFs1LCA2XSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwOSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAzMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAwMDUwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwNzA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDAKCS8vIHJldHVybiBhWzRdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZSgpdWludDhbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9yZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKTogdWludDw4PltdCnJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5OAoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIFs1LCA2XSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyMDMwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDA1MDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwNzA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDAKCS8vIHJldHVybiBhWzRdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZmU2NjQ4YzYgLy8gbWV0aG9kICJyZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc56_draft.json index b8658cc9b..9bf637fb3 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc56_draft.json @@ -61,831 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 396, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 396, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 396, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 396, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 396, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 396, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 396, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 396, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 396, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 397, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 397, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 397, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 397, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 397, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 397, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 36, - "source": 397, - "pc": [ - 58 - ] - }, - { - "teal": 37, - "source": 397, - "pc": [ - 59 - ] - }, - { - "teal": 38, - "source": 397, - "pc": [ - 60 - ] - }, - { - "teal": 39, - "source": 397, - "pc": [ - 61 - ] - }, - { - "teal": 40, - "source": 397, - "pc": [ - 62 - ] - }, - { - "teal": 41, - "source": 397, - "pc": [ - 63 - ] - }, - { - "teal": 45, - "source": 397, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 48, - "source": 397, - "pc": [ - 67 - ] - }, - { - "teal": 52, - "source": 398, - "pc": [ - 68 - ] - }, - { - "teal": 53, - "source": 398, - "pc": [ - 69 - ] - }, - { - "teal": 54, - "source": 398, - "pc": [ - 70, - 71, - 72, - 73 - ] - }, - { - "teal": 55, - "source": 398, - "pc": [ - 74, - 75, - 76 - ] - }, - { - "teal": 56, - "source": 398, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 57, - "source": 398, - "pc": [ - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 58, - "source": 398, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 59, - "source": 398, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 60, - "source": 398, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 61, - "source": 398, - "pc": [ - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 62, - "source": 398, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 63, - "source": 398, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 64, - "source": 398, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 65, - "source": 398, - "pc": [ - 116 - ] - }, - { - "teal": 66, - "source": 398, - "pc": [ - 117 - ] - }, - { - "teal": 67, - "source": 398, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 71, - "source": 400, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 72, - "source": 400, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 73, - "source": 400, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 74, - "source": 400, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 75, - "source": 400, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 76, - "source": 400, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 77, - "source": 400, - "pc": [ - 132 - ] - }, - { - "teal": 78, - "source": 400, - "pc": [ - 133 - ] - }, - { - "teal": 79, - "source": 400, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 80, - "source": 400, - "pc": [ - 136 - ] - }, - { - "teal": 81, - "source": 400, - "pc": [ - 137 - ] - }, - { - "teal": 82, - "source": 400, - "pc": [ - 138 - ] - }, - { - "teal": 83, - "source": 400, - "pc": [ - 139 - ] - }, - { - "teal": 84, - "source": 400, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 85, - "source": 400, - "pc": [ - 142 - ] - }, - { - "teal": 86, - "source": 400, - "pc": [ - 143 - ] - }, - { - "teal": 87, - "source": 400, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 90, - "source": 397, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 91, - "source": 397, - "pc": [ - 149 - ] - }, - { - "teal": 94, - "source": 396, - "pc": [ - 150 - ] - }, - { - "teal": 95, - "source": 396, - "pc": [ - 151 - ] - }, - { - "teal": 98, - "source": 396, - "pc": [ - 152, - 153, - 154, - 155, - 156, - 157 - ] - }, - { - "teal": 99, - "source": 396, - "pc": [ - 158, - 159, - 160 - ] - }, - { - "teal": 100, - "source": 396, - "pc": [ - 161, - 162, - 163, - 164 - ] - }, - { - "teal": 103, - "source": 396, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 165 - ] - }, - { - "teal": 106, - "source": 396, - "pc": [ - 166, - 167, - 168, - 169, - 170, - 171 - ] - }, - { - "teal": 107, - "source": 396, - "pc": [ - 172, - 173, - 174 - ] - }, - { - "teal": 108, - "source": 396, - "pc": [ - 175, - 176, - 177, - 178 - ] - }, - { - "teal": 111, - "source": 396, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 179 - ] - }, - { - "teal": 114, - "source": 396, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 115, - "source": 396, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 116, - "source": 396, - "pc": [ - 185, - 186 - ] - }, - { - "teal": 117, - "source": 396, - "pc": [ - 187 - ] - }, - { - "teal": 118, - "source": 396, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 119, - "source": 396, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 120, - "source": 396, - "pc": [ - 192 - ] - }, - { - "teal": 123, - "source": 396, - "pc": [ - 193, - 194, - 195 - ] - }, - { - "teal": 124, - "source": 396, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 125, - "source": 396, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 126, - "source": 396, - "pc": [ - 200 - ] - }, - { - "teal": 127, - "source": 396, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 128, - "source": 396, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 129, - "source": 396, - "pc": [ - 205 - ] - }, - { - "teal": 130, - "source": 396, - "pc": [ - 206 - ] - }, - { - "teal": 131, - "source": 396, - "pc": [ - 207, - 208 - ] - }, - { - "teal": 132, - "source": 396, - "pc": [ - 209 - ] - }, - { - "teal": 133, - "source": 396, - "pc": [ - 210 - ] - }, - { - "teal": 134, - "source": 396, - "pc": [ - 211 - ] - }, - { - "teal": 135, - "source": 396, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 136, - "source": 396, - "pc": [ - 215, - 216 - ] - }, - { - "teal": 137, - "source": 396, - "pc": [ - 217, - 218 - ] - }, - { - "teal": 138, - "source": 396, - "pc": [ - 219 - ] - }, - { - "teal": 139, - "source": 396, - "pc": [ - 220 - ] - }, - { - "teal": 140, - "source": 396, - "pc": [ - 221, - 222 - ] - }, - { - "teal": 141, - "source": 396, - "pc": [ - 223, - 224 - ] - }, - { - "teal": 142, - "source": 396, - "pc": [ - 225, - 226 - ] - }, - { - "teal": 143, - "source": 396, - "pc": [ - 227, - 228 - ] - }, - { - "teal": 144, - "source": 396, - "pc": [ - 229 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 168 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 182 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9yZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlKCl1aW50OFtdCgljYWxsc3ViIHJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKTogdWludDw4PltdCnJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5OAoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIFs1LCA2XSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwOSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAzMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAwMDUwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwNzA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDAKCS8vIHJldHVybiBhWzRdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZSgpdWludDhbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KKmFiaV9yb3V0ZV9yZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10KCWNhbGxzdWIgcmV0dXJuRHluYW1pY0FycmF5RnJvbVR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKTogdWludDw4PltdCnJldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5OAoJLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFsxLCAyLCBbMywgNF0sIFs1LCA2XSwgWzcsIDhdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAyMDMwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDA1MDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwNzA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDAKCS8vIHJldHVybiBhWzRdOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNwoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZmU2NjQ4YzYgLy8gbWV0aG9kICJyZXR1cm5EeW5hbWljQXJyYXlGcm9tVHVwbGUoKXVpbnQ4W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheUZyb21UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAHwAAAAAAAAAAAAAAG4AAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAASgoKIACAAmAAQGIAGSAAgACiABdgAQAAgMEiABhgAYAAgAFAAaIAFaABAACBwiIAE1IUIwAiwA1/4EHNP80/08CWUk0/0xZIguBAghYVwIAjACJIkOABLhEezY2GgCOAf/xAIAE/mZIxjYaAI4B/3gAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", + "approval": "CiYBADEYFIEGCzEZCI0MAIIAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAJgAEBiABmgAIAAogAX4AEAAIDBIgAY4AGAAIABQAGiABYgAQAAgcIiABPSFCMAIsANf+BBzT/NP9PAllJNP9MWYEBC4ECCFhXAgCMAImBAUOABLhEezY2GgCOAf/wAIAE/mZIxjYaAI4B/3IAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal b/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal index 9045c4dc7..81e6c907d 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // returnStaticArray()uint64[3] *abi_route_returnStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute returnStaticArray()uint64[3] callsub returnStaticArray concat log - int 1 + pushint 1 return // returnStaticArray(): StaticArray @@ -39,11 +39,11 @@ returnStaticArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:19 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:21 @@ -55,11 +55,11 @@ returnStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -67,7 +67,7 @@ returnStaticArray: err *call_NoOp: - method "returnStaticArray()uint64[3]" + pushbytes 0xd5323e1f // method "returnStaticArray()uint64[3]" txna ApplicationArgs 0 match *abi_route_returnStaticArray diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json b/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json index 84f76aa7d..3dc9be568 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5TdGF0aWNBcnJheSgpdWludDY0WzNdCiphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoJY2FsbHN1YiByZXR1cm5TdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblN0YXRpY0FycmF5KCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KcmV0dXJuU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3JldHVyblN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoJY2FsbHN1YiByZXR1cm5TdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5TdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnJldHVyblN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGQ1MzIzZTFmIC8vIG1ldGhvZCAicmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestReturnStaticArray.arc56_draft.json index 6ad9a5b14..072b3de74 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.arc56_draft.json @@ -61,332 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 17, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 17, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 17, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 17, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 17, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 17, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 17, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 17, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 17, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 18, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 18, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 18, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 18, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 18, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 18, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 18, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 18, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 19, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 47, - "source": 19, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 51, - "source": 21, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 54, - "source": 18, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 55, - "source": 18, - "pc": [ - 90 - ] - }, - { - "teal": 58, - "source": 17, - "pc": [ - 91 - ] - }, - { - "teal": 59, - "source": 17, - "pc": [ - 92 - ] - }, - { - "teal": 62, - "source": 17, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 63, - "source": 17, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 64, - "source": 17, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 67, - "source": 17, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 106 - ] - }, - { - "teal": 70, - "source": 17, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 71, - "source": 17, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 72, - "source": 17, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 75, - "source": 17, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 120 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 105 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5TdGF0aWNBcnJheSgpdWludDY0WzNdCiphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoJY2FsbHN1YiByZXR1cm5TdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblN0YXRpY0FycmF5KCk6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KcmV0dXJuU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjEKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3JldHVyblN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXQoJY2FsbHN1YiByZXR1cm5TdGF0aWNBcnJheQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5TdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnJldHVyblN0YXRpY0FycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGQ1MzIzZTFmIC8vIG1ldGhvZCAicmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEQAAAAAAAAAAAAAADYAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIAYAAAAAAAAAAsAAAAAAAAAFgAAAAAAAAAhjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABNUyPh82GgCOAf+wAA==", + "approval": "CjEYFIEGCzEZCI0MAEYAAAAAAAAAAAAAADgAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAE1TI+HzYaAI4B/64A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestReturnTuple.approval.teal b/tests/contracts/artifacts/ABITestReturnTuple.approval.teal index 0a1cbbe71..51a784a74 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // returnTuple()(uint64,uint16,uint64) *abi_route_returnTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute returnTuple()(uint64,uint16,uint64) callsub returnTuple concat log - int 1 + pushint 1 return // returnTuple(): [uint64, uint16, uint64] @@ -39,11 +39,11 @@ returnTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:335 // a: [uint64, uint16, uint64] = [11, 22, 33] - byte 0x000000000000000b00160000000000000021 + pushbytes 0x000000000000000b00160000000000000021 frame_bury 0 // a: [uint64, uint16, uint64] // tests/contracts/abi.algo.ts:336 @@ -55,11 +55,11 @@ returnTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -67,7 +67,7 @@ returnTuple: err *call_NoOp: - method "returnTuple()(uint64,uint16,uint64)" + pushbytes 0x528b86bf // method "returnTuple()(uint64,uint16,uint64)" txna ApplicationArgs 0 match *abi_route_returnTuple diff --git a/tests/contracts/artifacts/ABITestReturnTuple.arc32.json b/tests/contracts/artifacts/ABITestReturnTuple.arc32.json index 5cc143e21..fa0501b92 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoqYWJpX3JvdXRlX3JldHVyblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIHJldHVyblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuVHVwbGUoKTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCnJldHVyblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKKmFiaV9yb3V0ZV9yZXR1cm5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIHJldHVyblR1cGxlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlKCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQpyZXR1cm5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMzYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDUyOGI4NmJmIC8vIG1ldGhvZCAicmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestReturnTuple.arc56_draft.json index 4f53e637e..9492d1a1a 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestReturnTuple.arc56_draft.json @@ -61,326 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 333, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 333, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 333, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 333, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 333, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 333, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 333, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 333, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 333, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 334, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 334, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 334, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 334, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 334, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 334, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 334, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 334, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 335, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 47, - "source": 335, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 51, - "source": 336, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 54, - "source": 334, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 55, - "source": 334, - "pc": [ - 84 - ] - }, - { - "teal": 58, - "source": 333, - "pc": [ - 85 - ] - }, - { - "teal": 59, - "source": 333, - "pc": [ - 86 - ] - }, - { - "teal": 62, - "source": 333, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 63, - "source": 333, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 64, - "source": 333, - "pc": [ - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 67, - "source": 333, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 100 - ] - }, - { - "teal": 70, - "source": 333, - "pc": [ - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 71, - "source": 333, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 72, - "source": 333, - "pc": [ - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 75, - "source": 333, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 114 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 99 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 113 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoqYWJpX3JvdXRlX3JldHVyblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIHJldHVyblR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuVHVwbGUoKTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCnJldHVyblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkKKmFiaV9yb3V0ZV9yZXR1cm5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCgljYWxsc3ViIHJldHVyblR1cGxlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlKCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQpyZXR1cm5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NF0gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozMzYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDUyOGI4NmJmIC8vIG1ldGhvZCAicmV0dXJuVHVwbGUoKSh1aW50NjQsdWludDE2LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAD4AAAAAAAAAAAAAADAAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAIASAAAAAAAAAAsAFgAAAAAAAAAhjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABFKLhr82GgCOAf+2AA==", + "approval": "CjEYFIEGCzEZCI0MAEAAAAAAAAAAAAAAADIAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAEgAAAAAAAAALABYAAAAAAAAAIYwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEUouGvzYaAI4B/7QA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal index c39a14218..01e8df750 100644 --- a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // returnTupleWithDyamicArray()(uint64,uint16,uint64[],uint16[]) *abi_route_returnTupleWithDyamicArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute returnTupleWithDyamicArray()(uint64,uint16,uint64[],uint16[]) callsub returnTupleWithDyamicArray concat log - int 1 + pushint 1 return // returnTupleWithDyamicArray(): [uint64, uint16, uint64[], uint16[]] @@ -45,14 +46,14 @@ returnTupleWithDyamicArray: // a: [uint64, uint16, uint64[], uint16[]] = [1, 2, [3, 4], [5, 6]] byte 0x // initial head byte 0x // initial tail - byte 0x000e // initial head offset - byte 0x0000000000000001 + pushbytes 0x000e // initial head offset + pushbytes 0x0000000000000001 callsub *process_static_tuple_element - byte 0x0002 + pushbytes 0x0002 callsub *process_static_tuple_element - byte 0x000200000000000000030000000000000004 + pushbytes 0x000200000000000000030000000000000004 callsub *process_dynamic_tuple_element - byte 0x000200050006 + pushbytes 0x000200050006 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -67,11 +68,11 @@ returnTupleWithDyamicArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -79,7 +80,7 @@ returnTupleWithDyamicArray: err *call_NoOp: - method "returnTupleWithDyamicArray()(uint64,uint16,uint64[],uint16[])" + pushbytes 0x88a69c5c // method "returnTupleWithDyamicArray()(uint64,uint16,uint64[],uint16[])" txna ApplicationArgs 0 match *abi_route_returnTupleWithDyamicArray diff --git a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json index d80d557d9..971cd88af 100644 --- a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json +++ b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCiphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkoKSh1aW50NjQsdWludDE2LHVpbnQ2NFtdLHVpbnQxNltdKQoJY2FsbHN1YiByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQpyZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MAoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dID0gWzEsIDIsIFszLCA0XSwgWzUsIDZdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwZSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAwMDUwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NFtdLCB1aW50MTZbXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCkodWludDY0LHVpbnQxNix1aW50NjRbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlV2l0aER5YW1pY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCiphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCgljYWxsc3ViIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQpyZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MAoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dID0gWzEsIDIsIFszLCA0XSwgWzUsIDZdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDBlIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDA1MDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozOTIKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg4YTY5YzVjIC8vIG1ldGhvZCAicmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkoKSh1aW50NjQsdWludDE2LHVpbnQ2NFtdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc56_draft.json b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc56_draft.json index dec890182..e44f66b5c 100644 --- a/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc56_draft.json @@ -61,666 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 388, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 388, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 388, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 388, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 388, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 388, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 388, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 388, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 388, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 389, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 389, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 389, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 389, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 389, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 389, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 389, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 42, - "source": 389, - "pc": [ - 59 - ] - }, - { - "teal": 46, - "source": 390, - "pc": [ - 60 - ] - }, - { - "teal": 47, - "source": 390, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 390, - "pc": [ - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 49, - "source": 390, - "pc": [ - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 50, - "source": 390, - "pc": [ - 76, - 77, - 78 - ] - }, - { - "teal": 51, - "source": 390, - "pc": [ - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 52, - "source": 390, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 53, - "source": 390, - "pc": [ - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 54, - "source": 390, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 55, - "source": 390, - "pc": [ - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116 - ] - }, - { - "teal": 56, - "source": 390, - "pc": [ - 117, - 118, - 119 - ] - }, - { - "teal": 57, - "source": 390, - "pc": [ - 120 - ] - }, - { - "teal": 58, - "source": 390, - "pc": [ - 121 - ] - }, - { - "teal": 59, - "source": 390, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 63, - "source": 392, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 66, - "source": 389, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 67, - "source": 389, - "pc": [ - 128 - ] - }, - { - "teal": 70, - "source": 388, - "pc": [ - 129 - ] - }, - { - "teal": 71, - "source": 388, - "pc": [ - 130 - ] - }, - { - "teal": 74, - "source": 388, - "pc": [ - 131, - 132, - 133, - 134, - 135, - 136 - ] - }, - { - "teal": 75, - "source": 388, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 76, - "source": 388, - "pc": [ - 140, - 141, - 142, - 143 - ] - }, - { - "teal": 79, - "source": 388, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 144 - ] - }, - { - "teal": 82, - "source": 388, - "pc": [ - 145, - 146, - 147, - 148, - 149, - 150 - ] - }, - { - "teal": 83, - "source": 388, - "pc": [ - 151, - 152, - 153 - ] - }, - { - "teal": 84, - "source": 388, - "pc": [ - 154, - 155, - 156, - 157 - ] - }, - { - "teal": 87, - "source": 388, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 158 - ] - }, - { - "teal": 90, - "source": 388, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 91, - "source": 388, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 92, - "source": 388, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 93, - "source": 388, - "pc": [ - 166 - ] - }, - { - "teal": 94, - "source": 388, - "pc": [ - 167, - 168 - ] - }, - { - "teal": 95, - "source": 388, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 96, - "source": 388, - "pc": [ - 171 - ] - }, - { - "teal": 99, - "source": 388, - "pc": [ - 172, - 173, - 174 - ] - }, - { - "teal": 100, - "source": 388, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 101, - "source": 388, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 102, - "source": 388, - "pc": [ - 179 - ] - }, - { - "teal": 103, - "source": 388, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 104, - "source": 388, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 105, - "source": 388, - "pc": [ - 184 - ] - }, - { - "teal": 106, - "source": 388, - "pc": [ - 185 - ] - }, - { - "teal": 107, - "source": 388, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 108, - "source": 388, - "pc": [ - 188 - ] - }, - { - "teal": 109, - "source": 388, - "pc": [ - 189 - ] - }, - { - "teal": 110, - "source": 388, - "pc": [ - 190 - ] - }, - { - "teal": 111, - "source": 388, - "pc": [ - 191, - 192, - 193 - ] - }, - { - "teal": 112, - "source": 388, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 113, - "source": 388, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 114, - "source": 388, - "pc": [ - 198 - ] - }, - { - "teal": 115, - "source": 388, - "pc": [ - 199 - ] - }, - { - "teal": 116, - "source": 388, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 117, - "source": 388, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 118, - "source": 388, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 119, - "source": 388, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 120, - "source": 388, - "pc": [ - 208 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 146 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 160 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCiphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkoKSh1aW50NjQsdWludDE2LHVpbnQ2NFtdLHVpbnQxNltdKQoJY2FsbHN1YiByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQpyZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MAoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dID0gWzEsIDIsIFszLCA0XSwgWzUsIDZdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwZSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAwMDUwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MgoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NFtdLCB1aW50MTZbXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCkodWludDY0LHVpbnQxNix1aW50NjRbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3JldHVyblR1cGxlV2l0aER5YW1pY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCiphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheSgpKHVpbnQ2NCx1aW50MTYsdWludDY0W10sdWludDE2W10pCgljYWxsc3ViIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHJldHVyblR1cGxlV2l0aER5YW1pY0FycmF5KCk6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQpyZXR1cm5UdXBsZVdpdGhEeWFtaWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM5MAoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dID0gWzEsIDIsIFszLCA0XSwgWzUsIDZdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDBlIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDAwMDAwMDAwMDAwMDAzMDAwMDAwMDAwMDAwMDAwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDA1MDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozOTIKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRbXSwgdWludDE2W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg4YTY5YzVjIC8vIG1ldGhvZCAicmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkoKSh1aW50NjQsdWludDE2LHVpbnQ2NFtdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcmV0dXJuVHVwbGVXaXRoRHlhbWljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAGcAAAAAAAAAAAAAAFkAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoKCiAAgAOgAgAAAAAAAAAAYgAUIACAAKIAEmAEgACAAAAAAAAAAMAAAAAAAAABIgAP4AGAAIABQAGiAA0SFCMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEiKacXDYaAI4B/40AigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", + "approval": "CiYBADEYFIEGCzEZCI0MAGwAAAAAAAAAAAAAAF4AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIADoAIAAAAAAAAAAGIAFGAAgACiABKgBIAAgAAAAAAAAADAAAAAAAAAASIAECABgACAAUABogANUhQjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgASIppxcNhoAjgH/iACKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal b/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal index f539dfe89..4a0427cbc 100644 --- a/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal +++ b/tests/contracts/artifacts/ABITestSetStaticArrayElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // setStaticArrayElement()uint64 *abi_route_setStaticArrayElement: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute setStaticArrayElement()uint64 callsub setStaticArrayElement itob concat log - int 1 + pushint 1 return // setStaticArrayElement(): uint64 @@ -40,17 +40,17 @@ setStaticArrayElement: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:64 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:66 // a[1] = 222 frame_dig 0 // a: StaticArray - byte 0x00000000000000de + pushbytes 0x00000000000000de replace2 8 frame_bury 0 // a: StaticArray @@ -65,11 +65,11 @@ setStaticArrayElement: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -77,7 +77,7 @@ setStaticArrayElement: err *call_NoOp: - method "setStaticArrayElement()uint64" + pushbytes 0xc0f5f001 // method "setStaticArrayElement()uint64" txna ApplicationArgs 0 match *abi_route_setStaticArrayElement diff --git a/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json b/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json index 5bb297cd4..5c71a237f 100644 --- a/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json +++ b/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3NldFN0YXRpY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiBzZXRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKTogdWludDY0CnNldFN0YXRpY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NgoJLy8gYVsxXSA9IDIyMgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2V0U3RhdGljQXJyYXlFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2V0U3RhdGljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9zZXRTdGF0aWNBcnJheUVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiBzZXRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc2V0U3RhdGljQXJyYXlFbGVtZW50KCk6IHVpbnQ2NApzZXRTdGF0aWNBcnJheUVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2CgkvLyBhWzFdID0gMjIyCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2OAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhjMGY1ZjAwMSAvLyBtZXRob2QgInNldFN0YXRpY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zZXRTdGF0aWNBcnJheUVsZW1lbnQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc56_draft.json b/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc56_draft.json index 9706076f8..f7e88fa3d 100644 --- a/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSetStaticArrayElement.arc56_draft.json @@ -61,395 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 62, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 62, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 62, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 62, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 62, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 62, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 62, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 62, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 62, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 63, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 63, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 63, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 63, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 63, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 63, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 63, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 63, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 63, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 64, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 48, - "source": 64, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 52, - "source": 66, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 53, - "source": 66, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 54, - "source": 66, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 55, - "source": 66, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 59, - "source": 68, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 60, - "source": 68, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 61, - "source": 68, - "pc": [ - 108 - ] - }, - { - "teal": 64, - "source": 63, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 65, - "source": 63, - "pc": [ - 111 - ] - }, - { - "teal": 68, - "source": 62, - "pc": [ - 112 - ] - }, - { - "teal": 69, - "source": 62, - "pc": [ - 113 - ] - }, - { - "teal": 72, - "source": 62, - "pc": [ - 114, - 115, - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 73, - "source": 62, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 74, - "source": 62, - "pc": [ - 123, - 124, - 125, - 126 - ] - }, - { - "teal": 77, - "source": 62, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 127 - ] - }, - { - "teal": 80, - "source": 62, - "pc": [ - 128, - 129, - 130, - 131, - 132, - 133 - ] - }, - { - "teal": 81, - "source": 62, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 82, - "source": 62, - "pc": [ - 137, - 138, - 139, - 140 - ] - }, - { - "teal": 85, - "source": 62, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 141 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 126 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 140 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3NldFN0YXRpY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiBzZXRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKTogdWludDY0CnNldFN0YXRpY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NgoJLy8gYVsxXSA9IDIyMgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2V0U3RhdGljQXJyYXlFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2V0U3RhdGljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9zZXRTdGF0aWNBcnJheUVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzZXRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiBzZXRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc2V0U3RhdGljQXJyYXlFbGVtZW50KCk6IHVpbnQ2NApzZXRTdGF0aWNBcnJheUVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY2CgkvLyBhWzFdID0gMjIyCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2OAoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhjMGY1ZjAwMSAvLyBtZXRob2QgInNldFN0YXRpY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zZXRTdGF0aWNBcnJheUVsZW1lbnQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAFkAAAAAAAAAAAAAAEsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAiwCACAAAAAAAAADeXAiMAIsAVwgIF4wAiSJDgAS4RHs2NhoAjgH/8QCABMD18AE2GgCOAf+bAA==", + "approval": "CjEYFIEGCzEZCI0MAFsAAAAAAAAAAAAAAE0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIsAgAgAAAAAAAAA3lwIjACLAFcICBeMAImBAUOABLhEezY2GgCOAf/wAIAEwPXwATYaAI4B/5kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal b/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal index b1e6dd824..3f1d59941 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // shortTypeNotation()uint16 *abi_route_shortTypeNotation: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute shortTypeNotation()uint16 callsub shortTypeNotation itob dup bitlen - int 16 + pushint 16 <= // shortTypeNotation return value overflowed 16 bits @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 6 2 concat log - int 1 + pushint 1 return // shortTypeNotation(): uint16 @@ -48,7 +48,7 @@ shortTypeNotation: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:292 // a: [StaticArray, StaticArray, StaticArray] = [ @@ -56,7 +56,7 @@ shortTypeNotation: // [33, 44], // [55, 66], // ] - byte 0x000b00160000000000000021000000000000002c00370042 + pushbytes 0x000b00160000000000000021000000000000002c00370042 frame_bury 0 // a: [StaticArray, StaticArray, StaticArray] // tests/contracts/abi.algo.ts:298 @@ -70,11 +70,11 @@ shortTypeNotation: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -82,7 +82,7 @@ shortTypeNotation: err *call_NoOp: - method "shortTypeNotation()uint16" + pushbytes 0x8aae3c7f // method "shortTypeNotation()uint16" txna ApplicationArgs 0 match *abi_route_shortTypeNotation diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json b/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json index 178c11ba7..183c9af2d 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2CiphYmlfcm91dGVfc2hvcnRUeXBlTm90YXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoJY2FsbHN1YiBzaG9ydFR5cGVOb3RhdGlvbgoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyBzaG9ydFR5cGVOb3RhdGlvbiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2hvcnRUeXBlTm90YXRpb24oKTogdWludDE2CnNob3J0VHlwZU5vdGF0aW9uOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjkyCgkvLyBhOiBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgU3RhdGljQXJyYXk8dWludDE2LCAyPl0gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgICAgWzU1LCA2Nl0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3MDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCBTdGF0aWNBcnJheTx1aW50MTYsIDI+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyOTgKCS8vIHJldHVybiBhWzJdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dCglleHRyYWN0IDIyIDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoqYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoJY2FsbHN1YiBzaG9ydFR5cGVOb3RhdGlvbgoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMTYKCTw9CgoJLy8gc2hvcnRUeXBlTm90YXRpb24gcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpOiB1aW50MTYKc2hvcnRUeXBlTm90YXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI5MgoJLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICAgIFs1NSwgNjZdLAoJLy8gICAgIF0KCXB1c2hieXRlcyAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3MDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCBTdGF0aWNBcnJheTx1aW50MTYsIDI+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyOTgKCS8vIHJldHVybiBhWzJdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dCglleHRyYWN0IDIyIDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGFhZTNjN2YgLy8gbWV0aG9kICJzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zaG9ydFR5cGVOb3RhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.arc56_draft.json b/tests/contracts/artifacts/ABITestShortTypeNotation.arc56_draft.json index 4a8d9a014..7039e4149 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.arc56_draft.json @@ -61,401 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 290, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 290, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 290, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 290, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 290, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 290, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 290, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 290, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 290, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 291, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 291, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 291, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 291, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 291, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 291, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 36, - "source": 291, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 291, - "errorMessage": "shortTypeNotation return value overflowed 16 bits", - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 291, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 41, - "source": 291, - "pc": [ - 59 - ] - }, - { - "teal": 42, - "source": 291, - "pc": [ - 60 - ] - }, - { - "teal": 43, - "source": 291, - "pc": [ - 61 - ] - }, - { - "teal": 44, - "source": 291, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 291, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 51, - "source": 291, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 59, - "source": 295, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 60, - "source": 292, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 64, - "source": 298, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 65, - "source": 298, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 66, - "source": 298, - "pc": [ - 101 - ] - }, - { - "teal": 69, - "source": 291, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 70, - "source": 291, - "pc": [ - 104 - ] - }, - { - "teal": 73, - "source": 290, - "pc": [ - 105 - ] - }, - { - "teal": 74, - "source": 290, - "pc": [ - 106 - ] - }, - { - "teal": 77, - "source": 290, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 78, - "source": 290, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 79, - "source": 290, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 82, - "source": 290, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 120 - ] - }, - { - "teal": 85, - "source": 290, - "pc": [ - 121, - 122, - 123, - 124, - 125, - 126 - ] - }, - { - "teal": 86, - "source": 290, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 87, - "source": 290, - "pc": [ - 130, - 131, - 132, - 133 - ] - }, - { - "teal": 90, - "source": 290, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 134 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "shortTypeNotation return value overflowed 16 bits" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 133 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2CiphYmlfcm91dGVfc2hvcnRUeXBlTm90YXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoJY2FsbHN1YiBzaG9ydFR5cGVOb3RhdGlvbgoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyBzaG9ydFR5cGVOb3RhdGlvbiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2hvcnRUeXBlTm90YXRpb24oKTogdWludDE2CnNob3J0VHlwZU5vdGF0aW9uOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjkyCgkvLyBhOiBbU3RhdGljQXJyYXk8dWludDE2LCAyPiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgU3RhdGljQXJyYXk8dWludDE2LCAyPl0gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgICAgWzU1LCA2Nl0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3MDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCBTdGF0aWNBcnJheTx1aW50MTYsIDI+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyOTgKCS8vIHJldHVybiBhWzJdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dCglleHRyYWN0IDIyIDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoqYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2hvcnRUeXBlTm90YXRpb24oKXVpbnQxNgoJY2FsbHN1YiBzaG9ydFR5cGVOb3RhdGlvbgoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMTYKCTw9CgoJLy8gc2hvcnRUeXBlTm90YXRpb24gcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzaG9ydFR5cGVOb3RhdGlvbigpOiB1aW50MTYKc2hvcnRUeXBlTm90YXRpb246Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI5MgoJLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICAgIFs1NSwgNjZdLAoJLy8gICAgIF0KCXB1c2hieXRlcyAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3MDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFtTdGF0aWNBcnJheTx1aW50MTYsIDI+LCBTdGF0aWNBcnJheTx1aW50NjQsIDI+LCBTdGF0aWNBcnJheTx1aW50MTYsIDI+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyOTgKCS8vIHJldHVybiBhWzJdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogW1N0YXRpY0FycmF5PHVpbnQxNiwgMj4sIFN0YXRpY0FycmF5PHVpbnQ2NCwgMj4sIFN0YXRpY0FycmF5PHVpbnQxNiwgMj5dCglleHRyYWN0IDIyIDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGFhZTNjN2YgLy8gbWV0aG9kICJzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zaG9ydFR5cGVOb3RhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAFIAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAIAEFR98dYgADhZJk4EQDkRXBgJQsCJDigABgACAGAALABYAAAAAAAAAIQAAAAAAAAAsADcAQowAiwBXFgIXjACJIkOABLhEezY2GgCOAf/xAIAEiq48fzYaAI4B/6IA", + "approval": "CjEYFIEGCzEZCI0MAFQAAAAAAAAAAAAAAEYAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EQDkRXBgJQsIEBQ4oAAYAAgBgACwAWAAAAAAAAACEAAAAAAAAALAA3AEKMAIsAVxYCF4wAiYEBQ4AEuER7NjYaAI4B//AAgASKrjx/NhoAjgH/oAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal index b54ef9147..b7c30c963 100644 --- a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 2 +bytecblock 0x00010005 0x00010006 0x00010007 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +27,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // shortenDynamicElementInTuple()(uint16[],uint16[],uint16[]) *abi_route_shortenDynamicElementInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute shortenDynamicElementInTuple()(uint16[],uint16[],uint16[]) callsub shortenDynamicElementInTuple concat log - int 1 + pushint 1 return // shortenDynamicElementInTuple(): [uint16[], uint16[], uint16[]] @@ -49,12 +51,12 @@ shortenDynamicElementInTuple: // ] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x000200010002 + pushbytes 0x0006 // initial head offset + pushbytes 0x000200010002 callsub *process_dynamic_tuple_element - byte 0x000200020003 + pushbytes 0x000200020003 callsub *process_dynamic_tuple_element - byte 0x000200030004 + pushbytes 0x000200030004 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -64,7 +66,7 @@ shortenDynamicElementInTuple: // a[0] = [5] frame_dig 0 // a: [uint16[], uint16[], uint16[]] store 255 // full array - int 0 + pushint 0 dup store 251 // element head offset load 255 // full array @@ -83,7 +85,7 @@ shortenDynamicElementInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00010005 @@ -107,7 +109,7 @@ shortenDynamicElementInTuple: callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -136,7 +138,7 @@ shortenDynamicElementInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00010006 @@ -165,7 +167,7 @@ shortenDynamicElementInTuple: // a[2] = [7] frame_dig 0 // a: [uint16[], uint16[], uint16[]] store 255 // full array - int 4 + pushint 4 dup store 251 // element head offset load 255 // full array @@ -184,7 +186,7 @@ shortenDynamicElementInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00010007 @@ -213,11 +215,11 @@ shortenDynamicElementInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -225,7 +227,7 @@ shortenDynamicElementInTuple: err *call_NoOp: - method "shortenDynamicElementInTuple()(uint16[],uint16[],uint16[])" + pushbytes 0xa7dbad86 // method "shortenDynamicElementInTuple()(uint16[],uint16[],uint16[])" txna ApplicationArgs 0 match *abi_route_shortenDynamicElementInTuple @@ -291,7 +293,7 @@ shortenDynamicElementInTuple: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -299,7 +301,7 @@ shortenDynamicElementInTuple: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json index a5ece96a4..d6a7609f5 100644 --- a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCgljYWxsc3ViIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQpzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTg2CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbCgkvLyAgICAgICBbMSwgMl0sCgkvLyAgICAgICBbMiwgM10sCgkvLyAgICAgICBbMywgNF0sCgkvLyAgICAgXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMjAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMDAyMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMzAwMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTkyCgkvLyBhWzBdID0gWzVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA1CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTkzCgkvLyBhWzFdID0gWzZdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA2CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTQKCS8vIGFbMl0gPSBbN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMTAwMDcKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTk2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQxNltdLHVpbnQxNltdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDAxMDAwNSAweDAwMDEwMDA2IDB4MDAwMTAwMDcgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkKCWNhbGxzdWIgc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQpzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTg2CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbCgkvLyAgICAgICBbMSwgMl0sCgkvLyAgICAgICBbMiwgM10sCgkvLyAgICAgICBbMywgNF0sCgkvLyAgICAgXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDIwMDAxMDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDAyMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDAzMDAwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTIKCS8vIGFbMF0gPSBbNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAxMDAwNQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglwdXNoaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTMKCS8vIGFbMV0gPSBbNl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA2CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTQKCS8vIGFbMl0gPSBbN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAxMDAwNwoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGE3ZGJhZDg2IC8vIG1ldGhvZCAic2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQxNltdLHVpbnQxNltdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJcHVzaGludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJcHVzaGludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc56_draft.json index 828b85185..4622fdbce 100644 --- a/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc56_draft.json @@ -61,1917 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 584, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ] - }, - { - "teal": 13, - "source": 584, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 14, - "source": 584, - "pc": [ - 12 - ] - }, - { - "teal": 15, - "source": 584, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 16, - "source": 584, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 584, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 584, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 584, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 584, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 585, - "pc": [ - 46, - 47, - 48, - 49, - 50, - 51 - ] - }, - { - "teal": 31, - "source": 585, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 32, - "source": 585, - "pc": [ - 55 - ] - }, - { - "teal": 33, - "source": 585, - "pc": [ - 56 - ] - }, - { - "teal": 34, - "source": 585, - "pc": [ - 57 - ] - }, - { - "teal": 35, - "source": 585, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 585, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 42, - "source": 585, - "pc": [ - 62 - ] - }, - { - "teal": 50, - "source": 586, - "pc": [ - 63 - ] - }, - { - "teal": 51, - "source": 586, - "pc": [ - 64 - ] - }, - { - "teal": 52, - "source": 586, - "pc": [ - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 53, - "source": 587, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 54, - "source": 587, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 55, - "source": 588, - "pc": [ - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 56, - "source": 588, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 57, - "source": 589, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 58, - "source": 589, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 59, - "source": 586, - "pc": [ - 102 - ] - }, - { - "teal": 60, - "source": 586, - "pc": [ - 103 - ] - }, - { - "teal": 61, - "source": 586, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 65, - "source": 592, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 66, - "source": 592, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 67, - "source": 592, - "pc": [ - 110 - ] - }, - { - "teal": 68, - "source": 592, - "pc": [ - 111 - ] - }, - { - "teal": 69, - "source": 592, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 70, - "source": 592, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 71, - "source": 592, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 72, - "source": 592, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 73, - "source": 592, - "pc": [ - 120 - ] - }, - { - "teal": 74, - "source": 592, - "pc": [ - 121 - ] - }, - { - "teal": 75, - "source": 592, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 76, - "source": 592, - "pc": [ - 124 - ] - }, - { - "teal": 77, - "source": 592, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 78, - "source": 592, - "pc": [ - 127 - ] - }, - { - "teal": 79, - "source": 592, - "pc": [ - 128 - ] - }, - { - "teal": 80, - "source": 592, - "pc": [ - 129 - ] - }, - { - "teal": 81, - "source": 592, - "pc": [ - 130 - ] - }, - { - "teal": 82, - "source": 592, - "pc": [ - 131 - ] - }, - { - "teal": 83, - "source": 592, - "pc": [ - 132 - ] - }, - { - "teal": 84, - "source": 592, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 85, - "source": 592, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 86, - "source": 592, - "pc": [ - 137 - ] - }, - { - "teal": 87, - "source": 592, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 88, - "source": 592, - "pc": [ - 140 - ] - }, - { - "teal": 89, - "source": 592, - "pc": [ - 141, - 142, - 143, - 144, - 145, - 146 - ] - }, - { - "teal": 90, - "source": 592, - "pc": [ - 147 - ] - }, - { - "teal": 91, - "source": 592, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 92, - "source": 592, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 93, - "source": 592, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 94, - "source": 592, - "pc": [ - 154, - 155 - ] - }, - { - "teal": 95, - "source": 592, - "pc": [ - 156 - ] - }, - { - "teal": 96, - "source": 592, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 97, - "source": 592, - "pc": [ - 159 - ] - }, - { - "teal": 98, - "source": 592, - "pc": [ - 160 - ] - }, - { - "teal": 99, - "source": 592, - "pc": [ - 161 - ] - }, - { - "teal": 100, - "source": 592, - "pc": [ - 162 - ] - }, - { - "teal": 101, - "source": 592, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 102, - "source": 592, - "pc": [ - 165, - 166, - 167 - ] - }, - { - "teal": 103, - "source": 592, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 104, - "source": 592, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 105, - "source": 592, - "pc": [ - 172 - ] - }, - { - "teal": 106, - "source": 592, - "pc": [ - 173 - ] - }, - { - "teal": 107, - "source": 592, - "pc": [ - 174, - 175, - 176 - ] - }, - { - "teal": 108, - "source": 592, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 109, - "source": 592, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 110, - "source": 592, - "pc": [ - 181 - ] - }, - { - "teal": 111, - "source": 592, - "pc": [ - 182 - ] - }, - { - "teal": 112, - "source": 592, - "pc": [ - 183, - 184, - 185 - ] - }, - { - "teal": 113, - "source": 592, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 114, - "source": 592, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 118, - "source": 593, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 119, - "source": 593, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 120, - "source": 593, - "pc": [ - 194 - ] - }, - { - "teal": 121, - "source": 593, - "pc": [ - 195 - ] - }, - { - "teal": 122, - "source": 593, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 123, - "source": 593, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 124, - "source": 593, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 125, - "source": 593, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 126, - "source": 593, - "pc": [ - 204 - ] - }, - { - "teal": 127, - "source": 593, - "pc": [ - 205 - ] - }, - { - "teal": 128, - "source": 593, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 129, - "source": 593, - "pc": [ - 208 - ] - }, - { - "teal": 130, - "source": 593, - "pc": [ - 209, - 210 - ] - }, - { - "teal": 131, - "source": 593, - "pc": [ - 211 - ] - }, - { - "teal": 132, - "source": 593, - "pc": [ - 212 - ] - }, - { - "teal": 133, - "source": 593, - "pc": [ - 213 - ] - }, - { - "teal": 134, - "source": 593, - "pc": [ - 214 - ] - }, - { - "teal": 135, - "source": 593, - "pc": [ - 215 - ] - }, - { - "teal": 136, - "source": 593, - "pc": [ - 216 - ] - }, - { - "teal": 137, - "source": 593, - "pc": [ - 217, - 218 - ] - }, - { - "teal": 138, - "source": 593, - "pc": [ - 219, - 220 - ] - }, - { - "teal": 139, - "source": 593, - "pc": [ - 221 - ] - }, - { - "teal": 140, - "source": 593, - "pc": [ - 222, - 223 - ] - }, - { - "teal": 141, - "source": 593, - "pc": [ - 224 - ] - }, - { - "teal": 142, - "source": 593, - "pc": [ - 225, - 226, - 227, - 228, - 229, - 230 - ] - }, - { - "teal": 143, - "source": 593, - "pc": [ - 231 - ] - }, - { - "teal": 144, - "source": 593, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 145, - "source": 593, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 146, - "source": 593, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 147, - "source": 593, - "pc": [ - 238, - 239 - ] - }, - { - "teal": 148, - "source": 593, - "pc": [ - 240 - ] - }, - { - "teal": 149, - "source": 593, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 150, - "source": 593, - "pc": [ - 243 - ] - }, - { - "teal": 151, - "source": 593, - "pc": [ - 244 - ] - }, - { - "teal": 152, - "source": 593, - "pc": [ - 245 - ] - }, - { - "teal": 153, - "source": 593, - "pc": [ - 246 - ] - }, - { - "teal": 154, - "source": 593, - "pc": [ - 247, - 248 - ] - }, - { - "teal": 155, - "source": 593, - "pc": [ - 249, - 250, - 251 - ] - }, - { - "teal": 156, - "source": 593, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 157, - "source": 593, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 158, - "source": 593, - "pc": [ - 256 - ] - }, - { - "teal": 159, - "source": 593, - "pc": [ - 257 - ] - }, - { - "teal": 160, - "source": 593, - "pc": [ - 258, - 259, - 260 - ] - }, - { - "teal": 161, - "source": 593, - "pc": [ - 261, - 262 - ] - }, - { - "teal": 162, - "source": 593, - "pc": [ - 263, - 264 - ] - }, - { - "teal": 166, - "source": 594, - "pc": [ - 265, - 266 - ] - }, - { - "teal": 167, - "source": 594, - "pc": [ - 267, - 268 - ] - }, - { - "teal": 168, - "source": 594, - "pc": [ - 269 - ] - }, - { - "teal": 169, - "source": 594, - "pc": [ - 270 - ] - }, - { - "teal": 170, - "source": 594, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 171, - "source": 594, - "pc": [ - 273, - 274 - ] - }, - { - "teal": 172, - "source": 594, - "pc": [ - 275, - 276 - ] - }, - { - "teal": 173, - "source": 594, - "pc": [ - 277, - 278 - ] - }, - { - "teal": 174, - "source": 594, - "pc": [ - 279 - ] - }, - { - "teal": 175, - "source": 594, - "pc": [ - 280 - ] - }, - { - "teal": 176, - "source": 594, - "pc": [ - 281, - 282 - ] - }, - { - "teal": 177, - "source": 594, - "pc": [ - 283 - ] - }, - { - "teal": 178, - "source": 594, - "pc": [ - 284, - 285 - ] - }, - { - "teal": 179, - "source": 594, - "pc": [ - 286 - ] - }, - { - "teal": 180, - "source": 594, - "pc": [ - 287 - ] - }, - { - "teal": 181, - "source": 594, - "pc": [ - 288 - ] - }, - { - "teal": 182, - "source": 594, - "pc": [ - 289 - ] - }, - { - "teal": 183, - "source": 594, - "pc": [ - 290 - ] - }, - { - "teal": 184, - "source": 594, - "pc": [ - 291 - ] - }, - { - "teal": 185, - "source": 594, - "pc": [ - 292, - 293 - ] - }, - { - "teal": 186, - "source": 594, - "pc": [ - 294, - 295 - ] - }, - { - "teal": 187, - "source": 594, - "pc": [ - 296 - ] - }, - { - "teal": 188, - "source": 594, - "pc": [ - 297, - 298 - ] - }, - { - "teal": 189, - "source": 594, - "pc": [ - 299 - ] - }, - { - "teal": 190, - "source": 594, - "pc": [ - 300, - 301, - 302, - 303, - 304, - 305 - ] - }, - { - "teal": 191, - "source": 594, - "pc": [ - 306 - ] - }, - { - "teal": 192, - "source": 594, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 193, - "source": 594, - "pc": [ - 309, - 310 - ] - }, - { - "teal": 194, - "source": 594, - "pc": [ - 311, - 312 - ] - }, - { - "teal": 195, - "source": 594, - "pc": [ - 313, - 314 - ] - }, - { - "teal": 196, - "source": 594, - "pc": [ - 315 - ] - }, - { - "teal": 197, - "source": 594, - "pc": [ - 316, - 317 - ] - }, - { - "teal": 198, - "source": 594, - "pc": [ - 318 - ] - }, - { - "teal": 199, - "source": 594, - "pc": [ - 319 - ] - }, - { - "teal": 200, - "source": 594, - "pc": [ - 320 - ] - }, - { - "teal": 201, - "source": 594, - "pc": [ - 321 - ] - }, - { - "teal": 202, - "source": 594, - "pc": [ - 322, - 323 - ] - }, - { - "teal": 203, - "source": 594, - "pc": [ - 324, - 325, - 326 - ] - }, - { - "teal": 204, - "source": 594, - "pc": [ - 327, - 328 - ] - }, - { - "teal": 205, - "source": 594, - "pc": [ - 329, - 330 - ] - }, - { - "teal": 209, - "source": 596, - "pc": [ - 331, - 332 - ] - }, - { - "teal": 212, - "source": 585, - "pc": [ - 333, - 334 - ] - }, - { - "teal": 213, - "source": 585, - "pc": [ - 335 - ] - }, - { - "teal": 216, - "source": 584, - "pc": [ - 336 - ] - }, - { - "teal": 217, - "source": 584, - "pc": [ - 337 - ] - }, - { - "teal": 220, - "source": 584, - "pc": [ - 338, - 339, - 340, - 341, - 342, - 343 - ] - }, - { - "teal": 221, - "source": 584, - "pc": [ - 344, - 345, - 346 - ] - }, - { - "teal": 222, - "source": 584, - "pc": [ - 347, - 348, - 349, - 350 - ] - }, - { - "teal": 225, - "source": 584, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 351 - ] - }, - { - "teal": 228, - "source": 584, - "pc": [ - 352, - 353, - 354, - 355, - 356, - 357 - ] - }, - { - "teal": 229, - "source": 584, - "pc": [ - 358, - 359, - 360 - ] - }, - { - "teal": 230, - "source": 584, - "pc": [ - 361, - 362, - 363, - 364 - ] - }, - { - "teal": 233, - "source": 584, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 365 - ] - }, - { - "teal": 236, - "source": 584, - "pc": [ - 366, - 367, - 368 - ] - }, - { - "teal": 237, - "source": 584, - "pc": [ - 369, - 370 - ] - }, - { - "teal": 238, - "source": 584, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 239, - "source": 584, - "pc": [ - 373 - ] - }, - { - "teal": 240, - "source": 584, - "pc": [ - 374, - 375 - ] - }, - { - "teal": 241, - "source": 584, - "pc": [ - 376, - 377 - ] - }, - { - "teal": 242, - "source": 584, - "pc": [ - 378 - ] - }, - { - "teal": 243, - "source": 584, - "pc": [ - 379 - ] - }, - { - "teal": 244, - "source": 584, - "pc": [ - 380, - 381 - ] - }, - { - "teal": 245, - "source": 584, - "pc": [ - 382 - ] - }, - { - "teal": 246, - "source": 584, - "pc": [ - 383 - ] - }, - { - "teal": 247, - "source": 584, - "pc": [ - 384 - ] - }, - { - "teal": 248, - "source": 584, - "pc": [ - 385, - 386, - 387 - ] - }, - { - "teal": 249, - "source": 584, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 250, - "source": 584, - "pc": [ - 390, - 391 - ] - }, - { - "teal": 251, - "source": 584, - "pc": [ - 392 - ] - }, - { - "teal": 252, - "source": 584, - "pc": [ - 393 - ] - }, - { - "teal": 253, - "source": 584, - "pc": [ - 394, - 395 - ] - }, - { - "teal": 254, - "source": 584, - "pc": [ - 396, - 397 - ] - }, - { - "teal": 255, - "source": 584, - "pc": [ - 398, - 399 - ] - }, - { - "teal": 256, - "source": 584, - "pc": [ - 400, - 401 - ] - }, - { - "teal": 257, - "source": 584, - "pc": [ - 402 - ] - }, - { - "teal": 260, - "source": 584, - "pc": [ - 403, - 404, - 405 - ] - }, - { - "teal": 261, - "source": 584, - "pc": [ - 406, - 407 - ] - }, - { - "teal": 262, - "source": 584, - "pc": [ - 408, - 409 - ] - }, - { - "teal": 263, - "source": 584, - "pc": [ - 410, - 411 - ] - }, - { - "teal": 264, - "source": 584, - "pc": [ - 412 - ] - }, - { - "teal": 265, - "source": 584, - "pc": [ - 413, - 414 - ] - }, - { - "teal": 266, - "source": 584, - "pc": [ - 415, - 416, - 417 - ] - }, - { - "teal": 267, - "source": 584, - "pc": [ - 418 - ] - }, - { - "teal": 268, - "source": 584, - "pc": [ - 419, - 420, - 421 - ] - }, - { - "teal": 271, - "source": 584, - "pc": [ - 422 - ] - }, - { - "teal": 272, - "source": 584, - "pc": [ - 423 - ] - }, - { - "teal": 275, - "source": 584, - "pc": [ - 424 - ] - }, - { - "teal": 276, - "source": 584, - "pc": [ - 425, - 426, - 427 - ] - }, - { - "teal": 277, - "source": 584, - "pc": [ - 428, - 429 - ] - }, - { - "teal": 278, - "source": 584, - "pc": [ - 430 - ] - }, - { - "teal": 279, - "source": 584, - "pc": [ - 431, - 432 - ] - }, - { - "teal": 280, - "source": 584, - "pc": [ - 433 - ] - }, - { - "teal": 281, - "source": 584, - "pc": [ - 434 - ] - }, - { - "teal": 282, - "source": 584, - "pc": [ - 435, - 436 - ] - }, - { - "teal": 283, - "source": 584, - "pc": [ - 437 - ] - }, - { - "teal": 286, - "source": 584, - "pc": [ - 438, - 439 - ] - }, - { - "teal": 287, - "source": 584, - "pc": [ - 440 - ] - }, - { - "teal": 288, - "source": 584, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 289, - "source": 584, - "pc": [ - 443 - ] - }, - { - "teal": 290, - "source": 584, - "pc": [ - 444, - 445, - 446 - ] - }, - { - "teal": 291, - "source": 584, - "pc": [ - 447, - 448 - ] - }, - { - "teal": 292, - "source": 584, - "pc": [ - 449 - ] - }, - { - "teal": 293, - "source": 584, - "pc": [ - 450, - 451 - ] - }, - { - "teal": 294, - "source": 584, - "pc": [ - 452 - ] - }, - { - "teal": 295, - "source": 584, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 296, - "source": 584, - "pc": [ - 455, - 456, - 457 - ] - }, - { - "teal": 299, - "source": 584, - "pc": [ - 458, - 459 - ] - }, - { - "teal": 300, - "source": 584, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 301, - "source": 584, - "pc": [ - 462 - ] - }, - { - "teal": 302, - "source": 584, - "pc": [ - 463 - ] - }, - { - "teal": 303, - "source": 584, - "pc": [ - 464, - 465 - ] - }, - { - "teal": 306, - "source": 584, - "pc": [ - 466 - ] - }, - { - "teal": 307, - "source": 584, - "pc": [ - 467, - 468 - ] - }, - { - "teal": 308, - "source": 584, - "pc": [ - 469 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 57 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 383 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 397 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCgljYWxsc3ViIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQpzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTg2CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbCgkvLyAgICAgICBbMSwgMl0sCgkvLyAgICAgICBbMiwgM10sCgkvLyAgICAgICBbMywgNF0sCgkvLyAgICAgXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMjAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDIwMDAyMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwMzAwMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTkyCgkvLyBhWzBdID0gWzVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA1CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTkzCgkvLyBhWzFdID0gWzZdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA2CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTQKCS8vIGFbMl0gPSBbN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMTAwMDcKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTk2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQxNltdLHVpbnQxNltdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDAxMDAwNSAweDAwMDEwMDA2IDB4MDAwMTAwMDcgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNob3J0ZW5EeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkKCWNhbGxzdWIgc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQpzaG9ydGVuRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTg2CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbCgkvLyAgICAgICBbMSwgMl0sCgkvLyAgICAgICBbMiwgM10sCgkvLyAgICAgICBbMywgNF0sCgkvLyAgICAgXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDAwMDIwMDAxMDAwMgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDAyMDAwMwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDIwMDAzMDAwNAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTIKCS8vIGFbMF0gPSBbNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAxMDAwNQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglwdXNoaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTMKCS8vIGFbMV0gPSBbNl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDEwMDA2CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTQKCS8vIGFbMl0gPSBbN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAxMDAwNwoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1OTYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGE3ZGJhZDg2IC8vIG1ldGhvZCAic2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZSgpKHVpbnQxNltdLHVpbnQxNltdLHVpbnQxNltdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2hvcnRlbkR5bmFtaWNFbGVtZW50SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCip1cGRhdGVfZHluYW1pY19oZWFkOgoJcHJvdG8gMiAwCglmcmFtZV9kaWcgLTIgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2RpZyAtMSAvLyBkeW5hbWljIGFycmF5IG9mZnNldAoJZXh0cmFjdF91aW50MTYgLy8gZXh0cmFjdCBkeW5hbWljIGFycmF5IG9mZnNldAoJbG9hZCAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCglieiAqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlCgkrIC8vIGFkZCBkaWZmZXJlbmNlIHRvIG9mZnNldAoJYiAqZW5kX2NhbGNfbmV3X2hlYWQKCipzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2U6Cglzd2FwCgktIC8vIHN1YnRyYWN0IGRpZmZlcmVuY2UgZnJvbSBvZmZldAoKKmVuZF9jYWxjX25ld19oZWFkOgoJaXRvYiAvLyBjb252ZXJ0IHRvIGJ5dGVzCglleHRyYWN0IDYgMiAvLyBjb252ZXJ0IHRvIHVpbnQxNgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZnJhbWVfZGlnIC0xIC8vIG9mZnNldAoJc3dhcAoJcmVwbGFjZTMgLy8gdXBkYXRlIG9mZnNldAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJcHVzaGludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJcHVzaGludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAgABBCYBADEYFIEGCzEZCI0MATMAAAAAAAAAAAAAASUAAAAAAAAAAAAAAIAEFR98dYgABFCwJEOKAAEoKCiAAgAGgAYAAgABAAKIAR6ABgACAAIAA4gBE4AGAAIAAwAEiAEISFCMAIsANf8jSTX7NP80/08CWUk1/kk0/0xZIgsiCDX9NP8jNP5SgAQAAQAFSTX8NP80/jT9CDT/FVJQUDX/iAEONPo0+yIIiADiNPo0+yUIiADZNP+MAIsANf8iSTX7NP80/08CWUk1/kk0/0xZIgsiCDX9NP8jNP5SgAQAAQAGSTX8NP80/jT9CDT/FVJQUDX/iAC6NPo0+yIIiACONP+MAIsANf8lSTX7NP80/08CWUk1/kk0/0xZIgsiCDX9NP8jNP5SgAQAAQAHSTX8NP80/jT9CDT/FVJQUDX/iABvNP+MAIsAjACJJEOABLhEezY2GgCOAf/xAIAEp9uthjYaAI4B/sEAigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iYoCAIv+NP+L/1k0+UEABAhCAAJMCRZXBgI0/0yL/0xdNf+JNPwVNP0MQAALNPwVNP0kNflCAAg0/TT8FSM1+Qk1+ok=", + "approval": "CiABAiYEBAABAAUEAAEABgQAAQAHADEYFIEGCzEZCI0MAUcAAAAAAAAAAAAAATkAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIABoAGAAIAAQACiAEugAYAAgACAAOIASOABgACAAMABIgBGEhQjACLADX/gQBJNfs0/zT/TwJZSTX+STT/TFmBAguBAgg1/TT/gQA0/lKABAABAAVJNfw0/zT+NP0INP8VUlBQNf+IARo0+jT7gQIIiADtNPo0+4EECIgA4zT/jACLADX/gQJJNfs0/zT/TwJZSTX+STT/TFmBAguBAgg1/TT/gQA0/lKABAABAAZJNfw0/zT+NP0INP8VUlBQNf+IAMA0+jT7gQIIiACTNP+MAIsANf+BBEk1+zT/NP9PAllJNf5JNP9MWYECC4ECCDX9NP+BADT+UoAEAAEAB0k1/DT/NP40/Qg0/xVSUFA1/4gAcDT/jACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgASn262GNhoAjgH+rQCKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JigIAi/40/4v/WTT5QQAECEIAAkwJFlcGAjT/TIv/TF01/4k0/BU0/QxAAAw0/BU0/YEBNflCAAk0/TT8FYEANfkJNfqJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal b/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal index 0fd876f07..6e97806e8 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // simpleTuple()uint16 *abi_route_simpleTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute simpleTuple()uint16 callsub simpleTuple itob dup bitlen - int 16 + pushint 16 <= // simpleTuple return value overflowed 16 bits @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 6 2 concat log - int 1 + pushint 1 return // simpleTuple(): uint16 @@ -48,11 +48,11 @@ simpleTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:257 // a: [uint64, uint16, uint64, uint16] = [11, 22, 33, 44] - byte 0x000000000000000b00160000000000000021002c + pushbytes 0x000000000000000b00160000000000000021002c frame_bury 0 // a: [uint64, uint16, uint64, uint16] // tests/contracts/abi.algo.ts:259 @@ -66,11 +66,11 @@ simpleTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -78,7 +78,7 @@ simpleTuple: err *call_NoOp: - method "simpleTuple()uint16" + pushbytes 0x4f0badca // method "simpleTuple()uint16" txna ApplicationArgs 0 match *abi_route_simpleTuple diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json b/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json index 776e43052..d5b3bb6d3 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestSimpleTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaW1wbGVUdXBsZSgpdWludDE2CiphYmlfcm91dGVfc2ltcGxlVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2ltcGxlVHVwbGUoKXVpbnQxNgoJY2FsbHN1YiBzaW1wbGVUdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyBzaW1wbGVUdXBsZSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2ltcGxlVHVwbGUoKTogdWludDE2CnNpbXBsZVR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU3CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NCwgdWludDE2XSA9IFsxMSwgMjIsIDMzLCA0NF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU5CgkvLyByZXR1cm4gYVszXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0LCB1aW50MTZdCglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNpbXBsZVR1cGxlKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NpbXBsZVR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2ltcGxlVHVwbGUoKXVpbnQxNgoqYWJpX3JvdXRlX3NpbXBsZVR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2ltcGxlVHVwbGUoKXVpbnQxNgoJY2FsbHN1YiBzaW1wbGVUdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMTYKCTw9CgoJLy8gc2ltcGxlVHVwbGUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzaW1wbGVUdXBsZSgpOiB1aW50MTYKc2ltcGxlVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1NwoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0gPSBbMTEsIDIyLCAzMywgNDRdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU5CgkvLyByZXR1cm4gYVszXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0LCB1aW50MTZdCglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NGYwYmFkY2EgLy8gbWV0aG9kICJzaW1wbGVUdXBsZSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zaW1wbGVUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestSimpleTuple.arc56_draft.json index 83d93e83a..04c2f048b 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSimpleTuple.arc56_draft.json @@ -61,397 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 255, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 255, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 255, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 255, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 255, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 255, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 255, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 255, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 255, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 256, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 256, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 256, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 256, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 256, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 256, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 36, - "source": 256, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 256, - "errorMessage": "simpleTuple return value overflowed 16 bits", - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 256, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 41, - "source": 256, - "pc": [ - 59 - ] - }, - { - "teal": 42, - "source": 256, - "pc": [ - 60 - ] - }, - { - "teal": 43, - "source": 256, - "pc": [ - 61 - ] - }, - { - "teal": 44, - "source": 256, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 256, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 51, - "source": 256, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 55, - "source": 257, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 56, - "source": 257, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 60, - "source": 259, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 61, - "source": 259, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 62, - "source": 259, - "pc": [ - 97 - ] - }, - { - "teal": 65, - "source": 256, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 66, - "source": 256, - "pc": [ - 100 - ] - }, - { - "teal": 69, - "source": 255, - "pc": [ - 101 - ] - }, - { - "teal": 70, - "source": 255, - "pc": [ - 102 - ] - }, - { - "teal": 73, - "source": 255, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 74, - "source": 255, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 75, - "source": 255, - "pc": [ - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 78, - "source": 255, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 116 - ] - }, - { - "teal": 81, - "source": 255, - "pc": [ - 117, - 118, - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 82, - "source": 255, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 83, - "source": 255, - "pc": [ - 126, - 127, - 128, - 129 - ] - }, - { - "teal": 86, - "source": 255, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 130 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "simpleTuple return value overflowed 16 bits" + }, + { + "pc": [ + 115 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 129 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaW1wbGVUdXBsZSgpdWludDE2CiphYmlfcm91dGVfc2ltcGxlVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2ltcGxlVHVwbGUoKXVpbnQxNgoJY2FsbHN1YiBzaW1wbGVUdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyBzaW1wbGVUdXBsZSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc2ltcGxlVHVwbGUoKTogdWludDE2CnNpbXBsZVR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU3CgkvLyBhOiBbdWludDY0LCB1aW50MTYsIHVpbnQ2NCwgdWludDE2XSA9IFsxMSwgMjIsIDMzLCA0NF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU5CgkvLyByZXR1cm4gYVszXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0LCB1aW50MTZdCglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNpbXBsZVR1cGxlKCl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NpbXBsZVR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc2ltcGxlVHVwbGUoKXVpbnQxNgoqYWJpX3JvdXRlX3NpbXBsZVR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc2ltcGxlVHVwbGUoKXVpbnQxNgoJY2FsbHN1YiBzaW1wbGVUdXBsZQoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMTYKCTw9CgoJLy8gc2ltcGxlVHVwbGUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzaW1wbGVUdXBsZSgpOiB1aW50MTYKc2ltcGxlVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1NwoJLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0gPSBbMTEsIDIyLCAzMywgNDRdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjQsIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU5CgkvLyByZXR1cm4gYVszXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50NjQsIHVpbnQxNiwgdWludDY0LCB1aW50MTZdCglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NGYwYmFkY2EgLy8gbWV0aG9kICJzaW1wbGVUdXBsZSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zaW1wbGVUdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE4AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAEFR98dYgADhZJk4EQDkRXBgJQsCJDigABgACAFAAAAAAAAAALABYAAAAAAAAAIQAsjACLAFcSAheMAIkiQ4AEuER7NjYaAI4B//EAgARPC63KNhoAjgH/pgA=", + "approval": "CjEYFIEGCzEZCI0MAFAAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EQDkRXBgJQsIEBQ4oAAYAAgBQAAAAAAAAACwAWAAAAAAAAACEALIwAiwBXEgIXjACJgQFDgAS4RHs2NhoAjgH/8ACABE8Lrco2GgCOAf+kAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal b/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal index 15dbb4507..f2b216917 100644 --- a/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestSmallerByteCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // smallerByteCasting(byte[4])byte[2] *abi_route_smallerByteCasting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: byte[4] txna ApplicationArgs 1 dup len - int 4 + pushint 4 == // argument 0 (a) for smallerByteCasting must be a byte[4] @@ -41,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM callsub smallerByteCasting concat log - int 1 + pushint 1 return // smallerByteCasting(a: bytes<4>): bytes<2> @@ -55,11 +55,11 @@ smallerByteCasting: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -67,7 +67,7 @@ smallerByteCasting: err *call_NoOp: - method "smallerByteCasting(byte[4])byte[2]" + pushbytes 0xb5340fa8 // method "smallerByteCasting(byte[4])byte[2]" txna ApplicationArgs 0 match *abi_route_smallerByteCasting diff --git a/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json b/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json index d106be36e..f55c333f2 100644 --- a/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestSmallerByteCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdCiphYmlfcm91dGVfc21hbGxlckJ5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiBieXRlWzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDQKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHNtYWxsZXJCeXRlQ2FzdGluZyBtdXN0IGJlIGEgYnl0ZVs0XQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdCgljYWxsc3ViIHNtYWxsZXJCeXRlQ2FzdGluZwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNtYWxsZXJCeXRlQ2FzdGluZyhhOiBieXRlczw0Pik6IGJ5dGVzPDI+CnNtYWxsZXJCeXRlQ2FzdGluZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjEzCgkvLyByZXR1cm4gPGJ5dGVzPDI+PmE7CglmcmFtZV9kaWcgLTEgLy8gYTogYnl0ZXM8ND4KCWV4dHJhY3QgMCAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zbWFsbGVyQnl0ZUNhc3RpbmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc21hbGxlckJ5dGVDYXN0aW5nKGJ5dGVbNF0pYnl0ZVsyXQoqYWJpX3JvdXRlX3NtYWxsZXJCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBhOiBieXRlWzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCA0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBzbWFsbGVyQnl0ZUNhc3RpbmcgbXVzdCBiZSBhIGJ5dGVbNF0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc21hbGxlckJ5dGVDYXN0aW5nKGJ5dGVbNF0pYnl0ZVsyXQoJY2FsbHN1YiBzbWFsbGVyQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc21hbGxlckJ5dGVDYXN0aW5nKGE6IGJ5dGVzPDQ+KTogYnl0ZXM8Mj4Kc21hbGxlckJ5dGVDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTMKCS8vIHJldHVybiA8Ynl0ZXM8Mj4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlczw0PgoJZXh0cmFjdCAwIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YjUzNDBmYTggLy8gbWV0aG9kICJzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zbWFsbGVyQnl0ZUNhc3RpbmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSmallerByteCasting.arc56_draft.json b/tests/contracts/artifacts/ABITestSmallerByteCasting.arc56_draft.json index 7ecc2ff64..cfd7daedc 100644 --- a/tests/contracts/artifacts/ABITestSmallerByteCasting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSmallerByteCasting.arc56_draft.json @@ -66,331 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1211, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1211, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1211, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1211, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1211, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1211, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1211, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1211, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1211, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1212, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1212, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1212, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1212, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1212, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 1212, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 1212, - "errorMessage": "argument 0 (a) for smallerByteCasting must be a byte[4]", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 1212, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 1212, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 1212, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1212, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1212, - "pc": [ - 61 - ] - }, - { - "teal": 49, - "source": 1212, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 53, - "source": 1213, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 54, - "source": 1213, - "pc": [ - 67, - 68, - 69 - ] - }, - { - "teal": 55, - "source": 1212, - "pc": [ - 70 - ] - }, - { - "teal": 58, - "source": 1211, - "pc": [ - 71 - ] - }, - { - "teal": 59, - "source": 1211, - "pc": [ - 72 - ] - }, - { - "teal": 62, - "source": 1211, - "pc": [ - 73, - 74, - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 63, - "source": 1211, - "pc": [ - 79, - 80, - 81 - ] - }, - { - "teal": 64, - "source": 1211, - "pc": [ - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 67, - "source": 1211, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 86 - ] - }, - { - "teal": 70, - "source": 1211, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 71, - "source": 1211, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 72, - "source": 1211, - "pc": [ - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 75, - "source": 1211, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 100 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for smallerByteCasting must be a byte[4]" + }, + { + "pc": [ + 85 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 99 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdCiphYmlfcm91dGVfc21hbGxlckJ5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiBieXRlWzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDQKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHNtYWxsZXJCeXRlQ2FzdGluZyBtdXN0IGJlIGEgYnl0ZVs0XQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdCgljYWxsc3ViIHNtYWxsZXJCeXRlQ2FzdGluZwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNtYWxsZXJCeXRlQ2FzdGluZyhhOiBieXRlczw0Pik6IGJ5dGVzPDI+CnNtYWxsZXJCeXRlQ2FzdGluZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjEzCgkvLyByZXR1cm4gPGJ5dGVzPDI+PmE7CglmcmFtZV9kaWcgLTEgLy8gYTogYnl0ZXM8ND4KCWV4dHJhY3QgMCAyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zbWFsbGVyQnl0ZUNhc3RpbmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc21hbGxlckJ5dGVDYXN0aW5nKGJ5dGVbNF0pYnl0ZVsyXQoqYWJpX3JvdXRlX3NtYWxsZXJCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBhOiBieXRlWzRdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCA0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBzbWFsbGVyQnl0ZUNhc3RpbmcgbXVzdCBiZSBhIGJ5dGVbNF0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc21hbGxlckJ5dGVDYXN0aW5nKGJ5dGVbNF0pYnl0ZVsyXQoJY2FsbHN1YiBzbWFsbGVyQnl0ZUNhc3RpbmcKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc21hbGxlckJ5dGVDYXN0aW5nKGE6IGJ5dGVzPDQ+KTogYnl0ZXM8Mj4Kc21hbGxlckJ5dGVDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMTMKCS8vIHJldHVybiA8Ynl0ZXM8Mj4+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBieXRlczw0PgoJZXh0cmFjdCAwIDIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YjUzNDBmYTggLy8gbWV0aG9kICJzbWFsbGVyQnl0ZUNhc3RpbmcoYnl0ZVs0XSlieXRlWzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zbWFsbGVyQnl0ZUNhc3RpbmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADAAAAAAAAAAAAAAACIAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQQSRIgABFCwIkOKAQGL/1cAAokiQ4AEuER7NjYaAI4B//EAgAS1NA+oNhoAjgH/xAA=", + "approval": "CjEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQQSRIgABVCwgQFDigEBi/9XAAKJgQFDgAS4RHs2NhoAjgH/8ACABLU0D6g2GgCOAf/CAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal b/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal index dd791df95..dce24b3f4 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceFirstElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // spliceFirstElement()uint16[] *abi_route_spliceFirstElement: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute spliceFirstElement()uint16[] callsub spliceFirstElement dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // spliceFirstElement(): uint16[] @@ -47,23 +47,23 @@ spliceFirstElement: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:510 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:512 // a.splice(0, 1) frame_dig 0 // a: uint16[] - int 1 - int 0 + pushint 1 + pushint 0 store 247 // splice start - int 4 + pushint 4 store 246 // splice byte length frame_dig 0 // a: uint16[] - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 0 // a: uint16[] @@ -72,7 +72,7 @@ spliceFirstElement: load 247 // splice start load 246 // splice byte length + - int 2 + pushint 2 - swap substring3 @@ -88,11 +88,11 @@ spliceFirstElement: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -100,7 +100,7 @@ spliceFirstElement: err *call_NoOp: - method "spliceFirstElement()uint16[]" + pushbytes 0x932a33a3 // method "spliceFirstElement()uint16[]" txna ApplicationArgs 0 match *abi_route_spliceFirstElement diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json b/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json index 868025481..c02406eb0 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceFirstElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKXVpbnQxNltdCiphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50CglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKTogdWludDE2W10Kc3BsaWNlRmlyc3RFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTEwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMgoJLy8gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDAKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxNAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUZpcnN0RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50CglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHNwbGljZUZpcnN0RWxlbWVudCgpOiB1aW50MTZbXQpzcGxpY2VGaXJzdEVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMAoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMgoJLy8gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTE0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDkzMmEzM2EzIC8vIG1ldGhvZCAic3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElement.arc56_draft.json b/tests/contracts/artifacts/ABITestSpliceFirstElement.arc56_draft.json index 232d200ac..871009077 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElement.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSpliceFirstElement.arc56_draft.json @@ -61,538 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 508, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 508, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 508, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 508, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 508, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 508, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 508, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 508, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 508, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 509, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 509, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 509, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 509, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 509, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 509, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 509, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 509, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 38, - "source": 509, - "pc": [ - 59 - ] - }, - { - "teal": 39, - "source": 509, - "pc": [ - 60 - ] - }, - { - "teal": 40, - "source": 509, - "pc": [ - 61 - ] - }, - { - "teal": 41, - "source": 509, - "pc": [ - 62 - ] - }, - { - "teal": 42, - "source": 509, - "pc": [ - 63 - ] - }, - { - "teal": 43, - "source": 509, - "pc": [ - 64 - ] - }, - { - "teal": 47, - "source": 509, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 50, - "source": 509, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 54, - "source": 510, - "pc": [ - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 55, - "source": 510, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 59, - "source": 512, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 60, - "source": 512, - "pc": [ - 82 - ] - }, - { - "teal": 61, - "source": 512, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 512, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 63, - "source": 512, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 64, - "source": 512, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 65, - "source": 512, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 66, - "source": 512, - "pc": [ - 92 - ] - }, - { - "teal": 67, - "source": 512, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 68, - "source": 512, - "pc": [ - 95 - ] - }, - { - "teal": 69, - "source": 512, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 70, - "source": 512, - "pc": [ - 98 - ] - }, - { - "teal": 71, - "source": 512, - "pc": [ - 99 - ] - }, - { - "teal": 72, - "source": 512, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 73, - "source": 512, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 74, - "source": 512, - "pc": [ - 104 - ] - }, - { - "teal": 75, - "source": 512, - "pc": [ - 105 - ] - }, - { - "teal": 76, - "source": 512, - "pc": [ - 106 - ] - }, - { - "teal": 77, - "source": 512, - "pc": [ - 107 - ] - }, - { - "teal": 78, - "source": 512, - "pc": [ - 108 - ] - }, - { - "teal": 79, - "source": 512, - "pc": [ - 109 - ] - }, - { - "teal": 80, - "source": 512, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 84, - "source": 514, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 87, - "source": 509, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 88, - "source": 509, - "pc": [ - 116 - ] - }, - { - "teal": 91, - "source": 508, - "pc": [ - 117 - ] - }, - { - "teal": 92, - "source": 508, - "pc": [ - 118 - ] - }, - { - "teal": 95, - "source": 508, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 96, - "source": 508, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 97, - "source": 508, - "pc": [ - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 100, - "source": 508, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 132 - ] - }, - { - "teal": 103, - "source": 508, - "pc": [ - 133, - 134, - 135, - 136, - 137, - 138 - ] - }, - { - "teal": 104, - "source": 508, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 105, - "source": 508, - "pc": [ - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 108, - "source": 508, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 146 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKXVpbnQxNltdCiphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50CglkdXAKCWxlbgoJaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcGxpY2VGaXJzdEVsZW1lbnQoKTogdWludDE2W10Kc3BsaWNlRmlyc3RFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTEwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMgoJLy8gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDAKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxNAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUZpcnN0RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50CglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHNwbGljZUZpcnN0RWxlbWVudCgpOiB1aW50MTZbXQpzcGxpY2VGaXJzdEVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMAoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUxMgoJLy8gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTE0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDkzMmEzM2EzIC8vIG1ldGhvZCAic3BsaWNlRmlyc3RFbGVtZW50KCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIAMRgUgQYLMRkIjQwAXAAAAAAAAAAAAAAATgAAAAAAAAAAAAAAgAQVH3x1iAAOSRUjChZXBgJMUFCwIkOKAAGAAIAGAAEAAgADjACLACIkNfeBBDX2iwAkNPdSiwBJFTT3NPYIIwlMUlCMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEkyozozYaAI4B/5gA", + "approval": "CjEYFIEGCzEZCI0MAGMAAAAAAAAAAAAAAFUAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAIAGAAEAAgADjACLAIEBgQA194EENfaLAIEANPdSiwBJFTT3NPYIgQIJTFJQjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgASTKjOjNhoAjgH/kQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal index 7c6dfcb2e..832c6c4d8 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // spliceFirstElementValue()uint16[] *abi_route_spliceFirstElementValue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute spliceFirstElementValue()uint16[] callsub spliceFirstElementValue dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // spliceFirstElementValue(): uint16[] @@ -52,19 +53,19 @@ spliceFirstElementValue: // tests/contracts/abi.algo.ts:520 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:522 // v = a.splice(0, 1) frame_dig 0 // a: uint16[] - int 1 - int 0 + pushint 1 + pushint 0 store 247 // splice start - int 4 + pushint 4 store 246 // splice byte length frame_dig 0 // a: uint16[] - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 0 // a: uint16[] @@ -73,7 +74,7 @@ spliceFirstElementValue: load 247 // splice start load 246 // splice byte length + - int 2 + pushint 2 - swap substring3 @@ -81,7 +82,7 @@ spliceFirstElementValue: frame_dig 0 // a: uint16[] load 247 // splice start load 246 // splice byte length - int 2 + pushint 2 - extract3 swap @@ -100,11 +101,11 @@ spliceFirstElementValue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -112,7 +113,7 @@ spliceFirstElementValue: err *call_NoOp: - method "spliceFirstElementValue()uint16[]" + pushbytes 0xbd8c7bd7 // method "spliceFirstElementValue()uint16[]" txna ApplicationArgs 0 match *abi_route_spliceFirstElementValue diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json index 61e6d61e3..5acf6c687 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCk6IHVpbnQxNltdCnNwbGljZUZpcnN0RWxlbWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MjAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIyCgkvLyB2ID0gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDAKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUyNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZQoJZHVwCglsZW4KCXB1c2hpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpOiB1aW50MTZbXQpzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIyCgkvLyB2ID0gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCXB1c2hpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUyNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmQ4YzdiZDcgLy8gbWV0aG9kICJzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NwbGljZUZpcnN0RWxlbWVudFZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc56_draft.json b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc56_draft.json index b5c58b195..60f92cbe7 100644 --- a/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc56_draft.json @@ -61,613 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 518, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 518, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 518, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 518, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 518, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 518, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 518, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 518, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 518, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 519, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 519, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 519, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 519, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 519, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 519, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 519, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 519, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 38, - "source": 519, - "pc": [ - 59 - ] - }, - { - "teal": 39, - "source": 519, - "pc": [ - 60 - ] - }, - { - "teal": 40, - "source": 519, - "pc": [ - 61 - ] - }, - { - "teal": 41, - "source": 519, - "pc": [ - 62 - ] - }, - { - "teal": 42, - "source": 519, - "pc": [ - 63 - ] - }, - { - "teal": 43, - "source": 519, - "pc": [ - 64 - ] - }, - { - "teal": 47, - "source": 519, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 50, - "source": 519, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 51, - "source": 519, - "pc": [ - 70 - ] - }, - { - "teal": 55, - "source": 520, - "pc": [ - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 56, - "source": 520, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 60, - "source": 522, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 61, - "source": 522, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 522, - "pc": [ - 84 - ] - }, - { - "teal": 63, - "source": 522, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 64, - "source": 522, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 65, - "source": 522, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 66, - "source": 522, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 67, - "source": 522, - "pc": [ - 93 - ] - }, - { - "teal": 68, - "source": 522, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 69, - "source": 522, - "pc": [ - 96 - ] - }, - { - "teal": 70, - "source": 522, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 71, - "source": 522, - "pc": [ - 99 - ] - }, - { - "teal": 72, - "source": 522, - "pc": [ - 100 - ] - }, - { - "teal": 73, - "source": 522, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 74, - "source": 522, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 75, - "source": 522, - "pc": [ - 105 - ] - }, - { - "teal": 76, - "source": 522, - "pc": [ - 106 - ] - }, - { - "teal": 77, - "source": 522, - "pc": [ - 107 - ] - }, - { - "teal": 78, - "source": 522, - "pc": [ - 108 - ] - }, - { - "teal": 79, - "source": 522, - "pc": [ - 109 - ] - }, - { - "teal": 80, - "source": 522, - "pc": [ - 110 - ] - }, - { - "teal": 81, - "source": 522, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 82, - "source": 522, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 83, - "source": 522, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 84, - "source": 522, - "pc": [ - 117 - ] - }, - { - "teal": 85, - "source": 522, - "pc": [ - 118 - ] - }, - { - "teal": 86, - "source": 522, - "pc": [ - 119 - ] - }, - { - "teal": 87, - "source": 522, - "pc": [ - 120 - ] - }, - { - "teal": 88, - "source": 522, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 89, - "source": 522, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 93, - "source": 524, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 96, - "source": 519, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 99, - "source": 519, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 100, - "source": 519, - "pc": [ - 131 - ] - }, - { - "teal": 103, - "source": 518, - "pc": [ - 132 - ] - }, - { - "teal": 104, - "source": 518, - "pc": [ - 133 - ] - }, - { - "teal": 107, - "source": 518, - "pc": [ - 134, - 135, - 136, - 137, - 138, - 139 - ] - }, - { - "teal": 108, - "source": 518, - "pc": [ - 140, - 141, - 142 - ] - }, - { - "teal": 109, - "source": 518, - "pc": [ - 143, - 144, - 145, - 146 - ] - }, - { - "teal": 112, - "source": 518, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 147 - ] - }, - { - "teal": 115, - "source": 518, - "pc": [ - 148, - 149, - 150, - 151, - 152, - 153 - ] - }, - { - "teal": 116, - "source": 518, - "pc": [ - 154, - 155, - 156 - ] - }, - { - "teal": 117, - "source": 518, - "pc": [ - 157, - 158, - 159, - 160 - ] - }, - { - "teal": 120, - "source": 518, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 161 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 153 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 167 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCk6IHVpbnQxNltdCnNwbGljZUZpcnN0RWxlbWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MjAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIyCgkvLyB2ID0gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDAKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUyNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlRmlyc3RFbGVtZW50VmFsdWUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHNwbGljZUZpcnN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZQoJZHVwCglsZW4KCXB1c2hpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpOiB1aW50MTZbXQpzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTIyCgkvLyB2ID0gYS5zcGxpY2UoMCwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgMAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCXB1c2hpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUyNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmQ4YzdiZDcgLy8gbWV0aG9kICJzcGxpY2VGaXJzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3NwbGljZUZpcnN0RWxlbWVudFZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAgEAMRgUgQYLMRkIjQwAawAAAAAAAAAAAAAAXQAAAAAAAAAAAAAAgAQVH3x1iAAOSRUiChZXBgJMUFCwI0OKAAGAAEmABgABAAIAA4wAiwAjJDX3gQQ19osAJDT3UosASRU09zT2CCIJTFJQiwA09zT2IglYTIwAjAGLAYwARgGJI0OABLhEezY2GgCOAf/xAIAEvYx71zYaAI4B/4kA", + "approval": "CiYBADEYFIEGCzEZCI0MAHMAAAAAAAAAAAAAAGUAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAEmABgABAAIAA4wAiwCBAYEANfeBBDX2iwCBADT3UosASRU09zT2CIECCUxSUIsANPc09oECCVhMjACMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEvYx71zYaAI4B/4EA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal b/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal index f59b9dae6..3337147e0 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceLastElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // spliceLastElement()uint16[] *abi_route_spliceLastElement: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute spliceLastElement()uint16[] callsub spliceLastElement dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +39,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // spliceLastElement(): uint16[] @@ -47,23 +47,23 @@ spliceLastElement: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:490 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:492 // a.splice(2, 1) frame_dig 0 // a: uint16[] - int 1 - int 4 + pushint 1 + pushint 4 store 247 // splice start - int 4 + pushint 4 store 246 // splice byte length frame_dig 0 // a: uint16[] - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 0 // a: uint16[] @@ -72,7 +72,7 @@ spliceLastElement: load 247 // splice start load 246 // splice byte length + - int 2 + pushint 2 - swap substring3 @@ -88,11 +88,11 @@ spliceLastElement: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -100,7 +100,7 @@ spliceLastElement: err *call_NoOp: - method "spliceLastElement()uint16[]" + pushbytes 0x80ed4fb5 // method "spliceLastElement()uint16[]" txna ApplicationArgs 0 match *abi_route_spliceLastElement diff --git a/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json b/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json index 788305b7d..b702a1a54 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceLastElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnQKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUxhc3RFbGVtZW50KCk6IHVpbnQxNltdCnNwbGljZUxhc3RFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MgoJLy8gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDQKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdCiphYmlfcm91dGVfc3BsaWNlTGFzdEVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnQKCWR1cAoJbGVuCglwdXNoaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3BsaWNlTGFzdEVsZW1lbnQoKTogdWludDE2W10Kc3BsaWNlTGFzdEVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MAoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MgoJLy8gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgNAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDk0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgwZWQ0ZmI1IC8vIG1ldGhvZCAic3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceLastElement.arc56_draft.json b/tests/contracts/artifacts/ABITestSpliceLastElement.arc56_draft.json index ddd8821fa..1c832fb91 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElement.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSpliceLastElement.arc56_draft.json @@ -61,538 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 488, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 488, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 488, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 488, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 488, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 488, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 488, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 488, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 488, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 489, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 489, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 489, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 489, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 489, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 489, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 489, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 489, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 38, - "source": 489, - "pc": [ - 59 - ] - }, - { - "teal": 39, - "source": 489, - "pc": [ - 60 - ] - }, - { - "teal": 40, - "source": 489, - "pc": [ - 61 - ] - }, - { - "teal": 41, - "source": 489, - "pc": [ - 62 - ] - }, - { - "teal": 42, - "source": 489, - "pc": [ - 63 - ] - }, - { - "teal": 43, - "source": 489, - "pc": [ - 64 - ] - }, - { - "teal": 47, - "source": 489, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 50, - "source": 489, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 54, - "source": 490, - "pc": [ - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 55, - "source": 490, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 59, - "source": 492, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 60, - "source": 492, - "pc": [ - 82 - ] - }, - { - "teal": 61, - "source": 492, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 492, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 63, - "source": 492, - "pc": [ - 86 - ] - }, - { - "teal": 64, - "source": 492, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 65, - "source": 492, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 66, - "source": 492, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 67, - "source": 492, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 68, - "source": 492, - "pc": [ - 95 - ] - }, - { - "teal": 69, - "source": 492, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 70, - "source": 492, - "pc": [ - 98 - ] - }, - { - "teal": 71, - "source": 492, - "pc": [ - 99 - ] - }, - { - "teal": 72, - "source": 492, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 73, - "source": 492, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 74, - "source": 492, - "pc": [ - 104 - ] - }, - { - "teal": 75, - "source": 492, - "pc": [ - 105 - ] - }, - { - "teal": 76, - "source": 492, - "pc": [ - 106 - ] - }, - { - "teal": 77, - "source": 492, - "pc": [ - 107 - ] - }, - { - "teal": 78, - "source": 492, - "pc": [ - 108 - ] - }, - { - "teal": 79, - "source": 492, - "pc": [ - 109 - ] - }, - { - "teal": 80, - "source": 492, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 84, - "source": 494, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 87, - "source": 489, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 88, - "source": 489, - "pc": [ - 116 - ] - }, - { - "teal": 91, - "source": 488, - "pc": [ - 117 - ] - }, - { - "teal": 92, - "source": 488, - "pc": [ - 118 - ] - }, - { - "teal": 95, - "source": 488, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 96, - "source": 488, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 97, - "source": 488, - "pc": [ - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 100, - "source": 488, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 132 - ] - }, - { - "teal": 103, - "source": 488, - "pc": [ - 133, - 134, - 135, - 136, - 137, - 138 - ] - }, - { - "teal": 104, - "source": 488, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 105, - "source": 488, - "pc": [ - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 108, - "source": 488, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 146 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnQKCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNwbGljZUxhc3RFbGVtZW50KCk6IHVpbnQxNltdCnNwbGljZUxhc3RFbGVtZW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MgoJLy8gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDQKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5NAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdCiphYmlfcm91dGVfc3BsaWNlTGFzdEVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudCgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnQKCWR1cAoJbGVuCglwdXNoaW50IDIKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3BsaWNlTGFzdEVsZW1lbnQoKTogdWludDE2W10Kc3BsaWNlTGFzdEVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MAoJLy8gYTogdWludDE2W10gPSBbMSwgMiwgM10KCXB1c2hieXRlcyAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5MgoJLy8gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgNAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDk0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgwZWQ0ZmI1IC8vIG1ldGhvZCAic3BsaWNlTGFzdEVsZW1lbnQoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIEMRgUgQYLMRkIjQwAXAAAAAAAAAAAAAAATgAAAAAAAAAAAAAAgAQVH3x1iAAOSRUjChZXBgJMUFCwIkOKAAGAAIAGAAEAAgADjACLACIkNfckNfaLAIEANPdSiwBJFTT3NPYIIwlMUlCMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEgO1PtTYaAI4B/5gA", + "approval": "CjEYFIEGCzEZCI0MAGMAAAAAAAAAAAAAAFUAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAIAGAAEAAgADjACLAIEBgQQ194EENfaLAIEANPdSiwBJFTT3NPYIgQIJTFJQjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgASA7U+1NhoAjgH/kQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal b/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal index 193d12ab5..161061269 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal +++ b/tests/contracts/artifacts/ABITestSpliceLastElementValue.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // spliceLastElementValue()uint16[] *abi_route_spliceLastElementValue: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute spliceLastElementValue()uint16[] callsub spliceLastElementValue dup len - int 2 + pushint 2 / itob extract 6 2 @@ -39,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // spliceLastElementValue(): uint16[] @@ -52,19 +53,19 @@ spliceLastElementValue: // tests/contracts/abi.algo.ts:500 // a: uint16[] = [1, 2, 3] - byte 0x000100020003 + pushbytes 0x000100020003 frame_bury 0 // a: uint16[] // tests/contracts/abi.algo.ts:502 // v = a.splice(2, 1) frame_dig 0 // a: uint16[] - int 1 - int 4 + pushint 1 + pushint 4 store 247 // splice start - int 4 + pushint 4 store 246 // splice byte length frame_dig 0 // a: uint16[] - int 0 + pushint 0 load 247 // splice start substring3 frame_dig 0 // a: uint16[] @@ -73,7 +74,7 @@ spliceLastElementValue: load 247 // splice start load 246 // splice byte length + - int 2 + pushint 2 - swap substring3 @@ -81,7 +82,7 @@ spliceLastElementValue: frame_dig 0 // a: uint16[] load 247 // splice start load 246 // splice byte length - int 2 + pushint 2 - extract3 swap @@ -100,11 +101,11 @@ spliceLastElementValue: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -112,7 +113,7 @@ spliceLastElementValue: err *call_NoOp: - method "spliceLastElementValue()uint16[]" + pushbytes 0xcddf228c // method "spliceLastElementValue()uint16[]" txna ApplicationArgs 0 match *abi_route_spliceLastElementValue diff --git a/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json b/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json index 5bc281de5..6eff3fef5 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json +++ b/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUxhc3RFbGVtZW50VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZSgpOiB1aW50MTZbXQpzcGxpY2VMYXN0RWxlbWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MDAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAyCgkvLyB2ID0gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDQKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUwNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUxhc3RFbGVtZW50VmFsdWUoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudFZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUxhc3RFbGVtZW50VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VMYXN0RWxlbWVudFZhbHVlCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHNwbGljZUxhc3RFbGVtZW50VmFsdWUoKTogdWludDE2W10Kc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAyCgkvLyB2ID0gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgNAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCXB1c2hpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUwNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4Y2RkZjIyOGMgLy8gbWV0aG9kICJzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc56_draft.json b/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc56_draft.json index 4985ce3f8..6e251a377 100644 --- a/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestSpliceLastElementValue.arc56_draft.json @@ -61,613 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 498, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 498, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 498, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 498, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 498, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 498, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 498, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 498, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 498, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 499, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 499, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 499, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 499, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 499, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 499, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 499, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 499, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 38, - "source": 499, - "pc": [ - 59 - ] - }, - { - "teal": 39, - "source": 499, - "pc": [ - 60 - ] - }, - { - "teal": 40, - "source": 499, - "pc": [ - 61 - ] - }, - { - "teal": 41, - "source": 499, - "pc": [ - 62 - ] - }, - { - "teal": 42, - "source": 499, - "pc": [ - 63 - ] - }, - { - "teal": 43, - "source": 499, - "pc": [ - 64 - ] - }, - { - "teal": 47, - "source": 499, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 50, - "source": 499, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 51, - "source": 499, - "pc": [ - 70 - ] - }, - { - "teal": 55, - "source": 500, - "pc": [ - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 56, - "source": 500, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 60, - "source": 502, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 61, - "source": 502, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 502, - "pc": [ - 84 - ] - }, - { - "teal": 63, - "source": 502, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 64, - "source": 502, - "pc": [ - 87 - ] - }, - { - "teal": 65, - "source": 502, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 66, - "source": 502, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 67, - "source": 502, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 68, - "source": 502, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 69, - "source": 502, - "pc": [ - 96 - ] - }, - { - "teal": 70, - "source": 502, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 71, - "source": 502, - "pc": [ - 99 - ] - }, - { - "teal": 72, - "source": 502, - "pc": [ - 100 - ] - }, - { - "teal": 73, - "source": 502, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 74, - "source": 502, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 75, - "source": 502, - "pc": [ - 105 - ] - }, - { - "teal": 76, - "source": 502, - "pc": [ - 106 - ] - }, - { - "teal": 77, - "source": 502, - "pc": [ - 107 - ] - }, - { - "teal": 78, - "source": 502, - "pc": [ - 108 - ] - }, - { - "teal": 79, - "source": 502, - "pc": [ - 109 - ] - }, - { - "teal": 80, - "source": 502, - "pc": [ - 110 - ] - }, - { - "teal": 81, - "source": 502, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 82, - "source": 502, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 83, - "source": 502, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 84, - "source": 502, - "pc": [ - 117 - ] - }, - { - "teal": 85, - "source": 502, - "pc": [ - 118 - ] - }, - { - "teal": 86, - "source": 502, - "pc": [ - 119 - ] - }, - { - "teal": 87, - "source": 502, - "pc": [ - 120 - ] - }, - { - "teal": 88, - "source": 502, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 89, - "source": 502, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 93, - "source": 504, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 96, - "source": 499, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 99, - "source": 499, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 100, - "source": 499, - "pc": [ - 131 - ] - }, - { - "teal": 103, - "source": 498, - "pc": [ - 132 - ] - }, - { - "teal": 104, - "source": 498, - "pc": [ - 133 - ] - }, - { - "teal": 107, - "source": 498, - "pc": [ - 134, - 135, - 136, - 137, - 138, - 139 - ] - }, - { - "teal": 108, - "source": 498, - "pc": [ - 140, - 141, - 142 - ] - }, - { - "teal": 109, - "source": 498, - "pc": [ - 143, - 144, - 145, - 146 - ] - }, - { - "teal": 112, - "source": 498, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 147 - ] - }, - { - "teal": 115, - "source": 498, - "pc": [ - 148, - 149, - 150, - 151, - 152, - 153 - ] - }, - { - "teal": 116, - "source": 498, - "pc": [ - 154, - 155, - 156 - ] - }, - { - "teal": 117, - "source": 498, - "pc": [ - 157, - 158, - 159, - 160 - ] - }, - { - "teal": 120, - "source": 498, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 161 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 153 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 167 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUxhc3RFbGVtZW50VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZSgpOiB1aW50MTZbXQpzcGxpY2VMYXN0RWxlbWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MDAKCS8vIGE6IHVpbnQxNltdID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAyCgkvLyB2ID0gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglpbnQgMQoJaW50IDQKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJaW50IDAKCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJc3Vic3RyaW5nMwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIDAgLy8gYTogdWludDE2W10KCWxvYWQgMjQ3IC8vIHNwbGljZSBzdGFydAoJbG9hZCAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUwNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInNwbGljZUxhc3RFbGVtZW50VmFsdWUoKXVpbnQxNltdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zcGxpY2VMYXN0RWxlbWVudFZhbHVlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoqYWJpX3JvdXRlX3NwbGljZUxhc3RFbGVtZW50VmFsdWU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXQoJY2FsbHN1YiBzcGxpY2VMYXN0RWxlbWVudFZhbHVlCglkdXAKCWxlbgoJcHVzaGludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHNwbGljZUxhc3RFbGVtZW50VmFsdWUoKTogdWludDE2W10Kc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAwCgkvLyBhOiB1aW50MTZbXSA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTAyCgkvLyB2ID0gYS5zcGxpY2UoMiwgMSkKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglwdXNoaW50IDEKCXB1c2hpbnQgNAoJc3RvcmUgMjQ3IC8vIHNwbGljZSBzdGFydAoJcHVzaGludCA0CglzdG9yZSAyNDYgLy8gc3BsaWNlIGJ5dGUgbGVuZ3RoCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJcHVzaGludCAwCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCXN1YnN0cmluZzMKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQxNltdCglkdXAKCWxlbgoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCSsKCXB1c2hpbnQgMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyBhOiB1aW50MTZbXQoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0Cglsb2FkIDI0NiAvLyBzcGxpY2UgYnl0ZSBsZW5ndGgKCXB1c2hpbnQgMgoJLQoJZXh0cmFjdDMKCXN3YXAKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50MTZbXQoJZnJhbWVfYnVyeSAxIC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUwNAoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMSAvLyB2OiB1aW50MTZbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4Y2RkZjIyOGMgLy8gbWV0aG9kICJzcGxpY2VMYXN0RWxlbWVudFZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3BsaWNlTGFzdEVsZW1lbnRWYWx1ZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAgEEMRgUgQYLMRkIjQwAawAAAAAAAAAAAAAAXQAAAAAAAAAAAAAAgAQVH3x1iAAOSRUiChZXBgJMUFCwI0OKAAGAAEmABgABAAIAA4wAiwAjJDX3JDX2iwCBADT3UosASRU09zT2CCIJTFJQiwA09zT2IglYTIwAjAGLAYwARgGJI0OABLhEezY2GgCOAf/xAIAEzd8ijDYaAI4B/4kA", + "approval": "CiYBADEYFIEGCzEZCI0MAHMAAAAAAAAAAAAAAGUAAAAAAAAAAAAAAIAEFR98dYgAEEkVgQIKFlcGAkxQULCBAUOKAAGAAEmABgABAAIAA4wAiwCBAYEENfeBBDX2iwCBADT3UosASRU09zT2CIECCUxSUIsANPc09oECCVhMjACMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEzd8ijDYaAI4B/4EA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticArray.approval.teal b/tests/contracts/artifacts/ABITestStaticArray.approval.teal index 879fd80d4..5922678a3 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticArray()uint64 *abi_route_staticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticArray()uint64 callsub staticArray itob concat log - int 1 + pushint 1 return // staticArray(): uint64 @@ -40,11 +40,11 @@ staticArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:11 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:13 @@ -58,11 +58,11 @@ staticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -70,7 +70,7 @@ staticArray: err *call_NoOp: - method "staticArray()uint64" + pushbytes 0xef32df19 // method "staticArray()uint64" txna ApplicationArgs 0 match *abi_route_staticArray diff --git a/tests/contracts/artifacts/ABITestStaticArray.arc32.json b/tests/contracts/artifacts/ABITestStaticArray.arc32.json index 705b43877..d1d21d2d2 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5KCk6IHVpbnQ2NApzdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheSgpOiB1aW50NjQKc3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGVmMzJkZjE5IC8vIG1ldGhvZCAic3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticArray.arc56_draft.json index ab62b7902..505837081 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticArray.arc56_draft.json @@ -61,355 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 9, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 9, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 9, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 9, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 9, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 9, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 9, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 9, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 9, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 10, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 10, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 10, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 10, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 10, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 10, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 10, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 10, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 10, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 11, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 48, - "source": 11, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 52, - "source": 13, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 53, - "source": 13, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 54, - "source": 13, - "pc": [ - 92 - ] - }, - { - "teal": 57, - "source": 10, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 58, - "source": 10, - "pc": [ - 95 - ] - }, - { - "teal": 61, - "source": 9, - "pc": [ - 96 - ] - }, - { - "teal": 62, - "source": 9, - "pc": [ - 97 - ] - }, - { - "teal": 65, - "source": 9, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 66, - "source": 9, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 67, - "source": 9, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 70, - "source": 9, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 111 - ] - }, - { - "teal": 73, - "source": 9, - "pc": [ - 112, - 113, - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 74, - "source": 9, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 75, - "source": 9, - "pc": [ - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 78, - "source": 9, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 125 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5KCk6IHVpbnQ2NApzdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheSgpOiB1aW50NjQKc3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGVmMzJkZjE5IC8vIG1ldGhvZCAic3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEkAAAAAAAAAAAAAADsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAiwBXCAgXjACJIkOABLhEezY2GgCOAf/xAIAE7zLfGTYaAI4B/6sA", + "approval": "CjEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIsAVwgIF4wAiYEBQ4AEuER7NjYaAI4B//AAgATvMt8ZNhoAjgH/qQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal index 9ad258edb..54ac5894b 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticArrayArg(uint64[3])uint64 *abi_route_staticArrayArg: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: uint64[3] txna ApplicationArgs 1 dup len - int 24 + pushint 24 == // argument 0 (a) for staticArrayArg must be a uint64[3] @@ -42,7 +42,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob concat log - int 1 + pushint 1 return // staticArrayArg(a: StaticArray): uint64 @@ -57,11 +57,11 @@ staticArrayArg: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -69,7 +69,7 @@ staticArrayArg: err *call_NoOp: - method "staticArrayArg(uint64[3])uint64" + pushbytes 0xb9baec56 // method "staticArrayArg(uint64[3])uint64" txna ApplicationArgs 0 match *abi_route_staticArrayArg diff --git a/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json index 85ed7f1f7..1e4339171 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3Igc3RhdGljQXJyYXlBcmcgbXVzdCBiZSBhIHVpbnQ2NFszXQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CgljYWxsc3ViIHN0YXRpY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQXJyYXlBcmcoYTogU3RhdGljQXJyYXk8dWludDY0LCAzPik6IHVpbnQ2NApzdGF0aWNBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0FycmF5QXJnKHVpbnQ2NFszXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlBcmcodWludDY0WzNdKXVpbnQ2NAoqYWJpX3JvdXRlX3N0YXRpY0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMjQKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHN0YXRpY0FycmF5QXJnIG11c3QgYmUgYSB1aW50NjRbM10KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlBcmcodWludDY0WzNdKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUFyZwoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUFyZyhhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+KTogdWludDY0CnN0YXRpY0FycmF5QXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI3CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhiOWJhZWM1NiAvLyBtZXRob2QgInN0YXRpY0FycmF5QXJnKHVpbnQ2NFszXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayArg.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticArrayArg.arc56_draft.json index eda11d471..270149feb 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayArg.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticArrayArg.arc56_draft.json @@ -66,345 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 25, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 25, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 25, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 25, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 25, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 25, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 25, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 25, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 25, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 26, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 26, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 26, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 26, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 26, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 26, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 26, - "errorMessage": "argument 0 (a) for staticArrayArg must be a uint64[3]", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 26, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 26, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 26, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 26, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 26, - "pc": [ - 61 - ] - }, - { - "teal": 46, - "source": 26, - "pc": [ - 62 - ] - }, - { - "teal": 50, - "source": 26, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 54, - "source": 27, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 55, - "source": 27, - "pc": [ - 68, - 69, - 70 - ] - }, - { - "teal": 56, - "source": 27, - "pc": [ - 71 - ] - }, - { - "teal": 57, - "source": 26, - "pc": [ - 72 - ] - }, - { - "teal": 60, - "source": 25, - "pc": [ - 73 - ] - }, - { - "teal": 61, - "source": 25, - "pc": [ - 74 - ] - }, - { - "teal": 64, - "source": 25, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 65, - "source": 25, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 66, - "source": 25, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 69, - "source": 25, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 72, - "source": 25, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 73, - "source": 25, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 74, - "source": 25, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 77, - "source": 25, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for staticArrayArg must be a uint64[3]" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyNAoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3Igc3RhdGljQXJyYXlBcmcgbXVzdCBiZSBhIHVpbnQ2NFszXQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUFyZyh1aW50NjRbM10pdWludDY0CgljYWxsc3ViIHN0YXRpY0FycmF5QXJnCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQXJyYXlBcmcoYTogU3RhdGljQXJyYXk8dWludDY0LCAzPik6IHVpbnQ2NApzdGF0aWNBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNwoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCA4IDgKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0FycmF5QXJnKHVpbnQ2NFszXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlBcmcodWludDY0WzNdKXVpbnQ2NAoqYWJpX3JvdXRlX3N0YXRpY0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFszXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMjQKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHN0YXRpY0FycmF5QXJnIG11c3QgYmUgYSB1aW50NjRbM10KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlBcmcodWludDY0WzNdKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUFyZwoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUFyZyhhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+KTogdWludDY0CnN0YXRpY0FycmF5QXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI3CgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAtMSAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDggOAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhiOWJhZWM1NiAvLyBtZXRob2QgInN0YXRpY0FycmF5QXJnKHVpbnQ2NFszXSl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dTYaAUkVgRgSRIgABRZQsCJDigEBi/9XCAgXiSJDgAS4RHs2NhoAjgH/8QCABLm67FY2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dTYaAUkVgRgSRIgABhZQsIEBQ4oBAYv/VwgIF4mBAUOABLhEezY2GgCOAf/wAIAEubrsVjYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal index 09ad1a094..baa4276c3 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x674d6170 0x6c4d6170 0x624d6170 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLE // staticArrayInStorageMap()uint64[3] *abi_route_staticArrayInStorageMap: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticArrayInStorageMap()uint64[3] callsub staticArrayInStorageMap concat log - int 1 + pushint 1 return // staticArrayInStorageMap(): StaticArray @@ -44,7 +45,7 @@ staticArrayInStorageMap: // tests/contracts/abi.algo.ts:145 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:147 @@ -85,8 +86,8 @@ staticArrayInStorageMap: itob concat byte 0x624d6170 // "bMap" - int 8 - dup + pushint 8 + pushint 8 box_extract btoi itob @@ -105,11 +106,11 @@ staticArrayInStorageMap: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -117,7 +118,7 @@ staticArrayInStorageMap: err *call_OptIn: - method "staticArrayInStorageMap()uint64[3]" + pushbytes 0x46f1a4b1 // method "staticArrayInStorageMap()uint64[3]" txna ApplicationArgs 0 match *abi_route_staticArrayInStorageMap diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json index ab622bee2..fd1caa43d 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10KCWNhbGxzdWIgc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NwoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDgKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MQoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWwoJLy8gICAgICAgdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5iTWFwKCdiTWFwJykudmFsdWVbMV0sCgkvLyAgICAgXQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgOAoJZHVwCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNBcnJheUluU3RvcmFnZU1hcAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzRkNjE3MCAweDZjNGQ2MTcwIDB4NjI0ZDYxNzAgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoJY2FsbHN1YiBzdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3CgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUxCgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCXB1c2hpbnQgOAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweDQ2ZjFhNGIxIC8vIG1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc56_draft.json index 51c1bcb7a..2f5cbe64a 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc56_draft.json @@ -94,585 +94,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 130, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ] - }, - { - "teal": 13, - "source": 130, - "pc": [ - 21, - 22 - ] - }, - { - "teal": 14, - "source": 130, - "pc": [ - 23 - ] - }, - { - "teal": 15, - "source": 130, - "pc": [ - 24, - 25 - ] - }, - { - "teal": 16, - "source": 130, - "pc": [ - 26 - ] - }, - { - "teal": 17, - "source": 130, - "pc": [ - 27, - 28 - ] - }, - { - "teal": 18, - "source": 130, - "pc": [ - 29 - ] - }, - { - "teal": 19, - "source": 130, - "pc": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ] - }, - { - "teal": 23, - "source": 130, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 56 - ] - }, - { - "teal": 28, - "source": 143, - "pc": [ - 57, - 58, - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 31, - "source": 143, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 32, - "source": 143, - "pc": [ - 66 - ] - }, - { - "teal": 33, - "source": 143, - "pc": [ - 67 - ] - }, - { - "teal": 34, - "source": 143, - "pc": [ - 68 - ] - }, - { - "teal": 35, - "source": 143, - "pc": [ - 69 - ] - }, - { - "teal": 39, - "source": 143, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 42, - "source": 143, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 43, - "source": 143, - "pc": [ - 75 - ] - }, - { - "teal": 47, - "source": 145, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 48, - "source": 145, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 52, - "source": 147, - "pc": [ - 104 - ] - }, - { - "teal": 53, - "source": 147, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 54, - "source": 147, - "pc": [ - 107 - ] - }, - { - "teal": 58, - "source": 148, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 59, - "source": 148, - "pc": [ - 110 - ] - }, - { - "teal": 60, - "source": 148, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 61, - "source": 148, - "pc": [ - 113 - ] - }, - { - "teal": 65, - "source": 149, - "pc": [ - 114 - ] - }, - { - "teal": 66, - "source": 149, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 67, - "source": 149, - "pc": [ - 117 - ] - }, - { - "teal": 75, - "source": 152, - "pc": [ - 118 - ] - }, - { - "teal": 76, - "source": 152, - "pc": [ - 119 - ] - }, - { - "teal": 77, - "source": 152, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 78, - "source": 152, - "pc": [ - 123 - ] - }, - { - "teal": 79, - "source": 152, - "pc": [ - 124 - ] - }, - { - "teal": 80, - "source": 153, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 81, - "source": 153, - "pc": [ - 127 - ] - }, - { - "teal": 82, - "source": 153, - "pc": [ - 128 - ] - }, - { - "teal": 83, - "source": 153, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 84, - "source": 153, - "pc": [ - 132 - ] - }, - { - "teal": 85, - "source": 153, - "pc": [ - 133 - ] - }, - { - "teal": 86, - "source": 151, - "pc": [ - 134 - ] - }, - { - "teal": 87, - "source": 154, - "pc": [ - 135 - ] - }, - { - "teal": 88, - "source": 154, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 89, - "source": 154, - "pc": [ - 138 - ] - }, - { - "teal": 90, - "source": 154, - "pc": [ - 139 - ] - }, - { - "teal": 91, - "source": 154, - "pc": [ - 140 - ] - }, - { - "teal": 92, - "source": 154, - "pc": [ - 141 - ] - }, - { - "teal": 93, - "source": 151, - "pc": [ - 142 - ] - }, - { - "teal": 94, - "source": 151, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 98, - "source": 157, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 101, - "source": 143, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 104, - "source": 143, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 105, - "source": 143, - "pc": [ - 151 - ] - }, - { - "teal": 108, - "source": 130, - "pc": [ - 152 - ] - }, - { - "teal": 109, - "source": 130, - "pc": [ - 153 - ] - }, - { - "teal": 112, - "source": 130, - "pc": [ - 154, - 155, - 156, - 157, - 158, - 159 - ] - }, - { - "teal": 113, - "source": 130, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 114, - "source": 130, - "pc": [ - 163, - 164, - 165, - 166 - ] - }, - { - "teal": 117, - "source": 130, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 167 - ] - }, - { - "teal": 120, - "source": 130, - "pc": [ - 168, - 169, - 170, - 171, - 172, - 173 - ] - }, - { - "teal": 121, - "source": 130, - "pc": [ - 174, - 175, - 176 - ] - }, - { - "teal": 122, - "source": 130, - "pc": [ - 177, - 178, - 179, - 180 - ] - }, - { - "teal": 125, - "source": 130, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 181 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 54 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 198 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 212 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10KCWNhbGxzdWIgc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NwoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDgKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MQoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWwoJLy8gICAgICAgdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5iTWFwKCdiTWFwJykudmFsdWVbMV0sCgkvLyAgICAgXQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgOAoJZHVwCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNBcnJheUluU3RvcmFnZU1hcAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzRkNjE3MCAweDZjNGQ2MTcwIDB4NjI0ZDYxNzAgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoJY2FsbHN1YiBzdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ3CgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTUxCgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCXB1c2hpbnQgOAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweDQ2ZjFhNGIxIC8vIG1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYDBGdNYXAEbE1hcARiTWFwMRgUgQYLMRkIjQwAAABwAAAAAAAAAAAAYgAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAAYAASYAYAAAAAAAAAAsAAAAAAAAAFgAAAAAAAAAhjAAoiwBnMQApiwBmKosAvyhkVwgIFxYxACliVwgIFxZQKoEISboXFlCMAYsBjABGAYkiQ4AEuER7NjYaAI4B//EAgARG8aSxNhoAjgH/hAA=", + "approval": "CiYEBGdNYXAEbE1hcARiTWFwADEYFIEGCzEZCI0MAAAAkQAAAAAAAAAAAIMAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgABJgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIAEZ01hcIsAZzEAgARsTWFwiwBmgARiTWFwiwC/gARnTWFwZFcICBcWMQCABGxNYXBiVwgIFxZQgARiTWFwgQiBCLoXFlCMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAERvGksTYaAI4B/2MA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal index 358e76e33..a36c61d5e 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x67526566 0x6c526566 0x62526566 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLE // staticArrayInStorageRef()uint64[3] *abi_route_staticArrayInStorageRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticArrayInStorageRef()uint64[3] callsub staticArrayInStorageRef concat log - int 1 + pushint 1 return // staticArrayInStorageRef(): StaticArray @@ -44,7 +45,7 @@ staticArrayInStorageRef: // tests/contracts/abi.algo.ts:87 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:89 @@ -81,8 +82,8 @@ staticArrayInStorageRef: itob concat byte 0x62526566 // "bRef" - int 8 - dup + pushint 8 + pushint 8 box_extract btoi itob @@ -101,11 +102,11 @@ staticArrayInStorageRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -113,7 +114,7 @@ staticArrayInStorageRef: err *call_OptIn: - method "staticArrayInStorageRef()uint64[3]" + pushbytes 0x075022e5 // method "staticArrayInStorageRef()uint64[3]" txna ApplicationArgs 0 match *abi_route_staticArrayInStorageRef diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json index 5c671e57b..3e9e351cc 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10KCWNhbGxzdWIgc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODkKCS8vIHRoaXMuZ1JlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwCgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTEKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTMKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFt0aGlzLmdSZWYudmFsdWVbMV0sIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdLCB0aGlzLmJSZWYudmFsdWVbMV1dCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTUKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCW1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzUyNjU2NiAweDZjNTI2NTY2IDB4NjI1MjY1NjYgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoJY2FsbHN1YiBzdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OQoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTAKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MQoJLy8gdGhpcy5iUmVmLnZhbHVlID0gYQoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MwoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gW3RoaXMuZ1JlZi52YWx1ZVsxXSwgdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0sIHRoaXMuYlJlZi52YWx1ZVsxXV0KCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJcHVzaGludCA4CglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTUKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CglwdXNoYnl0ZXMgMHgwNzUwMjJlNSAvLyBtZXRob2QgInN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc56_draft.json index 136280cee..065e02a71 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc56_draft.json @@ -94,585 +94,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 72, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20 - ] - }, - { - "teal": 13, - "source": 72, - "pc": [ - 21, - 22 - ] - }, - { - "teal": 14, - "source": 72, - "pc": [ - 23 - ] - }, - { - "teal": 15, - "source": 72, - "pc": [ - 24, - 25 - ] - }, - { - "teal": 16, - "source": 72, - "pc": [ - 26 - ] - }, - { - "teal": 17, - "source": 72, - "pc": [ - 27, - 28 - ] - }, - { - "teal": 18, - "source": 72, - "pc": [ - 29 - ] - }, - { - "teal": 19, - "source": 72, - "pc": [ - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ] - }, - { - "teal": 23, - "source": 72, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 56 - ] - }, - { - "teal": 28, - "source": 85, - "pc": [ - 57, - 58, - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 31, - "source": 85, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 32, - "source": 85, - "pc": [ - 66 - ] - }, - { - "teal": 33, - "source": 85, - "pc": [ - 67 - ] - }, - { - "teal": 34, - "source": 85, - "pc": [ - 68 - ] - }, - { - "teal": 35, - "source": 85, - "pc": [ - 69 - ] - }, - { - "teal": 39, - "source": 85, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 42, - "source": 85, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 43, - "source": 85, - "pc": [ - 75 - ] - }, - { - "teal": 47, - "source": 87, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 48, - "source": 87, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 52, - "source": 89, - "pc": [ - 104 - ] - }, - { - "teal": 53, - "source": 89, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 54, - "source": 89, - "pc": [ - 107 - ] - }, - { - "teal": 58, - "source": 90, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 59, - "source": 90, - "pc": [ - 110 - ] - }, - { - "teal": 60, - "source": 90, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 61, - "source": 90, - "pc": [ - 113 - ] - }, - { - "teal": 65, - "source": 91, - "pc": [ - 114 - ] - }, - { - "teal": 66, - "source": 91, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 67, - "source": 91, - "pc": [ - 117 - ] - }, - { - "teal": 71, - "source": 93, - "pc": [ - 118 - ] - }, - { - "teal": 72, - "source": 93, - "pc": [ - 119 - ] - }, - { - "teal": 73, - "source": 93, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 74, - "source": 93, - "pc": [ - 123 - ] - }, - { - "teal": 75, - "source": 93, - "pc": [ - 124 - ] - }, - { - "teal": 76, - "source": 93, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 77, - "source": 93, - "pc": [ - 127 - ] - }, - { - "teal": 78, - "source": 93, - "pc": [ - 128 - ] - }, - { - "teal": 79, - "source": 93, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 80, - "source": 93, - "pc": [ - 132 - ] - }, - { - "teal": 81, - "source": 93, - "pc": [ - 133 - ] - }, - { - "teal": 82, - "source": 93, - "pc": [ - 134 - ] - }, - { - "teal": 83, - "source": 93, - "pc": [ - 135 - ] - }, - { - "teal": 84, - "source": 93, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 85, - "source": 93, - "pc": [ - 138 - ] - }, - { - "teal": 86, - "source": 93, - "pc": [ - 139 - ] - }, - { - "teal": 87, - "source": 93, - "pc": [ - 140 - ] - }, - { - "teal": 88, - "source": 93, - "pc": [ - 141 - ] - }, - { - "teal": 89, - "source": 93, - "pc": [ - 142 - ] - }, - { - "teal": 90, - "source": 93, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 94, - "source": 95, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 97, - "source": 85, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 100, - "source": 85, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 101, - "source": 85, - "pc": [ - 151 - ] - }, - { - "teal": 104, - "source": 72, - "pc": [ - 152 - ] - }, - { - "teal": 105, - "source": 72, - "pc": [ - 153 - ] - }, - { - "teal": 108, - "source": 72, - "pc": [ - 154, - 155, - 156, - 157, - 158, - 159 - ] - }, - { - "teal": 109, - "source": 72, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 110, - "source": 72, - "pc": [ - 163, - 164, - 165, - 166 - ] - }, - { - "teal": 113, - "source": 72, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 167 - ] - }, - { - "teal": 116, - "source": 72, - "pc": [ - 168, - 169, - 170, - 171, - 172, - 173 - ] - }, - { - "teal": 117, - "source": 72, - "pc": [ - 174, - 175, - 176 - ] - }, - { - "teal": 118, - "source": 72, - "pc": [ - 177, - 178, - 179, - 180 - ] - }, - { - "teal": 121, - "source": 72, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 181 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 54 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 198 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 212 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10KCWNhbGxzdWIgc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODkKCS8vIHRoaXMuZ1JlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkwCgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTEKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTMKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFt0aGlzLmdSZWYudmFsdWVbMV0sIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdLCB0aGlzLmJSZWYudmFsdWVbMV1dCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTUKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCW1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzUyNjU2NiAweDZjNTI2NTY2IDB4NjI1MjY1NjYgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoJY2FsbHN1YiBzdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OQoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTAKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MQoJLy8gdGhpcy5iUmVmLnZhbHVlID0gYQoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MwoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gW3RoaXMuZ1JlZi52YWx1ZVsxXSwgdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0sIHRoaXMuYlJlZi52YWx1ZVsxXV0KCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJcHVzaGludCA4CglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTUKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CglwdXNoYnl0ZXMgMHgwNzUwMjJlNSAvLyBtZXRob2QgInN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlUmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYDBGdSZWYEbFJlZgRiUmVmMRgUgQYLMRkIjQwAAABwAAAAAAAAAAAAYgAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAAYAASYAYAAAAAAAAAAsAAAAAAAAAFgAAAAAAAAAhjAAoiwBnMQApiwBmKosAvyhkVwgIFxYxACliVwgIFxZQKoEISboXFlCMAYsBjABGAYkiQ4AEuER7NjYaAI4B//EAgAQHUCLlNhoAjgH/hAA=", + "approval": "CiYEBGdSZWYEbFJlZgRiUmVmADEYFIEGCzEZCI0MAAAAkQAAAAAAAAAAAIMAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgABJgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIAEZ1JlZosAZzEAgARsUmVmiwBmgARiUmVmiwC/gARnUmVmZFcICBcWMQCABGxSZWZiVwgIFxZQgARiUmVmgQiBCLoXFlCMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEB1Ai5TYaAI4B/2MA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal index 19f56c6da..94669b8b9 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticArrayLength()uint64 *abi_route_staticArrayLength: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticArrayLength()uint64 callsub staticArrayLength itob concat log - int 1 + pushint 1 return // staticArrayLength(): uint64 @@ -40,27 +40,27 @@ staticArrayLength: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1385 // a: StaticArray = [11, 22, 33, 44, 55] - byte 0x0b16212c37 + pushbytes 0x0b16212c37 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1387 // return a.length; - int 5 + pushint 5 // set the subroutine return value frame_bury 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -68,7 +68,7 @@ staticArrayLength: err *call_NoOp: - method "staticArrayLength()uint64" + pushbytes 0x22bcf394 // method "staticArrayLength()uint64" txna ApplicationArgs 0 match *abi_route_staticArrayLength diff --git a/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json b/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json index 6cac31421..1db4d30c1 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticArrayLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5TGVuZ3RoKCk6IHVpbnQ2NApzdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiA9IFsxMSwgMjIsIDMzLCA0NCwgNTVdCglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzg3CgkvLyByZXR1cm4gYS5sZW5ndGg7CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0YXRpY0FycmF5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUxlbmd0aCgpOiB1aW50NjQKc3RhdGljQXJyYXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiA9IFsxMSwgMjIsIDMzLCA0NCwgNTVdCglwdXNoYnl0ZXMgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDgsIDU+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODcKCS8vIHJldHVybiBhLmxlbmd0aDsKCXB1c2hpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgyMmJjZjM5NCAvLyBtZXRob2QgInN0YXRpY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5TGVuZ3RoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayLength.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticArrayLength.arc56_draft.json index 5c933d569..f1fdb94d9 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayLength.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticArrayLength.arc56_draft.json @@ -61,320 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1383, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1383, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1383, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1383, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1383, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1383, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1383, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1383, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1383, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1384, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1384, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1384, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1384, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1384, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1384, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 1384, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 1384, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 1384, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 1385, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 48, - "source": 1385, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 52, - "source": 1387, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 55, - "source": 1384, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 56, - "source": 1384, - "pc": [ - 72 - ] - }, - { - "teal": 59, - "source": 1383, - "pc": [ - 73 - ] - }, - { - "teal": 60, - "source": 1383, - "pc": [ - 74 - ] - }, - { - "teal": 63, - "source": 1383, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 64, - "source": 1383, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 65, - "source": 1383, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 68, - "source": 1383, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 71, - "source": 1383, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 72, - "source": 1383, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 73, - "source": 1383, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 76, - "source": 1383, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNBcnJheUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0FycmF5TGVuZ3RoKCk6IHVpbnQ2NApzdGF0aWNBcnJheUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiA9IFsxMSwgMjIsIDMzLCA0NCwgNTVdCglieXRlIDB4MGIxNjIxMmMzNwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzg3CgkvLyByZXR1cm4gYS5sZW5ndGg7CglpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQXJyYXlMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0YXRpY0FycmF5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQXJyYXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNBcnJheUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNBcnJheUxlbmd0aCgpOiB1aW50NjQKc3RhdGljQXJyYXlMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ4LCA1PiA9IFsxMSwgMjIsIDMzLCA0NCwgNTVdCglwdXNoYnl0ZXMgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDgsIDU+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzODcKCS8vIHJldHVybiBhLmxlbmd0aDsKCXB1c2hpbnQgNQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgyMmJjZjM5NCAvLyBtZXRob2QgInN0YXRpY0FycmF5TGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0FycmF5TGVuZ3RoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACABQsWISw3jACBBYwAiSJDgAS4RHs2NhoAjgH/8QCABCK885Q2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAULFiEsN4wAgQWMAImBAUOABLhEezY2GgCOAf/wAIAEIrzzlDYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal b/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal index 384ffe418..3dc5cb59d 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticBoolArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticBoolArray()bool[9] *abi_route_staticBoolArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticBoolArray()bool[9] callsub staticBoolArray concat log - int 1 + pushint 1 return // staticBoolArray(): StaticArray @@ -39,37 +39,37 @@ staticBoolArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:897 // a: StaticArray = [true, false, true, true, false, false, true, false, false] - byte 0x0000 - int 0 - int 1 + pushbytes 0x0000 + pushint 0 + pushint 1 setbit - int 1 - int 0 + pushint 1 + pushint 0 setbit - int 2 - int 1 + pushint 2 + pushint 1 setbit - int 3 - int 1 + pushint 3 + pushint 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 - int 1 + pushint 6 + pushint 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit frame_bury 0 // a: StaticArray @@ -82,11 +82,11 @@ staticBoolArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -94,7 +94,7 @@ staticBoolArray: err *call_NoOp: - method "staticBoolArray()bool[9]" + pushbytes 0x0836993a // method "staticBoolArray()bool[9]" txna ApplicationArgs 0 match *abi_route_staticBoolArray diff --git a/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json b/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json index 7be0b3eb1..470f86746 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0KKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5KClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTcKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODk5CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQm9vbEFycmF5KClib29sWzldCiphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5KClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNCb29sQXJyYXkoKTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4Kc3RhdGljQm9vbEFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTcKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNAoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTkKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MDgzNjk5M2EgLy8gbWV0aG9kICJzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArray.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticBoolArray.arc56_draft.json index d6e019f98..3067a16b3 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArray.arc56_draft.json @@ -61,506 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 895, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 895, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 895, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 895, - "pc": [ - 9 - ] - }, - { - "teal": 16, - "source": 895, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 895, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 895, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 895, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 895, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 896, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 896, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 896, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 896, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 896, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 896, - "pc": [ - 53 - ] - }, - { - "teal": 39, - "source": 896, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 42, - "source": 896, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 46, - "source": 897, - "pc": [ - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 47, - "source": 897, - "pc": [ - 63 - ] - }, - { - "teal": 48, - "source": 897, - "pc": [ - 64 - ] - }, - { - "teal": 49, - "source": 897, - "pc": [ - 65 - ] - }, - { - "teal": 50, - "source": 897, - "pc": [ - 66 - ] - }, - { - "teal": 51, - "source": 897, - "pc": [ - 67 - ] - }, - { - "teal": 52, - "source": 897, - "pc": [ - 68 - ] - }, - { - "teal": 53, - "source": 897, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 54, - "source": 897, - "pc": [ - 71 - ] - }, - { - "teal": 55, - "source": 897, - "pc": [ - 72 - ] - }, - { - "teal": 56, - "source": 897, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 57, - "source": 897, - "pc": [ - 75 - ] - }, - { - "teal": 58, - "source": 897, - "pc": [ - 76 - ] - }, - { - "teal": 59, - "source": 897, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 60, - "source": 897, - "pc": [ - 79 - ] - }, - { - "teal": 61, - "source": 897, - "pc": [ - 80 - ] - }, - { - "teal": 62, - "source": 897, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 63, - "source": 897, - "pc": [ - 83 - ] - }, - { - "teal": 64, - "source": 897, - "pc": [ - 84 - ] - }, - { - "teal": 65, - "source": 897, - "pc": [ - 85 - ] - }, - { - "teal": 66, - "source": 897, - "pc": [ - 86 - ] - }, - { - "teal": 67, - "source": 897, - "pc": [ - 87 - ] - }, - { - "teal": 68, - "source": 897, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 69, - "source": 897, - "pc": [ - 90 - ] - }, - { - "teal": 70, - "source": 897, - "pc": [ - 91 - ] - }, - { - "teal": 71, - "source": 897, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 72, - "source": 897, - "pc": [ - 94 - ] - }, - { - "teal": 73, - "source": 897, - "pc": [ - 95 - ] - }, - { - "teal": 74, - "source": 897, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 78, - "source": 899, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 81, - "source": 896, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 82, - "source": 896, - "pc": [ - 102 - ] - }, - { - "teal": 85, - "source": 895, - "pc": [ - 103 - ] - }, - { - "teal": 86, - "source": 895, - "pc": [ - 104 - ] - }, - { - "teal": 89, - "source": 895, - "pc": [ - 105, - 106, - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 90, - "source": 895, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 91, - "source": 895, - "pc": [ - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 94, - "source": 895, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 118 - ] - }, - { - "teal": 97, - "source": 895, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 98, - "source": 895, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 99, - "source": 895, - "pc": [ - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 102, - "source": 895, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 132 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 142 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0KKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5KClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTcKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODk5CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQm9vbEFycmF5KClib29sWzldCiphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5KClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNCb29sQXJyYXkoKTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4Kc3RhdGljQm9vbEFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTcKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNAoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4OTkKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MDgzNjk5M2EgLy8gbWV0aG9kICJzdGF0aWNCb29sQXJyYXkoKWJvb2xbOV0iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Jvb2xBcnJheQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAGMRgUJAsxGQiNDABPAAAAAAAAAAAAAABBAAAAAAAAAAAAAACABBUffHWIAARQsCJDigABgACAAgAAIyJUIiNUgQIiVIEDIlSBBCNUgQUjVCQiVIEHI1SBCCNUjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABAg2mTo2GgCOAf+lAA==", + "approval": "CjEYFIEGCzEZCI0MAF0AAAAAAAAAAAAAAE8AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAgAAgQCBAVSBAYEAVIECgQFUgQOBAVSBBIEAVIEFgQBUgQaBAVSBB4EAVIEIgQBUjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgAQINpk6NhoAjgH/lwA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal index 1a2beba2e..80f3bd27a 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,17 +25,17 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticBoolArrayAccess()bool *abi_route_staticBoolArrayAccess: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticBoolArrayAccess()bool callsub staticBoolArrayAccess - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit concat log - int 1 + pushint 1 return // staticBoolArrayAccess(): boolean @@ -43,37 +43,37 @@ staticBoolArrayAccess: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:923 // a: StaticArray = [true, false, true, true, false, false, true, false, false] - byte 0x0000 - int 0 - int 1 + pushbytes 0x0000 + pushint 0 + pushint 1 setbit - int 1 - int 0 + pushint 1 + pushint 0 setbit - int 2 - int 1 + pushint 2 + pushint 1 setbit - int 3 - int 1 + pushint 3 + pushint 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 - int 1 + pushint 6 + pushint 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit frame_bury 0 // a: StaticArray @@ -82,7 +82,7 @@ staticBoolArrayAccess: frame_dig 0 // a: StaticArray store 255 // full array load 255 // full array - int 8 + pushint 8 getbit // set the subroutine return value @@ -90,11 +90,11 @@ staticBoolArrayAccess: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -102,7 +102,7 @@ staticBoolArrayAccess: err *call_NoOp: - method "staticBoolArrayAccess()bool" + pushbytes 0xe4eb2c1f // method "staticBoolArrayAccess()bool" txna ApplicationArgs 0 match *abi_route_staticBoolArrayAccess diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json index 7a33c7498..38f82d85b 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wKKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKTogYm9vbGVhbgpzdGF0aWNCb29sQXJyYXlBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjMKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTI1CgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCiphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5QWNjZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheUFjY2VzcwoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljQm9vbEFycmF5QWNjZXNzKCk6IGJvb2xlYW4Kc3RhdGljQm9vbEFycmF5QWNjZXNzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjMKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNAoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjUKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlNGViMmMxZiAvLyBtZXRob2QgInN0YXRpY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5QWNjZXNzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc56_draft.json index 1277a0385..ba9ce6bcc 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc56_draft.json @@ -61,567 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 921, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 921, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 921, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 921, - "pc": [ - 10 - ] - }, - { - "teal": 16, - "source": 921, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 921, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 921, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 921, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 921, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 922, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 922, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 922, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 33, - "source": 922, - "pc": [ - 54 - ] - }, - { - "teal": 34, - "source": 922, - "pc": [ - 55, - 56 - ] - }, - { - "teal": 35, - "source": 922, - "pc": [ - 57 - ] - }, - { - "teal": 36, - "source": 922, - "pc": [ - 58 - ] - }, - { - "teal": 37, - "source": 922, - "pc": [ - 59 - ] - }, - { - "teal": 38, - "source": 922, - "pc": [ - 60 - ] - }, - { - "teal": 39, - "source": 922, - "pc": [ - 61 - ] - }, - { - "teal": 43, - "source": 922, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 46, - "source": 922, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 50, - "source": 923, - "pc": [ - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 51, - "source": 923, - "pc": [ - 71 - ] - }, - { - "teal": 52, - "source": 923, - "pc": [ - 72 - ] - }, - { - "teal": 53, - "source": 923, - "pc": [ - 73 - ] - }, - { - "teal": 54, - "source": 923, - "pc": [ - 74 - ] - }, - { - "teal": 55, - "source": 923, - "pc": [ - 75 - ] - }, - { - "teal": 56, - "source": 923, - "pc": [ - 76 - ] - }, - { - "teal": 57, - "source": 923, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 58, - "source": 923, - "pc": [ - 79 - ] - }, - { - "teal": 59, - "source": 923, - "pc": [ - 80 - ] - }, - { - "teal": 60, - "source": 923, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 61, - "source": 923, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 923, - "pc": [ - 84 - ] - }, - { - "teal": 63, - "source": 923, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 64, - "source": 923, - "pc": [ - 87 - ] - }, - { - "teal": 65, - "source": 923, - "pc": [ - 88 - ] - }, - { - "teal": 66, - "source": 923, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 67, - "source": 923, - "pc": [ - 91 - ] - }, - { - "teal": 68, - "source": 923, - "pc": [ - 92 - ] - }, - { - "teal": 69, - "source": 923, - "pc": [ - 93 - ] - }, - { - "teal": 70, - "source": 923, - "pc": [ - 94 - ] - }, - { - "teal": 71, - "source": 923, - "pc": [ - 95 - ] - }, - { - "teal": 72, - "source": 923, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 73, - "source": 923, - "pc": [ - 98 - ] - }, - { - "teal": 74, - "source": 923, - "pc": [ - 99 - ] - }, - { - "teal": 75, - "source": 923, - "pc": [ - 100 - ] - }, - { - "teal": 76, - "source": 923, - "pc": [ - 101 - ] - }, - { - "teal": 77, - "source": 923, - "pc": [ - 102 - ] - }, - { - "teal": 78, - "source": 923, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 82, - "source": 925, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 83, - "source": 925, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 84, - "source": 925, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 85, - "source": 925, - "pc": [ - 111 - ] - }, - { - "teal": 86, - "source": 925, - "pc": [ - 112 - ] - }, - { - "teal": 89, - "source": 922, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 90, - "source": 922, - "pc": [ - 115 - ] - }, - { - "teal": 93, - "source": 921, - "pc": [ - 116 - ] - }, - { - "teal": 94, - "source": 921, - "pc": [ - 117 - ] - }, - { - "teal": 97, - "source": 921, - "pc": [ - 118, - 119, - 120, - 121, - 122, - 123 - ] - }, - { - "teal": 98, - "source": 921, - "pc": [ - 124, - 125, - 126 - ] - }, - { - "teal": 99, - "source": 921, - "pc": [ - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 102, - "source": 921, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 131 - ] - }, - { - "teal": 105, - "source": 921, - "pc": [ - 132, - 133, - 134, - 135, - 136, - 137 - ] - }, - { - "teal": 106, - "source": 921, - "pc": [ - 138, - 139, - 140 - ] - }, - { - "teal": 107, - "source": 921, - "pc": [ - 141, - 142, - 143, - 144 - ] - }, - { - "teal": 110, - "source": 921, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 145 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 143 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 157 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKWJvb2wKKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheUFjY2VzcwoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNCb29sQXJyYXlBY2Nlc3MoKTogYm9vbGVhbgpzdGF0aWNCb29sQXJyYXlBY2Nlc3M6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjMKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTI1CgkvLyByZXR1cm4gYVs4XTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlBY2Nlc3MKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCiphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5QWNjZXNzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5QWNjZXNzKClib29sCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheUFjY2VzcwoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljQm9vbEFycmF5QWNjZXNzKCk6IGJvb2xlYW4Kc3RhdGljQm9vbEFycmF5QWNjZXNzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjMKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCXB1c2hieXRlcyAweDAwMDAKCXB1c2hpbnQgMAoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgMwoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNAoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgNgoJcHVzaGludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MjUKCS8vIHJldHVybiBhWzhdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDgKCWdldGJpdAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlNGViMmMxZiAvLyBtZXRob2QgInN0YXRpY0Jvb2xBcnJheUFjY2VzcygpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5QWNjZXNzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAAEGCDEYFCQLMRkIjQwAWwAAAAAAAAAAAAAATQAAAAAAAAAAAAAAgAQVH3x1iAALgAEAIk8CVFCwI0OKAAGAAIACAAAiI1QjIlSBAiNUgQMjVIEEIlSBBSJUJCNUgQciVCUiVIwAiwA1/zT/JVOMAIkjQ4AEuER7NjYaAI4B//EAgATk6ywfNhoAjgH/mQA=", + "approval": "CjEYFIEGCzEZCI0MAGwAAAAAAAAAAAAAAF4AAAAAAAAAAAAAAIAEFR98dYgADYABAIEATwJUULCBAUOKAAGAAIACAACBAIEBVIEBgQBUgQKBAVSBA4EBVIEEgQBUgQWBAFSBBoEBVIEHgQBUgQiBAFSMAIsANf80/4EIU4wAiYEBQ4AEuER7NjYaAI4B//AAgATk6ywfNhoAjgH/iAA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal index 090b01d7f..35b2ee2b4 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 1 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticBoolArrayUpdate()bool[9] *abi_route_staticBoolArrayUpdate: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticBoolArrayUpdate()bool[9] callsub staticBoolArrayUpdate @@ -39,37 +40,37 @@ staticBoolArrayUpdate: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:947 // a: StaticArray = [true, false, true, true, false, false, true, false, false] - byte 0x0000 - int 0 + pushbytes 0x0000 + pushint 0 int 1 setbit int 1 - int 0 + pushint 0 setbit - int 2 + pushint 2 int 1 setbit - int 3 + pushint 3 int 1 setbit - int 4 - int 0 + pushint 4 + pushint 0 setbit - int 5 - int 0 + pushint 5 + pushint 0 setbit - int 6 + pushint 6 int 1 setbit - int 7 - int 0 + pushint 7 + pushint 0 setbit - int 8 - int 0 + pushint 8 + pushint 0 setbit frame_bury 0 // a: StaticArray @@ -78,7 +79,7 @@ staticBoolArrayUpdate: frame_dig 0 // a: StaticArray store 255 // full array load 255 // full array - int 8 + pushint 8 int 1 setbit frame_bury 0 // a: StaticArray @@ -96,7 +97,7 @@ staticBoolArrayUpdate: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -104,7 +105,7 @@ staticBoolArrayUpdate: err *call_NoOp: - method "staticBoolArrayUpdate()bool[9]" + pushbytes 0x81270f34 // method "staticBoolArrayUpdate()bool[9]" txna ApplicationArgs 0 match *abi_route_staticBoolArrayUpdate diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json index ebc890af6..0c6af1148 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbOV0KKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXlVcGRhdGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDcKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTQ5CgkvLyBhWzhdID0gdHJ1ZQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCiphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5VXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXlVcGRhdGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk0NwoJLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJcHVzaGJ5dGVzIDB4MDAwMAoJcHVzaGludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJaW50IDEKCXNldGJpdAoJcHVzaGludCAzCglpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCWludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDkKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgxMjcwZjM0IC8vIG1ldGhvZCAic3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc56_draft.json index 633bf7d79..43b6e5eda 100644 --- a/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc56_draft.json @@ -61,559 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 945, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 945, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 945, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 945, - "pc": [ - 10 - ] - }, - { - "teal": 16, - "source": 945, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 945, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 945, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 945, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 945, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 946, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 946, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 946, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 946, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 946, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 946, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 946, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 946, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 46, - "source": 947, - "pc": [ - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 47, - "source": 947, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 947, - "pc": [ - 65 - ] - }, - { - "teal": 49, - "source": 947, - "pc": [ - 66 - ] - }, - { - "teal": 50, - "source": 947, - "pc": [ - 67 - ] - }, - { - "teal": 51, - "source": 947, - "pc": [ - 68 - ] - }, - { - "teal": 52, - "source": 947, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 947, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 54, - "source": 947, - "pc": [ - 72 - ] - }, - { - "teal": 55, - "source": 947, - "pc": [ - 73 - ] - }, - { - "teal": 56, - "source": 947, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 57, - "source": 947, - "pc": [ - 76 - ] - }, - { - "teal": 58, - "source": 947, - "pc": [ - 77 - ] - }, - { - "teal": 59, - "source": 947, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 60, - "source": 947, - "pc": [ - 80 - ] - }, - { - "teal": 61, - "source": 947, - "pc": [ - 81 - ] - }, - { - "teal": 62, - "source": 947, - "pc": [ - 82, - 83 - ] - }, - { - "teal": 63, - "source": 947, - "pc": [ - 84 - ] - }, - { - "teal": 64, - "source": 947, - "pc": [ - 85 - ] - }, - { - "teal": 65, - "source": 947, - "pc": [ - 86 - ] - }, - { - "teal": 66, - "source": 947, - "pc": [ - 87 - ] - }, - { - "teal": 67, - "source": 947, - "pc": [ - 88 - ] - }, - { - "teal": 68, - "source": 947, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 69, - "source": 947, - "pc": [ - 91 - ] - }, - { - "teal": 70, - "source": 947, - "pc": [ - 92 - ] - }, - { - "teal": 71, - "source": 947, - "pc": [ - 93 - ] - }, - { - "teal": 72, - "source": 947, - "pc": [ - 94 - ] - }, - { - "teal": 73, - "source": 947, - "pc": [ - 95 - ] - }, - { - "teal": 74, - "source": 947, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 78, - "source": 949, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 79, - "source": 949, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 80, - "source": 949, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 81, - "source": 949, - "pc": [ - 104 - ] - }, - { - "teal": 82, - "source": 949, - "pc": [ - 105 - ] - }, - { - "teal": 83, - "source": 949, - "pc": [ - 106 - ] - }, - { - "teal": 84, - "source": 949, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 88, - "source": 951, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 91, - "source": 946, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 92, - "source": 946, - "pc": [ - 113 - ] - }, - { - "teal": 95, - "source": 945, - "pc": [ - 114 - ] - }, - { - "teal": 96, - "source": 945, - "pc": [ - 115 - ] - }, - { - "teal": 99, - "source": 945, - "pc": [ - 116, - 117, - 118, - 119, - 120, - 121 - ] - }, - { - "teal": 100, - "source": 945, - "pc": [ - 122, - 123, - 124 - ] - }, - { - "teal": 101, - "source": 945, - "pc": [ - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 104, - "source": 945, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 129 - ] - }, - { - "teal": 107, - "source": 945, - "pc": [ - 130, - 131, - 132, - 133, - 134, - 135 - ] - }, - { - "teal": 108, - "source": 945, - "pc": [ - 136, - 137, - 138 - ] - }, - { - "teal": 109, - "source": 945, - "pc": [ - 139, - 140, - 141, - 142 - ] - }, - { - "teal": 112, - "source": 945, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 143 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 144 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 158 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCb29sQXJyYXlVcGRhdGUoKWJvb2xbOV0KKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXlVcGRhdGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDcKCS8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+ID0gW3RydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0KCWJ5dGUgMHgwMDAwCglpbnQgMAoJaW50IDEKCXNldGJpdAoJaW50IDEKCWludCAwCglzZXRiaXQKCWludCAyCglpbnQgMQoJc2V0Yml0CglpbnQgMwoJaW50IDEKCXNldGJpdAoJaW50IDQKCWludCAwCglzZXRiaXQKCWludCA1CglpbnQgMAoJc2V0Yml0CglpbnQgNgoJaW50IDEKCXNldGJpdAoJaW50IDcKCWludCAwCglzZXRiaXQKCWludCA4CglpbnQgMAoJc2V0Yml0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTQ5CgkvLyBhWzhdID0gdHJ1ZQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCiphYmlfcm91dGVfc3RhdGljQm9vbEFycmF5VXBkYXRlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldCgljYWxsc3ViIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Jvb2xBcnJheVVwZGF0ZSgpOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgpzdGF0aWNCb29sQXJyYXlVcGRhdGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk0NwoJLy8gYTogU3RhdGljQXJyYXk8Ym9vbGVhbiwgOT4gPSBbdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXQoJcHVzaGJ5dGVzIDB4MDAwMAoJcHVzaGludCAwCglpbnQgMQoJc2V0Yml0CglpbnQgMQoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgMgoJaW50IDEKCXNldGJpdAoJcHVzaGludCAzCglpbnQgMQoJc2V0Yml0CglwdXNoaW50IDQKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDUKCXB1c2hpbnQgMAoJc2V0Yml0CglwdXNoaW50IDYKCWludCAxCglzZXRiaXQKCXB1c2hpbnQgNwoJcHVzaGludCAwCglzZXRiaXQKCXB1c2hpbnQgOAoJcHVzaGludCAwCglzZXRiaXQKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NDkKCS8vIGFbOF0gPSB0cnVlCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgOAoJaW50IDEKCXNldGJpdAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PGJvb2xlYW4sIDk+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjk1MQoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxib29sZWFuLCA5PgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgxMjcwZjM0IC8vIG1ldGhvZCAic3RhdGljQm9vbEFycmF5VXBkYXRlKClib29sWzldIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCb29sQXJyYXlVcGRhdGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQAGCDEYFCQLMRkIjQwAWQAAAAAAAAAAAAAASwAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAAYAAgAIAACMiVCIjVIECIlSBAyJUgQQjVIEFI1QkIlSBByNUJSNUjACLADX/NP8lIlSMAIsAjACJIkOABLhEezY2GgCOAf/xAIAEgScPNDYaAI4B/5sA", + "approval": "CiABATEYFIEGCzEZCI0MAGoAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAgAAgQCBAVSBAYEAVIECgQFUgQOBAVSBBIEAVIEFgQBUgQaBAVSBB4EAVIEIgQBUjACLADX/NP+BCIEBVIwAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEgScPNDYaAI4B/4oA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal b/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal index 70fb62830..c63ea9fb6 100644 --- a/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticByteCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticByteCasting()byte[5] *abi_route_staticByteCasting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticByteCasting()byte[5] callsub staticByteCasting concat log - int 1 + pushint 1 return // staticByteCasting(): bytes<5> @@ -40,15 +40,15 @@ staticByteCasting: // tests/contracts/abi.algo.ts:1041 // return 'abc' as bytes<5>; - byte 0x6162630000 // "abc" + pushbytes 0x6162630000 // "abc" retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -56,7 +56,7 @@ staticByteCasting: err *call_NoOp: - method "staticByteCasting()byte[5]" + pushbytes 0x83fb5b55 // method "staticByteCasting()byte[5]" txna ApplicationArgs 0 match *abi_route_staticByteCasting diff --git a/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json b/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json index e42315f88..d3912d0fd 100644 --- a/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticByteCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XQoqYWJpX3JvdXRlX3N0YXRpY0J5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdCgljYWxsc3ViIHN0YXRpY0J5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQnl0ZUNhc3RpbmcoKTogYnl0ZXM8NT4Kc3RhdGljQnl0ZUNhc3Rpbmc6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0MQoJLy8gcmV0dXJuICdhYmMnIGFzIGJ5dGVzPDU+OwoJYnl0ZSAweDYxNjI2MzAwMDAgLy8gImFiYyIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCeXRlQ2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQnl0ZUNhc3RpbmcoKWJ5dGVbNV0KKmFiaV9yb3V0ZV9zdGF0aWNCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdCgljYWxsc3ViIHN0YXRpY0J5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0YXRpY0J5dGVDYXN0aW5nKCk6IGJ5dGVzPDU+CnN0YXRpY0J5dGVDYXN0aW5nOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNDEKCS8vIHJldHVybiAnYWJjJyBhcyBieXRlczw1PjsKCXB1c2hieXRlcyAweDYxNjI2MzAwMDAgLy8gImFiYyIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ODNmYjViNTUgLy8gbWV0aG9kICJzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQnl0ZUNhc3RpbmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticByteCasting.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticByteCasting.arc56_draft.json index d9e480c12..1fbeddc4d 100644 --- a/tests/contracts/artifacts/ABITestStaticByteCasting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticByteCasting.arc56_draft.json @@ -61,281 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1039, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1039, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1039, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1039, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1039, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1039, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1039, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1039, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1039, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1040, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1040, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1040, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1040, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1040, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1040, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1040, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 43, - "source": 1041, - "pc": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 44, - "source": 1040, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 1039, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 1039, - "pc": [ - 65 - ] - }, - { - "teal": 51, - "source": 1039, - "pc": [ - 66, - 67, - 68, - 69, - 70, - 71 - ] - }, - { - "teal": 52, - "source": 1039, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 53, - "source": 1039, - "pc": [ - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 56, - "source": 1039, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 79 - ] - }, - { - "teal": 59, - "source": 1039, - "pc": [ - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 60, - "source": 1039, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 61, - "source": 1039, - "pc": [ - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 64, - "source": 1039, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 93 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 78 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 92 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XQoqYWJpX3JvdXRlX3N0YXRpY0J5dGVDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdCgljYWxsc3ViIHN0YXRpY0J5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQnl0ZUNhc3RpbmcoKTogYnl0ZXM8NT4Kc3RhdGljQnl0ZUNhc3Rpbmc6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0MQoJLy8gcmV0dXJuICdhYmMnIGFzIGJ5dGVzPDU+OwoJYnl0ZSAweDYxNjI2MzAwMDAgLy8gImFiYyIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNCeXRlQ2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljQnl0ZUNhc3RpbmcoKWJ5dGVbNV0KKmFiaV9yb3V0ZV9zdGF0aWNCeXRlQ2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0J5dGVDYXN0aW5nKClieXRlWzVdCgljYWxsc3ViIHN0YXRpY0J5dGVDYXN0aW5nCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0YXRpY0J5dGVDYXN0aW5nKCk6IGJ5dGVzPDU+CnN0YXRpY0J5dGVDYXN0aW5nOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNDEKCS8vIHJldHVybiAnYWJjJyBhcyBieXRlczw1PjsKCXB1c2hieXRlcyAweDYxNjI2MzAwMDAgLy8gImFiYyIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ODNmYjViNTUgLy8gbWV0aG9kICJzdGF0aWNCeXRlQ2FzdGluZygpYnl0ZVs1XSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljQnl0ZUNhc3RpbmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MACkAAAAAAAAAAAAAABsAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGABWFiYwAAiSJDgAS4RHs2NhoAjgH/8QCABIP7W1U2GgCOAf/LAA==", + "approval": "CjEYFIEGCzEZCI0MACsAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgAVhYmMAAImBAUOABLhEezY2GgCOAf/wAIAEg/tbVTYaAI4B/8kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticForEach.approval.teal b/tests/contracts/artifacts/ABITestStaticForEach.approval.teal index c2d36a98a..b2a301483 100644 --- a/tests/contracts/artifacts/ABITestStaticForEach.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticForEach.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticForEach()uint64 *abi_route_staticForEach: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticForEach()uint64 callsub staticForEach itob concat log - int 1 + pushint 1 return // staticForEach(): uint64 @@ -45,12 +46,12 @@ staticForEach: // tests/contracts/abi.algo.ts:1308 // a: StaticArray = [1, 2, 3] - byte 0x000000000000000100000000000000020000000000000003 + pushbytes 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1309 // sum = 0 - int 0 + pushint 0 frame_bury 1 // sum: uint64 // tests/contracts/abi.algo.ts:1311 @@ -61,7 +62,7 @@ staticForEach: extract 0 8 btoi frame_bury 3 // v: uint64 - int 0 + pushint 0 frame_bury 4 // the offset we are extracting the next element from *forEach_0: @@ -74,16 +75,16 @@ staticForEach: // increment offset and loop if not out of bounds frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forEach_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 3 // v: uint64 @@ -102,11 +103,11 @@ staticForEach: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -114,7 +115,7 @@ staticForEach: err *call_NoOp: - method "staticForEach()uint64" + pushbytes 0xc2c58f9f // method "staticForEach()uint64" txna ApplicationArgs 0 match *abi_route_staticForEach diff --git a/tests/contracts/artifacts/ABITestStaticForEach.arc32.json b/tests/contracts/artifacts/ABITestStaticForEach.arc32.json index d574cd63f..50f974cd1 100644 --- a/tests/contracts/artifacts/ABITestStaticForEach.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticForEach.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0ZvckVhY2goKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNGb3JFYWNoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljRm9yRWFjaCgpOiB1aW50NjQKc3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwOAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwOQoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzExCgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxMgoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxNAoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljRm9yRWFjaCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljRm9yRWFjaCgpdWludDY0CgljYWxsc3ViIHN0YXRpY0ZvckVhY2gKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljRm9yRWFjaCgpOiB1aW50NjQKc3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwOAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzA5CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzExCgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMTIKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CgkrCglkdXAKCXB1c2hpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMTQKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzJjNThmOWYgLy8gbWV0aG9kICJzdGF0aWNGb3JFYWNoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0ZvckVhY2gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticForEach.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticForEach.arc56_draft.json index 4ab308dcf..ec32dcebc 100644 --- a/tests/contracts/artifacts/ABITestStaticForEach.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticForEach.arc56_draft.json @@ -61,580 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1306, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1306, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1306, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1306, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1306, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1306, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1306, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1306, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1306, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1307, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 1307, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 1307, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 1307, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 1307, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1307, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1307, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1307, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1307, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1307, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 48, - "source": 1308, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 49, - "source": 1308, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 53, - "source": 1309, - "pc": [ - 91 - ] - }, - { - "teal": 54, - "source": 1309, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 58, - "source": 1311, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 59, - "source": 1311, - "pc": [ - 96 - ] - }, - { - "teal": 60, - "source": 1311, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 61, - "source": 1311, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 62, - "source": 1311, - "pc": [ - 102 - ] - }, - { - "teal": 63, - "source": 1311, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 64, - "source": 1311, - "pc": [ - 105 - ] - }, - { - "teal": 65, - "source": 1311, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 70, - "source": 1312, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 71, - "source": 1312, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 72, - "source": 1312, - "pc": [ - 112 - ] - }, - { - "teal": 73, - "source": 1312, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 76, - "source": 1311, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 77, - "source": 1311, - "pc": [ - 117 - ] - }, - { - "teal": 78, - "source": 1311, - "pc": [ - 118 - ] - }, - { - "teal": 79, - "source": 1311, - "pc": [ - 119 - ] - }, - { - "teal": 80, - "source": 1311, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 81, - "source": 1311, - "pc": [ - 122 - ] - }, - { - "teal": 82, - "source": 1311, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 83, - "source": 1311, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 84, - "source": 1311, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 85, - "source": 1311, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 86, - "source": 1311, - "pc": [ - 132 - ] - }, - { - "teal": 87, - "source": 1311, - "pc": [ - 133 - ] - }, - { - "teal": 88, - "source": 1311, - "pc": [ - 134 - ] - }, - { - "teal": 89, - "source": 1311, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 90, - "source": 1311, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 95, - "source": 1314, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 98, - "source": 1307, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 101, - "source": 1307, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 102, - "source": 1307, - "pc": [ - 146 - ] - }, - { - "teal": 105, - "source": 1306, - "pc": [ - 147 - ] - }, - { - "teal": 106, - "source": 1306, - "pc": [ - 148 - ] - }, - { - "teal": 109, - "source": 1306, - "pc": [ - 149, - 150, - 151, - 152, - 153, - 154 - ] - }, - { - "teal": 110, - "source": 1306, - "pc": [ - 155, - 156, - 157 - ] - }, - { - "teal": 111, - "source": 1306, - "pc": [ - 158, - 159, - 160, - 161 - ] - }, - { - "teal": 114, - "source": 1306, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 162 - ] - }, - { - "teal": 117, - "source": 1306, - "pc": [ - 163, - 164, - 165, - 166, - 167, - 168 - ] - }, - { - "teal": 118, - "source": 1306, - "pc": [ - 169, - 170, - 171 - ] - }, - { - "teal": 119, - "source": 1306, - "pc": [ - 172, - 173, - 174, - 175 - ] - }, - { - "teal": 122, - "source": 1306, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 176 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 166 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 180 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0YXRpY0ZvckVhY2goKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNGb3JFYWNoCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljRm9yRWFjaCgpOiB1aW50NjQKc3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwOAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwOQoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzExCgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JFYWNoXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxMgoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIGluY3JlbWVudCBvZmZzZXQgYW5kIGxvb3AgaWYgbm90IG91dCBvZiBib3VuZHMKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJKwoJZHVwCglpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvckVhY2hfMAoKKmZvckVhY2hfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMxNAoJLy8gcmV0dXJuIHN1bTsKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gNAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljRm9yRWFjaCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JFYWNoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdGF0aWNGb3JFYWNoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljRm9yRWFjaCgpdWludDY0CgljYWxsc3ViIHN0YXRpY0ZvckVhY2gKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljRm9yRWFjaCgpOiB1aW50NjQKc3RhdGljRm9yRWFjaDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwOAoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzA5CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzExCgkvLyBhLmZvckVhY2gKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWR1cAoJZnJhbWVfYnVyeSAyIC8vIGNvcHkgb2YgdGhlIGFycmF5IHdlIGFyZSBpdGVyYXRpbmcgb3ZlcgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCXB1c2hpbnQgMAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCgoqZm9yRWFjaF8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMTIKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CgkrCglkdXAKCXB1c2hpbnQgMjQgLy8gb2Zmc2V0IG9mIGxhc3QgZWxlbWVudAoJPAoJYnogKmZvckVhY2hfMF9lbmQKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJZnJhbWVfZGlnIDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJcHVzaGludCA4CglleHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDMgLy8gdjogdWludDY0CgliICpmb3JFYWNoXzAKCipmb3JFYWNoXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMTQKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzJjNThmOWYgLy8gbWV0aG9kICJzdGF0aWNGb3JFYWNoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0ZvckVhY2gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAIMRgUgQYLMRkIjQwAegAAAAAAAAAAAAAAbAAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEcEgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMACOMAYsASYwCVwAIF4wDI4wEiwGLAwiMAYsEJAhJgRgMQQAOjASLAosEJFgXjANC/+CLAYwARgSJIkOABLhEezY2GgCOAf/xAIAEwsWPnzYaAI4B/3oA", + "approval": "CiYBADEYFIEGCzEZCI0MAIAAAAAAAAAAAAAAAHIAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSAGAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA4wAgQCMAYsASYwCVwAIF4wDgQCMBIsBiwMIjAGLBIEICEmBGAxBAA+MBIsCiwSBCFgXjANC/96LAYwARgSJgQFDgAS4RHs2NhoAjgH/8ACABMLFj582GgCOAf90AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticForOf.approval.teal b/tests/contracts/artifacts/ABITestStaticForOf.approval.teal index 175667183..b21d048cf 100644 --- a/tests/contracts/artifacts/ABITestStaticForOf.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticForOf.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticForOf()uint64 *abi_route_staticForOf: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute staticForOf()uint64 callsub staticForOf itob concat log - int 1 + pushint 1 return // staticForOf(): uint64 @@ -45,12 +46,12 @@ staticForOf: // tests/contracts/abi.algo.ts:1453 // a: StaticArray = [1, 2, 3] - byte 0x000000000000000100000000000000020000000000000003 + pushbytes 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:1454 // sum = 0 - int 0 + pushint 0 frame_bury 1 // sum: uint64 frame_dig 0 // a: StaticArray dup @@ -58,7 +59,7 @@ staticForOf: extract 0 8 btoi frame_bury 3 // v: uint64 - int 0 + pushint 0 frame_bury 4 // the offset we are extracting the next element from *forOf_0: @@ -72,16 +73,16 @@ staticForOf: *forOf_0_continue: // increment offset and loop if not out of bounds frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 + dup - int 24 // offset of last element + pushint 24 // offset of last element < bz *forOf_0_end frame_bury 4 // the offset we are extracting the next element from frame_dig 2 // copy of the array we are iterating over frame_dig 4 // the offset we are extracting the next element from - int 8 + pushint 8 extract btoi frame_bury 3 // v: uint64 @@ -100,11 +101,11 @@ staticForOf: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -112,7 +113,7 @@ staticForOf: err *call_NoOp: - method "staticForOf()uint64" + pushbytes 0x80c9b479 // method "staticForOf()uint64" txna ApplicationArgs 0 match *abi_route_staticForOf diff --git a/tests/contracts/artifacts/ABITestStaticForOf.arc32.json b/tests/contracts/artifacts/ABITestStaticForOf.arc32.json index 96c13feaf..852cb9008 100644 --- a/tests/contracts/artifacts/ABITestStaticForOf.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticForOf.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JPZigpdWludDY0CiphYmlfcm91dGVfc3RhdGljRm9yT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljRm9yT2YoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNGb3JPZgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Zvck9mKCk6IHVpbnQ2NApzdGF0aWNGb3JPZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1NAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1OAoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKKmZvck9mXzBfY29udGludWU6CgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NjAKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0Zvck9mKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Zvck9mCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JPZigpdWludDY0CiphYmlfcm91dGVfc3RhdGljRm9yT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNGb3JPZigpdWludDY0CgljYWxsc3ViIHN0YXRpY0Zvck9mCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Zvck9mKCk6IHVpbnQ2NApzdGF0aWNGb3JPZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDU0CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NTgKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgOAoJKwoJZHVwCglwdXNoaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDYwCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgwYzliNDc5IC8vIG1ldGhvZCAic3RhdGljRm9yT2YoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljRm9yT2YKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticForOf.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticForOf.arc56_draft.json index 3907e1182..3cd58c470 100644 --- a/tests/contracts/artifacts/ABITestStaticForOf.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticForOf.arc56_draft.json @@ -61,580 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1451, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1451, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1451, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1451, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1451, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1451, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1451, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1451, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1451, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1452, - "pc": [ - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 31, - "source": 1452, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 1452, - "pc": [ - 51 - ] - }, - { - "teal": 33, - "source": 1452, - "pc": [ - 52 - ] - }, - { - "teal": 34, - "source": 1452, - "pc": [ - 53 - ] - }, - { - "teal": 35, - "source": 1452, - "pc": [ - 54 - ] - }, - { - "teal": 36, - "source": 1452, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 1452, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1452, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 44, - "source": 1452, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 48, - "source": 1453, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 49, - "source": 1453, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 53, - "source": 1454, - "pc": [ - 91 - ] - }, - { - "teal": 54, - "source": 1454, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 55, - "source": 1457, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 56, - "source": 1457, - "pc": [ - 96 - ] - }, - { - "teal": 57, - "source": 1457, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 58, - "source": 1457, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 59, - "source": 1457, - "pc": [ - 102 - ] - }, - { - "teal": 60, - "source": 1457, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 61, - "source": 1457, - "pc": [ - 105 - ] - }, - { - "teal": 62, - "source": 1457, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 67, - "source": 1458, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 68, - "source": 1458, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 69, - "source": 1458, - "pc": [ - 112 - ] - }, - { - "teal": 70, - "source": 1458, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 74, - "source": 1457, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 75, - "source": 1457, - "pc": [ - 117 - ] - }, - { - "teal": 76, - "source": 1457, - "pc": [ - 118 - ] - }, - { - "teal": 77, - "source": 1457, - "pc": [ - 119 - ] - }, - { - "teal": 78, - "source": 1457, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 79, - "source": 1457, - "pc": [ - 122 - ] - }, - { - "teal": 80, - "source": 1457, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 81, - "source": 1457, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 82, - "source": 1457, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 83, - "source": 1457, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 84, - "source": 1457, - "pc": [ - 132 - ] - }, - { - "teal": 85, - "source": 1457, - "pc": [ - 133 - ] - }, - { - "teal": 86, - "source": 1457, - "pc": [ - 134 - ] - }, - { - "teal": 87, - "source": 1457, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 88, - "source": 1457, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 93, - "source": 1460, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 96, - "source": 1452, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 99, - "source": 1452, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 100, - "source": 1452, - "pc": [ - 146 - ] - }, - { - "teal": 103, - "source": 1451, - "pc": [ - 147 - ] - }, - { - "teal": 104, - "source": 1451, - "pc": [ - 148 - ] - }, - { - "teal": 107, - "source": 1451, - "pc": [ - 149, - 150, - 151, - 152, - 153, - 154 - ] - }, - { - "teal": 108, - "source": 1451, - "pc": [ - 155, - 156, - 157 - ] - }, - { - "teal": 109, - "source": 1451, - "pc": [ - 158, - 159, - 160, - 161 - ] - }, - { - "teal": 112, - "source": 1451, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 162 - ] - }, - { - "teal": 115, - "source": 1451, - "pc": [ - 163, - 164, - 165, - 166, - 167, - 168 - ] - }, - { - "teal": 116, - "source": 1451, - "pc": [ - 169, - 170, - 171 - ] - }, - { - "teal": 117, - "source": 1451, - "pc": [ - 172, - 173, - 174, - 175 - ] - }, - { - "teal": 120, - "source": 1451, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 176 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 166 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 180 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JPZigpdWludDY0CiphYmlfcm91dGVfc3RhdGljRm9yT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RhdGljRm9yT2YoKXVpbnQ2NAoJY2FsbHN1YiBzdGF0aWNGb3JPZgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Zvck9mKCk6IHVpbnQ2NApzdGF0aWNGb3JPZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1NAoJLy8gc3VtID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJaW50IDAKCWZyYW1lX2J1cnkgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoKKmZvck9mXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1OAoJLy8gc3VtICs9IHYKCWZyYW1lX2RpZyAxIC8vIHN1bTogdWludDY0CglmcmFtZV9kaWcgMyAvLyB2OiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoKKmZvck9mXzBfY29udGludWU6CgkvLyBpbmNyZW1lbnQgb2Zmc2V0IGFuZCBsb29wIGlmIG5vdCBvdXQgb2YgYm91bmRzCglmcmFtZV9kaWcgNCAvLyB0aGUgb2Zmc2V0IHdlIGFyZSBleHRyYWN0aW5nIHRoZSBuZXh0IGVsZW1lbnQgZnJvbQoJaW50IDgKCSsKCWR1cAoJaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglpbnQgOAoJZXh0cmFjdAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJYiAqZm9yT2ZfMAoKKmZvck9mXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NjAKCS8vIHJldHVybiBzdW07CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0Zvck9mKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY0Zvck9mCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNGb3JPZigpdWludDY0CiphYmlfcm91dGVfc3RhdGljRm9yT2Y6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdGF0aWNGb3JPZigpdWludDY0CgljYWxsc3ViIHN0YXRpY0Zvck9mCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0YXRpY0Zvck9mKCk6IHVpbnQ2NApzdGF0aWNGb3JPZjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ1MwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxLCAyLCAzXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDU0CgkvLyBzdW0gPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZHVwCglmcmFtZV9idXJ5IDIgLy8gY29weSBvZiB0aGUgYXJyYXkgd2UgYXJlIGl0ZXJhdGluZyBvdmVyCglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfYnVyeSAzIC8vIHY6IHVpbnQ2NAoJcHVzaGludCAwCglmcmFtZV9idXJ5IDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCipmb3JPZl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NTgKCS8vIHN1bSArPSB2CglmcmFtZV9kaWcgMSAvLyBzdW06IHVpbnQ2NAoJZnJhbWVfZGlnIDMgLy8gdjogdWludDY0CgkrCglmcmFtZV9idXJ5IDEgLy8gc3VtOiB1aW50NjQKCipmb3JPZl8wX2NvbnRpbnVlOgoJLy8gaW5jcmVtZW50IG9mZnNldCBhbmQgbG9vcCBpZiBub3Qgb3V0IG9mIGJvdW5kcwoJZnJhbWVfZGlnIDQgLy8gdGhlIG9mZnNldCB3ZSBhcmUgZXh0cmFjdGluZyB0aGUgbmV4dCBlbGVtZW50IGZyb20KCXB1c2hpbnQgOAoJKwoJZHVwCglwdXNoaW50IDI0IC8vIG9mZnNldCBvZiBsYXN0IGVsZW1lbnQKCTwKCWJ6ICpmb3JPZl8wX2VuZAoJZnJhbWVfYnVyeSA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglmcmFtZV9kaWcgMiAvLyBjb3B5IG9mIHRoZSBhcnJheSB3ZSBhcmUgaXRlcmF0aW5nIG92ZXIKCWZyYW1lX2RpZyA0IC8vIHRoZSBvZmZzZXQgd2UgYXJlIGV4dHJhY3RpbmcgdGhlIG5leHQgZWxlbWVudCBmcm9tCglwdXNoaW50IDgKCWV4dHJhY3QKCWJ0b2kKCWZyYW1lX2J1cnkgMyAvLyB2OiB1aW50NjQKCWIgKmZvck9mXzAKCipmb3JPZl8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDYwCgkvLyByZXR1cm4gc3VtOwoJZnJhbWVfZGlnIDEgLy8gc3VtOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiA0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgwYzliNDc5IC8vIG1ldGhvZCAic3RhdGljRm9yT2YoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljRm9yT2YKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQAIMRgUgQYLMRkIjQwAegAAAAAAAAAAAAAAbAAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEcEgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMACOMAYsASYwCVwAIF4wDI4wEiwGLAwiMAYsEJAhJgRgMQQAOjASLAosEJFgXjANC/+CLAYwARgSJIkOABLhEezY2GgCOAf/xAIAEgMm0eTYaAI4B/3oA", + "approval": "CiYBADEYFIEGCzEZCI0MAIAAAAAAAAAAAAAAAHIAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAARwSAGAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA4wAgQCMAYsASYwCVwAIF4wDgQCMBIsBiwMIjAGLBIEICEmBGAxBAA+MBIsCiwSBCFgXjANC/96LAYwARgSJgQFDgAS4RHs2NhoAjgH/8ACABIDJtHk2GgCOAf90AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal b/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal index 280698f2a..c268a1538 100644 --- a/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticStringArrayArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // staticStringArrayArg(string[3])string *abi_route_staticStringArrayArg: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: string[3] txna ApplicationArgs 1 @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // staticStringArrayArg(a: StaticArray): string @@ -51,7 +51,7 @@ staticStringArrayArg: // return a[1]; frame_dig -1 // a: StaticArray store 255 // full array - int 2 + pushint 2 load 255 // full array load 255 // full array uncover 2 @@ -60,20 +60,20 @@ staticStringArrayArg: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +81,7 @@ staticStringArrayArg: err *call_NoOp: - method "staticStringArrayArg(string[3])string" + pushbytes 0xbc8d1204 // method "staticStringArrayArg(string[3])string" txna ApplicationArgs 0 match *abi_route_staticStringArrayArg diff --git a/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json b/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json index f44aad00d..4cae861fd 100644 --- a/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhzdHJpbmdbM10pc3RyaW5nCiphYmlfcm91dGVfc3RhdGljU3RyaW5nQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBzdGF0aWNTdHJpbmdBcnJheUFyZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+KTogc3RyaW5nCnN0YXRpY1N0cmluZ0FycmF5QXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0NQoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY1N0cmluZ0FycmF5QXJnKHN0cmluZ1szXSlzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY1N0cmluZ0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoqYWJpX3JvdXRlX3N0YXRpY1N0cmluZ0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBzdGF0aWNTdHJpbmdBcnJheUFyZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljU3RyaW5nQXJyYXlBcmcoYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPik6IHN0cmluZwpzdGF0aWNTdHJpbmdBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NDUKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGJjOGQxMjA0IC8vIG1ldGhvZCAic3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljU3RyaW5nQXJyYXlBcmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc56_draft.json index 71540d5eb..e7409e3dd 100644 --- a/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticStringArrayArg.arc56_draft.json @@ -66,449 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 643, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 643, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 643, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 643, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 643, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 643, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 643, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 643, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 643, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 644, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 644, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 34, - "source": 644, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 644, - "pc": [ - 53 - ] - }, - { - "teal": 36, - "source": 644, - "pc": [ - 54 - ] - }, - { - "teal": 37, - "source": 644, - "pc": [ - 55 - ] - }, - { - "teal": 38, - "source": 644, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 39, - "source": 644, - "pc": [ - 59 - ] - }, - { - "teal": 40, - "source": 644, - "pc": [ - 60 - ] - }, - { - "teal": 41, - "source": 644, - "pc": [ - 61 - ] - }, - { - "teal": 42, - "source": 644, - "pc": [ - 62 - ] - }, - { - "teal": 43, - "source": 644, - "pc": [ - 63 - ] - }, - { - "teal": 44, - "source": 644, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 644, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 52, - "source": 645, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 53, - "source": 645, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 54, - "source": 645, - "pc": [ - 72 - ] - }, - { - "teal": 55, - "source": 645, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 56, - "source": 645, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 57, - "source": 645, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 58, - "source": 645, - "pc": [ - 79 - ] - }, - { - "teal": 59, - "source": 645, - "pc": [ - 80 - ] - }, - { - "teal": 60, - "source": 645, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 61, - "source": 645, - "pc": [ - 83 - ] - }, - { - "teal": 62, - "source": 645, - "pc": [ - 84 - ] - }, - { - "teal": 63, - "source": 645, - "pc": [ - 85 - ] - }, - { - "teal": 64, - "source": 645, - "pc": [ - 86 - ] - }, - { - "teal": 65, - "source": 645, - "pc": [ - 87 - ] - }, - { - "teal": 66, - "source": 645, - "pc": [ - 88 - ] - }, - { - "teal": 67, - "source": 645, - "pc": [ - 89 - ] - }, - { - "teal": 68, - "source": 645, - "pc": [ - 90, - 91, - 92 - ] - }, - { - "teal": 69, - "source": 644, - "pc": [ - 93 - ] - }, - { - "teal": 72, - "source": 643, - "pc": [ - 94 - ] - }, - { - "teal": 73, - "source": 643, - "pc": [ - 95 - ] - }, - { - "teal": 76, - "source": 643, - "pc": [ - 96, - 97, - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 77, - "source": 643, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 78, - "source": 643, - "pc": [ - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 81, - "source": 643, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 109 - ] - }, - { - "teal": 84, - "source": 643, - "pc": [ - 110, - 111, - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 85, - "source": 643, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 86, - "source": 643, - "pc": [ - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 89, - "source": 643, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 123 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhzdHJpbmdbM10pc3RyaW5nCiphYmlfcm91dGVfc3RhdGljU3RyaW5nQXJyYXlBcmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBzdGF0aWNTdHJpbmdBcnJheUFyZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNTdHJpbmdBcnJheUFyZyhhOiBTdGF0aWNBcnJheTxzdHJpbmcsIDM+KTogc3RyaW5nCnN0YXRpY1N0cmluZ0FycmF5QXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY0NQoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPgoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY1N0cmluZ0FycmF5QXJnKHN0cmluZ1szXSlzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0YXRpY1N0cmluZ0FycmF5QXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoqYWJpX3JvdXRlX3N0YXRpY1N0cmluZ0FycmF5QXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZwoJY2FsbHN1YiBzdGF0aWNTdHJpbmdBcnJheUFyZwoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljU3RyaW5nQXJyYXlBcmcoYTogU3RhdGljQXJyYXk8c3RyaW5nLCAzPik6IHN0cmluZwpzdGF0aWNTdHJpbmdBcnJheUFyZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2NDUKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIC0xIC8vIGE6IFN0YXRpY0FycmF5PHN0cmluZywgMz4KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGJjOGQxMjA0IC8vIG1ldGhvZCAic3RhdGljU3RyaW5nQXJyYXlBcmcoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljU3RyaW5nQXJyYXlBcmcKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQIxGBSBBgsxGQiNDABGAAAAAAAAAAAAAAA4AAAAAAAAAAAAAACABBUffHU2GgGIAAxJFRZXBgJMUFCwIkOKAQGL/zX/IzT/NP9PAllJNP9MWSILIwhYVwIAiSJDgAS4RHs2NhoAjgH/8QCABLyNEgQ2GgCOAf+uAA==", + "approval": "CjEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIAEFR98dTYaAYgADUkVFlcGAkxQULCBAUOKAQGL/zX/gQI0/zT/TwJZSTT/TFmBAQuBAghYVwIAiYEBQ4AEuER7NjYaAI4B//AAgAS8jRIENhoAjgH/qQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStaticTypeInBox.approval.teal b/tests/contracts/artifacts/ABITestStaticTypeInBox.approval.teal index 162f13e46..7bc354c7e 100644 --- a/tests/contracts/artifacts/ABITestStaticTypeInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticTypeInBox.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_staticTypeInBox: // execute staticTypeInBox()void callsub staticTypeInBox - int 1 + pushint 1 return // staticTypeInBox(): void @@ -53,11 +53,11 @@ staticTypeInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -65,7 +65,7 @@ staticTypeInBox: err *call_NoOp: - method "staticTypeInBox()void" + pushbytes 0x0f5207d9 // method "staticTypeInBox()void" txna ApplicationArgs 0 match *abi_route_staticTypeInBox diff --git a/tests/contracts/artifacts/ABITestStaticTypeInBox.arc32.json b/tests/contracts/artifacts/ABITestStaticTypeInBox.arc32.json index 191c1472d..6126078f4 100644 --- a/tests/contracts/artifacts/ABITestStaticTypeInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestStaticTypeInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNUeXBlSW5Cb3goKXZvaWQKKmFiaV9yb3V0ZV9zdGF0aWNUeXBlSW5Cb3g6CgkvLyBleGVjdXRlIHN0YXRpY1R5cGVJbkJveCgpdm9pZAoJY2FsbHN1YiBzdGF0aWNUeXBlSW5Cb3gKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1R5cGVJbkJveCgpOiB2b2lkCnN0YXRpY1R5cGVJbkJveDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTM1CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuIFNlbmRlcgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTM2CgkvLyBhc3NlcnQodGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUuaXNJbkxlZGdlcikKCXR4biBTZW5kZXIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlCglhc3NlcnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY1R5cGVJbkJveCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljVHlwZUluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljVHlwZUluQm94KCl2b2lkCiphYmlfcm91dGVfc3RhdGljVHlwZUluQm94OgoJLy8gZXhlY3V0ZSBzdGF0aWNUeXBlSW5Cb3goKXZvaWQKCWNhbGxzdWIgc3RhdGljVHlwZUluQm94CglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljVHlwZUluQm94KCk6IHZvaWQKc3RhdGljVHlwZUluQm94OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MzUKCS8vIHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCgl0eG4gU2VuZGVyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MzYKCS8vIGFzc2VydCh0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5pc0luTGVkZ2VyKQoJdHhuIFNlbmRlcgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCWFzc2VydAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgwZjUyMDdkOSAvLyBtZXRob2QgInN0YXRpY1R5cGVJbkJveCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljVHlwZUluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticTypeInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestStaticTypeInBox.arc56_draft.json index 5a8da682f..b59319e5e 100644 --- a/tests/contracts/artifacts/ABITestStaticTypeInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStaticTypeInBox.arc56_draft.json @@ -66,317 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1531, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1531, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1531, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1531, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1531, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1531, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1531, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1531, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1531, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1534, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 1534, - "pc": [ - 43 - ] - }, - { - "teal": 30, - "source": 1534, - "pc": [ - 44 - ] - }, - { - "teal": 34, - "source": 1534, - "pc": [ - 45, - 46, - 47 - ] - }, - { - "teal": 38, - "source": 1535, - "pc": [ - 48, - 49 - ] - }, - { - "teal": 39, - "source": 1535, - "pc": [ - 50, - 51 - ] - }, - { - "teal": 40, - "source": 1535, - "pc": [ - 52 - ] - }, - { - "teal": 44, - "source": 1536, - "pc": [ - 53, - 54 - ] - }, - { - "teal": 45, - "source": 1536, - "pc": [ - 55 - ] - }, - { - "teal": 48, - "source": 1536, - "errorMessage": "box value does not exist: this.bMap(this.txn.sender).value", - "pc": [ - 56 - ] - }, - { - "teal": 49, - "source": 1536, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 50, - "source": 1536, - "pc": [ - 59 - ] - }, - { - "teal": 51, - "source": 1536, - "pc": [ - 60 - ] - }, - { - "teal": 52, - "source": 1536, - "pc": [ - 61 - ] - }, - { - "teal": 53, - "source": 1534, - "pc": [ - 62 - ] - }, - { - "teal": 56, - "source": 1531, - "pc": [ - 63 - ] - }, - { - "teal": 57, - "source": 1531, - "pc": [ - 64 - ] - }, - { - "teal": 60, - "source": 1531, - "pc": [ - 65, - 66, - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 61, - "source": 1531, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 62, - "source": 1531, - "pc": [ - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 65, - "source": 1531, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 78 - ] - }, - { - "teal": 68, - "source": 1531, - "pc": [ - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 69, - "source": 1531, - "pc": [ - 85, - 86, - 87 - ] - }, - { - "teal": 70, - "source": 1531, - "pc": [ - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 73, - "source": 1531, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 92 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 54 + ], + "errorMessage": "box value does not exist: this.bMap(this.txn.sender).value" + }, + { + "pc": [ + 77 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 91 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGF0aWNUeXBlSW5Cb3goKXZvaWQKKmFiaV9yb3V0ZV9zdGF0aWNUeXBlSW5Cb3g6CgkvLyBleGVjdXRlIHN0YXRpY1R5cGVJbkJveCgpdm9pZAoJY2FsbHN1YiBzdGF0aWNUeXBlSW5Cb3gKCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1R5cGVJbkJveCgpOiB2b2lkCnN0YXRpY1R5cGVJbkJveDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTM1CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuIFNlbmRlcgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTM2CgkvLyBhc3NlcnQodGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUuaXNJbkxlZGdlcikKCXR4biBTZW5kZXIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlCglhc3NlcnQKCWFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY1R5cGVJbkJveCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljVHlwZUluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RhdGljVHlwZUluQm94KCl2b2lkCiphYmlfcm91dGVfc3RhdGljVHlwZUluQm94OgoJLy8gZXhlY3V0ZSBzdGF0aWNUeXBlSW5Cb3goKXZvaWQKCWNhbGxzdWIgc3RhdGljVHlwZUluQm94CglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RhdGljVHlwZUluQm94KCk6IHZvaWQKc3RhdGljVHlwZUluQm94OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MzUKCS8vIHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCgl0eG4gU2VuZGVyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MzYKCS8vIGFzc2VydCh0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZS5pc0luTGVkZ2VyKQoJdHhuIFNlbmRlcgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCWFzc2VydAoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgwZjUyMDdkOSAvLyBtZXRob2QgInN0YXRpY1R5cGVJbkJveCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RhdGljVHlwZUluQm94CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MACgAAAAAAAAAAAAAABoAAAAAAAAAAAAAAIgAAiJDigAAMQAxAL8xAL5EcwBMSESJIkOABLhEezY2GgCOAf/xAIAED1IH2TYaAI4B/8wA", + "approval": "CjEYFIEGCzEZCI0MACoAAAAAAAAAAAAAABwAAAAAAAAAAAAAAIgAA4EBQ4oAADEAMQC/MQC+RHMATEhEiYEBQ4AEuER7NjYaAI4B//AAgAQPUgfZNhoAjgH/ygA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.approval.teal b/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.approval.teal index e5d936685..b65162e36 100644 --- a/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x0004624d6170 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // storagePropertyReferenceInBox()uint64 *abi_route_storagePropertyReferenceInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute storagePropertyReferenceInBox()uint64 callsub storagePropertyReferenceInBox itob concat log - int 1 + pushint 1 return // storagePropertyReferenceInBox(): uint64 @@ -40,21 +41,21 @@ storagePropertyReferenceInBox: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1544 // this.bMap('bMap').value = { foo: this.txn.sender, bar: { baz: 1337 } } byte 0x0004624d6170 txn Sender - byte 0x0000000000000539 + pushbytes 0x0000000000000539 concat box_put // tests/contracts/abi.algo.ts:1545 // v = this.bMap('bMap').value.bar.baz byte 0x0004624d6170 - int 32 - int 8 + pushint 32 + pushint 8 box_extract btoi frame_bury 0 // v: uint64 @@ -68,11 +69,11 @@ storagePropertyReferenceInBox: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -80,7 +81,7 @@ storagePropertyReferenceInBox: err *call_NoOp: - method "storagePropertyReferenceInBox()uint64" + pushbytes 0x54a858eb // method "storagePropertyReferenceInBox()uint64" txna ApplicationArgs 0 match *abi_route_storagePropertyReferenceInBox diff --git a/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc32.json b/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc32.json index 9c7855eca..6132de71a 100644 --- a/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0CiphYmlfcm91dGVfc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VQcm9wZXJ0eVJlZmVyZW5jZUluQm94KCk6IHVpbnQ2NApzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDQKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlID0geyBmb286IHRoaXMudHhuLnNlbmRlciwgYmFyOiB7IGJhejogMTMzNyB9IH0KCWJ5dGUgMHgwMDA0NjI0ZDYxNzAKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwNTM5Cgljb25jYXQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU0NQoJLy8gdiA9IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmJhci5iYXoKCWJ5dGUgMHgwMDA0NjI0ZDYxNzAKCWludCAzMgoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDYKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gdjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDA0NjI0ZDYxNzAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0CiphYmlfcm91dGVfc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0CgljYWxsc3ViIHN0b3JhZ2VQcm9wZXJ0eVJlZmVyZW5jZUluQm94CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VQcm9wZXJ0eVJlZmVyZW5jZUluQm94KCk6IHVpbnQ2NApzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU0NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogdGhpcy50eG4uc2VuZGVyLCBiYXI6IHsgYmF6OiAxMzM3IH0gfQoJYnl0ZSAweDAwMDQ2MjRkNjE3MAoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDUzOQoJY29uY2F0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDUKCS8vIHYgPSB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5iYXIuYmF6CglieXRlIDB4MDAwNDYyNGQ2MTcwCglwdXNoaW50IDMyCglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDYKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gdjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDU0YTg1OGViIC8vIG1ldGhvZCAic3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc56_draft.json index 531734b18..68aed125b 100644 --- a/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc56_draft.json @@ -82,398 +82,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1540, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 1540, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 14, - "source": 1540, - "pc": [ - 15 - ] - }, - { - "teal": 15, - "source": 1540, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 16, - "source": 1540, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 1540, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 1540, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 1540, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 1540, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 28, - "source": 1543, - "pc": [ - 49, - 50, - 51, - 52, - 53, - 54 - ] - }, - { - "teal": 31, - "source": 1543, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 32, - "source": 1543, - "pc": [ - 58 - ] - }, - { - "teal": 33, - "source": 1543, - "pc": [ - 59 - ] - }, - { - "teal": 34, - "source": 1543, - "pc": [ - 60 - ] - }, - { - "teal": 35, - "source": 1543, - "pc": [ - 61 - ] - }, - { - "teal": 36, - "source": 1543, - "pc": [ - 62 - ] - }, - { - "teal": 40, - "source": 1543, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 43, - "source": 1543, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 47, - "source": 1544, - "pc": [ - 68 - ] - }, - { - "teal": 48, - "source": 1544, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 49, - "source": 1544, - "pc": [ - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 50, - "source": 1544, - "pc": [ - 81 - ] - }, - { - "teal": 51, - "source": 1544, - "pc": [ - 82 - ] - }, - { - "teal": 55, - "source": 1545, - "pc": [ - 83 - ] - }, - { - "teal": 56, - "source": 1545, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 57, - "source": 1545, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 58, - "source": 1545, - "pc": [ - 88 - ] - }, - { - "teal": 59, - "source": 1545, - "pc": [ - 89 - ] - }, - { - "teal": 60, - "source": 1545, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 64, - "source": 1546, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 67, - "source": 1543, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 68, - "source": 1543, - "pc": [ - 96 - ] - }, - { - "teal": 71, - "source": 1540, - "pc": [ - 97 - ] - }, - { - "teal": 72, - "source": 1540, - "pc": [ - 98 - ] - }, - { - "teal": 75, - "source": 1540, - "pc": [ - 99, - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 76, - "source": 1540, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 77, - "source": 1540, - "pc": [ - 108, - 109, - 110, - 111 - ] - }, - { - "teal": 80, - "source": 1540, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 112 - ] - }, - { - "teal": 83, - "source": 1540, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 84, - "source": 1540, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 85, - "source": 1540, - "pc": [ - 122, - 123, - 124, - 125 - ] - }, - { - "teal": 88, - "source": 1540, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 126 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 45 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 125 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 139 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0CiphYmlfcm91dGVfc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3goKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VQcm9wZXJ0eVJlZmVyZW5jZUluQm94KCk6IHVpbnQ2NApzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDQKCS8vIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlID0geyBmb286IHRoaXMudHhuLnNlbmRlciwgYmFyOiB7IGJhejogMTMzNyB9IH0KCWJ5dGUgMHgwMDA0NjI0ZDYxNzAKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwNTM5Cgljb25jYXQKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU0NQoJLy8gdiA9IHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlLmJhci5iYXoKCWJ5dGUgMHgwMDA0NjI0ZDYxNzAKCWludCAzMgoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDYKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gdjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDA0NjI0ZDYxNzAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0CiphYmlfcm91dGVfc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveCgpdWludDY0CgljYWxsc3ViIHN0b3JhZ2VQcm9wZXJ0eVJlZmVyZW5jZUluQm94CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VQcm9wZXJ0eVJlZmVyZW5jZUluQm94KCk6IHVpbnQ2NApzdG9yYWdlUHJvcGVydHlSZWZlcmVuY2VJbkJveDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU0NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGZvbzogdGhpcy50eG4uc2VuZGVyLCBiYXI6IHsgYmF6OiAxMzM3IH0gfQoJYnl0ZSAweDAwMDQ2MjRkNjE3MAoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDUzOQoJY29uY2F0Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDUKCS8vIHYgPSB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5iYXIuYmF6CglieXRlIDB4MDAwNDYyNGQ2MTcwCglwdXNoaW50IDMyCglwdXNoaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9idXJ5IDAgLy8gdjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NDYKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gdjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDU0YTg1OGViIC8vIG1ldGhvZCAic3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3goKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVByb3BlcnR5UmVmZXJlbmNlSW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBBgAEYk1hcDEYFIEGCzEZCI0MAEEAAAAAAAAAAAAAADMAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgAAoMQCACAAAAAAAAAU5UL8ogSCBCLoXjACLAIwAiSJDgAS4RHs2NhoAjgH/8QCABFSoWOs2GgCOAf+zAA==", + "approval": "CiYBBgAEYk1hcDEYFIEGCzEZCI0MAFEAAAAAAAAAAAAAAEMAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAYABGJNYXAxAIAIAAAAAAAABTlQv4AGAARiTWFwgSCBCLoXjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgARUqFjrNhoAjgH/owA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal b/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal index 9f25693c4..47613363d 100644 --- a/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal +++ b/tests/contracts/artifacts/ABITestStorageRefAccount.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x0000000000000000 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLE // storageRefAccount()uint64 *abi_route_storageRefAccount: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute storageRefAccount()uint64 callsub storageRefAccount itob concat log - int 1 + pushint 1 return // storageRefAccount(): uint64 @@ -52,7 +53,7 @@ storageRefAccount: // this.lMap(addr, 0).value = [1, 2, 3] frame_dig 0 // addr: address byte 0x0000000000000000 - byte 0x0003000000000000000100000000000000020000000000000003 + pushbytes 0x0003000000000000000100000000000000020000000000000003 app_local_put // tests/contracts/abi.algo.ts:1021 @@ -73,14 +74,14 @@ storageRefAccount: extract 2 0 store 255 // full array load 255 // full array - byte 0x0000000000000004 + pushbytes 0x0000000000000004 replace2 8 frame_dig 1 // storage account//r byte 0x0000000000000000 uncover 2 dup len - int 8 + pushint 8 / itob extract 6 2 @@ -107,11 +108,11 @@ storageRefAccount: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -119,7 +120,7 @@ storageRefAccount: err *call_OptIn: - method "storageRefAccount()uint64" + pushbytes 0xbe777ce6 // method "storageRefAccount()uint64" txna ApplicationArgs 0 match *abi_route_storageRefAccount diff --git a/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json b/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json index e2b33c28b..76e252bf5 100644 --- a/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json +++ b/tests/contracts/artifacts/ABITestStorageRefAccount.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RvcmFnZVJlZkFjY291bnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKCWNhbGxzdWIgc3RvcmFnZVJlZkFjY291bnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdG9yYWdlUmVmQWNjb3VudCgpOiB1aW50NjQKc3RvcmFnZVJlZkFjY291bnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMTkKCS8vIGFkZHIgPSB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMCAvLyBhZGRyOiBhZGRyZXNzCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjAKCS8vIHRoaXMubE1hcChhZGRyLCAwKS52YWx1ZSA9IFsxLCAyLCAzXQoJZnJhbWVfZGlnIDAgLy8gYWRkcjogYWRkcmVzcwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAzMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjEKCS8vIHIgPSB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUKCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGFjY291bnQvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyMwoJLy8gYWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGFkZHI6IGFkZHJlc3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyNQoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgMiAwCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCXJlcGxhY2UyIDgKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXVuY292ZXIgMgoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjcKCS8vIHJldHVybiB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAwKS52YWx1ZVsxXTsKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfT3B0SW4gKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKKmFiaV9yb3V0ZV9zdG9yYWdlUmVmQWNjb3VudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKCWNhbGxzdWIgc3RvcmFnZVJlZkFjY291bnQKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RvcmFnZVJlZkFjY291bnQoKTogdWludDY0CnN0b3JhZ2VSZWZBY2NvdW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDE5CgkvLyBhZGRyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gYWRkcjogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDIwCgkvLyB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUgPSBbMSwgMiwgM10KCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglwdXNoYnl0ZXMgMHgwMDAzMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjEKCS8vIHIgPSB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUKCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGFjY291bnQvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyMwoJLy8gYWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGFkZHI6IGFkZHJlc3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyNQoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgMiAwCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwNAoJcmVwbGFjZTIgOAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBhY2NvdW50Ly9yCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJdW5jb3ZlciAyCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjcKCS8vIHJldHVybiB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAwKS52YWx1ZVsxXTsKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4YmU3NzdjZTYgLy8gbWV0aG9kICJzdG9yYWdlUmVmQWNjb3VudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdG9yYWdlUmVmQWNjb3VudAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStorageRefAccount.arc56_draft.json b/tests/contracts/artifacts/ABITestStorageRefAccount.arc56_draft.json index 5b305ad77..5e44ab854 100644 --- a/tests/contracts/artifacts/ABITestStorageRefAccount.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStorageRefAccount.arc56_draft.json @@ -66,644 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1014, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ] - }, - { - "teal": 13, - "source": 1014, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 14, - "source": 1014, - "pc": [ - 17 - ] - }, - { - "teal": 15, - "source": 1014, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 16, - "source": 1014, - "pc": [ - 20 - ] - }, - { - "teal": 17, - "source": 1014, - "pc": [ - 21, - 22 - ] - }, - { - "teal": 18, - "source": 1014, - "pc": [ - 23 - ] - }, - { - "teal": 19, - "source": 1014, - "pc": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 23, - "source": 1014, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 50 - ] - }, - { - "teal": 28, - "source": 1017, - "pc": [ - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 31, - "source": 1017, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 32, - "source": 1017, - "pc": [ - 60 - ] - }, - { - "teal": 33, - "source": 1017, - "pc": [ - 61 - ] - }, - { - "teal": 34, - "source": 1017, - "pc": [ - 62 - ] - }, - { - "teal": 35, - "source": 1017, - "pc": [ - 63 - ] - }, - { - "teal": 36, - "source": 1017, - "pc": [ - 64 - ] - }, - { - "teal": 40, - "source": 1017, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 43, - "source": 1017, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 44, - "source": 1017, - "pc": [ - 70 - ] - }, - { - "teal": 48, - "source": 1019, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 49, - "source": 1019, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 53, - "source": 1020, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 54, - "source": 1020, - "pc": [ - 77 - ] - }, - { - "teal": 55, - "source": 1020, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 56, - "source": 1020, - "pc": [ - 106 - ] - }, - { - "teal": 60, - "source": 1021, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 61, - "source": 1021, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 65, - "source": 1023, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 66, - "source": 1023, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 70, - "source": 1021, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 71, - "source": 1021, - "pc": [ - 117 - ] - }, - { - "teal": 72, - "source": 1021, - "pc": [ - 118 - ] - }, - { - "teal": 73, - "source": 1021, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 74, - "source": 1025, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 75, - "source": 1025, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 76, - "source": 1025, - "pc": [ - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135 - ] - }, - { - "teal": 77, - "source": 1025, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 78, - "source": 1021, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 79, - "source": 1021, - "pc": [ - 140 - ] - }, - { - "teal": 80, - "source": 1021, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 81, - "source": 1021, - "pc": [ - 143 - ] - }, - { - "teal": 82, - "source": 1021, - "pc": [ - 144 - ] - }, - { - "teal": 83, - "source": 1021, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 84, - "source": 1021, - "pc": [ - 147 - ] - }, - { - "teal": 85, - "source": 1021, - "pc": [ - 148 - ] - }, - { - "teal": 86, - "source": 1021, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 87, - "source": 1021, - "pc": [ - 152 - ] - }, - { - "teal": 88, - "source": 1021, - "pc": [ - 153 - ] - }, - { - "teal": 89, - "source": 1021, - "pc": [ - 154 - ] - }, - { - "teal": 93, - "source": 1027, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 94, - "source": 1027, - "pc": [ - 157 - ] - }, - { - "teal": 95, - "source": 1027, - "pc": [ - 158 - ] - }, - { - "teal": 96, - "source": 1027, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 97, - "source": 1027, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 98, - "source": 1027, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 99, - "source": 1027, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 100, - "source": 1027, - "pc": [ - 169 - ] - }, - { - "teal": 103, - "source": 1017, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 106, - "source": 1017, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 107, - "source": 1017, - "pc": [ - 174 - ] - }, - { - "teal": 110, - "source": 1014, - "pc": [ - 175 - ] - }, - { - "teal": 111, - "source": 1014, - "pc": [ - 176 - ] - }, - { - "teal": 114, - "source": 1014, - "pc": [ - 177, - 178, - 179, - 180, - 181, - 182 - ] - }, - { - "teal": 115, - "source": 1014, - "pc": [ - 183, - 184, - 185 - ] - }, - { - "teal": 116, - "source": 1014, - "pc": [ - 186, - 187, - 188, - 189 - ] - }, - { - "teal": 119, - "source": 1014, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 190 - ] - }, - { - "teal": 122, - "source": 1014, - "pc": [ - 191, - 192, - 193, - 194, - 195, - 196 - ] - }, - { - "teal": 123, - "source": 1014, - "pc": [ - 197, - 198, - 199 - ] - }, - { - "teal": 124, - "source": 1014, - "pc": [ - 200, - 201, - 202, - 203 - ] - }, - { - "teal": 127, - "source": 1014, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 204 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 48 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 226 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 240 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RvcmFnZVJlZkFjY291bnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKCWNhbGxzdWIgc3RvcmFnZVJlZkFjY291bnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdG9yYWdlUmVmQWNjb3VudCgpOiB1aW50NjQKc3RvcmFnZVJlZkFjY291bnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMTkKCS8vIGFkZHIgPSB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMCAvLyBhZGRyOiBhZGRyZXNzCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjAKCS8vIHRoaXMubE1hcChhZGRyLCAwKS52YWx1ZSA9IFsxLCAyLCAzXQoJZnJhbWVfZGlnIDAgLy8gYWRkcjogYWRkcmVzcwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAzMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjEKCS8vIHIgPSB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUKCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGFjY291bnQvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyMwoJLy8gYWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGFkZHI6IGFkZHJlc3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyNQoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgMiAwCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCXJlcGxhY2UyIDgKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXVuY292ZXIgMgoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjcKCS8vIHJldHVybiB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAwKS52YWx1ZVsxXTsKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0b3JhZ2VSZWZBY2NvdW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfT3B0SW4gKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKKmFiaV9yb3V0ZV9zdG9yYWdlUmVmQWNjb3VudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZBY2NvdW50KCl1aW50NjQKCWNhbGxzdWIgc3RvcmFnZVJlZkFjY291bnQKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RvcmFnZVJlZkFjY291bnQoKTogdWludDY0CnN0b3JhZ2VSZWZBY2NvdW50OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDE5CgkvLyBhZGRyID0gdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglmcmFtZV9idXJ5IDAgLy8gYWRkcjogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDIwCgkvLyB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUgPSBbMSwgMiwgM10KCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglwdXNoYnl0ZXMgMHgwMDAzMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjEKCS8vIHIgPSB0aGlzLmxNYXAoYWRkciwgMCkudmFsdWUKCWZyYW1lX2RpZyAwIC8vIGFkZHI6IGFkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGFjY291bnQvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyMwoJLy8gYWRkciA9IGdsb2JhbHMuemVyb0FkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJZnJhbWVfYnVyeSAwIC8vIGFkZHI6IGFkZHJlc3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAyNQoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2UgYWNjb3VudC8vcgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgMiAwCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwNAoJcmVwbGFjZTIgOAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBhY2NvdW50Ly9yCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJdW5jb3ZlciAyCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMjcKCS8vIHJldHVybiB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAwKS52YWx1ZVsxXTsKCXR4biBTZW5kZXIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4YmU3NzdjZTYgLy8gbWV0aG9kICJzdG9yYWdlUmVmQWNjb3VudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdG9yYWdlUmVmQWNjb3VudAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBCAAAAAAAAAAAMRgUgQYLMRkIjQwAAACNAAAAAAAAAAAAfwAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEkxAIwAiwAogBoAAwAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA2aLAIwBMgOMAIsBKGJXAgA1/zT/gAgAAAAAAAAABFwIiwEoTwJJFYEIChZXBgJMUGYxAChiVwIANf80/1cICBeMAEYBiSJDgAS4RHs2NhoAjgH/8QCABL53fOY2GgCOAf9nAA==", + "approval": "CiYCCAAAAAAAAAAAADEYFIEGCzEZCI0MAAAAswAAAAAAAAAAAKUAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAASTEAjACLAIAIAAAAAAAAAACAGgADAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADZosAjAEyA4wAiwGACAAAAAAAAAAAYlcCADX/NP+ACAAAAAAAAAAEXAiLAYAIAAAAAAAAAABPAkkVgQgKFlcGAkxQZjEAgAgAAAAAAAAAAGJXAgA1/zT/VwgIF4wARgGJgQFDgAS4RHs2NhoAjgH/8ACABL53fOY2GgCOAf9BAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal b/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal index b92a65e1f..20ebac0aa 100644 --- a/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal +++ b/tests/contracts/artifacts/ABITestStorageRefKey.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x0000000000000000 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // storageRefKey()uint64 *abi_route_storageRefKey: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute storageRefKey()uint64 callsub storageRefKey itob concat log - int 1 + pushint 1 return // storageRefKey(): uint64 @@ -46,12 +47,12 @@ storageRefKey: // tests/contracts/abi.algo.ts:1000 // this.gMap(0).value = [1, 2, 3] byte 0x0000000000000000 - byte 0x0003000000000000000100000000000000020000000000000003 + pushbytes 0x0003000000000000000100000000000000020000000000000003 app_global_put // tests/contracts/abi.algo.ts:1002 // i = 0 - int 0 + pushint 0 frame_bury 0 // i: uint64 // tests/contracts/abi.algo.ts:1004 @@ -62,7 +63,7 @@ storageRefKey: // tests/contracts/abi.algo.ts:1006 // i = 1 - int 1 + pushint 1 frame_bury 0 // i: uint64 // tests/contracts/abi.algo.ts:1008 @@ -72,13 +73,13 @@ storageRefKey: extract 2 0 store 255 // full array load 255 // full array - byte 0x0000000000000004 + pushbytes 0x0000000000000004 replace2 8 frame_dig 1 // storage key//r swap dup len - int 8 + pushint 8 / itob extract 6 2 @@ -104,11 +105,11 @@ storageRefKey: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -116,7 +117,7 @@ storageRefKey: err *call_NoOp: - method "storageRefKey()uint64" + pushbytes 0xe6bbdcd1 // method "storageRefKey()uint64" txna ApplicationArgs 0 match *abi_route_storageRefKey diff --git a/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json b/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json index 8df0395c1..b836676d7 100644 --- a/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json +++ b/tests/contracts/artifacts/ABITestStorageRefKey.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdG9yYWdlUmVmS2V5KCl1aW50NjQKKmFiaV9yb3V0ZV9zdG9yYWdlUmVmS2V5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZLZXkoKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUmVmS2V5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RvcmFnZVJlZktleSgpOiB1aW50NjQKc3RvcmFnZVJlZktleToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwMAoJLy8gdGhpcy5nTWFwKDApLnZhbHVlID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwMDMwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDIKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA0CgkvLyByID0gdGhpcy5nTWFwKGkpLnZhbHVlCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGtleS8vcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA2CgkvLyBpID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwOAoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2Uga2V5Ly9yCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJcmVwbGFjZTIgOAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBrZXkvL3IKCXN3YXAKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAxMAoJLy8gcmV0dXJuIHRoaXMuZ01hcCgwKS52YWx1ZVsxXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0b3JhZ2VSZWZLZXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVJlZktleQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RvcmFnZVJlZktleSgpdWludDY0CiphYmlfcm91dGVfc3RvcmFnZVJlZktleToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZLZXkoKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUmVmS2V5CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VSZWZLZXkoKTogdWludDY0CnN0b3JhZ2VSZWZLZXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDAKCS8vIHRoaXMuZ01hcCgwKS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXB1c2hieXRlcyAweDAwMDMwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDIKCS8vIGkgPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwNAoJLy8gciA9IHRoaXMuZ01hcChpKS52YWx1ZQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpdG9iCglmcmFtZV9idXJ5IDEgLy8gc3RvcmFnZSBrZXkvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwNgoJLy8gaSA9IDEKCXB1c2hpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA4CgkvLyByWzFdID0gNAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBrZXkvL3IKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDQKCXJlcGxhY2UyIDgKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2Uga2V5Ly9yCglzd2FwCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDEwCgkvLyByZXR1cm4gdGhpcy5nTWFwKDApLnZhbHVlWzFdOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlNmJiZGNkMSAvLyBtZXRob2QgInN0b3JhZ2VSZWZLZXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVJlZktleQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStorageRefKey.arc56_draft.json b/tests/contracts/artifacts/ABITestStorageRefKey.arc56_draft.json index 4b71f0d66..88761699c 100644 --- a/tests/contracts/artifacts/ABITestStorageRefKey.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStorageRefKey.arc56_draft.json @@ -66,619 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 996, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14 - ] - }, - { - "teal": 13, - "source": 996, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 14, - "source": 996, - "pc": [ - 17 - ] - }, - { - "teal": 15, - "source": 996, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 16, - "source": 996, - "pc": [ - 20 - ] - }, - { - "teal": 17, - "source": 996, - "pc": [ - 21, - 22 - ] - }, - { - "teal": 18, - "source": 996, - "pc": [ - 23 - ] - }, - { - "teal": 19, - "source": 996, - "pc": [ - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49 - ] - }, - { - "teal": 23, - "source": 996, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 50 - ] - }, - { - "teal": 28, - "source": 999, - "pc": [ - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 31, - "source": 999, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 32, - "source": 999, - "pc": [ - 60 - ] - }, - { - "teal": 33, - "source": 999, - "pc": [ - 61 - ] - }, - { - "teal": 34, - "source": 999, - "pc": [ - 62 - ] - }, - { - "teal": 35, - "source": 999, - "pc": [ - 63 - ] - }, - { - "teal": 36, - "source": 999, - "pc": [ - 64 - ] - }, - { - "teal": 40, - "source": 999, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 43, - "source": 999, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 44, - "source": 999, - "pc": [ - 70 - ] - }, - { - "teal": 48, - "source": 1000, - "pc": [ - 71 - ] - }, - { - "teal": 49, - "source": 1000, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 50, - "source": 1000, - "pc": [ - 100 - ] - }, - { - "teal": 54, - "source": 1002, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 55, - "source": 1002, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 59, - "source": 1004, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 60, - "source": 1004, - "pc": [ - 107 - ] - }, - { - "teal": 61, - "source": 1004, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 65, - "source": 1006, - "pc": [ - 110 - ] - }, - { - "teal": 66, - "source": 1006, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 70, - "source": 1004, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 71, - "source": 1004, - "pc": [ - 115 - ] - }, - { - "teal": 72, - "source": 1004, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 73, - "source": 1008, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 74, - "source": 1008, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 75, - "source": 1008, - "pc": [ - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 76, - "source": 1008, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 77, - "source": 1004, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 78, - "source": 1004, - "pc": [ - 137 - ] - }, - { - "teal": 79, - "source": 1004, - "pc": [ - 138 - ] - }, - { - "teal": 80, - "source": 1004, - "pc": [ - 139 - ] - }, - { - "teal": 81, - "source": 1004, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 82, - "source": 1004, - "pc": [ - 142 - ] - }, - { - "teal": 83, - "source": 1004, - "pc": [ - 143 - ] - }, - { - "teal": 84, - "source": 1004, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 85, - "source": 1004, - "pc": [ - 147 - ] - }, - { - "teal": 86, - "source": 1004, - "pc": [ - 148 - ] - }, - { - "teal": 87, - "source": 1004, - "pc": [ - 149 - ] - }, - { - "teal": 91, - "source": 1010, - "pc": [ - 150 - ] - }, - { - "teal": 92, - "source": 1010, - "pc": [ - 151 - ] - }, - { - "teal": 93, - "source": 1010, - "pc": [ - 152, - 153, - 154 - ] - }, - { - "teal": 94, - "source": 1010, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 95, - "source": 1010, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 96, - "source": 1010, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 97, - "source": 1010, - "pc": [ - 162 - ] - }, - { - "teal": 100, - "source": 999, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 103, - "source": 999, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 104, - "source": 999, - "pc": [ - 167 - ] - }, - { - "teal": 107, - "source": 996, - "pc": [ - 168 - ] - }, - { - "teal": 108, - "source": 996, - "pc": [ - 169 - ] - }, - { - "teal": 111, - "source": 996, - "pc": [ - 170, - 171, - 172, - 173, - 174, - 175 - ] - }, - { - "teal": 112, - "source": 996, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 113, - "source": 996, - "pc": [ - 179, - 180, - 181, - 182 - ] - }, - { - "teal": 116, - "source": 996, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 183 - ] - }, - { - "teal": 119, - "source": 996, - "pc": [ - 184, - 185, - 186, - 187, - 188, - 189 - ] - }, - { - "teal": 120, - "source": 996, - "pc": [ - 190, - 191, - 192 - ] - }, - { - "teal": 121, - "source": 996, - "pc": [ - 193, - 194, - 195, - 196 - ] - }, - { - "teal": 124, - "source": 996, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 197 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 48 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 202 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 216 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdG9yYWdlUmVmS2V5KCl1aW50NjQKKmFiaV9yb3V0ZV9zdG9yYWdlUmVmS2V5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZLZXkoKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUmVmS2V5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RvcmFnZVJlZktleSgpOiB1aW50NjQKc3RvcmFnZVJlZktleToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwMAoJLy8gdGhpcy5nTWFwKDApLnZhbHVlID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJYnl0ZSAweDAwMDMwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDIKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA0CgkvLyByID0gdGhpcy5nTWFwKGkpLnZhbHVlCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMSAvLyBzdG9yYWdlIGtleS8vcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA2CgkvLyBpID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwOAoJLy8gclsxXSA9IDQKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2Uga2V5Ly9yCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwNAoJcmVwbGFjZTIgOAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBrZXkvL3IKCXN3YXAKCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAxMAoJLy8gcmV0dXJuIHRoaXMuZ01hcCgwKS52YWx1ZVsxXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCAyIDAKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0b3JhZ2VSZWZLZXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVJlZktleQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RvcmFnZVJlZktleSgpdWludDY0CiphYmlfcm91dGVfc3RvcmFnZVJlZktleToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0b3JhZ2VSZWZLZXkoKXVpbnQ2NAoJY2FsbHN1YiBzdG9yYWdlUmVmS2V5CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0b3JhZ2VSZWZLZXkoKTogdWludDY0CnN0b3JhZ2VSZWZLZXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDAKCS8vIHRoaXMuZ01hcCgwKS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCXB1c2hieXRlcyAweDAwMDMwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwMDIKCS8vIGkgPSAwCglwdXNoaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwNAoJLy8gciA9IHRoaXMuZ01hcChpKS52YWx1ZQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpdG9iCglmcmFtZV9idXJ5IDEgLy8gc3RvcmFnZSBrZXkvL3IKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTAwNgoJLy8gaSA9IDEKCXB1c2hpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDA4CgkvLyByWzFdID0gNAoJZnJhbWVfZGlnIDEgLy8gc3RvcmFnZSBrZXkvL3IKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDQKCXJlcGxhY2UyIDgKCWZyYW1lX2RpZyAxIC8vIHN0b3JhZ2Uga2V5Ly9yCglzd2FwCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDEwCgkvLyByZXR1cm4gdGhpcy5nTWFwKDApLnZhbHVlWzFdOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDIgMAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhlNmJiZGNkMSAvLyBtZXRob2QgInN0b3JhZ2VSZWZLZXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RvcmFnZVJlZktleQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBCAAAAAAAAAAAMRgUgQYLMRkIjQwAhgAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAgAQVH3x1iAAFFlCwIkOKAAGAAEkogBoAAwAAAAAAAAABAAAAAAAAAAIAAAAAAAAAA2eBAIwAiwAWjAEijACLAWRXAgA1/zT/gAgAAAAAAAAABFwIiwFMSRWBCAoWVwYCTFBnKGRXAgA1/zT/VwgIF4wARgGJIkOABLhEezY2GgCOAf/xAIAE5rvc0TYaAI4B/24A", + "approval": "CiYCCAAAAAAAAAAAADEYFIEGCzEZCI0MAJsAAAAAAAAAAAAAAI0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAASYAIAAAAAAAAAACAGgADAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADZ4EAjACLABaMAYEBjACLAWRXAgA1/zT/gAgAAAAAAAAABFwIiwFMSRWBCAoWVwYCTFBngAgAAAAAAAAAAGRXAgA1/zT/VwgIF4wARgGJgQFDgAS4RHs2NhoAjgH/8ACABOa73NE2GgCOAf9ZAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal b/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal index 692ec9bc7..80f5918a7 100644 --- a/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal +++ b/tests/contracts/artifacts/ABITestStorageTypeHint.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x674b6579 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // partialStaticArray()uint16[3] *abi_route_partialStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute partialStaticArray()uint16[3] callsub partialStaticArray concat log - int 1 + pushint 1 return // partialStaticArray(): StaticArray @@ -41,7 +42,7 @@ partialStaticArray: // tests/contracts/abi.algo.ts:860 // this.gKey.value = [1, 2, 3] byte 0x674b6579 // "gKey" - byte 0x000100020003 + pushbytes 0x000100020003 app_global_put // tests/contracts/abi.algo.ts:862 @@ -51,11 +52,11 @@ partialStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -63,7 +64,7 @@ partialStaticArray: err *call_NoOp: - method "partialStaticArray()uint16[3]" + pushbytes 0xd294dc14 // method "partialStaticArray()uint16[3]" txna ApplicationArgs 0 match *abi_route_partialStaticArray diff --git a/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json b/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json index abde0b57f..a02076ecb 100644 --- a/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json +++ b/tests/contracts/artifacts/ABITestStorageTypeHint.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoqYWJpX3JvdXRlX3BhcnRpYWxTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODYwCgkvLyB0aGlzLmdLZXkudmFsdWUgPSBbMSwgMiwgM10KCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg2MgoJLy8gcmV0dXJuIHRoaXMuZ0tleS52YWx1ZTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzRiNjU3OQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdCiphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10KCWNhbGxzdWIgcGFydGlhbFN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CnBhcnRpYWxTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NjAKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NjIKCS8vIHJldHVybiB0aGlzLmdLZXkudmFsdWU7CglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkMjk0ZGMxNCAvLyBtZXRob2QgInBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStorageTypeHint.arc56_draft.json b/tests/contracts/artifacts/ABITestStorageTypeHint.arc56_draft.json index ffc688c59..c5b6217a4 100644 --- a/tests/contracts/artifacts/ABITestStorageTypeHint.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStorageTypeHint.arc56_draft.json @@ -67,317 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 856, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ] - }, - { - "teal": 13, - "source": 856, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 14, - "source": 856, - "pc": [ - 13 - ] - }, - { - "teal": 15, - "source": 856, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 16, - "source": 856, - "pc": [ - 16 - ] - }, - { - "teal": 17, - "source": 856, - "pc": [ - 17, - 18 - ] - }, - { - "teal": 18, - "source": 856, - "pc": [ - 19 - ] - }, - { - "teal": 19, - "source": 856, - "pc": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 23, - "source": 856, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 46 - ] - }, - { - "teal": 28, - "source": 859, - "pc": [ - 47, - 48, - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 31, - "source": 859, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 32, - "source": 859, - "pc": [ - 56 - ] - }, - { - "teal": 33, - "source": 859, - "pc": [ - 57 - ] - }, - { - "teal": 34, - "source": 859, - "pc": [ - 58 - ] - }, - { - "teal": 35, - "source": 859, - "pc": [ - 59 - ] - }, - { - "teal": 39, - "source": 859, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 43, - "source": 860, - "pc": [ - 63 - ] - }, - { - "teal": 44, - "source": 860, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ] - }, - { - "teal": 45, - "source": 860, - "pc": [ - 72 - ] - }, - { - "teal": 49, - "source": 862, - "pc": [ - 73 - ] - }, - { - "teal": 50, - "source": 862, - "pc": [ - 74 - ] - }, - { - "teal": 51, - "source": 859, - "pc": [ - 75 - ] - }, - { - "teal": 54, - "source": 856, - "pc": [ - 76 - ] - }, - { - "teal": 55, - "source": 856, - "pc": [ - 77 - ] - }, - { - "teal": 58, - "source": 856, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 59, - "source": 856, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 60, - "source": 856, - "pc": [ - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 63, - "source": 856, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 91 - ] - }, - { - "teal": 66, - "source": 856, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 67, - "source": 856, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 68, - "source": 856, - "pc": [ - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 71, - "source": 856, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 105 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 43 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 100 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 114 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoqYWJpX3JvdXRlX3BhcnRpYWxTdGF0aWNBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXQoJY2FsbHN1YiBwYXJ0aWFsU3RhdGljQXJyYXkKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwYXJ0aWFsU3RhdGljQXJyYXkoKTogU3RhdGljQXJyYXk8dWludDE2LCAzPgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODYwCgkvLyB0aGlzLmdLZXkudmFsdWUgPSBbMSwgMiwgM10KCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWJ5dGUgMHgwMDAxMDAwMjAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg2MgoJLy8gcmV0dXJuIHRoaXMuZ0tleS52YWx1ZTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzRiNjU3OQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdCiphYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10KCWNhbGxzdWIgcGFydGlhbFN0YXRpY0FycmF5Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpOiBTdGF0aWNBcnJheTx1aW50MTYsIDM+CnBhcnRpYWxTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NjAKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NjIKCS8vIHJldHVybiB0aGlzLmdLZXkudmFsdWU7CglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglhcHBfZ2xvYmFsX2dldAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkMjk0ZGMxNCAvLyBtZXRob2QgInBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBBGdLZXkxGBSBBgsxGQiNDAAuAAAAAAAAAAAAAAAgAAAAAAAAAAAAAACABBUffHWIAARQsCJDigABKIAGAAEAAgADZyhkiSJDgAS4RHs2NhoAjgH/8QCABNKU3BQ2GgCOAf/GAA==", + "approval": "CiYBBGdLZXkxGBSBBgsxGQiNDAA6AAAAAAAAAAAAAAAsAAAAAAAAAAAAAACABBUffHWIAAVQsIEBQ4oAAYAEZ0tleYAGAAEAAgADZ4AEZ0tleWSJgQFDgAS4RHs2NhoAjgH/8ACABNKU3BQ2GgCOAf+6AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStringAccessor.approval.teal b/tests/contracts/artifacts/ABITestStringAccessor.approval.teal index d8e6be515..420db921a 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.approval.teal +++ b/tests/contracts/artifacts/ABITestStringAccessor.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // stringAccessor()string *abi_route_stringAccessor: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute stringAccessor()string callsub stringAccessor @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // stringAccessor(): string @@ -45,11 +45,11 @@ stringAccessor: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:834 // s = concat('Hello ', 'World') - byte 0x48656c6c6f20576f726c64 + pushbytes 0x48656c6c6f20576f726c64 frame_bury 0 // s: byte[] // tests/contracts/abi.algo.ts:836 @@ -62,11 +62,11 @@ stringAccessor: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -74,7 +74,7 @@ stringAccessor: err *call_NoOp: - method "stringAccessor()string" + pushbytes 0xdc636324 // method "stringAccessor()string" txna ApplicationArgs 0 match *abi_route_stringAccessor diff --git a/tests/contracts/artifacts/ABITestStringAccessor.arc32.json b/tests/contracts/artifacts/ABITestStringAccessor.arc32.json index ada20bf0e..ae87c40cd 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.arc32.json +++ b/tests/contracts/artifacts/ABITestStringAccessor.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdBY2Nlc3Nvcigpc3RyaW5nCiphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdBY2Nlc3NvcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBY2Nlc3NvcigpOiBzdHJpbmcKc3RyaW5nQWNjZXNzb3I6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzQKCS8vIHMgPSBjb25jYXQoJ0hlbGxvICcsICdXb3JsZCcpCglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NAoJZnJhbWVfYnVyeSAwIC8vIHM6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzYKCS8vIHJldHVybiBzWzFdOwoJZnJhbWVfZGlnIDAgLy8gczogYnl0ZVtdCglleHRyYWN0IDEgMQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nQWNjZXNzb3IoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoqYWJpX3JvdXRlX3N0cmluZ0FjY2Vzc29yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdBY2Nlc3NvcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RyaW5nQWNjZXNzb3IoKTogc3RyaW5nCnN0cmluZ0FjY2Vzc29yOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzQKCS8vIHMgPSBjb25jYXQoJ0hlbGxvICcsICdXb3JsZCcpCglwdXNoYnl0ZXMgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgzNgoJLy8gcmV0dXJuIHNbMV07CglmcmFtZV9kaWcgMCAvLyBzOiBieXRlW10KCWV4dHJhY3QgMSAxCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGRjNjM2MzI0IC8vIG1ldGhvZCAic3RyaW5nQWNjZXNzb3IoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringAccessor.arc56_draft.json b/tests/contracts/artifacts/ABITestStringAccessor.arc56_draft.json index 1b26f5ac2..a819c9ecb 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStringAccessor.arc56_draft.json @@ -61,372 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 832, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 832, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 832, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 832, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 832, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 832, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 832, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 832, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 832, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 833, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 833, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 833, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 833, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 833, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 833, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 833, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 833, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 833, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 833, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 833, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 833, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 833, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 48, - "source": 833, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 52, - "source": 834, - "pc": [ - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78 - ] - }, - { - "teal": 53, - "source": 834, - "pc": [ - 79, - 80 - ] - }, - { - "teal": 57, - "source": 836, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 58, - "source": 836, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 61, - "source": 833, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 62, - "source": 833, - "pc": [ - 88 - ] - }, - { - "teal": 65, - "source": 832, - "pc": [ - 89 - ] - }, - { - "teal": 66, - "source": 832, - "pc": [ - 90 - ] - }, - { - "teal": 69, - "source": 832, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 70, - "source": 832, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 71, - "source": 832, - "pc": [ - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 74, - "source": 832, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 104 - ] - }, - { - "teal": 77, - "source": 832, - "pc": [ - 105, - 106, - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 78, - "source": 832, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 79, - "source": 832, - "pc": [ - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 82, - "source": 832, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 118 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 103 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 117 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdBY2Nlc3Nvcigpc3RyaW5nCiphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdBY2Nlc3NvcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBY2Nlc3NvcigpOiBzdHJpbmcKc3RyaW5nQWNjZXNzb3I6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzQKCS8vIHMgPSBjb25jYXQoJ0hlbGxvICcsICdXb3JsZCcpCglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NAoJZnJhbWVfYnVyeSAwIC8vIHM6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzYKCS8vIHJldHVybiBzWzFdOwoJZnJhbWVfZGlnIDAgLy8gczogYnl0ZVtdCglleHRyYWN0IDEgMQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nQWNjZXNzb3IoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoqYWJpX3JvdXRlX3N0cmluZ0FjY2Vzc29yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgc3RyaW5nQWNjZXNzb3IoKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdBY2Nlc3NvcgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RyaW5nQWNjZXNzb3IoKTogc3RyaW5nCnN0cmluZ0FjY2Vzc29yOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4MzQKCS8vIHMgPSBjb25jYXQoJ0hlbGxvICcsICdXb3JsZCcpCglwdXNoYnl0ZXMgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjgzNgoJLy8gcmV0dXJuIHNbMV07CglmcmFtZV9kaWcgMCAvLyBzOiBieXRlW10KCWV4dHJhY3QgMSAxCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGRjNjM2MzI0IC8vIG1ldGhvZCAic3RyaW5nQWNjZXNzb3IoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEIAAAAAAAAAAAAAADQAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYAAgAtIZWxsbyBXb3JsZIwAiwBXAQGMAIkiQ4AEuER7NjYaAI4B//EAgATcY2MkNhoAjgH/sgA=", + "approval": "CjEYFIEGCzEZCI0MAEQAAAAAAAAAAAAAADYAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIALSGVsbG8gV29ybGSMAIsAVwEBjACJgQFDgAS4RHs2NhoAjgH/8ACABNxjYyQ2GgCOAf+wAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStringArg.approval.teal b/tests/contracts/artifacts/ABITestStringArg.approval.teal index 4a9c265f9..be1d580e3 100644 --- a/tests/contracts/artifacts/ABITestStringArg.approval.teal +++ b/tests/contracts/artifacts/ABITestStringArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -30,7 +30,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // execute stringArg(string)void callsub stringArg - int 1 + pushint 1 return // stringArg(s: string): void @@ -40,17 +40,17 @@ stringArg: // tests/contracts/abi.algo.ts:536 // assert(s === 'Hello World!') frame_dig -1 // s: string - byte 0x48656c6c6f20576f726c6421 // "Hello World!" + pushbytes 0x48656c6c6f20576f726c6421 // "Hello World!" == assert retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -58,7 +58,7 @@ stringArg: err *call_NoOp: - method "stringArg(string)void" + pushbytes 0xafa56dd1 // method "stringArg(string)void" txna ApplicationArgs 0 match *abi_route_stringArg diff --git a/tests/contracts/artifacts/ABITestStringArg.arc32.json b/tests/contracts/artifacts/ABITestStringArg.arc32.json index 8fa977809..42563adae 100644 --- a/tests/contracts/artifacts/ABITestStringArg.arc32.json +++ b/tests/contracts/artifacts/ABITestStringArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdBcmc6CgkvLyBzOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKCWNhbGxzdWIgc3RyaW5nQXJnCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBcmcoczogc3RyaW5nKTogdm9pZApzdHJpbmdBcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTM2CgkvLyBhc3NlcnQocyA9PT0gJ0hlbGxvIFdvcmxkIScpCglmcmFtZV9kaWcgLTEgLy8gczogc3RyaW5nCglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdBcmcoc3RyaW5nKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0FyZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nQXJnKHN0cmluZyl2b2lkCiphYmlfcm91dGVfc3RyaW5nQXJnOgoJLy8gczogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RyaW5nQXJnKHN0cmluZyl2b2lkCgljYWxsc3ViIHN0cmluZ0FyZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0cmluZ0FyZyhzOiBzdHJpbmcpOiB2b2lkCnN0cmluZ0FyZzoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MzYKCS8vIGFzc2VydChzID09PSAnSGVsbG8gV29ybGQhJykKCWZyYW1lX2RpZyAtMSAvLyBzOiBzdHJpbmcKCXB1c2hieXRlcyAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhhZmE1NmRkMSAvLyBtZXRob2QgInN0cmluZ0FyZyhzdHJpbmcpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringArg.arc56_draft.json b/tests/contracts/artifacts/ABITestStringArg.arc56_draft.json index 57a437a74..27e5479b9 100644 --- a/tests/contracts/artifacts/ABITestStringArg.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStringArg.arc56_draft.json @@ -66,302 +66,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 534, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 534, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 534, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 534, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 534, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 534, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 534, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 534, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 534, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 535, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 535, - "pc": [ - 43, - 44, - 45 - ] - }, - { - "teal": 32, - "source": 535, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 33, - "source": 535, - "pc": [ - 49 - ] - }, - { - "teal": 34, - "source": 535, - "pc": [ - 50 - ] - }, - { - "teal": 38, - "source": 535, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 42, - "source": 536, - "pc": [ - 54, - 55 - ] - }, - { - "teal": 43, - "source": 536, - "pc": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 44, - "source": 536, - "pc": [ - 70 - ] - }, - { - "teal": 45, - "source": 536, - "pc": [ - 71 - ] - }, - { - "teal": 46, - "source": 535, - "pc": [ - 72 - ] - }, - { - "teal": 49, - "source": 534, - "pc": [ - 73 - ] - }, - { - "teal": 50, - "source": 534, - "pc": [ - 74 - ] - }, - { - "teal": 53, - "source": 534, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 54, - "source": 534, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 55, - "source": 534, - "pc": [ - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 58, - "source": 534, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 88 - ] - }, - { - "teal": 61, - "source": 534, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 62, - "source": 534, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 63, - "source": 534, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 66, - "source": 534, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 102 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 87 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 101 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdBcmc6CgkvLyBzOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdHJpbmdBcmcoc3RyaW5nKXZvaWQKCWNhbGxzdWIgc3RyaW5nQXJnCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBcmcoczogc3RyaW5nKTogdm9pZApzdHJpbmdBcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTM2CgkvLyBhc3NlcnQocyA9PT0gJ0hlbGxvIFdvcmxkIScpCglmcmFtZV9kaWcgLTEgLy8gczogc3RyaW5nCglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdBcmcoc3RyaW5nKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0FyZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nQXJnKHN0cmluZyl2b2lkCiphYmlfcm91dGVfc3RyaW5nQXJnOgoJLy8gczogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RyaW5nQXJnKHN0cmluZyl2b2lkCgljYWxsc3ViIHN0cmluZ0FyZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0cmluZ0FyZyhzOiBzdHJpbmcpOiB2b2lkCnN0cmluZ0FyZzoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1MzYKCS8vIGFzc2VydChzID09PSAnSGVsbG8gV29ybGQhJykKCWZyYW1lX2RpZyAtMSAvLyBzOiBzdHJpbmcKCXB1c2hieXRlcyAweDQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMSAvLyAiSGVsbG8gV29ybGQhIgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhhZmE1NmRkMSAvLyBtZXRob2QgInN0cmluZ0FyZyhzdHJpbmcpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAADYaAVcCAIgAAiJDigEAi/+ADEhlbGxvIFdvcmxkIRJEiSJDgAS4RHs2NhoAjgH/8QCABK+lbdE2GgCOAf/CAA==", + "approval": "CjEYFIEGCzEZCI0MADQAAAAAAAAAAAAAACYAAAAAAAAAAAAAADYaAVcCAIgAA4EBQ4oBAIv/gAxIZWxsbyBXb3JsZCESRImBAUOABLhEezY2GgCOAf/wAIAEr6Vt0TYaAI4B/8AA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStringArray.approval.teal b/tests/contracts/artifacts/ABITestStringArray.approval.teal index 12eb775fc..476127773 100644 --- a/tests/contracts/artifacts/ABITestStringArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStringArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -29,7 +29,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // execute stringArray(string[])void callsub stringArray - int 1 + pushint 1 return // stringArray(a: string[]): void @@ -38,17 +38,17 @@ stringArray: // tests/contracts/abi.algo.ts:1183 // this.gKey.value = a - byte 0x674b6579 // "gKey" + pushbytes 0x674b6579 // "gKey" frame_dig -1 // a: string[] app_global_put retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -56,7 +56,7 @@ stringArray: err *call_NoOp: - method "stringArray(string[])void" + pushbytes 0x824d6467 // method "stringArray(string[])void" txna ApplicationArgs 0 match *abi_route_stringArray diff --git a/tests/contracts/artifacts/ABITestStringArray.arc32.json b/tests/contracts/artifacts/ABITestStringArray.arc32.json index 163a1253b..56d07ea4e 100644 --- a/tests/contracts/artifacts/ABITestStringArray.arc32.json +++ b/tests/contracts/artifacts/ABITestStringArray.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdBcnJheShzdHJpbmdbXSl2b2lkCiphYmlfcm91dGVfc3RyaW5nQXJyYXk6CgkvLyBhOiBzdHJpbmdbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZAoJY2FsbHN1YiBzdHJpbmdBcnJheQoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nQXJyYXkoYTogc3RyaW5nW10pOiB2b2lkCnN0cmluZ0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODMKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWZyYW1lX2RpZyAtMSAvLyBhOiBzdHJpbmdbXQoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0FycmF5KHN0cmluZ1tdKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZAoqYWJpX3JvdXRlX3N0cmluZ0FycmF5OgoJLy8gYTogc3RyaW5nW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCgkvLyBleGVjdXRlIHN0cmluZ0FycmF5KHN0cmluZ1tdKXZvaWQKCWNhbGxzdWIgc3RyaW5nQXJyYXkKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBcnJheShhOiBzdHJpbmdbXSk6IHZvaWQKc3RyaW5nQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4MwoJLy8gdGhpcy5nS2V5LnZhbHVlID0gYQoJcHVzaGJ5dGVzIDB4Njc0YjY1NzkgLy8gImdLZXkiCglmcmFtZV9kaWcgLTEgLy8gYTogc3RyaW5nW10KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgyNGQ2NDY3IC8vIG1ldGhvZCAic3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringArray.arc56_draft.json b/tests/contracts/artifacts/ABITestStringArray.arc56_draft.json index 58e5aefd0..dd8735d15 100644 --- a/tests/contracts/artifacts/ABITestStringArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStringArray.arc56_draft.json @@ -72,278 +72,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1179, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1179, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1179, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1179, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1179, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1179, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1179, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1179, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1179, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1182, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 31, - "source": 1182, - "pc": [ - 43, - 44, - 45 - ] - }, - { - "teal": 32, - "source": 1182, - "pc": [ - 46 - ] - }, - { - "teal": 33, - "source": 1182, - "pc": [ - 47 - ] - }, - { - "teal": 37, - "source": 1182, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 41, - "source": 1183, - "pc": [ - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 42, - "source": 1183, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1183, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1182, - "pc": [ - 60 - ] - }, - { - "teal": 47, - "source": 1179, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 1179, - "pc": [ - 62 - ] - }, - { - "teal": 51, - "source": 1179, - "pc": [ - 63, - 64, - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 52, - "source": 1179, - "pc": [ - 69, - 70, - 71 - ] - }, - { - "teal": 53, - "source": 1179, - "pc": [ - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 56, - "source": 1179, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 76 - ] - }, - { - "teal": 59, - "source": 1179, - "pc": [ - 77, - 78, - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 60, - "source": 1179, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 61, - "source": 1179, - "pc": [ - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 64, - "source": 1179, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 90 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 75 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 89 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdBcnJheShzdHJpbmdbXSl2b2lkCiphYmlfcm91dGVfc3RyaW5nQXJyYXk6CgkvLyBhOiBzdHJpbmdbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgc3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZAoJY2FsbHN1YiBzdHJpbmdBcnJheQoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nQXJyYXkoYTogc3RyaW5nW10pOiB2b2lkCnN0cmluZ0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODMKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWZyYW1lX2RpZyAtMSAvLyBhOiBzdHJpbmdbXQoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0FycmF5KHN0cmluZ1tdKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZAoqYWJpX3JvdXRlX3N0cmluZ0FycmF5OgoJLy8gYTogc3RyaW5nW10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCgkvLyBleGVjdXRlIHN0cmluZ0FycmF5KHN0cmluZ1tdKXZvaWQKCWNhbGxzdWIgc3RyaW5nQXJyYXkKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdBcnJheShhOiBzdHJpbmdbXSk6IHZvaWQKc3RyaW5nQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4MwoJLy8gdGhpcy5nS2V5LnZhbHVlID0gYQoJcHVzaGJ5dGVzIDB4Njc0YjY1NzkgLy8gImdLZXkiCglmcmFtZV9kaWcgLTEgLy8gYTogc3RyaW5nW10KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDgyNGQ2NDY3IC8vIG1ldGhvZCAic3RyaW5nQXJyYXkoc3RyaW5nW10pdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MACYAAAAAAAAAAAAAABgAAAAAAAAAAAAAADYaAYgAAiJDigEAgARnS2V5i/9niSJDgAS4RHs2NhoAjgH/8QCABIJNZGc2GgCOAf/OAA==", + "approval": "CjEYFIEGCzEZCI0MACgAAAAAAAAAAAAAABoAAAAAAAAAAAAAADYaAYgAA4EBQ4oBAIAEZ0tleYv/Z4mBAUOABLhEezY2GgCOAf/wAIAEgk1kZzYaAI4B/8wA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStringInTuple.approval.teal b/tests/contracts/artifacts/ABITestStringInTuple.approval.teal index d581c33f4..815152cdb 100644 --- a/tests/contracts/artifacts/ABITestStringInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestStringInTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // stringInTuple()(uint16,uint8[],string,uint8[]) *abi_route_stringInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute stringInTuple()(uint16,uint8[],string,uint8[]) callsub stringInTuple concat log - int 1 + pushint 1 return // stringInTuple(): [uint16, uint<8>[], string, uint<8>[]] @@ -45,14 +46,14 @@ stringInTuple: // a: [uint16, uint<8>[], string, uint<8>[]] = [1, [2], 'Hello World!', [3]] byte 0x // initial head byte 0x // initial tail - byte 0x0008 // initial head offset - byte 0x0001 + pushbytes 0x0008 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000102 + pushbytes 0x000102 callsub *process_dynamic_tuple_element - byte 0x000c48656c6c6f20576f726c6421 + pushbytes 0x000c48656c6c6f20576f726c6421 callsub *process_dynamic_tuple_element - byte 0x000103 + pushbytes 0x000103 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -67,11 +68,11 @@ stringInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -79,7 +80,7 @@ stringInTuple: err *call_NoOp: - method "stringInTuple()(uint16,uint8[],string,uint8[])" + pushbytes 0x4c0d5658 // method "stringInTuple()(uint16,uint8[],string,uint8[])" txna ApplicationArgs 0 match *abi_route_stringInTuple diff --git a/tests/contracts/artifacts/ABITestStringInTuple.arc32.json b/tests/contracts/artifacts/ABITestStringInTuple.arc32.json index 9c696ca7a..521fa070b 100644 --- a/tests/contracts/artifacts/ABITestStringInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestStringInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCiphYmlfcm91dGVfc3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCgljYWxsc3ViIHN0cmluZ0luVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJblR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCnN0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDggLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0luVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCiphYmlfcm91dGVfc3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkKCWNhbGxzdWIgc3RyaW5nSW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJblR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCnN0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwOCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTQ0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDRjMGQ1NjU4IC8vIG1ldGhvZCAic3RyaW5nSW5UdXBsZSgpKHVpbnQxNix1aW50OFtdLHN0cmluZyx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nSW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestStringInTuple.arc56_draft.json index 98b677e27..5c99810a9 100644 --- a/tests/contracts/artifacts/ABITestStringInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStringInTuple.arc56_draft.json @@ -61,654 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 540, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ] - }, - { - "teal": 13, - "source": 540, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 14, - "source": 540, - "pc": [ - 9 - ] - }, - { - "teal": 15, - "source": 540, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 16, - "source": 540, - "pc": [ - 12 - ] - }, - { - "teal": 17, - "source": 540, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 18, - "source": 540, - "pc": [ - 15 - ] - }, - { - "teal": 19, - "source": 540, - "pc": [ - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41 - ] - }, - { - "teal": 23, - "source": 540, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 42 - ] - }, - { - "teal": 28, - "source": 541, - "pc": [ - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 31, - "source": 541, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 32, - "source": 541, - "pc": [ - 52 - ] - }, - { - "teal": 33, - "source": 541, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 541, - "pc": [ - 54 - ] - }, - { - "teal": 35, - "source": 541, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 541, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 42, - "source": 541, - "pc": [ - 59 - ] - }, - { - "teal": 46, - "source": 542, - "pc": [ - 60 - ] - }, - { - "teal": 47, - "source": 542, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 542, - "pc": [ - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 49, - "source": 542, - "pc": [ - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 50, - "source": 542, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 51, - "source": 542, - "pc": [ - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 52, - "source": 542, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 53, - "source": 542, - "pc": [ - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 54, - "source": 542, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 55, - "source": 542, - "pc": [ - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 56, - "source": 542, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 57, - "source": 542, - "pc": [ - 108 - ] - }, - { - "teal": 58, - "source": 542, - "pc": [ - 109 - ] - }, - { - "teal": 59, - "source": 542, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 63, - "source": 544, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 66, - "source": 541, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 67, - "source": 541, - "pc": [ - 116 - ] - }, - { - "teal": 70, - "source": 540, - "pc": [ - 117 - ] - }, - { - "teal": 71, - "source": 540, - "pc": [ - 118 - ] - }, - { - "teal": 74, - "source": 540, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 75, - "source": 540, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 76, - "source": 540, - "pc": [ - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 79, - "source": 540, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 132 - ] - }, - { - "teal": 82, - "source": 540, - "pc": [ - 133, - 134, - 135, - 136, - 137, - 138 - ] - }, - { - "teal": 83, - "source": 540, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 84, - "source": 540, - "pc": [ - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 87, - "source": 540, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 146 - ] - }, - { - "teal": 90, - "source": 540, - "pc": [ - 147, - 148, - 149 - ] - }, - { - "teal": 91, - "source": 540, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 92, - "source": 540, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 93, - "source": 540, - "pc": [ - 154 - ] - }, - { - "teal": 94, - "source": 540, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 95, - "source": 540, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 96, - "source": 540, - "pc": [ - 159 - ] - }, - { - "teal": 99, - "source": 540, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 100, - "source": 540, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 101, - "source": 540, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 102, - "source": 540, - "pc": [ - 167 - ] - }, - { - "teal": 103, - "source": 540, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 104, - "source": 540, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 105, - "source": 540, - "pc": [ - 172 - ] - }, - { - "teal": 106, - "source": 540, - "pc": [ - 173 - ] - }, - { - "teal": 107, - "source": 540, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 108, - "source": 540, - "pc": [ - 176 - ] - }, - { - "teal": 109, - "source": 540, - "pc": [ - 177 - ] - }, - { - "teal": 110, - "source": 540, - "pc": [ - 178 - ] - }, - { - "teal": 111, - "source": 540, - "pc": [ - 179, - 180, - 181 - ] - }, - { - "teal": 112, - "source": 540, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 113, - "source": 540, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 114, - "source": 540, - "pc": [ - 186 - ] - }, - { - "teal": 115, - "source": 540, - "pc": [ - 187 - ] - }, - { - "teal": 116, - "source": 540, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 117, - "source": 540, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 118, - "source": 540, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 119, - "source": 540, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 120, - "source": 540, - "pc": [ - 196 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCiphYmlfcm91dGVfc3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCgljYWxsc3ViIHN0cmluZ0luVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJblR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCnN0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDggLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHN0cmluZywgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ0luVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdJblR1cGxlKCkodWludDE2LHVpbnQ4W10sc3RyaW5nLHVpbnQ4W10pCiphYmlfcm91dGVfc3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHN0cmluZ0luVHVwbGUoKSh1aW50MTYsdWludDhbXSxzdHJpbmcsdWludDhbXSkKCWNhbGxzdWIgc3RyaW5nSW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJblR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCnN0cmluZ0luVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NDIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dID0gWzEsIFsyXSwgJ0hlbGxvIFdvcmxkIScsIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwOCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCBzdHJpbmcsIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTQ0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgc3RyaW5nLCB1aW50PDg+W11dCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDRjMGQ1NjU4IC8vIG1ldGhvZCAic3RyaW5nSW5UdXBsZSgpKHVpbnQxNix1aW50OFtdLHN0cmluZyx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nSW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBADEYFIEGCzEZCI0MAFsAAAAAAAAAAAAAAE0AAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAEoKCiAAgAIgAIAAYgASoADAAECiABPgA4ADEhlbGxvIFdvcmxkIYgAPIADAAEDiAA0SFCMAIsAjACJIkOABLhEezY2GgCOAf/xAIAETA1WWDYaAI4B/5kAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok=", + "approval": "CiYBADEYFIEGCzEZCI0MAGAAAAAAAAAAAAAAAFIAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIACIACAAGIAEuAAwABAogAUIAOAAxIZWxsbyBXb3JsZCGIAD2AAwABA4gANUhQjACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgARMDVZYNhoAjgH/lACKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStringLength.approval.teal b/tests/contracts/artifacts/ABITestStringLength.approval.teal index 5989483f9..fe199812d 100644 --- a/tests/contracts/artifacts/ABITestStringLength.approval.teal +++ b/tests/contracts/artifacts/ABITestStringLength.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // stringLength()uint64 *abi_route_stringLength: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute stringLength()uint64 callsub stringLength itob concat log - int 1 + pushint 1 return // stringLength(): uint64 @@ -40,11 +40,11 @@ stringLength: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:743 // s = concat('foo ', 'bar') - byte 0x666f6f20626172 + pushbytes 0x666f6f20626172 frame_bury 0 // s: byte[] // tests/contracts/abi.algo.ts:745 @@ -57,11 +57,11 @@ stringLength: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -69,7 +69,7 @@ stringLength: err *call_NoOp: - method "stringLength()uint64" + pushbytes 0x659e4307 // method "stringLength()uint64" txna ApplicationArgs 0 match *abi_route_stringLength diff --git a/tests/contracts/artifacts/ABITestStringLength.arc32.json b/tests/contracts/artifacts/ABITestStringLength.arc32.json index bd330eb47..64ce694f7 100644 --- a/tests/contracts/artifacts/ABITestStringLength.arc32.json +++ b/tests/contracts/artifacts/ABITestStringLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ0xlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdMZW5ndGgoKTogdWludDY0CnN0cmluZ0xlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0MwoJLy8gcyA9IGNvbmNhdCgnZm9vICcsICdiYXInKQoJYnl0ZSAweDY2NmY2ZjIwNjI2MTcyCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0NQoJLy8gcmV0dXJuIHMubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gczogYnl0ZVtdCglsZW4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0xlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nTGVuZ3RoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RyaW5nTGVuZ3RoKCk6IHVpbnQ2NApzdHJpbmdMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0MwoJLy8gcyA9IGNvbmNhdCgnZm9vICcsICdiYXInKQoJcHVzaGJ5dGVzIDB4NjY2ZjZmMjA2MjYxNzIKCWZyYW1lX2J1cnkgMCAvLyBzOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzQ1CgkvLyByZXR1cm4gcy5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBzOiBieXRlW10KCWxlbgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2NTllNDMwNyAvLyBtZXRob2QgInN0cmluZ0xlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringLength.arc56_draft.json b/tests/contracts/artifacts/ABITestStringLength.arc56_draft.json index 85de15460..045128b2d 100644 --- a/tests/contracts/artifacts/ABITestStringLength.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStringLength.arc56_draft.json @@ -61,329 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 741, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 741, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 741, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 741, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 741, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 741, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 741, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 741, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 741, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 742, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 742, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 742, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 742, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 742, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 742, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 742, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 742, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 742, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 743, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 48, - "source": 743, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 52, - "source": 745, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 53, - "source": 745, - "pc": [ - 72 - ] - }, - { - "teal": 56, - "source": 742, - "pc": [ - 73, - 74 - ] - }, - { - "teal": 57, - "source": 742, - "pc": [ - 75 - ] - }, - { - "teal": 60, - "source": 741, - "pc": [ - 76 - ] - }, - { - "teal": 61, - "source": 741, - "pc": [ - 77 - ] - }, - { - "teal": 64, - "source": 741, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 65, - "source": 741, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 66, - "source": 741, - "pc": [ - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 69, - "source": 741, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 91 - ] - }, - { - "teal": 72, - "source": 741, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 73, - "source": 741, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 74, - "source": 741, - "pc": [ - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 77, - "source": 741, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 105 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 90 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 104 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ0xlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdMZW5ndGgoKTogdWludDY0CnN0cmluZ0xlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0MwoJLy8gcyA9IGNvbmNhdCgnZm9vICcsICdiYXInKQoJYnl0ZSAweDY2NmY2ZjIwNjI2MTcyCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0NQoJLy8gcmV0dXJuIHMubGVuZ3RoOwoJZnJhbWVfZGlnIDAgLy8gczogYnl0ZVtdCglsZW4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0xlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nTGVuZ3RoKCl1aW50NjQKKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3RyaW5nTGVuZ3RoKCk6IHVpbnQ2NApzdHJpbmdMZW5ndGg6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0MwoJLy8gcyA9IGNvbmNhdCgnZm9vICcsICdiYXInKQoJcHVzaGJ5dGVzIDB4NjY2ZjZmMjA2MjYxNzIKCWZyYW1lX2J1cnkgMCAvLyBzOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzQ1CgkvLyByZXR1cm4gcy5sZW5ndGg7CglmcmFtZV9kaWcgMCAvLyBzOiBieXRlW10KCWxlbgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2NTllNDMwNyAvLyBtZXRob2QgInN0cmluZ0xlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADUAAAAAAAAAAAAAACcAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAB2ZvbyBiYXKMAIsAFYwAiSJDgAS4RHs2NhoAjgH/8QCABGWeQwc2GgCOAf+/AA==", + "approval": "CjEYFIEGCzEZCI0MADcAAAAAAAAAAAAAACkAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgAdmb28gYmFyjACLABWMAImBAUOABLhEezY2GgCOAf/wAIAEZZ5DBzYaAI4B/70A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestStringReturn.approval.teal b/tests/contracts/artifacts/ABITestStringReturn.approval.teal index 36f3081b6..084cdb539 100644 --- a/tests/contracts/artifacts/ABITestStringReturn.approval.teal +++ b/tests/contracts/artifacts/ABITestStringReturn.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // stringReturn()string *abi_route_stringReturn: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute stringReturn()string callsub stringReturn @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // stringReturn(): string @@ -46,15 +46,15 @@ stringReturn: // tests/contracts/abi.algo.ts:530 // return 'Hello World!'; - byte 0x48656c6c6f20576f726c6421 // "Hello World!" + pushbytes 0x48656c6c6f20576f726c6421 // "Hello World!" retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -62,7 +62,7 @@ stringReturn: err *call_NoOp: - method "stringReturn()string" + pushbytes 0x68430e92 // method "stringReturn()string" txna ApplicationArgs 0 match *abi_route_stringReturn diff --git a/tests/contracts/artifacts/ABITestStringReturn.arc32.json b/tests/contracts/artifacts/ABITestStringReturn.arc32.json index a5f61af85..bc272d584 100644 --- a/tests/contracts/artifacts/ABITestStringReturn.arc32.json +++ b/tests/contracts/artifacts/ABITestStringReturn.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdSZXR1cm4oKXN0cmluZwoqYWJpX3JvdXRlX3N0cmluZ1JldHVybjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdSZXR1cm4oKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdSZXR1cm4KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nUmV0dXJuKCk6IHN0cmluZwpzdHJpbmdSZXR1cm46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTMwCgkvLyByZXR1cm4gJ0hlbGxvIFdvcmxkISc7CglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdSZXR1cm4oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nUmV0dXJuCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nUmV0dXJuKClzdHJpbmcKKmFiaV9yb3V0ZV9zdHJpbmdSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdSZXR1cm4oKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdSZXR1cm4KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0cmluZ1JldHVybigpOiBzdHJpbmcKc3RyaW5nUmV0dXJuOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUzMAoJLy8gcmV0dXJuICdIZWxsbyBXb3JsZCEnOwoJcHVzaGJ5dGVzIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY4NDMwZTkyIC8vIG1ldGhvZCAic3RyaW5nUmV0dXJuKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ1JldHVybgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringReturn.arc56_draft.json b/tests/contracts/artifacts/ABITestStringReturn.arc56_draft.json index faa67c9d5..e964ebcc6 100644 --- a/tests/contracts/artifacts/ABITestStringReturn.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestStringReturn.arc56_draft.json @@ -61,332 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 528, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 528, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 528, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 528, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 528, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 528, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 528, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 528, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 528, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 529, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 529, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 529, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 529, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 529, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 529, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 529, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 529, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 529, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 529, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 529, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 529, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 529, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 49, - "source": 530, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 50, - "source": 529, - "pc": [ - 78 - ] - }, - { - "teal": 53, - "source": 528, - "pc": [ - 79 - ] - }, - { - "teal": 54, - "source": 528, - "pc": [ - 80 - ] - }, - { - "teal": 57, - "source": 528, - "pc": [ - 81, - 82, - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 58, - "source": 528, - "pc": [ - 87, - 88, - 89 - ] - }, - { - "teal": 59, - "source": 528, - "pc": [ - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 62, - "source": 528, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 94 - ] - }, - { - "teal": 65, - "source": 528, - "pc": [ - 95, - 96, - 97, - 98, - 99, - 100 - ] - }, - { - "teal": 66, - "source": 528, - "pc": [ - 101, - 102, - 103 - ] - }, - { - "teal": 67, - "source": 528, - "pc": [ - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 70, - "source": 528, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 108 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 93 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 107 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdHJpbmdSZXR1cm4oKXN0cmluZwoqYWJpX3JvdXRlX3N0cmluZ1JldHVybjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdSZXR1cm4oKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdSZXR1cm4KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nUmV0dXJuKCk6IHN0cmluZwpzdHJpbmdSZXR1cm46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTMwCgkvLyByZXR1cm4gJ0hlbGxvIFdvcmxkISc7CglieXRlIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJzdHJpbmdSZXR1cm4oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc3RyaW5nUmV0dXJuCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gc3RyaW5nUmV0dXJuKClzdHJpbmcKKmFiaV9yb3V0ZV9zdHJpbmdSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBzdHJpbmdSZXR1cm4oKXN0cmluZwoJY2FsbHN1YiBzdHJpbmdSZXR1cm4KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHN0cmluZ1JldHVybigpOiBzdHJpbmcKc3RyaW5nUmV0dXJuOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjUzMAoJLy8gcmV0dXJuICdIZWxsbyBXb3JsZCEnOwoJcHVzaGJ5dGVzIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDY4NDMwZTkyIC8vIG1ldGhvZCAic3RyaW5nUmV0dXJuKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3N0cmluZ1JldHVybgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADgAAAAAAAAAAAAAACoAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYAMSGVsbG8gV29ybGQhiSJDgAS4RHs2NhoAjgH/8QCABGhDDpI2GgCOAf+8AA==", + "approval": "CjEYFIEGCzEZCI0MADoAAAAAAAAAAAAAACwAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGADEhlbGxvIFdvcmxkIYmBAUOABLhEezY2GgCOAf/wAIAEaEMOkjYaAI4B/7oA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal index 9b32895b2..df269ac31 100644 --- a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal +++ b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // threeDimensionalUint16Array()uint16 *abi_route_threeDimensionalUint16Array: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute threeDimensionalUint16Array()uint16 callsub threeDimensionalUint16Array itob dup bitlen - int 16 + pushint 16 <= // threeDimensionalUint16Array return value overflowed 16 bits @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 6 2 concat log - int 1 + pushint 1 return // threeDimensionalUint16Array(): uint16 @@ -48,7 +48,7 @@ threeDimensionalUint16Array: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:238 // a: StaticArray, 2>, 2> = [ @@ -61,13 +61,13 @@ threeDimensionalUint16Array: // [77, 88], // ], // ] - byte 0x000b00160021002c00370042004d0058 + pushbytes 0x000b00160021002c00370042004d0058 frame_bury 0 // a: StaticArray, 2>, 2> // tests/contracts/abi.algo.ts:249 // a[1][1] = [777, 888] frame_dig 0 // a: StaticArray, 2>, 2> - byte 0x03090378 + pushbytes 0x03090378 replace2 12 frame_bury 0 // a: StaticArray, 2>, 2> @@ -82,11 +82,11 @@ threeDimensionalUint16Array: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -94,7 +94,7 @@ threeDimensionalUint16Array: err *call_NoOp: - method "threeDimensionalUint16Array()uint16" + pushbytes 0xc4402355 // method "threeDimensionalUint16Array()uint16" txna ApplicationArgs 0 match *abi_route_threeDimensionalUint16Array diff --git a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json index 0a6721f90..5599f26d4 100644 --- a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json +++ b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoqYWJpX3JvdXRlX3RocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9CgoJLy8gdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKTogdWludDE2CnRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzOAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgICAgWzMzLCA0NF0sCgkvLyAgICAgICBdLAoJLy8gICAgICAgWwoJLy8gICAgICAgICBbNTUsIDY2XSwKCS8vICAgICAgICAgWzc3LCA4OF0sCgkvLyAgICAgICBdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAxNjAwMjEwMDJjMDAzNzAwNDIwMDRkMDA1OAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNDkKCS8vIGFbMV1bMV0gPSBbNzc3LCA4ODhdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCWJ5dGUgMHgwMzA5MDM3OAoJcmVwbGFjZTIgMTIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjUxCgkvLyByZXR1cm4gYVsxXVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoJZXh0cmFjdCAxNCAyCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5KCl1aW50MTYKKmFiaV9yb3V0ZV90aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIHRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheSgpOiB1aW50MTYKdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMzgKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIFszMywgNDRdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzU1LCA2Nl0sCgkvLyAgICAgICAgIFs3NywgODhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDBiMDAxNjAwMjEwMDJjMDAzNzAwNDIwMDRkMDA1OAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNDkKCS8vIGFbMV1bMV0gPSBbNzc3LCA4ODhdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCXB1c2hieXRlcyAweDAzMDkwMzc4CglyZXBsYWNlMiAxMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNTEKCS8vIHJldHVybiBhWzFdWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+CglleHRyYWN0IDE0IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzQ0MDIzNTUgLy8gbWV0aG9kICJ0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc56_draft.json b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc56_draft.json index 0e53599da..1c04a93de 100644 --- a/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc56_draft.json @@ -61,429 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 236, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 236, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 236, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 236, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 236, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 236, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 236, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 236, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 236, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 237, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 237, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 237, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 237, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 237, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 237, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 36, - "source": 237, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 237, - "errorMessage": "threeDimensionalUint16Array return value overflowed 16 bits", - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 237, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 41, - "source": 237, - "pc": [ - 59 - ] - }, - { - "teal": 42, - "source": 237, - "pc": [ - 60 - ] - }, - { - "teal": 43, - "source": 237, - "pc": [ - 61 - ] - }, - { - "teal": 44, - "source": 237, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 237, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 51, - "source": 237, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 64, - "source": 238, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 65, - "source": 238, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 69, - "source": 249, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 70, - "source": 249, - "pc": [ - 90, - 91, - 92, - 93, - 94, - 95 - ] - }, - { - "teal": 71, - "source": 249, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 72, - "source": 249, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 76, - "source": 251, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 77, - "source": 251, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 78, - "source": 251, - "pc": [ - 105 - ] - }, - { - "teal": 81, - "source": 237, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 82, - "source": 237, - "pc": [ - 108 - ] - }, - { - "teal": 85, - "source": 236, - "pc": [ - 109 - ] - }, - { - "teal": 86, - "source": 236, - "pc": [ - 110 - ] - }, - { - "teal": 89, - "source": 236, - "pc": [ - 111, - 112, - 113, - 114, - 115, - 116 - ] - }, - { - "teal": 90, - "source": 236, - "pc": [ - 117, - 118, - 119 - ] - }, - { - "teal": 91, - "source": 236, - "pc": [ - 120, - 121, - 122, - 123 - ] - }, - { - "teal": 94, - "source": 236, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 124 - ] - }, - { - "teal": 97, - "source": 236, - "pc": [ - 125, - 126, - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 98, - "source": 236, - "pc": [ - 131, - 132, - 133 - ] - }, - { - "teal": 99, - "source": 236, - "pc": [ - 134, - 135, - 136, - 137 - ] - }, - { - "teal": 102, - "source": 236, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 138 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "threeDimensionalUint16Array return value overflowed 16 bits" + }, + { + "pc": [ + 123 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 137 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoqYWJpX3JvdXRlX3RocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9CgoJLy8gdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKTogdWludDE2CnRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzOAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+ID0gWwoJLy8gICAgICAgWwoJLy8gICAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgICAgWzMzLCA0NF0sCgkvLyAgICAgICBdLAoJLy8gICAgICAgWwoJLy8gICAgICAgICBbNTUsIDY2XSwKCS8vICAgICAgICAgWzc3LCA4OF0sCgkvLyAgICAgICBdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAxNjAwMjEwMDJjMDAzNzAwNDIwMDRkMDA1OAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNDkKCS8vIGFbMV1bMV0gPSBbNzc3LCA4ODhdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCWJ5dGUgMHgwMzA5MDM3OAoJcmVwbGFjZTIgMTIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjUxCgkvLyByZXR1cm4gYVsxXVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoJZXh0cmFjdCAxNCAyCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5KCl1aW50MTYKKmFiaV9yb3V0ZV90aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIHRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHRocmVlRGltZW5zaW9uYWxVaW50MTZBcnJheSgpOiB1aW50MTYKdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMzgKCS8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPiA9IFsKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzExLCAyMl0sCgkvLyAgICAgICAgIFszMywgNDRdLAoJLy8gICAgICAgXSwKCS8vICAgICAgIFsKCS8vICAgICAgICAgWzU1LCA2Nl0sCgkvLyAgICAgICAgIFs3NywgODhdLAoJLy8gICAgICAgXSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDBiMDAxNjAwMjEwMDJjMDAzNzAwNDIwMDRkMDA1OAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNDkKCS8vIGFbMV1bMV0gPSBbNzc3LCA4ODhdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50MTYsIDI+LCAyPiwgMj4KCXB1c2hieXRlcyAweDAzMDkwMzc4CglyZXBsYWNlMiAxMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQxNiwgMj4sIDI+LCAyPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNTEKCS8vIHJldHVybiBhWzFdWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDE2LCAyPiwgMj4sIDI+CglleHRyYWN0IDE0IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzQ0MDIzNTUgLy8gbWV0aG9kICJ0aHJlZURpbWVuc2lvbmFsVWludDE2QXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdGhyZWVEaW1lbnNpb25hbFVpbnQxNkFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAFYAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAIAEFR98dYgADhZJk4EQDkRXBgJQsCJDigABgACAEAALABYAIQAsADcAQgBNAFiMAIsAgAQDCQN4XAyMAIsAVw4CF4wAiSJDgAS4RHs2NhoAjgH/8QCABMRAI1U2GgCOAf+eAA==", + "approval": "CjEYFIEGCzEZCI0MAFgAAAAAAAAAAAAAAEoAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EQDkRXBgJQsIEBQ4oAAYAAgBAACwAWACEALAA3AEIATQBYjACLAIAEAwkDeFwMjACLAFcOAheMAImBAUOABLhEezY2GgCOAf/wAIAExEAjVTYaAI4B/5wA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestTupleArg.approval.teal b/tests/contracts/artifacts/ABITestTupleArg.approval.teal index d209167d4..40aa55094 100644 --- a/tests/contracts/artifacts/ABITestTupleArg.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleArg.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // tupleArg((uint64,uint16,uint64))uint16 *abi_route_tupleArg: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: (uint64,uint16,uint64) txna ApplicationArgs 1 dup len - int 18 + pushint 18 == // argument 0 (a) for tupleArg must be a (uint64,uint16,uint64) @@ -42,7 +42,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob dup bitlen - int 16 + pushint 16 <= // tupleArg return value overflowed 16 bits @@ -50,7 +50,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 6 2 concat log - int 1 + pushint 1 return // tupleArg(a: [uint64, uint16, uint64]): uint16 @@ -65,11 +65,11 @@ tupleArg: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -77,7 +77,7 @@ tupleArg: err *call_NoOp: - method "tupleArg((uint64,uint16,uint64))uint16" + pushbytes 0x9d3bdeb7 // method "tupleArg((uint64,uint16,uint64))uint16" txna ApplicationArgs 0 match *abi_route_tupleArg diff --git a/tests/contracts/artifacts/ABITestTupleArg.arc32.json b/tests/contracts/artifacts/ABITestTupleArg.arc32.json index 9f0d8ffbf..166f754aa 100644 --- a/tests/contracts/artifacts/ABITestTupleArg.arc32.json +++ b/tests/contracts/artifacts/ABITestTupleArg.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgoqYWJpX3JvdXRlX3R1cGxlQXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiAodWludDY0LHVpbnQxNix1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDE4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0dXBsZUFyZyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUFyZwoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyB0dXBsZUFyZyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdHVwbGVBcmcoYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdKTogdWludDE2CnR1cGxlQXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0MgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCglleHRyYWN0IDggMgoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3R1cGxlQXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYKKmFiaV9yb3V0ZV90dXBsZUFyZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBhOiAodWludDY0LHVpbnQxNix1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAxOAoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdHVwbGVBcmcgbXVzdCBiZSBhICh1aW50NjQsdWludDE2LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYKCWNhbGxzdWIgdHVwbGVBcmcKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIHR1cGxlQXJnIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdHVwbGVBcmcoYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdKTogdWludDE2CnR1cGxlQXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0MgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCglleHRyYWN0IDggMgoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5ZDNiZGViNyAvLyBtZXRob2QgInR1cGxlQXJnKCh1aW50NjQsdWludDE2LHVpbnQ2NCkpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUFyZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleArg.arc56_draft.json b/tests/contracts/artifacts/ABITestTupleArg.arc56_draft.json index 0a61d4db7..04d3c73d7 100644 --- a/tests/contracts/artifacts/ABITestTupleArg.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestTupleArg.arc56_draft.json @@ -66,391 +66,52 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 340, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 340, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 340, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 340, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 340, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 340, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 340, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 340, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 340, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 341, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 341, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 341, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 341, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 341, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 341, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 341, - "errorMessage": "argument 0 (a) for tupleArg must be a (uint64,uint16,uint64)", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 341, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 341, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 341, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 341, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 341, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 46, - "source": 341, - "pc": [ - 63 - ] - }, - { - "teal": 49, - "source": 341, - "errorMessage": "tupleArg return value overflowed 16 bits", - "pc": [ - 64 - ] - }, - { - "teal": 50, - "source": 341, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 51, - "source": 341, - "pc": [ - 68 - ] - }, - { - "teal": 52, - "source": 341, - "pc": [ - 69 - ] - }, - { - "teal": 53, - "source": 341, - "pc": [ - 70 - ] - }, - { - "teal": 54, - "source": 341, - "pc": [ - 71 - ] - }, - { - "teal": 58, - "source": 341, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 62, - "source": 342, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 63, - "source": 342, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 64, - "source": 342, - "pc": [ - 80 - ] - }, - { - "teal": 65, - "source": 341, - "pc": [ - 81 - ] - }, - { - "teal": 68, - "source": 340, - "pc": [ - 82 - ] - }, - { - "teal": 69, - "source": 340, - "pc": [ - 83 - ] - }, - { - "teal": 72, - "source": 340, - "pc": [ - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 73, - "source": 340, - "pc": [ - 90, - 91, - 92 - ] - }, - { - "teal": 74, - "source": 340, - "pc": [ - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 77, - "source": 340, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 97 - ] - }, - { - "teal": 80, - "source": 340, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 81, - "source": 340, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 82, - "source": 340, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 85, - "source": 340, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 111 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for tupleArg must be a (uint64,uint16,uint64)" + }, + { + "pc": [ + 61 + ], + "errorMessage": "tupleArg return value overflowed 16 bits" + }, + { + "pc": [ + 96 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgoqYWJpX3JvdXRlX3R1cGxlQXJnOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiAodWludDY0LHVpbnQxNix1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDE4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0dXBsZUFyZyBtdXN0IGJlIGEgKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB0dXBsZUFyZygodWludDY0LHVpbnQxNix1aW50NjQpKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUFyZwoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyB0dXBsZUFyZyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdHVwbGVBcmcoYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdKTogdWludDE2CnR1cGxlQXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0MgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCglleHRyYWN0IDggMgoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3R1cGxlQXJnCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYKKmFiaV9yb3V0ZV90dXBsZUFyZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBhOiAodWludDY0LHVpbnQxNix1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAxOAoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdHVwbGVBcmcgbXVzdCBiZSBhICh1aW50NjQsdWludDE2LHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdHVwbGVBcmcoKHVpbnQ2NCx1aW50MTYsdWludDY0KSl1aW50MTYKCWNhbGxzdWIgdHVwbGVBcmcKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIHR1cGxlQXJnIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdHVwbGVBcmcoYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdKTogdWludDE2CnR1cGxlQXJnOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0MgoJLy8gcmV0dXJuIGFbMV07CglmcmFtZV9kaWcgLTEgLy8gYTogW3VpbnQ2NCwgdWludDE2LCB1aW50NjRdCglleHRyYWN0IDggMgoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg5ZDNiZGViNyAvLyBtZXRob2QgInR1cGxlQXJnKCh1aW50NjQsdWludDE2LHVpbnQ2NCkpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUFyZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADsAAAAAAAAAAAAAAC0AAAAAAAAAAAAAAIAEFR98dTYaAUkVgRISRIgADhZJk4EQDkRXBgJQsCJDigEBi/9XCAIXiSJDgAS4RHs2NhoAjgH/8QCABJ073rc2GgCOAf+5AA==", + "approval": "CjEYFIEGCzEZCI0MAD0AAAAAAAAAAAAAAC8AAAAAAAAAAAAAAIAEFR98dTYaAUkVgRISRIgADxZJk4EQDkRXBgJQsIEBQ4oBAYv/VwgCF4mBAUOABLhEezY2GgCOAf/wAIAEnTvetzYaAI4B/7cA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestTupleInArray.approval.teal b/tests/contracts/artifacts/ABITestTupleInArray.approval.teal index bad3626c6..d31926307 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleInArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // tupleInArray()uint16 *abi_route_tupleInArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute tupleInArray()uint16 callsub tupleInArray itob dup bitlen - int 16 + pushint 16 <= // tupleInArray return value overflowed 16 bits @@ -40,7 +40,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 6 2 concat log - int 1 + pushint 1 return // tupleInArray(): uint16 @@ -48,14 +48,14 @@ tupleInArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:273 // a: StaticArray<[uint64, uint16], 2> = [ // [11, 22], // [33, 44], // ] - byte 0x000000000000000b00160000000000000021002c + pushbytes 0x000000000000000b00160000000000000021002c frame_bury 0 // a: StaticArray<[uint64, uint16], 2> // tests/contracts/abi.algo.ts:278 @@ -69,11 +69,11 @@ tupleInArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +81,7 @@ tupleInArray: err *call_NoOp: - method "tupleInArray()uint16" + pushbytes 0x1dc2806a // method "tupleInArray()uint16" txna ApplicationArgs 0 match *abi_route_tupleInArray diff --git a/tests/contracts/artifacts/ABITestTupleInArray.arc32.json b/tests/contracts/artifacts/ABITestTupleInArray.arc32.json index 08e736105..de8524c69 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.arc32.json +++ b/tests/contracts/artifacts/ABITestTupleInArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0dXBsZUluQXJyYXkoKXVpbnQxNgoqYWJpX3JvdXRlX3R1cGxlSW5BcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluQXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUluQXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9CgoJLy8gdHVwbGVJbkFycmF5IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUluQXJyYXkoKTogdWludDE2CnR1cGxlSW5BcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI3MwoJLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+CglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR1cGxlSW5BcnJheSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHVwbGVJbkFycmF5KCl1aW50MTYKKmFiaV9yb3V0ZV90dXBsZUluQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluQXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUluQXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIHR1cGxlSW5BcnJheSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHR1cGxlSW5BcnJheSgpOiB1aW50MTYKdHVwbGVJbkFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNzMKCS8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+ID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+CglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MWRjMjgwNmEgLy8gbWV0aG9kICJ0dXBsZUluQXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHVwbGVJbkFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleInArray.arc56_draft.json b/tests/contracts/artifacts/ABITestTupleInArray.arc56_draft.json index e3fbf80eb..3d1e13015 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestTupleInArray.arc56_draft.json @@ -61,397 +61,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 271, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 271, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 271, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 271, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 271, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 271, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 271, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 271, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 271, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 272, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 272, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 272, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 272, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 272, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 272, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 36, - "source": 272, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 272, - "errorMessage": "tupleInArray return value overflowed 16 bits", - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 272, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 41, - "source": 272, - "pc": [ - 59 - ] - }, - { - "teal": 42, - "source": 272, - "pc": [ - 60 - ] - }, - { - "teal": 43, - "source": 272, - "pc": [ - 61 - ] - }, - { - "teal": 44, - "source": 272, - "pc": [ - 62 - ] - }, - { - "teal": 48, - "source": 272, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 51, - "source": 272, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 58, - "source": 273, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 59, - "source": 273, - "pc": [ - 90, - 91 - ] - }, - { - "teal": 63, - "source": 278, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 64, - "source": 278, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 65, - "source": 278, - "pc": [ - 97 - ] - }, - { - "teal": 68, - "source": 272, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 69, - "source": 272, - "pc": [ - 100 - ] - }, - { - "teal": 72, - "source": 271, - "pc": [ - 101 - ] - }, - { - "teal": 73, - "source": 271, - "pc": [ - 102 - ] - }, - { - "teal": 76, - "source": 271, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 77, - "source": 271, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 78, - "source": 271, - "pc": [ - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 81, - "source": 271, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 116 - ] - }, - { - "teal": 84, - "source": 271, - "pc": [ - 117, - 118, - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 85, - "source": 271, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 86, - "source": 271, - "pc": [ - 126, - 127, - 128, - 129 - ] - }, - { - "teal": 89, - "source": 271, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 130 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "tupleInArray return value overflowed 16 bits" + }, + { + "pc": [ + 115 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 129 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0dXBsZUluQXJyYXkoKXVpbnQxNgoqYWJpX3JvdXRlX3R1cGxlSW5BcnJheToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluQXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUluQXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9CgoJLy8gdHVwbGVJbkFycmF5IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUluQXJyYXkoKTogdWludDE2CnR1cGxlSW5BcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI3MwoJLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+CglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR1cGxlSW5BcnJheSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHVwbGVJbkFycmF5KCl1aW50MTYKKmFiaV9yb3V0ZV90dXBsZUluQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluQXJyYXkoKXVpbnQxNgoJY2FsbHN1YiB0dXBsZUluQXJyYXkKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIHR1cGxlSW5BcnJheSByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxNiBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNiAyCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHR1cGxlSW5BcnJheSgpOiB1aW50MTYKdHVwbGVJbkFycmF5OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyNzMKCS8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+ID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8W3VpbnQ2NCwgdWludDE2XSwgMj4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFt1aW50NjQsIHVpbnQxNl0sIDI+CglleHRyYWN0IDE4IDIKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MWRjMjgwNmEgLy8gbWV0aG9kICJ0dXBsZUluQXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHVwbGVJbkFycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE4AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAEFR98dYgADhZJk4EQDkRXBgJQsCJDigABgACAFAAAAAAAAAALABYAAAAAAAAAIQAsjACLAFcSAheMAIkiQ4AEuER7NjYaAI4B//EAgAQdwoBqNhoAjgH/pgA=", + "approval": "CjEYFIEGCzEZCI0MAFAAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EQDkRXBgJQsIEBQ4oAAYAAgBQAAAAAAAAACwAWAAAAAAAAACEALIwAiwBXEgIXjACJgQFDgAS4RHs2NhoAjgH/8ACABB3CgGo2GgCOAf+kAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal b/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal index 3f5f2e04d..50f2ebddc 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // tupleInTuple()uint64 *abi_route_tupleInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute tupleInTuple()uint64 callsub tupleInTuple itob concat log - int 1 + pushint 1 return // tupleInTuple(): uint64 @@ -40,11 +40,11 @@ tupleInTuple: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:284 // a: [uint16, uint16, [uint64, uint16], [uint16, uint64]] = [11, 22, [33, 44], [55, 66]] - byte 0x000b00160000000000000021002c00370000000000000042 + pushbytes 0x000b00160000000000000021002c00370000000000000042 frame_bury 0 // a: [uint16, uint16, [uint64, uint16], [uint16, uint64]] // tests/contracts/abi.algo.ts:286 @@ -58,11 +58,11 @@ tupleInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -70,7 +70,7 @@ tupleInTuple: err *call_NoOp: - method "tupleInTuple()uint64" + pushbytes 0x2b6c4d6a // method "tupleInTuple()uint64" txna ApplicationArgs 0 match *abi_route_tupleInTuple diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json b/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json index 4cef2c0c1..29afebc4f 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestTupleInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0dXBsZUluVHVwbGUoKXVpbnQ2NAoqYWJpX3JvdXRlX3R1cGxlSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiB0dXBsZUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUluVHVwbGUoKTogdWludDY0CnR1cGxlSW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NAoJLy8gYTogW3VpbnQxNiwgdWludDE2LCBbdWludDY0LCB1aW50MTZdLCBbdWludDE2LCB1aW50NjRdXSA9IFsxMSwgMjIsIFszMywgNDRdLCBbNTUsIDY2XV0KCWJ5dGUgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjMDAzNzAwMDAwMDAwMDAwMDAwNDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NgoJLy8gcmV0dXJuIGFbM11bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dCglleHRyYWN0IDE2IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR1cGxlSW5UdXBsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHVwbGVJblR1cGxlKCl1aW50NjQKKmFiaV9yb3V0ZV90dXBsZUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiB0dXBsZUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdHVwbGVJblR1cGxlKCk6IHVpbnQ2NAp0dXBsZUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NAoJLy8gYTogW3VpbnQxNiwgdWludDE2LCBbdWludDY0LCB1aW50MTZdLCBbdWludDE2LCB1aW50NjRdXSA9IFsxMSwgMjIsIFszMywgNDRdLCBbNTUsIDY2XV0KCXB1c2hieXRlcyAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMmMwMDM3MDAwMDAwMDAwMDAwMDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQxNiwgW3VpbnQ2NCwgdWludDE2XSwgW3VpbnQxNiwgdWludDY0XV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg2CgkvLyByZXR1cm4gYVszXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQxNiwgW3VpbnQ2NCwgdWludDE2XSwgW3VpbnQxNiwgdWludDY0XV0KCWV4dHJhY3QgMTYgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgyYjZjNGQ2YSAvLyBtZXRob2QgInR1cGxlSW5UdXBsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestTupleInTuple.arc56_draft.json index 32d86c4bc..4d22bfe18 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestTupleInTuple.arc56_draft.json @@ -61,355 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 282, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 282, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 282, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 282, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 282, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 282, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 282, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 282, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 282, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 283, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 283, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 283, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 283, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 283, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 283, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 283, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 283, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 283, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 284, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 48, - "source": 284, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 52, - "source": 286, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 53, - "source": 286, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 54, - "source": 286, - "pc": [ - 92 - ] - }, - { - "teal": 57, - "source": 283, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 58, - "source": 283, - "pc": [ - 95 - ] - }, - { - "teal": 61, - "source": 282, - "pc": [ - 96 - ] - }, - { - "teal": 62, - "source": 282, - "pc": [ - 97 - ] - }, - { - "teal": 65, - "source": 282, - "pc": [ - 98, - 99, - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 66, - "source": 282, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 67, - "source": 282, - "pc": [ - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 70, - "source": 282, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 111 - ] - }, - { - "teal": 73, - "source": 282, - "pc": [ - 112, - 113, - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 74, - "source": 282, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 75, - "source": 282, - "pc": [ - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 78, - "source": 282, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 125 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 110 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 124 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0dXBsZUluVHVwbGUoKXVpbnQ2NAoqYWJpX3JvdXRlX3R1cGxlSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiB0dXBsZUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0dXBsZUluVHVwbGUoKTogdWludDY0CnR1cGxlSW5UdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NAoJLy8gYTogW3VpbnQxNiwgdWludDE2LCBbdWludDY0LCB1aW50MTZdLCBbdWludDE2LCB1aW50NjRdXSA9IFsxMSwgMjIsIFszMywgNDRdLCBbNTUsIDY2XV0KCWJ5dGUgMHgwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEwMDJjMDAzNzAwMDAwMDAwMDAwMDAwNDIKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NgoJLy8gcmV0dXJuIGFbM11bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50MTYsIFt1aW50NjQsIHVpbnQxNl0sIFt1aW50MTYsIHVpbnQ2NF1dCglleHRyYWN0IDE2IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR1cGxlSW5UdXBsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHVwbGVJblR1cGxlKCl1aW50NjQKKmFiaV9yb3V0ZV90dXBsZUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB0dXBsZUluVHVwbGUoKXVpbnQ2NAoJY2FsbHN1YiB0dXBsZUluVHVwbGUKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdHVwbGVJblR1cGxlKCk6IHVpbnQ2NAp0dXBsZUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NAoJLy8gYTogW3VpbnQxNiwgdWludDE2LCBbdWludDY0LCB1aW50MTZdLCBbdWludDE2LCB1aW50NjRdXSA9IFsxMSwgMjIsIFszMywgNDRdLCBbNTUsIDY2XV0KCXB1c2hieXRlcyAweDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMmMwMDM3MDAwMDAwMDAwMDAwMDA0MgoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQxNiwgW3VpbnQ2NCwgdWludDE2XSwgW3VpbnQxNiwgdWludDY0XV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg2CgkvLyByZXR1cm4gYVszXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQxNiwgW3VpbnQ2NCwgdWludDE2XSwgW3VpbnQxNiwgdWludDY0XV0KCWV4dHJhY3QgMTYgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgyYjZjNGQ2YSAvLyBtZXRob2QgInR1cGxlSW5UdXBsZSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAEkAAAAAAAAAAAAAADsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAGAALABYAAAAAAAAAIQAsADcAAAAAAAAAQowAiwBXEAgXjACJIkOABLhEezY2GgCOAf/xAIAEK2xNajYaAI4B/6sA", + "approval": "CjEYFIEGCzEZCI0MAEsAAAAAAAAAAAAAAD0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBgACwAWAAAAAAAAACEALAA3AAAAAAAAAEKMAIsAVxAIF4wAiYEBQ4AEuER7NjYaAI4B//AAgAQrbE1qNhoAjgH/qQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestTxnTypes.approval.teal b/tests/contracts/artifacts/ABITestTxnTypes.approval.teal index 4659f540b..2ba20666f 100644 --- a/tests/contracts/artifacts/ABITestTxnTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestTxnTypes.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,11 +26,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_txnTypes: // p: pay txn GroupIndex - int 1 + pushint 1 - dup gtxns TypeEnum - int pay + pushint 1 // pay == // argument 0 (p) for txnTypes must be a pay transaction @@ -38,11 +38,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // kr: keyreg txn GroupIndex - int 2 + pushint 2 - dup gtxns TypeEnum - int keyreg + pushint 2 // keyreg == // argument 1 (kr) for txnTypes must be a keyreg transaction @@ -50,11 +50,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // at: axfer txn GroupIndex - int 3 + pushint 3 - dup gtxns TypeEnum - int axfer + pushint 4 // axfer == // argument 2 (at) for txnTypes must be a axfer transaction @@ -62,11 +62,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // af: afrz txn GroupIndex - int 4 + pushint 4 - dup gtxns TypeEnum - int afrz + pushint 5 // afrz == // argument 3 (af) for txnTypes must be a afrz transaction @@ -74,11 +74,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // ac: acfg txn GroupIndex - int 5 + pushint 5 - dup gtxns TypeEnum - int acfg + pushint 3 // acfg == // argument 4 (ac) for txnTypes must be a acfg transaction @@ -86,11 +86,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // a: appl txn GroupIndex - int 6 + pushint 6 - dup gtxns TypeEnum - int appl + pushint 6 // appl == // argument 5 (a) for txnTypes must be a appl transaction @@ -98,12 +98,12 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // t: txn txn GroupIndex - int 7 + pushint 7 - // execute txnTypes(txn,appl,acfg,afrz,axfer,keyreg,pay)void callsub txnTypes - int 1 + pushint 1 return // txnTypes(t: Txn, a: AppCallTxn, ac: AssetConfigTxn, af: AssetFreezeTxn, at: AssetTransferTxn, kr: KeyRegTxn, p: PayTxn): void @@ -148,11 +148,11 @@ txnTypes: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -160,7 +160,7 @@ txnTypes: err *call_NoOp: - method "txnTypes(txn,appl,acfg,afrz,axfer,keyreg,pay)void" + pushbytes 0x840337ef // method "txnTypes(txn,appl,acfg,afrz,axfer,keyreg,pay)void" txna ApplicationArgs 0 match *abi_route_txnTypes diff --git a/tests/contracts/artifacts/ABITestTxnTypes.arc32.json b/tests/contracts/artifacts/ABITestTxnTypes.arc32.json index 17beb132a..e521310de 100644 --- a/tests/contracts/artifacts/ABITestTxnTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestTxnTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCiphYmlfcm91dGVfdHhuVHlwZXM6CgkvLyBwOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChwKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8ga3I6IGtleXJlZwoJdHhuIEdyb3VwSW5kZXgKCWludCAyCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQga2V5cmVnCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGtyKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIGtleXJlZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYXQ6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDMKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCAyIChhdCkgZm9yIHR4blR5cGVzIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYWY6IGFmcnoKCXR4biBHcm91cEluZGV4CglpbnQgNAoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGFmcnoKCT09CgoJLy8gYXJndW1lbnQgMyAoYWYpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYWZyeiB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYWM6IGFjZmcKCXR4biBHcm91cEluZGV4CglpbnQgNQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGFjZmcKCT09CgoJLy8gYXJndW1lbnQgNCAoYWMpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYWNmZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYTogYXBwbAoJdHhuIEdyb3VwSW5kZXgKCWludCA2CgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCgkvLyBhcmd1bWVudCA1IChhKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIGFwcGwgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIHQ6IHR4bgoJdHhuIEdyb3VwSW5kZXgKCWludCA3CgktCgoJLy8gZXhlY3V0ZSB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCgljYWxsc3ViIHR4blR5cGVzCglpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlcyh0OiBUeG4sIGE6IEFwcENhbGxUeG4sIGFjOiBBc3NldENvbmZpZ1R4biwgYWY6IEFzc2V0RnJlZXplVHhuLCBhdDogQXNzZXRUcmFuc2ZlclR4biwga3I6IEtleVJlZ1R4biwgcDogUGF5VHhuKTogdm9pZAp0eG5UeXBlczoKCXByb3RvIDcgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjYKCS8vIGFzc2VydCh0LnNlbmRlciA9PT0gYS5zZW5kZXIpCglmcmFtZV9kaWcgLTEgLy8gdDogVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhOiBBcHBDYWxsVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzI3CgkvLyBhc3NlcnQoYWMuc2VuZGVyID09PSBhZi5zZW5kZXIpCglmcmFtZV9kaWcgLTMgLy8gYWM6IEFzc2V0Q29uZmlnVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtNCAvLyBhZjogQXNzZXRGcmVlemVUeG4KCWd0eG5zIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjgKCS8vIGFzc2VydChhdC5zZW5kZXIgPT09IGtyLnNlbmRlcikKCWZyYW1lX2RpZyAtNSAvLyBhdDogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTYgLy8ga3I6IEtleVJlZ1R4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyOQoJLy8gYXNzZXJ0KHAuc2VuZGVyID09PSB0LnNlbmRlcikKCWZyYW1lX2RpZyAtNyAvLyBwOiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHQ6IFR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHhuVHlwZXModHhuLGFwcGwsYWNmZyxhZnJ6LGF4ZmVyLGtleXJlZyxwYXkpdm9pZAoqYWJpX3JvdXRlX3R4blR5cGVzOgoJLy8gcDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHApIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBrcjoga2V5cmVnCgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCAyCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDIgLy8ga2V5cmVnCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGtyKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIGtleXJlZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYXQ6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCAzCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDQgLy8gYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMiAoYXQpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYXhmZXIgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGFmOiBhZnJ6Cgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCA0CgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDUgLy8gYWZyegoJPT0KCgkvLyBhcmd1bWVudCAzIChhZikgZm9yIHR4blR5cGVzIG11c3QgYmUgYSBhZnJ6IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBhYzogYWNmZwoJdHhuIEdyb3VwSW5kZXgKCXB1c2hpbnQgNQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCAzIC8vIGFjZmcKCT09CgoJLy8gYXJndW1lbnQgNCAoYWMpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYWNmZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYTogYXBwbAoJdHhuIEdyb3VwSW5kZXgKCXB1c2hpbnQgNgoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCA2IC8vIGFwcGwKCT09CgoJLy8gYXJndW1lbnQgNSAoYSkgZm9yIHR4blR5cGVzIG11c3QgYmUgYSBhcHBsIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyB0OiB0eG4KCXR4biBHcm91cEluZGV4CglwdXNoaW50IDcKCS0KCgkvLyBleGVjdXRlIHR4blR5cGVzKHR4bixhcHBsLGFjZmcsYWZyeixheGZlcixrZXlyZWcscGF5KXZvaWQKCWNhbGxzdWIgdHhuVHlwZXMKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlcyh0OiBUeG4sIGE6IEFwcENhbGxUeG4sIGFjOiBBc3NldENvbmZpZ1R4biwgYWY6IEFzc2V0RnJlZXplVHhuLCBhdDogQXNzZXRUcmFuc2ZlclR4biwga3I6IEtleVJlZ1R4biwgcDogUGF5VHhuKTogdm9pZAp0eG5UeXBlczoKCXByb3RvIDcgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjYKCS8vIGFzc2VydCh0LnNlbmRlciA9PT0gYS5zZW5kZXIpCglmcmFtZV9kaWcgLTEgLy8gdDogVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhOiBBcHBDYWxsVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzI3CgkvLyBhc3NlcnQoYWMuc2VuZGVyID09PSBhZi5zZW5kZXIpCglmcmFtZV9kaWcgLTMgLy8gYWM6IEFzc2V0Q29uZmlnVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtNCAvLyBhZjogQXNzZXRGcmVlemVUeG4KCWd0eG5zIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjgKCS8vIGFzc2VydChhdC5zZW5kZXIgPT09IGtyLnNlbmRlcikKCWZyYW1lX2RpZyAtNSAvLyBhdDogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTYgLy8ga3I6IEtleVJlZ1R4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyOQoJLy8gYXNzZXJ0KHAuc2VuZGVyID09PSB0LnNlbmRlcikKCWZyYW1lX2RpZyAtNyAvLyBwOiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHQ6IFR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg0MDMzN2VmIC8vIG1ldGhvZCAidHhuVHlwZXModHhuLGFwcGwsYWNmZyxhZnJ6LGF4ZmVyLGtleXJlZyxwYXkpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHhuVHlwZXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTxnTypes.arc56_draft.json b/tests/contracts/artifacts/ABITestTxnTypes.arc56_draft.json index 24d4ba1f2..84dfe4faa 100644 --- a/tests/contracts/artifacts/ABITestTxnTypes.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestTxnTypes.arc56_draft.json @@ -90,811 +90,76 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 716, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 716, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 716, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 716, - "pc": [ - 12 - ] - }, - { - "teal": 16, - "source": 716, - "pc": [ - 13 - ] - }, - { - "teal": 17, - "source": 716, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 18, - "source": 716, - "pc": [ - 16 - ] - }, - { - "teal": 19, - "source": 716, - "pc": [ - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42 - ] - }, - { - "teal": 23, - "source": 716, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 43 - ] - }, - { - "teal": 28, - "source": 724, - "pc": [ - 44, - 45 - ] - }, - { - "teal": 29, - "source": 724, - "pc": [ - 46 - ] - }, - { - "teal": 30, - "source": 724, - "pc": [ - 47 - ] - }, - { - "teal": 31, - "source": 724, - "pc": [ - 48 - ] - }, - { - "teal": 32, - "source": 724, - "pc": [ - 49, - 50 - ] - }, - { - "teal": 33, - "source": 724, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 724, - "pc": [ - 52 - ] - }, - { - "teal": 37, - "source": 724, - "errorMessage": "argument 0 (p) for txnTypes must be a pay transaction", - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 723, - "pc": [ - 54, - 55 - ] - }, - { - "teal": 41, - "source": 723, - "pc": [ - 56 - ] - }, - { - "teal": 42, - "source": 723, - "pc": [ - 57 - ] - }, - { - "teal": 43, - "source": 723, - "pc": [ - 58 - ] - }, - { - "teal": 44, - "source": 723, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 45, - "source": 723, - "pc": [ - 61 - ] - }, - { - "teal": 46, - "source": 723, - "pc": [ - 62 - ] - }, - { - "teal": 49, - "source": 723, - "errorMessage": "argument 1 (kr) for txnTypes must be a keyreg transaction", - "pc": [ - 63 - ] - }, - { - "teal": 52, - "source": 722, - "pc": [ - 64, - 65 - ] - }, - { - "teal": 53, - "source": 722, - "pc": [ - 66 - ] - }, - { - "teal": 54, - "source": 722, - "pc": [ - 67 - ] - }, - { - "teal": 55, - "source": 722, - "pc": [ - 68 - ] - }, - { - "teal": 56, - "source": 722, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 57, - "source": 722, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 58, - "source": 722, - "pc": [ - 73 - ] - }, - { - "teal": 61, - "source": 722, - "errorMessage": "argument 2 (at) for txnTypes must be a axfer transaction", - "pc": [ - 74 - ] - }, - { - "teal": 64, - "source": 721, - "pc": [ - 75, - 76 - ] - }, - { - "teal": 65, - "source": 721, - "pc": [ - 77, - 78 - ] - }, - { - "teal": 66, - "source": 721, - "pc": [ - 79 - ] - }, - { - "teal": 67, - "source": 721, - "pc": [ - 80 - ] - }, - { - "teal": 68, - "source": 721, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 69, - "source": 721, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 70, - "source": 721, - "pc": [ - 85 - ] - }, - { - "teal": 73, - "source": 721, - "errorMessage": "argument 3 (af) for txnTypes must be a afrz transaction", - "pc": [ - 86 - ] - }, - { - "teal": 76, - "source": 720, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 77, - "source": 720, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 78, - "source": 720, - "pc": [ - 91 - ] - }, - { - "teal": 79, - "source": 720, - "pc": [ - 92 - ] - }, - { - "teal": 80, - "source": 720, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 81, - "source": 720, - "pc": [ - 95 - ] - }, - { - "teal": 82, - "source": 720, - "pc": [ - 96 - ] - }, - { - "teal": 85, - "source": 720, - "errorMessage": "argument 4 (ac) for txnTypes must be a acfg transaction", - "pc": [ - 97 - ] - }, - { - "teal": 88, - "source": 719, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 89, - "source": 719, - "pc": [ - 100 - ] - }, - { - "teal": 90, - "source": 719, - "pc": [ - 101 - ] - }, - { - "teal": 91, - "source": 719, - "pc": [ - 102 - ] - }, - { - "teal": 92, - "source": 719, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 93, - "source": 719, - "pc": [ - 105 - ] - }, - { - "teal": 94, - "source": 719, - "pc": [ - 106 - ] - }, - { - "teal": 97, - "source": 719, - "errorMessage": "argument 5 (a) for txnTypes must be a appl transaction", - "pc": [ - 107 - ] - }, - { - "teal": 100, - "source": 718, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 101, - "source": 718, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 102, - "source": 718, - "pc": [ - 112 - ] - }, - { - "teal": 105, - "source": 717, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 106, - "source": 717, - "pc": [ - 116 - ] - }, - { - "teal": 107, - "source": 717, - "pc": [ - 117 - ] - }, - { - "teal": 111, - "source": 717, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 115, - "source": 726, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 116, - "source": 726, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 117, - "source": 726, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 118, - "source": 726, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 119, - "source": 726, - "pc": [ - 129 - ] - }, - { - "teal": 120, - "source": 726, - "pc": [ - 130 - ] - }, - { - "teal": 124, - "source": 727, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 125, - "source": 727, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 126, - "source": 727, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 127, - "source": 727, - "pc": [ - 137, - 138 - ] - }, - { - "teal": 128, - "source": 727, - "pc": [ - 139 - ] - }, - { - "teal": 129, - "source": 727, - "pc": [ - 140 - ] - }, - { - "teal": 133, - "source": 728, - "pc": [ - 141, - 142 - ] - }, - { - "teal": 134, - "source": 728, - "pc": [ - 143, - 144 - ] - }, - { - "teal": 135, - "source": 728, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 136, - "source": 728, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 137, - "source": 728, - "pc": [ - 149 - ] - }, - { - "teal": 138, - "source": 728, - "pc": [ - 150 - ] - }, - { - "teal": 142, - "source": 729, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 143, - "source": 729, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 144, - "source": 729, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 145, - "source": 729, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 146, - "source": 729, - "pc": [ - 159 - ] - }, - { - "teal": 147, - "source": 729, - "pc": [ - 160 - ] - }, - { - "teal": 148, - "source": 717, - "pc": [ - 161 - ] - }, - { - "teal": 151, - "source": 716, - "pc": [ - 162 - ] - }, - { - "teal": 152, - "source": 716, - "pc": [ - 163 - ] - }, - { - "teal": 155, - "source": 716, - "pc": [ - 164, - 165, - 166, - 167, - 168, - 169 - ] - }, - { - "teal": 156, - "source": 716, - "pc": [ - 170, - 171, - 172 - ] - }, - { - "teal": 157, - "source": 716, - "pc": [ - 173, - 174, - 175, - 176 - ] - }, - { - "teal": 160, - "source": 716, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 177 - ] - }, - { - "teal": 163, - "source": 716, - "pc": [ - 178, - 179, - 180, - 181, - 182, - 183 - ] - }, - { - "teal": 164, - "source": 716, - "pc": [ - 184, - 185, - 186 - ] - }, - { - "teal": 165, - "source": 716, - "pc": [ - 187, - 188, - 189, - 190 - ] - }, - { - "teal": 168, - "source": 716, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 191 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 48 + ], + "errorMessage": "argument 0 (p) for txnTypes must be a pay transaction" + }, + { + "pc": [ + 60 + ], + "errorMessage": "argument 1 (kr) for txnTypes must be a keyreg transaction" + }, + { + "pc": [ + 72 + ], + "errorMessage": "argument 2 (at) for txnTypes must be a axfer transaction" + }, + { + "pc": [ + 84 + ], + "errorMessage": "argument 3 (af) for txnTypes must be a afrz transaction" + }, + { + "pc": [ + 96 + ], + "errorMessage": "argument 4 (ac) for txnTypes must be a acfg transaction" + }, + { + "pc": [ + 108 + ], + "errorMessage": "argument 5 (a) for txnTypes must be a appl transaction" + }, + { + "pc": [ + 180 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 194 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCiphYmlfcm91dGVfdHhuVHlwZXM6CgkvLyBwOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChwKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIHBheSB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8ga3I6IGtleXJlZwoJdHhuIEdyb3VwSW5kZXgKCWludCAyCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQga2V5cmVnCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGtyKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIGtleXJlZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYXQ6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDMKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCgkvLyBhcmd1bWVudCAyIChhdCkgZm9yIHR4blR5cGVzIG11c3QgYmUgYSBheGZlciB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYWY6IGFmcnoKCXR4biBHcm91cEluZGV4CglpbnQgNAoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGFmcnoKCT09CgoJLy8gYXJndW1lbnQgMyAoYWYpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYWZyeiB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYWM6IGFjZmcKCXR4biBHcm91cEluZGV4CglpbnQgNQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGFjZmcKCT09CgoJLy8gYXJndW1lbnQgNCAoYWMpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYWNmZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYTogYXBwbAoJdHhuIEdyb3VwSW5kZXgKCWludCA2CgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCgkvLyBhcmd1bWVudCA1IChhKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIGFwcGwgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIHQ6IHR4bgoJdHhuIEdyb3VwSW5kZXgKCWludCA3CgktCgoJLy8gZXhlY3V0ZSB0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkCgljYWxsc3ViIHR4blR5cGVzCglpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlcyh0OiBUeG4sIGE6IEFwcENhbGxUeG4sIGFjOiBBc3NldENvbmZpZ1R4biwgYWY6IEFzc2V0RnJlZXplVHhuLCBhdDogQXNzZXRUcmFuc2ZlclR4biwga3I6IEtleVJlZ1R4biwgcDogUGF5VHhuKTogdm9pZAp0eG5UeXBlczoKCXByb3RvIDcgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjYKCS8vIGFzc2VydCh0LnNlbmRlciA9PT0gYS5zZW5kZXIpCglmcmFtZV9kaWcgLTEgLy8gdDogVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhOiBBcHBDYWxsVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzI3CgkvLyBhc3NlcnQoYWMuc2VuZGVyID09PSBhZi5zZW5kZXIpCglmcmFtZV9kaWcgLTMgLy8gYWM6IEFzc2V0Q29uZmlnVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtNCAvLyBhZjogQXNzZXRGcmVlemVUeG4KCWd0eG5zIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjgKCS8vIGFzc2VydChhdC5zZW5kZXIgPT09IGtyLnNlbmRlcikKCWZyYW1lX2RpZyAtNSAvLyBhdDogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTYgLy8ga3I6IEtleVJlZ1R4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyOQoJLy8gYXNzZXJ0KHAuc2VuZGVyID09PSB0LnNlbmRlcikKCWZyYW1lX2RpZyAtNyAvLyBwOiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHQ6IFR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0eG5UeXBlcyh0eG4sYXBwbCxhY2ZnLGFmcnosYXhmZXIsa2V5cmVnLHBheSl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHhuVHlwZXModHhuLGFwcGwsYWNmZyxhZnJ6LGF4ZmVyLGtleXJlZyxwYXkpdm9pZAoqYWJpX3JvdXRlX3R4blR5cGVzOgoJLy8gcDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHApIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBrcjoga2V5cmVnCgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCAyCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDIgLy8ga2V5cmVnCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGtyKSBmb3IgdHhuVHlwZXMgbXVzdCBiZSBhIGtleXJlZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYXQ6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCAzCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDQgLy8gYXhmZXIKCT09CgoJLy8gYXJndW1lbnQgMiAoYXQpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYXhmZXIgdHJhbnNhY3Rpb24KCWFzc2VydAoKCS8vIGFmOiBhZnJ6Cgl0eG4gR3JvdXBJbmRleAoJcHVzaGludCA0CgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglwdXNoaW50IDUgLy8gYWZyegoJPT0KCgkvLyBhcmd1bWVudCAzIChhZikgZm9yIHR4blR5cGVzIG11c3QgYmUgYSBhZnJ6IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBhYzogYWNmZwoJdHhuIEdyb3VwSW5kZXgKCXB1c2hpbnQgNQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCAzIC8vIGFjZmcKCT09CgoJLy8gYXJndW1lbnQgNCAoYWMpIGZvciB0eG5UeXBlcyBtdXN0IGJlIGEgYWNmZyB0cmFuc2FjdGlvbgoJYXNzZXJ0CgoJLy8gYTogYXBwbAoJdHhuIEdyb3VwSW5kZXgKCXB1c2hpbnQgNgoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJcHVzaGludCA2IC8vIGFwcGwKCT09CgoJLy8gYXJndW1lbnQgNSAoYSkgZm9yIHR4blR5cGVzIG11c3QgYmUgYSBhcHBsIHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyB0OiB0eG4KCXR4biBHcm91cEluZGV4CglwdXNoaW50IDcKCS0KCgkvLyBleGVjdXRlIHR4blR5cGVzKHR4bixhcHBsLGFjZmcsYWZyeixheGZlcixrZXlyZWcscGF5KXZvaWQKCWNhbGxzdWIgdHhuVHlwZXMKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlcyh0OiBUeG4sIGE6IEFwcENhbGxUeG4sIGFjOiBBc3NldENvbmZpZ1R4biwgYWY6IEFzc2V0RnJlZXplVHhuLCBhdDogQXNzZXRUcmFuc2ZlclR4biwga3I6IEtleVJlZ1R4biwgcDogUGF5VHhuKTogdm9pZAp0eG5UeXBlczoKCXByb3RvIDcgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjYKCS8vIGFzc2VydCh0LnNlbmRlciA9PT0gYS5zZW5kZXIpCglmcmFtZV9kaWcgLTEgLy8gdDogVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtMiAvLyBhOiBBcHBDYWxsVHhuCglndHhucyBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzI3CgkvLyBhc3NlcnQoYWMuc2VuZGVyID09PSBhZi5zZW5kZXIpCglmcmFtZV9kaWcgLTMgLy8gYWM6IEFzc2V0Q29uZmlnVHhuCglndHhucyBTZW5kZXIKCWZyYW1lX2RpZyAtNCAvLyBhZjogQXNzZXRGcmVlemVUeG4KCWd0eG5zIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MjgKCS8vIGFzc2VydChhdC5zZW5kZXIgPT09IGtyLnNlbmRlcikKCWZyYW1lX2RpZyAtNSAvLyBhdDogQXNzZXRUcmFuc2ZlclR4bgoJZ3R4bnMgU2VuZGVyCglmcmFtZV9kaWcgLTYgLy8ga3I6IEtleVJlZ1R4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcyOQoJLy8gYXNzZXJ0KHAuc2VuZGVyID09PSB0LnNlbmRlcikKCWZyYW1lX2RpZyAtNyAvLyBwOiBQYXlUeG4KCWd0eG5zIFNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHQ6IFR4bgoJZ3R4bnMgU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDg0MDMzN2VmIC8vIG1ldGhvZCAidHhuVHlwZXModHhuLGFwcGwsYWNmZyxhZnJ6LGF4ZmVyLGtleXJlZyxwYXkpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHhuVHlwZXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAGAQYCAwQFMRgUIwsxGQiNDACHAAAAAAAAAAAAAAB5AAAAAAAAAAAAAAAxFiIJSTgQIhJEMRYkCUk4ECQSRDEWJQlJOBAhBBJEMRYhBAlJOBAhBRJEMRYhBQlJOBAlEkQxFiMJSTgQIxJEMRaBBwmIAAIiQ4oHAIv/OACL/jgAEkSL/TgAi/w4ABJEi/s4AIv6OAASRIv5OACL/zgAEkSJIkOABLhEezY2GgCOAf/xAIAEhAM37zYaAI4B/20A", + "approval": "CjEYFIEGCzEZCI0MAJEAAAAAAAAAAAAAAIMAAAAAAAAAAAAAADEWgQEJSTgQgQESRDEWgQIJSTgQgQISRDEWgQMJSTgQgQQSRDEWgQQJSTgQgQUSRDEWgQUJSTgQgQMSRDEWgQYJSTgQgQYSRDEWgQcJiAADgQFDigcAi/84AIv+OAASRIv9OACL/DgAEkSL+zgAi/o4ABJEi/k4AIv/OAASRImBAUOABLhEezY2GgCOAf/wAIAEhAM37zYaAI4B/2MA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestTypedConst.approval.teal b/tests/contracts/artifacts/ABITestTypedConst.approval.teal index 2f05eae29..753694601 100644 --- a/tests/contracts/artifacts/ABITestTypedConst.approval.teal +++ b/tests/contracts/artifacts/ABITestTypedConst.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_maxPools: // execute maxPools()void callsub maxPools - int 1 + pushint 1 return // maxPools(): void @@ -34,27 +34,27 @@ maxPools: proto 0 0 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1291 // uint16Var: uint16 = 256 - int 256 + pushint 256 frame_bury 0 // uint16Var: uint16 // tests/contracts/abi.algo.ts:1292 // assert(uint16Var === UINT16_CONST) - int 256 // uint16Var: uint16 - int 256 + pushint 256 // uint16Var: uint16 + pushint 256 == assert retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -62,7 +62,7 @@ maxPools: err *call_NoOp: - method "maxPools()void" + pushbytes 0xab53dbba // method "maxPools()void" txna ApplicationArgs 0 match *abi_route_maxPools diff --git a/tests/contracts/artifacts/ABITestTypedConst.arc32.json b/tests/contracts/artifacts/ABITestTypedConst.arc32.json index 6899615ad..71679604a 100644 --- a/tests/contracts/artifacts/ABITestTypedConst.arc32.json +++ b/tests/contracts/artifacts/ABITestTypedConst.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtYXhQb29scygpdm9pZAoqYWJpX3JvdXRlX21heFBvb2xzOgoJLy8gZXhlY3V0ZSBtYXhQb29scygpdm9pZAoJY2FsbHN1YiBtYXhQb29scwoJaW50IDEKCXJldHVybgoKLy8gbWF4UG9vbHMoKTogdm9pZAptYXhQb29sczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyOTEKCS8vIHVpbnQxNlZhcjogdWludDE2ID0gMjU2CglpbnQgMjU2CglmcmFtZV9idXJ5IDAgLy8gdWludDE2VmFyOiB1aW50MTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI5MgoJLy8gYXNzZXJ0KHVpbnQxNlZhciA9PT0gVUlOVDE2X0NPTlNUKQoJaW50IDI1NiAvLyB1aW50MTZWYXI6IHVpbnQxNgoJaW50IDI1NgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibWF4UG9vbHMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21heFBvb2xzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbWF4UG9vbHMoKXZvaWQKKmFiaV9yb3V0ZV9tYXhQb29sczoKCS8vIGV4ZWN1dGUgbWF4UG9vbHMoKXZvaWQKCWNhbGxzdWIgbWF4UG9vbHMKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtYXhQb29scygpOiB2b2lkCm1heFBvb2xzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjkxCgkvLyB1aW50MTZWYXI6IHVpbnQxNiA9IDI1NgoJcHVzaGludCAyNTYKCWZyYW1lX2J1cnkgMCAvLyB1aW50MTZWYXI6IHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjkyCgkvLyBhc3NlcnQodWludDE2VmFyID09PSBVSU5UMTZfQ09OU1QpCglwdXNoaW50IDI1NiAvLyB1aW50MTZWYXI6IHVpbnQxNgoJcHVzaGludCAyNTYKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YWI1M2RiYmEgLy8gbWV0aG9kICJtYXhQb29scygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWF4UG9vbHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTypedConst.arc56_draft.json b/tests/contracts/artifacts/ABITestTypedConst.arc56_draft.json index e74670a0c..a25b93cc7 100644 --- a/tests/contracts/artifacts/ABITestTypedConst.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestTypedConst.arc56_draft.json @@ -61,295 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1289, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 1289, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 1289, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 1289, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 1289, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 1289, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 1289, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 1289, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 1289, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 1290, - "pc": [ - 42, - 43, - 44 - ] - }, - { - "teal": 29, - "source": 1290, - "pc": [ - 45 - ] - }, - { - "teal": 30, - "source": 1290, - "pc": [ - 46 - ] - }, - { - "teal": 34, - "source": 1290, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 37, - "source": 1290, - "pc": [ - 50, - 51 - ] - }, - { - "teal": 41, - "source": 1291, - "pc": [ - 52 - ] - }, - { - "teal": 42, - "source": 1291, - "pc": [ - 53, - 54 - ] - }, - { - "teal": 46, - "source": 1292, - "pc": [ - 55 - ] - }, - { - "teal": 47, - "source": 1292, - "pc": [ - 56 - ] - }, - { - "teal": 48, - "source": 1292, - "pc": [ - 57 - ] - }, - { - "teal": 49, - "source": 1292, - "pc": [ - 58 - ] - }, - { - "teal": 50, - "source": 1290, - "pc": [ - 59 - ] - }, - { - "teal": 53, - "source": 1289, - "pc": [ - 60 - ] - }, - { - "teal": 54, - "source": 1289, - "pc": [ - 61 - ] - }, - { - "teal": 57, - "source": 1289, - "pc": [ - 62, - 63, - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 58, - "source": 1289, - "pc": [ - 68, - 69, - 70 - ] - }, - { - "teal": 59, - "source": 1289, - "pc": [ - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 62, - "source": 1289, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 75 - ] - }, - { - "teal": 65, - "source": 1289, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 66, - "source": 1289, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 67, - "source": 1289, - "pc": [ - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 70, - "source": 1289, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 89 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 78 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 92 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBtYXhQb29scygpdm9pZAoqYWJpX3JvdXRlX21heFBvb2xzOgoJLy8gZXhlY3V0ZSBtYXhQb29scygpdm9pZAoJY2FsbHN1YiBtYXhQb29scwoJaW50IDEKCXJldHVybgoKLy8gbWF4UG9vbHMoKTogdm9pZAptYXhQb29sczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyOTEKCS8vIHVpbnQxNlZhcjogdWludDE2ID0gMjU2CglpbnQgMjU2CglmcmFtZV9idXJ5IDAgLy8gdWludDE2VmFyOiB1aW50MTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI5MgoJLy8gYXNzZXJ0KHVpbnQxNlZhciA9PT0gVUlOVDE2X0NPTlNUKQoJaW50IDI1NiAvLyB1aW50MTZWYXI6IHVpbnQxNgoJaW50IDI1NgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAibWF4UG9vbHMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX21heFBvb2xzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbWF4UG9vbHMoKXZvaWQKKmFiaV9yb3V0ZV9tYXhQb29sczoKCS8vIGV4ZWN1dGUgbWF4UG9vbHMoKXZvaWQKCWNhbGxzdWIgbWF4UG9vbHMKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBtYXhQb29scygpOiB2b2lkCm1heFBvb2xzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjkxCgkvLyB1aW50MTZWYXI6IHVpbnQxNiA9IDI1NgoJcHVzaGludCAyNTYKCWZyYW1lX2J1cnkgMCAvLyB1aW50MTZWYXI6IHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjkyCgkvLyBhc3NlcnQodWludDE2VmFyID09PSBVSU5UMTZfQ09OU1QpCglwdXNoaW50IDI1NiAvLyB1aW50MTZWYXI6IHVpbnQxNgoJcHVzaGludCAyNTYKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YWI1M2RiYmEgLy8gbWV0aG9kICJtYXhQb29scygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbWF4UG9vbHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACgAIBMRgUgQYLMRkIjQwAIwAAAAAAAAAAAAAAFQAAAAAAAAAAAAAAiAACI0OKAACAACKMACIiEkSJI0OABLhEezY2GgCOAf/xAIAEq1PbujYaAI4B/9EA", + "approval": "CjEYFIEGCzEZCI0MACsAAAAAAAAAAAAAAB0AAAAAAAAAAAAAAIgAA4EBQ4oAAIAAgYACjACBgAKBgAISRImBAUOABLhEezY2GgCOAf/wAIAEq1PbujYaAI4B/8kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal b/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal index 9a49c35f7..5f269ffb9 100644 --- a/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal +++ b/tests/contracts/artifacts/ABITestTypedVarFromStorage.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // typedVarFromStorage(uint32)byte[32] *abi_route_typedVarFromStorage: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // key: uint32 txna ApplicationArgs 1 dup len - int 4 + pushint 4 == // argument 0 (key) for typedVarFromStorage must be a uint32 @@ -42,7 +42,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM callsub typedVarFromStorage concat log - int 1 + pushint 1 return // typedVarFromStorage(key: uint<32>): bytes32 @@ -50,7 +50,7 @@ typedVarFromStorage: proto 1 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1300 // value: bytes32 = this.boxMapTest(key).value @@ -72,11 +72,11 @@ typedVarFromStorage: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -84,7 +84,7 @@ typedVarFromStorage: err *call_NoOp: - method "typedVarFromStorage(uint32)byte[32]" + pushbytes 0x4c529f55 // method "typedVarFromStorage(uint32)byte[32]" txna ApplicationArgs 0 match *abi_route_typedVarFromStorage diff --git a/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json b/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json index 431ba01b8..d9780bb33 100644 --- a/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json +++ b/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXQoqYWJpX3JvdXRlX3R5cGVkVmFyRnJvbVN0b3JhZ2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGtleTogdWludDMyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDQKCT09CgoJLy8gYXJndW1lbnQgMCAoa2V5KSBmb3IgdHlwZWRWYXJGcm9tU3RvcmFnZSBtdXN0IGJlIGEgdWludDMyCglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHR5cGVkVmFyRnJvbVN0b3JhZ2UodWludDMyKWJ5dGVbMzJdCgljYWxsc3ViIHR5cGVkVmFyRnJvbVN0b3JhZ2UKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKGtleTogdWludDwzMj4pOiBieXRlczMyCnR5cGVkVmFyRnJvbVN0b3JhZ2U6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzAwCgkvLyB2YWx1ZTogYnl0ZXMzMiA9IHRoaXMuYm94TWFwVGVzdChrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8ga2V5OiB1aW50PDMyPgoJaXRvYgoJZXh0cmFjdCA0IDQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsdWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwMgoJLy8gcmV0dXJuIHZhbHVlOwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3ZhbHVlCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveE1hcFRlc3Qoa2V5KS52YWx1ZQoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZWRWYXJGcm9tU3RvcmFnZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHlwZWRWYXJGcm9tU3RvcmFnZSh1aW50MzIpYnl0ZVszMl0KKmFiaV9yb3V0ZV90eXBlZFZhckZyb21TdG9yYWdlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGtleTogdWludDMyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCA0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGtleSkgZm9yIHR5cGVkVmFyRnJvbVN0b3JhZ2UgbXVzdCBiZSBhIHVpbnQzMgoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXQoJY2FsbHN1YiB0eXBlZFZhckZyb21TdG9yYWdlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHR5cGVkVmFyRnJvbVN0b3JhZ2Uoa2V5OiB1aW50PDMyPik6IGJ5dGVzMzIKdHlwZWRWYXJGcm9tU3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwMAoJLy8gdmFsdWU6IGJ5dGVzMzIgPSB0aGlzLmJveE1hcFRlc3Qoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogdWludDwzMj4KCWl0b2IKCWV4dHJhY3QgNCA0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3ZhbHVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMDIKCS8vIHJldHVybiB2YWx1ZTsKCWZyYW1lX2RpZyAwIC8vIHN0b3JhZ2Uga2V5Ly92YWx1ZQoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hNYXBUZXN0KGtleSkudmFsdWUKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0YzUyOWY1NSAvLyBtZXRob2QgInR5cGVkVmFyRnJvbVN0b3JhZ2UodWludDMyKWJ5dGVbMzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eXBlZFZhckZyb21TdG9yYWdlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc56_draft.json b/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc56_draft.json index 7ba63cfd8..1d2485b30 100644 --- a/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestTypedVarFromStorage.arc56_draft.json @@ -71,392 +71,52 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1296, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1296, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1296, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1296, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1296, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1296, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1296, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1296, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1296, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1299, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1299, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1299, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1299, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1299, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 1299, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 1299, - "errorMessage": "argument 0 (key) for typedVarFromStorage must be a uint32", - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 1299, - "pc": [ - 55 - ] - }, - { - "teal": 42, - "source": 1299, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 43, - "source": 1299, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1299, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1299, - "pc": [ - 61 - ] - }, - { - "teal": 46, - "source": 1299, - "pc": [ - 62 - ] - }, - { - "teal": 50, - "source": 1299, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 53, - "source": 1299, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 57, - "source": 1300, - "pc": [ - 68, - 69 - ] - }, - { - "teal": 58, - "source": 1300, - "pc": [ - 70 - ] - }, - { - "teal": 59, - "source": 1300, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 60, - "source": 1300, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 64, - "source": 1300, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 65, - "source": 1300, - "pc": [ - 78 - ] - }, - { - "teal": 68, - "source": 1300, - "errorMessage": "box value does not exist: this.boxMapTest(key).value", - "pc": [ - 79 - ] - }, - { - "teal": 71, - "source": 1299, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 72, - "source": 1299, - "pc": [ - 82 - ] - }, - { - "teal": 75, - "source": 1296, - "pc": [ - 83 - ] - }, - { - "teal": 76, - "source": 1296, - "pc": [ - 84 - ] - }, - { - "teal": 79, - "source": 1296, - "pc": [ - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 80, - "source": 1296, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 81, - "source": 1296, - "pc": [ - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 84, - "source": 1296, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 98 - ] - }, - { - "teal": 87, - "source": 1296, - "pc": [ - 99, - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 88, - "source": 1296, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 89, - "source": 1296, - "pc": [ - 108, - 109, - 110, - 111 - ] - }, - { - "teal": 92, - "source": 1296, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 112 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (key) for typedVarFromStorage must be a uint32" + }, + { + "pc": [ + 77 + ], + "errorMessage": "box value does not exist: this.boxMapTest(key).value" + }, + { + "pc": [ + 97 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 111 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXQoqYWJpX3JvdXRlX3R5cGVkVmFyRnJvbVN0b3JhZ2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGtleTogdWludDMyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDQKCT09CgoJLy8gYXJndW1lbnQgMCAoa2V5KSBmb3IgdHlwZWRWYXJGcm9tU3RvcmFnZSBtdXN0IGJlIGEgdWludDMyCglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHR5cGVkVmFyRnJvbVN0b3JhZ2UodWludDMyKWJ5dGVbMzJdCgljYWxsc3ViIHR5cGVkVmFyRnJvbVN0b3JhZ2UKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB0eXBlZFZhckZyb21TdG9yYWdlKGtleTogdWludDwzMj4pOiBieXRlczMyCnR5cGVkVmFyRnJvbVN0b3JhZ2U6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMzAwCgkvLyB2YWx1ZTogYnl0ZXMzMiA9IHRoaXMuYm94TWFwVGVzdChrZXkpLnZhbHVlCglmcmFtZV9kaWcgLTEgLy8ga2V5OiB1aW50PDMyPgoJaXRvYgoJZXh0cmFjdCA0IDQKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdmFsdWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwMgoJLy8gcmV0dXJuIHZhbHVlOwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3ZhbHVlCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveE1hcFRlc3Qoa2V5KS52YWx1ZQoJYXNzZXJ0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdHlwZWRWYXJGcm9tU3RvcmFnZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdHlwZWRWYXJGcm9tU3RvcmFnZSh1aW50MzIpYnl0ZVszMl0KKmFiaV9yb3V0ZV90eXBlZFZhckZyb21TdG9yYWdlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGtleTogdWludDMyCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCA0Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGtleSkgZm9yIHR5cGVkVmFyRnJvbVN0b3JhZ2UgbXVzdCBiZSBhIHVpbnQzMgoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB0eXBlZFZhckZyb21TdG9yYWdlKHVpbnQzMilieXRlWzMyXQoJY2FsbHN1YiB0eXBlZFZhckZyb21TdG9yYWdlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHR5cGVkVmFyRnJvbVN0b3JhZ2Uoa2V5OiB1aW50PDMyPik6IGJ5dGVzMzIKdHlwZWRWYXJGcm9tU3RvcmFnZToKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglwdXNoYnl0ZXMgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMwMAoJLy8gdmFsdWU6IGJ5dGVzMzIgPSB0aGlzLmJveE1hcFRlc3Qoa2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIGtleTogdWludDwzMj4KCWl0b2IKCWV4dHJhY3QgNCA0CglmcmFtZV9idXJ5IDAgLy8gc3RvcmFnZSBrZXkvL3ZhbHVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEzMDIKCS8vIHJldHVybiB2YWx1ZTsKCWZyYW1lX2RpZyAwIC8vIHN0b3JhZ2Uga2V5Ly92YWx1ZQoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hNYXBUZXN0KGtleSkudmFsdWUKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0YzUyOWY1NSAvLyBtZXRob2QgInR5cGVkVmFyRnJvbVN0b3JhZ2UodWludDMyKWJ5dGVbMzJdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eXBlZFZhckZyb21TdG9yYWdlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADwAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIAEFR98dTYaAUkVgQQSRBeIAARQsCJDigEBgACL/xZXBASMAIsAvkSMAIkiQ4AEuER7NjYaAI4B//EAgARMUp9VNhoAjgH/uAA=", + "approval": "CjEYFIEGCzEZCI0MAD4AAAAAAAAAAAAAADAAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQQSRBeIAAVQsIEBQ4oBAYAAi/8WVwQEjACLAL5EjACJgQFDgAS4RHs2NhoAjgH/8ACABExSn1U2GgCOAf+2AA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUint64Casting.approval.teal b/tests/contracts/artifacts/ABITestUint64Casting.approval.teal index 29b3fbbf9..b8f2513f5 100644 --- a/tests/contracts/artifacts/ABITestUint64Casting.approval.teal +++ b/tests/contracts/artifacts/ABITestUint64Casting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // uint64Casting(uint256)uint64 *abi_route_uint64Casting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: uint256 txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 0 (a) for uint64Casting must be a uint256 @@ -42,7 +42,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob concat log - int 1 + pushint 1 return // uint64Casting(a: uint256): uint64 @@ -54,7 +54,7 @@ uint64Casting: frame_dig -1 // a: uint256 dup bitlen - int 64 + pushint 64 <= // a as uint64 overflowed 64 bits @@ -64,11 +64,11 @@ uint64Casting: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -76,7 +76,7 @@ uint64Casting: err *call_NoOp: - method "uint64Casting(uint256)uint64" + pushbytes 0xfac99706 // method "uint64Casting(uint256)uint64" txna ApplicationArgs 0 match *abi_route_uint64Casting diff --git a/tests/contracts/artifacts/ABITestUint64Casting.arc32.json b/tests/contracts/artifacts/ABITestUint64Casting.arc32.json index c22c608d5..9a7597dd2 100644 --- a/tests/contracts/artifacts/ABITestUint64Casting.arc32.json +++ b/tests/contracts/artifacts/ABITestUint64Casting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CiphYmlfcm91dGVfdWludDY0Q2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdWludDY0Q2FzdGluZyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CgljYWxsc3ViIHVpbnQ2NENhc3RpbmcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50NjRDYXN0aW5nKGE6IHVpbnQyNTYpOiB1aW50NjQKdWludDY0Q2FzdGluZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTk1CgkvLyByZXR1cm4gYSBhcyB1aW50NjQ7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZHVwCgliaXRsZW4KCWludCA2NAoJPD0KCgkvLyBhIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJZXh0cmFjdCAyNCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91aW50NjRDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NAoqYWJpX3JvdXRlX3VpbnQ2NENhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHVpbnQ2NENhc3RpbmcgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NAoJY2FsbHN1YiB1aW50NjRDYXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVpbnQ2NENhc3RpbmcoYTogdWludDI1Nik6IHVpbnQ2NAp1aW50NjRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExOTUKCS8vIHJldHVybiBhIGFzIHVpbnQ2NDsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglkdXAKCWJpdGxlbgoJcHVzaGludCA2NAoJPD0KCgkvLyBhIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJZXh0cmFjdCAyNCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGZhYzk5NzA2IC8vIG1ldGhvZCAidWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdWludDY0Q2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUint64Casting.arc56_draft.json b/tests/contracts/artifacts/ABITestUint64Casting.arc56_draft.json index d8f6d73a9..1b1f6595f 100644 --- a/tests/contracts/artifacts/ABITestUint64Casting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUint64Casting.arc56_draft.json @@ -66,382 +66,52 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1193, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1193, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1193, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1193, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1193, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1193, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1193, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1193, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1193, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1194, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1194, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1194, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1194, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1194, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 1194, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 1194, - "errorMessage": "argument 0 (a) for uint64Casting must be a uint256", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 1194, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 1194, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 1194, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1194, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1194, - "pc": [ - 61 - ] - }, - { - "teal": 46, - "source": 1194, - "pc": [ - 62 - ] - }, - { - "teal": 50, - "source": 1194, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 54, - "source": 1195, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 55, - "source": 1195, - "pc": [ - 68 - ] - }, - { - "teal": 56, - "source": 1195, - "pc": [ - 69 - ] - }, - { - "teal": 57, - "source": 1195, - "pc": [ - 70, - 71 - ] - }, - { - "teal": 58, - "source": 1195, - "pc": [ - 72 - ] - }, - { - "teal": 61, - "source": 1195, - "errorMessage": "a as uint64 overflowed 64 bits", - "pc": [ - 73 - ] - }, - { - "teal": 62, - "source": 1195, - "pc": [ - 74, - 75, - 76 - ] - }, - { - "teal": 63, - "source": 1195, - "pc": [ - 77 - ] - }, - { - "teal": 64, - "source": 1194, - "pc": [ - 78 - ] - }, - { - "teal": 67, - "source": 1193, - "pc": [ - 79 - ] - }, - { - "teal": 68, - "source": 1193, - "pc": [ - 80 - ] - }, - { - "teal": 71, - "source": 1193, - "pc": [ - 81, - 82, - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 72, - "source": 1193, - "pc": [ - 87, - 88, - 89 - ] - }, - { - "teal": 73, - "source": 1193, - "pc": [ - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 76, - "source": 1193, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 94 - ] - }, - { - "teal": 79, - "source": 1193, - "pc": [ - 95, - 96, - 97, - 98, - 99, - 100 - ] - }, - { - "teal": 80, - "source": 1193, - "pc": [ - 101, - 102, - 103 - ] - }, - { - "teal": 81, - "source": 1193, - "pc": [ - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 84, - "source": 1193, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 108 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for uint64Casting must be a uint256" + }, + { + "pc": [ + 71 + ], + "errorMessage": "a as uint64 overflowed 64 bits" + }, + { + "pc": [ + 93 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 107 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CiphYmlfcm91dGVfdWludDY0Q2FzdGluZzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdWludDY0Q2FzdGluZyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0CgljYWxsc3ViIHVpbnQ2NENhc3RpbmcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50NjRDYXN0aW5nKGE6IHVpbnQyNTYpOiB1aW50NjQKdWludDY0Q2FzdGluZzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTk1CgkvLyByZXR1cm4gYSBhcyB1aW50NjQ7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZHVwCgliaXRsZW4KCWludCA2NAoJPD0KCgkvLyBhIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJZXh0cmFjdCAyNCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1aW50NjRDYXN0aW5nKHVpbnQyNTYpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91aW50NjRDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NAoqYWJpX3JvdXRlX3VpbnQ2NENhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHVpbnQ2NENhc3RpbmcgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NAoJY2FsbHN1YiB1aW50NjRDYXN0aW5nCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVpbnQ2NENhc3RpbmcoYTogdWludDI1Nik6IHVpbnQ2NAp1aW50NjRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExOTUKCS8vIHJldHVybiBhIGFzIHVpbnQ2NDsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglkdXAKCWJpdGxlbgoJcHVzaGludCA2NAoJPD0KCgkvLyBhIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJZXh0cmFjdCAyNCA4CglidG9pCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGZhYzk5NzA2IC8vIG1ldGhvZCAidWludDY0Q2FzdGluZyh1aW50MjU2KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdWludDY0Q2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MADgAAAAAAAAAAAAAACoAAAAAAAAAAAAAAIAEFR98dTYaAUkVgSASRIgABRZQsCJDigEBi/9Jk4FADkRXGAgXiSJDgAS4RHs2NhoAjgH/8QCABPrJlwY2GgCOAf+8AA==", + "approval": "CjEYFIEGCzEZCI0MADoAAAAAAAAAAAAAACwAAAAAAAAAAAAAAIAEFR98dTYaAUkVgSASRIgABhZQsIEBQ4oBAYv/SZOBQA5EVxgIF4mBAUOABLhEezY2GgCOAf/wAIAE+smXBjYaAI4B/7oA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUintCasting.approval.teal b/tests/contracts/artifacts/ABITestUintCasting.approval.teal index 44d5a46cb..d06d04e04 100644 --- a/tests/contracts/artifacts/ABITestUintCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestUintCasting.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // uintCasting(uint8)uint256 *abi_route_uintCasting: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // a: uint8 txna ApplicationArgs 1 dup len - int 1 + pushint 1 == // argument 0 (a) for uintCasting must be a uint8 @@ -42,23 +42,23 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM callsub uintCasting dup bitlen - int 256 + pushint 256 <= // uintCasting return value overflowed 256 bits assert - byte 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + pushbytes 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF b& dup len dup - int 32 + pushint 32 - swap substring3 concat log - int 1 + pushint 1 return // uintCasting(a: uint<8>): uint256 @@ -72,11 +72,11 @@ uintCasting: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -84,7 +84,7 @@ uintCasting: err *call_NoOp: - method "uintCasting(uint8)uint256" + pushbytes 0xf52bf866 // method "uintCasting(uint8)uint256" txna ApplicationArgs 0 match *abi_route_uintCasting diff --git a/tests/contracts/artifacts/ABITestUintCasting.arc32.json b/tests/contracts/artifacts/ABITestUintCasting.arc32.json index df77d7585..8bc11047e 100644 --- a/tests/contracts/artifacts/ABITestUintCasting.arc32.json +++ b/tests/contracts/artifacts/ABITestUintCasting.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2CiphYmlfcm91dGVfdWludENhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHVpbnRDYXN0aW5nIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2CgljYWxsc3ViIHVpbnRDYXN0aW5nCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1aW50Q2FzdGluZyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnRDYXN0aW5nKGE6IHVpbnQ8OD4pOiB1aW50MjU2CnVpbnRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODkKCS8vIHJldHVybiA8dWludDI1Nj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVpbnRDYXN0aW5nKHVpbnQ4KXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VpbnRDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdWludENhc3RpbmcodWludDgpdWludDI1NgoqYWJpX3JvdXRlX3VpbnRDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB1aW50Q2FzdGluZyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludENhc3RpbmcodWludDgpdWludDI1NgoJY2FsbHN1YiB1aW50Q2FzdGluZwoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIHVpbnRDYXN0aW5nIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCXB1c2hieXRlcyAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglwdXNoaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVpbnRDYXN0aW5nKGE6IHVpbnQ8OD4pOiB1aW50MjU2CnVpbnRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODkKCS8vIHJldHVybiA8dWludDI1Nj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjUyYmY4NjYgLy8gbWV0aG9kICJ1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91aW50Q2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUintCasting.arc56_draft.json b/tests/contracts/artifacts/ABITestUintCasting.arc56_draft.json index ca37a0da6..4042ad133 100644 --- a/tests/contracts/artifacts/ABITestUintCasting.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUintCasting.arc56_draft.json @@ -66,470 +66,52 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1187, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1187, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1187, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1187, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1187, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1187, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1187, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1187, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1187, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1188, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1188, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1188, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1188, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1188, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1188, - "pc": [ - 52 - ] - }, - { - "teal": 38, - "source": 1188, - "errorMessage": "argument 0 (a) for uintCasting must be a uint8", - "pc": [ - 53 - ] - }, - { - "teal": 39, - "source": 1188, - "pc": [ - 54 - ] - }, - { - "teal": 42, - "source": 1188, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 43, - "source": 1188, - "pc": [ - 58 - ] - }, - { - "teal": 44, - "source": 1188, - "pc": [ - 59 - ] - }, - { - "teal": 45, - "source": 1188, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 46, - "source": 1188, - "pc": [ - 63 - ] - }, - { - "teal": 49, - "source": 1188, - "errorMessage": "uintCasting return value overflowed 256 bits", - "pc": [ - 64 - ] - }, - { - "teal": 50, - "source": 1188, - "pc": [ - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 51, - "source": 1188, - "pc": [ - 99 - ] - }, - { - "teal": 52, - "source": 1188, - "pc": [ - 100 - ] - }, - { - "teal": 53, - "source": 1188, - "pc": [ - 101 - ] - }, - { - "teal": 54, - "source": 1188, - "pc": [ - 102 - ] - }, - { - "teal": 55, - "source": 1188, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 56, - "source": 1188, - "pc": [ - 105 - ] - }, - { - "teal": 57, - "source": 1188, - "pc": [ - 106 - ] - }, - { - "teal": 58, - "source": 1188, - "pc": [ - 107 - ] - }, - { - "teal": 59, - "source": 1188, - "pc": [ - 108 - ] - }, - { - "teal": 60, - "source": 1188, - "pc": [ - 109 - ] - }, - { - "teal": 61, - "source": 1188, - "pc": [ - 110 - ] - }, - { - "teal": 62, - "source": 1188, - "pc": [ - 111 - ] - }, - { - "teal": 66, - "source": 1188, - "pc": [ - 112, - 113, - 114 - ] - }, - { - "teal": 70, - "source": 1189, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 71, - "source": 1189, - "pc": [ - 117 - ] - }, - { - "teal": 72, - "source": 1188, - "pc": [ - 118 - ] - }, - { - "teal": 75, - "source": 1187, - "pc": [ - 119 - ] - }, - { - "teal": 76, - "source": 1187, - "pc": [ - 120 - ] - }, - { - "teal": 79, - "source": 1187, - "pc": [ - 121, - 122, - 123, - 124, - 125, - 126 - ] - }, - { - "teal": 80, - "source": 1187, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 81, - "source": 1187, - "pc": [ - 130, - 131, - 132, - 133 - ] - }, - { - "teal": 84, - "source": 1187, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 134 - ] - }, - { - "teal": 87, - "source": 1187, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140 - ] - }, - { - "teal": 88, - "source": 1187, - "pc": [ - 141, - 142, - 143 - ] - }, - { - "teal": 89, - "source": 1187, - "pc": [ - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 92, - "source": 1187, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 148 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (a) for uintCasting must be a uint8" + }, + { + "pc": [ + 62 + ], + "errorMessage": "uintCasting return value overflowed 256 bits" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2CiphYmlfcm91dGVfdWludENhc3Rpbmc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHVpbnRDYXN0aW5nIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2CgljYWxsc3ViIHVpbnRDYXN0aW5nCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1aW50Q2FzdGluZyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVpbnRDYXN0aW5nKGE6IHVpbnQ8OD4pOiB1aW50MjU2CnVpbnRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODkKCS8vIHJldHVybiA8dWludDI1Nj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVpbnRDYXN0aW5nKHVpbnQ4KXVpbnQyNTYiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VpbnRDYXN0aW5nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdWludENhc3RpbmcodWludDgpdWludDI1NgoqYWJpX3JvdXRlX3VpbnRDYXN0aW5nOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB1aW50Q2FzdGluZyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludENhc3RpbmcodWludDgpdWludDI1NgoJY2FsbHN1YiB1aW50Q2FzdGluZwoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIHVpbnRDYXN0aW5nIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCXB1c2hieXRlcyAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglwdXNoaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVpbnRDYXN0aW5nKGE6IHVpbnQ8OD4pOiB1aW50MjU2CnVpbnRDYXN0aW5nOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExODkKCS8vIHJldHVybiA8dWludDI1Nj5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWl0b2IKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZjUyYmY4NjYgLy8gbWV0aG9kICJ1aW50Q2FzdGluZyh1aW50OCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91aW50Q2FzdGluZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAGAAAAAAAAAAAAAAAFIAAAAAAAAAAAAAAIAEFR98dTYaAUkVIhJEF4gANkmTgYACDkSAIP//////////////////////////////////////////rEkVSYEgCUxSULAiQ4oBAYv/FokiQ4AEuER7NjYaAI4B//EAgAT1K/hmNhoAjgH/lAA=", + "approval": "CjEYFIEGCzEZCI0MAGMAAAAAAAAAAAAAAFUAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQESRBeIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigEBi/8WiYEBQ4AEuER7NjYaAI4B//AAgAT1K/hmNhoAjgH/kQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUintNComparison.approval.teal b/tests/contracts/artifacts/ABITestUintNComparison.approval.teal index 6d6dc1c59..38ab374b0 100644 --- a/tests/contracts/artifacts/ABITestUintNComparison.approval.teal +++ b/tests/contracts/artifacts/ABITestUintNComparison.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // uintNComparison(uint256,uint256)bool *abi_route_uintNComparison: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // y: uint256 txna ApplicationArgs 2 dup len - int 32 + pushint 32 == // argument 0 (y) for uintNComparison must be a uint256 @@ -41,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 1 (x) for uintNComparison must be a uint256 @@ -49,13 +49,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // execute uintNComparison(uint256,uint256)bool callsub uintNComparison - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit concat log - int 1 + pushint 1 return // uintNComparison(x: uint256, y: uint256): boolean @@ -70,11 +70,11 @@ uintNComparison: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -82,7 +82,7 @@ uintNComparison: err *call_NoOp: - method "uintNComparison(uint256,uint256)bool" + pushbytes 0xbb089061 // method "uintNComparison(uint256,uint256)bool" txna ApplicationArgs 0 match *abi_route_uintNComparison diff --git a/tests/contracts/artifacts/ABITestUintNComparison.arc32.json b/tests/contracts/artifacts/ABITestUintNComparison.arc32.json index 1a7bb042e..b518b68e3 100644 --- a/tests/contracts/artifacts/ABITestUintNComparison.arc32.json +++ b/tests/contracts/artifacts/ABITestUintNComparison.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wKKmFiaV9yb3V0ZV91aW50TkNvbXBhcmlzb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoeSkgZm9yIHVpbnROQ29tcGFyaXNvbiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8geDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxICh4KSBmb3IgdWludE5Db21wYXJpc29uIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVpbnROQ29tcGFyaXNvbih1aW50MjU2LHVpbnQyNTYpYm9vbAoJY2FsbHN1YiB1aW50TkNvbXBhcmlzb24KCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludE5Db21wYXJpc29uKHg6IHVpbnQyNTYsIHk6IHVpbnQyNTYpOiBib29sZWFuCnVpbnROQ29tcGFyaXNvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjU5CgkvLyByZXR1cm4geCA+PSB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50MjU2CgliPj0KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVpbnROQ29tcGFyaXNvbih1aW50MjU2LHVpbnQyNTYpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdWludE5Db21wYXJpc29uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdWludE5Db21wYXJpc29uKHVpbnQyNTYsdWludDI1Nilib29sCiphYmlfcm91dGVfdWludE5Db21wYXJpc29uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHkpIGZvciB1aW50TkNvbXBhcmlzb24gbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKHgpIGZvciB1aW50TkNvbXBhcmlzb24gbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludE5Db21wYXJpc29uKHVpbnQyNTYsdWludDI1Nilib29sCgljYWxsc3ViIHVpbnROQ29tcGFyaXNvbgoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdWludE5Db21wYXJpc29uKHg6IHVpbnQyNTYsIHk6IHVpbnQyNTYpOiBib29sZWFuCnVpbnROQ29tcGFyaXNvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjU5CgkvLyByZXR1cm4geCA+PSB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50MjU2CgliPj0KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmIwODkwNjEgLy8gbWV0aG9kICJ1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VpbnROQ29tcGFyaXNvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUintNComparison.arc56_draft.json b/tests/contracts/artifacts/ABITestUintNComparison.arc56_draft.json index 3acc7eab3..6da6a9054 100644 --- a/tests/contracts/artifacts/ABITestUintNComparison.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUintNComparison.arc56_draft.json @@ -70,414 +70,52 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1257, - "pc": [ - 0, - 1, - 2, - 3, - 4 - ] - }, - { - "teal": 13, - "source": 1257, - "pc": [ - 5, - 6 - ] - }, - { - "teal": 14, - "source": 1257, - "pc": [ - 7 - ] - }, - { - "teal": 15, - "source": 1257, - "pc": [ - 8, - 9 - ] - }, - { - "teal": 16, - "source": 1257, - "pc": [ - 10 - ] - }, - { - "teal": 17, - "source": 1257, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 18, - "source": 1257, - "pc": [ - 13 - ] - }, - { - "teal": 19, - "source": 1257, - "pc": [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39 - ] - }, - { - "teal": 23, - "source": 1257, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 40 - ] - }, - { - "teal": 28, - "source": 1258, - "pc": [ - 41, - 42, - 43, - 44, - 45, - 46 - ] - }, - { - "teal": 31, - "source": 1258, - "pc": [ - 47, - 48, - 49 - ] - }, - { - "teal": 32, - "source": 1258, - "pc": [ - 50 - ] - }, - { - "teal": 33, - "source": 1258, - "pc": [ - 51 - ] - }, - { - "teal": 34, - "source": 1258, - "pc": [ - 52 - ] - }, - { - "teal": 35, - "source": 1258, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 1258, - "errorMessage": "argument 0 (y) for uintNComparison must be a uint256", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 1258, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 1258, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 1258, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 1258, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 1258, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 1258, - "errorMessage": "argument 1 (x) for uintNComparison must be a uint256", - "pc": [ - 62 - ] - }, - { - "teal": 51, - "source": 1258, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 52, - "source": 1258, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 53, - "source": 1258, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 54, - "source": 1258, - "pc": [ - 71, - 72 - ] - }, - { - "teal": 55, - "source": 1258, - "pc": [ - 73 - ] - }, - { - "teal": 56, - "source": 1258, - "pc": [ - 74 - ] - }, - { - "teal": 57, - "source": 1258, - "pc": [ - 75 - ] - }, - { - "teal": 58, - "source": 1258, - "pc": [ - 76 - ] - }, - { - "teal": 59, - "source": 1258, - "pc": [ - 77 - ] - }, - { - "teal": 63, - "source": 1258, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 67, - "source": 1259, - "pc": [ - 81, - 82 - ] - }, - { - "teal": 68, - "source": 1259, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 69, - "source": 1259, - "pc": [ - 85 - ] - }, - { - "teal": 70, - "source": 1258, - "pc": [ - 86 - ] - }, - { - "teal": 73, - "source": 1257, - "pc": [ - 87 - ] - }, - { - "teal": 74, - "source": 1257, - "pc": [ - 88 - ] - }, - { - "teal": 77, - "source": 1257, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 78, - "source": 1257, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 79, - "source": 1257, - "pc": [ - 98, - 99, - 100, - 101 - ] - }, - { - "teal": 82, - "source": 1257, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 102 - ] - }, - { - "teal": 85, - "source": 1257, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 86, - "source": 1257, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 87, - "source": 1257, - "pc": [ - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 90, - "source": 1257, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 116 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (y) for uintNComparison must be a uint256" + }, + { + "pc": [ + 60 + ], + "errorMessage": "argument 1 (x) for uintNComparison must be a uint256" + }, + { + "pc": [ + 102 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 116 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wKKmFiaV9yb3V0ZV91aW50TkNvbXBhcmlzb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoeSkgZm9yIHVpbnROQ29tcGFyaXNvbiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8geDogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxICh4KSBmb3IgdWludE5Db21wYXJpc29uIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVpbnROQ29tcGFyaXNvbih1aW50MjU2LHVpbnQyNTYpYm9vbAoJY2FsbHN1YiB1aW50TkNvbXBhcmlzb24KCWJ5dGUgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludE5Db21wYXJpc29uKHg6IHVpbnQyNTYsIHk6IHVpbnQyNTYpOiBib29sZWFuCnVpbnROQ29tcGFyaXNvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjU5CgkvLyByZXR1cm4geCA+PSB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50MjU2CgliPj0KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVpbnROQ29tcGFyaXNvbih1aW50MjU2LHVpbnQyNTYpYm9vbCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdWludE5Db21wYXJpc29uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdWludE5Db21wYXJpc29uKHVpbnQyNTYsdWludDI1Nilib29sCiphYmlfcm91dGVfdWludE5Db21wYXJpc29uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHkpIGZvciB1aW50TkNvbXBhcmlzb24gbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKHgpIGZvciB1aW50TkNvbXBhcmlzb24gbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludE5Db21wYXJpc29uKHVpbnQyNTYsdWludDI1Nilib29sCgljYWxsc3ViIHVpbnROQ29tcGFyaXNvbgoJcHVzaGJ5dGVzIDB4MDAKCXB1c2hpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdWludE5Db21wYXJpc29uKHg6IHVpbnQyNTYsIHk6IHVpbnQyNTYpOiBib29sZWFuCnVpbnROQ29tcGFyaXNvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjU5CgkvLyByZXR1cm4geCA+PSB5OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50MjU2CgliPj0KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YmIwODkwNjEgLy8gbWV0aG9kICJ1aW50TkNvbXBhcmlzb24odWludDI1Nix1aW50MjU2KWJvb2wiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VpbnROQ29tcGFyaXNvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACIAExGBSBBgsxGQiNDAA/AAAAAAAAAAAAAAAxAAAAAAAAAAAAAACABBUffHU2GgJJFSISRDYaAUkVIhJEiAAMgAEAgQBPAlRQsCNDigIBi/+L/qeJI0OABLhEezY2GgCOAf/xAIAEuwiQYTYaAI4B/7UA", + "approval": "CjEYFIEGCzEZCI0MAEMAAAAAAAAAAAAAADUAAAAAAAAAAAAAAIAEFR98dTYaAkkVgSASRDYaAUkVgSASRIgADYABAIEATwJUULCBAUOKAgGL/4v+p4mBAUOABLhEezY2GgCOAf/wAIAEuwiQYTYaAI4B/7EA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal index e1be85797..7731de0f7 100644 --- a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLE // updateArrayRefInBoxStorage()(uint8,uint64) *abi_route_updateArrayRefInBoxStorage: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateArrayRefInBoxStorage()(uint8,uint64) callsub updateArrayRefInBoxStorage concat log - int 1 + pushint 1 return // updateArrayRefInBoxStorage(): [uint<8>, uint64] @@ -39,12 +39,12 @@ updateArrayRefInBoxStorage: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:1107 // this.bMap(this.txn.sender).value = [1, 2] txn Sender - byte 0x010000000000000002 + pushbytes 0x010000000000000002 box_put // tests/contracts/abi.algo.ts:1109 @@ -55,8 +55,8 @@ updateArrayRefInBoxStorage: // tests/contracts/abi.algo.ts:1111 // v[0] = 3 frame_dig 0 // storage key//v - int 0 - byte 0x03 + pushint 0 + pushbytes 0x03 box_replace // tests/contracts/abi.algo.ts:1113 @@ -72,11 +72,11 @@ updateArrayRefInBoxStorage: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -84,7 +84,7 @@ updateArrayRefInBoxStorage: err *call_OptIn: - method "updateArrayRefInBoxStorage()(uint8,uint64)" + pushbytes 0x8e5ed92f // method "updateArrayRefInBoxStorage()(uint8,uint64)" txna ApplicationArgs 0 match *abi_route_updateArrayRefInBoxStorage diff --git a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json index 5b96c048b..2076ecb51 100644 --- a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCiphYmlfcm91dGVfdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCgljYWxsc3ViIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKTogW3VpbnQ8OD4sIHVpbnQ2NF0KdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA3CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IFsxLCAyXQoJdHhuIFNlbmRlcgoJYnl0ZSAweDAxMDAwMDAwMDAwMDAwMDAwMgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA5CgkvLyB2ID0gdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTExCgkvLyB2WzBdID0gMwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3YKCWludCAwCglieXRlIDB4MDMKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTMKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3YKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpKHVpbnQ4LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfT3B0SW4gKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlKCkodWludDgsdWludDY0KQoqYWJpX3JvdXRlX3VwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCgljYWxsc3ViIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlKCk6IFt1aW50PDg+LCB1aW50NjRdCnVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA3CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IFsxLCAyXQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4MDEwMDAwMDAwMDAwMDAwMDAyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMDkKCS8vIHYgPSB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZQoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly92CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTEKCS8vIHZbMF0gPSAzCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdgoJcHVzaGludCAwCglwdXNoYnl0ZXMgMHgwMwoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTExMwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4OGU1ZWQ5MmYgLy8gbWV0aG9kICJ1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpKHVpbnQ4LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc56_draft.json index 076cb8b91..d7554fed6 100644 --- a/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc56_draft.json @@ -66,387 +66,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1102, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 1102, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 1102, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 1102, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 1102, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 1102, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 1102, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 1102, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 1102, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 1105, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 1105, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 1105, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 1105, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 1105, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 1105, - "pc": [ - 52 - ] - }, - { - "teal": 39, - "source": 1105, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 42, - "source": 1105, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 46, - "source": 1107, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 47, - "source": 1107, - "pc": [ - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70 - ] - }, - { - "teal": 48, - "source": 1107, - "pc": [ - 71 - ] - }, - { - "teal": 52, - "source": 1109, - "pc": [ - 72, - 73 - ] - }, - { - "teal": 53, - "source": 1109, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 57, - "source": 1109, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 58, - "source": 1109, - "pc": [ - 78, - 79 - ] - }, - { - "teal": 59, - "source": 1109, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 60, - "source": 1109, - "pc": [ - 83 - ] - }, - { - "teal": 64, - "source": 1109, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 65, - "source": 1109, - "pc": [ - 86 - ] - }, - { - "teal": 68, - "source": 1109, - "errorMessage": "box value does not exist: this.bMap(this.txn.sender).value", - "pc": [ - 87 - ] - }, - { - "teal": 71, - "source": 1105, - "pc": [ - 88, - 89 - ] - }, - { - "teal": 72, - "source": 1105, - "pc": [ - 90 - ] - }, - { - "teal": 75, - "source": 1102, - "pc": [ - 91 - ] - }, - { - "teal": 76, - "source": 1102, - "pc": [ - 92 - ] - }, - { - "teal": 79, - "source": 1102, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 80, - "source": 1102, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 81, - "source": 1102, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 84, - "source": 1102, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 106 - ] - }, - { - "teal": 87, - "source": 1102, - "pc": [ - 107, - 108, - 109, - 110, - 111, - 112 - ] - }, - { - "teal": 88, - "source": 1102, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 89, - "source": 1102, - "pc": [ - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 92, - "source": 1102, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 120 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 85 + ], + "errorMessage": "box value does not exist: this.bMap(this.txn.sender).value" + }, + { + "pc": [ + 105 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCiphYmlfcm91dGVfdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCgljYWxsc3ViIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKTogW3VpbnQ8OD4sIHVpbnQ2NF0KdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2U6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA3CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IFsxLCAyXQoJdHhuIFNlbmRlcgoJYnl0ZSAweDAxMDAwMDAwMDAwMDAwMDAwMgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA5CgkvLyB2ID0gdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCXR4biBTZW5kZXIKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vdgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTExCgkvLyB2WzBdID0gMwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3YKCWludCAwCglieXRlIDB4MDMKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTMKCS8vIHJldHVybiB2OwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL3YKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYk1hcCh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlCglhc3NlcnQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpKHVpbnQ4LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKmNhbGxfT3B0SW4gKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlKCkodWludDgsdWludDY0KQoqYWJpX3JvdXRlX3VwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlQXJyYXlSZWZJbkJveFN0b3JhZ2UoKSh1aW50OCx1aW50NjQpCgljYWxsc3ViIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlKCk6IFt1aW50PDg+LCB1aW50NjRdCnVwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCXB1c2hieXRlcyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTA3CgkvLyB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IFsxLCAyXQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4MDEwMDAwMDAwMDAwMDAwMDAyCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMDkKCS8vIHYgPSB0aGlzLmJNYXAodGhpcy50eG4uc2VuZGVyKS52YWx1ZQoJdHhuIFNlbmRlcgoJZnJhbWVfYnVyeSAwIC8vIHN0b3JhZ2Uga2V5Ly92CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExMTEKCS8vIHZbMF0gPSAzCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdgoJcHVzaGludCAwCglwdXNoYnl0ZXMgMHgwMwoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTExMwoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vdgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKHRoaXMudHhuLnNlbmRlcikudmFsdWUKCWFzc2VydAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4OGU1ZWQ5MmYgLy8gbWV0aG9kICJ1cGRhdGVBcnJheVJlZkluQm94U3RvcmFnZSgpKHVpbnQ4LHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFycmF5UmVmSW5Cb3hTdG9yYWdlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAAAARAAAAAAAAAAAADYAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAADEAgAkBAAAAAAAAAAK/MQCMAIsAgQCAAQO7iwC+RIwAiSJDgAS4RHs2NhoAjgH/8QCABI5e2S82GgCOAf+wAA==", + "approval": "CjEYFIEGCzEZCI0MAAAARgAAAAAAAAAAADgAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgAAxAIAJAQAAAAAAAAACvzEAjACLAIEAgAEDu4sAvkSMAImBAUOABLhEezY2GgCOAf/wAIAEjl7ZLzYaAI4B/64A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal index 25aff60a7..cc40275e1 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateDynamicArrayElement()uint64 *abi_route_updateDynamicArrayElement: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateDynamicArrayElement()uint64 callsub updateDynamicArrayElement itob concat log - int 1 + pushint 1 return // updateDynamicArrayElement(): uint64 @@ -40,11 +40,11 @@ updateDynamicArrayElement: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:369 // a: uint64[] = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: uint64[] // tests/contracts/abi.algo.ts:371 @@ -52,7 +52,7 @@ updateDynamicArrayElement: frame_dig 0 // a: uint64[] store 255 // full array load 255 // full array - byte 0x00000000000000de + pushbytes 0x00000000000000de replace2 8 frame_bury 0 // a: uint64[] @@ -69,11 +69,11 @@ updateDynamicArrayElement: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +81,7 @@ updateDynamicArrayElement: err *call_NoOp: - method "updateDynamicArrayElement()uint64" + pushbytes 0x491a153d // method "updateDynamicArrayElement()uint64" txna ApplicationArgs 0 match *abi_route_updateDynamicArrayElement diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json index 3c7b2bbb8..126b9cd5f 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpOiB1aW50NjQKdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM2OQoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNzEKCS8vIGFbMV0gPSAyMjIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNzMKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpdWludDY0CiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKTogdWludDY0CnVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM2OQoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3MQoJLy8gYVsxXSA9IDIyMgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzczCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NDkxYTE1M2QgLy8gbWV0aG9kICJ1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc56_draft.json index 8aedb5f5c..652788815 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc56_draft.json @@ -61,427 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 367, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 367, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 367, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 367, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 367, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 367, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 367, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 367, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 367, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 368, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 368, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 368, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 368, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 368, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 368, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 368, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 368, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 368, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 47, - "source": 369, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 48, - "source": 369, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 52, - "source": 371, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 53, - "source": 371, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 54, - "source": 371, - "pc": [ - 91, - 92 - ] - }, - { - "teal": 55, - "source": 371, - "pc": [ - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 56, - "source": 371, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 57, - "source": 371, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 61, - "source": 373, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 62, - "source": 373, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 63, - "source": 373, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 64, - "source": 373, - "pc": [ - 113, - 114, - 115 - ] - }, - { - "teal": 65, - "source": 373, - "pc": [ - 116 - ] - }, - { - "teal": 68, - "source": 368, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 69, - "source": 368, - "pc": [ - 119 - ] - }, - { - "teal": 72, - "source": 367, - "pc": [ - 120 - ] - }, - { - "teal": 73, - "source": 367, - "pc": [ - 121 - ] - }, - { - "teal": 76, - "source": 367, - "pc": [ - 122, - 123, - 124, - 125, - 126, - 127 - ] - }, - { - "teal": 77, - "source": 367, - "pc": [ - 128, - 129, - 130 - ] - }, - { - "teal": 78, - "source": 367, - "pc": [ - 131, - 132, - 133, - 134 - ] - }, - { - "teal": 81, - "source": 367, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 135 - ] - }, - { - "teal": 84, - "source": 367, - "pc": [ - 136, - 137, - 138, - 139, - 140, - 141 - ] - }, - { - "teal": 85, - "source": 367, - "pc": [ - 142, - 143, - 144 - ] - }, - { - "teal": 86, - "source": 367, - "pc": [ - 145, - 146, - 147, - 148 - ] - }, - { - "teal": 89, - "source": 367, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 149 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 134 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 148 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpOiB1aW50NjQKdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM2OQoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNzEKCS8vIGFbMV0gPSAyMjIKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwZGUKCXJlcGxhY2UyIDgKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNzMKCS8vIHJldHVybiBhWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDggOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudCgpdWludDY0CiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50CglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQoKTogdWludDY0CnVwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM2OQoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3MQoJLy8gYVsxXSA9IDIyMgoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4CglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzczCgkvLyByZXR1cm4gYVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4NDkxYTE1M2QgLy8gbWV0aG9kICJ1cGRhdGVEeW5hbWljQXJyYXlFbGVtZW50KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUVsZW1lbnQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAGEAAAAAAAAAAAAAAFMAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAiwA1/zT/gAgAAAAAAAAA3lwIjACLADX/NP9XCAgXjACJIkOABLhEezY2GgCOAf/xAIAESRoVPTYaAI4B/5MA", + "approval": "CjEYFIEGCzEZCI0MAGMAAAAAAAAAAAAAAFUAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIsANf80/4AIAAAAAAAAAN5cCIwAiwA1/zT/VwgIF4wAiYEBQ4AEuER7NjYaAI4B//AAgARJGhU9NhoAjgH/kQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal index aa6069693..555b644cb 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x00020405 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateDynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16) *abi_route_updateDynamicArrayInMiddleOfTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateDynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16) callsub updateDynamicArrayInMiddleOfTuple concat log - int 1 + pushint 1 return // updateDynamicArrayInMiddleOfTuple(): [uint16, uint<8>[], uint16] @@ -45,12 +46,12 @@ updateDynamicArrayInMiddleOfTuple: // a: [uint16, uint<8>[], uint16] = [1, [2], 3] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x0001 + pushbytes 0x0006 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000102 + pushbytes 0x000102 callsub *process_dynamic_tuple_element - byte 0x0003 + pushbytes 0x0003 callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail @@ -60,7 +61,7 @@ updateDynamicArrayInMiddleOfTuple: // a[1] = [4, 5] frame_dig 0 // a: [uint16, uint<8>[], uint16] store 255 // full array - int 2 + pushint 2 dup store 251 // element head offset load 255 // full array @@ -73,13 +74,13 @@ updateDynamicArrayInMiddleOfTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00020405 @@ -108,11 +109,11 @@ updateDynamicArrayInMiddleOfTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -120,7 +121,7 @@ updateDynamicArrayInMiddleOfTuple: err *call_NoOp: - method "updateDynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16)" + pushbytes 0x9cdecdc8 // method "updateDynamicArrayInMiddleOfTuple()(uint16,uint8[],uint16)" txna ApplicationArgs 0 match *abi_route_updateDynamicArrayInMiddleOfTuple @@ -169,7 +170,7 @@ updateDynamicArrayInMiddleOfTuple: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -177,7 +178,7 @@ updateDynamicArrayInMiddleOfTuple: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json index e8d021eb8..9bd1a8884 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQp1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODQKCS8vIGFbMV0gPSBbNCwgNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjA0MDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njg2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAyMDQwNSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCgljYWxsc3ViIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCnVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4MgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njg0CgkvLyBhWzFdID0gWzQsIDVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDQwNQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDljZGVjZGM4IC8vIG1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCXB1c2hpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc56_draft.json index 451c738c4..615dde402 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc56_draft.json @@ -61,1076 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 680, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 680, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 680, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 680, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 16, - "source": 680, - "pc": [ - 14 - ] - }, - { - "teal": 17, - "source": 680, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 18, - "source": 680, - "pc": [ - 17 - ] - }, - { - "teal": 19, - "source": 680, - "pc": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ] - }, - { - "teal": 23, - "source": 680, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 44 - ] - }, - { - "teal": 28, - "source": 681, - "pc": [ - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 31, - "source": 681, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 32, - "source": 681, - "pc": [ - 54 - ] - }, - { - "teal": 33, - "source": 681, - "pc": [ - 55 - ] - }, - { - "teal": 34, - "source": 681, - "pc": [ - 56 - ] - }, - { - "teal": 35, - "source": 681, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 681, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 42, - "source": 681, - "pc": [ - 61 - ] - }, - { - "teal": 46, - "source": 682, - "pc": [ - 62 - ] - }, - { - "teal": 47, - "source": 682, - "pc": [ - 63 - ] - }, - { - "teal": 48, - "source": 682, - "pc": [ - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 49, - "source": 682, - "pc": [ - 68, - 69, - 70, - 71 - ] - }, - { - "teal": 50, - "source": 682, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 51, - "source": 682, - "pc": [ - 75, - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 52, - "source": 682, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 53, - "source": 682, - "pc": [ - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 54, - "source": 682, - "pc": [ - 87, - 88, - 89 - ] - }, - { - "teal": 55, - "source": 682, - "pc": [ - 90 - ] - }, - { - "teal": 56, - "source": 682, - "pc": [ - 91 - ] - }, - { - "teal": 57, - "source": 682, - "pc": [ - 92, - 93 - ] - }, - { - "teal": 61, - "source": 684, - "pc": [ - 94, - 95 - ] - }, - { - "teal": 62, - "source": 684, - "pc": [ - 96, - 97 - ] - }, - { - "teal": 63, - "source": 684, - "pc": [ - 98 - ] - }, - { - "teal": 64, - "source": 684, - "pc": [ - 99 - ] - }, - { - "teal": 65, - "source": 684, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 66, - "source": 684, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 67, - "source": 684, - "pc": [ - 104, - 105 - ] - }, - { - "teal": 68, - "source": 684, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 69, - "source": 684, - "pc": [ - 108 - ] - }, - { - "teal": 70, - "source": 684, - "pc": [ - 109 - ] - }, - { - "teal": 71, - "source": 684, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 72, - "source": 684, - "pc": [ - 112 - ] - }, - { - "teal": 73, - "source": 684, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 74, - "source": 684, - "pc": [ - 115 - ] - }, - { - "teal": 75, - "source": 684, - "pc": [ - 116 - ] - }, - { - "teal": 76, - "source": 684, - "pc": [ - 117 - ] - }, - { - "teal": 77, - "source": 684, - "pc": [ - 118 - ] - }, - { - "teal": 78, - "source": 684, - "pc": [ - 119 - ] - }, - { - "teal": 79, - "source": 684, - "pc": [ - 120 - ] - }, - { - "teal": 80, - "source": 684, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 81, - "source": 684, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 82, - "source": 684, - "pc": [ - 125 - ] - }, - { - "teal": 83, - "source": 684, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 84, - "source": 684, - "pc": [ - 128 - ] - }, - { - "teal": 85, - "source": 684, - "pc": [ - 129, - 130, - 131, - 132, - 133, - 134 - ] - }, - { - "teal": 86, - "source": 684, - "pc": [ - 135 - ] - }, - { - "teal": 87, - "source": 684, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 88, - "source": 684, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 89, - "source": 684, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 90, - "source": 684, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 91, - "source": 684, - "pc": [ - 144 - ] - }, - { - "teal": 92, - "source": 684, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 93, - "source": 684, - "pc": [ - 147 - ] - }, - { - "teal": 94, - "source": 684, - "pc": [ - 148 - ] - }, - { - "teal": 95, - "source": 684, - "pc": [ - 149 - ] - }, - { - "teal": 96, - "source": 684, - "pc": [ - 150 - ] - }, - { - "teal": 97, - "source": 684, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 98, - "source": 684, - "pc": [ - 153, - 154, - 155 - ] - }, - { - "teal": 99, - "source": 684, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 100, - "source": 684, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 104, - "source": 686, - "pc": [ - 160, - 161 - ] - }, - { - "teal": 107, - "source": 681, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 108, - "source": 681, - "pc": [ - 164 - ] - }, - { - "teal": 111, - "source": 680, - "pc": [ - 165 - ] - }, - { - "teal": 112, - "source": 680, - "pc": [ - 166 - ] - }, - { - "teal": 115, - "source": 680, - "pc": [ - 167, - 168, - 169, - 170, - 171, - 172 - ] - }, - { - "teal": 116, - "source": 680, - "pc": [ - 173, - 174, - 175 - ] - }, - { - "teal": 117, - "source": 680, - "pc": [ - 176, - 177, - 178, - 179 - ] - }, - { - "teal": 120, - "source": 680, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 180 - ] - }, - { - "teal": 123, - "source": 680, - "pc": [ - 181, - 182, - 183, - 184, - 185, - 186 - ] - }, - { - "teal": 124, - "source": 680, - "pc": [ - 187, - 188, - 189 - ] - }, - { - "teal": 125, - "source": 680, - "pc": [ - 190, - 191, - 192, - 193 - ] - }, - { - "teal": 128, - "source": 680, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 194 - ] - }, - { - "teal": 131, - "source": 680, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 132, - "source": 680, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 133, - "source": 680, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 134, - "source": 680, - "pc": [ - 202 - ] - }, - { - "teal": 135, - "source": 680, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 136, - "source": 680, - "pc": [ - 205, - 206 - ] - }, - { - "teal": 137, - "source": 680, - "pc": [ - 207 - ] - }, - { - "teal": 140, - "source": 680, - "pc": [ - 208, - 209, - 210 - ] - }, - { - "teal": 141, - "source": 680, - "pc": [ - 211, - 212 - ] - }, - { - "teal": 142, - "source": 680, - "pc": [ - 213, - 214 - ] - }, - { - "teal": 143, - "source": 680, - "pc": [ - 215 - ] - }, - { - "teal": 144, - "source": 680, - "pc": [ - 216, - 217 - ] - }, - { - "teal": 145, - "source": 680, - "pc": [ - 218, - 219 - ] - }, - { - "teal": 146, - "source": 680, - "pc": [ - 220 - ] - }, - { - "teal": 147, - "source": 680, - "pc": [ - 221 - ] - }, - { - "teal": 148, - "source": 680, - "pc": [ - 222, - 223 - ] - }, - { - "teal": 149, - "source": 680, - "pc": [ - 224 - ] - }, - { - "teal": 150, - "source": 680, - "pc": [ - 225 - ] - }, - { - "teal": 151, - "source": 680, - "pc": [ - 226 - ] - }, - { - "teal": 152, - "source": 680, - "pc": [ - 227, - 228, - 229 - ] - }, - { - "teal": 153, - "source": 680, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 154, - "source": 680, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 155, - "source": 680, - "pc": [ - 234 - ] - }, - { - "teal": 156, - "source": 680, - "pc": [ - 235 - ] - }, - { - "teal": 157, - "source": 680, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 158, - "source": 680, - "pc": [ - 238, - 239 - ] - }, - { - "teal": 159, - "source": 680, - "pc": [ - 240, - 241 - ] - }, - { - "teal": 160, - "source": 680, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 161, - "source": 680, - "pc": [ - 244 - ] - }, - { - "teal": 164, - "source": 680, - "pc": [ - 245, - 246 - ] - }, - { - "teal": 165, - "source": 680, - "pc": [ - 247 - ] - }, - { - "teal": 166, - "source": 680, - "pc": [ - 248, - 249 - ] - }, - { - "teal": 167, - "source": 680, - "pc": [ - 250 - ] - }, - { - "teal": 168, - "source": 680, - "pc": [ - 251, - 252, - 253 - ] - }, - { - "teal": 169, - "source": 680, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 170, - "source": 680, - "pc": [ - 256 - ] - }, - { - "teal": 171, - "source": 680, - "pc": [ - 257, - 258 - ] - }, - { - "teal": 172, - "source": 680, - "pc": [ - 259 - ] - }, - { - "teal": 173, - "source": 680, - "pc": [ - 260, - 261 - ] - }, - { - "teal": 174, - "source": 680, - "pc": [ - 262, - 263, - 264 - ] - }, - { - "teal": 177, - "source": 680, - "pc": [ - 265, - 266 - ] - }, - { - "teal": 178, - "source": 680, - "pc": [ - 267, - 268 - ] - }, - { - "teal": 179, - "source": 680, - "pc": [ - 269 - ] - }, - { - "teal": 180, - "source": 680, - "pc": [ - 270 - ] - }, - { - "teal": 181, - "source": 680, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 184, - "source": 680, - "pc": [ - 273 - ] - }, - { - "teal": 185, - "source": 680, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 186, - "source": 680, - "pc": [ - 276 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 44 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 189 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 203 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCk6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQp1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODIKCS8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMl0sIDNdCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA2IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODQKCS8vIGFbMV0gPSBbNCwgNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjA0MDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njg2CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAyMDQwNSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZSgpKHVpbnQxNix1aW50OFtdLHVpbnQxNikKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKSh1aW50MTYsdWludDhbXSx1aW50MTYpCgljYWxsc3ViIHVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJbk1pZGRsZU9mVHVwbGUoKTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCnVwZGF0ZUR5bmFtaWNBcnJheUluTWlkZGxlT2ZUdXBsZToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY4MgoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyXSwgM10KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDIKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Njg0CgkvLyBhWzFdID0gWzQsIDVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJcHVzaGludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDQwNQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2ODYKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDljZGVjZGM4IC8vIG1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlKCkodWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5NaWRkbGVPZlR1cGxlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50Cgljb25jYXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0Cgljb25jYXQKCWZyYW1lX2J1cnkgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWR1cAoJbGVuCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWJ0b2kKCSsKCWl0b2IKCWV4dHJhY3QgNiAyCglmcmFtZV9idXJ5IC0yIC8vIGhlYWQgb2Zmc2V0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJc3dhcAoJY29uY2F0CglmcmFtZV9idXJ5IC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCXB1c2hpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIAJgEAMRgUgQYLMRkIjQwAiQAAAAAAAAAAAAAAewAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAASgoKIACAAaAAgABiAB4gAMAAQKIAH2AAgADiABpSFCMAIsANf8jSTX7NP80/08CWUk1/kk0/0xZIgsjCDX9NP8kNP5SgAQAAgQFSTX8NP80/jT9CDT/FVJQUDX/iABZNP+MAIsAjACJIkOABLhEezY2GgCOAf/xAIAEnN7NyDYaAI4B/2sAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok0/BU0/QxAAAs0/BU0/SI1+UIACDT9NPwVJDX5CTX6iQ==", + "approval": "CiYCBAACBAUAMRgUgQYLMRkIjQwAkgAAAAAAAAAAAAAAhAAAAAAAAAAAAAAAgAQVH3x1iAAFULCBAUOKAAGAAIAAgACAAgAGgAIAAYgAfYADAAECiACCgAIAA4gAbkhQjACLADX/gQJJNfs0/zT/TwJZSTX+STT/TFmBAQuBAgg1/TT/gQA0/lKABAACBAVJNfw0/zT+NP0INP8VUlBQNf+IAFo0/4wAiwCMAImBAUOABLhEezY2GgCOAf/wAIAEnN7NyDYaAI4B/2IAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok0/BU0/QxAAAw0/BU0/YEBNflCAAk0/TT8FYEANfkJNfqJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal index 5fd7880ed..2479ec6c0 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 2 +bytecblock 0x0002000a000b 0x0002000e000f 0x00020c0d 0x00021011 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +27,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateDynamicArrayInTuple()(uint8,uint16[],uint8[],uint16[],uint8[]) *abi_route_updateDynamicArrayInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateDynamicArrayInTuple()(uint8,uint16[],uint8[],uint16[],uint8[]) callsub updateDynamicArrayInTuple concat log - int 1 + pushint 1 return // updateDynamicArrayInTuple(): [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -45,16 +47,16 @@ updateDynamicArrayInTuple: // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] = [9, [8], [7], [6], [5]] byte 0x // initial head byte 0x // initial tail - byte 0x0009 // initial head offset - byte 0x09 + pushbytes 0x0009 // initial head offset + pushbytes 0x09 callsub *process_static_tuple_element - byte 0x00010008 + pushbytes 0x00010008 callsub *process_dynamic_tuple_element - byte 0x000107 + pushbytes 0x000107 callsub *process_dynamic_tuple_element - byte 0x00010006 + pushbytes 0x00010006 callsub *process_dynamic_tuple_element - byte 0x000105 + pushbytes 0x000105 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -65,7 +67,7 @@ updateDynamicArrayInTuple: frame_dig 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] store 255 // full array load 255 // full array - byte 0x63 + pushbytes 0x63 replace2 0 frame_bury 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] @@ -73,7 +75,7 @@ updateDynamicArrayInTuple: // a[1] = [10, 11] frame_dig 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] store 255 // full array - int 1 + pushint 1 dup store 251 // element head offset load 255 // full array @@ -92,7 +94,7 @@ updateDynamicArrayInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x0002000a000b @@ -116,12 +118,12 @@ updateDynamicArrayInTuple: callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 6 + pushint 6 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -131,7 +133,7 @@ updateDynamicArrayInTuple: // a[2] = [12, 13] frame_dig 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] store 255 // full array - int 3 + pushint 3 dup store 251 // element head offset load 255 // full array @@ -144,13 +146,13 @@ updateDynamicArrayInTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length int 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00020c0d @@ -174,7 +176,7 @@ updateDynamicArrayInTuple: callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -184,7 +186,7 @@ updateDynamicArrayInTuple: // a[3] = [14, 15] frame_dig 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] store 255 // full array - int 5 + pushint 5 dup store 251 // element head offset load 255 // full array @@ -203,7 +205,7 @@ updateDynamicArrayInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x0002000e000f @@ -232,7 +234,7 @@ updateDynamicArrayInTuple: // a[4] = [16, 17] frame_dig 0 // a: [uint<8>, uint16[], uint<8>[], uint16[], uint<8>[]] store 255 // full array - int 7 + pushint 7 dup store 251 // element head offset load 255 // full array @@ -245,13 +247,13 @@ updateDynamicArrayInTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length int 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00021011 @@ -280,11 +282,11 @@ updateDynamicArrayInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -292,7 +294,7 @@ updateDynamicArrayInTuple: err *call_NoOp: - method "updateDynamicArrayInTuple()(uint8,uint16[],uint8[],uint16[],uint8[])" + pushbytes 0xc54460fd // method "updateDynamicArrayInTuple()(uint8,uint16[],uint8[],uint16[],uint8[])" txna ApplicationArgs 0 match *abi_route_updateDynamicArrayInTuple @@ -367,7 +369,7 @@ updateDynamicArrayInTuple: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -375,7 +377,7 @@ updateDynamicArrayInTuple: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json index c7884246f..7784522bd 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUoKTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCnVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDYKCS8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFs5LCBbOF0sIFs3XSwgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwNwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDUKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDA4CgkvLyBhWzBdID0gOTkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOQoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBhMDAwYgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDYKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MTAKCS8vIGFbMl0gPSBbMTIsIDEzXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDMKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMGMwZAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxMQoJLy8gYVszXSA9IFsxNCwgMTVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDEyCgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDE0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDAyMDAwYTAwMGIgMHgwMDAyMDAwZTAwMGYgMHgwMDAyMGMwZCAweDAwMDIxMDExIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDA2CgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCBbN10sIFs2XSwgWzVdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDA5CgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDAwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwNwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOAoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hieXRlcyAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOQoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMGEwMDBiCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJcHVzaGludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDEwCgkvLyBhWzJdID0gWzEyLCAxM10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjBjMGQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJcHVzaGludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDExCgkvLyBhWzNdID0gWzE0LCAxNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwZTAwMGYKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxMgoJLy8gYVs0XSA9IFsxNiwgMTddCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDcKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIxMDExCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxNAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzU0NDYwZmQgLy8gbWV0aG9kICJ1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCXB1c2hpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc56_draft.json index d3c907da6..2020916c6 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc56_draft.json @@ -61,2484 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 404, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ] - }, - { - "teal": 13, - "source": 404, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 14, - "source": 404, - "pc": [ - 13 - ] - }, - { - "teal": 15, - "source": 404, - "pc": [ - 14 - ] - }, - { - "teal": 16, - "source": 404, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 404, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 404, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 404, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 404, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 405, - "pc": [ - 46, - 47, - 48, - 49, - 50, - 51 - ] - }, - { - "teal": 31, - "source": 405, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 32, - "source": 405, - "pc": [ - 55 - ] - }, - { - "teal": 33, - "source": 405, - "pc": [ - 56 - ] - }, - { - "teal": 34, - "source": 405, - "pc": [ - 57 - ] - }, - { - "teal": 35, - "source": 405, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 405, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 42, - "source": 405, - "pc": [ - 62 - ] - }, - { - "teal": 46, - "source": 406, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 406, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 406, - "pc": [ - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 49, - "source": 406, - "pc": [ - 69, - 70, - 71 - ] - }, - { - "teal": 50, - "source": 406, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 51, - "source": 406, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 52, - "source": 406, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 53, - "source": 406, - "pc": [ - 84, - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 54, - "source": 406, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 55, - "source": 406, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 56, - "source": 406, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 57, - "source": 406, - "pc": [ - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 58, - "source": 406, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 59, - "source": 406, - "pc": [ - 109 - ] - }, - { - "teal": 60, - "source": 406, - "pc": [ - 110 - ] - }, - { - "teal": 61, - "source": 406, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 65, - "source": 408, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 66, - "source": 408, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 67, - "source": 408, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 68, - "source": 408, - "pc": [ - 119, - 120, - 121 - ] - }, - { - "teal": 69, - "source": 408, - "pc": [ - 122, - 123 - ] - }, - { - "teal": 70, - "source": 408, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 74, - "source": 409, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 75, - "source": 409, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 76, - "source": 409, - "pc": [ - 130 - ] - }, - { - "teal": 77, - "source": 409, - "pc": [ - 131 - ] - }, - { - "teal": 78, - "source": 409, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 79, - "source": 409, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 80, - "source": 409, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 81, - "source": 409, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 82, - "source": 409, - "pc": [ - 140 - ] - }, - { - "teal": 83, - "source": 409, - "pc": [ - 141 - ] - }, - { - "teal": 84, - "source": 409, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 85, - "source": 409, - "pc": [ - 144 - ] - }, - { - "teal": 86, - "source": 409, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 87, - "source": 409, - "pc": [ - 147 - ] - }, - { - "teal": 88, - "source": 409, - "pc": [ - 148 - ] - }, - { - "teal": 89, - "source": 409, - "pc": [ - 149 - ] - }, - { - "teal": 90, - "source": 409, - "pc": [ - 150 - ] - }, - { - "teal": 91, - "source": 409, - "pc": [ - 151 - ] - }, - { - "teal": 92, - "source": 409, - "pc": [ - 152 - ] - }, - { - "teal": 93, - "source": 409, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 94, - "source": 409, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 95, - "source": 409, - "pc": [ - 157 - ] - }, - { - "teal": 96, - "source": 409, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 97, - "source": 409, - "pc": [ - 160 - ] - }, - { - "teal": 98, - "source": 409, - "pc": [ - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168 - ] - }, - { - "teal": 99, - "source": 409, - "pc": [ - 169 - ] - }, - { - "teal": 100, - "source": 409, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 101, - "source": 409, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 102, - "source": 409, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 103, - "source": 409, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 104, - "source": 409, - "pc": [ - 178 - ] - }, - { - "teal": 105, - "source": 409, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 106, - "source": 409, - "pc": [ - 181 - ] - }, - { - "teal": 107, - "source": 409, - "pc": [ - 182 - ] - }, - { - "teal": 108, - "source": 409, - "pc": [ - 183 - ] - }, - { - "teal": 109, - "source": 409, - "pc": [ - 184 - ] - }, - { - "teal": 110, - "source": 409, - "pc": [ - 185, - 186 - ] - }, - { - "teal": 111, - "source": 409, - "pc": [ - 187, - 188, - 189 - ] - }, - { - "teal": 112, - "source": 409, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 113, - "source": 409, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 114, - "source": 409, - "pc": [ - 194 - ] - }, - { - "teal": 115, - "source": 409, - "pc": [ - 195 - ] - }, - { - "teal": 116, - "source": 409, - "pc": [ - 196, - 197, - 198 - ] - }, - { - "teal": 117, - "source": 409, - "pc": [ - 199, - 200 - ] - }, - { - "teal": 118, - "source": 409, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 119, - "source": 409, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 120, - "source": 409, - "pc": [ - 205 - ] - }, - { - "teal": 121, - "source": 409, - "pc": [ - 206, - 207, - 208 - ] - }, - { - "teal": 122, - "source": 409, - "pc": [ - 209, - 210 - ] - }, - { - "teal": 123, - "source": 409, - "pc": [ - 211, - 212 - ] - }, - { - "teal": 124, - "source": 409, - "pc": [ - 213 - ] - }, - { - "teal": 125, - "source": 409, - "pc": [ - 214 - ] - }, - { - "teal": 126, - "source": 409, - "pc": [ - 215, - 216, - 217 - ] - }, - { - "teal": 127, - "source": 409, - "pc": [ - 218, - 219 - ] - }, - { - "teal": 128, - "source": 409, - "pc": [ - 220, - 221 - ] - }, - { - "teal": 132, - "source": 410, - "pc": [ - 222, - 223 - ] - }, - { - "teal": 133, - "source": 410, - "pc": [ - 224, - 225 - ] - }, - { - "teal": 134, - "source": 410, - "pc": [ - 226, - 227 - ] - }, - { - "teal": 135, - "source": 410, - "pc": [ - 228 - ] - }, - { - "teal": 136, - "source": 410, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 137, - "source": 410, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 138, - "source": 410, - "pc": [ - 233, - 234 - ] - }, - { - "teal": 139, - "source": 410, - "pc": [ - 235, - 236 - ] - }, - { - "teal": 140, - "source": 410, - "pc": [ - 237 - ] - }, - { - "teal": 141, - "source": 410, - "pc": [ - 238 - ] - }, - { - "teal": 142, - "source": 410, - "pc": [ - 239, - 240 - ] - }, - { - "teal": 143, - "source": 410, - "pc": [ - 241 - ] - }, - { - "teal": 144, - "source": 410, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 145, - "source": 410, - "pc": [ - 244 - ] - }, - { - "teal": 146, - "source": 410, - "pc": [ - 245 - ] - }, - { - "teal": 147, - "source": 410, - "pc": [ - 246 - ] - }, - { - "teal": 148, - "source": 410, - "pc": [ - 247 - ] - }, - { - "teal": 149, - "source": 410, - "pc": [ - 248 - ] - }, - { - "teal": 150, - "source": 410, - "pc": [ - 249 - ] - }, - { - "teal": 151, - "source": 410, - "pc": [ - 250, - 251 - ] - }, - { - "teal": 152, - "source": 410, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 153, - "source": 410, - "pc": [ - 254 - ] - }, - { - "teal": 154, - "source": 410, - "pc": [ - 255, - 256 - ] - }, - { - "teal": 155, - "source": 410, - "pc": [ - 257 - ] - }, - { - "teal": 156, - "source": 410, - "pc": [ - 258, - 259, - 260, - 261, - 262, - 263 - ] - }, - { - "teal": 157, - "source": 410, - "pc": [ - 264 - ] - }, - { - "teal": 158, - "source": 410, - "pc": [ - 265, - 266 - ] - }, - { - "teal": 159, - "source": 410, - "pc": [ - 267, - 268 - ] - }, - { - "teal": 160, - "source": 410, - "pc": [ - 269, - 270 - ] - }, - { - "teal": 161, - "source": 410, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 162, - "source": 410, - "pc": [ - 273 - ] - }, - { - "teal": 163, - "source": 410, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 164, - "source": 410, - "pc": [ - 276 - ] - }, - { - "teal": 165, - "source": 410, - "pc": [ - 277 - ] - }, - { - "teal": 166, - "source": 410, - "pc": [ - 278 - ] - }, - { - "teal": 167, - "source": 410, - "pc": [ - 279 - ] - }, - { - "teal": 168, - "source": 410, - "pc": [ - 280, - 281 - ] - }, - { - "teal": 169, - "source": 410, - "pc": [ - 282, - 283, - 284 - ] - }, - { - "teal": 170, - "source": 410, - "pc": [ - 285, - 286 - ] - }, - { - "teal": 171, - "source": 410, - "pc": [ - 287, - 288 - ] - }, - { - "teal": 172, - "source": 410, - "pc": [ - 289 - ] - }, - { - "teal": 173, - "source": 410, - "pc": [ - 290 - ] - }, - { - "teal": 174, - "source": 410, - "pc": [ - 291, - 292, - 293 - ] - }, - { - "teal": 175, - "source": 410, - "pc": [ - 294, - 295 - ] - }, - { - "teal": 176, - "source": 410, - "pc": [ - 296, - 297 - ] - }, - { - "teal": 177, - "source": 410, - "pc": [ - 298, - 299 - ] - }, - { - "teal": 178, - "source": 410, - "pc": [ - 300 - ] - }, - { - "teal": 179, - "source": 410, - "pc": [ - 301, - 302, - 303 - ] - }, - { - "teal": 180, - "source": 410, - "pc": [ - 304, - 305 - ] - }, - { - "teal": 181, - "source": 410, - "pc": [ - 306, - 307 - ] - }, - { - "teal": 185, - "source": 411, - "pc": [ - 308, - 309 - ] - }, - { - "teal": 186, - "source": 411, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 187, - "source": 411, - "pc": [ - 312, - 313 - ] - }, - { - "teal": 188, - "source": 411, - "pc": [ - 314 - ] - }, - { - "teal": 189, - "source": 411, - "pc": [ - 315, - 316 - ] - }, - { - "teal": 190, - "source": 411, - "pc": [ - 317, - 318 - ] - }, - { - "teal": 191, - "source": 411, - "pc": [ - 319, - 320 - ] - }, - { - "teal": 192, - "source": 411, - "pc": [ - 321, - 322 - ] - }, - { - "teal": 193, - "source": 411, - "pc": [ - 323 - ] - }, - { - "teal": 194, - "source": 411, - "pc": [ - 324 - ] - }, - { - "teal": 195, - "source": 411, - "pc": [ - 325, - 326 - ] - }, - { - "teal": 196, - "source": 411, - "pc": [ - 327 - ] - }, - { - "teal": 197, - "source": 411, - "pc": [ - 328, - 329 - ] - }, - { - "teal": 198, - "source": 411, - "pc": [ - 330 - ] - }, - { - "teal": 199, - "source": 411, - "pc": [ - 331 - ] - }, - { - "teal": 200, - "source": 411, - "pc": [ - 332 - ] - }, - { - "teal": 201, - "source": 411, - "pc": [ - 333 - ] - }, - { - "teal": 202, - "source": 411, - "pc": [ - 334 - ] - }, - { - "teal": 203, - "source": 411, - "pc": [ - 335 - ] - }, - { - "teal": 204, - "source": 411, - "pc": [ - 336, - 337 - ] - }, - { - "teal": 205, - "source": 411, - "pc": [ - 338, - 339 - ] - }, - { - "teal": 206, - "source": 411, - "pc": [ - 340 - ] - }, - { - "teal": 207, - "source": 411, - "pc": [ - 341, - 342 - ] - }, - { - "teal": 208, - "source": 411, - "pc": [ - 343 - ] - }, - { - "teal": 209, - "source": 411, - "pc": [ - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351 - ] - }, - { - "teal": 210, - "source": 411, - "pc": [ - 352 - ] - }, - { - "teal": 211, - "source": 411, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 212, - "source": 411, - "pc": [ - 355, - 356 - ] - }, - { - "teal": 213, - "source": 411, - "pc": [ - 357, - 358 - ] - }, - { - "teal": 214, - "source": 411, - "pc": [ - 359, - 360 - ] - }, - { - "teal": 215, - "source": 411, - "pc": [ - 361 - ] - }, - { - "teal": 216, - "source": 411, - "pc": [ - 362, - 363 - ] - }, - { - "teal": 217, - "source": 411, - "pc": [ - 364 - ] - }, - { - "teal": 218, - "source": 411, - "pc": [ - 365 - ] - }, - { - "teal": 219, - "source": 411, - "pc": [ - 366 - ] - }, - { - "teal": 220, - "source": 411, - "pc": [ - 367 - ] - }, - { - "teal": 221, - "source": 411, - "pc": [ - 368, - 369 - ] - }, - { - "teal": 222, - "source": 411, - "pc": [ - 370, - 371, - 372 - ] - }, - { - "teal": 223, - "source": 411, - "pc": [ - 373, - 374 - ] - }, - { - "teal": 224, - "source": 411, - "pc": [ - 375, - 376 - ] - }, - { - "teal": 225, - "source": 411, - "pc": [ - 377 - ] - }, - { - "teal": 226, - "source": 411, - "pc": [ - 378 - ] - }, - { - "teal": 227, - "source": 411, - "pc": [ - 379, - 380, - 381 - ] - }, - { - "teal": 228, - "source": 411, - "pc": [ - 382, - 383 - ] - }, - { - "teal": 229, - "source": 411, - "pc": [ - 384, - 385 - ] - }, - { - "teal": 233, - "source": 412, - "pc": [ - 386, - 387 - ] - }, - { - "teal": 234, - "source": 412, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 235, - "source": 412, - "pc": [ - 390, - 391 - ] - }, - { - "teal": 236, - "source": 412, - "pc": [ - 392 - ] - }, - { - "teal": 237, - "source": 412, - "pc": [ - 393, - 394 - ] - }, - { - "teal": 238, - "source": 412, - "pc": [ - 395, - 396 - ] - }, - { - "teal": 239, - "source": 412, - "pc": [ - 397, - 398 - ] - }, - { - "teal": 240, - "source": 412, - "pc": [ - 399, - 400 - ] - }, - { - "teal": 241, - "source": 412, - "pc": [ - 401 - ] - }, - { - "teal": 242, - "source": 412, - "pc": [ - 402 - ] - }, - { - "teal": 243, - "source": 412, - "pc": [ - 403, - 404 - ] - }, - { - "teal": 244, - "source": 412, - "pc": [ - 405 - ] - }, - { - "teal": 245, - "source": 412, - "pc": [ - 406, - 407 - ] - }, - { - "teal": 246, - "source": 412, - "pc": [ - 408 - ] - }, - { - "teal": 247, - "source": 412, - "pc": [ - 409 - ] - }, - { - "teal": 248, - "source": 412, - "pc": [ - 410 - ] - }, - { - "teal": 249, - "source": 412, - "pc": [ - 411 - ] - }, - { - "teal": 250, - "source": 412, - "pc": [ - 412 - ] - }, - { - "teal": 251, - "source": 412, - "pc": [ - 413 - ] - }, - { - "teal": 252, - "source": 412, - "pc": [ - 414, - 415 - ] - }, - { - "teal": 253, - "source": 412, - "pc": [ - 416, - 417 - ] - }, - { - "teal": 254, - "source": 412, - "pc": [ - 418 - ] - }, - { - "teal": 255, - "source": 412, - "pc": [ - 419, - 420 - ] - }, - { - "teal": 256, - "source": 412, - "pc": [ - 421 - ] - }, - { - "teal": 257, - "source": 412, - "pc": [ - 422, - 423, - 424, - 425, - 426, - 427 - ] - }, - { - "teal": 258, - "source": 412, - "pc": [ - 428 - ] - }, - { - "teal": 259, - "source": 412, - "pc": [ - 429, - 430 - ] - }, - { - "teal": 260, - "source": 412, - "pc": [ - 431, - 432 - ] - }, - { - "teal": 261, - "source": 412, - "pc": [ - 433, - 434 - ] - }, - { - "teal": 262, - "source": 412, - "pc": [ - 435, - 436 - ] - }, - { - "teal": 263, - "source": 412, - "pc": [ - 437 - ] - }, - { - "teal": 264, - "source": 412, - "pc": [ - 438, - 439 - ] - }, - { - "teal": 265, - "source": 412, - "pc": [ - 440 - ] - }, - { - "teal": 266, - "source": 412, - "pc": [ - 441 - ] - }, - { - "teal": 267, - "source": 412, - "pc": [ - 442 - ] - }, - { - "teal": 268, - "source": 412, - "pc": [ - 443 - ] - }, - { - "teal": 269, - "source": 412, - "pc": [ - 444, - 445 - ] - }, - { - "teal": 270, - "source": 412, - "pc": [ - 446, - 447, - 448 - ] - }, - { - "teal": 271, - "source": 412, - "pc": [ - 449, - 450 - ] - }, - { - "teal": 272, - "source": 412, - "pc": [ - 451, - 452 - ] - }, - { - "teal": 276, - "source": 414, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 279, - "source": 405, - "pc": [ - 455, - 456 - ] - }, - { - "teal": 280, - "source": 405, - "pc": [ - 457 - ] - }, - { - "teal": 283, - "source": 404, - "pc": [ - 458 - ] - }, - { - "teal": 284, - "source": 404, - "pc": [ - 459 - ] - }, - { - "teal": 287, - "source": 404, - "pc": [ - 460, - 461, - 462, - 463, - 464, - 465 - ] - }, - { - "teal": 288, - "source": 404, - "pc": [ - 466, - 467, - 468 - ] - }, - { - "teal": 289, - "source": 404, - "pc": [ - 469, - 470, - 471, - 472 - ] - }, - { - "teal": 292, - "source": 404, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 473 - ] - }, - { - "teal": 295, - "source": 404, - "pc": [ - 474, - 475, - 476, - 477, - 478, - 479 - ] - }, - { - "teal": 296, - "source": 404, - "pc": [ - 480, - 481, - 482 - ] - }, - { - "teal": 297, - "source": 404, - "pc": [ - 483, - 484, - 485, - 486 - ] - }, - { - "teal": 300, - "source": 404, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 487 - ] - }, - { - "teal": 303, - "source": 404, - "pc": [ - 488, - 489, - 490 - ] - }, - { - "teal": 304, - "source": 404, - "pc": [ - 491, - 492 - ] - }, - { - "teal": 305, - "source": 404, - "pc": [ - 493, - 494 - ] - }, - { - "teal": 306, - "source": 404, - "pc": [ - 495 - ] - }, - { - "teal": 307, - "source": 404, - "pc": [ - 496, - 497 - ] - }, - { - "teal": 308, - "source": 404, - "pc": [ - 498, - 499 - ] - }, - { - "teal": 309, - "source": 404, - "pc": [ - 500 - ] - }, - { - "teal": 312, - "source": 404, - "pc": [ - 501, - 502, - 503 - ] - }, - { - "teal": 313, - "source": 404, - "pc": [ - 504, - 505 - ] - }, - { - "teal": 314, - "source": 404, - "pc": [ - 506, - 507 - ] - }, - { - "teal": 315, - "source": 404, - "pc": [ - 508 - ] - }, - { - "teal": 316, - "source": 404, - "pc": [ - 509, - 510 - ] - }, - { - "teal": 317, - "source": 404, - "pc": [ - 511, - 512 - ] - }, - { - "teal": 318, - "source": 404, - "pc": [ - 513 - ] - }, - { - "teal": 319, - "source": 404, - "pc": [ - 514 - ] - }, - { - "teal": 320, - "source": 404, - "pc": [ - 515, - 516 - ] - }, - { - "teal": 321, - "source": 404, - "pc": [ - 517 - ] - }, - { - "teal": 322, - "source": 404, - "pc": [ - 518 - ] - }, - { - "teal": 323, - "source": 404, - "pc": [ - 519 - ] - }, - { - "teal": 324, - "source": 404, - "pc": [ - 520, - 521, - 522 - ] - }, - { - "teal": 325, - "source": 404, - "pc": [ - 523, - 524 - ] - }, - { - "teal": 326, - "source": 404, - "pc": [ - 525, - 526 - ] - }, - { - "teal": 327, - "source": 404, - "pc": [ - 527 - ] - }, - { - "teal": 328, - "source": 404, - "pc": [ - 528 - ] - }, - { - "teal": 329, - "source": 404, - "pc": [ - 529, - 530 - ] - }, - { - "teal": 330, - "source": 404, - "pc": [ - 531, - 532 - ] - }, - { - "teal": 331, - "source": 404, - "pc": [ - 533, - 534 - ] - }, - { - "teal": 332, - "source": 404, - "pc": [ - 535, - 536 - ] - }, - { - "teal": 333, - "source": 404, - "pc": [ - 537 - ] - }, - { - "teal": 336, - "source": 404, - "pc": [ - 538, - 539, - 540 - ] - }, - { - "teal": 337, - "source": 404, - "pc": [ - 541, - 542 - ] - }, - { - "teal": 338, - "source": 404, - "pc": [ - 543, - 544 - ] - }, - { - "teal": 339, - "source": 404, - "pc": [ - 545, - 546 - ] - }, - { - "teal": 340, - "source": 404, - "pc": [ - 547 - ] - }, - { - "teal": 341, - "source": 404, - "pc": [ - 548, - 549 - ] - }, - { - "teal": 342, - "source": 404, - "pc": [ - 550, - 551, - 552 - ] - }, - { - "teal": 343, - "source": 404, - "pc": [ - 553 - ] - }, - { - "teal": 344, - "source": 404, - "pc": [ - 554, - 555, - 556 - ] - }, - { - "teal": 347, - "source": 404, - "pc": [ - 557 - ] - }, - { - "teal": 348, - "source": 404, - "pc": [ - 558 - ] - }, - { - "teal": 351, - "source": 404, - "pc": [ - 559 - ] - }, - { - "teal": 352, - "source": 404, - "pc": [ - 560, - 561, - 562 - ] - }, - { - "teal": 353, - "source": 404, - "pc": [ - 563, - 564 - ] - }, - { - "teal": 354, - "source": 404, - "pc": [ - 565 - ] - }, - { - "teal": 355, - "source": 404, - "pc": [ - 566, - 567 - ] - }, - { - "teal": 356, - "source": 404, - "pc": [ - 568 - ] - }, - { - "teal": 357, - "source": 404, - "pc": [ - 569 - ] - }, - { - "teal": 358, - "source": 404, - "pc": [ - 570, - 571 - ] - }, - { - "teal": 359, - "source": 404, - "pc": [ - 572 - ] - }, - { - "teal": 362, - "source": 404, - "pc": [ - 573, - 574 - ] - }, - { - "teal": 363, - "source": 404, - "pc": [ - 575 - ] - }, - { - "teal": 364, - "source": 404, - "pc": [ - 576, - 577 - ] - }, - { - "teal": 365, - "source": 404, - "pc": [ - 578 - ] - }, - { - "teal": 366, - "source": 404, - "pc": [ - 579, - 580, - 581 - ] - }, - { - "teal": 367, - "source": 404, - "pc": [ - 582, - 583 - ] - }, - { - "teal": 368, - "source": 404, - "pc": [ - 584 - ] - }, - { - "teal": 369, - "source": 404, - "pc": [ - 585, - 586 - ] - }, - { - "teal": 370, - "source": 404, - "pc": [ - 587 - ] - }, - { - "teal": 371, - "source": 404, - "pc": [ - 588, - 589 - ] - }, - { - "teal": 372, - "source": 404, - "pc": [ - 590, - 591, - 592 - ] - }, - { - "teal": 375, - "source": 404, - "pc": [ - 593, - 594 - ] - }, - { - "teal": 376, - "source": 404, - "pc": [ - 595, - 596 - ] - }, - { - "teal": 377, - "source": 404, - "pc": [ - 597 - ] - }, - { - "teal": 378, - "source": 404, - "pc": [ - 598 - ] - }, - { - "teal": 379, - "source": 404, - "pc": [ - 599, - 600 - ] - }, - { - "teal": 382, - "source": 404, - "pc": [ - 601 - ] - }, - { - "teal": 383, - "source": 404, - "pc": [ - 602, - 603 - ] - }, - { - "teal": 384, - "source": 404, - "pc": [ - 604 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 66 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 516 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 530 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUoKTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCnVwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MDYKCS8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXSA9IFs5LCBbOF0sIFs3XSwgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwNwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDAwNgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAxMDUKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDA4CgkvLyBhWzBdID0gOTkgYXMgdWludDw4PgoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJYnl0ZSAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOQoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBhMDAwYgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDYKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MTAKCS8vIGFbMl0gPSBbMTIsIDEzXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDMKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMGMwZAoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxMQoJLy8gYVszXSA9IFsxNCwgMTVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDEyCgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDE0CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUR5bmFtaWNBcnJheUluVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDAyMDAwYTAwMGIgMHgwMDAyMDAwZTAwMGYgMHgwMDAyMGMwZCAweDAwMDIxMDExIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHVpbnQ4W10sdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDA2CgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCBbN10sIFs2XSwgWzVdXQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXB1c2hieXRlcyAweDA5CgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAxMDAwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwNwoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOAoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hieXRlcyAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQwOQoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMGEwMDBiCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJcHVzaGludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDEwCgkvLyBhWzJdID0gWzEyLCAxM10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjBjMGQKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJcHVzaGludCA0CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDExCgkvLyBhWzNdID0gWzE0LCAxNV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgdWludDw4PltdLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwZTAwMGYKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxMgoJLy8gYVs0XSA9IFsxNiwgMTddCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDcKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJcHVzaGludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIxMDExCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCB1aW50PDg+W10sIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQxNAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHVpbnQ8OD5bXSwgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4YzU0NDYwZmQgLy8gbWV0aG9kICJ1cGRhdGVEeW5hbWljQXJyYXlJblR1cGxlKCkodWludDgsdWludDE2W10sdWludDhbXSx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0FycmF5SW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCXB1c2hpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAFAgEABgQmAQAxGBQlCzEZCI0MAa0AAAAAAAAAAAAAAZ8AAAAAAAAAAAAAAIAEFR98dYgABFCwI0OKAAEoKCiAAgAJgAEJiAGdgAQAAQAIiAGhgAMAAQeIAZmABAABAAaIAZCAAwABBYgBiEhQjACLADX/NP+AAWNcAIwAiwA1/yNJNfs0/zT/TwJZSTX+STT/TFkiCyIINf00/yQ0/lKABgACAAoAC0k1/DT/NP40/Qg0/xVSUFA1/4gBfzT6NPsiCIgBUzT6NPshBAiIAUk0+jT7JQiIAUA0/4wAiwA1/4EDSTX7NP80/08CWUk1/kk0/0xZIwsiCDX9NP8kNP5SgAQAAgwNSTX8NP80/jT9CDT/FVJQUDX/iAEgNPo0+yIIiAD0NPo0+yEECIgA6jT/jACLADX/gQVJNfs0/zT/TwJZSTX+STT/TFkiCyIINf00/yQ0/lKABgACAA4AD0k1/DT/NP40/Qg0/xVSUFA1/4gAyDT6NPsiCIgAnDT/jACLADX/gQdJNfs0/zT/TwJZSTX+STT/TFkjCyIINf00/yQ0/lKABAACEBFJNfw0/zT+NP0INP8VUlBQNf+IAHw0/4wAiwCMAIkjQ4AEuER7NjYaAI4B//EAgATFRGD9NhoAjgH+RwCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iYoCAIv+NP+L/1k0+UEABAhCAAJMCRZXBgI0/0yL/0xdNf+JNPwVNP0MQAALNPwVNP0jNflCAAg0/TT8FSQ1+Qk1+ok=", + "approval": "CiABAiYFBgACAAoACwYAAgAOAA8EAAIMDQQAAhARADEYFIEGCzEZCI0MAcMAAAAAAAAAAAAAAbUAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIACYABCYgBr4AEAAEACIgBs4ADAAEHiAGrgAQAAQAGiAGigAMAAQWIAZpIUIwAiwA1/zT/gAFjXACMAIsANf+BAUk1+zT/NP9PAllJNf5JNP9MWYECC4ECCDX9NP+BADT+UoAGAAIACgALSTX8NP80/jT9CDT/FVJQUDX/iAGNNPo0+4ECCIgBYDT6NPuBBAiIAVY0+jT7gQYIiAFMNP+MAIsANf+BA0k1+zT/NP9PAllJNf5JNP9MWYEBC4ECCDX9NP+BADT+UoAEAAIMDUk1/DT/NP40/Qg0/xVSUFA1/4gBKTT6NPuBAgiIAPw0+jT7gQQIiADyNP+MAIsANf+BBUk1+zT/NP9PAllJNf5JNP9MWYECC4ECCDX9NP+BADT+UoAGAAIADgAPSTX8NP80/jT9CDT/FVJQUDX/iADNNPo0+4ECCIgAoDT/jACLADX/gQdJNfs0/zT/TwJZSTX+STT/TFmBAQuBAgg1/TT/gQA0/lKABAACEBFJNfw0/zT+NP0INP8VUlBQNf+IAH00/4wAiwCMAImBAUOABLhEezY2GgCOAf/wAIAExURg/TYaAI4B/jEAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/omKAgCL/jT/i/9ZNPlBAAQIQgACTAkWVwYCNP9Mi/9MXTX/iTT8FTT9DEAADDT8FTT9gQE1+UIACTT9NPwVgQA1+Qk1+ok=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal index 55c5b1ebd..ceac92cd0 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x00030a0b0c 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateDynamicElementInTupleWithSameLength()(uint16,uint8[],uint16,uint8[],uint16) *abi_route_updateDynamicElementInTupleWithSameLength: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateDynamicElementInTupleWithSameLength()(uint16,uint8[],uint16,uint8[],uint16) callsub updateDynamicElementInTupleWithSameLength concat log - int 1 + pushint 1 return // updateDynamicElementInTupleWithSameLength(): [uint16, uint<8>[], uint16, uint<8>[], uint16] @@ -45,16 +46,16 @@ updateDynamicElementInTupleWithSameLength: // a: [uint16, uint<8>[], uint16, uint<8>[], uint16] = [1, [2, 3, 4], 5, [6, 7, 8], 9] byte 0x // initial head byte 0x // initial tail - byte 0x000a // initial head offset - byte 0x0001 + pushbytes 0x000a // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x0003020304 + pushbytes 0x0003020304 callsub *process_dynamic_tuple_element - byte 0x0005 + pushbytes 0x0005 callsub *process_static_tuple_element - byte 0x0003060708 + pushbytes 0x0003060708 callsub *process_dynamic_tuple_element - byte 0x0009 + pushbytes 0x0009 callsub *process_static_tuple_element pop // pop head offset concat // concat head and tail @@ -64,7 +65,7 @@ updateDynamicElementInTupleWithSameLength: // a[1] = [10, 11, 12] frame_dig 0 // a: [uint16, uint<8>[], uint16, uint<8>[], uint16] store 255 // full array - int 2 + pushint 2 dup store 251 // element head offset load 255 // full array @@ -77,13 +78,13 @@ updateDynamicElementInTupleWithSameLength: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00030a0b0c @@ -102,7 +103,7 @@ updateDynamicElementInTupleWithSameLength: callsub *get_length_difference load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -117,11 +118,11 @@ updateDynamicElementInTupleWithSameLength: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -129,7 +130,7 @@ updateDynamicElementInTupleWithSameLength: err *call_NoOp: - method "updateDynamicElementInTupleWithSameLength()(uint16,uint8[],uint16,uint8[],uint16)" + pushbytes 0x42dea838 // method "updateDynamicElementInTupleWithSameLength()(uint16,uint8[],uint16,uint8[],uint16)" txna ApplicationArgs 0 match *abi_route_updateDynamicElementInTupleWithSameLength @@ -204,7 +205,7 @@ updateDynamicElementInTupleWithSameLength: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -212,7 +213,7 @@ updateDynamicElementInTupleWithSameLength: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json index c547a9e8c..5b0eebe41 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCnVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzAwCgkvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyLCAzLCA0XSwgNSwgWzYsIDcsIDhdLCA5XQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwYSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMwMjAzMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwNQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMwNjA3MDgKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDIKCS8vIGFbMV0gPSBbMTAsIDExLCAxMl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDMwYTBiMGMKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKSh1aW50MTYsdWludDhbXSx1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAzMGEwYjBjIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKSh1aW50MTYsdWludDhbXSx1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQp1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcwMAoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMiwgMywgNF0sIDUsIFs2LCA3LCA4XSwgOV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwYSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzMDIwMzA0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwNQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMzA2MDcwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDkKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzAyCgkvLyBhWzFdID0gWzEwLCAxMSwgMTJdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCXB1c2hpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMzBhMGIwYwoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0MmRlYTgzOCAvLyBtZXRob2QgInVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoKCkodWludDE2LHVpbnQ4W10sdWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglwdXNoaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglwdXNoaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc56_draft.json index e92c575fd..1c478c15b 100644 --- a/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc56_draft.json @@ -61,1315 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 698, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 698, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 698, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 698, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 16, - "source": 698, - "pc": [ - 14 - ] - }, - { - "teal": 17, - "source": 698, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 18, - "source": 698, - "pc": [ - 17 - ] - }, - { - "teal": 19, - "source": 698, - "pc": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ] - }, - { - "teal": 23, - "source": 698, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 44 - ] - }, - { - "teal": 28, - "source": 699, - "pc": [ - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 31, - "source": 699, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 32, - "source": 699, - "pc": [ - 54 - ] - }, - { - "teal": 33, - "source": 699, - "pc": [ - 55 - ] - }, - { - "teal": 34, - "source": 699, - "pc": [ - 56 - ] - }, - { - "teal": 35, - "source": 699, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 699, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 42, - "source": 699, - "pc": [ - 61 - ] - }, - { - "teal": 46, - "source": 700, - "pc": [ - 62 - ] - }, - { - "teal": 47, - "source": 700, - "pc": [ - 63 - ] - }, - { - "teal": 48, - "source": 700, - "pc": [ - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 49, - "source": 700, - "pc": [ - 68, - 69, - 70, - 71 - ] - }, - { - "teal": 50, - "source": 700, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 51, - "source": 700, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 52, - "source": 700, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 53, - "source": 700, - "pc": [ - 85, - 86, - 87, - 88 - ] - }, - { - "teal": 54, - "source": 700, - "pc": [ - 89, - 90, - 91 - ] - }, - { - "teal": 55, - "source": 700, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97, - 98 - ] - }, - { - "teal": 56, - "source": 700, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 57, - "source": 700, - "pc": [ - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 58, - "source": 700, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 59, - "source": 700, - "pc": [ - 109 - ] - }, - { - "teal": 60, - "source": 700, - "pc": [ - 110 - ] - }, - { - "teal": 61, - "source": 700, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 65, - "source": 702, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 66, - "source": 702, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 67, - "source": 702, - "pc": [ - 117 - ] - }, - { - "teal": 68, - "source": 702, - "pc": [ - 118 - ] - }, - { - "teal": 69, - "source": 702, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 70, - "source": 702, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 71, - "source": 702, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 72, - "source": 702, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 73, - "source": 702, - "pc": [ - 127 - ] - }, - { - "teal": 74, - "source": 702, - "pc": [ - 128 - ] - }, - { - "teal": 75, - "source": 702, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 76, - "source": 702, - "pc": [ - 131 - ] - }, - { - "teal": 77, - "source": 702, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 78, - "source": 702, - "pc": [ - 134 - ] - }, - { - "teal": 79, - "source": 702, - "pc": [ - 135 - ] - }, - { - "teal": 80, - "source": 702, - "pc": [ - 136 - ] - }, - { - "teal": 81, - "source": 702, - "pc": [ - 137 - ] - }, - { - "teal": 82, - "source": 702, - "pc": [ - 138 - ] - }, - { - "teal": 83, - "source": 702, - "pc": [ - 139 - ] - }, - { - "teal": 84, - "source": 702, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 85, - "source": 702, - "pc": [ - 142, - 143 - ] - }, - { - "teal": 86, - "source": 702, - "pc": [ - 144 - ] - }, - { - "teal": 87, - "source": 702, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 88, - "source": 702, - "pc": [ - 147 - ] - }, - { - "teal": 89, - "source": 702, - "pc": [ - 148, - 149, - 150, - 151, - 152, - 153, - 154 - ] - }, - { - "teal": 90, - "source": 702, - "pc": [ - 155 - ] - }, - { - "teal": 91, - "source": 702, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 92, - "source": 702, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 93, - "source": 702, - "pc": [ - 160, - 161 - ] - }, - { - "teal": 94, - "source": 702, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 95, - "source": 702, - "pc": [ - 164 - ] - }, - { - "teal": 96, - "source": 702, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 97, - "source": 702, - "pc": [ - 167 - ] - }, - { - "teal": 98, - "source": 702, - "pc": [ - 168 - ] - }, - { - "teal": 99, - "source": 702, - "pc": [ - 169 - ] - }, - { - "teal": 100, - "source": 702, - "pc": [ - 170 - ] - }, - { - "teal": 101, - "source": 702, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 102, - "source": 702, - "pc": [ - 173, - 174, - 175 - ] - }, - { - "teal": 103, - "source": 702, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 104, - "source": 702, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 105, - "source": 702, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 106, - "source": 702, - "pc": [ - 182 - ] - }, - { - "teal": 107, - "source": 702, - "pc": [ - 183, - 184, - 185 - ] - }, - { - "teal": 108, - "source": 702, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 109, - "source": 702, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 113, - "source": 704, - "pc": [ - 190, - 191 - ] - }, - { - "teal": 116, - "source": 699, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 117, - "source": 699, - "pc": [ - 194 - ] - }, - { - "teal": 120, - "source": 698, - "pc": [ - 195 - ] - }, - { - "teal": 121, - "source": 698, - "pc": [ - 196 - ] - }, - { - "teal": 124, - "source": 698, - "pc": [ - 197, - 198, - 199, - 200, - 201, - 202 - ] - }, - { - "teal": 125, - "source": 698, - "pc": [ - 203, - 204, - 205 - ] - }, - { - "teal": 126, - "source": 698, - "pc": [ - 206, - 207, - 208, - 209 - ] - }, - { - "teal": 129, - "source": 698, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 210 - ] - }, - { - "teal": 132, - "source": 698, - "pc": [ - 211, - 212, - 213, - 214, - 215, - 216 - ] - }, - { - "teal": 133, - "source": 698, - "pc": [ - 217, - 218, - 219 - ] - }, - { - "teal": 134, - "source": 698, - "pc": [ - 220, - 221, - 222, - 223 - ] - }, - { - "teal": 137, - "source": 698, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 224 - ] - }, - { - "teal": 140, - "source": 698, - "pc": [ - 225, - 226, - 227 - ] - }, - { - "teal": 141, - "source": 698, - "pc": [ - 228, - 229 - ] - }, - { - "teal": 142, - "source": 698, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 143, - "source": 698, - "pc": [ - 232 - ] - }, - { - "teal": 144, - "source": 698, - "pc": [ - 233, - 234 - ] - }, - { - "teal": 145, - "source": 698, - "pc": [ - 235, - 236 - ] - }, - { - "teal": 146, - "source": 698, - "pc": [ - 237 - ] - }, - { - "teal": 149, - "source": 698, - "pc": [ - 238, - 239, - 240 - ] - }, - { - "teal": 150, - "source": 698, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 151, - "source": 698, - "pc": [ - 243, - 244 - ] - }, - { - "teal": 152, - "source": 698, - "pc": [ - 245 - ] - }, - { - "teal": 153, - "source": 698, - "pc": [ - 246, - 247 - ] - }, - { - "teal": 154, - "source": 698, - "pc": [ - 248, - 249 - ] - }, - { - "teal": 155, - "source": 698, - "pc": [ - 250 - ] - }, - { - "teal": 156, - "source": 698, - "pc": [ - 251 - ] - }, - { - "teal": 157, - "source": 698, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 158, - "source": 698, - "pc": [ - 254 - ] - }, - { - "teal": 159, - "source": 698, - "pc": [ - 255 - ] - }, - { - "teal": 160, - "source": 698, - "pc": [ - 256 - ] - }, - { - "teal": 161, - "source": 698, - "pc": [ - 257, - 258, - 259 - ] - }, - { - "teal": 162, - "source": 698, - "pc": [ - 260, - 261 - ] - }, - { - "teal": 163, - "source": 698, - "pc": [ - 262, - 263 - ] - }, - { - "teal": 164, - "source": 698, - "pc": [ - 264 - ] - }, - { - "teal": 165, - "source": 698, - "pc": [ - 265 - ] - }, - { - "teal": 166, - "source": 698, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 167, - "source": 698, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 168, - "source": 698, - "pc": [ - 270, - 271 - ] - }, - { - "teal": 169, - "source": 698, - "pc": [ - 272, - 273 - ] - }, - { - "teal": 170, - "source": 698, - "pc": [ - 274 - ] - }, - { - "teal": 173, - "source": 698, - "pc": [ - 275, - 276, - 277 - ] - }, - { - "teal": 174, - "source": 698, - "pc": [ - 278, - 279 - ] - }, - { - "teal": 175, - "source": 698, - "pc": [ - 280, - 281 - ] - }, - { - "teal": 176, - "source": 698, - "pc": [ - 282, - 283 - ] - }, - { - "teal": 177, - "source": 698, - "pc": [ - 284 - ] - }, - { - "teal": 178, - "source": 698, - "pc": [ - 285, - 286 - ] - }, - { - "teal": 179, - "source": 698, - "pc": [ - 287, - 288, - 289 - ] - }, - { - "teal": 180, - "source": 698, - "pc": [ - 290 - ] - }, - { - "teal": 181, - "source": 698, - "pc": [ - 291, - 292, - 293 - ] - }, - { - "teal": 184, - "source": 698, - "pc": [ - 294 - ] - }, - { - "teal": 185, - "source": 698, - "pc": [ - 295 - ] - }, - { - "teal": 188, - "source": 698, - "pc": [ - 296 - ] - }, - { - "teal": 189, - "source": 698, - "pc": [ - 297, - 298, - 299 - ] - }, - { - "teal": 190, - "source": 698, - "pc": [ - 300, - 301 - ] - }, - { - "teal": 191, - "source": 698, - "pc": [ - 302 - ] - }, - { - "teal": 192, - "source": 698, - "pc": [ - 303, - 304 - ] - }, - { - "teal": 193, - "source": 698, - "pc": [ - 305 - ] - }, - { - "teal": 194, - "source": 698, - "pc": [ - 306 - ] - }, - { - "teal": 195, - "source": 698, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 196, - "source": 698, - "pc": [ - 309 - ] - }, - { - "teal": 199, - "source": 698, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 200, - "source": 698, - "pc": [ - 312 - ] - }, - { - "teal": 201, - "source": 698, - "pc": [ - 313, - 314 - ] - }, - { - "teal": 202, - "source": 698, - "pc": [ - 315 - ] - }, - { - "teal": 203, - "source": 698, - "pc": [ - 316, - 317, - 318 - ] - }, - { - "teal": 204, - "source": 698, - "pc": [ - 319, - 320 - ] - }, - { - "teal": 205, - "source": 698, - "pc": [ - 321 - ] - }, - { - "teal": 206, - "source": 698, - "pc": [ - 322, - 323 - ] - }, - { - "teal": 207, - "source": 698, - "pc": [ - 324 - ] - }, - { - "teal": 208, - "source": 698, - "pc": [ - 325, - 326 - ] - }, - { - "teal": 209, - "source": 698, - "pc": [ - 327, - 328, - 329 - ] - }, - { - "teal": 212, - "source": 698, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 213, - "source": 698, - "pc": [ - 332, - 333 - ] - }, - { - "teal": 214, - "source": 698, - "pc": [ - 334 - ] - }, - { - "teal": 215, - "source": 698, - "pc": [ - 335 - ] - }, - { - "teal": 216, - "source": 698, - "pc": [ - 336, - 337 - ] - }, - { - "teal": 219, - "source": 698, - "pc": [ - 338 - ] - }, - { - "teal": 220, - "source": 698, - "pc": [ - 339, - 340 - ] - }, - { - "teal": 221, - "source": 698, - "pc": [ - 341 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 45 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 220 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 234 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCnVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzAwCgkvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdID0gWzEsIFsyLCAzLCA0XSwgNSwgWzYsIDcsIDhdLCA5XQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwYSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMwMjAzMDQKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwNQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDMwNjA3MDgKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDIKCS8vIGFbMV0gPSBbMTAsIDExLCAxMl0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDMwYTBiMGMKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKSh1aW50MTYsdWludDhbXSx1aW50MTYsdWludDhbXSx1aW50MTYpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAzMGEwYjBjIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKSh1aW50MTYsdWludDhbXSx1aW50MTYsdWludDhbXSx1aW50MTYpCiphYmlfcm91dGVfdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aCgpKHVpbnQxNix1aW50OFtdLHVpbnQxNix1aW50OFtdLHVpbnQxNikKCWNhbGxzdWIgdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgoKTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQp1cGRhdGVEeW5hbWljRWxlbWVudEluVHVwbGVXaXRoU2FtZUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjcwMAoJLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XSA9IFsxLCBbMiwgMywgNF0sIDUsIFs2LCA3LCA4XSwgOV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwYSAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzMDIwMzA0CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwNQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMzA2MDcwOAoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDkKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2LCB1aW50PDg+W10sIHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzAyCgkvLyBhWzFdID0gWzEwLCAxMSwgMTJdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2LCB1aW50PDg+W10sIHVpbnQxNiwgdWludDw4PltdLCB1aW50MTZdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCXB1c2hpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMzBhMGIwYwoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MDQKCS8vIHJldHVybiBhOwoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNiwgdWludDw4PltdLCB1aW50MTYsIHVpbnQ8OD5bXSwgdWludDE2XQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0MmRlYTgzOCAvLyBtZXRob2QgInVwZGF0ZUR5bmFtaWNFbGVtZW50SW5UdXBsZVdpdGhTYW1lTGVuZ3RoKCkodWludDE2LHVpbnQ4W10sdWludDE2LHVpbnQ4W10sdWludDE2KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlRHluYW1pY0VsZW1lbnRJblR1cGxlV2l0aFNhbWVMZW5ndGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglwdXNoaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglwdXNoaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIAJgEAMRgUgQYLMRkIjQwApwAAAAAAAAAAAAAAmQAAAAAAAAAAAAAAgAQVH3x1iAAEULAiQ4oAASgoKIACAAqAAgABiACWgAUAAwIDBIgAmYACAAWIAIWABQADBgcIiACIgAIACYgAdEhQjACLADX/I0k1+zT/NP9PAllJNf5JNP9MWSILIwg1/TT/JDT+UoAFAAMKCwxJNfw0/zT+NP0INP8VUlBQNf+IAIY0+jT7gQQIiABZNP+MAIsAjACJIkOABLhEezY2GgCOAf/xAIAEQt6oODYaAI4B/00AigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/omKAgCL/jT/i/9ZNPlBAAQIQgACTAkWVwYCNP9Mi/9MXTX/iTT8FTT9DEAACzT8FTT9IjX5QgAINP00/BUkNfkJNfqJ", + "approval": "CiYCBQADCgsMADEYFIEGCzEZCI0MALAAAAAAAAAAAAAAAKIAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIACoACAAGIAJuABQADAgMEiACegAIABYgAioAFAAMGBwiIAI2AAgAJiAB5SFCMAIsANf+BAkk1+zT/NP9PAllJNf5JNP9MWYEBC4ECCDX9NP+BADT+UoAFAAMKCwxJNfw0/zT+NP0INP8VUlBQNf+IAIc0+jT7gQQIiABaNP+MAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABELeqDg2GgCOAf9EAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JigIAi/40/4v/WTT5QQAECEIAAkwJFlcGAjT/TIv/TF01/4k0/BU0/QxAAAw0/BU0/YEBNflCAAk0/TT8FYEANfkJNfqJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal index 56f807d88..68da1d0c7 100644 --- a/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateNamedTuple.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x000c48656c6c6f20576f726c6421 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateNamedTuple()string *abi_route_updateNamedTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateNamedTuple()string callsub updateNamedTuple @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // updateNamedTuple(): string @@ -57,10 +58,10 @@ updateNamedTuple: // } byte 0x // initial head byte 0x // initial tail - byte 0x0004 // initial head offset - byte 0x0001 + pushbytes 0x0004 // initial head offset + pushbytes 0x0001 callsub *process_static_tuple_element - byte 0x000348693f + pushbytes 0x000348693f callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -70,7 +71,7 @@ updateNamedTuple: // a.bar = 'Hello World!' frame_dig 0 // a: { foo: uint16; bar: string; } store 255 // full array - int 2 + pushint 2 dup store 251 // element head offset load 255 // full array @@ -83,13 +84,13 @@ updateNamedTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x000c48656c6c6f20576f726c6421 @@ -113,7 +114,7 @@ updateNamedTuple: // return a.bar; frame_dig 0 // a: { foo: uint16; bar: string; } store 255 // full array - int 2 + pushint 2 load 255 // full array load 255 // full array uncover 2 @@ -122,9 +123,9 @@ updateNamedTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 @@ -134,11 +135,11 @@ updateNamedTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -146,7 +147,7 @@ updateNamedTuple: err *call_NoOp: - method "updateNamedTuple()string" + pushbytes 0x2d96969a // method "updateNamedTuple()string" txna ApplicationArgs 0 match *abi_route_updateNamedTuple @@ -195,7 +196,7 @@ updateNamedTuple: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -203,7 +204,7 @@ updateNamedTuple: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json index 6307f8f6c..d309cf7eb 100644 --- a/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVOYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZU5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVOYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5hbWVkVHVwbGUoKTogc3RyaW5nCnVwZGF0ZU5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MTYKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hpPycsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI0CgkvLyBhLmJhciA9ICdIZWxsbyBXb3JsZCEnCglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI2CgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlTmFtZWRUdXBsZSgpc3RyaW5nCiphYmlfcm91dGVfdXBkYXRlTmFtZWRUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZU5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVOYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOYW1lZFR1cGxlKCk6IHN0cmluZwp1cGRhdGVOYW1lZFR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjE2CgkvLyBhOiB7CgkvLyAgICAgICBmb286IHVpbnQxNjsKCS8vICAgICAgIGJhcjogc3RyaW5nOwoJLy8gICAgIH0gPSB7CgkvLyAgICAgICBmb286IDEsCgkvLyAgICAgICBiYXI6ICdIaT8nLAoJLy8gICAgIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzNDg2OTNmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogeyAgICAgICBmb286IHVpbnQxNjsgICAgICAgYmFyOiBzdHJpbmc7ICAgICB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYyNAoJLy8gYS5iYXIgPSAnSGVsbG8gV29ybGQhJwoJZnJhbWVfZGlnIDAgLy8gYTogeyAgICAgICBmb286IHVpbnQxNjsgICAgICAgYmFyOiBzdHJpbmc7ICAgICB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCXB1c2hpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgICAgICAgZm9vOiB1aW50MTY7ICAgICAgIGJhcjogc3RyaW5nOyAgICAgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MjYKCS8vIHJldHVybiBhLmJhcjsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgICAgICAgZm9vOiB1aW50MTY7ICAgICAgIGJhcjogc3RyaW5nOyAgICAgfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmQ5Njk2OWEgLy8gbWV0aG9kICJ1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJcHVzaGludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJcHVzaGludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc56_draft.json index 9abbed892..86c4229c7 100644 --- a/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateNamedTuple.arc56_draft.json @@ -61,1232 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 614, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "teal": 13, - "source": 614, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 14, - "source": 614, - "pc": [ - 11 - ] - }, - { - "teal": 15, - "source": 614, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 16, - "source": 614, - "pc": [ - 14 - ] - }, - { - "teal": 17, - "source": 614, - "pc": [ - 15, - 16 - ] - }, - { - "teal": 18, - "source": 614, - "pc": [ - 17 - ] - }, - { - "teal": 19, - "source": 614, - "pc": [ - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43 - ] - }, - { - "teal": 23, - "source": 614, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 44 - ] - }, - { - "teal": 28, - "source": 615, - "pc": [ - 45, - 46, - 47, - 48, - 49, - 50 - ] - }, - { - "teal": 31, - "source": 615, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 32, - "source": 615, - "pc": [ - 54 - ] - }, - { - "teal": 33, - "source": 615, - "pc": [ - 55 - ] - }, - { - "teal": 34, - "source": 615, - "pc": [ - 56 - ] - }, - { - "teal": 35, - "source": 615, - "pc": [ - 57, - 58, - 59 - ] - }, - { - "teal": 36, - "source": 615, - "pc": [ - 60 - ] - }, - { - "teal": 37, - "source": 615, - "pc": [ - 61 - ] - }, - { - "teal": 38, - "source": 615, - "pc": [ - 62 - ] - }, - { - "teal": 39, - "source": 615, - "pc": [ - 63 - ] - }, - { - "teal": 40, - "source": 615, - "pc": [ - 64 - ] - }, - { - "teal": 41, - "source": 615, - "pc": [ - 65 - ] - }, - { - "teal": 45, - "source": 615, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 48, - "source": 615, - "pc": [ - 69 - ] - }, - { - "teal": 58, - "source": 619, - "pc": [ - 70 - ] - }, - { - "teal": 59, - "source": 619, - "pc": [ - 71 - ] - }, - { - "teal": 60, - "source": 619, - "pc": [ - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 61, - "source": 620, - "pc": [ - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 62, - "source": 620, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 63, - "source": 621, - "pc": [ - 83, - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 64, - "source": 621, - "pc": [ - 90, - 91, - 92 - ] - }, - { - "teal": 65, - "source": 619, - "pc": [ - 93 - ] - }, - { - "teal": 66, - "source": 619, - "pc": [ - 94 - ] - }, - { - "teal": 67, - "source": 616, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 71, - "source": 624, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 72, - "source": 624, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 73, - "source": 624, - "pc": [ - 101 - ] - }, - { - "teal": 74, - "source": 624, - "pc": [ - 102 - ] - }, - { - "teal": 75, - "source": 624, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 76, - "source": 624, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 77, - "source": 624, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 78, - "source": 624, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 79, - "source": 624, - "pc": [ - 111 - ] - }, - { - "teal": 80, - "source": 624, - "pc": [ - 112 - ] - }, - { - "teal": 81, - "source": 624, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 82, - "source": 624, - "pc": [ - 115 - ] - }, - { - "teal": 83, - "source": 624, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 84, - "source": 624, - "pc": [ - 118 - ] - }, - { - "teal": 85, - "source": 624, - "pc": [ - 119 - ] - }, - { - "teal": 86, - "source": 624, - "pc": [ - 120 - ] - }, - { - "teal": 87, - "source": 624, - "pc": [ - 121 - ] - }, - { - "teal": 88, - "source": 624, - "pc": [ - 122 - ] - }, - { - "teal": 89, - "source": 624, - "pc": [ - 123 - ] - }, - { - "teal": 90, - "source": 624, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 91, - "source": 624, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 92, - "source": 624, - "pc": [ - 128 - ] - }, - { - "teal": 93, - "source": 624, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 94, - "source": 624, - "pc": [ - 131 - ] - }, - { - "teal": 95, - "source": 624, - "pc": [ - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 96, - "source": 624, - "pc": [ - 148 - ] - }, - { - "teal": 97, - "source": 624, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 98, - "source": 624, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 99, - "source": 624, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 100, - "source": 624, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 101, - "source": 624, - "pc": [ - 157 - ] - }, - { - "teal": 102, - "source": 624, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 103, - "source": 624, - "pc": [ - 160 - ] - }, - { - "teal": 104, - "source": 624, - "pc": [ - 161 - ] - }, - { - "teal": 105, - "source": 624, - "pc": [ - 162 - ] - }, - { - "teal": 106, - "source": 624, - "pc": [ - 163 - ] - }, - { - "teal": 107, - "source": 624, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 108, - "source": 624, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 109, - "source": 624, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 110, - "source": 624, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 114, - "source": 626, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 115, - "source": 626, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 116, - "source": 626, - "pc": [ - 177 - ] - }, - { - "teal": 117, - "source": 626, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 118, - "source": 626, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 119, - "source": 626, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 120, - "source": 626, - "pc": [ - 184 - ] - }, - { - "teal": 121, - "source": 626, - "pc": [ - 185 - ] - }, - { - "teal": 122, - "source": 626, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 123, - "source": 626, - "pc": [ - 188 - ] - }, - { - "teal": 124, - "source": 626, - "pc": [ - 189 - ] - }, - { - "teal": 125, - "source": 626, - "pc": [ - 190 - ] - }, - { - "teal": 126, - "source": 626, - "pc": [ - 191 - ] - }, - { - "teal": 127, - "source": 626, - "pc": [ - 192 - ] - }, - { - "teal": 128, - "source": 626, - "pc": [ - 193 - ] - }, - { - "teal": 129, - "source": 626, - "pc": [ - 194 - ] - }, - { - "teal": 130, - "source": 626, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 133, - "source": 615, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 134, - "source": 615, - "pc": [ - 200 - ] - }, - { - "teal": 137, - "source": 614, - "pc": [ - 201 - ] - }, - { - "teal": 138, - "source": 614, - "pc": [ - 202 - ] - }, - { - "teal": 141, - "source": 614, - "pc": [ - 203, - 204, - 205, - 206, - 207, - 208 - ] - }, - { - "teal": 142, - "source": 614, - "pc": [ - 209, - 210, - 211 - ] - }, - { - "teal": 143, - "source": 614, - "pc": [ - 212, - 213, - 214, - 215 - ] - }, - { - "teal": 146, - "source": 614, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 216 - ] - }, - { - "teal": 149, - "source": 614, - "pc": [ - 217, - 218, - 219, - 220, - 221, - 222 - ] - }, - { - "teal": 150, - "source": 614, - "pc": [ - 223, - 224, - 225 - ] - }, - { - "teal": 151, - "source": 614, - "pc": [ - 226, - 227, - 228, - 229 - ] - }, - { - "teal": 154, - "source": 614, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 230 - ] - }, - { - "teal": 157, - "source": 614, - "pc": [ - 231, - 232, - 233 - ] - }, - { - "teal": 158, - "source": 614, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 159, - "source": 614, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 160, - "source": 614, - "pc": [ - 238 - ] - }, - { - "teal": 161, - "source": 614, - "pc": [ - 239, - 240 - ] - }, - { - "teal": 162, - "source": 614, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 163, - "source": 614, - "pc": [ - 243 - ] - }, - { - "teal": 166, - "source": 614, - "pc": [ - 244, - 245, - 246 - ] - }, - { - "teal": 167, - "source": 614, - "pc": [ - 247, - 248 - ] - }, - { - "teal": 168, - "source": 614, - "pc": [ - 249, - 250 - ] - }, - { - "teal": 169, - "source": 614, - "pc": [ - 251 - ] - }, - { - "teal": 170, - "source": 614, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 171, - "source": 614, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 172, - "source": 614, - "pc": [ - 256 - ] - }, - { - "teal": 173, - "source": 614, - "pc": [ - 257 - ] - }, - { - "teal": 174, - "source": 614, - "pc": [ - 258, - 259 - ] - }, - { - "teal": 175, - "source": 614, - "pc": [ - 260 - ] - }, - { - "teal": 176, - "source": 614, - "pc": [ - 261 - ] - }, - { - "teal": 177, - "source": 614, - "pc": [ - 262 - ] - }, - { - "teal": 178, - "source": 614, - "pc": [ - 263, - 264, - 265 - ] - }, - { - "teal": 179, - "source": 614, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 180, - "source": 614, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 181, - "source": 614, - "pc": [ - 270 - ] - }, - { - "teal": 182, - "source": 614, - "pc": [ - 271 - ] - }, - { - "teal": 183, - "source": 614, - "pc": [ - 272, - 273 - ] - }, - { - "teal": 184, - "source": 614, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 185, - "source": 614, - "pc": [ - 276, - 277 - ] - }, - { - "teal": 186, - "source": 614, - "pc": [ - 278, - 279 - ] - }, - { - "teal": 187, - "source": 614, - "pc": [ - 280 - ] - }, - { - "teal": 190, - "source": 614, - "pc": [ - 281, - 282 - ] - }, - { - "teal": 191, - "source": 614, - "pc": [ - 283 - ] - }, - { - "teal": 192, - "source": 614, - "pc": [ - 284, - 285 - ] - }, - { - "teal": 193, - "source": 614, - "pc": [ - 286 - ] - }, - { - "teal": 194, - "source": 614, - "pc": [ - 287, - 288, - 289 - ] - }, - { - "teal": 195, - "source": 614, - "pc": [ - 290, - 291 - ] - }, - { - "teal": 196, - "source": 614, - "pc": [ - 292 - ] - }, - { - "teal": 197, - "source": 614, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 198, - "source": 614, - "pc": [ - 295 - ] - }, - { - "teal": 199, - "source": 614, - "pc": [ - 296, - 297 - ] - }, - { - "teal": 200, - "source": 614, - "pc": [ - 298, - 299, - 300 - ] - }, - { - "teal": 203, - "source": 614, - "pc": [ - 301, - 302 - ] - }, - { - "teal": 204, - "source": 614, - "pc": [ - 303, - 304 - ] - }, - { - "teal": 205, - "source": 614, - "pc": [ - 305 - ] - }, - { - "teal": 206, - "source": 614, - "pc": [ - 306 - ] - }, - { - "teal": 207, - "source": 614, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 210, - "source": 614, - "pc": [ - 309 - ] - }, - { - "teal": 211, - "source": 614, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 212, - "source": 614, - "pc": [ - 312 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 54 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 238 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 252 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVOYW1lZFR1cGxlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZU5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVOYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5hbWVkVHVwbGUoKTogc3RyaW5nCnVwZGF0ZU5hbWVkVHVwbGU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MTYKCS8vIGE6IHsKCS8vICAgICAgIGZvbzogdWludDE2OwoJLy8gICAgICAgYmFyOiBzdHJpbmc7CgkvLyAgICAgfSA9IHsKCS8vICAgICAgIGZvbzogMSwKCS8vICAgICAgIGJhcjogJ0hpPycsCgkvLyAgICAgfQoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglieXRlIDB4MDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI0CgkvLyBhLmJhciA9ICdIZWxsbyBXb3JsZCEnCglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjI2CgkvLyByZXR1cm4gYS5iYXI7CglmcmFtZV9kaWcgMCAvLyBhOiB7ICAgICAgIGZvbzogdWludDE2OyAgICAgICBiYXI6IHN0cmluZzsgICAgIH0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlTmFtZWRUdXBsZSgpc3RyaW5nCiphYmlfcm91dGVfdXBkYXRlTmFtZWRUdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZU5hbWVkVHVwbGUoKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVOYW1lZFR1cGxlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOYW1lZFR1cGxlKCk6IHN0cmluZwp1cGRhdGVOYW1lZFR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjE2CgkvLyBhOiB7CgkvLyAgICAgICBmb286IHVpbnQxNjsKCS8vICAgICAgIGJhcjogc3RyaW5nOwoJLy8gICAgIH0gPSB7CgkvLyAgICAgICBmb286IDEsCgkvLyAgICAgICBiYXI6ICdIaT8nLAoJLy8gICAgIH0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNCAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglwdXNoYnl0ZXMgMHgwMDAzNDg2OTNmCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogeyAgICAgICBmb286IHVpbnQxNjsgICAgICAgYmFyOiBzdHJpbmc7ICAgICB9CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjYyNAoJLy8gYS5iYXIgPSAnSGVsbG8gV29ybGQhJwoJZnJhbWVfZGlnIDAgLy8gYTogeyAgICAgICBmb286IHVpbnQxNjsgICAgICAgYmFyOiBzdHJpbmc7ICAgICB9CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCXB1c2hpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCXB1c2hpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IHsgICAgICAgZm9vOiB1aW50MTY7ICAgICAgIGJhcjogc3RyaW5nOyAgICAgfQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo2MjYKCS8vIHJldHVybiBhLmJhcjsKCWZyYW1lX2RpZyAwIC8vIGE6IHsgICAgICAgZm9vOiB1aW50MTY7ICAgICAgIGJhcjogc3RyaW5nOyAgICAgfQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MmQ5Njk2OWEgLy8gbWV0aG9kICJ1cGRhdGVOYW1lZFR1cGxlKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5hbWVkVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKmdldF9sZW5ndGhfZGlmZmVyZW5jZToKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJPAoJYm56ICpzd2FwcGVkX2RpZmZlcmVuY2UKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJcHVzaGludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJcHVzaGludCAwCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgoqZ2V0X2RpZmZlcmVuY2U6CgktIC8vIGdldCBsZW5ndGggZGlmZmVyZW5jZQoJc3RvcmUgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAQIAJgEAMRgUgQYLMRkIjQwArQAAAAAAAAAAAAAAnwAAAAAAAAAAAAAAgAQVH3x1iAAMSRUWVwYCTFBQsCJDigABKCgogAIABIACAAGIAJSABQADSGk/iACXSFCMAIsANf8jSTX7NP80/08CWUk1/kk0/0xZIgsjCDX9NP8kNP5SgA4ADEhlbGxvIFdvcmxkIUk1/DT/NP40/Qg0/xVSUFA1/4gAcDT/jACLADX/IzT/NP9PAllJNP9MWSILIwhYVwIAjACJIkOABLhEezY2GgCOAf/xAIAELZaWmjYaAI4B/0cAigQDi/yL/1CL/Yv+iYoEA4v8i/5QjPyL/0kVi/4XCBZXBgKM/ov9TFCM/Yv8i/2L/ok0/BU0/QxAAAs0/BU0/SI1+UIACDT9NPwVJDX5CTX6iQ==", + "approval": "CiYCDgAMSGVsbG8gV29ybGQhADEYFIEGCzEZCI0MALkAAAAAAAAAAAAAAKsAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAAIAAgACAAgAEgAIAAYgAnIAFAANIaT+IAJ9IUIwAiwA1/4ECSTX7NP80/08CWUk1/kk0/0xZgQELgQIINf00/4EANP5SgA4ADEhlbGxvIFdvcmxkIUk1/DT/NP40/Qg0/xVSUFA1/4gAdDT/jACLADX/gQI0/zT/TwJZSTT/TFmBAQuBAghYVwIAjACJgQFDgAS4RHs2NhoAjgH/8ACABC2Wlpo2GgCOAf87AIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JNPwVNP0MQAAMNPwVNP2BATX5QgAJNP00/BWBADX5CTX6iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal index c5214d47e..ad0e78b64 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateNestedStaticArray()uint64 *abi_route_updateNestedStaticArray: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateNestedStaticArray()uint64 callsub updateNestedStaticArray itob concat log - int 1 + pushint 1 return // updateNestedStaticArray(): uint64 @@ -40,7 +40,7 @@ updateNestedStaticArray: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:224 // a: StaticArray, 3> = [ @@ -48,13 +48,13 @@ updateNestedStaticArray: // [44, 55, 66], // [77, 88, 99], // ] - byte 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 + pushbytes 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 frame_bury 0 // a: StaticArray, 3> // tests/contracts/abi.algo.ts:230 // a[1] = [444, 555, 666] frame_dig 0 // a: StaticArray, 3> - byte 0x00000000000001bc000000000000022b000000000000029a + pushbytes 0x00000000000001bc000000000000022b000000000000029a replace2 24 frame_bury 0 // a: StaticArray, 3> @@ -69,11 +69,11 @@ updateNestedStaticArray: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +81,7 @@ updateNestedStaticArray: err *call_NoOp: - method "updateNestedStaticArray()uint64" + pushbytes 0x704142eb // method "updateNestedStaticArray()uint64" txna ApplicationArgs 0 match *abi_route_updateNestedStaticArray diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json index 6cdbc588f..d53de1f10 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5KCk6IHVpbnQ2NAp1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIyNAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzMAoJLy8gYVsxXSA9IFs0NDQsIDU1NSwgNjY2XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMWJjMDAwMDAwMDAwMDAwMDIyYjAwMDAwMDAwMDAwMDAyOWEKCXJlcGxhY2UyIDI0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjMyCgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpOiB1aW50NjQKdXBkYXRlTmVzdGVkU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIyNAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjMwCgkvLyBhWzFdID0gWzQ0NCwgNTU1LCA2NjZdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDFiYzAwMDAwMDAwMDAwMDAyMmIwMDAwMDAwMDAwMDAwMjlhCglyZXBsYWNlMiAyNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzMgoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDcwNDE0MmViIC8vIG1ldGhvZCAidXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc56_draft.json index f6d668a01..4f5eaa573 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc56_draft.json @@ -61,459 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 222, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 222, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 222, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 222, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 222, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 222, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 222, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 222, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 222, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 223, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 223, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 223, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 223, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 223, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 223, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 223, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 223, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 223, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 51, - "source": 224, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 52, - "source": 224, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 56, - "source": 230, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 57, - "source": 230, - "pc": [ - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162 - ] - }, - { - "teal": 58, - "source": 230, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 59, - "source": 230, - "pc": [ - 165, - 166 - ] - }, - { - "teal": 63, - "source": 232, - "pc": [ - 167, - 168 - ] - }, - { - "teal": 64, - "source": 232, - "pc": [ - 169, - 170, - 171 - ] - }, - { - "teal": 65, - "source": 232, - "pc": [ - 172 - ] - }, - { - "teal": 68, - "source": 223, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 69, - "source": 223, - "pc": [ - 175 - ] - }, - { - "teal": 72, - "source": 222, - "pc": [ - 176 - ] - }, - { - "teal": 73, - "source": 222, - "pc": [ - 177 - ] - }, - { - "teal": 76, - "source": 222, - "pc": [ - 178, - 179, - 180, - 181, - 182, - 183 - ] - }, - { - "teal": 77, - "source": 222, - "pc": [ - 184, - 185, - 186 - ] - }, - { - "teal": 78, - "source": 222, - "pc": [ - 187, - 188, - 189, - 190 - ] - }, - { - "teal": 81, - "source": 222, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 191 - ] - }, - { - "teal": 84, - "source": 222, - "pc": [ - 192, - 193, - 194, - 195, - 196, - 197 - ] - }, - { - "teal": 85, - "source": 222, - "pc": [ - 198, - 199, - 200 - ] - }, - { - "teal": 86, - "source": 222, - "pc": [ - 201, - 202, - 203, - 204 - ] - }, - { - "teal": 89, - "source": 222, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 205 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 190 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 204 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0CiphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5KCk6IHVpbnQ2NAp1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheToKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIyNAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzMAoJLy8gYVsxXSA9IFs0NDQsIDU1NSwgNjY2XQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMWJjMDAwMDAwMDAwMDAwMDIyYjAwMDAwMDAwMDAwMDAyOWEKCXJlcGxhY2UyIDI0CglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjMyCgkvLyByZXR1cm4gYVsxXVsxXTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CglleHRyYWN0IDMyIDgKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheQoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheSgpOiB1aW50NjQKdXBkYXRlTmVzdGVkU3RhdGljQXJyYXk6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIyNAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjMwCgkvLyBhWzFdID0gWzQ0NCwgNTU1LCA2NjZdCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDFiYzAwMDAwMDAwMDAwMDAyMmIwMDAwMDAwMDAwMDAwMjlhCglyZXBsYWNlMiAyNAoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIzMgoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDcwNDE0MmViIC8vIG1ldGhvZCAidXBkYXRlTmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXkKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAJkAAAAAAAAAAAAAAIsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACASAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIQAAAAAAAAAsAAAAAAAAADcAAAAAAAAAQgAAAAAAAABNAAAAAAAAAFgAAAAAAAAAY4wAiwCAGAAAAAAAAAG8AAAAAAAAAisAAAAAAAACmlwYjACLAFcgCBeMAIkiQ4AEuER7NjYaAI4B//EAgARwQULrNhoAjgH/WwA=", + "approval": "CjEYFIEGCzEZCI0MAJsAAAAAAAAAAAAAAI0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgEgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACEAAAAAAAAALAAAAAAAAAA3AAAAAAAAAEIAAAAAAAAATQAAAAAAAABYAAAAAAAAAGOMAIsAgBgAAAAAAAABvAAAAAAAAAIrAAAAAAAAAppcGIwAiwBXIAgXjACJgQFDgAS4RHs2NhoAjgH/8ACABHBBQus2GgCOAf9ZAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal index 4230b9115..2e020a16e 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +25,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateNestedStaticArrayElement()uint64 *abi_route_updateNestedStaticArrayElement: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateNestedStaticArrayElement()uint64 callsub updateNestedStaticArrayElement itob concat log - int 1 + pushint 1 return // updateNestedStaticArrayElement(): uint64 @@ -40,7 +40,7 @@ updateNestedStaticArrayElement: proto 0 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // tests/contracts/abi.algo.ts:210 // a: StaticArray, 3> = [ @@ -48,13 +48,13 @@ updateNestedStaticArrayElement: // [44, 55, 66], // [77, 88, 99], // ] - byte 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 + pushbytes 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 frame_bury 0 // a: StaticArray, 3> // tests/contracts/abi.algo.ts:216 // a[1][1] = 555 frame_dig 0 // a: StaticArray, 3> - byte 0x000000000000022b + pushbytes 0x000000000000022b replace2 32 frame_bury 0 // a: StaticArray, 3> @@ -69,11 +69,11 @@ updateNestedStaticArrayElement: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -81,7 +81,7 @@ updateNestedStaticArrayElement: err *call_NoOp: - method "updateNestedStaticArrayElement()uint64" + pushbytes 0xd691135b // method "updateNestedStaticArrayElement()uint64" txna ApplicationArgs 0 match *abi_route_updateNestedStaticArrayElement diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json index 1aa652fc3..2b37cc361 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKTogdWludDY0CnVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxNgoJLy8gYVsxXVsxXSA9IDU1NQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMjJiCglyZXBsYWNlMiAzMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxOAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV91cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50KCk6IHVpbnQ2NAp1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjE2CgkvLyBhWzFdWzFdID0gNTU1CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDIyYgoJcmVwbGFjZTIgMzIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMTgKCS8vIHJldHVybiBhWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWV4dHJhY3QgMzIgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkNjkxMTM1YiAvLyBtZXRob2QgInVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc56_draft.json index cce82422c..e9323bdce 100644 --- a/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc56_draft.json @@ -61,443 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 208, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 208, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 208, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 208, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 208, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 208, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 208, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 208, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 208, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 209, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 209, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 209, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 209, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 209, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 209, - "pc": [ - 52 - ] - }, - { - "teal": 36, - "source": 209, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 209, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 43, - "source": 209, - "pc": [ - 57, - 58 - ] - }, - { - "teal": 51, - "source": 210, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132 - ] - }, - { - "teal": 52, - "source": 210, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 56, - "source": 216, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 57, - "source": 216, - "pc": [ - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146 - ] - }, - { - "teal": 58, - "source": 216, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 59, - "source": 216, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 63, - "source": 218, - "pc": [ - 151, - 152 - ] - }, - { - "teal": 64, - "source": 218, - "pc": [ - 153, - 154, - 155 - ] - }, - { - "teal": 65, - "source": 218, - "pc": [ - 156 - ] - }, - { - "teal": 68, - "source": 209, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 69, - "source": 209, - "pc": [ - 159 - ] - }, - { - "teal": 72, - "source": 208, - "pc": [ - 160 - ] - }, - { - "teal": 73, - "source": 208, - "pc": [ - 161 - ] - }, - { - "teal": 76, - "source": 208, - "pc": [ - 162, - 163, - 164, - 165, - 166, - 167 - ] - }, - { - "teal": 77, - "source": 208, - "pc": [ - 168, - 169, - 170 - ] - }, - { - "teal": 78, - "source": 208, - "pc": [ - 171, - 172, - 173, - 174 - ] - }, - { - "teal": 81, - "source": 208, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 175 - ] - }, - { - "teal": 84, - "source": 208, - "pc": [ - 176, - 177, - 178, - 179, - 180, - 181 - ] - }, - { - "teal": 85, - "source": 208, - "pc": [ - 182, - 183, - 184 - ] - }, - { - "teal": 86, - "source": 208, - "pc": [ - 185, - 186, - 187, - 188 - ] - }, - { - "teal": 89, - "source": 208, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 189 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 174 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 188 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3VwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKTogdWludDY0CnVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxNgoJLy8gYVsxXVsxXSA9IDU1NQoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMjJiCglyZXBsYWNlMiAzMgoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4sIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxOAoJLy8gcmV0dXJuIGFbMV1bMV07CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJZXh0cmFjdCAzMiA4CglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50KCl1aW50NjQKKmFiaV9yb3V0ZV91cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQoKXVpbnQ2NAoJY2FsbHN1YiB1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gdXBkYXRlTmVzdGVkU3RhdGljQXJyYXlFbGVtZW50KCk6IHVpbnQ2NAp1cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJcHVzaGJ5dGVzIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIxMAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMzcwMDAwMDAwMDAwMDAwMDQyMDAwMDAwMDAwMDAwMDA0ZDAwMDAwMDAwMDAwMDAwNTgwMDAwMDAwMDAwMDAwMDYzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjE2CgkvLyBhWzFdWzFdID0gNTU1CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDIyYgoJcmVwbGFjZTIgMzIKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTxTdGF0aWNBcnJheTx1aW50NjQsIDM+LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMTgKCS8vIHJldHVybiBhWzFdWzFdOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4KCWV4dHJhY3QgMzIgOAoJYnRvaQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkNjkxMTM1YiAvLyBtZXRob2QgInVwZGF0ZU5lc3RlZFN0YXRpY0FycmF5RWxlbWVudCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVOZXN0ZWRTdGF0aWNBcnJheUVsZW1lbnQKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAIkAAAAAAAAAAAAAAHsAAAAAAAAAAAAAAIAEFR98dYgABRZQsCJDigABgACASAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIQAAAAAAAAAsAAAAAAAAADcAAAAAAAAAQgAAAAAAAABNAAAAAAAAAFgAAAAAAAAAY4wAiwCACAAAAAAAAAIrXCCMAIsAVyAIF4wAiSJDgAS4RHs2NhoAjgH/8QCABNaRE1s2GgCOAf9rAA==", + "approval": "CjEYFIEGCzEZCI0MAIsAAAAAAAAAAAAAAH0AAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYAAgEgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACEAAAAAAAAALAAAAAAAAAA3AAAAAAAAAEIAAAAAAAAATQAAAAAAAABYAAAAAAAAAGOMAIsAgAgAAAAAAAACK1wgjACLAFcgCBeMAImBAUOABLhEezY2GgCOAf/wAIAE1pETWzYaAI4B/2kA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal index 1101c2734..ff7f45e91 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x674d6170 0x6c4d6170 0x624d6170 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLE // updateStaticArrayInStorageMap()uint64[3] *abi_route_updateStaticArrayInStorageMap: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateStaticArrayInStorageMap()uint64[3] callsub updateStaticArrayInStorageMap concat log - int 1 + pushint 1 return // updateStaticArrayInStorageMap(): StaticArray @@ -44,7 +45,7 @@ updateStaticArrayInStorageMap: // tests/contracts/abi.algo.ts:176 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:178 @@ -70,7 +71,7 @@ updateStaticArrayInStorageMap: // this.gMap('gMap').value[1] = 1111 byte 0x674d6170 // "gMap" app_global_get - byte 0x0000000000000457 + pushbytes 0x0000000000000457 replace2 8 byte 0x674d6170 // "gMap" swap @@ -81,7 +82,7 @@ updateStaticArrayInStorageMap: txn Sender byte 0x6c4d6170 // "lMap" app_local_get - byte 0x00000000000008ae + pushbytes 0x00000000000008ae replace2 8 txn Sender byte 0x6c4d6170 // "lMap" @@ -91,8 +92,8 @@ updateStaticArrayInStorageMap: // tests/contracts/abi.algo.ts:184 // this.bMap('bMap').value[1] = 3333 byte 0x624d6170 // "bMap" - int 8 - byte 0x0000000000000d05 + pushint 8 + pushbytes 0x0000000000000d05 box_replace // tests/contracts/abi.algo.ts:186 @@ -114,8 +115,8 @@ updateStaticArrayInStorageMap: itob concat byte 0x624d6170 // "bMap" - int 8 - dup + pushint 8 + pushint 8 box_extract btoi itob @@ -134,11 +135,11 @@ updateStaticArrayInStorageMap: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -146,7 +147,7 @@ updateStaticArrayInStorageMap: err *call_OptIn: - method "updateStaticArrayInStorageMap()uint64[3]" + pushbytes 0xe680a0a9 // method "updateStaticArrayInStorageMap()uint64[3]" txna ApplicationArgs 0 match *abi_route_updateStaticArrayInStorageMap diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json index eac03dd71..7de2923e7 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10KCWNhbGxzdWIgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OAoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzkKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MgoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0gPSAxMTExCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDA0NTcKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MwoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZVsxXSA9IDIyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwOGFlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg0CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSA9IDMzMzMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMGQwNQoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg2CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTkyCgkvLyByZXR1cm4gcmV0OwoJZnJhbWVfZGlnIDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzRkNjE3MCAweDZjNGQ2MTcwIDB4NjI0ZDYxNzAgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoJY2FsbHN1YiB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTc4CgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgwCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgyCgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSA9IDExMTEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWFwcF9nbG9iYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwNDU3CglyZXBsYWNlMiA4CglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxODMKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0gPSAyMjIyCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwOGFlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg0CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSA9IDMzMzMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCXB1c2hpbnQgOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMGQwNQoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg2CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCXB1c2hpbnQgOAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5MgoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweGU2ODBhMGE5IC8vIG1ldGhvZCAidXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc56_draft.json index 03e85dd79..aa8e728ee 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc56_draft.json @@ -94,757 +94,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 161, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ] - }, - { - "teal": 13, - "source": 161, - "pc": [ - 22, - 23 - ] - }, - { - "teal": 14, - "source": 161, - "pc": [ - 24 - ] - }, - { - "teal": 15, - "source": 161, - "pc": [ - 25, - 26 - ] - }, - { - "teal": 16, - "source": 161, - "pc": [ - 27 - ] - }, - { - "teal": 17, - "source": 161, - "pc": [ - 28, - 29 - ] - }, - { - "teal": 18, - "source": 161, - "pc": [ - 30 - ] - }, - { - "teal": 19, - "source": 161, - "pc": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 23, - "source": 161, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 57 - ] - }, - { - "teal": 28, - "source": 174, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 31, - "source": 174, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 32, - "source": 174, - "pc": [ - 67 - ] - }, - { - "teal": 33, - "source": 174, - "pc": [ - 68 - ] - }, - { - "teal": 34, - "source": 174, - "pc": [ - 69 - ] - }, - { - "teal": 35, - "source": 174, - "pc": [ - 70 - ] - }, - { - "teal": 39, - "source": 174, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 42, - "source": 174, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 43, - "source": 174, - "pc": [ - 76 - ] - }, - { - "teal": 47, - "source": 176, - "pc": [ - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 48, - "source": 176, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 52, - "source": 178, - "pc": [ - 105 - ] - }, - { - "teal": 53, - "source": 178, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 54, - "source": 178, - "pc": [ - 108 - ] - }, - { - "teal": 58, - "source": 179, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 59, - "source": 179, - "pc": [ - 111 - ] - }, - { - "teal": 60, - "source": 179, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 61, - "source": 179, - "pc": [ - 114 - ] - }, - { - "teal": 65, - "source": 180, - "pc": [ - 115 - ] - }, - { - "teal": 66, - "source": 180, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 67, - "source": 180, - "pc": [ - 118 - ] - }, - { - "teal": 71, - "source": 182, - "pc": [ - 119 - ] - }, - { - "teal": 72, - "source": 182, - "pc": [ - 120 - ] - }, - { - "teal": 73, - "source": 182, - "pc": [ - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 74, - "source": 182, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 75, - "source": 182, - "pc": [ - 133 - ] - }, - { - "teal": 76, - "source": 182, - "pc": [ - 134 - ] - }, - { - "teal": 77, - "source": 182, - "pc": [ - 135 - ] - }, - { - "teal": 81, - "source": 183, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 82, - "source": 183, - "pc": [ - 138 - ] - }, - { - "teal": 83, - "source": 183, - "pc": [ - 139 - ] - }, - { - "teal": 84, - "source": 183, - "pc": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ] - }, - { - "teal": 85, - "source": 183, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 86, - "source": 183, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 87, - "source": 183, - "pc": [ - 154 - ] - }, - { - "teal": 88, - "source": 183, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 89, - "source": 183, - "pc": [ - 157 - ] - }, - { - "teal": 93, - "source": 184, - "pc": [ - 158 - ] - }, - { - "teal": 94, - "source": 184, - "pc": [ - 159 - ] - }, - { - "teal": 95, - "source": 184, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169 - ] - }, - { - "teal": 96, - "source": 184, - "pc": [ - 170 - ] - }, - { - "teal": 104, - "source": 187, - "pc": [ - 171 - ] - }, - { - "teal": 105, - "source": 187, - "pc": [ - 172 - ] - }, - { - "teal": 106, - "source": 187, - "pc": [ - 173, - 174, - 175 - ] - }, - { - "teal": 107, - "source": 187, - "pc": [ - 176 - ] - }, - { - "teal": 108, - "source": 187, - "pc": [ - 177 - ] - }, - { - "teal": 109, - "source": 188, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 110, - "source": 188, - "pc": [ - 180 - ] - }, - { - "teal": 111, - "source": 188, - "pc": [ - 181 - ] - }, - { - "teal": 112, - "source": 188, - "pc": [ - 182, - 183, - 184 - ] - }, - { - "teal": 113, - "source": 188, - "pc": [ - 185 - ] - }, - { - "teal": 114, - "source": 188, - "pc": [ - 186 - ] - }, - { - "teal": 115, - "source": 186, - "pc": [ - 187 - ] - }, - { - "teal": 116, - "source": 189, - "pc": [ - 188 - ] - }, - { - "teal": 117, - "source": 189, - "pc": [ - 189 - ] - }, - { - "teal": 118, - "source": 189, - "pc": [ - 190 - ] - }, - { - "teal": 119, - "source": 189, - "pc": [ - 191 - ] - }, - { - "teal": 120, - "source": 189, - "pc": [ - 192 - ] - }, - { - "teal": 121, - "source": 189, - "pc": [ - 193 - ] - }, - { - "teal": 122, - "source": 186, - "pc": [ - 194 - ] - }, - { - "teal": 123, - "source": 186, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 127, - "source": 192, - "pc": [ - 197, - 198 - ] - }, - { - "teal": 130, - "source": 174, - "pc": [ - 199, - 200 - ] - }, - { - "teal": 133, - "source": 174, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 134, - "source": 174, - "pc": [ - 203 - ] - }, - { - "teal": 137, - "source": 161, - "pc": [ - 204 - ] - }, - { - "teal": 138, - "source": 161, - "pc": [ - 205 - ] - }, - { - "teal": 141, - "source": 161, - "pc": [ - 206, - 207, - 208, - 209, - 210, - 211 - ] - }, - { - "teal": 142, - "source": 161, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 143, - "source": 161, - "pc": [ - 215, - 216, - 217, - 218 - ] - }, - { - "teal": 146, - "source": 161, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 219 - ] - }, - { - "teal": 149, - "source": 161, - "pc": [ - 220, - 221, - 222, - 223, - 224, - 225 - ] - }, - { - "teal": 150, - "source": 161, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 151, - "source": 161, - "pc": [ - 229, - 230, - 231, - 232 - ] - }, - { - "teal": 154, - "source": 161, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 233 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 54 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 276 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 290 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10KCWNhbGxzdWIgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OAoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzkKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MgoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0gPSAxMTExCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDA0NTcKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MwoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZVsxXSA9IDIyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwOGFlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg0CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSA9IDMzMzMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMGQwNQoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg2CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglkdXAKCWJveF9leHRyYWN0CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTkyCgkvLyByZXR1cm4gcmV0OwoJZnJhbWVfZGlnIDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CgltZXRob2QgInVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzRkNjE3MCAweDZjNGQ2MTcwIDB4NjI0ZDYxNzAgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQoJY2FsbHN1YiB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTc4CgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgwCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgyCgkvLyB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSA9IDExMTEKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWFwcF9nbG9iYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwNDU3CglyZXBsYWNlMiA4CglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxODMKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0gPSAyMjIyCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwOGFlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg0CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSA9IDMzMzMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCXB1c2hpbnQgOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMGQwNQoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg2CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCXB1c2hpbnQgOAoJcHVzaGludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5MgoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCXB1c2hieXRlcyAweGU2ODBhMGE5IC8vIG1ldGhvZCAidXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQgmAwRnTWFwBGxNYXAEYk1hcDEYFIEGCzEZCI0MAAAAowAAAAAAAAAAAJUAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAEmAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAKIsAZzEAKYsAZiqLAL8oZIAIAAAAAAAABFdcCChMZzEAKWKACAAAAAAAAAiuXAgxAClPAmYqI4AIAAAAAAAADQW7KGRXCAgXFjEAKWJXCAgXFlAqI0m6FxZQjAGLAYwARgGJIkOABLhEezY2GgCOAf/xAIAE5oCgqTYaAI4B/1EA", + "approval": "CiYEBGdNYXAEbE1hcARiTWFwADEYFIEGCzEZCI0MAAAA3wAAAAAAAAAAANEAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgABJgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIAEZ01hcIsAZzEAgARsTWFwiwBmgARiTWFwiwC/gARnTWFwZIAIAAAAAAAABFdcCIAEZ01hcExnMQCABGxNYXBigAgAAAAAAAAIrlwIMQCABGxNYXBPAmaABGJNYXCBCIAIAAAAAAAADQW7gARnTWFwZFcICBcWMQCABGxNYXBiVwgIFxZQgARiTWFwgQiBCLoXFlCMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAE5oCgqTYaAI4B/xUA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal index f1eec0704..bbb930d8b 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x67526566 0x6c526566 0x62526566 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +26,13 @@ switch *NOT_IMPLEMENTED *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLE // updateStaticArrayInStorageRef()uint64[3] *abi_route_updateStaticArrayInStorageRef: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateStaticArrayInStorageRef()uint64[3] callsub updateStaticArrayInStorageRef concat log - int 1 + pushint 1 return // updateStaticArrayInStorageRef(): StaticArray @@ -44,7 +45,7 @@ updateStaticArrayInStorageRef: // tests/contracts/abi.algo.ts:114 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 + pushbytes 0x000000000000000b00000000000000160000000000000021 frame_bury 0 // a: StaticArray // tests/contracts/abi.algo.ts:116 @@ -70,7 +71,7 @@ updateStaticArrayInStorageRef: // this.gRef.value[1] = 111 byte 0x67526566 // "gRef" app_global_get - byte 0x000000000000006f + pushbytes 0x000000000000006f replace2 8 byte 0x67526566 // "gRef" swap @@ -81,7 +82,7 @@ updateStaticArrayInStorageRef: txn Sender byte 0x6c526566 // "lRef" app_local_get - byte 0x00000000000000de + pushbytes 0x00000000000000de replace2 8 txn Sender byte 0x6c526566 // "lRef" @@ -91,8 +92,8 @@ updateStaticArrayInStorageRef: // tests/contracts/abi.algo.ts:122 // this.bRef.value[1] = 333 byte 0x62526566 // "bRef" - int 8 - byte 0x000000000000014d + pushint 8 + pushbytes 0x000000000000014d box_replace // tests/contracts/abi.algo.ts:124 @@ -110,8 +111,8 @@ updateStaticArrayInStorageRef: itob concat byte 0x62526566 // "bRef" - int 8 - dup + pushint 8 + pushint 8 box_extract btoi itob @@ -130,11 +131,11 @@ updateStaticArrayInStorageRef: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -142,7 +143,7 @@ updateStaticArrayInStorageRef: err *call_OptIn: - method "updateStaticArrayInStorageRef()uint64[3]" + pushbytes 0x80e5c759 // method "updateStaticArrayInStorageRef()uint64[3]" txna ApplicationArgs 0 match *abi_route_updateStaticArrayInStorageRef diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json index c66797353..550495824 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10KCWNhbGxzdWIgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNgoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE3CgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4CgkvLyB0aGlzLmJSZWYudmFsdWUgPSBhCglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMAoJLy8gdGhpcy5nUmVmLnZhbHVlWzFdID0gMTExCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwNmYKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMQoJLy8gdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0gPSAyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyCgkvLyB0aGlzLmJSZWYudmFsdWVbMV0gPSAzMzMKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMDE0ZAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglpbnQgOAoJZHVwCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNgoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzUyNjU2NiAweDZjNTI2NTY2IDB4NjI1MjY1NjYgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoJY2FsbHN1YiB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2CgkvLyB0aGlzLmdSZWYudmFsdWUgPSBhCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTcKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTgKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwCgkvLyB0aGlzLmdSZWYudmFsdWVbMV0gPSAxMTEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDZmCglyZXBsYWNlMiA4CglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjEKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdID0gMjIyCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyCgkvLyB0aGlzLmJSZWYudmFsdWVbMV0gPSAzMzMKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCXB1c2hpbnQgOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDE0ZAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglwdXNoaW50IDgKCXB1c2hpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjYKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CglwdXNoYnl0ZXMgMHg4MGU1Yzc1OSAvLyBtZXRob2QgInVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc56_draft.json index 1d2f84986..4f20e5b5b 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc56_draft.json @@ -94,757 +94,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 99, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ] - }, - { - "teal": 13, - "source": 99, - "pc": [ - 22, - 23 - ] - }, - { - "teal": 14, - "source": 99, - "pc": [ - 24 - ] - }, - { - "teal": 15, - "source": 99, - "pc": [ - 25, - 26 - ] - }, - { - "teal": 16, - "source": 99, - "pc": [ - 27 - ] - }, - { - "teal": 17, - "source": 99, - "pc": [ - 28, - 29 - ] - }, - { - "teal": 18, - "source": 99, - "pc": [ - 30 - ] - }, - { - "teal": 19, - "source": 99, - "pc": [ - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ] - }, - { - "teal": 23, - "source": 99, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 57 - ] - }, - { - "teal": 28, - "source": 112, - "pc": [ - 58, - 59, - 60, - 61, - 62, - 63 - ] - }, - { - "teal": 31, - "source": 112, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 32, - "source": 112, - "pc": [ - 67 - ] - }, - { - "teal": 33, - "source": 112, - "pc": [ - 68 - ] - }, - { - "teal": 34, - "source": 112, - "pc": [ - 69 - ] - }, - { - "teal": 35, - "source": 112, - "pc": [ - 70 - ] - }, - { - "teal": 39, - "source": 112, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 42, - "source": 112, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 43, - "source": 112, - "pc": [ - 76 - ] - }, - { - "teal": 47, - "source": 114, - "pc": [ - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102 - ] - }, - { - "teal": 48, - "source": 114, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 52, - "source": 116, - "pc": [ - 105 - ] - }, - { - "teal": 53, - "source": 116, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 54, - "source": 116, - "pc": [ - 108 - ] - }, - { - "teal": 58, - "source": 117, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 59, - "source": 117, - "pc": [ - 111 - ] - }, - { - "teal": 60, - "source": 117, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 61, - "source": 117, - "pc": [ - 114 - ] - }, - { - "teal": 65, - "source": 118, - "pc": [ - 115 - ] - }, - { - "teal": 66, - "source": 118, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 67, - "source": 118, - "pc": [ - 118 - ] - }, - { - "teal": 71, - "source": 120, - "pc": [ - 119 - ] - }, - { - "teal": 72, - "source": 120, - "pc": [ - 120 - ] - }, - { - "teal": 73, - "source": 120, - "pc": [ - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 74, - "source": 120, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 75, - "source": 120, - "pc": [ - 133 - ] - }, - { - "teal": 76, - "source": 120, - "pc": [ - 134 - ] - }, - { - "teal": 77, - "source": 120, - "pc": [ - 135 - ] - }, - { - "teal": 81, - "source": 121, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 82, - "source": 121, - "pc": [ - 138 - ] - }, - { - "teal": 83, - "source": 121, - "pc": [ - 139 - ] - }, - { - "teal": 84, - "source": 121, - "pc": [ - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149 - ] - }, - { - "teal": 85, - "source": 121, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 86, - "source": 121, - "pc": [ - 152, - 153 - ] - }, - { - "teal": 87, - "source": 121, - "pc": [ - 154 - ] - }, - { - "teal": 88, - "source": 121, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 89, - "source": 121, - "pc": [ - 157 - ] - }, - { - "teal": 93, - "source": 122, - "pc": [ - 158 - ] - }, - { - "teal": 94, - "source": 122, - "pc": [ - 159 - ] - }, - { - "teal": 95, - "source": 122, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169 - ] - }, - { - "teal": 96, - "source": 122, - "pc": [ - 170 - ] - }, - { - "teal": 100, - "source": 124, - "pc": [ - 171 - ] - }, - { - "teal": 101, - "source": 124, - "pc": [ - 172 - ] - }, - { - "teal": 102, - "source": 124, - "pc": [ - 173, - 174, - 175 - ] - }, - { - "teal": 103, - "source": 124, - "pc": [ - 176 - ] - }, - { - "teal": 104, - "source": 124, - "pc": [ - 177 - ] - }, - { - "teal": 105, - "source": 124, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 106, - "source": 124, - "pc": [ - 180 - ] - }, - { - "teal": 107, - "source": 124, - "pc": [ - 181 - ] - }, - { - "teal": 108, - "source": 124, - "pc": [ - 182, - 183, - 184 - ] - }, - { - "teal": 109, - "source": 124, - "pc": [ - 185 - ] - }, - { - "teal": 110, - "source": 124, - "pc": [ - 186 - ] - }, - { - "teal": 111, - "source": 124, - "pc": [ - 187 - ] - }, - { - "teal": 112, - "source": 124, - "pc": [ - 188 - ] - }, - { - "teal": 113, - "source": 124, - "pc": [ - 189 - ] - }, - { - "teal": 114, - "source": 124, - "pc": [ - 190 - ] - }, - { - "teal": 115, - "source": 124, - "pc": [ - 191 - ] - }, - { - "teal": 116, - "source": 124, - "pc": [ - 192 - ] - }, - { - "teal": 117, - "source": 124, - "pc": [ - 193 - ] - }, - { - "teal": 118, - "source": 124, - "pc": [ - 194 - ] - }, - { - "teal": 119, - "source": 124, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 123, - "source": 126, - "pc": [ - 197, - 198 - ] - }, - { - "teal": 126, - "source": 112, - "pc": [ - 199, - 200 - ] - }, - { - "teal": 129, - "source": 112, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 130, - "source": 112, - "pc": [ - 203 - ] - }, - { - "teal": 133, - "source": 99, - "pc": [ - 204 - ] - }, - { - "teal": 134, - "source": 99, - "pc": [ - 205 - ] - }, - { - "teal": 137, - "source": 99, - "pc": [ - 206, - 207, - 208, - 209, - 210, - 211 - ] - }, - { - "teal": 138, - "source": 99, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 139, - "source": 99, - "pc": [ - 215, - 216, - 217, - 218 - ] - }, - { - "teal": 142, - "source": 99, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 219 - ] - }, - { - "teal": 145, - "source": 99, - "pc": [ - 220, - 221, - 222, - 223, - 224, - 225 - ] - }, - { - "teal": 146, - "source": 99, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 147, - "source": 99, - "pc": [ - 229, - 230, - 231, - 232 - ] - }, - { - "teal": 150, - "source": 99, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 233 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 54 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 276 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 290 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10KCWNhbGxzdWIgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNgoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE3CgkvLyB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4CgkvLyB0aGlzLmJSZWYudmFsdWUgPSBhCglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMAoJLy8gdGhpcy5nUmVmLnZhbHVlWzFdID0gMTExCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwNmYKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMQoJLy8gdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0gPSAyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyCgkvLyB0aGlzLmJSZWYudmFsdWVbMV0gPSAzMzMKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMDE0ZAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglpbnQgOAoJZHVwCglib3hfZXh0cmFjdAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IDEgLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNgoJLy8gcmV0dXJuIHJldDsKCWZyYW1lX2RpZyAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NzUyNjU2NiAweDZjNTI2NTY2IDB4NjI1MjY1NjYgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQoJY2FsbHN1YiB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CnVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE2CgkvLyB0aGlzLmdSZWYudmFsdWUgPSBhCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTcKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTgKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIwCgkvLyB0aGlzLmdSZWYudmFsdWVbMV0gPSAxMTEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDZmCglyZXBsYWNlMiA4CglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjEKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdID0gMjIyCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyCgkvLyB0aGlzLmJSZWYudmFsdWVbMV0gPSAzMzMKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCXB1c2hpbnQgOAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDE0ZAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglwdXNoaW50IDgKCXB1c2hpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAxIC8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjYKCS8vIHJldHVybiByZXQ7CglmcmFtZV9kaWcgMSAvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfT3B0SW46CglwdXNoYnl0ZXMgMHg4MGU1Yzc1OSAvLyBtZXRob2QgInVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgT3B0SW4KCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAQgmAwRnUmVmBGxSZWYEYlJlZjEYFIEGCzEZCI0MAAAAowAAAAAAAAAAAJUAAAAAAAAAAAAAAIAEFR98dYgABFCwIkOKAAGAAEmAGAAAAAAAAAALAAAAAAAAABYAAAAAAAAAIYwAKIsAZzEAKYsAZiqLAL8oZIAIAAAAAAAAAG9cCChMZzEAKWKACAAAAAAAAADeXAgxAClPAmYqI4AIAAAAAAAAAU27KGRXCAgXFjEAKWJXCAgXFlAqI0m6FxZQjAGLAYwARgGJIkOABLhEezY2GgCOAf/xAIAEgOXHWTYaAI4B/1EA", + "approval": "CiYEBGdSZWYEbFJlZgRiUmVmADEYFIEGCzEZCI0MAAAA3wAAAAAAAAAAANEAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgABJgBgAAAAAAAAACwAAAAAAAAAWAAAAAAAAACGMAIAEZ1JlZosAZzEAgARsUmVmiwBmgARiUmVmiwC/gARnUmVmZIAIAAAAAAAAAG9cCIAEZ1JlZkxnMQCABGxSZWZigAgAAAAAAAAA3lwIMQCABGxSZWZPAmaABGJSZWaBCIAIAAAAAAAAAU27gARnUmVmZFcICBcWMQCABGxSZWZiVwgIFxZQgARiUmVmgQiBCLoXFlCMAYsBjABGAYmBAUOABLhEezY2GgCOAf/wAIAEgOXHWTYaAI4B/xUA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.approval.teal index d898ec55a..7e4c0337e 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x0004624d6170 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateStaticFieldInDynamicObjectInBox()string *abi_route_updateStaticFieldInDynamicObjectInBox: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateStaticFieldInDynamicObjectInBox()string callsub updateStaticFieldInDynamicObjectInBox @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // updateStaticFieldInDynamicObjectInBox(): string @@ -52,10 +53,10 @@ updateStaticFieldInDynamicObjectInBox: pop byte 0x // initial head byte 0x // initial tail - byte 0x0022 // initial head offset + pushbytes 0x0022 // initial head offset txn Sender callsub *process_static_tuple_element - byte 0x000c48656c6c6f20576f726c6421 + pushbytes 0x000c48656c6c6f20576f726c6421 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -70,7 +71,7 @@ updateStaticFieldInDynamicObjectInBox: assert store 255 // full array load 255 // full array - int 0 + pushint 0 txn Sender replace3 byte 0x0004624d6170 @@ -88,7 +89,7 @@ updateStaticFieldInDynamicObjectInBox: // box value does not exist: this.bMap('bMap').value assert store 255 // full array - int 32 + pushint 32 load 255 // full array load 255 // full array uncover 2 @@ -97,20 +98,20 @@ updateStaticFieldInDynamicObjectInBox: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length - int 2 + pushint 2 + // add two for length extract3 extract 2 0 retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -118,7 +119,7 @@ updateStaticFieldInDynamicObjectInBox: err *call_NoOp: - method "updateStaticFieldInDynamicObjectInBox()string" + pushbytes 0x1774432e // method "updateStaticFieldInDynamicObjectInBox()string" txna ApplicationArgs 0 match *abi_route_updateStaticFieldInDynamicObjectInBox diff --git a/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc32.json b/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc32.json index 3f58ed038..3185b36fc 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3goKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3goKTogc3RyaW5nCnVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3MwoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGFkZHI6IHRoaXMudHhuLnNlbmRlciwgc3RyOiAnSGVsbG8gV29ybGQhJyB9CglieXRlIDB4MDAwNDYyNGQ2MTcwCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAyMiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTc1CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5hZGRyID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4MDAwNDYyNGQ2MTcwCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCXR4biBTZW5kZXIKCXJlcGxhY2UzCglieXRlIDB4MDAwNDYyNGQ2MTcwCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTc2CgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuc3RyOwoJYnl0ZSAweDAwMDQ2MjRkNjE3MAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAzMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDA0NjI0ZDYxNzAgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljRmllbGRJbkR5bmFtaWNPYmplY3RJbkJveCgpc3RyaW5nCgljYWxsc3ViIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3gKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3goKTogc3RyaW5nCnVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3MwoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGFkZHI6IHRoaXMudHhuLnNlbmRlciwgc3RyOiAnSGVsbG8gV29ybGQhJyB9CglieXRlIDB4MDAwNDYyNGQ2MTcwCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDIyIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3NQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuYWRkciA9IHRoaXMudHhuLnNlbmRlcgoJYnl0ZSAweDAwMDQ2MjRkNjE3MAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJdHhuIFNlbmRlcgoJcmVwbGFjZTMKCWJ5dGUgMHgwMDA0NjI0ZDYxNzAKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NzYKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5zdHI7CglieXRlIDB4MDAwNDYyNGQ2MTcwCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAzMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MTc3NDQzMmUgLy8gbWV0aG9kICJ1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc56_draft.json index 7debce995..e333fb828 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc56_draft.json @@ -77,913 +77,52 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 1569, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13 - ] - }, - { - "teal": 13, - "source": 1569, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 14, - "source": 1569, - "pc": [ - 16 - ] - }, - { - "teal": 15, - "source": 1569, - "pc": [ - 17, - 18 - ] - }, - { - "teal": 16, - "source": 1569, - "pc": [ - 19 - ] - }, - { - "teal": 17, - "source": 1569, - "pc": [ - 20, - 21 - ] - }, - { - "teal": 18, - "source": 1569, - "pc": [ - 22 - ] - }, - { - "teal": 19, - "source": 1569, - "pc": [ - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48 - ] - }, - { - "teal": 23, - "source": 1569, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 49 - ] - }, - { - "teal": 28, - "source": 1572, - "pc": [ - 50, - 51, - 52, - 53, - 54, - 55 - ] - }, - { - "teal": 31, - "source": 1572, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 32, - "source": 1572, - "pc": [ - 59 - ] - }, - { - "teal": 33, - "source": 1572, - "pc": [ - 60 - ] - }, - { - "teal": 34, - "source": 1572, - "pc": [ - 61 - ] - }, - { - "teal": 35, - "source": 1572, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 36, - "source": 1572, - "pc": [ - 65 - ] - }, - { - "teal": 37, - "source": 1572, - "pc": [ - 66 - ] - }, - { - "teal": 38, - "source": 1572, - "pc": [ - 67 - ] - }, - { - "teal": 39, - "source": 1572, - "pc": [ - 68 - ] - }, - { - "teal": 40, - "source": 1572, - "pc": [ - 69 - ] - }, - { - "teal": 41, - "source": 1572, - "pc": [ - 70 - ] - }, - { - "teal": 45, - "source": 1572, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 49, - "source": 1573, - "pc": [ - 74 - ] - }, - { - "teal": 50, - "source": 1573, - "pc": [ - 75 - ] - }, - { - "teal": 51, - "source": 1573, - "pc": [ - 76 - ] - }, - { - "teal": 52, - "source": 1573, - "pc": [ - 77 - ] - }, - { - "teal": 53, - "source": 1573, - "pc": [ - 78 - ] - }, - { - "teal": 54, - "source": 1573, - "pc": [ - 79 - ] - }, - { - "teal": 55, - "source": 1573, - "pc": [ - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 56, - "source": 1573, - "pc": [ - 84, - 85 - ] - }, - { - "teal": 57, - "source": 1573, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 58, - "source": 1573, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 59, - "source": 1573, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 60, - "source": 1573, - "pc": [ - 108 - ] - }, - { - "teal": 61, - "source": 1573, - "pc": [ - 109 - ] - }, - { - "teal": 62, - "source": 1573, - "pc": [ - 110 - ] - }, - { - "teal": 66, - "source": 1575, - "pc": [ - 111 - ] - }, - { - "teal": 67, - "source": 1575, - "pc": [ - 112 - ] - }, - { - "teal": 70, - "source": 1575, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 113 - ] - }, - { - "teal": 71, - "source": 1575, - "pc": [ - 114, - 115 - ] - }, - { - "teal": 72, - "source": 1575, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 73, - "source": 1575, - "pc": [ - 118, - 119 - ] - }, - { - "teal": 74, - "source": 1575, - "pc": [ - 120, - 121 - ] - }, - { - "teal": 75, - "source": 1575, - "pc": [ - 122 - ] - }, - { - "teal": 76, - "source": 1575, - "pc": [ - 123 - ] - }, - { - "teal": 77, - "source": 1575, - "pc": [ - 124 - ] - }, - { - "teal": 78, - "source": 1575, - "pc": [ - 125 - ] - }, - { - "teal": 79, - "source": 1575, - "pc": [ - 126 - ] - }, - { - "teal": 80, - "source": 1575, - "pc": [ - 127 - ] - }, - { - "teal": 81, - "source": 1575, - "pc": [ - 128 - ] - }, - { - "teal": 85, - "source": 1576, - "pc": [ - 129 - ] - }, - { - "teal": 86, - "source": 1576, - "pc": [ - 130 - ] - }, - { - "teal": 89, - "source": 1576, - "errorMessage": "box value does not exist: this.bMap('bMap').value", - "pc": [ - 131 - ] - }, - { - "teal": 90, - "source": 1576, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 91, - "source": 1576, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 92, - "source": 1576, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 93, - "source": 1576, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 94, - "source": 1576, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 95, - "source": 1576, - "pc": [ - 142 - ] - }, - { - "teal": 96, - "source": 1576, - "pc": [ - 143 - ] - }, - { - "teal": 97, - "source": 1576, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 98, - "source": 1576, - "pc": [ - 146 - ] - }, - { - "teal": 99, - "source": 1576, - "pc": [ - 147 - ] - }, - { - "teal": 100, - "source": 1576, - "pc": [ - 148 - ] - }, - { - "teal": 101, - "source": 1576, - "pc": [ - 149 - ] - }, - { - "teal": 102, - "source": 1576, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 103, - "source": 1576, - "pc": [ - 152 - ] - }, - { - "teal": 104, - "source": 1576, - "pc": [ - 153 - ] - }, - { - "teal": 105, - "source": 1576, - "pc": [ - 154, - 155, - 156 - ] - }, - { - "teal": 106, - "source": 1572, - "pc": [ - 157 - ] - }, - { - "teal": 109, - "source": 1569, - "pc": [ - 158 - ] - }, - { - "teal": 110, - "source": 1569, - "pc": [ - 159 - ] - }, - { - "teal": 113, - "source": 1569, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 114, - "source": 1569, - "pc": [ - 166, - 167, - 168 - ] - }, - { - "teal": 115, - "source": 1569, - "pc": [ - 169, - 170, - 171, - 172 - ] - }, - { - "teal": 118, - "source": 1569, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 173 - ] - }, - { - "teal": 121, - "source": 1569, - "pc": [ - 174, - 175, - 176, - 177, - 178, - 179 - ] - }, - { - "teal": 122, - "source": 1569, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 123, - "source": 1569, - "pc": [ - 183, - 184, - 185, - 186 - ] - }, - { - "teal": 126, - "source": 1569, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 187 - ] - }, - { - "teal": 129, - "source": 1569, - "pc": [ - 188, - 189, - 190 - ] - }, - { - "teal": 130, - "source": 1569, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 131, - "source": 1569, - "pc": [ - 193, - 194 - ] - }, - { - "teal": 132, - "source": 1569, - "pc": [ - 195 - ] - }, - { - "teal": 133, - "source": 1569, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 134, - "source": 1569, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 135, - "source": 1569, - "pc": [ - 200 - ] - }, - { - "teal": 138, - "source": 1569, - "pc": [ - 201, - 202, - 203 - ] - }, - { - "teal": 139, - "source": 1569, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 140, - "source": 1569, - "pc": [ - 206, - 207 - ] - }, - { - "teal": 141, - "source": 1569, - "pc": [ - 208 - ] - }, - { - "teal": 142, - "source": 1569, - "pc": [ - 209, - 210 - ] - }, - { - "teal": 143, - "source": 1569, - "pc": [ - 211, - 212 - ] - }, - { - "teal": 144, - "source": 1569, - "pc": [ - 213 - ] - }, - { - "teal": 145, - "source": 1569, - "pc": [ - 214 - ] - }, - { - "teal": 146, - "source": 1569, - "pc": [ - 215, - 216 - ] - }, - { - "teal": 147, - "source": 1569, - "pc": [ - 217 - ] - }, - { - "teal": 148, - "source": 1569, - "pc": [ - 218 - ] - }, - { - "teal": 149, - "source": 1569, - "pc": [ - 219 - ] - }, - { - "teal": 150, - "source": 1569, - "pc": [ - 220, - 221, - 222 - ] - }, - { - "teal": 151, - "source": 1569, - "pc": [ - 223, - 224 - ] - }, - { - "teal": 152, - "source": 1569, - "pc": [ - 225, - 226 - ] - }, - { - "teal": 153, - "source": 1569, - "pc": [ - 227 - ] - }, - { - "teal": 154, - "source": 1569, - "pc": [ - 228 - ] - }, - { - "teal": 155, - "source": 1569, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 156, - "source": 1569, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 157, - "source": 1569, - "pc": [ - 233, - 234 - ] - }, - { - "teal": 158, - "source": 1569, - "pc": [ - 235, - 236 - ] - }, - { - "teal": 159, - "source": 1569, - "pc": [ - 237 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 46 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 127 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 159 + ], + "errorMessage": "box value does not exist: this.bMap('bMap').value" + }, + { + "pc": [ + 203 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 217 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3goKXN0cmluZwoJY2FsbHN1YiB1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3goKTogc3RyaW5nCnVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3MwoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGFkZHI6IHRoaXMudHhuLnNlbmRlciwgc3RyOiAnSGVsbG8gV29ybGQhJyB9CglieXRlIDB4MDAwNDYyNGQ2MTcwCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglieXRlIDB4MDAyMiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViICpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXBvcCAvLyBwb3AgaGVhZCBvZmZzZXQKCWNvbmNhdCAvLyBjb25jYXQgaGVhZCBhbmQgdGFpbAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTc1CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5hZGRyID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4MDAwNDYyNGQ2MTcwCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCXR4biBTZW5kZXIKCXJlcGxhY2UzCglieXRlIDB4MDAwNDYyNGQ2MTcwCglkdXAKCWJveF9kZWwKCXBvcAoJc3dhcAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTc2CgkvLyByZXR1cm4gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuc3RyOwoJYnl0ZSAweDAwMDQ2MjRkNjE3MAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAzMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDA0NjI0ZDYxNzAgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmcKKmFiaV9yb3V0ZV91cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdXBkYXRlU3RhdGljRmllbGRJbkR5bmFtaWNPYmplY3RJbkJveCgpc3RyaW5nCgljYWxsc3ViIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3gKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3goKTogc3RyaW5nCnVwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3g6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3MwoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSB7IGFkZHI6IHRoaXMudHhuLnNlbmRlciwgc3RyOiAnSGVsbG8gV29ybGQhJyB9CglieXRlIDB4MDAwNDYyNGQ2MTcwCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweCAvLyBpbml0aWFsIGhlYWQKCWJ5dGUgMHggLy8gaW5pdGlhbCB0YWlsCglwdXNoYnl0ZXMgMHgwMDIyIC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMGM0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3NQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUuYWRkciA9IHRoaXMudHhuLnNlbmRlcgoJYnl0ZSAweDAwMDQ2MjRkNjE3MAoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5iTWFwKCdiTWFwJykudmFsdWUKCWFzc2VydAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJdHhuIFNlbmRlcgoJcmVwbGFjZTMKCWJ5dGUgMHgwMDA0NjI0ZDYxNzAKCWR1cAoJYm94X2RlbAoJcG9wCglzd2FwCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NzYKCS8vIHJldHVybiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZS5zdHI7CglieXRlIDB4MDAwNDYyNGQ2MTcwCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZQoJYXNzZXJ0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAzMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglwdXNoaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglleHRyYWN0MwoJZXh0cmFjdCAyIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MTc3NDQzMmUgLy8gbWV0aG9kICJ1cGRhdGVTdGF0aWNGaWVsZEluRHluYW1pY09iamVjdEluQm94KClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0ZpZWxkSW5EeW5hbWljT2JqZWN0SW5Cb3gKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYCBgAEYk1hcAAxGBSBBgsxGQiNDAB9AAAAAAAAAAAAAABvAAAAAAAAAAAAAACABBUffHWIAAxJFRZXBgJMUFCwIkOKAAEoSbxIKSmAAgAiMQCIAGOADgAMSGVsbG8gV29ybGQhiABdSFC/KL5ENf80/4EAMQBdKEm8SEy/KL5ENf+BIDT/NP9PAllJNP9MWSILgQIIWFcCAIkiQ4AEuER7NjYaAI4B//EAgAQXdEMuNhoAjgH/dwCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", + "approval": "CiYCBgAEYk1hcAAxGBSBBgsxGQiNDACeAAAAAAAAAAAAAACQAAAAAAAAAAAAAACABBUffHWIAA1JFRZXBgJMUFCwgQFDigABgAYABGJNYXBJvEiAAIAAgAIAIjEAiAB6gA4ADEhlbGxvIFdvcmxkIYgAdEhQv4AGAARiTWFwvkQ1/zT/gQAxAF2ABgAEYk1hcEm8SEy/gAYABGJNYXC+RDX/gSA0/zT/TwJZSTT/TFmBAQuBAghYVwIAiYEBQ4AEuER7NjYaAI4B//AAgAQXdEMuNhoAjgH/VgCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal b/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal index 98bf916a7..b0e3bde97 100644 --- a/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStringInTuple.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 2 +bytecblock 0x000c48656c6c6f20576f726c6421 0x0002000a000b 0x0002000e000f 0x00021011 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +27,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateStringInTuple()(uint8,uint16[],string,uint16[],uint8[]) *abi_route_updateStringInTuple: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateStringInTuple()(uint8,uint16[],string,uint16[],uint8[]) callsub updateStringInTuple concat log - int 1 + pushint 1 return // updateStringInTuple(): [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -45,16 +47,16 @@ updateStringInTuple: // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] = [9, [8], 'Hi?', [6], [5]] byte 0x // initial head byte 0x // initial tail - byte 0x0009 // initial head offset - byte 0x09 + pushbytes 0x0009 // initial head offset + pushbytes 0x09 callsub *process_static_tuple_element - byte 0x00010008 + pushbytes 0x00010008 callsub *process_dynamic_tuple_element - byte 0x000348693f + pushbytes 0x000348693f callsub *process_dynamic_tuple_element - byte 0x00010006 + pushbytes 0x00010006 callsub *process_dynamic_tuple_element - byte 0x000105 + pushbytes 0x000105 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -65,7 +67,7 @@ updateStringInTuple: frame_dig 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] store 255 // full array load 255 // full array - byte 0x63 + pushbytes 0x63 replace2 0 frame_bury 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] @@ -73,7 +75,7 @@ updateStringInTuple: // a[1] = [10, 11] frame_dig 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] store 255 // full array - int 1 + pushint 1 dup store 251 // element head offset load 255 // full array @@ -92,7 +94,7 @@ updateStringInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x0002000a000b @@ -116,12 +118,12 @@ updateStringInTuple: callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 6 + pushint 6 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -131,7 +133,7 @@ updateStringInTuple: // a[2] = 'Hello World!' frame_dig 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] store 255 // full array - int 3 + pushint 3 dup store 251 // element head offset load 255 // full array @@ -144,13 +146,13 @@ updateStringInTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length int 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x000c48656c6c6f20576f726c6421 @@ -174,7 +176,7 @@ updateStringInTuple: callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -184,7 +186,7 @@ updateStringInTuple: // a[3] = [14, 15] frame_dig 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] store 255 // full array - int 5 + pushint 5 dup store 251 // element head offset load 255 // full array @@ -203,7 +205,7 @@ updateStringInTuple: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x0002000e000f @@ -232,7 +234,7 @@ updateStringInTuple: // a[4] = [16, 17] frame_dig 0 // a: [uint<8>, uint16[], string, uint16[], uint<8>[]] store 255 // full array - int 7 + pushint 7 dup store 251 // element head offset load 255 // full array @@ -245,13 +247,13 @@ updateStringInTuple: load 255 // full array swap extract_uint16 // get number of elements - int 1 // get type length + pushint 1 // get type length * // multiply by type length int 2 + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x00021011 @@ -280,11 +282,11 @@ updateStringInTuple: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -292,7 +294,7 @@ updateStringInTuple: err *call_NoOp: - method "updateStringInTuple()(uint8,uint16[],string,uint16[],uint8[])" + pushbytes 0xf1fc2586 // method "updateStringInTuple()(uint8,uint16[],string,uint16[],uint8[])" txna ApplicationArgs 0 match *abi_route_updateStringInTuple @@ -367,7 +369,7 @@ updateStringInTuple: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -375,7 +377,7 @@ updateStringInTuple: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json b/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json index 145881ad5..9ddb7a2b3 100644 --- a/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCiphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCgljYWxsc3ViIHVwZGF0ZVN0cmluZ0luVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVTdHJpbmdJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYwCgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCAnSGk/JywgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAwMDYKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MgoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHg2MwoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjMKCS8vIGFbMV0gPSBbMTAsIDExXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwYTAwMGIKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY0CgkvLyBhWzJdID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAzCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2NQoJLy8gYVszXSA9IFsxNCwgMTVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY2CgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlU3RyaW5nSW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHN0cmluZyx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIDB4MDAwMjAwMGEwMDBiIDB4MDAwMjAwMGUwMDBmIDB4MDAwMjEwMTEgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCiphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0cmluZ0luVHVwbGUoKSh1aW50OCx1aW50MTZbXSxzdHJpbmcsdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlU3RyaW5nSW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVTdHJpbmdJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYwCgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCAnSGk/JywgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDkKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMzQ4NjkzZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MgoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hieXRlcyAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MwoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMGEwMDBiCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJcHVzaGludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY0CgkvLyBhWzJdID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglwdXNoaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjUKCS8vIGFbM10gPSBbMTQsIDE1XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCA1CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY2CgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhmMWZjMjU4NiAvLyBtZXRob2QgInVwZGF0ZVN0cmluZ0luVHVwbGUoKSh1aW50OCx1aW50MTZbXSxzdHJpbmcsdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0cmluZ0luVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglwdXNoaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglwdXNoaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc56_draft.json index 8a9235d25..edae20e35 100644 --- a/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateStringInTuple.arc56_draft.json @@ -61,2496 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 558, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ] - }, - { - "teal": 13, - "source": 558, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 14, - "source": 558, - "pc": [ - 13 - ] - }, - { - "teal": 15, - "source": 558, - "pc": [ - 14 - ] - }, - { - "teal": 16, - "source": 558, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 558, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 558, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 558, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 558, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 559, - "pc": [ - 46, - 47, - 48, - 49, - 50, - 51 - ] - }, - { - "teal": 31, - "source": 559, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 32, - "source": 559, - "pc": [ - 55 - ] - }, - { - "teal": 33, - "source": 559, - "pc": [ - 56 - ] - }, - { - "teal": 34, - "source": 559, - "pc": [ - 57 - ] - }, - { - "teal": 35, - "source": 559, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 559, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 42, - "source": 559, - "pc": [ - 62 - ] - }, - { - "teal": 46, - "source": 560, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 560, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 560, - "pc": [ - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 49, - "source": 560, - "pc": [ - 69, - 70, - 71 - ] - }, - { - "teal": 50, - "source": 560, - "pc": [ - 72, - 73, - 74 - ] - }, - { - "teal": 51, - "source": 560, - "pc": [ - 75, - 76, - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 52, - "source": 560, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 53, - "source": 560, - "pc": [ - 84, - 85, - 86, - 87, - 88, - 89, - 90 - ] - }, - { - "teal": 54, - "source": 560, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 55, - "source": 560, - "pc": [ - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 56, - "source": 560, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 57, - "source": 560, - "pc": [ - 103, - 104, - 105, - 106, - 107 - ] - }, - { - "teal": 58, - "source": 560, - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 59, - "source": 560, - "pc": [ - 111 - ] - }, - { - "teal": 60, - "source": 560, - "pc": [ - 112 - ] - }, - { - "teal": 61, - "source": 560, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 65, - "source": 562, - "pc": [ - 115, - 116 - ] - }, - { - "teal": 66, - "source": 562, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 67, - "source": 562, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 68, - "source": 562, - "pc": [ - 121, - 122, - 123 - ] - }, - { - "teal": 69, - "source": 562, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 70, - "source": 562, - "pc": [ - 126, - 127 - ] - }, - { - "teal": 74, - "source": 563, - "pc": [ - 128, - 129 - ] - }, - { - "teal": 75, - "source": 563, - "pc": [ - 130, - 131 - ] - }, - { - "teal": 76, - "source": 563, - "pc": [ - 132 - ] - }, - { - "teal": 77, - "source": 563, - "pc": [ - 133 - ] - }, - { - "teal": 78, - "source": 563, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 79, - "source": 563, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 80, - "source": 563, - "pc": [ - 138, - 139 - ] - }, - { - "teal": 81, - "source": 563, - "pc": [ - 140, - 141 - ] - }, - { - "teal": 82, - "source": 563, - "pc": [ - 142 - ] - }, - { - "teal": 83, - "source": 563, - "pc": [ - 143 - ] - }, - { - "teal": 84, - "source": 563, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 85, - "source": 563, - "pc": [ - 146 - ] - }, - { - "teal": 86, - "source": 563, - "pc": [ - 147, - 148 - ] - }, - { - "teal": 87, - "source": 563, - "pc": [ - 149 - ] - }, - { - "teal": 88, - "source": 563, - "pc": [ - 150 - ] - }, - { - "teal": 89, - "source": 563, - "pc": [ - 151 - ] - }, - { - "teal": 90, - "source": 563, - "pc": [ - 152 - ] - }, - { - "teal": 91, - "source": 563, - "pc": [ - 153 - ] - }, - { - "teal": 92, - "source": 563, - "pc": [ - 154 - ] - }, - { - "teal": 93, - "source": 563, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 94, - "source": 563, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 95, - "source": 563, - "pc": [ - 159 - ] - }, - { - "teal": 96, - "source": 563, - "pc": [ - 160, - 161 - ] - }, - { - "teal": 97, - "source": 563, - "pc": [ - 162 - ] - }, - { - "teal": 98, - "source": 563, - "pc": [ - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170 - ] - }, - { - "teal": 99, - "source": 563, - "pc": [ - 171 - ] - }, - { - "teal": 100, - "source": 563, - "pc": [ - 172, - 173 - ] - }, - { - "teal": 101, - "source": 563, - "pc": [ - 174, - 175 - ] - }, - { - "teal": 102, - "source": 563, - "pc": [ - 176, - 177 - ] - }, - { - "teal": 103, - "source": 563, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 104, - "source": 563, - "pc": [ - 180 - ] - }, - { - "teal": 105, - "source": 563, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 106, - "source": 563, - "pc": [ - 183 - ] - }, - { - "teal": 107, - "source": 563, - "pc": [ - 184 - ] - }, - { - "teal": 108, - "source": 563, - "pc": [ - 185 - ] - }, - { - "teal": 109, - "source": 563, - "pc": [ - 186 - ] - }, - { - "teal": 110, - "source": 563, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 111, - "source": 563, - "pc": [ - 189, - 190, - 191 - ] - }, - { - "teal": 112, - "source": 563, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 113, - "source": 563, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 114, - "source": 563, - "pc": [ - 196 - ] - }, - { - "teal": 115, - "source": 563, - "pc": [ - 197 - ] - }, - { - "teal": 116, - "source": 563, - "pc": [ - 198, - 199, - 200 - ] - }, - { - "teal": 117, - "source": 563, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 118, - "source": 563, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 119, - "source": 563, - "pc": [ - 205, - 206 - ] - }, - { - "teal": 120, - "source": 563, - "pc": [ - 207 - ] - }, - { - "teal": 121, - "source": 563, - "pc": [ - 208, - 209, - 210 - ] - }, - { - "teal": 122, - "source": 563, - "pc": [ - 211, - 212 - ] - }, - { - "teal": 123, - "source": 563, - "pc": [ - 213, - 214 - ] - }, - { - "teal": 124, - "source": 563, - "pc": [ - 215 - ] - }, - { - "teal": 125, - "source": 563, - "pc": [ - 216 - ] - }, - { - "teal": 126, - "source": 563, - "pc": [ - 217, - 218, - 219 - ] - }, - { - "teal": 127, - "source": 563, - "pc": [ - 220, - 221 - ] - }, - { - "teal": 128, - "source": 563, - "pc": [ - 222, - 223 - ] - }, - { - "teal": 132, - "source": 564, - "pc": [ - 224, - 225 - ] - }, - { - "teal": 133, - "source": 564, - "pc": [ - 226, - 227 - ] - }, - { - "teal": 134, - "source": 564, - "pc": [ - 228, - 229 - ] - }, - { - "teal": 135, - "source": 564, - "pc": [ - 230 - ] - }, - { - "teal": 136, - "source": 564, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 137, - "source": 564, - "pc": [ - 233, - 234 - ] - }, - { - "teal": 138, - "source": 564, - "pc": [ - 235, - 236 - ] - }, - { - "teal": 139, - "source": 564, - "pc": [ - 237, - 238 - ] - }, - { - "teal": 140, - "source": 564, - "pc": [ - 239 - ] - }, - { - "teal": 141, - "source": 564, - "pc": [ - 240 - ] - }, - { - "teal": 142, - "source": 564, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 143, - "source": 564, - "pc": [ - 243 - ] - }, - { - "teal": 144, - "source": 564, - "pc": [ - 244, - 245 - ] - }, - { - "teal": 145, - "source": 564, - "pc": [ - 246 - ] - }, - { - "teal": 146, - "source": 564, - "pc": [ - 247 - ] - }, - { - "teal": 147, - "source": 564, - "pc": [ - 248 - ] - }, - { - "teal": 148, - "source": 564, - "pc": [ - 249 - ] - }, - { - "teal": 149, - "source": 564, - "pc": [ - 250 - ] - }, - { - "teal": 150, - "source": 564, - "pc": [ - 251 - ] - }, - { - "teal": 151, - "source": 564, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 152, - "source": 564, - "pc": [ - 254, - 255 - ] - }, - { - "teal": 153, - "source": 564, - "pc": [ - 256 - ] - }, - { - "teal": 154, - "source": 564, - "pc": [ - 257, - 258 - ] - }, - { - "teal": 155, - "source": 564, - "pc": [ - 259 - ] - }, - { - "teal": 156, - "source": 564, - "pc": [ - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275 - ] - }, - { - "teal": 157, - "source": 564, - "pc": [ - 276 - ] - }, - { - "teal": 158, - "source": 564, - "pc": [ - 277, - 278 - ] - }, - { - "teal": 159, - "source": 564, - "pc": [ - 279, - 280 - ] - }, - { - "teal": 160, - "source": 564, - "pc": [ - 281, - 282 - ] - }, - { - "teal": 161, - "source": 564, - "pc": [ - 283, - 284 - ] - }, - { - "teal": 162, - "source": 564, - "pc": [ - 285 - ] - }, - { - "teal": 163, - "source": 564, - "pc": [ - 286, - 287 - ] - }, - { - "teal": 164, - "source": 564, - "pc": [ - 288 - ] - }, - { - "teal": 165, - "source": 564, - "pc": [ - 289 - ] - }, - { - "teal": 166, - "source": 564, - "pc": [ - 290 - ] - }, - { - "teal": 167, - "source": 564, - "pc": [ - 291 - ] - }, - { - "teal": 168, - "source": 564, - "pc": [ - 292, - 293 - ] - }, - { - "teal": 169, - "source": 564, - "pc": [ - 294, - 295, - 296 - ] - }, - { - "teal": 170, - "source": 564, - "pc": [ - 297, - 298 - ] - }, - { - "teal": 171, - "source": 564, - "pc": [ - 299, - 300 - ] - }, - { - "teal": 172, - "source": 564, - "pc": [ - 301 - ] - }, - { - "teal": 173, - "source": 564, - "pc": [ - 302 - ] - }, - { - "teal": 174, - "source": 564, - "pc": [ - 303, - 304, - 305 - ] - }, - { - "teal": 175, - "source": 564, - "pc": [ - 306, - 307 - ] - }, - { - "teal": 176, - "source": 564, - "pc": [ - 308, - 309 - ] - }, - { - "teal": 177, - "source": 564, - "pc": [ - 310, - 311 - ] - }, - { - "teal": 178, - "source": 564, - "pc": [ - 312 - ] - }, - { - "teal": 179, - "source": 564, - "pc": [ - 313, - 314, - 315 - ] - }, - { - "teal": 180, - "source": 564, - "pc": [ - 316, - 317 - ] - }, - { - "teal": 181, - "source": 564, - "pc": [ - 318, - 319 - ] - }, - { - "teal": 185, - "source": 565, - "pc": [ - 320, - 321 - ] - }, - { - "teal": 186, - "source": 565, - "pc": [ - 322, - 323 - ] - }, - { - "teal": 187, - "source": 565, - "pc": [ - 324, - 325 - ] - }, - { - "teal": 188, - "source": 565, - "pc": [ - 326 - ] - }, - { - "teal": 189, - "source": 565, - "pc": [ - 327, - 328 - ] - }, - { - "teal": 190, - "source": 565, - "pc": [ - 329, - 330 - ] - }, - { - "teal": 191, - "source": 565, - "pc": [ - 331, - 332 - ] - }, - { - "teal": 192, - "source": 565, - "pc": [ - 333, - 334 - ] - }, - { - "teal": 193, - "source": 565, - "pc": [ - 335 - ] - }, - { - "teal": 194, - "source": 565, - "pc": [ - 336 - ] - }, - { - "teal": 195, - "source": 565, - "pc": [ - 337, - 338 - ] - }, - { - "teal": 196, - "source": 565, - "pc": [ - 339 - ] - }, - { - "teal": 197, - "source": 565, - "pc": [ - 340, - 341 - ] - }, - { - "teal": 198, - "source": 565, - "pc": [ - 342 - ] - }, - { - "teal": 199, - "source": 565, - "pc": [ - 343 - ] - }, - { - "teal": 200, - "source": 565, - "pc": [ - 344 - ] - }, - { - "teal": 201, - "source": 565, - "pc": [ - 345 - ] - }, - { - "teal": 202, - "source": 565, - "pc": [ - 346 - ] - }, - { - "teal": 203, - "source": 565, - "pc": [ - 347 - ] - }, - { - "teal": 204, - "source": 565, - "pc": [ - 348, - 349 - ] - }, - { - "teal": 205, - "source": 565, - "pc": [ - 350, - 351 - ] - }, - { - "teal": 206, - "source": 565, - "pc": [ - 352 - ] - }, - { - "teal": 207, - "source": 565, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 208, - "source": 565, - "pc": [ - 355 - ] - }, - { - "teal": 209, - "source": 565, - "pc": [ - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363 - ] - }, - { - "teal": 210, - "source": 565, - "pc": [ - 364 - ] - }, - { - "teal": 211, - "source": 565, - "pc": [ - 365, - 366 - ] - }, - { - "teal": 212, - "source": 565, - "pc": [ - 367, - 368 - ] - }, - { - "teal": 213, - "source": 565, - "pc": [ - 369, - 370 - ] - }, - { - "teal": 214, - "source": 565, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 215, - "source": 565, - "pc": [ - 373 - ] - }, - { - "teal": 216, - "source": 565, - "pc": [ - 374, - 375 - ] - }, - { - "teal": 217, - "source": 565, - "pc": [ - 376 - ] - }, - { - "teal": 218, - "source": 565, - "pc": [ - 377 - ] - }, - { - "teal": 219, - "source": 565, - "pc": [ - 378 - ] - }, - { - "teal": 220, - "source": 565, - "pc": [ - 379 - ] - }, - { - "teal": 221, - "source": 565, - "pc": [ - 380, - 381 - ] - }, - { - "teal": 222, - "source": 565, - "pc": [ - 382, - 383, - 384 - ] - }, - { - "teal": 223, - "source": 565, - "pc": [ - 385, - 386 - ] - }, - { - "teal": 224, - "source": 565, - "pc": [ - 387, - 388 - ] - }, - { - "teal": 225, - "source": 565, - "pc": [ - 389 - ] - }, - { - "teal": 226, - "source": 565, - "pc": [ - 390 - ] - }, - { - "teal": 227, - "source": 565, - "pc": [ - 391, - 392, - 393 - ] - }, - { - "teal": 228, - "source": 565, - "pc": [ - 394, - 395 - ] - }, - { - "teal": 229, - "source": 565, - "pc": [ - 396, - 397 - ] - }, - { - "teal": 233, - "source": 566, - "pc": [ - 398, - 399 - ] - }, - { - "teal": 234, - "source": 566, - "pc": [ - 400, - 401 - ] - }, - { - "teal": 235, - "source": 566, - "pc": [ - 402, - 403 - ] - }, - { - "teal": 236, - "source": 566, - "pc": [ - 404 - ] - }, - { - "teal": 237, - "source": 566, - "pc": [ - 405, - 406 - ] - }, - { - "teal": 238, - "source": 566, - "pc": [ - 407, - 408 - ] - }, - { - "teal": 239, - "source": 566, - "pc": [ - 409, - 410 - ] - }, - { - "teal": 240, - "source": 566, - "pc": [ - 411, - 412 - ] - }, - { - "teal": 241, - "source": 566, - "pc": [ - 413 - ] - }, - { - "teal": 242, - "source": 566, - "pc": [ - 414 - ] - }, - { - "teal": 243, - "source": 566, - "pc": [ - 415, - 416 - ] - }, - { - "teal": 244, - "source": 566, - "pc": [ - 417 - ] - }, - { - "teal": 245, - "source": 566, - "pc": [ - 418, - 419 - ] - }, - { - "teal": 246, - "source": 566, - "pc": [ - 420 - ] - }, - { - "teal": 247, - "source": 566, - "pc": [ - 421 - ] - }, - { - "teal": 248, - "source": 566, - "pc": [ - 422 - ] - }, - { - "teal": 249, - "source": 566, - "pc": [ - 423 - ] - }, - { - "teal": 250, - "source": 566, - "pc": [ - 424 - ] - }, - { - "teal": 251, - "source": 566, - "pc": [ - 425 - ] - }, - { - "teal": 252, - "source": 566, - "pc": [ - 426, - 427 - ] - }, - { - "teal": 253, - "source": 566, - "pc": [ - 428, - 429 - ] - }, - { - "teal": 254, - "source": 566, - "pc": [ - 430 - ] - }, - { - "teal": 255, - "source": 566, - "pc": [ - 431, - 432 - ] - }, - { - "teal": 256, - "source": 566, - "pc": [ - 433 - ] - }, - { - "teal": 257, - "source": 566, - "pc": [ - 434, - 435, - 436, - 437, - 438, - 439 - ] - }, - { - "teal": 258, - "source": 566, - "pc": [ - 440 - ] - }, - { - "teal": 259, - "source": 566, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 260, - "source": 566, - "pc": [ - 443, - 444 - ] - }, - { - "teal": 261, - "source": 566, - "pc": [ - 445, - 446 - ] - }, - { - "teal": 262, - "source": 566, - "pc": [ - 447, - 448 - ] - }, - { - "teal": 263, - "source": 566, - "pc": [ - 449 - ] - }, - { - "teal": 264, - "source": 566, - "pc": [ - 450, - 451 - ] - }, - { - "teal": 265, - "source": 566, - "pc": [ - 452 - ] - }, - { - "teal": 266, - "source": 566, - "pc": [ - 453 - ] - }, - { - "teal": 267, - "source": 566, - "pc": [ - 454 - ] - }, - { - "teal": 268, - "source": 566, - "pc": [ - 455 - ] - }, - { - "teal": 269, - "source": 566, - "pc": [ - 456, - 457 - ] - }, - { - "teal": 270, - "source": 566, - "pc": [ - 458, - 459, - 460 - ] - }, - { - "teal": 271, - "source": 566, - "pc": [ - 461, - 462 - ] - }, - { - "teal": 272, - "source": 566, - "pc": [ - 463, - 464 - ] - }, - { - "teal": 276, - "source": 568, - "pc": [ - 465, - 466 - ] - }, - { - "teal": 279, - "source": 559, - "pc": [ - 467, - 468 - ] - }, - { - "teal": 280, - "source": 559, - "pc": [ - 469 - ] - }, - { - "teal": 283, - "source": 558, - "pc": [ - 470 - ] - }, - { - "teal": 284, - "source": 558, - "pc": [ - 471 - ] - }, - { - "teal": 287, - "source": 558, - "pc": [ - 472, - 473, - 474, - 475, - 476, - 477 - ] - }, - { - "teal": 288, - "source": 558, - "pc": [ - 478, - 479, - 480 - ] - }, - { - "teal": 289, - "source": 558, - "pc": [ - 481, - 482, - 483, - 484 - ] - }, - { - "teal": 292, - "source": 558, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 485 - ] - }, - { - "teal": 295, - "source": 558, - "pc": [ - 486, - 487, - 488, - 489, - 490, - 491 - ] - }, - { - "teal": 296, - "source": 558, - "pc": [ - 492, - 493, - 494 - ] - }, - { - "teal": 297, - "source": 558, - "pc": [ - 495, - 496, - 497, - 498 - ] - }, - { - "teal": 300, - "source": 558, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 499 - ] - }, - { - "teal": 303, - "source": 558, - "pc": [ - 500, - 501, - 502 - ] - }, - { - "teal": 304, - "source": 558, - "pc": [ - 503, - 504 - ] - }, - { - "teal": 305, - "source": 558, - "pc": [ - 505, - 506 - ] - }, - { - "teal": 306, - "source": 558, - "pc": [ - 507 - ] - }, - { - "teal": 307, - "source": 558, - "pc": [ - 508, - 509 - ] - }, - { - "teal": 308, - "source": 558, - "pc": [ - 510, - 511 - ] - }, - { - "teal": 309, - "source": 558, - "pc": [ - 512 - ] - }, - { - "teal": 312, - "source": 558, - "pc": [ - 513, - 514, - 515 - ] - }, - { - "teal": 313, - "source": 558, - "pc": [ - 516, - 517 - ] - }, - { - "teal": 314, - "source": 558, - "pc": [ - 518, - 519 - ] - }, - { - "teal": 315, - "source": 558, - "pc": [ - 520 - ] - }, - { - "teal": 316, - "source": 558, - "pc": [ - 521, - 522 - ] - }, - { - "teal": 317, - "source": 558, - "pc": [ - 523, - 524 - ] - }, - { - "teal": 318, - "source": 558, - "pc": [ - 525 - ] - }, - { - "teal": 319, - "source": 558, - "pc": [ - 526 - ] - }, - { - "teal": 320, - "source": 558, - "pc": [ - 527, - 528 - ] - }, - { - "teal": 321, - "source": 558, - "pc": [ - 529 - ] - }, - { - "teal": 322, - "source": 558, - "pc": [ - 530 - ] - }, - { - "teal": 323, - "source": 558, - "pc": [ - 531 - ] - }, - { - "teal": 324, - "source": 558, - "pc": [ - 532, - 533, - 534 - ] - }, - { - "teal": 325, - "source": 558, - "pc": [ - 535, - 536 - ] - }, - { - "teal": 326, - "source": 558, - "pc": [ - 537, - 538 - ] - }, - { - "teal": 327, - "source": 558, - "pc": [ - 539 - ] - }, - { - "teal": 328, - "source": 558, - "pc": [ - 540 - ] - }, - { - "teal": 329, - "source": 558, - "pc": [ - 541, - 542 - ] - }, - { - "teal": 330, - "source": 558, - "pc": [ - 543, - 544 - ] - }, - { - "teal": 331, - "source": 558, - "pc": [ - 545, - 546 - ] - }, - { - "teal": 332, - "source": 558, - "pc": [ - 547, - 548 - ] - }, - { - "teal": 333, - "source": 558, - "pc": [ - 549 - ] - }, - { - "teal": 336, - "source": 558, - "pc": [ - 550, - 551, - 552 - ] - }, - { - "teal": 337, - "source": 558, - "pc": [ - 553, - 554 - ] - }, - { - "teal": 338, - "source": 558, - "pc": [ - 555, - 556 - ] - }, - { - "teal": 339, - "source": 558, - "pc": [ - 557, - 558 - ] - }, - { - "teal": 340, - "source": 558, - "pc": [ - 559 - ] - }, - { - "teal": 341, - "source": 558, - "pc": [ - 560, - 561 - ] - }, - { - "teal": 342, - "source": 558, - "pc": [ - 562, - 563, - 564 - ] - }, - { - "teal": 343, - "source": 558, - "pc": [ - 565 - ] - }, - { - "teal": 344, - "source": 558, - "pc": [ - 566, - 567, - 568 - ] - }, - { - "teal": 347, - "source": 558, - "pc": [ - 569 - ] - }, - { - "teal": 348, - "source": 558, - "pc": [ - 570 - ] - }, - { - "teal": 351, - "source": 558, - "pc": [ - 571 - ] - }, - { - "teal": 352, - "source": 558, - "pc": [ - 572, - 573, - 574 - ] - }, - { - "teal": 353, - "source": 558, - "pc": [ - 575, - 576 - ] - }, - { - "teal": 354, - "source": 558, - "pc": [ - 577 - ] - }, - { - "teal": 355, - "source": 558, - "pc": [ - 578, - 579 - ] - }, - { - "teal": 356, - "source": 558, - "pc": [ - 580 - ] - }, - { - "teal": 357, - "source": 558, - "pc": [ - 581 - ] - }, - { - "teal": 358, - "source": 558, - "pc": [ - 582, - 583 - ] - }, - { - "teal": 359, - "source": 558, - "pc": [ - 584 - ] - }, - { - "teal": 362, - "source": 558, - "pc": [ - 585, - 586 - ] - }, - { - "teal": 363, - "source": 558, - "pc": [ - 587 - ] - }, - { - "teal": 364, - "source": 558, - "pc": [ - 588, - 589 - ] - }, - { - "teal": 365, - "source": 558, - "pc": [ - 590 - ] - }, - { - "teal": 366, - "source": 558, - "pc": [ - 591, - 592, - 593 - ] - }, - { - "teal": 367, - "source": 558, - "pc": [ - 594, - 595 - ] - }, - { - "teal": 368, - "source": 558, - "pc": [ - 596 - ] - }, - { - "teal": 369, - "source": 558, - "pc": [ - 597, - 598 - ] - }, - { - "teal": 370, - "source": 558, - "pc": [ - 599 - ] - }, - { - "teal": 371, - "source": 558, - "pc": [ - 600, - 601 - ] - }, - { - "teal": 372, - "source": 558, - "pc": [ - 602, - 603, - 604 - ] - }, - { - "teal": 375, - "source": 558, - "pc": [ - 605, - 606 - ] - }, - { - "teal": 376, - "source": 558, - "pc": [ - 607, - 608 - ] - }, - { - "teal": 377, - "source": 558, - "pc": [ - 609 - ] - }, - { - "teal": 378, - "source": 558, - "pc": [ - 610 - ] - }, - { - "teal": 379, - "source": 558, - "pc": [ - 611, - 612 - ] - }, - { - "teal": 382, - "source": 558, - "pc": [ - 613 - ] - }, - { - "teal": 383, - "source": 558, - "pc": [ - 614, - 615 - ] - }, - { - "teal": 384, - "source": 558, - "pc": [ - 616 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 76 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 538 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 552 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCiphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCgljYWxsc3ViIHVwZGF0ZVN0cmluZ0luVHVwbGUKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVTdHJpbmdJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYwCgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCAnSGk/JywgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwOQoJY2FsbHN1YiAqcHJvY2Vzc19zdGF0aWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDM0ODY5M2YKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTAwMDYKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MgoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWJ5dGUgMHg2MwoJcmVwbGFjZTIgMAoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjMKCS8vIGFbMV0gPSBbMTAsIDExXQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwYTAwMGIKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY0CgkvLyBhWzJdID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAzCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2NQoJLy8gYVszXSA9IFsxNCwgMTVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgNQoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY2CgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA3CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAxIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidXBkYXRlU3RyaW5nSW5UdXBsZSgpKHVpbnQ4LHVpbnQxNltdLHN0cmluZyx1aW50MTZbXSx1aW50OFtdKSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZQoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycgoKKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglyZXRzdWIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDBjNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIDB4MDAwMjAwMGEwMDBiIDB4MDAwMjAwMGUwMDBmIDB4MDAwMjEwMTEgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCkodWludDgsdWludDE2W10sc3RyaW5nLHVpbnQxNltdLHVpbnQ4W10pCiphYmlfcm91dGVfdXBkYXRlU3RyaW5nSW5UdXBsZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVN0cmluZ0luVHVwbGUoKSh1aW50OCx1aW50MTZbXSxzdHJpbmcsdWludDE2W10sdWludDhbXSkKCWNhbGxzdWIgdXBkYXRlU3RyaW5nSW5UdXBsZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVTdHJpbmdJblR1cGxlKCk6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQp1cGRhdGVTdHJpbmdJblR1cGxlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYwCgkvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0gPSBbOSwgWzhdLCAnSGk/JywgWzZdLCBbNV1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCXB1c2hieXRlcyAweDAwMDkgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJcHVzaGJ5dGVzIDB4MDkKCWNhbGxzdWIgKnByb2Nlc3Nfc3RhdGljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDA4CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMzQ4NjkzZgoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDA2CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTA1CgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MgoJLy8gYVswXSA9IDk5IGFzIHVpbnQ8OD4KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hieXRlcyAweDYzCglyZXBsYWNlMiAwCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2MwoJLy8gYVsxXSA9IFsxMCwgMTFdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDEKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMGEwMDBiCglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJcHVzaGludCA2CgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY0CgkvLyBhWzJdID0gJ0hlbGxvIFdvcmxkIScKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwYzQ4NjU2YzZjNmYyMDU3NmY3MjZjNjQyMQoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglwdXNoaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NjUKCS8vIGFbM10gPSBbMTQsIDE1XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQ8OD4sIHVpbnQxNltdLCBzdHJpbmcsIHVpbnQxNltdLCB1aW50PDg+W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCA1CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgMAoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJc3Vic3RyaW5nMwoJYnl0ZSAweDAwMDIwMDBlMDAwZgoJZHVwCglzdG9yZSAyNTIgLy8gbmV3IGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgkrIC8vIGdldCBlbmQgb2YgRWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbGVuCglzdWJzdHJpbmczCgljb25jYXQKCWNvbmNhdAoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWNhbGxzdWIgKmdldF9sZW5ndGhfZGlmZmVyZW5jZQoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWludCAyCgkrIC8vIGhlYWQgb2ZzZXQKCWNhbGxzdWIgKnVwZGF0ZV9keW5hbWljX2hlYWQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY2CgkvLyBhWzRdID0gWzE2LCAxN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNwoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglwdXNoaW50IDEgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjEwMTEKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDw4PiwgdWludDE2W10sIHN0cmluZywgdWludDE2W10sIHVpbnQ8OD5bXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTY4CgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50PDg+LCB1aW50MTZbXSwgc3RyaW5nLCB1aW50MTZbXSwgdWludDw4PltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhmMWZjMjU4NiAvLyBtZXRob2QgInVwZGF0ZVN0cmluZ0luVHVwbGUoKSh1aW50OCx1aW50MTZbXSxzdHJpbmcsdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVN0cmluZ0luVHVwbGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQ6Cglwcm90byA0IDMKCWZyYW1lX2RpZyAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtNCAvLyB0dXBsZSBoZWFkCglmcmFtZV9kaWcgLTEgLy8gZWxlbWVudAoJZHVwCglsZW4KCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJYnRvaQoJKwoJaXRvYgoJZXh0cmFjdCA2IDIKCWZyYW1lX2J1cnkgLTIgLy8gaGVhZCBvZmZzZXQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglzd2FwCgljb25jYXQKCWZyYW1lX2J1cnkgLTMgLy8gdHVwbGUgdGFpbAoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTIgLy8gaGVhZCBvZmZzZXQKCXJldHN1YgoKKnVwZGF0ZV9keW5hbWljX2hlYWQ6Cglwcm90byAyIDAKCWZyYW1lX2RpZyAtMiAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfZGlnIC0xIC8vIGR5bmFtaWMgYXJyYXkgb2Zmc2V0CglleHRyYWN0X3VpbnQxNiAvLyBleHRyYWN0IGR5bmFtaWMgYXJyYXkgb2Zmc2V0Cglsb2FkIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWJ6ICpzdWJ0cmFjdF9oZWFkX2RpZmZlcmVuY2UKCSsgLy8gYWRkIGRpZmZlcmVuY2UgdG8gb2Zmc2V0CgliICplbmRfY2FsY19uZXdfaGVhZAoKKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZToKCXN3YXAKCS0gLy8gc3VidHJhY3QgZGlmZmVyZW5jZSBmcm9tIG9mZmV0CgoqZW5kX2NhbGNfbmV3X2hlYWQ6CglpdG9iIC8vIGNvbnZlcnQgdG8gYnl0ZXMKCWV4dHJhY3QgNiAyIC8vIGNvbnZlcnQgdG8gdWludDE2Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglmcmFtZV9kaWcgLTEgLy8gb2Zmc2V0Cglzd2FwCglyZXBsYWNlMyAvLyB1cGRhdGUgb2Zmc2V0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJcmV0c3ViCgoqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlOgoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCgk8CglibnogKnN3YXBwZWRfZGlmZmVyZW5jZQoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglwdXNoaW50IDEKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCWIgKmdldF9kaWZmZXJlbmNlCgoqc3dhcHBlZF9kaWZmZXJlbmNlOgoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjUyIC8vIG5ldyBlbGVtZW50CglsZW4gLy8gbGVuZ3RoIG9mIG5ldyBlbGVtZW50CglwdXNoaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAFAgEABgQmAQAxGBQlCzEZCI0MAbkAAAAAAAAAAAAAAasAAAAAAAAAAAAAAIAEFR98dYgABFCwI0OKAAEoKCiAAgAJgAEJiAGpgAQAAQAIiAGtgAUAA0hpP4gBo4AEAAEABogBmoADAAEFiAGSSFCMAIsANf80/4ABY1wAjACLADX/I0k1+zT/NP9PAllJNf5JNP9MWSILIgg1/TT/JDT+UoAGAAIACgALSTX8NP80/jT9CDT/FVJQUDX/iAGJNPo0+yIIiAFdNPo0+yEECIgBUzT6NPslCIgBSjT/jACLADX/gQNJNfs0/zT/TwJZSTX+STT/TFkjCyIINf00/yQ0/lKADgAMSGVsbG8gV29ybGQhSTX8NP80/jT9CDT/FVJQUDX/iAEgNPo0+yIIiAD0NPo0+yEECIgA6jT/jACLADX/gQVJNfs0/zT/TwJZSTX+STT/TFkiCyIINf00/yQ0/lKABgACAA4AD0k1/DT/NP40/Qg0/xVSUFA1/4gAyDT6NPsiCIgAnDT/jACLADX/gQdJNfs0/zT/TwJZSTX+STT/TFkjCyIINf00/yQ0/lKABAACEBFJNfw0/zT+NP0INP8VUlBQNf+IAHw0/4wAiwCMAIkjQ4AEuER7NjYaAI4B//EAgATx/CWGNhoAjgH+OwCKBAOL/Iv/UIv9i/6JigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iYoCAIv+NP+L/1k0+UEABAhCAAJMCRZXBgI0/0yL/0xdNf+JNPwVNP0MQAALNPwVNP0jNflCAAg0/TT8FSQ1+Qk1+ok=", + "approval": "CiABAiYFDgAMSGVsbG8gV29ybGQhBgACAAoACwYAAgAOAA8EAAIQEQAxGBSBBgsxGQiNDAHPAAAAAAAAAAAAAAHBAAAAAAAAAAAAAACABBUffHWIAAVQsIEBQ4oAAYAAgACAAIACAAmAAQmIAbuABAABAAiIAb+ABQADSGk/iAG1gAQAAQAGiAGsgAMAAQWIAaRIUIwAiwA1/zT/gAFjXACMAIsANf+BAUk1+zT/NP9PAllJNf5JNP9MWYECC4ECCDX9NP+BADT+UoAGAAIACgALSTX8NP80/jT9CDT/FVJQUDX/iAGXNPo0+4ECCIgBajT6NPuBBAiIAWA0+jT7gQYIiAFWNP+MAIsANf+BA0k1+zT/NP9PAllJNf5JNP9MWYEBC4ECCDX9NP+BADT+UoAOAAxIZWxsbyBXb3JsZCFJNfw0/zT+NP0INP8VUlBQNf+IASk0+jT7gQIIiAD8NPo0+4EECIgA8jT/jACLADX/gQVJNfs0/zT/TwJZSTX+STT/TFmBAguBAgg1/TT/gQA0/lKABgACAA4AD0k1/DT/NP40/Qg0/xVSUFA1/4gAzTT6NPuBAgiIAKA0/4wAiwA1/4EHSTX7NP80/08CWUk1/kk0/0xZgQELgQIINf00/4EANP5SgAQAAhARSTX8NP80/jT9CDT/FVJQUDX/iAB9NP+MAIsAjACJgQFDgAS4RHs2NhoAjgH/8ACABPH8JYY2GgCOAf4lAIoEA4v8i/9Qi/2L/omKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JigIAi/40/4v/WTT5QQAECEIAAkwJFlcGAjT/TIv/TF01/4k0/BU0/QxAAAw0/BU0/YEBNflCAAk0/TT8FYEANfkJNfqJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal index b6c527770..1917f4e5f 100644 --- a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 2 +bytecblock 0x000200040005 0x000200060007 0x000200080009 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +27,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // updateTupleWithOnlyDynamicTypes()(uint16[],uint16[],uint16[]) *abi_route_updateTupleWithOnlyDynamicTypes: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute updateTupleWithOnlyDynamicTypes()(uint16[],uint16[],uint16[]) callsub updateTupleWithOnlyDynamicTypes concat log - int 1 + pushint 1 return // updateTupleWithOnlyDynamicTypes(): [uint16[], uint16[], uint16[]] @@ -45,12 +47,12 @@ updateTupleWithOnlyDynamicTypes: // a: [uint16[], uint16[], uint16[]] = [[1], [2], [3]] byte 0x // initial head byte 0x // initial tail - byte 0x0006 // initial head offset - byte 0x00010001 + pushbytes 0x0006 // initial head offset + pushbytes 0x00010001 callsub *process_dynamic_tuple_element - byte 0x00010002 + pushbytes 0x00010002 callsub *process_dynamic_tuple_element - byte 0x00010003 + pushbytes 0x00010003 callsub *process_dynamic_tuple_element pop // pop head offset concat // concat head and tail @@ -60,7 +62,7 @@ updateTupleWithOnlyDynamicTypes: // a[0] = [4, 5] frame_dig 0 // a: [uint16[], uint16[], uint16[]] store 255 // full array - int 0 + pushint 0 dup store 251 // element head offset load 255 // full array @@ -79,7 +81,7 @@ updateTupleWithOnlyDynamicTypes: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x000200040005 @@ -103,7 +105,7 @@ updateTupleWithOnlyDynamicTypes: callsub *update_dynamic_head load 250 // length difference load 251 // element head offset - int 4 + pushint 4 + // head ofset callsub *update_dynamic_head load 255 // full array @@ -132,7 +134,7 @@ updateTupleWithOnlyDynamicTypes: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x000200060007 @@ -161,7 +163,7 @@ updateTupleWithOnlyDynamicTypes: // a[2] = [8, 9] frame_dig 0 // a: [uint16[], uint16[], uint16[]] store 255 // full array - int 4 + pushint 4 dup store 251 // element head offset load 255 // full array @@ -180,7 +182,7 @@ updateTupleWithOnlyDynamicTypes: + // add two for length store 253 // element length load 255 // full array - int 0 + pushint 0 load 254 // element start substring3 byte 0x000200080009 @@ -209,11 +211,11 @@ updateTupleWithOnlyDynamicTypes: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -221,7 +223,7 @@ updateTupleWithOnlyDynamicTypes: err *call_NoOp: - method "updateTupleWithOnlyDynamicTypes()(uint16[],uint16[],uint16[])" + pushbytes 0x405741a9 // method "updateTupleWithOnlyDynamicTypes()(uint16[],uint16[],uint16[])" txna ApplicationArgs 0 match *abi_route_updateTupleWithOnlyDynamicTypes @@ -287,7 +289,7 @@ updateTupleWithOnlyDynamicTypes: load 252 // new element len // length of new element load 253 // element length - int 1 + pushint 1 store 249 // subtract head difference b *get_difference @@ -295,7 +297,7 @@ updateTupleWithOnlyDynamicTypes: load 253 // element length load 252 // new element len // length of new element - int 0 + pushint 0 store 249 // subtract head difference *get_difference: diff --git a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json index 257271760..e74c47818 100644 --- a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json +++ b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCgljYWxsc3ViIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQp1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc0CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbWzFdLCBbMl0sIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEwMDAxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU3NgoJLy8gYVswXSA9IFs0LCA1XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwNDAwMDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzcKCS8vIGFbMV0gPSBbNiwgN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDYwMDA3CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzgKCS8vIGFbMl0gPSBbOCwgOV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDgwMDA5CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU4MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDAyMDAwNDAwMDUgMHgwMDAyMDAwNjAwMDcgMHgwMDAyMDAwODAwMDkgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkKCWNhbGxzdWIgdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlcwoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQp1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc0CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbWzFdLCBbMl0sIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAwMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc2CgkvLyBhWzBdID0gWzQsIDVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDQwMDA1CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU3NwoJLy8gYVsxXSA9IFs2LCA3XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDYwMDA3CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzgKCS8vIGFbMl0gPSBbOCwgOV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwODAwMDkKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgwCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0MDU3NDFhOSAvLyBtZXRob2QgInVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCXB1c2hpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc56_draft.json b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc56_draft.json index 3164a702a..9c70c8496 100644 --- a/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc56_draft.json +++ b/tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc56_draft.json @@ -61,1917 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 572, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ] - }, - { - "teal": 13, - "source": 572, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 14, - "source": 572, - "pc": [ - 12 - ] - }, - { - "teal": 15, - "source": 572, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 16, - "source": 572, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 572, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 572, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 572, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 572, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 573, - "pc": [ - 46, - 47, - 48, - 49, - 50, - 51 - ] - }, - { - "teal": 31, - "source": 573, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 32, - "source": 573, - "pc": [ - 55 - ] - }, - { - "teal": 33, - "source": 573, - "pc": [ - 56 - ] - }, - { - "teal": 34, - "source": 573, - "pc": [ - 57 - ] - }, - { - "teal": 35, - "source": 573, - "pc": [ - 58 - ] - }, - { - "teal": 39, - "source": 573, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 42, - "source": 573, - "pc": [ - 62 - ] - }, - { - "teal": 46, - "source": 574, - "pc": [ - 63 - ] - }, - { - "teal": 47, - "source": 574, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 574, - "pc": [ - 65, - 66, - 67, - 68 - ] - }, - { - "teal": 49, - "source": 574, - "pc": [ - 69, - 70, - 71, - 72, - 73, - 74 - ] - }, - { - "teal": 50, - "source": 574, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 51, - "source": 574, - "pc": [ - 78, - 79, - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 52, - "source": 574, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 53, - "source": 574, - "pc": [ - 87, - 88, - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 54, - "source": 574, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 55, - "source": 574, - "pc": [ - 96 - ] - }, - { - "teal": 56, - "source": 574, - "pc": [ - 97 - ] - }, - { - "teal": 57, - "source": 574, - "pc": [ - 98, - 99 - ] - }, - { - "teal": 61, - "source": 576, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 62, - "source": 576, - "pc": [ - 102, - 103 - ] - }, - { - "teal": 63, - "source": 576, - "pc": [ - 104 - ] - }, - { - "teal": 64, - "source": 576, - "pc": [ - 105 - ] - }, - { - "teal": 65, - "source": 576, - "pc": [ - 106, - 107 - ] - }, - { - "teal": 66, - "source": 576, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 67, - "source": 576, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 68, - "source": 576, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 69, - "source": 576, - "pc": [ - 114 - ] - }, - { - "teal": 70, - "source": 576, - "pc": [ - 115 - ] - }, - { - "teal": 71, - "source": 576, - "pc": [ - 116, - 117 - ] - }, - { - "teal": 72, - "source": 576, - "pc": [ - 118 - ] - }, - { - "teal": 73, - "source": 576, - "pc": [ - 119, - 120 - ] - }, - { - "teal": 74, - "source": 576, - "pc": [ - 121 - ] - }, - { - "teal": 75, - "source": 576, - "pc": [ - 122 - ] - }, - { - "teal": 76, - "source": 576, - "pc": [ - 123 - ] - }, - { - "teal": 77, - "source": 576, - "pc": [ - 124 - ] - }, - { - "teal": 78, - "source": 576, - "pc": [ - 125 - ] - }, - { - "teal": 79, - "source": 576, - "pc": [ - 126 - ] - }, - { - "teal": 80, - "source": 576, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 81, - "source": 576, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 82, - "source": 576, - "pc": [ - 131 - ] - }, - { - "teal": 83, - "source": 576, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 84, - "source": 576, - "pc": [ - 134 - ] - }, - { - "teal": 85, - "source": 576, - "pc": [ - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142 - ] - }, - { - "teal": 86, - "source": 576, - "pc": [ - 143 - ] - }, - { - "teal": 87, - "source": 576, - "pc": [ - 144, - 145 - ] - }, - { - "teal": 88, - "source": 576, - "pc": [ - 146, - 147 - ] - }, - { - "teal": 89, - "source": 576, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 90, - "source": 576, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 91, - "source": 576, - "pc": [ - 152 - ] - }, - { - "teal": 92, - "source": 576, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 93, - "source": 576, - "pc": [ - 155 - ] - }, - { - "teal": 94, - "source": 576, - "pc": [ - 156 - ] - }, - { - "teal": 95, - "source": 576, - "pc": [ - 157 - ] - }, - { - "teal": 96, - "source": 576, - "pc": [ - 158 - ] - }, - { - "teal": 97, - "source": 576, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 98, - "source": 576, - "pc": [ - 161, - 162, - 163 - ] - }, - { - "teal": 99, - "source": 576, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 100, - "source": 576, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 101, - "source": 576, - "pc": [ - 168 - ] - }, - { - "teal": 102, - "source": 576, - "pc": [ - 169 - ] - }, - { - "teal": 103, - "source": 576, - "pc": [ - 170, - 171, - 172 - ] - }, - { - "teal": 104, - "source": 576, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 105, - "source": 576, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 106, - "source": 576, - "pc": [ - 177 - ] - }, - { - "teal": 107, - "source": 576, - "pc": [ - 178 - ] - }, - { - "teal": 108, - "source": 576, - "pc": [ - 179, - 180, - 181 - ] - }, - { - "teal": 109, - "source": 576, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 110, - "source": 576, - "pc": [ - 184, - 185 - ] - }, - { - "teal": 114, - "source": 577, - "pc": [ - 186, - 187 - ] - }, - { - "teal": 115, - "source": 577, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 116, - "source": 577, - "pc": [ - 190 - ] - }, - { - "teal": 117, - "source": 577, - "pc": [ - 191 - ] - }, - { - "teal": 118, - "source": 577, - "pc": [ - 192, - 193 - ] - }, - { - "teal": 119, - "source": 577, - "pc": [ - 194, - 195 - ] - }, - { - "teal": 120, - "source": 577, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 121, - "source": 577, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 122, - "source": 577, - "pc": [ - 200 - ] - }, - { - "teal": 123, - "source": 577, - "pc": [ - 201 - ] - }, - { - "teal": 124, - "source": 577, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 125, - "source": 577, - "pc": [ - 204 - ] - }, - { - "teal": 126, - "source": 577, - "pc": [ - 205, - 206 - ] - }, - { - "teal": 127, - "source": 577, - "pc": [ - 207 - ] - }, - { - "teal": 128, - "source": 577, - "pc": [ - 208 - ] - }, - { - "teal": 129, - "source": 577, - "pc": [ - 209 - ] - }, - { - "teal": 130, - "source": 577, - "pc": [ - 210 - ] - }, - { - "teal": 131, - "source": 577, - "pc": [ - 211 - ] - }, - { - "teal": 132, - "source": 577, - "pc": [ - 212 - ] - }, - { - "teal": 133, - "source": 577, - "pc": [ - 213, - 214 - ] - }, - { - "teal": 134, - "source": 577, - "pc": [ - 215, - 216 - ] - }, - { - "teal": 135, - "source": 577, - "pc": [ - 217 - ] - }, - { - "teal": 136, - "source": 577, - "pc": [ - 218, - 219 - ] - }, - { - "teal": 137, - "source": 577, - "pc": [ - 220 - ] - }, - { - "teal": 138, - "source": 577, - "pc": [ - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228 - ] - }, - { - "teal": 139, - "source": 577, - "pc": [ - 229 - ] - }, - { - "teal": 140, - "source": 577, - "pc": [ - 230, - 231 - ] - }, - { - "teal": 141, - "source": 577, - "pc": [ - 232, - 233 - ] - }, - { - "teal": 142, - "source": 577, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 143, - "source": 577, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 144, - "source": 577, - "pc": [ - 238 - ] - }, - { - "teal": 145, - "source": 577, - "pc": [ - 239, - 240 - ] - }, - { - "teal": 146, - "source": 577, - "pc": [ - 241 - ] - }, - { - "teal": 147, - "source": 577, - "pc": [ - 242 - ] - }, - { - "teal": 148, - "source": 577, - "pc": [ - 243 - ] - }, - { - "teal": 149, - "source": 577, - "pc": [ - 244 - ] - }, - { - "teal": 150, - "source": 577, - "pc": [ - 245, - 246 - ] - }, - { - "teal": 151, - "source": 577, - "pc": [ - 247, - 248, - 249 - ] - }, - { - "teal": 152, - "source": 577, - "pc": [ - 250, - 251 - ] - }, - { - "teal": 153, - "source": 577, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 154, - "source": 577, - "pc": [ - 254 - ] - }, - { - "teal": 155, - "source": 577, - "pc": [ - 255 - ] - }, - { - "teal": 156, - "source": 577, - "pc": [ - 256, - 257, - 258 - ] - }, - { - "teal": 157, - "source": 577, - "pc": [ - 259, - 260 - ] - }, - { - "teal": 158, - "source": 577, - "pc": [ - 261, - 262 - ] - }, - { - "teal": 162, - "source": 578, - "pc": [ - 263, - 264 - ] - }, - { - "teal": 163, - "source": 578, - "pc": [ - 265, - 266 - ] - }, - { - "teal": 164, - "source": 578, - "pc": [ - 267 - ] - }, - { - "teal": 165, - "source": 578, - "pc": [ - 268 - ] - }, - { - "teal": 166, - "source": 578, - "pc": [ - 269, - 270 - ] - }, - { - "teal": 167, - "source": 578, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 168, - "source": 578, - "pc": [ - 273, - 274 - ] - }, - { - "teal": 169, - "source": 578, - "pc": [ - 275, - 276 - ] - }, - { - "teal": 170, - "source": 578, - "pc": [ - 277 - ] - }, - { - "teal": 171, - "source": 578, - "pc": [ - 278 - ] - }, - { - "teal": 172, - "source": 578, - "pc": [ - 279, - 280 - ] - }, - { - "teal": 173, - "source": 578, - "pc": [ - 281 - ] - }, - { - "teal": 174, - "source": 578, - "pc": [ - 282, - 283 - ] - }, - { - "teal": 175, - "source": 578, - "pc": [ - 284 - ] - }, - { - "teal": 176, - "source": 578, - "pc": [ - 285 - ] - }, - { - "teal": 177, - "source": 578, - "pc": [ - 286 - ] - }, - { - "teal": 178, - "source": 578, - "pc": [ - 287 - ] - }, - { - "teal": 179, - "source": 578, - "pc": [ - 288 - ] - }, - { - "teal": 180, - "source": 578, - "pc": [ - 289 - ] - }, - { - "teal": 181, - "source": 578, - "pc": [ - 290, - 291 - ] - }, - { - "teal": 182, - "source": 578, - "pc": [ - 292, - 293 - ] - }, - { - "teal": 183, - "source": 578, - "pc": [ - 294 - ] - }, - { - "teal": 184, - "source": 578, - "pc": [ - 295, - 296 - ] - }, - { - "teal": 185, - "source": 578, - "pc": [ - 297 - ] - }, - { - "teal": 186, - "source": 578, - "pc": [ - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305 - ] - }, - { - "teal": 187, - "source": 578, - "pc": [ - 306 - ] - }, - { - "teal": 188, - "source": 578, - "pc": [ - 307, - 308 - ] - }, - { - "teal": 189, - "source": 578, - "pc": [ - 309, - 310 - ] - }, - { - "teal": 190, - "source": 578, - "pc": [ - 311, - 312 - ] - }, - { - "teal": 191, - "source": 578, - "pc": [ - 313, - 314 - ] - }, - { - "teal": 192, - "source": 578, - "pc": [ - 315 - ] - }, - { - "teal": 193, - "source": 578, - "pc": [ - 316, - 317 - ] - }, - { - "teal": 194, - "source": 578, - "pc": [ - 318 - ] - }, - { - "teal": 195, - "source": 578, - "pc": [ - 319 - ] - }, - { - "teal": 196, - "source": 578, - "pc": [ - 320 - ] - }, - { - "teal": 197, - "source": 578, - "pc": [ - 321 - ] - }, - { - "teal": 198, - "source": 578, - "pc": [ - 322, - 323 - ] - }, - { - "teal": 199, - "source": 578, - "pc": [ - 324, - 325, - 326 - ] - }, - { - "teal": 200, - "source": 578, - "pc": [ - 327, - 328 - ] - }, - { - "teal": 201, - "source": 578, - "pc": [ - 329, - 330 - ] - }, - { - "teal": 205, - "source": 580, - "pc": [ - 331, - 332 - ] - }, - { - "teal": 208, - "source": 573, - "pc": [ - 333, - 334 - ] - }, - { - "teal": 209, - "source": 573, - "pc": [ - 335 - ] - }, - { - "teal": 212, - "source": 572, - "pc": [ - 336 - ] - }, - { - "teal": 213, - "source": 572, - "pc": [ - 337 - ] - }, - { - "teal": 216, - "source": 572, - "pc": [ - 338, - 339, - 340, - 341, - 342, - 343 - ] - }, - { - "teal": 217, - "source": 572, - "pc": [ - 344, - 345, - 346 - ] - }, - { - "teal": 218, - "source": 572, - "pc": [ - 347, - 348, - 349, - 350 - ] - }, - { - "teal": 221, - "source": 572, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 351 - ] - }, - { - "teal": 224, - "source": 572, - "pc": [ - 352, - 353, - 354, - 355, - 356, - 357 - ] - }, - { - "teal": 225, - "source": 572, - "pc": [ - 358, - 359, - 360 - ] - }, - { - "teal": 226, - "source": 572, - "pc": [ - 361, - 362, - 363, - 364 - ] - }, - { - "teal": 229, - "source": 572, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 365 - ] - }, - { - "teal": 232, - "source": 572, - "pc": [ - 366, - 367, - 368 - ] - }, - { - "teal": 233, - "source": 572, - "pc": [ - 369, - 370 - ] - }, - { - "teal": 234, - "source": 572, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 235, - "source": 572, - "pc": [ - 373 - ] - }, - { - "teal": 236, - "source": 572, - "pc": [ - 374, - 375 - ] - }, - { - "teal": 237, - "source": 572, - "pc": [ - 376, - 377 - ] - }, - { - "teal": 238, - "source": 572, - "pc": [ - 378 - ] - }, - { - "teal": 239, - "source": 572, - "pc": [ - 379 - ] - }, - { - "teal": 240, - "source": 572, - "pc": [ - 380, - 381 - ] - }, - { - "teal": 241, - "source": 572, - "pc": [ - 382 - ] - }, - { - "teal": 242, - "source": 572, - "pc": [ - 383 - ] - }, - { - "teal": 243, - "source": 572, - "pc": [ - 384 - ] - }, - { - "teal": 244, - "source": 572, - "pc": [ - 385, - 386, - 387 - ] - }, - { - "teal": 245, - "source": 572, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 246, - "source": 572, - "pc": [ - 390, - 391 - ] - }, - { - "teal": 247, - "source": 572, - "pc": [ - 392 - ] - }, - { - "teal": 248, - "source": 572, - "pc": [ - 393 - ] - }, - { - "teal": 249, - "source": 572, - "pc": [ - 394, - 395 - ] - }, - { - "teal": 250, - "source": 572, - "pc": [ - 396, - 397 - ] - }, - { - "teal": 251, - "source": 572, - "pc": [ - 398, - 399 - ] - }, - { - "teal": 252, - "source": 572, - "pc": [ - 400, - 401 - ] - }, - { - "teal": 253, - "source": 572, - "pc": [ - 402 - ] - }, - { - "teal": 256, - "source": 572, - "pc": [ - 403, - 404, - 405 - ] - }, - { - "teal": 257, - "source": 572, - "pc": [ - 406, - 407 - ] - }, - { - "teal": 258, - "source": 572, - "pc": [ - 408, - 409 - ] - }, - { - "teal": 259, - "source": 572, - "pc": [ - 410, - 411 - ] - }, - { - "teal": 260, - "source": 572, - "pc": [ - 412 - ] - }, - { - "teal": 261, - "source": 572, - "pc": [ - 413, - 414 - ] - }, - { - "teal": 262, - "source": 572, - "pc": [ - 415, - 416, - 417 - ] - }, - { - "teal": 263, - "source": 572, - "pc": [ - 418 - ] - }, - { - "teal": 264, - "source": 572, - "pc": [ - 419, - 420, - 421 - ] - }, - { - "teal": 267, - "source": 572, - "pc": [ - 422 - ] - }, - { - "teal": 268, - "source": 572, - "pc": [ - 423 - ] - }, - { - "teal": 271, - "source": 572, - "pc": [ - 424 - ] - }, - { - "teal": 272, - "source": 572, - "pc": [ - 425, - 426, - 427 - ] - }, - { - "teal": 273, - "source": 572, - "pc": [ - 428, - 429 - ] - }, - { - "teal": 274, - "source": 572, - "pc": [ - 430 - ] - }, - { - "teal": 275, - "source": 572, - "pc": [ - 431, - 432 - ] - }, - { - "teal": 276, - "source": 572, - "pc": [ - 433 - ] - }, - { - "teal": 277, - "source": 572, - "pc": [ - 434 - ] - }, - { - "teal": 278, - "source": 572, - "pc": [ - 435, - 436 - ] - }, - { - "teal": 279, - "source": 572, - "pc": [ - 437 - ] - }, - { - "teal": 282, - "source": 572, - "pc": [ - 438, - 439 - ] - }, - { - "teal": 283, - "source": 572, - "pc": [ - 440 - ] - }, - { - "teal": 284, - "source": 572, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 285, - "source": 572, - "pc": [ - 443 - ] - }, - { - "teal": 286, - "source": 572, - "pc": [ - 444, - 445, - 446 - ] - }, - { - "teal": 287, - "source": 572, - "pc": [ - 447, - 448 - ] - }, - { - "teal": 288, - "source": 572, - "pc": [ - 449 - ] - }, - { - "teal": 289, - "source": 572, - "pc": [ - 450, - 451 - ] - }, - { - "teal": 290, - "source": 572, - "pc": [ - 452 - ] - }, - { - "teal": 291, - "source": 572, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 292, - "source": 572, - "pc": [ - 455, - 456, - 457 - ] - }, - { - "teal": 295, - "source": 572, - "pc": [ - 458, - 459 - ] - }, - { - "teal": 296, - "source": 572, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 297, - "source": 572, - "pc": [ - 462 - ] - }, - { - "teal": 298, - "source": 572, - "pc": [ - 463 - ] - }, - { - "teal": 299, - "source": 572, - "pc": [ - 464, - 465 - ] - }, - { - "teal": 302, - "source": 572, - "pc": [ - 466 - ] - }, - { - "teal": 303, - "source": 572, - "pc": [ - 467, - 468 - ] - }, - { - "teal": 304, - "source": 572, - "pc": [ - 469 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 63 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 389 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 403 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCgljYWxsc3ViIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQp1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc0CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbWzFdLCBbMl0sIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJYnl0ZSAweDAwMDYgLy8gaW5pdGlhbCBoZWFkIG9mZnNldAoJYnl0ZSAweDAwMDEwMDAxCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJYnl0ZSAweDAwMDEwMDAzCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU3NgoJLy8gYVswXSA9IFs0LCA1XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwNDAwMDUKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjUwIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0CglpbnQgMgoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDQKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzcKCS8vIGFbMV0gPSBbNiwgN10KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAyCglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDYwMDA3CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzgKCS8vIGFbMl0gPSBbOCwgOV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCA0CglkdXAKCXN0b3JlIDI1MSAvLyBlbGVtZW50IGhlYWQgb2Zmc2V0Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cgl1bmNvdmVyIDIKCWV4dHJhY3RfdWludDE2CglkdXAKCXN0b3JlIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglkdXAgLy8gZHVwbGljYXRlIHN0YXJ0IG9mIGVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWV4dHJhY3RfdWludDE2IC8vIGdldCBudW1iZXIgb2YgZWxlbWVudHMKCWludCAyIC8vIGdldCB0eXBlIGxlbmd0aAoJKiAvLyBtdWx0aXBseSBieSB0eXBlIGxlbmd0aAoJaW50IDIKCSsgLy8gYWRkIHR3byBmb3IgbGVuZ3RoCglzdG9yZSAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDgwMDA5CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU4MAoJLy8gcmV0dXJuIGE7CglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCWludCAxCglzdG9yZSAyNDkgLy8gc3VidHJhY3QgaGVhZCBkaWZmZXJlbmNlCgliICpnZXRfZGlmZmVyZW5jZQoKKnN3YXBwZWRfZGlmZmVyZW5jZToKCWxvYWQgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJaW50IDAKCXN0b3JlIDI0OSAvLyBzdWJ0cmFjdCBoZWFkIGRpZmZlcmVuY2UKCipnZXRfZGlmZmVyZW5jZToKCS0gLy8gZ2V0IGxlbmd0aCBkaWZmZXJlbmNlCglzdG9yZSAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCXJldHN1Yg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyCmJ5dGVjYmxvY2sgMHgwMDAyMDAwNDAwMDUgMHgwMDAyMDAwNjAwMDcgMHgwMDAyMDAwODAwMDkgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCkodWludDE2W10sdWludDE2W10sdWludDE2W10pCiphYmlfcm91dGVfdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkKCWNhbGxzdWIgdXBkYXRlVHVwbGVXaXRoT25seUR5bmFtaWNUeXBlcwoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyB1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzKCk6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQp1cGRhdGVUdXBsZVdpdGhPbmx5RHluYW1pY1R5cGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc0CgkvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0gPSBbWzFdLCBbMl0sIFszXV0KCWJ5dGUgMHggLy8gaW5pdGlhbCBoZWFkCglieXRlIDB4IC8vIGluaXRpYWwgdGFpbAoJcHVzaGJ5dGVzIDB4MDAwNiAvLyBpbml0aWFsIGhlYWQgb2Zmc2V0CglwdXNoYnl0ZXMgMHgwMDAxMDAwMQoJY2FsbHN1YiAqcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCXB1c2hieXRlcyAweDAwMDEwMDAyCgljYWxsc3ViICpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcHVzaGJ5dGVzIDB4MDAwMTAwMDMKCWNhbGxzdWIgKnByb2Nlc3NfZHluYW1pY190dXBsZV9lbGVtZW50Cglwb3AgLy8gcG9wIGhlYWQgb2Zmc2V0Cgljb25jYXQgLy8gY29uY2F0IGhlYWQgYW5kIHRhaWwKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTc2CgkvLyBhWzBdID0gWzQsIDVdCglmcmFtZV9kaWcgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDQwMDA1CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTAgLy8gbGVuZ3RoIGRpZmZlcmVuY2UKCWxvYWQgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCXB1c2hpbnQgNAoJKyAvLyBoZWFkIG9mc2V0CgljYWxsc3ViICp1cGRhdGVfZHluYW1pY19oZWFkCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9idXJ5IDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU3NwoJLy8gYVsxXSA9IFs2LCA3XQoJZnJhbWVfZGlnIDAgLy8gYTogW3VpbnQxNltdLCB1aW50MTZbXSwgdWludDE2W11dCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJaW50IDIKCWR1cAoJc3RvcmUgMjUxIC8vIGVsZW1lbnQgaGVhZCBvZmZzZXQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXVuY292ZXIgMgoJZXh0cmFjdF91aW50MTYKCWR1cAoJc3RvcmUgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCWR1cCAvLyBkdXBsaWNhdGUgc3RhcnQgb2YgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJc3dhcAoJZXh0cmFjdF91aW50MTYgLy8gZ2V0IG51bWJlciBvZiBlbGVtZW50cwoJaW50IDIgLy8gZ2V0IHR5cGUgbGVuZ3RoCgkqIC8vIG11bHRpcGx5IGJ5IHR5cGUgbGVuZ3RoCglpbnQgMgoJKyAvLyBhZGQgdHdvIGZvciBsZW5ndGgKCXN0b3JlIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJcHVzaGludCAwCglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0CglzdWJzdHJpbmczCglieXRlIDB4MDAwMjAwMDYwMDA3CglkdXAKCXN0b3JlIDI1MiAvLyBuZXcgZWxlbWVudAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTQgLy8gZWxlbWVudCBzdGFydAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCSsgLy8gZ2V0IGVuZCBvZiBFbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglsZW4KCXN1YnN0cmluZzMKCWNvbmNhdAoJY29uY2F0CglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJY2FsbHN1YiAqZ2V0X2xlbmd0aF9kaWZmZXJlbmNlCglsb2FkIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJbG9hZCAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJaW50IDIKCSsgLy8gaGVhZCBvZnNldAoJY2FsbHN1YiAqdXBkYXRlX2R5bmFtaWNfaGVhZAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZnJhbWVfYnVyeSAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NzgKCS8vIGFbMl0gPSBbOCwgOV0KCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCXB1c2hpbnQgNAoJZHVwCglzdG9yZSAyNTEgLy8gZWxlbWVudCBoZWFkIG9mZnNldAoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwCglzdG9yZSAyNTQgLy8gZWxlbWVudCBzdGFydAoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMiAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJc3RvcmUgMjUzIC8vIGVsZW1lbnQgbGVuZ3RoCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglwdXNoaW50IDAKCWxvYWQgMjU0IC8vIGVsZW1lbnQgc3RhcnQKCXN1YnN0cmluZzMKCWJ5dGUgMHgwMDAyMDAwODAwMDkKCWR1cAoJc3RvcmUgMjUyIC8vIG5ldyBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NCAvLyBlbGVtZW50IHN0YXJ0Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJKyAvLyBnZXQgZW5kIG9mIEVsZW1lbnQKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWxlbgoJc3Vic3RyaW5nMwoJY29uY2F0Cgljb25jYXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CgljYWxsc3ViICpnZXRfbGVuZ3RoX2RpZmZlcmVuY2UKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWZyYW1lX2J1cnkgMCAvLyBhOiBbdWludDE2W10sIHVpbnQxNltdLCB1aW50MTZbXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgwCgkvLyByZXR1cm4gYTsKCWZyYW1lX2RpZyAwIC8vIGE6IFt1aW50MTZbXSwgdWludDE2W10sIHVpbnQxNltdXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0MDU3NDFhOSAvLyBtZXRob2QgInVwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMoKSh1aW50MTZbXSx1aW50MTZbXSx1aW50MTZbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZVR1cGxlV2l0aE9ubHlEeW5hbWljVHlwZXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgoqdXBkYXRlX2R5bmFtaWNfaGVhZDoKCXByb3RvIDIgMAoJZnJhbWVfZGlnIC0yIC8vIGxlbmd0aCBkaWZmZXJlbmNlCglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglmcmFtZV9kaWcgLTEgLy8gZHluYW1pYyBhcnJheSBvZmZzZXQKCWV4dHJhY3RfdWludDE2IC8vIGV4dHJhY3QgZHluYW1pYyBhcnJheSBvZmZzZXQKCWxvYWQgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYnogKnN1YnRyYWN0X2hlYWRfZGlmZmVyZW5jZQoJKyAvLyBhZGQgZGlmZmVyZW5jZSB0byBvZmZzZXQKCWIgKmVuZF9jYWxjX25ld19oZWFkCgoqc3VidHJhY3RfaGVhZF9kaWZmZXJlbmNlOgoJc3dhcAoJLSAvLyBzdWJ0cmFjdCBkaWZmZXJlbmNlIGZyb20gb2ZmZXQKCiplbmRfY2FsY19uZXdfaGVhZDoKCWl0b2IgLy8gY29udmVydCB0byBieXRlcwoJZXh0cmFjdCA2IDIgLy8gY29udmVydCB0byB1aW50MTYKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCXN3YXAKCWZyYW1lX2RpZyAtMSAvLyBvZmZzZXQKCXN3YXAKCXJlcGxhY2UzIC8vIHVwZGF0ZSBvZmZzZXQKCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglyZXRzdWIKCipnZXRfbGVuZ3RoX2RpZmZlcmVuY2U6Cglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCTwKCWJueiAqc3dhcHBlZF9kaWZmZXJlbmNlCglsb2FkIDI1MiAvLyBuZXcgZWxlbWVudAoJbGVuIC8vIGxlbmd0aCBvZiBuZXcgZWxlbWVudAoJbG9hZCAyNTMgLy8gZWxlbWVudCBsZW5ndGgKCXB1c2hpbnQgMQoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoJYiAqZ2V0X2RpZmZlcmVuY2UKCipzd2FwcGVkX2RpZmZlcmVuY2U6Cglsb2FkIDI1MyAvLyBlbGVtZW50IGxlbmd0aAoJbG9hZCAyNTIgLy8gbmV3IGVsZW1lbnQKCWxlbiAvLyBsZW5ndGggb2YgbmV3IGVsZW1lbnQKCXB1c2hpbnQgMAoJc3RvcmUgMjQ5IC8vIHN1YnRyYWN0IGhlYWQgZGlmZmVyZW5jZQoKKmdldF9kaWZmZXJlbmNlOgoJLSAvLyBnZXQgbGVuZ3RoIGRpZmZlcmVuY2UKCXN0b3JlIDI1MCAvLyBsZW5ndGggZGlmZmVyZW5jZQoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAgABBCYBADEYFIEGCzEZCI0MATMAAAAAAAAAAAAAASUAAAAAAAAAAAAAAIAEFR98dYgABFCwJEOKAAEoKCiAAgAGgAQAAQABiAEggAQAAQACiAEXgAQAAQADiAEOSFCMAIsANf8jSTX7NP80/08CWUk1/kk0/0xZIgsiCDX9NP8jNP5SgAYAAgAEAAVJNfw0/zT+NP0INP8VUlBQNf+IARI0+jT7IgiIAOY0+jT7JQiIAN00/4wAiwA1/yJJNfs0/zT/TwJZSTX+STT/TFkiCyIINf00/yM0/lKABgACAAYAB0k1/DT/NP40/Qg0/xVSUFA1/4gAvDT6NPsiCIgAkDT/jACLADX/JUk1+zT/NP9PAllJNf5JNP9MWSILIgg1/TT/IzT+UoAGAAIACAAJSTX8NP80/jT9CDT/FVJQUDX/iABvNP+MAIsAjACJJEOABLhEezY2GgCOAf/xAIAEQFdBqTYaAI4B/sEAigQDi/yL/lCM/Iv/SRWL/hcIFlcGAoz+i/1MUIz9i/yL/Yv+iYoCAIv+NP+L/1k0+UEABAhCAAJMCRZXBgI0/0yL/0xdNf+JNPwVNP0MQAALNPwVNP0kNflCAAg0/TT8FSM1+Qk1+ok=", + "approval": "CiABAiYEBgACAAQABQYAAgAGAAcGAAIACAAJADEYFIEGCzEZCI0MAUcAAAAAAAAAAAAAATkAAAAAAAAAAAAAAIAEFR98dYgABVCwgQFDigABgACAAIAAgAIABoAEAAEAAYgBMIAEAAEAAogBJ4AEAAEAA4gBHkhQjACLADX/gQBJNfs0/zT/TwJZSTX+STT/TFmBAguBAgg1/TT/gQA0/lKABgACAAQABUk1/DT/NP40/Qg0/xVSUFA1/4gBHjT6NPuBAgiIAPE0+jT7gQQIiADnNP+MAIsANf+BAkk1+zT/NP9PAllJNf5JNP9MWYECC4ECCDX9NP+BADT+UoAGAAIABgAHSTX8NP80/jT9CDT/FVJQUDX/iADCNPo0+4ECCIgAlTT/jACLADX/gQRJNfs0/zT/TwJZSTX+STT/TFmBAguBAgg1/TT/gQA0/lKABgACAAgACUk1/DT/NP40/Qg0/xVSUFA1/4gAcDT/jACLAIwAiYEBQ4AEuER7NjYaAI4B//AAgARAV0GpNhoAjgH+rQCKBAOL/Iv+UIz8i/9JFYv+FwgWVwYCjP6L/UxQjP2L/Iv9i/6JigIAi/40/4v/WTT5QQAECEIAAkwJFlcGAjT/TIv/TF01/4k0/BU0/QxAAAw0/BU0/YEBNflCAAk0/TT8FYEANfkJNfqJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/AD.approval.teal b/tests/contracts/artifacts/AD.approval.teal index 60ed16a94..a762869e1 100644 --- a/tests/contracts/artifacts/AD.approval.teal +++ b/tests/contracts/artifacts/AD.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x61 0x64 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +27,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_a: // execute a()void callsub a - int 1 + pushint 1 return // a(): void @@ -36,7 +37,7 @@ a: // tests/contracts/inheritance.algo.ts:16 // this.aKey.value = 1337 byte 0x61 // "a" - int 1337 + pushint 1337 app_global_put retsub @@ -44,7 +45,7 @@ a: *abi_route_d: // execute d()void callsub d - int 1 + pushint 1 return // d(): void @@ -54,7 +55,7 @@ d: // tests/contracts/inheritance.algo.ts:40 // this.dKey.value = 42 byte 0x64 // "d" - int 42 + pushint 42 app_global_put retsub @@ -62,7 +63,7 @@ d: *abi_route_ad: // execute ad()void callsub ad - int 1 + pushint 1 return // ad(): void @@ -73,7 +74,7 @@ ad: // assert(this.aKey.value === 1337) byte 0x61 // "a" app_global_get - int 1337 + pushint 1337 == assert @@ -81,17 +82,17 @@ ad: // assert(this.dKey.value === 42) byte 0x64 // "d" app_global_get - int 42 + pushint 42 == assert retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -99,9 +100,9 @@ ad: err *call_NoOp: - method "a()void" - method "d()void" - method "ad()void" + pushbytes 0x1e7aad1c // method "a()void" + pushbytes 0x29efd0f6 // method "d()void" + pushbytes 0xbf7ef8a3 // method "ad()void" txna ApplicationArgs 0 match *abi_route_a *abi_route_d *abi_route_ad diff --git a/tests/contracts/artifacts/AD.arc32.json b/tests/contracts/artifacts/AD.arc32.json index 09fd28f2d..d1bd3fc47 100644 --- a/tests/contracts/artifacts/AD.arc32.json +++ b/tests/contracts/artifacts/AD.arc32.json @@ -58,7 +58,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJaW50IDEKCXJldHVybgoKLy8gZCgpOiB2b2lkCmQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0MAoJLy8gdGhpcy5kS2V5LnZhbHVlID0gNDIKCWJ5dGUgMHg2NCAvLyAiZCIKCWludCA0MgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYWQoKXZvaWQKKmFiaV9yb3V0ZV9hZDoKCS8vIGV4ZWN1dGUgYWQoKXZvaWQKCWNhbGxzdWIgYWQKCWludCAxCglyZXR1cm4KCi8vIGFkKCk6IHZvaWQKYWQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQ3CgkvLyBhc3NlcnQodGhpcy5kS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2NCAvLyAiZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImQoKXZvaWQiCgltZXRob2QgImFkKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfZCAqYWJpX3JvdXRlX2FkCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MSAweDY0CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCXB1c2hpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJcHVzaGludCAxCglyZXR1cm4KCi8vIGQoKTogdm9pZApkOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NDAKCS8vIHRoaXMuZEtleS52YWx1ZSA9IDQyCglieXRlIDB4NjQgLy8gImQiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhZCgpdm9pZAoqYWJpX3JvdXRlX2FkOgoJLy8gZXhlY3V0ZSBhZCgpdm9pZAoJY2FsbHN1YiBhZAoJcHVzaGludCAxCglyZXR1cm4KCi8vIGFkKCk6IHZvaWQKYWQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglwdXNoaW50IDEzMzcKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NwoJLy8gYXNzZXJ0KHRoaXMuZEtleS52YWx1ZSA9PT0gNDIpCglieXRlIDB4NjQgLy8gImQiCglhcHBfZ2xvYmFsX2dldAoJcHVzaGludCA0MgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHgyOWVmZDBmNiAvLyBtZXRob2QgImQoKXZvaWQiCglwdXNoYnl0ZXMgMHhiZjdlZjhhMyAvLyBtZXRob2QgImFkKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfZCAqYWJpX3JvdXRlX2FkCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/AD.arc56_draft.json b/tests/contracts/artifacts/AD.arc56_draft.json index 69d84f638..386d28fe9 100644 --- a/tests/contracts/artifacts/AD.arc56_draft.json +++ b/tests/contracts/artifacts/AD.arc56_draft.json @@ -98,469 +98,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 44, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 44, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 14, - "source": 44, - "pc": [ - 15 - ] - }, - { - "teal": 15, - "source": 44, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 16, - "source": 44, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 44, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 44, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 44, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 44, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 28, - "source": 15, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 29, - "source": 15, - "pc": [ - 52 - ] - }, - { - "teal": 30, - "source": 15, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 15, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 38, - "source": 16, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 16, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 16, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 15, - "pc": [ - 60 - ] - }, - { - "teal": 46, - "source": 39, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 47, - "source": 39, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 39, - "pc": [ - 65 - ] - }, - { - "teal": 52, - "source": 39, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 56, - "source": 40, - "pc": [ - 69 - ] - }, - { - "teal": 57, - "source": 40, - "pc": [ - 70 - ] - }, - { - "teal": 58, - "source": 40, - "pc": [ - 71 - ] - }, - { - "teal": 59, - "source": 39, - "pc": [ - 72 - ] - }, - { - "teal": 64, - "source": 45, - "pc": [ - 73, - 74, - 75 - ] - }, - { - "teal": 65, - "source": 45, - "pc": [ - 76 - ] - }, - { - "teal": 66, - "source": 45, - "pc": [ - 77 - ] - }, - { - "teal": 70, - "source": 45, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 74, - "source": 46, - "pc": [ - 81 - ] - }, - { - "teal": 75, - "source": 46, - "pc": [ - 82 - ] - }, - { - "teal": 76, - "source": 46, - "pc": [ - 83 - ] - }, - { - "teal": 77, - "source": 46, - "pc": [ - 84 - ] - }, - { - "teal": 78, - "source": 46, - "pc": [ - 85 - ] - }, - { - "teal": 82, - "source": 47, - "pc": [ - 86 - ] - }, - { - "teal": 83, - "source": 47, - "pc": [ - 87 - ] - }, - { - "teal": 84, - "source": 47, - "pc": [ - 88 - ] - }, - { - "teal": 85, - "source": 47, - "pc": [ - 89 - ] - }, - { - "teal": 86, - "source": 47, - "pc": [ - 90 - ] - }, - { - "teal": 87, - "source": 45, - "pc": [ - 91 - ] - }, - { - "teal": 90, - "source": 44, - "pc": [ - 92 - ] - }, - { - "teal": 91, - "source": 44, - "pc": [ - 93 - ] - }, - { - "teal": 94, - "source": 44, - "pc": [ - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 95, - "source": 44, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 96, - "source": 44, - "pc": [ - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 99, - "source": 44, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 107 - ] - }, - { - "teal": 102, - "source": 44, - "pc": [ - 108, - 109, - 110, - 111, - 112, - 113 - ] - }, - { - "teal": 103, - "source": 44, - "pc": [ - 114, - 115, - 116, - 117, - 118, - 119 - ] - }, - { - "teal": 104, - "source": 44, - "pc": [ - 120, - 121, - 122, - 123, - 124, - 125 - ] - }, - { - "teal": 105, - "source": 44, - "pc": [ - 126, - 127, - 128 - ] - }, - { - "teal": 106, - "source": 44, - "pc": [ - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136 - ] - }, - { - "teal": 109, - "source": 44, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 137 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 42 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 119 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 149 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJaW50IDEKCXJldHVybgoKLy8gZCgpOiB2b2lkCmQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0MAoJLy8gdGhpcy5kS2V5LnZhbHVlID0gNDIKCWJ5dGUgMHg2NCAvLyAiZCIKCWludCA0MgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYWQoKXZvaWQKKmFiaV9yb3V0ZV9hZDoKCS8vIGV4ZWN1dGUgYWQoKXZvaWQKCWNhbGxzdWIgYWQKCWludCAxCglyZXR1cm4KCi8vIGFkKCk6IHZvaWQKYWQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQ3CgkvLyBhc3NlcnQodGhpcy5kS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2NCAvLyAiZCIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImQoKXZvaWQiCgltZXRob2QgImFkKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfZCAqYWJpX3JvdXRlX2FkCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MSAweDY0CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCXB1c2hpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJcHVzaGludCAxCglyZXR1cm4KCi8vIGQoKTogdm9pZApkOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NDAKCS8vIHRoaXMuZEtleS52YWx1ZSA9IDQyCglieXRlIDB4NjQgLy8gImQiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBhZCgpdm9pZAoqYWJpX3JvdXRlX2FkOgoJLy8gZXhlY3V0ZSBhZCgpdm9pZAoJY2FsbHN1YiBhZAoJcHVzaGludCAxCglyZXR1cm4KCi8vIGFkKCk6IHZvaWQKYWQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglwdXNoaW50IDEzMzcKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo0NwoJLy8gYXNzZXJ0KHRoaXMuZEtleS52YWx1ZSA9PT0gNDIpCglieXRlIDB4NjQgLy8gImQiCglhcHBfZ2xvYmFsX2dldAoJcHVzaGludCA0MgoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHgyOWVmZDBmNiAvLyBtZXRob2QgImQoKXZvaWQiCglwdXNoYnl0ZXMgMHhiZjdlZjhhMyAvLyBtZXRob2QgImFkKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfZCAqYWJpX3JvdXRlX2FkCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAbkKKiYCAWEBZDEYFIEGCzEZCI0MADwAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIgAAiJDigAAKCNniYgAAiJDigAAKSRniYgAAiJDigAAKGQjEkQpZCQSRIkiQ4AEuER7NjYaAI4B//EAgAQeeq0cgAQp79D2gAS/fvijNhoAjgP/qP+0/8AA", + "approval": "CiYCAWEBZDEYFIEGCzEZCI0MAE4AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIgAA4EBQ4oAAIABYYG5CmeJiAADgQFDigAAgAFkgSpniYgAA4EBQ4oAAIABYWSBuQoSRIABZGSBKhJEiYEBQ4AEuER7NjYaAI4B//AAgAQeeq0cgAQp79D2gAS/fvijNhoAjgP/lv+n/7cA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ARC56Test.approval.teal b/tests/contracts/artifacts/ARC56Test.approval.teal index c440cf2f7..336f1bfda 100644 --- a/tests/contracts/artifacts/ARC56Test.approval.teal +++ b/tests/contracts/artifacts/ARC56Test.approval.teal @@ -1,14 +1,14 @@ #pragma version 10 +intcblock TMPL_someNumber +bytecblock 0x151f7c75 0x626f784b6579 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] // The following lines of TEAL are used to initialize template variables in scratch slots -pushbytes TMPL_someNumber -btoi -store 200 +intc 0 // TMPL_someNumber // The following ten lines of TEAL handle initial program flow // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed @@ -17,7 +17,7 @@ store 200 // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -36,7 +36,7 @@ switch *call_NoOp *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED txna ApplicationArgs 1 dup len - int 8 + pushint 8 == // argument 0 (input) for customStructMethod must be a (uint64) @@ -46,7 +46,7 @@ switch *call_NoOp *call_OptIn *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED callsub customStructMethod concat log - int 1 + pushint 1 return // customStructMethod(input: AnotherCustomStruct): AnotherCustomStruct @@ -67,7 +67,7 @@ customStructMethod: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 0 (inputs) for foo must be a ((uint64,uint64),(uint64,uint64)) @@ -77,7 +77,7 @@ customStructMethod: callsub foo concat log - int 1 + pushint 1 return // foo(inputs: Inputs): Outputs @@ -103,14 +103,14 @@ foo: *if0_end: // tests/contracts/arc56.algo.ts:27 // this.globalKey.value = this.someNumber - byte 0x676c6f62616c4b6579 // "globalKey" - load 200 // TMPL_someNumber + pushbytes 0x676c6f62616c4b6579 // "globalKey" + intc 0 // TMPL_someNumber app_global_put // tests/contracts/arc56.algo.ts:28 // this.globalMap('foo').value = { foo: 13, bar: 37 } - byte 0x700003666f6f - byte 0x000d0025 + pushbytes 0x700003666f6f + pushbytes 0x000d0025 app_global_put // tests/contracts/arc56.algo.ts:30 @@ -141,7 +141,7 @@ foo: *abi_route_optInToApplication: // execute optInToApplication()void callsub optInToApplication - int 1 + pushint 1 return // optInToApplication(): void @@ -151,15 +151,15 @@ optInToApplication: // tests/contracts/arc56.algo.ts:37 // this.localKey(this.txn.sender).value = this.someNumber txn Sender - byte 0x6c6f63616c4b6579 // "localKey" - load 200 // TMPL_someNumber + pushbytes 0x6c6f63616c4b6579 // "localKey" + intc 0 // TMPL_someNumber app_local_put // tests/contracts/arc56.algo.ts:38 // this.localMap(this.txn.sender, 'foo').value = 'bar' txn Sender - byte 0x70666f6f - byte 0x0003626172 + pushbytes 0x70666f6f + pushbytes 0x0003626172 app_local_put // tests/contracts/arc56.algo.ts:39 @@ -168,13 +168,13 @@ optInToApplication: dup box_del pop - byte 0x000362617a + pushbytes 0x000362617a box_put // tests/contracts/arc56.algo.ts:40 // this.boxMap({ add: { a: 1, b: 2 }, subtract: { a: 4, b: 3 } }).value = { sum: 3, difference: 1 } - byte 0x700000000000000001000000000000000200000000000000040000000000000003 - byte 0x00000000000000030000000000000001 + pushbytes 0x700000000000000001000000000000000200000000000000040000000000000003 + pushbytes 0x00000000000000030000000000000001 box_put retsub @@ -187,7 +187,7 @@ optInToApplication: txna ApplicationArgs 1 dup len - int 8 + pushint 8 == // argument 0 (input) for customType must be a (uint64) @@ -197,7 +197,7 @@ optInToApplication: callsub customType concat log - int 1 + pushint 1 return // customType(input: CustomStructAsName): CustomStructAsName @@ -210,11 +210,11 @@ customType: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -222,9 +222,9 @@ customType: err *call_NoOp: - method "customStructMethod((uint64))(uint64)" - method "foo(((uint64,uint64),(uint64,uint64)))(uint64,uint64)" - method "customType((uint64))(uint64)" + pushbytes 0x8d22739a // method "customStructMethod((uint64))(uint64)" + pushbytes 0x396d550e // method "foo(((uint64,uint64),(uint64,uint64)))(uint64,uint64)" + pushbytes 0x0dbf02c7 // method "customType((uint64))(uint64)" txna ApplicationArgs 0 match *abi_route_customStructMethod *abi_route_foo *abi_route_customType @@ -232,7 +232,7 @@ customType: err *call_OptIn: - method "optInToApplication()void" + pushbytes 0x01a3a3ff // method "optInToApplication()void" txna ApplicationArgs 0 match *abi_route_optInToApplication diff --git a/tests/contracts/artifacts/ARC56Test.arc32.json b/tests/contracts/artifacts/ARC56Test.arc32.json index 15bdb2357..9f4654a44 100644 --- a/tests/contracts/artifacts/ARC56Test.arc32.json +++ b/tests/contracts/artifacts/ARC56Test.arc32.json @@ -64,7 +64,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9zb21lTnVtYmVyCmJ0b2kKc3RvcmUgMjAwCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCiphYmlfcm91dGVfY3VzdG9tU3RydWN0TWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVN0cnVjdE1ldGhvZCBtdXN0IGJlIGEgKHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCgljYWxsc3ViIGN1c3RvbVN0cnVjdE1ldGhvZAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGN1c3RvbVN0cnVjdE1ldGhvZChpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdCk6IEFub3RoZXJDdXN0b21TdHJ1Y3QKY3VzdG9tU3RydWN0TWV0aG9kOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MjEKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdAoJcmV0c3ViCgovLyBmb28oKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2ZvbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5wdXRzOiAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5wdXRzKSBmb3IgZm9vIG11c3QgYmUgYSAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZm9vCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9vKGlucHV0czogSW5wdXRzKTogT3V0cHV0cwpmb286Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjUKCS8vIGlucHV0cy5zdWJ0cmFjdC5hIDwgaW5wdXRzLnN1YnRyYWN0LmIKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAxNiA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJPAoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHN1YnRyYWN0LmEgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3VidHJhY3QuYgoJZXJyCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI3CgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9IHRoaXMuc29tZU51bWJlcgoJYnl0ZSAweDY3NmM2ZjYyNjE2YzRiNjU3OSAvLyAiZ2xvYmFsS2V5IgoJbG9hZCAyMDAgLy8gVE1QTF9zb21lTnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI4CgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSB7IGZvbzogMTMsIGJhcjogMzcgfQoJYnl0ZSAweDcwMDAwMzY2NmY2ZgoJYnl0ZSAweDAwMGQwMDI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjMwCgkvLyByZXR1cm4gewoJLy8gICAgICAgc3VtOiBpbnB1dHMuYWRkLmEgKyBpbnB1dHMuYWRkLmIsCgkvLyAgICAgICBkaWZmZXJlbmNlOiBpbnB1dHMuc3VidHJhY3QuYSAtIGlucHV0cy5zdWJ0cmFjdC5iLAoJLy8gICAgIH07CglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgOCA4CglidG9pCgkrCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMTYgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDI0IDgKCWJ0b2kKCS0KCWl0b2IKCWNvbmNhdAoJcmV0c3ViCgovLyBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9wdEluVG9BcHBsaWNhdGlvbigpOiB2b2lkCm9wdEluVG9BcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM3CgkvLyB0aGlzLmxvY2FsS2V5KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSB0aGlzLnNvbWVOdW1iZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWxvYWQgMjAwIC8vIFRNUExfc29tZU51bWJlcgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM4CgkvLyB0aGlzLmxvY2FsTWFwKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpLnZhbHVlID0gJ2JhcicKCXR4biBTZW5kZXIKCWJ5dGUgMHg3MDY2NmY2ZgoJYnl0ZSAweDAwMDM2MjYxNzIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOQoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSAnYmF6JwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJZHVwCglib3hfZGVsCglwb3AKCWJ5dGUgMHgwMDAzNjI2MTdhCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDAKCS8vIHRoaXMuYm94TWFwKHsgYWRkOiB7IGE6IDEsIGI6IDIgfSwgc3VidHJhY3Q6IHsgYTogNCwgYjogMyB9IH0pLnZhbHVlID0geyBzdW06IDMsIGRpZmZlcmVuY2U6IDEgfQoJYnl0ZSAweDcwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CglyZXRzdWIKCi8vIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21UeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGUoaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZSk6IEN1c3RvbVN0cnVjdEFzTmFtZQpjdXN0b21UeXBlOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDQKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQ3VzdG9tU3RydWN0QXNOYW1lCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCgltZXRob2QgImZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpIgoJbWV0aG9kICJjdXN0b21UeXBlKCh1aW50NjQpKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2QgKmFiaV9yb3V0ZV9mb28gKmFiaV9yb3V0ZV9jdXN0b21UeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCW1ldGhvZCAib3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX3NvbWVOdW1iZXIKYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4NjI2Zjc4NGI2NTc5CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwppbnRjIDAgLy8gVE1QTF9zb21lTnVtYmVyCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKmNhbGxfT3B0SW4gKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGN1c3RvbVN0cnVjdE1ldGhvZCgodWludDY0KSkodWludDY0KQoqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5wdXQ6ICh1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGN1c3RvbVN0cnVjdE1ldGhvZChpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdCk6IEFub3RoZXJDdXN0b21TdHJ1Y3QKY3VzdG9tU3RydWN0TWV0aG9kOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MjEKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdAoJcmV0c3ViCgovLyBmb28oKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2ZvbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5wdXRzOiAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0cykgZm9yIGZvbyBtdXN0IGJlIGEgKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpCglhc3NlcnQKCgkvLyBleGVjdXRlIGZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGZvbwoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBmb28oaW5wdXRzOiBJbnB1dHMpOiBPdXRwdXRzCmZvbzoKCXByb3RvIDEgMQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czoyNQoJLy8gaW5wdXRzLnN1YnRyYWN0LmEgPCBpbnB1dHMuc3VidHJhY3QuYgoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAyNCA4CglidG9pCgk8CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gc3VidHJhY3QuYSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdWJ0cmFjdC5iCgllcnIKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjcKCS8vIHRoaXMuZ2xvYmFsS2V5LnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCglwdXNoYnl0ZXMgMHg2NzZjNmY2MjYxNmM0YjY1NzkgLy8gImdsb2JhbEtleSIKCWludGMgMCAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjgKCS8vIHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9IHsgZm9vOiAxMywgYmFyOiAzNyB9CglwdXNoYnl0ZXMgMHg3MDAwMDM2NjZmNmYKCXB1c2hieXRlcyAweDAwMGQwMDI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjMwCgkvLyByZXR1cm4gewoJLy8gICAgICAgc3VtOiBpbnB1dHMuYWRkLmEgKyBpbnB1dHMuYWRkLmIsCgkvLyAgICAgICBkaWZmZXJlbmNlOiBpbnB1dHMuc3VidHJhY3QuYSAtIGlucHV0cy5zdWJ0cmFjdC5iLAoJLy8gICAgIH07CglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgOCA4CglidG9pCgkrCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMTYgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDI0IDgKCWJ0b2kKCS0KCWl0b2IKCWNvbmNhdAoJcmV0c3ViCgovLyBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozNwoJLy8gdGhpcy5sb2NhbEtleSh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWludGMgMCAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOAoJLy8gdGhpcy5sb2NhbE1hcCh0aGlzLnR4bi5zZW5kZXIsICdmb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg3MDY2NmY2ZgoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3MgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM5CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXonCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglkdXAKCWJveF9kZWwKCXBvcAoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3YQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjQwCgkvLyB0aGlzLmJveE1hcCh7IGFkZDogeyBhOiAxLCBiOiAyIH0sIHN1YnRyYWN0OiB7IGE6IDQsIGI6IDMgfSB9KS52YWx1ZSA9IHsgc3VtOiAzLCBkaWZmZXJlbmNlOiAxIH0KCXB1c2hieXRlcyAweDcwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDEKCWJveF9wdXQKCXJldHN1YgoKLy8gY3VzdG9tVHlwZSgodWludDY0KSkodWludDY0KQoqYWJpX3JvdXRlX2N1c3RvbVR5cGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21UeXBlKGlucHV0OiBDdXN0b21TdHJ1Y3RBc05hbWUpOiBDdXN0b21TdHJ1Y3RBc05hbWUKY3VzdG9tVHlwZToKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gaW5wdXQ7CglmcmFtZV9kaWcgLTEgLy8gaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4ZDIyNzM5YSAvLyBtZXRob2QgImN1c3RvbVN0cnVjdE1ldGhvZCgodWludDY0KSkodWludDY0KSIKCXB1c2hieXRlcyAweDM5NmQ1NTBlIC8vIG1ldGhvZCAiZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgwZGJmMDJjNyAvLyBtZXRob2QgImN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZCAqYWJpX3JvdXRlX2ZvbyAqYWJpX3JvdXRlX2N1c3RvbVR5cGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4MDFhM2EzZmYgLy8gbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ARC56Test.arc56_draft.json b/tests/contracts/artifacts/ARC56Test.arc56_draft.json index 25cc76380..10d831f84 100644 --- a/tests/contracts/artifacts/ARC56Test.arc56_draft.json +++ b/tests/contracts/artifacts/ARC56Test.arc56_draft.json @@ -218,1150 +218,66 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 7, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11 - ] - }, - { - "teal": 9, - "source": 7, - "pc": [ - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21 - ] - }, - { - "teal": 10, - "source": 7, - "pc": [ - 22 - ] - }, - { - "teal": 11, - "source": 7, - "pc": [ - 23, - 24 - ] - }, - { - "teal": 18, - "source": 7, - "pc": [ - 25, - 26 - ] - }, - { - "teal": 19, - "source": 7, - "pc": [ - 27 - ] - }, - { - "teal": 20, - "source": 7, - "pc": [ - 28, - 29 - ] - }, - { - "teal": 21, - "source": 7, - "pc": [ - 30 - ] - }, - { - "teal": 22, - "source": 7, - "pc": [ - 31, - 32 - ] - }, - { - "teal": 23, - "source": 7, - "pc": [ - 33 - ] - }, - { - "teal": 24, - "source": 7, - "pc": [ - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59 - ] - }, - { - "teal": 28, - "source": 7, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 60 - ] - }, - { - "teal": 33, - "source": 12, - "pc": [ - 61 - ] - }, - { - "teal": 36, - "source": 14, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 37, - "source": 14, - "pc": [ - 65 - ] - }, - { - "teal": 38, - "source": 14, - "pc": [ - 66 - ] - }, - { - "teal": 39, - "source": 14, - "pc": [ - 67 - ] - }, - { - "teal": 40, - "source": 14, - "pc": [ - 68 - ] - }, - { - "teal": 43, - "source": 14, - "errorMessage": "argument 0 (input) for customStructMethod must be a (uint64)", - "pc": [ - 69 - ] - }, - { - "teal": 46, - "source": 12, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 47, - "source": 12, - "pc": [ - 73 - ] - }, - { - "teal": 48, - "source": 12, - "pc": [ - 74 - ] - }, - { - "teal": 49, - "source": 12, - "pc": [ - 75 - ] - }, - { - "teal": 50, - "source": 12, - "pc": [ - 76 - ] - }, - { - "teal": 54, - "source": 12, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 58, - "source": 16, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 59, - "source": 12, - "pc": [ - 82 - ] - }, - { - "teal": 64, - "source": 24, - "pc": [ - 83 - ] - }, - { - "teal": 67, - "source": 24, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 68, - "source": 24, - "pc": [ - 87 - ] - }, - { - "teal": 69, - "source": 24, - "pc": [ - 88 - ] - }, - { - "teal": 70, - "source": 24, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 71, - "source": 24, - "pc": [ - 91 - ] - }, - { - "teal": 74, - "source": 24, - "errorMessage": "argument 0 (inputs) for foo must be a ((uint64,uint64),(uint64,uint64))", - "pc": [ - 92 - ] - }, - { - "teal": 77, - "source": 24, - "pc": [ - 93, - 94, - 95 - ] - }, - { - "teal": 78, - "source": 24, - "pc": [ - 96 - ] - }, - { - "teal": 79, - "source": 24, - "pc": [ - 97 - ] - }, - { - "teal": 80, - "source": 24, - "pc": [ - 98 - ] - }, - { - "teal": 81, - "source": 24, - "pc": [ - 99 - ] - }, - { - "teal": 85, - "source": 24, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 90, - "source": 25, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 91, - "source": 25, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 92, - "source": 25, - "pc": [ - 108 - ] - }, - { - "teal": 93, - "source": 25, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 94, - "source": 25, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 95, - "source": 25, - "pc": [ - 114 - ] - }, - { - "teal": 96, - "source": 25, - "pc": [ - 115 - ] - }, - { - "teal": 97, - "source": 25, - "pc": [ - 116, - 117, - 118 - ] - }, - { - "teal": 101, - "source": 25, - "errorMessage": "subtract.a must be greater than subtract.b", - "pc": [ - 119 - ] - }, - { - "teal": 106, - "source": 27, - "pc": [ - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 107, - "source": 27, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 108, - "source": 27, - "pc": [ - 133 - ] - }, - { - "teal": 112, - "source": 28, - "pc": [ - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141 - ] - }, - { - "teal": 113, - "source": 28, - "pc": [ - 142, - 143, - 144, - 145, - 146, - 147 - ] - }, - { - "teal": 114, - "source": 28, - "pc": [ - 148 - ] - }, - { - "teal": 121, - "source": 31, - "pc": [ - 149, - 150 - ] - }, - { - "teal": 122, - "source": 31, - "pc": [ - 151, - 152, - 153 - ] - }, - { - "teal": 123, - "source": 31, - "pc": [ - 154 - ] - }, - { - "teal": 124, - "source": 31, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 125, - "source": 31, - "pc": [ - 157, - 158, - 159 - ] - }, - { - "teal": 126, - "source": 31, - "pc": [ - 160 - ] - }, - { - "teal": 127, - "source": 31, - "pc": [ - 161 - ] - }, - { - "teal": 128, - "source": 31, - "pc": [ - 162 - ] - }, - { - "teal": 129, - "source": 32, - "pc": [ - 163, - 164 - ] - }, - { - "teal": 130, - "source": 32, - "pc": [ - 165, - 166, - 167 - ] - }, - { - "teal": 131, - "source": 32, - "pc": [ - 168 - ] - }, - { - "teal": 132, - "source": 32, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 133, - "source": 32, - "pc": [ - 171, - 172, - 173 - ] - }, - { - "teal": 134, - "source": 32, - "pc": [ - 174 - ] - }, - { - "teal": 135, - "source": 32, - "pc": [ - 175 - ] - }, - { - "teal": 136, - "source": 32, - "pc": [ - 176 - ] - }, - { - "teal": 137, - "source": 32, - "pc": [ - 177 - ] - }, - { - "teal": 138, - "source": 24, - "pc": [ - 178 - ] - }, - { - "teal": 143, - "source": 36, - "pc": [ - 179, - 180, - 181 - ] - }, - { - "teal": 144, - "source": 36, - "pc": [ - 182 - ] - }, - { - "teal": 145, - "source": 36, - "pc": [ - 183 - ] - }, - { - "teal": 149, - "source": 36, - "pc": [ - 184, - 185, - 186 - ] - }, - { - "teal": 153, - "source": 37, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 154, - "source": 37, - "pc": [ - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198 - ] - }, - { - "teal": 155, - "source": 37, - "pc": [ - 199, - 200 - ] - }, - { - "teal": 156, - "source": 37, - "pc": [ - 201 - ] - }, - { - "teal": 160, - "source": 38, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 161, - "source": 38, - "pc": [ - 204, - 205, - 206, - 207, - 208, - 209 - ] - }, - { - "teal": 162, - "source": 38, - "pc": [ - 210, - 211, - 212, - 213, - 214, - 215, - 216 - ] - }, - { - "teal": 163, - "source": 38, - "pc": [ - 217 - ] - }, - { - "teal": 167, - "source": 39, - "pc": [ - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225 - ] - }, - { - "teal": 168, - "source": 39, - "pc": [ - 226 - ] - }, - { - "teal": 169, - "source": 39, - "pc": [ - 227 - ] - }, - { - "teal": 170, - "source": 39, - "pc": [ - 228 - ] - }, - { - "teal": 171, - "source": 39, - "pc": [ - 229, - 230, - 231, - 232, - 233, - 234, - 235 - ] - }, - { - "teal": 172, - "source": 39, - "pc": [ - 236 - ] - }, - { - "teal": 176, - "source": 40, - "pc": [ - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271 - ] - }, - { - "teal": 177, - "source": 40, - "pc": [ - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289 - ] - }, - { - "teal": 178, - "source": 40, - "pc": [ - 290 - ] - }, - { - "teal": 179, - "source": 36, - "pc": [ - 291 - ] - }, - { - "teal": 184, - "source": 43, - "pc": [ - 292 - ] - }, - { - "teal": 187, - "source": 43, - "pc": [ - 293, - 294, - 295 - ] - }, - { - "teal": 188, - "source": 43, - "pc": [ - 296 - ] - }, - { - "teal": 189, - "source": 43, - "pc": [ - 297 - ] - }, - { - "teal": 190, - "source": 43, - "pc": [ - 298 - ] - }, - { - "teal": 191, - "source": 43, - "pc": [ - 299 - ] - }, - { - "teal": 194, - "source": 43, - "errorMessage": "argument 0 (input) for customType must be a (uint64)", - "pc": [ - 300 - ] - }, - { - "teal": 197, - "source": 43, - "pc": [ - 301, - 302, - 303 - ] - }, - { - "teal": 198, - "source": 43, - "pc": [ - 304 - ] - }, - { - "teal": 199, - "source": 43, - "pc": [ - 305 - ] - }, - { - "teal": 200, - "source": 43, - "pc": [ - 306 - ] - }, - { - "teal": 201, - "source": 43, - "pc": [ - 307 - ] - }, - { - "teal": 205, - "source": 43, - "pc": [ - 308, - 309, - 310 - ] - }, - { - "teal": 209, - "source": 44, - "pc": [ - 311, - 312 - ] - }, - { - "teal": 210, - "source": 43, - "pc": [ - 313 - ] - }, - { - "teal": 213, - "source": 7, - "pc": [ - 314 - ] - }, - { - "teal": 214, - "source": 7, - "pc": [ - 315 - ] - }, - { - "teal": 217, - "source": 7, - "pc": [ - 316, - 317, - 318, - 319, - 320, - 321 - ] - }, - { - "teal": 218, - "source": 7, - "pc": [ - 322, - 323, - 324 - ] - }, - { - "teal": 219, - "source": 7, - "pc": [ - 325, - 326, - 327, - 328 - ] - }, - { - "teal": 222, - "source": 7, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 329 - ] - }, - { - "teal": 225, - "source": 7, - "pc": [ - 330, - 331, - 332, - 333, - 334, - 335 - ] - }, - { - "teal": 226, - "source": 7, - "pc": [ - 336, - 337, - 338, - 339, - 340, - 341 - ] - }, - { - "teal": 227, - "source": 7, - "pc": [ - 342, - 343, - 344, - 345, - 346, - 347 - ] - }, - { - "teal": 228, - "source": 7, - "pc": [ - 348, - 349, - 350 - ] - }, - { - "teal": 229, - "source": 7, - "pc": [ - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358 - ] - }, - { - "teal": 232, - "source": 7, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 359 - ] - }, - { - "teal": 235, - "source": 7, - "pc": [ - 360, - 361, - 362, - 363, - 364, - 365 - ] - }, - { - "teal": 236, - "source": 7, - "pc": [ - 366, - 367, - 368 - ] - }, - { - "teal": 237, - "source": 7, - "pc": [ - 369, - 370, - 371, - 372 - ] - }, - { - "teal": 240, - "source": 7, - "errorMessage": "this contract does not implement the given ABI method for call OptIn", - "pc": [ - 373 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 37 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 52 + ], + "errorMessage": "argument 0 (input) for customStructMethod must be a (uint64)" + }, + { + "pc": [ + 81 + ], + "errorMessage": "argument 0 (inputs) for foo must be a ((uint64,uint64),(uint64,uint64))" + }, + { + "pc": [ + 109 + ], + "errorMessage": "subtract.a must be greater than subtract.b" + }, + { + "pc": [ + 295 + ], + "errorMessage": "argument 0 (input) for customType must be a (uint64)" + }, + { + "pc": [ + 326 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 356 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + }, + { + "pc": [ + 370 + ], + "errorMessage": "this contract does not implement the given ABI method for call OptIn" + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9zb21lTnVtYmVyCmJ0b2kKc3RvcmUgMjAwCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqY2FsbF9PcHRJbiAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCiphYmlfcm91dGVfY3VzdG9tU3RydWN0TWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVN0cnVjdE1ldGhvZCBtdXN0IGJlIGEgKHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCgljYWxsc3ViIGN1c3RvbVN0cnVjdE1ldGhvZAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGN1c3RvbVN0cnVjdE1ldGhvZChpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdCk6IEFub3RoZXJDdXN0b21TdHJ1Y3QKY3VzdG9tU3RydWN0TWV0aG9kOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MjEKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdAoJcmV0c3ViCgovLyBmb28oKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2ZvbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5wdXRzOiAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoaW5wdXRzKSBmb3IgZm9vIG11c3QgYmUgYSAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkKCWNhbGxzdWIgZm9vCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9vKGlucHV0czogSW5wdXRzKTogT3V0cHV0cwpmb286Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjUKCS8vIGlucHV0cy5zdWJ0cmFjdC5hIDwgaW5wdXRzLnN1YnRyYWN0LmIKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAxNiA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMjQgOAoJYnRvaQoJPAoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHN1YnRyYWN0LmEgbXVzdCBiZSBncmVhdGVyIHRoYW4gc3VidHJhY3QuYgoJZXJyCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI3CgkvLyB0aGlzLmdsb2JhbEtleS52YWx1ZSA9IHRoaXMuc29tZU51bWJlcgoJYnl0ZSAweDY3NmM2ZjYyNjE2YzRiNjU3OSAvLyAiZ2xvYmFsS2V5IgoJbG9hZCAyMDAgLy8gVE1QTF9zb21lTnVtYmVyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjI4CgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSB7IGZvbzogMTMsIGJhcjogMzcgfQoJYnl0ZSAweDcwMDAwMzY2NmY2ZgoJYnl0ZSAweDAwMGQwMDI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjMwCgkvLyByZXR1cm4gewoJLy8gICAgICAgc3VtOiBpbnB1dHMuYWRkLmEgKyBpbnB1dHMuYWRkLmIsCgkvLyAgICAgICBkaWZmZXJlbmNlOiBpbnB1dHMuc3VidHJhY3QuYSAtIGlucHV0cy5zdWJ0cmFjdC5iLAoJLy8gICAgIH07CglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgOCA4CglidG9pCgkrCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMTYgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDI0IDgKCWJ0b2kKCS0KCWl0b2IKCWNvbmNhdAoJcmV0c3ViCgovLyBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9wdEluVG9BcHBsaWNhdGlvbigpOiB2b2lkCm9wdEluVG9BcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM3CgkvLyB0aGlzLmxvY2FsS2V5KHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSB0aGlzLnNvbWVOdW1iZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWxvYWQgMjAwIC8vIFRNUExfc29tZU51bWJlcgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM4CgkvLyB0aGlzLmxvY2FsTWFwKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpLnZhbHVlID0gJ2JhcicKCXR4biBTZW5kZXIKCWJ5dGUgMHg3MDY2NmY2ZgoJYnl0ZSAweDAwMDM2MjYxNzIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOQoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSAnYmF6JwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJZHVwCglib3hfZGVsCglwb3AKCWJ5dGUgMHgwMDAzNjI2MTdhCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDAKCS8vIHRoaXMuYm94TWFwKHsgYWRkOiB7IGE6IDEsIGI6IDIgfSwgc3VidHJhY3Q6IHsgYTogNCwgYjogMyB9IH0pLnZhbHVlID0geyBzdW06IDMsIGRpZmZlcmVuY2U6IDEgfQoJYnl0ZSAweDcwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CglyZXRzdWIKCi8vIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21UeXBlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBpbnB1dDogKHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGN1c3RvbVR5cGUoaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZSk6IEN1c3RvbVN0cnVjdEFzTmFtZQpjdXN0b21UeXBlOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6NDQKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQ3VzdG9tU3RydWN0QXNOYW1lCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCgltZXRob2QgImZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpIgoJbWV0aG9kICJjdXN0b21UeXBlKCh1aW50NjQpKSh1aW50NjQpIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2QgKmFiaV9yb3V0ZV9mb28gKmFiaV9yb3V0ZV9jdXN0b21UeXBlCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9PcHRJbjoKCW1ldGhvZCAib3B0SW5Ub0FwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBPcHRJbgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX3NvbWVOdW1iZXIKYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4NjI2Zjc4NGI2NTc5CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwppbnRjIDAgLy8gVE1QTF9zb21lTnVtYmVyCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKmNhbGxfT3B0SW4gKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGN1c3RvbVN0cnVjdE1ldGhvZCgodWludDY0KSkodWludDY0KQoqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5wdXQ6ICh1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGN1c3RvbVN0cnVjdE1ldGhvZChpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdCk6IEFub3RoZXJDdXN0b21TdHJ1Y3QKY3VzdG9tU3RydWN0TWV0aG9kOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MjEKCS8vIHJldHVybiBpbnB1dDsKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dDogQW5vdGhlckN1c3RvbVN0cnVjdAoJcmV0c3ViCgovLyBmb28oKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpKSh1aW50NjQsdWludDY0KQoqYWJpX3JvdXRlX2ZvbzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaW5wdXRzOiAoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0cykgZm9yIGZvbyBtdXN0IGJlIGEgKCh1aW50NjQsdWludDY0KSwodWludDY0LHVpbnQ2NCkpCglhc3NlcnQKCgkvLyBleGVjdXRlIGZvbygoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkpKHVpbnQ2NCx1aW50NjQpCgljYWxsc3ViIGZvbwoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBmb28oaW5wdXRzOiBJbnB1dHMpOiBPdXRwdXRzCmZvbzoKCXByb3RvIDEgMQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czoyNQoJLy8gaW5wdXRzLnN1YnRyYWN0LmEgPCBpbnB1dHMuc3VidHJhY3QuYgoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDE2IDgKCWJ0b2kKCWZyYW1lX2RpZyAtMSAvLyBpbnB1dHM6IElucHV0cwoJZXh0cmFjdCAyNCA4CglidG9pCgk8CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gc3VidHJhY3QuYSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdWJ0cmFjdC5iCgllcnIKCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjcKCS8vIHRoaXMuZ2xvYmFsS2V5LnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCglwdXNoYnl0ZXMgMHg2NzZjNmY2MjYxNmM0YjY1NzkgLy8gImdsb2JhbEtleSIKCWludGMgMCAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FyYzU2LmFsZ28udHM6MjgKCS8vIHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9IHsgZm9vOiAxMywgYmFyOiAzNyB9CglwdXNoYnl0ZXMgMHg3MDAwMDM2NjZmNmYKCXB1c2hieXRlcyAweDAwMGQwMDI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjMwCgkvLyByZXR1cm4gewoJLy8gICAgICAgc3VtOiBpbnB1dHMuYWRkLmEgKyBpbnB1dHMuYWRkLmIsCgkvLyAgICAgICBkaWZmZXJlbmNlOiBpbnB1dHMuc3VidHJhY3QuYSAtIGlucHV0cy5zdWJ0cmFjdC5iLAoJLy8gICAgIH07CglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgOCA4CglidG9pCgkrCglpdG9iCglmcmFtZV9kaWcgLTEgLy8gaW5wdXRzOiBJbnB1dHMKCWV4dHJhY3QgMTYgOAoJYnRvaQoJZnJhbWVfZGlnIC0xIC8vIGlucHV0czogSW5wdXRzCglleHRyYWN0IDI0IDgKCWJ0b2kKCS0KCWl0b2IKCWNvbmNhdAoJcmV0c3ViCgovLyBvcHRJblRvQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vcHRJblRvQXBwbGljYXRpb246CgkvLyBleGVjdXRlIG9wdEluVG9BcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBvcHRJblRvQXBwbGljYXRpb24KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBvcHRJblRvQXBwbGljYXRpb24oKTogdm9pZApvcHRJblRvQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozNwoJLy8gdGhpcy5sb2NhbEtleSh0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gdGhpcy5zb21lTnVtYmVyCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg2YzZmNjM2MTZjNGI2NTc5IC8vICJsb2NhbEtleSIKCWludGMgMCAvLyBUTVBMX3NvbWVOdW1iZXIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXJjNTYuYWxnby50czozOAoJLy8gdGhpcy5sb2NhbE1hcCh0aGlzLnR4bi5zZW5kZXIsICdmb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglwdXNoYnl0ZXMgMHg3MDY2NmY2ZgoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3MgoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjM5CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9ICdiYXonCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglkdXAKCWJveF9kZWwKCXBvcAoJcHVzaGJ5dGVzIDB4MDAwMzYyNjE3YQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjQwCgkvLyB0aGlzLmJveE1hcCh7IGFkZDogeyBhOiAxLCBiOiAyIH0sIHN1YnRyYWN0OiB7IGE6IDQsIGI6IDMgfSB9KS52YWx1ZSA9IHsgc3VtOiAzLCBkaWZmZXJlbmNlOiAxIH0KCXB1c2hieXRlcyAweDcwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMzAwMDAwMDAwMDAwMDAwMDEKCWJveF9wdXQKCXJldHN1YgoKLy8gY3VzdG9tVHlwZSgodWludDY0KSkodWludDY0KQoqYWJpX3JvdXRlX2N1c3RvbVR5cGU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVR5cGUgbXVzdCBiZSBhICh1aW50NjQpCglhc3NlcnQKCgkvLyBleGVjdXRlIGN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tVHlwZQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21UeXBlKGlucHV0OiBDdXN0b21TdHJ1Y3RBc05hbWUpOiBDdXN0b21TdHJ1Y3RBc05hbWUKY3VzdG9tVHlwZToKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hcmM1Ni5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gaW5wdXQ7CglmcmFtZV9kaWcgLTEgLy8gaW5wdXQ6IEN1c3RvbVN0cnVjdEFzTmFtZQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4ZDIyNzM5YSAvLyBtZXRob2QgImN1c3RvbVN0cnVjdE1ldGhvZCgodWludDY0KSkodWludDY0KSIKCXB1c2hieXRlcyAweDM5NmQ1NTBlIC8vIG1ldGhvZCAiZm9vKCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSkodWludDY0LHVpbnQ2NCkiCglwdXNoYnl0ZXMgMHgwZGJmMDJjNyAvLyBtZXRob2QgImN1c3RvbVR5cGUoKHVpbnQ2NCkpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZCAqYWJpX3JvdXRlX2ZvbyAqYWJpX3JvdXRlX2N1c3RvbVR5cGUKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCipjYWxsX09wdEluOgoJcHVzaGJ5dGVzIDB4MDFhM2EzZmYgLy8gbWV0aG9kICJvcHRJblRvQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX29wdEluVG9BcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE9wdEluCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/tests/contracts/artifacts/ARC56TestNoTemplateVars.approval.teal b/tests/contracts/artifacts/ARC56TestNoTemplateVars.approval.teal index d89d9563d..da4fbac83 100644 --- a/tests/contracts/artifacts/ARC56TestNoTemplateVars.approval.teal +++ b/tests/contracts/artifacts/ARC56TestNoTemplateVars.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -23,11 +23,11 @@ switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_ err *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication diff --git a/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc32.json b/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc32.json index 13df60313..ea25a37e1 100644 --- a/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc32.json +++ b/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc56_draft.json b/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc56_draft.json index 4557b6078..0fe800cd9 100644 --- a/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc56_draft.json +++ b/tests/contracts/artifacts/ARC56TestNoTemplateVars.arc56_draft.json @@ -48,158 +48,30 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 48, - "pc": [ - 0 - ] - }, - { - "teal": 13, - "source": 48, - "pc": [ - 1, - 2 - ] - }, - { - "teal": 14, - "source": 48, - "pc": [ - 3 - ] - }, - { - "teal": 15, - "source": 48, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 16, - "source": 48, - "pc": [ - 6 - ] - }, - { - "teal": 17, - "source": 48, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 18, - "source": 48, - "pc": [ - 9 - ] - }, - { - "teal": 19, - "source": 48, - "pc": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "teal": 23, - "source": 48, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 36 - ] - }, - { - "teal": 26, - "source": 48, - "pc": [ - 37, - 38 - ] - }, - { - "teal": 27, - "source": 48, - "pc": [ - 39 - ] - }, - { - "teal": 30, - "source": 48, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 48, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 48, - "pc": [ - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 48, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 53 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 53 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { diff --git a/tests/contracts/artifacts/AVM11.approval.teal b/tests/contracts/artifacts/AVM11.approval.teal index 3d01698eb..6081327a8 100644 --- a/tests/contracts/artifacts/AVM11.approval.teal +++ b/tests/contracts/artifacts/AVM11.approval.teal @@ -1,6 +1,7 @@ #pragma version 11 +intcblock 1 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -208,7 +209,7 @@ blockParams: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -216,11 +217,11 @@ blockParams: err *call_NoOp: - method "voterOpcodes()void" - method "incentiveGlobals()void" - method "onlineStakeOp()void" - method "accountParams()void" - method "blockParams()void" + pushbytes 0x8dc129f6 // method "voterOpcodes()void" + pushbytes 0xa88bf867 // method "incentiveGlobals()void" + pushbytes 0x913a1dd4 // method "onlineStakeOp()void" + pushbytes 0xa5b2fecb // method "accountParams()void" + pushbytes 0x3f6581f5 // method "blockParams()void" txna ApplicationArgs 0 match *abi_route_voterOpcodes *abi_route_incentiveGlobals *abi_route_onlineStakeOp *abi_route_accountParams *abi_route_blockParams diff --git a/tests/contracts/artifacts/AVM11.arc32.json b/tests/contracts/artifacts/AVM11.arc32.json index 4866f0bf9..ebc66740f 100644 --- a/tests/contracts/artifacts/AVM11.arc32.json +++ b/tests/contracts/artifacts/AVM11.arc32.json @@ -59,7 +59,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2b3Rlck9wY29kZXMoKXZvaWQKKmFiaV9yb3V0ZV92b3Rlck9wY29kZXM6CgkvLyBleGVjdXRlIHZvdGVyT3Bjb2Rlcygpdm9pZAoJY2FsbHN1YiB2b3Rlck9wY29kZXMKCWludCAxCglyZXR1cm4KCi8vIHZvdGVyT3Bjb2RlcygpOiB2b2lkCnZvdGVyT3Bjb2RlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjcKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIudm90ZXJCYWxhbmNlKQoJdHhuIFNlbmRlcgoJdm90ZXJfcGFyYW1zX2dldCBWb3RlckJhbGFuY2UKCWFzc2VydAoJcmV0c3ViCgovLyBpbmNlbnRpdmVHbG9iYWxzKCl2b2lkCiphYmlfcm91dGVfaW5jZW50aXZlR2xvYmFsczoKCS8vIGV4ZWN1dGUgaW5jZW50aXZlR2xvYmFscygpdm9pZAoJY2FsbHN1YiBpbmNlbnRpdmVHbG9iYWxzCglpbnQgMQoJcmV0dXJuCgovLyBpbmNlbnRpdmVHbG9iYWxzKCk6IHZvaWQKaW5jZW50aXZlR2xvYmFsczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjEyCgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzRW5hYmxlZCkKCWdsb2JhbCBQYXlvdXRzRW5hYmxlZAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MTMKCS8vIGFzc2VydChnbG9iYWxzLnBheW91dHNHb09ubGluZUZlZSkKCWdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzUGVyY2VudCkKCWdsb2JhbCBQYXlvdXRzUGVyY2VudAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MTUKCS8vIGFzc2VydChnbG9iYWxzLnBheW91dHNNaW5CYWxhbmNlKQoJZ2xvYmFsIFBheW91dHNNaW5CYWxhbmNlCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoxNgoJLy8gYXNzZXJ0KGdsb2JhbHMucGF5b3V0c01heEJhbGFuY2UpCglnbG9iYWwgUGF5b3V0c01heEJhbGFuY2UKCWFzc2VydAoJcmV0c3ViCgovLyBvbmxpbmVTdGFrZU9wKCl2b2lkCiphYmlfcm91dGVfb25saW5lU3Rha2VPcDoKCS8vIGV4ZWN1dGUgb25saW5lU3Rha2VPcCgpdm9pZAoJY2FsbHN1YiBvbmxpbmVTdGFrZU9wCglpbnQgMQoJcmV0dXJuCgovLyBvbmxpbmVTdGFrZU9wKCk6IHZvaWQKb25saW5lU3Rha2VPcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjIwCgkvLyBhc3NlcnQob25saW5lU3Rha2UoKSkKCW9ubGluZV9zdGFrZQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFjY291bnRQYXJhbXMoKXZvaWQKKmFiaV9yb3V0ZV9hY2NvdW50UGFyYW1zOgoJLy8gZXhlY3V0ZSBhY2NvdW50UGFyYW1zKCl2b2lkCgljYWxsc3ViIGFjY291bnRQYXJhbXMKCWludCAxCglyZXR1cm4KCi8vIGFjY291bnRQYXJhbXMoKTogdm9pZAphY2NvdW50UGFyYW1zOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIuaW5jZW50aXZlRWxpZ2libGUpCgl0eG4gU2VuZGVyCglhY2N0X3BhcmFtc19nZXQgQWNjdEluY2VudGl2ZUVsaWdpYmxlCglwb3AKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjI1CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLmxhc3RIZWFydGJlYXQpCgl0eG4gU2VuZGVyCglhY2N0X3BhcmFtc19nZXQgQWNjdExhc3RIZWFydGJlYXQKCXBvcAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MjYKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIubGFzdFByb3Bvc2VkKQoJdHhuIFNlbmRlcgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RMYXN0UHJvcG9zZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJsb2NrUGFyYW1zKCl2b2lkCiphYmlfcm91dGVfYmxvY2tQYXJhbXM6CgkvLyBleGVjdXRlIGJsb2NrUGFyYW1zKCl2b2lkCgljYWxsc3ViIGJsb2NrUGFyYW1zCglpbnQgMQoJcmV0dXJuCgovLyBibG9ja1BhcmFtcygpOiB2b2lkCmJsb2NrUGFyYW1zOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzAKCS8vIGxvZyhibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnByb3Bvc2VyKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrUHJvcG9zZXIKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMxCgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5mZWVzQ29sbGVjdGVkKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrRmVlc0NvbGxlY3RlZAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzIKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLmJvbnVzKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrQm9udXMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMzCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5icmFuY2gpCglnbG9iYWwgUm91bmQKCWludCAxCgktCglibG9jayBCbGtCcmFuY2gKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM0CgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5mZWVTaW5rKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrRmVlU2luawoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzUKCS8vIGxvZyhibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnByb3RvY29sKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrUHJvdG9jb2wKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM2CgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS50eG5Db3VudGVyKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrVHhuQ291bnRlcgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzcKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnByb3Bvc2VyUGF5b3V0KQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrUHJvcG9zZXJQYXlvdXQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidm90ZXJPcGNvZGVzKCl2b2lkIgoJbWV0aG9kICJpbmNlbnRpdmVHbG9iYWxzKCl2b2lkIgoJbWV0aG9kICJvbmxpbmVTdGFrZU9wKCl2b2lkIgoJbWV0aG9kICJhY2NvdW50UGFyYW1zKCl2b2lkIgoJbWV0aG9kICJibG9ja1BhcmFtcygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdm90ZXJPcGNvZGVzICphYmlfcm91dGVfaW5jZW50aXZlR2xvYmFscyAqYWJpX3JvdXRlX29ubGluZVN0YWtlT3AgKmFiaV9yb3V0ZV9hY2NvdW50UGFyYW1zICphYmlfcm91dGVfYmxvY2tQYXJhbXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdm90ZXJPcGNvZGVzKCl2b2lkCiphYmlfcm91dGVfdm90ZXJPcGNvZGVzOgoJLy8gZXhlY3V0ZSB2b3Rlck9wY29kZXMoKXZvaWQKCWNhbGxzdWIgdm90ZXJPcGNvZGVzCglpbnQgMQoJcmV0dXJuCgovLyB2b3Rlck9wY29kZXMoKTogdm9pZAp2b3Rlck9wY29kZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czo3CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLnZvdGVyQmFsYW5jZSkKCXR4biBTZW5kZXIKCXZvdGVyX3BhcmFtc19nZXQgVm90ZXJCYWxhbmNlCglhc3NlcnQKCXJldHN1YgoKLy8gaW5jZW50aXZlR2xvYmFscygpdm9pZAoqYWJpX3JvdXRlX2luY2VudGl2ZUdsb2JhbHM6CgkvLyBleGVjdXRlIGluY2VudGl2ZUdsb2JhbHMoKXZvaWQKCWNhbGxzdWIgaW5jZW50aXZlR2xvYmFscwoJaW50IDEKCXJldHVybgoKLy8gaW5jZW50aXZlR2xvYmFscygpOiB2b2lkCmluY2VudGl2ZUdsb2JhbHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoxMgoJLy8gYXNzZXJ0KGdsb2JhbHMucGF5b3V0c0VuYWJsZWQpCglnbG9iYWwgUGF5b3V0c0VuYWJsZWQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjEzCgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzR29PbmxpbmVGZWUpCglnbG9iYWwgUGF5b3V0c0dvT25saW5lRmVlCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoxNAoJLy8gYXNzZXJ0KGdsb2JhbHMucGF5b3V0c1BlcmNlbnQpCglnbG9iYWwgUGF5b3V0c1BlcmNlbnQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjE1CgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzTWluQmFsYW5jZSkKCWdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MTYKCS8vIGFzc2VydChnbG9iYWxzLnBheW91dHNNYXhCYWxhbmNlKQoJZ2xvYmFsIFBheW91dHNNYXhCYWxhbmNlCglhc3NlcnQKCXJldHN1YgoKLy8gb25saW5lU3Rha2VPcCgpdm9pZAoqYWJpX3JvdXRlX29ubGluZVN0YWtlT3A6CgkvLyBleGVjdXRlIG9ubGluZVN0YWtlT3AoKXZvaWQKCWNhbGxzdWIgb25saW5lU3Rha2VPcAoJaW50IDEKCXJldHVybgoKLy8gb25saW5lU3Rha2VPcCgpOiB2b2lkCm9ubGluZVN0YWtlT3A6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoyMAoJLy8gYXNzZXJ0KG9ubGluZVN0YWtlKCkpCglvbmxpbmVfc3Rha2UKCWFzc2VydAoJcmV0c3ViCgovLyBhY2NvdW50UGFyYW1zKCl2b2lkCiphYmlfcm91dGVfYWNjb3VudFBhcmFtczoKCS8vIGV4ZWN1dGUgYWNjb3VudFBhcmFtcygpdm9pZAoJY2FsbHN1YiBhY2NvdW50UGFyYW1zCglpbnQgMQoJcmV0dXJuCgovLyBhY2NvdW50UGFyYW1zKCk6IHZvaWQKYWNjb3VudFBhcmFtczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjI0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLmluY2VudGl2ZUVsaWdpYmxlKQoJdHhuIFNlbmRlcgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RJbmNlbnRpdmVFbGlnaWJsZQoJcG9wCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoyNQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlci5sYXN0SGVhcnRiZWF0KQoJdHhuIFNlbmRlcgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RMYXN0SGVhcnRiZWF0Cglwb3AKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjI2CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLmxhc3RQcm9wb3NlZCkKCXR4biBTZW5kZXIKCWFjY3RfcGFyYW1zX2dldCBBY2N0TGFzdFByb3Bvc2VkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBibG9ja1BhcmFtcygpdm9pZAoqYWJpX3JvdXRlX2Jsb2NrUGFyYW1zOgoJLy8gZXhlY3V0ZSBibG9ja1BhcmFtcygpdm9pZAoJY2FsbHN1YiBibG9ja1BhcmFtcwoJaW50IDEKCXJldHVybgoKLy8gYmxvY2tQYXJhbXMoKTogdm9pZApibG9ja1BhcmFtczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMwCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5wcm9wb3NlcikKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1Byb3Bvc2VyCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozMQoJLy8gYXNzZXJ0KGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uZmVlc0NvbGxlY3RlZCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa0ZlZXNDb2xsZWN0ZWQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMyCgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5ib251cykKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa0JvbnVzCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozMwoJLy8gbG9nKGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uYnJhbmNoKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrQnJhbmNoCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozNAoJLy8gbG9nKGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uZmVlU2luaykKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa0ZlZVNpbmsKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM1CgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5wcm90b2NvbCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1Byb3RvY29sCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozNgoJLy8gYXNzZXJ0KGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0udHhuQ291bnRlcikKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1R4bkNvdW50ZXIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM3CgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5wcm9wb3NlclBheW91dCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1Byb3Bvc2VyUGF5b3V0Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4ZGMxMjlmNiAvLyBtZXRob2QgInZvdGVyT3Bjb2Rlcygpdm9pZCIKCXB1c2hieXRlcyAweGE4OGJmODY3IC8vIG1ldGhvZCAiaW5jZW50aXZlR2xvYmFscygpdm9pZCIKCXB1c2hieXRlcyAweDkxM2ExZGQ0IC8vIG1ldGhvZCAib25saW5lU3Rha2VPcCgpdm9pZCIKCXB1c2hieXRlcyAweGE1YjJmZWNiIC8vIG1ldGhvZCAiYWNjb3VudFBhcmFtcygpdm9pZCIKCXB1c2hieXRlcyAweDNmNjU4MWY1IC8vIG1ldGhvZCAiYmxvY2tQYXJhbXMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ZvdGVyT3Bjb2RlcyAqYWJpX3JvdXRlX2luY2VudGl2ZUdsb2JhbHMgKmFiaV9yb3V0ZV9vbmxpbmVTdGFrZU9wICphYmlfcm91dGVfYWNjb3VudFBhcmFtcyAqYWJpX3JvdXRlX2Jsb2NrUGFyYW1zCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEx" }, "contract": { diff --git a/tests/contracts/artifacts/AVM11.arc56_draft.json b/tests/contracts/artifacts/AVM11.arc56_draft.json index c383a8f24..85620044c 100644 --- a/tests/contracts/artifacts/AVM11.arc56_draft.json +++ b/tests/contracts/artifacts/AVM11.arc56_draft.json @@ -113,475 +113,27 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 3 - }, - { - "teal": 13, - "source": 3 - }, - { - "teal": 14, - "source": 3 - }, - { - "teal": 15, - "source": 3 - }, - { - "teal": 16, - "source": 3 - }, - { - "teal": 17, - "source": 3 - }, - { - "teal": 18, - "source": 3 - }, - { - "teal": 19, - "source": 3 - }, - { - "teal": 23, - "source": 3, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" - }, - { - "teal": 28, - "source": 6 - }, - { - "teal": 29, - "source": 6 - }, - { - "teal": 30, - "source": 6 - }, - { - "teal": 34, - "source": 6 - }, - { - "teal": 38, - "source": 7 - }, - { - "teal": 39, - "source": 7 - }, - { - "teal": 40, - "source": 7 - }, - { - "teal": 41, - "source": 6 - }, - { - "teal": 46, - "source": 11 - }, - { - "teal": 47, - "source": 11 - }, - { - "teal": 48, - "source": 11 - }, - { - "teal": 52, - "source": 11 - }, - { - "teal": 56, - "source": 12 - }, - { - "teal": 57, - "source": 12 - }, - { - "teal": 61, - "source": 13 - }, - { - "teal": 62, - "source": 13 - }, - { - "teal": 66, - "source": 14 - }, - { - "teal": 67, - "source": 14 - }, - { - "teal": 71, - "source": 15 - }, - { - "teal": 72, - "source": 15 - }, - { - "teal": 76, - "source": 16 - }, - { - "teal": 77, - "source": 16 - }, - { - "teal": 78, - "source": 11 - }, - { - "teal": 83, - "source": 19 - }, - { - "teal": 84, - "source": 19 - }, - { - "teal": 85, - "source": 19 - }, - { - "teal": 89, - "source": 19 - }, - { - "teal": 93, - "source": 20 - }, - { - "teal": 94, - "source": 20 - }, - { - "teal": 95, - "source": 19 - }, - { - "teal": 100, - "source": 23 - }, - { - "teal": 101, - "source": 23 - }, - { - "teal": 102, - "source": 23 - }, - { - "teal": 106, - "source": 23 - }, - { - "teal": 110, - "source": 24 - }, - { - "teal": 111, - "source": 24 - }, - { - "teal": 112, - "source": 24 - }, - { - "teal": 113, - "source": 24 - }, - { - "teal": 117, - "source": 25 - }, - { - "teal": 118, - "source": 25 - }, - { - "teal": 119, - "source": 25 - }, - { - "teal": 120, - "source": 25 - }, - { - "teal": 124, - "source": 26 - }, - { - "teal": 125, - "source": 26 - }, - { - "teal": 126, - "source": 26 - }, - { - "teal": 127, - "source": 26 - }, - { - "teal": 128, - "source": 23 - }, - { - "teal": 133, - "source": 29 - }, - { - "teal": 134, - "source": 29 - }, - { - "teal": 135, - "source": 29 - }, - { - "teal": 139, - "source": 29 - }, - { - "teal": 143, - "source": 30 - }, - { - "teal": 144, - "source": 30 - }, - { - "teal": 145, - "source": 30 - }, - { - "teal": 146, - "source": 30 - }, - { - "teal": 147, - "source": 30 - }, - { - "teal": 151, - "source": 31 - }, - { - "teal": 152, - "source": 31 - }, - { - "teal": 153, - "source": 31 - }, - { - "teal": 154, - "source": 31 - }, - { - "teal": 155, - "source": 31 - }, - { - "teal": 159, - "source": 32 - }, - { - "teal": 160, - "source": 32 - }, - { - "teal": 161, - "source": 32 - }, - { - "teal": 162, - "source": 32 - }, - { - "teal": 163, - "source": 32 - }, - { - "teal": 167, - "source": 33 - }, - { - "teal": 168, - "source": 33 - }, - { - "teal": 169, - "source": 33 - }, - { - "teal": 170, - "source": 33 - }, - { - "teal": 171, - "source": 33 - }, - { - "teal": 175, - "source": 34 - }, - { - "teal": 176, - "source": 34 - }, - { - "teal": 177, - "source": 34 - }, - { - "teal": 178, - "source": 34 - }, - { - "teal": 179, - "source": 34 - }, - { - "teal": 183, - "source": 35 - }, - { - "teal": 184, - "source": 35 - }, - { - "teal": 185, - "source": 35 - }, - { - "teal": 186, - "source": 35 - }, - { - "teal": 187, - "source": 35 - }, - { - "teal": 191, - "source": 36 - }, - { - "teal": 192, - "source": 36 - }, - { - "teal": 193, - "source": 36 - }, - { - "teal": 194, - "source": 36 - }, - { - "teal": 195, - "source": 36 - }, - { - "teal": 199, - "source": 37 - }, - { - "teal": 200, - "source": 37 - }, - { - "teal": 201, - "source": 37 - }, - { - "teal": 202, - "source": 37 - }, - { - "teal": 203, - "source": 37 - }, - { - "teal": 204, - "source": 29 - }, - { - "teal": 207, - "source": 3 - }, - { - "teal": 208, - "source": 3 - }, - { - "teal": 211, - "source": 3 - }, - { - "teal": 212, - "source": 3 - }, - { - "teal": 213, - "source": 3 - }, - { - "teal": 216, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for create NoOp" - }, - { - "teal": 219, - "source": 3 - }, - { - "teal": 220, - "source": 3 - }, - { - "teal": 221, - "source": 3 - }, - { - "teal": 222, - "source": 3 - }, - { - "teal": 223, - "source": 3 - }, - { - "teal": 224, - "source": 3 - }, - { - "teal": 225, - "source": 3 - }, - { - "teal": 228, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for call NoOp" - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB2b3Rlck9wY29kZXMoKXZvaWQKKmFiaV9yb3V0ZV92b3Rlck9wY29kZXM6CgkvLyBleGVjdXRlIHZvdGVyT3Bjb2Rlcygpdm9pZAoJY2FsbHN1YiB2b3Rlck9wY29kZXMKCWludCAxCglyZXR1cm4KCi8vIHZvdGVyT3Bjb2RlcygpOiB2b2lkCnZvdGVyT3Bjb2RlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjcKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIudm90ZXJCYWxhbmNlKQoJdHhuIFNlbmRlcgoJdm90ZXJfcGFyYW1zX2dldCBWb3RlckJhbGFuY2UKCWFzc2VydAoJcmV0c3ViCgovLyBpbmNlbnRpdmVHbG9iYWxzKCl2b2lkCiphYmlfcm91dGVfaW5jZW50aXZlR2xvYmFsczoKCS8vIGV4ZWN1dGUgaW5jZW50aXZlR2xvYmFscygpdm9pZAoJY2FsbHN1YiBpbmNlbnRpdmVHbG9iYWxzCglpbnQgMQoJcmV0dXJuCgovLyBpbmNlbnRpdmVHbG9iYWxzKCk6IHZvaWQKaW5jZW50aXZlR2xvYmFsczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjEyCgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzRW5hYmxlZCkKCWdsb2JhbCBQYXlvdXRzRW5hYmxlZAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MTMKCS8vIGFzc2VydChnbG9iYWxzLnBheW91dHNHb09ubGluZUZlZSkKCWdsb2JhbCBQYXlvdXRzR29PbmxpbmVGZWUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzUGVyY2VudCkKCWdsb2JhbCBQYXlvdXRzUGVyY2VudAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MTUKCS8vIGFzc2VydChnbG9iYWxzLnBheW91dHNNaW5CYWxhbmNlKQoJZ2xvYmFsIFBheW91dHNNaW5CYWxhbmNlCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoxNgoJLy8gYXNzZXJ0KGdsb2JhbHMucGF5b3V0c01heEJhbGFuY2UpCglnbG9iYWwgUGF5b3V0c01heEJhbGFuY2UKCWFzc2VydAoJcmV0c3ViCgovLyBvbmxpbmVTdGFrZU9wKCl2b2lkCiphYmlfcm91dGVfb25saW5lU3Rha2VPcDoKCS8vIGV4ZWN1dGUgb25saW5lU3Rha2VPcCgpdm9pZAoJY2FsbHN1YiBvbmxpbmVTdGFrZU9wCglpbnQgMQoJcmV0dXJuCgovLyBvbmxpbmVTdGFrZU9wKCk6IHZvaWQKb25saW5lU3Rha2VPcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjIwCgkvLyBhc3NlcnQob25saW5lU3Rha2UoKSkKCW9ubGluZV9zdGFrZQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFjY291bnRQYXJhbXMoKXZvaWQKKmFiaV9yb3V0ZV9hY2NvdW50UGFyYW1zOgoJLy8gZXhlY3V0ZSBhY2NvdW50UGFyYW1zKCl2b2lkCgljYWxsc3ViIGFjY291bnRQYXJhbXMKCWludCAxCglyZXR1cm4KCi8vIGFjY291bnRQYXJhbXMoKTogdm9pZAphY2NvdW50UGFyYW1zOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIuaW5jZW50aXZlRWxpZ2libGUpCgl0eG4gU2VuZGVyCglhY2N0X3BhcmFtc19nZXQgQWNjdEluY2VudGl2ZUVsaWdpYmxlCglwb3AKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjI1CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLmxhc3RIZWFydGJlYXQpCgl0eG4gU2VuZGVyCglhY2N0X3BhcmFtc19nZXQgQWNjdExhc3RIZWFydGJlYXQKCXBvcAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MjYKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIubGFzdFByb3Bvc2VkKQoJdHhuIFNlbmRlcgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RMYXN0UHJvcG9zZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJsb2NrUGFyYW1zKCl2b2lkCiphYmlfcm91dGVfYmxvY2tQYXJhbXM6CgkvLyBleGVjdXRlIGJsb2NrUGFyYW1zKCl2b2lkCgljYWxsc3ViIGJsb2NrUGFyYW1zCglpbnQgMQoJcmV0dXJuCgovLyBibG9ja1BhcmFtcygpOiB2b2lkCmJsb2NrUGFyYW1zOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzAKCS8vIGxvZyhibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnByb3Bvc2VyKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrUHJvcG9zZXIKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMxCgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5mZWVzQ29sbGVjdGVkKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrRmVlc0NvbGxlY3RlZAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzIKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLmJvbnVzKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrQm9udXMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMzCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5icmFuY2gpCglnbG9iYWwgUm91bmQKCWludCAxCgktCglibG9jayBCbGtCcmFuY2gKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM0CgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5mZWVTaW5rKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrRmVlU2luawoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzUKCS8vIGxvZyhibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnByb3RvY29sKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrUHJvdG9jb2wKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM2CgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS50eG5Db3VudGVyKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrVHhuQ291bnRlcgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MzcKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnByb3Bvc2VyUGF5b3V0KQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrUHJvcG9zZXJQYXlvdXQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidm90ZXJPcGNvZGVzKCl2b2lkIgoJbWV0aG9kICJpbmNlbnRpdmVHbG9iYWxzKCl2b2lkIgoJbWV0aG9kICJvbmxpbmVTdGFrZU9wKCl2b2lkIgoJbWV0aG9kICJhY2NvdW50UGFyYW1zKCl2b2lkIgoJbWV0aG9kICJibG9ja1BhcmFtcygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdm90ZXJPcGNvZGVzICphYmlfcm91dGVfaW5jZW50aXZlR2xvYmFscyAqYWJpX3JvdXRlX29ubGluZVN0YWtlT3AgKmFiaV9yb3V0ZV9hY2NvdW50UGFyYW1zICphYmlfcm91dGVfYmxvY2tQYXJhbXMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdm90ZXJPcGNvZGVzKCl2b2lkCiphYmlfcm91dGVfdm90ZXJPcGNvZGVzOgoJLy8gZXhlY3V0ZSB2b3Rlck9wY29kZXMoKXZvaWQKCWNhbGxzdWIgdm90ZXJPcGNvZGVzCglpbnQgMQoJcmV0dXJuCgovLyB2b3Rlck9wY29kZXMoKTogdm9pZAp2b3Rlck9wY29kZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czo3CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLnZvdGVyQmFsYW5jZSkKCXR4biBTZW5kZXIKCXZvdGVyX3BhcmFtc19nZXQgVm90ZXJCYWxhbmNlCglhc3NlcnQKCXJldHN1YgoKLy8gaW5jZW50aXZlR2xvYmFscygpdm9pZAoqYWJpX3JvdXRlX2luY2VudGl2ZUdsb2JhbHM6CgkvLyBleGVjdXRlIGluY2VudGl2ZUdsb2JhbHMoKXZvaWQKCWNhbGxzdWIgaW5jZW50aXZlR2xvYmFscwoJaW50IDEKCXJldHVybgoKLy8gaW5jZW50aXZlR2xvYmFscygpOiB2b2lkCmluY2VudGl2ZUdsb2JhbHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoxMgoJLy8gYXNzZXJ0KGdsb2JhbHMucGF5b3V0c0VuYWJsZWQpCglnbG9iYWwgUGF5b3V0c0VuYWJsZWQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjEzCgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzR29PbmxpbmVGZWUpCglnbG9iYWwgUGF5b3V0c0dvT25saW5lRmVlCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoxNAoJLy8gYXNzZXJ0KGdsb2JhbHMucGF5b3V0c1BlcmNlbnQpCglnbG9iYWwgUGF5b3V0c1BlcmNlbnQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjE1CgkvLyBhc3NlcnQoZ2xvYmFscy5wYXlvdXRzTWluQmFsYW5jZSkKCWdsb2JhbCBQYXlvdXRzTWluQmFsYW5jZQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2F2bTExLmFsZ28udHM6MTYKCS8vIGFzc2VydChnbG9iYWxzLnBheW91dHNNYXhCYWxhbmNlKQoJZ2xvYmFsIFBheW91dHNNYXhCYWxhbmNlCglhc3NlcnQKCXJldHN1YgoKLy8gb25saW5lU3Rha2VPcCgpdm9pZAoqYWJpX3JvdXRlX29ubGluZVN0YWtlT3A6CgkvLyBleGVjdXRlIG9ubGluZVN0YWtlT3AoKXZvaWQKCWNhbGxzdWIgb25saW5lU3Rha2VPcAoJaW50IDEKCXJldHVybgoKLy8gb25saW5lU3Rha2VPcCgpOiB2b2lkCm9ubGluZVN0YWtlT3A6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoyMAoJLy8gYXNzZXJ0KG9ubGluZVN0YWtlKCkpCglvbmxpbmVfc3Rha2UKCWFzc2VydAoJcmV0c3ViCgovLyBhY2NvdW50UGFyYW1zKCl2b2lkCiphYmlfcm91dGVfYWNjb3VudFBhcmFtczoKCS8vIGV4ZWN1dGUgYWNjb3VudFBhcmFtcygpdm9pZAoJY2FsbHN1YiBhY2NvdW50UGFyYW1zCglpbnQgMQoJcmV0dXJuCgovLyBhY2NvdW50UGFyYW1zKCk6IHZvaWQKYWNjb3VudFBhcmFtczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjI0CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLmluY2VudGl2ZUVsaWdpYmxlKQoJdHhuIFNlbmRlcgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RJbmNlbnRpdmVFbGlnaWJsZQoJcG9wCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czoyNQoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlci5sYXN0SGVhcnRiZWF0KQoJdHhuIFNlbmRlcgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RMYXN0SGVhcnRiZWF0Cglwb3AKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjI2CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyLmxhc3RQcm9wb3NlZCkKCXR4biBTZW5kZXIKCWFjY3RfcGFyYW1zX2dldCBBY2N0TGFzdFByb3Bvc2VkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBibG9ja1BhcmFtcygpdm9pZAoqYWJpX3JvdXRlX2Jsb2NrUGFyYW1zOgoJLy8gZXhlY3V0ZSBibG9ja1BhcmFtcygpdm9pZAoJY2FsbHN1YiBibG9ja1BhcmFtcwoJaW50IDEKCXJldHVybgoKLy8gYmxvY2tQYXJhbXMoKTogdm9pZApibG9ja1BhcmFtczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMwCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5wcm9wb3NlcikKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1Byb3Bvc2VyCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozMQoJLy8gYXNzZXJ0KGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uZmVlc0NvbGxlY3RlZCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa0ZlZXNDb2xsZWN0ZWQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjMyCgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5ib251cykKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa0JvbnVzCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozMwoJLy8gbG9nKGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uYnJhbmNoKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrQnJhbmNoCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozNAoJLy8gbG9nKGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uZmVlU2luaykKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa0ZlZVNpbmsKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM1CgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5wcm90b2NvbCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1Byb3RvY29sCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvYXZtMTEuYWxnby50czozNgoJLy8gYXNzZXJ0KGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0udHhuQ291bnRlcikKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1R4bkNvdW50ZXIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hdm0xMS5hbGdvLnRzOjM3CgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5wcm9wb3NlclBheW91dCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1Byb3Bvc2VyUGF5b3V0Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4ZGMxMjlmNiAvLyBtZXRob2QgInZvdGVyT3Bjb2Rlcygpdm9pZCIKCXB1c2hieXRlcyAweGE4OGJmODY3IC8vIG1ldGhvZCAiaW5jZW50aXZlR2xvYmFscygpdm9pZCIKCXB1c2hieXRlcyAweDkxM2ExZGQ0IC8vIG1ldGhvZCAib25saW5lU3Rha2VPcCgpdm9pZCIKCXB1c2hieXRlcyAweGE1YjJmZWNiIC8vIG1ldGhvZCAiYWNjb3VudFBhcmFtcygpdm9pZCIKCXB1c2hieXRlcyAweDNmNjU4MWY1IC8vIG1ldGhvZCAiYmxvY2tQYXJhbXMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ZvdGVyT3Bjb2RlcyAqYWJpX3JvdXRlX2luY2VudGl2ZUdsb2JhbHMgKmFiaV9yb3V0ZV9vbmxpbmVTdGFrZU9wICphYmlfcm91dGVfYWNjb3VudFBhcmFtcyAqYWJpX3JvdXRlX2Jsb2NrUGFyYW1zCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEx" } } \ No newline at end of file diff --git a/tests/contracts/artifacts/AccountTest.approval.teal b/tests/contracts/artifacts/AccountTest.approval.teal index d24939f4d..5a4cd1322 100644 --- a/tests/contracts/artifacts/AccountTest.approval.teal +++ b/tests/contracts/artifacts/AccountTest.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 1 32 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -46,7 +47,7 @@ hasAsset: // tests/contracts/account.algo.ts:6 // assert(a.isOptedInToAsset(AssetID.fromUint64(123))) frame_dig -1 // a: Address - int 123 + pushint 123 asset_holding_get AssetBalance swap pop @@ -77,7 +78,7 @@ assetBalance: // tests/contracts/account.algo.ts:10 // assert(a.assetBalance(AssetID.fromUint64(123))) frame_dig -1 // a: Address - int 123 + pushint 123 asset_holding_get AssetBalance pop assert @@ -107,7 +108,7 @@ assetFrozen: // tests/contracts/account.algo.ts:14 // assert(a.assetFrozen(AssetID.fromUint64(123))) frame_dig -1 // a: Address - int 123 + pushint 123 asset_holding_get AssetFrozen pop assert @@ -496,7 +497,7 @@ totalBoxBytes: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -504,22 +505,22 @@ totalBoxBytes: err *call_NoOp: - method "hasAsset(address)void" - method "assetBalance(address)void" - method "assetFrozen(address)void" - method "hasBalance(address)void" - method "balance(address)void" - method "minBalance(address)void" - method "authAddr(address)void" - method "totalNumUint(address)void" - method "totalNumByteSlice(address)void" - method "totalExtraAppPages(address)void" - method "totalAppsCreated(address)void" - method "totalAppsOptedIn(address)void" - method "totalAssetsCreated(address)void" - method "totalAssets(address)void" - method "totalBoxes(address)void" - method "totalBoxBytes(address)void" + pushbytes 0xaa38ae91 // method "hasAsset(address)void" + pushbytes 0x64cb0661 // method "assetBalance(address)void" + pushbytes 0x68d18ddb // method "assetFrozen(address)void" + pushbytes 0x2abf1ede // method "hasBalance(address)void" + pushbytes 0x899e479d // method "balance(address)void" + pushbytes 0x258a0fca // method "minBalance(address)void" + pushbytes 0xbecc2183 // method "authAddr(address)void" + pushbytes 0xfb81e109 // method "totalNumUint(address)void" + pushbytes 0x44d215e1 // method "totalNumByteSlice(address)void" + pushbytes 0x4b3bfef3 // method "totalExtraAppPages(address)void" + pushbytes 0x091ad2aa // method "totalAppsCreated(address)void" + pushbytes 0xb9bf3f95 // method "totalAppsOptedIn(address)void" + pushbytes 0x4f8d2d2c // method "totalAssetsCreated(address)void" + pushbytes 0x13d4a37d // method "totalAssets(address)void" + pushbytes 0xfc8723da // method "totalBoxes(address)void" + pushbytes 0xc4cc5e95 // method "totalBoxBytes(address)void" txna ApplicationArgs 0 match *abi_route_hasAsset *abi_route_assetBalance *abi_route_assetFrozen *abi_route_hasBalance *abi_route_balance *abi_route_minBalance *abi_route_authAddr *abi_route_totalNumUint *abi_route_totalNumByteSlice *abi_route_totalExtraAppPages *abi_route_totalAppsCreated *abi_route_totalAppsOptedIn *abi_route_totalAssetsCreated *abi_route_totalAssets *abi_route_totalBoxes *abi_route_totalBoxBytes diff --git a/tests/contracts/artifacts/AccountTest.arc32.json b/tests/contracts/artifacts/AccountTest.arc32.json index a6efe52f8..5e94c7dce 100644 --- a/tests/contracts/artifacts/AccountTest.arc32.json +++ b/tests/contracts/artifacts/AccountTest.arc32.json @@ -114,7 +114,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBoYXNBc3NldChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9oYXNBc3NldDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGhhc0Fzc2V0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGhhc0Fzc2V0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBoYXNBc3NldAoJaW50IDEKCXJldHVybgoKLy8gaGFzQXNzZXQoYTogQWRkcmVzcyk6IHZvaWQKaGFzQXNzZXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjYKCS8vIGFzc2VydChhLmlzT3B0ZWRJblRvQXNzZXQoQXNzZXRJRC5mcm9tVWludDY0KDEyMykpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWludCAxMjMKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXRCYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0QmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGFzc2V0QmFsYW5jZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhc3NldEJhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFzc2V0QmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRCYWxhbmNlKGE6IEFkZHJlc3MpOiB2b2lkCmFzc2V0QmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTAKCS8vIGFzc2VydChhLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQoMTIzKSkpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhc3NldEZyb3plbihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hc3NldEZyb3plbjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGFzc2V0RnJvemVuIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFzc2V0RnJvemVuKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhc3NldEZyb3plbgoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcm96ZW4oYTogQWRkcmVzcyk6IHZvaWQKYXNzZXRGcm96ZW46Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoYS5hc3NldEZyb3plbihBc3NldElELmZyb21VaW50NjQoMTIzKSkpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRGcm96ZW4KCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGhhc0JhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfaGFzQmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGhhc0JhbGFuY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgaGFzQmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgaGFzQmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gaGFzQmFsYW5jZShhOiBBZGRyZXNzKTogdm9pZApoYXNCYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoxOAoJLy8gYXNzZXJ0KGEuaXNJbkxlZGdlcikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGJhbGFuY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gYmFsYW5jZShhOiBBZGRyZXNzKTogdm9pZApiYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEuYmFsYW5jZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIG1pbkJhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbWluQmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIG1pbkJhbGFuY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbWluQmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbWluQmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gbWluQmFsYW5jZShhOiBBZGRyZXNzKTogdm9pZAptaW5CYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoyNgoJLy8gYXNzZXJ0KGEubWluQmFsYW5jZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGF1dGhBZGRyKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2F1dGhBZGRyOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYXV0aEFkZHIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXV0aEFkZHIoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGF1dGhBZGRyCglpbnQgMQoJcmV0dXJuCgovLyBhdXRoQWRkcihhOiBBZGRyZXNzKTogdm9pZAphdXRoQWRkcjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MzAKCS8vIGxvZyhhLmF1dGhBZGRyKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJbG9nCglyZXRzdWIKCi8vIHRvdGFsTnVtVWludChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbE51bVVpbnQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbE51bVVpbnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxOdW1VaW50KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbE51bVVpbnQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsTnVtVWludChhOiBBZGRyZXNzKTogdm9pZAp0b3RhbE51bVVpbnQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM0CgkvLyBhc3NlcnQoYS50b3RhbE51bVVpbnQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsTnVtQnl0ZVNsaWNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsTnVtQnl0ZVNsaWNlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxOdW1CeXRlU2xpY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxOdW1CeXRlU2xpY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsTnVtQnl0ZVNsaWNlCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbE51bUJ5dGVTbGljZShhOiBBZGRyZXNzKTogdm9pZAp0b3RhbE51bUJ5dGVTbGljZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MzgKCS8vIGFzc2VydChhLnRvdGFsTnVtQnl0ZVNsaWNlKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsRXh0cmFBcHBQYWdlcyhhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbEV4dHJhQXBwUGFnZXM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEV4dHJhQXBwUGFnZXMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxFeHRyYUFwcFBhZ2VzKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbEV4dHJhQXBwUGFnZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsRXh0cmFBcHBQYWdlcyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEV4dHJhQXBwUGFnZXM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjQyCgkvLyBhc3NlcnQoYS50b3RhbEV4dHJhQXBwUGFnZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXBwc0NyZWF0ZWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxBcHBzQ3JlYXRlZDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQXBwc0NyZWF0ZWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBcHBzQ3JlYXRlZChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxBcHBzQ3JlYXRlZAoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBcHBzQ3JlYXRlZChhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFwcHNDcmVhdGVkOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo0NgoJLy8gYXNzZXJ0KGEudG90YWxBcHBzQ3JlYXRlZCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXBwc09wdGVkSW4oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxBcHBzT3B0ZWRJbjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQXBwc09wdGVkSW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBcHBzT3B0ZWRJbihhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxBcHBzT3B0ZWRJbgoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBcHBzT3B0ZWRJbihhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFwcHNPcHRlZEluOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo1MAoJLy8gYXNzZXJ0KGEudG90YWxBcHBzT3B0ZWRJbikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXNzZXRzQ3JlYXRlZChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbEFzc2V0c0NyZWF0ZWQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEFzc2V0c0NyZWF0ZWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBc3NldHNDcmVhdGVkKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbEFzc2V0c0NyZWF0ZWQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXNzZXRzQ3JlYXRlZChhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFzc2V0c0NyZWF0ZWQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjU0CgkvLyBhc3NlcnQoYS50b3RhbEFzc2V0c0NyZWF0ZWQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXNzZXRzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXNzZXRzOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxBc3NldHMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBc3NldHMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQXNzZXRzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFzc2V0cyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFzc2V0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NTgKCS8vIGFzc2VydChhLnRvdGFsQXNzZXRzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQm94ZXMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxCb3hlczoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQm94ZXMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxCb3hlcyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxCb3hlcwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxCb3hlcyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEJveGVzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2MgoJLy8gYXNzZXJ0KGEudG90YWxCb3hlcykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQm94Qnl0ZXMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxCb3hCeXRlczoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQm94Qnl0ZXMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxCb3hCeXRlcyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxCb3hCeXRlcwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxCb3hCeXRlcyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEJveEJ5dGVzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2NgoJLy8gYXNzZXJ0KGEudG90YWxCb3hCeXRlcykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJoYXNBc3NldChhZGRyZXNzKXZvaWQiCgltZXRob2QgImFzc2V0QmFsYW5jZShhZGRyZXNzKXZvaWQiCgltZXRob2QgImFzc2V0RnJvemVuKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiaGFzQmFsYW5jZShhZGRyZXNzKXZvaWQiCgltZXRob2QgImJhbGFuY2UoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJtaW5CYWxhbmNlKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiYXV0aEFkZHIoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbE51bVVpbnQoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbE51bUJ5dGVTbGljZShhZGRyZXNzKXZvaWQiCgltZXRob2QgInRvdGFsRXh0cmFBcHBQYWdlcyhhZGRyZXNzKXZvaWQiCgltZXRob2QgInRvdGFsQXBwc0NyZWF0ZWQoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbEFwcHNPcHRlZEluKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidG90YWxBc3NldHNDcmVhdGVkKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidG90YWxBc3NldHMoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbEJveGVzKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidG90YWxCb3hCeXRlcyhhZGRyZXNzKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2hhc0Fzc2V0ICphYmlfcm91dGVfYXNzZXRCYWxhbmNlICphYmlfcm91dGVfYXNzZXRGcm96ZW4gKmFiaV9yb3V0ZV9oYXNCYWxhbmNlICphYmlfcm91dGVfYmFsYW5jZSAqYWJpX3JvdXRlX21pbkJhbGFuY2UgKmFiaV9yb3V0ZV9hdXRoQWRkciAqYWJpX3JvdXRlX3RvdGFsTnVtVWludCAqYWJpX3JvdXRlX3RvdGFsTnVtQnl0ZVNsaWNlICphYmlfcm91dGVfdG90YWxFeHRyYUFwcFBhZ2VzICphYmlfcm91dGVfdG90YWxBcHBzQ3JlYXRlZCAqYWJpX3JvdXRlX3RvdGFsQXBwc09wdGVkSW4gKmFiaV9yb3V0ZV90b3RhbEFzc2V0c0NyZWF0ZWQgKmFiaV9yb3V0ZV90b3RhbEFzc2V0cyAqYWJpX3JvdXRlX3RvdGFsQm94ZXMgKmFiaV9yb3V0ZV90b3RhbEJveEJ5dGVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDMyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gaGFzQXNzZXQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfaGFzQXNzZXQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBoYXNBc3NldCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBoYXNBc3NldChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgaGFzQXNzZXQKCWludCAxCglyZXR1cm4KCi8vIGhhc0Fzc2V0KGE6IEFkZHJlc3MpOiB2b2lkCmhhc0Fzc2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2CgkvLyBhc3NlcnQoYS5pc09wdGVkSW5Ub0Fzc2V0KEFzc2V0SUQuZnJvbVVpbnQ2NCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglwdXNoaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhc3NldEJhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYXNzZXRCYWxhbmNlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYXNzZXRCYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFzc2V0QmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYXNzZXRCYWxhbmNlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEJhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKYXNzZXRCYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoxMAoJLy8gYXNzZXJ0KGEuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglwdXNoaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhc3NldEZyb3plbihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hc3NldEZyb3plbjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGFzc2V0RnJvemVuIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFzc2V0RnJvemVuKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhc3NldEZyb3plbgoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcm96ZW4oYTogQWRkcmVzcyk6IHZvaWQKYXNzZXRGcm96ZW46Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoYS5hc3NldEZyb3plbihBc3NldElELmZyb21VaW50NjQoMTIzKSkpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJcHVzaGludCAxMjMKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0RnJvemVuCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBoYXNCYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2hhc0JhbGFuY2U6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBoYXNCYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGhhc0JhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGhhc0JhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGhhc0JhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKaGFzQmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTgKCS8vIGFzc2VydChhLmlzSW5MZWRnZXIpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBiYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2JhbGFuY2U6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBiYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGJhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGJhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGJhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKYmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MjIKCS8vIGFzc2VydChhLmJhbGFuY2UpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBtaW5CYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX21pbkJhbGFuY2U6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBtaW5CYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbkJhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIG1pbkJhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIG1pbkJhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKbWluQmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MjYKCS8vIGFzc2VydChhLm1pbkJhbGFuY2UpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhdXRoQWRkcihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hdXRoQWRkcjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGF1dGhBZGRyIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGF1dGhBZGRyKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhdXRoQWRkcgoJaW50IDEKCXJldHVybgoKLy8gYXV0aEFkZHIoYTogQWRkcmVzcyk6IHZvaWQKYXV0aEFkZHI6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjMwCgkvLyBsb2coYS5hdXRoQWRkcikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCglwb3AKCWxvZwoJcmV0c3ViCgovLyB0b3RhbE51bVVpbnQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxOdW1VaW50OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxOdW1VaW50IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsTnVtVWludChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxOdW1VaW50CglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbE51bVVpbnQoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxOdW1VaW50OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czozNAoJLy8gYXNzZXJ0KGEudG90YWxOdW1VaW50KQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50Cglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbE51bUJ5dGVTbGljZShhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbE51bUJ5dGVTbGljZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsTnVtQnl0ZVNsaWNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsTnVtQnl0ZVNsaWNlKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbE51bUJ5dGVTbGljZQoJaW50IDEKCXJldHVybgoKLy8gdG90YWxOdW1CeXRlU2xpY2UoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxOdW1CeXRlU2xpY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM4CgkvLyBhc3NlcnQoYS50b3RhbE51bUJ5dGVTbGljZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxFeHRyYUFwcFBhZ2VzOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxFeHRyYUFwcFBhZ2VzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsRXh0cmFBcHBQYWdlcyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxFeHRyYUFwcFBhZ2VzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxFeHRyYUFwcFBhZ2VzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo0MgoJLy8gYXNzZXJ0KGEudG90YWxFeHRyYUFwcFBhZ2VzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFwcHNDcmVhdGVkKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXBwc0NyZWF0ZWQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEFwcHNDcmVhdGVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXBwc0NyZWF0ZWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQXBwc0NyZWF0ZWQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXBwc0NyZWF0ZWQoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBcHBzQ3JlYXRlZDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NDYKCS8vIGFzc2VydChhLnRvdGFsQXBwc0NyZWF0ZWQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFwcHNPcHRlZEluKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXBwc09wdGVkSW46CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEFwcHNPcHRlZEluIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXBwc09wdGVkSW4oYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQXBwc09wdGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXBwc09wdGVkSW4oYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBcHBzT3B0ZWRJbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NTAKCS8vIGFzc2VydChhLnRvdGFsQXBwc09wdGVkSW4pCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFzc2V0c0NyZWF0ZWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxBc3NldHNDcmVhdGVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXNzZXRzQ3JlYXRlZChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxBc3NldHNDcmVhdGVkCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFzc2V0c0NyZWF0ZWQoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBc3NldHNDcmVhdGVkOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo1NAoJLy8gYXNzZXJ0KGEudG90YWxBc3NldHNDcmVhdGVkKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFzc2V0cyhhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbEFzc2V0czoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQXNzZXRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXNzZXRzKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbEFzc2V0cwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBc3NldHMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBc3NldHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjU4CgkvLyBhc3NlcnQoYS50b3RhbEFzc2V0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEJveGVzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQm94ZXM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEJveGVzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQm94ZXMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQm94ZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQm94ZXMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxCb3hlczoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NjIKCS8vIGFzc2VydChhLnRvdGFsQm94ZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEJveEJ5dGVzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQm94Qnl0ZXM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEJveEJ5dGVzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQm94Qnl0ZXMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQm94Qnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQm94Qnl0ZXMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxCb3hCeXRlczoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NjYKCS8vIGFzc2VydChhLnRvdGFsQm94Qnl0ZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGFhMzhhZTkxIC8vIG1ldGhvZCAiaGFzQXNzZXQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NjRjYjA2NjEgLy8gbWV0aG9kICJhc3NldEJhbGFuY2UoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NjhkMThkZGIgLy8gbWV0aG9kICJhc3NldEZyb3plbihhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHgyYWJmMWVkZSAvLyBtZXRob2QgImhhc0JhbGFuY2UoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ODk5ZTQ3OWQgLy8gbWV0aG9kICJiYWxhbmNlKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDI1OGEwZmNhIC8vIG1ldGhvZCAibWluQmFsYW5jZShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhiZWNjMjE4MyAvLyBtZXRob2QgImF1dGhBZGRyKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGZiODFlMTA5IC8vIG1ldGhvZCAidG90YWxOdW1VaW50KGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDQ0ZDIxNWUxIC8vIG1ldGhvZCAidG90YWxOdW1CeXRlU2xpY2UoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NGIzYmZlZjMgLy8gbWV0aG9kICJ0b3RhbEV4dHJhQXBwUGFnZXMoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MDkxYWQyYWEgLy8gbWV0aG9kICJ0b3RhbEFwcHNDcmVhdGVkKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGI5YmYzZjk1IC8vIG1ldGhvZCAidG90YWxBcHBzT3B0ZWRJbihhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg0ZjhkMmQyYyAvLyBtZXRob2QgInRvdGFsQXNzZXRzQ3JlYXRlZChhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHgxM2Q0YTM3ZCAvLyBtZXRob2QgInRvdGFsQXNzZXRzKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGZjODcyM2RhIC8vIG1ldGhvZCAidG90YWxCb3hlcyhhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhjNGNjNWU5NSAvLyBtZXRob2QgInRvdGFsQm94Qnl0ZXMoYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9oYXNBc3NldCAqYWJpX3JvdXRlX2Fzc2V0QmFsYW5jZSAqYWJpX3JvdXRlX2Fzc2V0RnJvemVuICphYmlfcm91dGVfaGFzQmFsYW5jZSAqYWJpX3JvdXRlX2JhbGFuY2UgKmFiaV9yb3V0ZV9taW5CYWxhbmNlICphYmlfcm91dGVfYXV0aEFkZHIgKmFiaV9yb3V0ZV90b3RhbE51bVVpbnQgKmFiaV9yb3V0ZV90b3RhbE51bUJ5dGVTbGljZSAqYWJpX3JvdXRlX3RvdGFsRXh0cmFBcHBQYWdlcyAqYWJpX3JvdXRlX3RvdGFsQXBwc0NyZWF0ZWQgKmFiaV9yb3V0ZV90b3RhbEFwcHNPcHRlZEluICphYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkICphYmlfcm91dGVfdG90YWxBc3NldHMgKmFiaV9yb3V0ZV90b3RhbEJveGVzICphYmlfcm91dGVfdG90YWxCb3hCeXRlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/AccountTest.arc56_draft.json b/tests/contracts/artifacts/AccountTest.arc56_draft.json index b310fb513..9c250e7b7 100644 --- a/tests/contracts/artifacts/AccountTest.arc56_draft.json +++ b/tests/contracts/artifacts/AccountTest.arc56_draft.json @@ -336,2274 +336,136 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 6, - 7 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 8 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 9, - 10 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 11 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 12, - 13 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 14 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 41 - ] - }, - { - "teal": 28, - "source": 5, - "pc": [ - 42, - 43, - 44 - ] - }, - { - "teal": 29, - "source": 5, - "pc": [ - 45 - ] - }, - { - "teal": 30, - "source": 5, - "pc": [ - 46 - ] - }, - { - "teal": 31, - "source": 5, - "pc": [ - 47 - ] - }, - { - "teal": 32, - "source": 5, - "pc": [ - 48 - ] - }, - { - "teal": 35, - "source": 5, - "errorMessage": "argument 0 (a) for hasAsset must be a address", - "pc": [ - 49 - ] - }, - { - "teal": 38, - "source": 5, - "pc": [ - 50, - 51, - 52 - ] - }, - { - "teal": 39, - "source": 5, - "pc": [ - 53 - ] - }, - { - "teal": 40, - "source": 5, - "pc": [ - 54 - ] - }, - { - "teal": 44, - "source": 5, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 48, - "source": 6, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 49, - "source": 6, - "pc": [ - 60 - ] - }, - { - "teal": 50, - "source": 6, - "pc": [ - 61, - 62 - ] - }, - { - "teal": 51, - "source": 6, - "pc": [ - 63 - ] - }, - { - "teal": 52, - "source": 6, - "pc": [ - 64 - ] - }, - { - "teal": 53, - "source": 6, - "pc": [ - 65 - ] - }, - { - "teal": 54, - "source": 5, - "pc": [ - 66 - ] - }, - { - "teal": 59, - "source": 9, - "pc": [ - 67, - 68, - 69 - ] - }, - { - "teal": 60, - "source": 9, - "pc": [ - 70 - ] - }, - { - "teal": 61, - "source": 9, - "pc": [ - 71 - ] - }, - { - "teal": 62, - "source": 9, - "pc": [ - 72 - ] - }, - { - "teal": 63, - "source": 9, - "pc": [ - 73 - ] - }, - { - "teal": 66, - "source": 9, - "errorMessage": "argument 0 (a) for assetBalance must be a address", - "pc": [ - 74 - ] - }, - { - "teal": 69, - "source": 9, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 70, - "source": 9, - "pc": [ - 78 - ] - }, - { - "teal": 71, - "source": 9, - "pc": [ - 79 - ] - }, - { - "teal": 75, - "source": 9, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 79, - "source": 10, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 80, - "source": 10, - "pc": [ - 85 - ] - }, - { - "teal": 81, - "source": 10, - "pc": [ - 86, - 87 - ] - }, - { - "teal": 82, - "source": 10, - "pc": [ - 88 - ] - }, - { - "teal": 83, - "source": 10, - "pc": [ - 89 - ] - }, - { - "teal": 84, - "source": 9, - "pc": [ - 90 - ] - }, - { - "teal": 89, - "source": 13, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 90, - "source": 13, - "pc": [ - 94 - ] - }, - { - "teal": 91, - "source": 13, - "pc": [ - 95 - ] - }, - { - "teal": 92, - "source": 13, - "pc": [ - 96 - ] - }, - { - "teal": 93, - "source": 13, - "pc": [ - 97 - ] - }, - { - "teal": 96, - "source": 13, - "errorMessage": "argument 0 (a) for assetFrozen must be a address", - "pc": [ - 98 - ] - }, - { - "teal": 99, - "source": 13, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 100, - "source": 13, - "pc": [ - 102 - ] - }, - { - "teal": 101, - "source": 13, - "pc": [ - 103 - ] - }, - { - "teal": 105, - "source": 13, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 109, - "source": 14, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 110, - "source": 14, - "pc": [ - 109 - ] - }, - { - "teal": 111, - "source": 14, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 112, - "source": 14, - "pc": [ - 112 - ] - }, - { - "teal": 113, - "source": 14, - "pc": [ - 113 - ] - }, - { - "teal": 114, - "source": 13, - "pc": [ - 114 - ] - }, - { - "teal": 119, - "source": 17, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 120, - "source": 17, - "pc": [ - 118 - ] - }, - { - "teal": 121, - "source": 17, - "pc": [ - 119 - ] - }, - { - "teal": 122, - "source": 17, - "pc": [ - 120 - ] - }, - { - "teal": 123, - "source": 17, - "pc": [ - 121 - ] - }, - { - "teal": 126, - "source": 17, - "errorMessage": "argument 0 (a) for hasBalance must be a address", - "pc": [ - 122 - ] - }, - { - "teal": 129, - "source": 17, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 130, - "source": 17, - "pc": [ - 126 - ] - }, - { - "teal": 131, - "source": 17, - "pc": [ - 127 - ] - }, - { - "teal": 135, - "source": 17, - "pc": [ - 128, - 129, - 130 - ] - }, - { - "teal": 139, - "source": 18, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 140, - "source": 18, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 141, - "source": 18, - "pc": [ - 135 - ] - }, - { - "teal": 142, - "source": 18, - "pc": [ - 136 - ] - }, - { - "teal": 143, - "source": 18, - "pc": [ - 137 - ] - }, - { - "teal": 144, - "source": 17, - "pc": [ - 138 - ] - }, - { - "teal": 149, - "source": 21, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 150, - "source": 21, - "pc": [ - 142 - ] - }, - { - "teal": 151, - "source": 21, - "pc": [ - 143 - ] - }, - { - "teal": 152, - "source": 21, - "pc": [ - 144 - ] - }, - { - "teal": 153, - "source": 21, - "pc": [ - 145 - ] - }, - { - "teal": 156, - "source": 21, - "errorMessage": "argument 0 (a) for balance must be a address", - "pc": [ - 146 - ] - }, - { - "teal": 159, - "source": 21, - "pc": [ - 147, - 148, - 149 - ] - }, - { - "teal": 160, - "source": 21, - "pc": [ - 150 - ] - }, - { - "teal": 161, - "source": 21, - "pc": [ - 151 - ] - }, - { - "teal": 165, - "source": 21, - "pc": [ - 152, - 153, - 154 - ] - }, - { - "teal": 169, - "source": 22, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 170, - "source": 22, - "pc": [ - 157, - 158 - ] - }, - { - "teal": 171, - "source": 22, - "pc": [ - 159 - ] - }, - { - "teal": 172, - "source": 22, - "pc": [ - 160 - ] - }, - { - "teal": 173, - "source": 21, - "pc": [ - 161 - ] - }, - { - "teal": 178, - "source": 25, - "pc": [ - 162, - 163, - 164 - ] - }, - { - "teal": 179, - "source": 25, - "pc": [ - 165 - ] - }, - { - "teal": 180, - "source": 25, - "pc": [ - 166 - ] - }, - { - "teal": 181, - "source": 25, - "pc": [ - 167 - ] - }, - { - "teal": 182, - "source": 25, - "pc": [ - 168 - ] - }, - { - "teal": 185, - "source": 25, - "errorMessage": "argument 0 (a) for minBalance must be a address", - "pc": [ - 169 - ] - }, - { - "teal": 188, - "source": 25, - "pc": [ - 170, - 171, - 172 - ] - }, - { - "teal": 189, - "source": 25, - "pc": [ - 173 - ] - }, - { - "teal": 190, - "source": 25, - "pc": [ - 174 - ] - }, - { - "teal": 194, - "source": 25, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 198, - "source": 26, - "pc": [ - 178, - 179 - ] - }, - { - "teal": 199, - "source": 26, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 200, - "source": 26, - "pc": [ - 182 - ] - }, - { - "teal": 201, - "source": 26, - "pc": [ - 183 - ] - }, - { - "teal": 202, - "source": 25, - "pc": [ - 184 - ] - }, - { - "teal": 207, - "source": 29, - "pc": [ - 185, - 186, - 187 - ] - }, - { - "teal": 208, - "source": 29, - "pc": [ - 188 - ] - }, - { - "teal": 209, - "source": 29, - "pc": [ - 189 - ] - }, - { - "teal": 210, - "source": 29, - "pc": [ - 190 - ] - }, - { - "teal": 211, - "source": 29, - "pc": [ - 191 - ] - }, - { - "teal": 214, - "source": 29, - "errorMessage": "argument 0 (a) for authAddr must be a address", - "pc": [ - 192 - ] - }, - { - "teal": 217, - "source": 29, - "pc": [ - 193, - 194, - 195 - ] - }, - { - "teal": 218, - "source": 29, - "pc": [ - 196 - ] - }, - { - "teal": 219, - "source": 29, - "pc": [ - 197 - ] - }, - { - "teal": 223, - "source": 29, - "pc": [ - 198, - 199, - 200 - ] - }, - { - "teal": 227, - "source": 30, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 228, - "source": 30, - "pc": [ - 203, - 204 - ] - }, - { - "teal": 229, - "source": 30, - "pc": [ - 205 - ] - }, - { - "teal": 230, - "source": 30, - "pc": [ - 206 - ] - }, - { - "teal": 231, - "source": 29, - "pc": [ - 207 - ] - }, - { - "teal": 236, - "source": 33, - "pc": [ - 208, - 209, - 210 - ] - }, - { - "teal": 237, - "source": 33, - "pc": [ - 211 - ] - }, - { - "teal": 238, - "source": 33, - "pc": [ - 212 - ] - }, - { - "teal": 239, - "source": 33, - "pc": [ - 213 - ] - }, - { - "teal": 240, - "source": 33, - "pc": [ - 214 - ] - }, - { - "teal": 243, - "source": 33, - "errorMessage": "argument 0 (a) for totalNumUint must be a address", - "pc": [ - 215 - ] - }, - { - "teal": 246, - "source": 33, - "pc": [ - 216, - 217, - 218 - ] - }, - { - "teal": 247, - "source": 33, - "pc": [ - 219 - ] - }, - { - "teal": 248, - "source": 33, - "pc": [ - 220 - ] - }, - { - "teal": 252, - "source": 33, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 256, - "source": 34, - "pc": [ - 224, - 225 - ] - }, - { - "teal": 257, - "source": 34, - "pc": [ - 226, - 227 - ] - }, - { - "teal": 258, - "source": 34, - "pc": [ - 228 - ] - }, - { - "teal": 259, - "source": 34, - "pc": [ - 229 - ] - }, - { - "teal": 260, - "source": 33, - "pc": [ - 230 - ] - }, - { - "teal": 265, - "source": 37, - "pc": [ - 231, - 232, - 233 - ] - }, - { - "teal": 266, - "source": 37, - "pc": [ - 234 - ] - }, - { - "teal": 267, - "source": 37, - "pc": [ - 235 - ] - }, - { - "teal": 268, - "source": 37, - "pc": [ - 236 - ] - }, - { - "teal": 269, - "source": 37, - "pc": [ - 237 - ] - }, - { - "teal": 272, - "source": 37, - "errorMessage": "argument 0 (a) for totalNumByteSlice must be a address", - "pc": [ - 238 - ] - }, - { - "teal": 275, - "source": 37, - "pc": [ - 239, - 240, - 241 - ] - }, - { - "teal": 276, - "source": 37, - "pc": [ - 242 - ] - }, - { - "teal": 277, - "source": 37, - "pc": [ - 243 - ] - }, - { - "teal": 281, - "source": 37, - "pc": [ - 244, - 245, - 246 - ] - }, - { - "teal": 285, - "source": 38, - "pc": [ - 247, - 248 - ] - }, - { - "teal": 286, - "source": 38, - "pc": [ - 249, - 250 - ] - }, - { - "teal": 287, - "source": 38, - "pc": [ - 251 - ] - }, - { - "teal": 288, - "source": 38, - "pc": [ - 252 - ] - }, - { - "teal": 289, - "source": 37, - "pc": [ - 253 - ] - }, - { - "teal": 294, - "source": 41, - "pc": [ - 254, - 255, - 256 - ] - }, - { - "teal": 295, - "source": 41, - "pc": [ - 257 - ] - }, - { - "teal": 296, - "source": 41, - "pc": [ - 258 - ] - }, - { - "teal": 297, - "source": 41, - "pc": [ - 259 - ] - }, - { - "teal": 298, - "source": 41, - "pc": [ - 260 - ] - }, - { - "teal": 301, - "source": 41, - "errorMessage": "argument 0 (a) for totalExtraAppPages must be a address", - "pc": [ - 261 - ] - }, - { - "teal": 304, - "source": 41, - "pc": [ - 262, - 263, - 264 - ] - }, - { - "teal": 305, - "source": 41, - "pc": [ - 265 - ] - }, - { - "teal": 306, - "source": 41, - "pc": [ - 266 - ] - }, - { - "teal": 310, - "source": 41, - "pc": [ - 267, - 268, - 269 - ] - }, - { - "teal": 314, - "source": 42, - "pc": [ - 270, - 271 - ] - }, - { - "teal": 315, - "source": 42, - "pc": [ - 272, - 273 - ] - }, - { - "teal": 316, - "source": 42, - "pc": [ - 274 - ] - }, - { - "teal": 317, - "source": 42, - "pc": [ - 275 - ] - }, - { - "teal": 318, - "source": 41, - "pc": [ - 276 - ] - }, - { - "teal": 323, - "source": 45, - "pc": [ - 277, - 278, - 279 - ] - }, - { - "teal": 324, - "source": 45, - "pc": [ - 280 - ] - }, - { - "teal": 325, - "source": 45, - "pc": [ - 281 - ] - }, - { - "teal": 326, - "source": 45, - "pc": [ - 282 - ] - }, - { - "teal": 327, - "source": 45, - "pc": [ - 283 - ] - }, - { - "teal": 330, - "source": 45, - "errorMessage": "argument 0 (a) for totalAppsCreated must be a address", - "pc": [ - 284 - ] - }, - { - "teal": 333, - "source": 45, - "pc": [ - 285, - 286, - 287 - ] - }, - { - "teal": 334, - "source": 45, - "pc": [ - 288 - ] - }, - { - "teal": 335, - "source": 45, - "pc": [ - 289 - ] - }, - { - "teal": 339, - "source": 45, - "pc": [ - 290, - 291, - 292 - ] - }, - { - "teal": 343, - "source": 46, - "pc": [ - 293, - 294 - ] - }, - { - "teal": 344, - "source": 46, - "pc": [ - 295, - 296 - ] - }, - { - "teal": 345, - "source": 46, - "pc": [ - 297 - ] - }, - { - "teal": 346, - "source": 46, - "pc": [ - 298 - ] - }, - { - "teal": 347, - "source": 45, - "pc": [ - 299 - ] - }, - { - "teal": 352, - "source": 49, - "pc": [ - 300, - 301, - 302 - ] - }, - { - "teal": 353, - "source": 49, - "pc": [ - 303 - ] - }, - { - "teal": 354, - "source": 49, - "pc": [ - 304 - ] - }, - { - "teal": 355, - "source": 49, - "pc": [ - 305 - ] - }, - { - "teal": 356, - "source": 49, - "pc": [ - 306 - ] - }, - { - "teal": 359, - "source": 49, - "errorMessage": "argument 0 (a) for totalAppsOptedIn must be a address", - "pc": [ - 307 - ] - }, - { - "teal": 362, - "source": 49, - "pc": [ - 308, - 309, - 310 - ] - }, - { - "teal": 363, - "source": 49, - "pc": [ - 311 - ] - }, - { - "teal": 364, - "source": 49, - "pc": [ - 312 - ] - }, - { - "teal": 368, - "source": 49, - "pc": [ - 313, - 314, - 315 - ] - }, - { - "teal": 372, - "source": 50, - "pc": [ - 316, - 317 - ] - }, - { - "teal": 373, - "source": 50, - "pc": [ - 318, - 319 - ] - }, - { - "teal": 374, - "source": 50, - "pc": [ - 320 - ] - }, - { - "teal": 375, - "source": 50, - "pc": [ - 321 - ] - }, - { - "teal": 376, - "source": 49, - "pc": [ - 322 - ] - }, - { - "teal": 381, - "source": 53, - "pc": [ - 323, - 324, - 325 - ] - }, - { - "teal": 382, - "source": 53, - "pc": [ - 326 - ] - }, - { - "teal": 383, - "source": 53, - "pc": [ - 327 - ] - }, - { - "teal": 384, - "source": 53, - "pc": [ - 328 - ] - }, - { - "teal": 385, - "source": 53, - "pc": [ - 329 - ] - }, - { - "teal": 388, - "source": 53, - "errorMessage": "argument 0 (a) for totalAssetsCreated must be a address", - "pc": [ - 330 - ] - }, - { - "teal": 391, - "source": 53, - "pc": [ - 331, - 332, - 333 - ] - }, - { - "teal": 392, - "source": 53, - "pc": [ - 334 - ] - }, - { - "teal": 393, - "source": 53, - "pc": [ - 335 - ] - }, - { - "teal": 397, - "source": 53, - "pc": [ - 336, - 337, - 338 - ] - }, - { - "teal": 401, - "source": 54, - "pc": [ - 339, - 340 - ] - }, - { - "teal": 402, - "source": 54, - "pc": [ - 341, - 342 - ] - }, - { - "teal": 403, - "source": 54, - "pc": [ - 343 - ] - }, - { - "teal": 404, - "source": 54, - "pc": [ - 344 - ] - }, - { - "teal": 405, - "source": 53, - "pc": [ - 345 - ] - }, - { - "teal": 410, - "source": 57, - "pc": [ - 346, - 347, - 348 - ] - }, - { - "teal": 411, - "source": 57, - "pc": [ - 349 - ] - }, - { - "teal": 412, - "source": 57, - "pc": [ - 350 - ] - }, - { - "teal": 413, - "source": 57, - "pc": [ - 351 - ] - }, - { - "teal": 414, - "source": 57, - "pc": [ - 352 - ] - }, - { - "teal": 417, - "source": 57, - "errorMessage": "argument 0 (a) for totalAssets must be a address", - "pc": [ - 353 - ] - }, - { - "teal": 420, - "source": 57, - "pc": [ - 354, - 355, - 356 - ] - }, - { - "teal": 421, - "source": 57, - "pc": [ - 357 - ] - }, - { - "teal": 422, - "source": 57, - "pc": [ - 358 - ] - }, - { - "teal": 426, - "source": 57, - "pc": [ - 359, - 360, - 361 - ] - }, - { - "teal": 430, - "source": 58, - "pc": [ - 362, - 363 - ] - }, - { - "teal": 431, - "source": 58, - "pc": [ - 364, - 365 - ] - }, - { - "teal": 432, - "source": 58, - "pc": [ - 366 - ] - }, - { - "teal": 433, - "source": 58, - "pc": [ - 367 - ] - }, - { - "teal": 434, - "source": 57, - "pc": [ - 368 - ] - }, - { - "teal": 439, - "source": 61, - "pc": [ - 369, - 370, - 371 - ] - }, - { - "teal": 440, - "source": 61, - "pc": [ - 372 - ] - }, - { - "teal": 441, - "source": 61, - "pc": [ - 373 - ] - }, - { - "teal": 442, - "source": 61, - "pc": [ - 374 - ] - }, - { - "teal": 443, - "source": 61, - "pc": [ - 375 - ] - }, - { - "teal": 446, - "source": 61, - "errorMessage": "argument 0 (a) for totalBoxes must be a address", - "pc": [ - 376 - ] - }, - { - "teal": 449, - "source": 61, - "pc": [ - 377, - 378, - 379 - ] - }, - { - "teal": 450, - "source": 61, - "pc": [ - 380 - ] - }, - { - "teal": 451, - "source": 61, - "pc": [ - 381 - ] - }, - { - "teal": 455, - "source": 61, - "pc": [ - 382, - 383, - 384 - ] - }, - { - "teal": 459, - "source": 62, - "pc": [ - 385, - 386 - ] - }, - { - "teal": 460, - "source": 62, - "pc": [ - 387, - 388 - ] - }, - { - "teal": 461, - "source": 62, - "pc": [ - 389 - ] - }, - { - "teal": 462, - "source": 62, - "pc": [ - 390 - ] - }, - { - "teal": 463, - "source": 61, - "pc": [ - 391 - ] - }, - { - "teal": 468, - "source": 65, - "pc": [ - 392, - 393, - 394 - ] - }, - { - "teal": 469, - "source": 65, - "pc": [ - 395 - ] - }, - { - "teal": 470, - "source": 65, - "pc": [ - 396 - ] - }, - { - "teal": 471, - "source": 65, - "pc": [ - 397 - ] - }, - { - "teal": 472, - "source": 65, - "pc": [ - 398 - ] - }, - { - "teal": 475, - "source": 65, - "errorMessage": "argument 0 (a) for totalBoxBytes must be a address", - "pc": [ - 399 - ] - }, - { - "teal": 478, - "source": 65, - "pc": [ - 400, - 401, - 402 - ] - }, - { - "teal": 479, - "source": 65, - "pc": [ - 403 - ] - }, - { - "teal": 480, - "source": 65, - "pc": [ - 404 - ] - }, - { - "teal": 484, - "source": 65, - "pc": [ - 405, - 406, - 407 - ] - }, - { - "teal": 488, - "source": 66, - "pc": [ - 408, - 409 - ] - }, - { - "teal": 489, - "source": 66, - "pc": [ - 410, - 411 - ] - }, - { - "teal": 490, - "source": 66, - "pc": [ - 412 - ] - }, - { - "teal": 491, - "source": 66, - "pc": [ - 413 - ] - }, - { - "teal": 492, - "source": 65, - "pc": [ - 414 - ] - }, - { - "teal": 495, - "source": 4, - "pc": [ - 415 - ] - }, - { - "teal": 496, - "source": 4, - "pc": [ - 416 - ] - }, - { - "teal": 499, - "source": 4, - "pc": [ - 417, - 418, - 419, - 420, - 421, - 422 - ] - }, - { - "teal": 500, - "source": 4, - "pc": [ - 423, - 424, - 425 - ] - }, - { - "teal": 501, - "source": 4, - "pc": [ - 426, - 427, - 428, - 429 - ] - }, - { - "teal": 504, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 430 - ] - }, - { - "teal": 507, - "source": 4, - "pc": [ - 431, - 432, - 433, - 434, - 435, - 436 - ] - }, - { - "teal": 508, - "source": 4, - "pc": [ - 437, - 438, - 439, - 440, - 441, - 442 - ] - }, - { - "teal": 509, - "source": 4, - "pc": [ - 443, - 444, - 445, - 446, - 447, - 448 - ] - }, - { - "teal": 510, - "source": 4, - "pc": [ - 449, - 450, - 451, - 452, - 453, - 454 - ] - }, - { - "teal": 511, - "source": 4, - "pc": [ - 455, - 456, - 457, - 458, - 459, - 460 - ] - }, - { - "teal": 512, - "source": 4, - "pc": [ - 461, - 462, - 463, - 464, - 465, - 466 - ] - }, - { - "teal": 513, - "source": 4, - "pc": [ - 467, - 468, - 469, - 470, - 471, - 472 - ] - }, - { - "teal": 514, - "source": 4, - "pc": [ - 473, - 474, - 475, - 476, - 477, - 478 - ] - }, - { - "teal": 515, - "source": 4, - "pc": [ - 479, - 480, - 481, - 482, - 483, - 484 - ] - }, - { - "teal": 516, - "source": 4, - "pc": [ - 485, - 486, - 487, - 488, - 489, - 490 - ] - }, - { - "teal": 517, - "source": 4, - "pc": [ - 491, - 492, - 493, - 494, - 495, - 496 - ] - }, - { - "teal": 518, - "source": 4, - "pc": [ - 497, - 498, - 499, - 500, - 501, - 502 - ] - }, - { - "teal": 519, - "source": 4, - "pc": [ - 503, - 504, - 505, - 506, - 507, - 508 - ] - }, - { - "teal": 520, - "source": 4, - "pc": [ - 509, - 510, - 511, - 512, - 513, - 514 - ] - }, - { - "teal": 521, - "source": 4, - "pc": [ - 515, - 516, - 517, - 518, - 519, - 520 - ] - }, - { - "teal": 522, - "source": 4, - "pc": [ - 521, - 522, - 523, - 524, - 525, - 526 - ] - }, - { - "teal": 523, - "source": 4, - "pc": [ - 527, - 528, - 529 - ] - }, - { - "teal": 524, - "source": 4, - "pc": [ - 530, - 531, - 532, - 533, - 534, - 535, - 536, - 537, - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548, - 549, - 550, - 551, - 552, - 553, - 554, - 555, - 556, - 557, - 558, - 559, - 560, - 561, - 562, - 563 - ] - }, - { - "teal": 527, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 564 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 40 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 49 + ], + "errorMessage": "argument 0 (a) for hasAsset must be a address" + }, + { + "pc": [ + 77 + ], + "errorMessage": "argument 0 (a) for assetBalance must be a address" + }, + { + "pc": [ + 104 + ], + "errorMessage": "argument 0 (a) for assetFrozen must be a address" + }, + { + "pc": [ + 131 + ], + "errorMessage": "argument 0 (a) for hasBalance must be a address" + }, + { + "pc": [ + 157 + ], + "errorMessage": "argument 0 (a) for balance must be a address" + }, + { + "pc": [ + 182 + ], + "errorMessage": "argument 0 (a) for minBalance must be a address" + }, + { + "pc": [ + 207 + ], + "errorMessage": "argument 0 (a) for authAddr must be a address" + }, + { + "pc": [ + 232 + ], + "errorMessage": "argument 0 (a) for totalNumUint must be a address" + }, + { + "pc": [ + 257 + ], + "errorMessage": "argument 0 (a) for totalNumByteSlice must be a address" + }, + { + "pc": [ + 282 + ], + "errorMessage": "argument 0 (a) for totalExtraAppPages must be a address" + }, + { + "pc": [ + 307 + ], + "errorMessage": "argument 0 (a) for totalAppsCreated must be a address" + }, + { + "pc": [ + 332 + ], + "errorMessage": "argument 0 (a) for totalAppsOptedIn must be a address" + }, + { + "pc": [ + 357 + ], + "errorMessage": "argument 0 (a) for totalAssetsCreated must be a address" + }, + { + "pc": [ + 382 + ], + "errorMessage": "argument 0 (a) for totalAssets must be a address" + }, + { + "pc": [ + 407 + ], + "errorMessage": "argument 0 (a) for totalBoxes must be a address" + }, + { + "pc": [ + 432 + ], + "errorMessage": "argument 0 (a) for totalBoxBytes must be a address" + }, + { + "pc": [ + 465 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 599 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBoYXNBc3NldChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9oYXNBc3NldDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGhhc0Fzc2V0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGhhc0Fzc2V0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBoYXNBc3NldAoJaW50IDEKCXJldHVybgoKLy8gaGFzQXNzZXQoYTogQWRkcmVzcyk6IHZvaWQKaGFzQXNzZXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjYKCS8vIGFzc2VydChhLmlzT3B0ZWRJblRvQXNzZXQoQXNzZXRJRC5mcm9tVWludDY0KDEyMykpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWludCAxMjMKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXRCYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0QmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGFzc2V0QmFsYW5jZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBhc3NldEJhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGFzc2V0QmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRCYWxhbmNlKGE6IEFkZHJlc3MpOiB2b2lkCmFzc2V0QmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTAKCS8vIGFzc2VydChhLmFzc2V0QmFsYW5jZShBc3NldElELmZyb21VaW50NjQoMTIzKSkpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhc3NldEZyb3plbihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hc3NldEZyb3plbjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGFzc2V0RnJvemVuIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFzc2V0RnJvemVuKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhc3NldEZyb3plbgoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcm96ZW4oYTogQWRkcmVzcyk6IHZvaWQKYXNzZXRGcm96ZW46Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoYS5hc3NldEZyb3plbihBc3NldElELmZyb21VaW50NjQoMTIzKSkpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRGcm96ZW4KCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGhhc0JhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfaGFzQmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGhhc0JhbGFuY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgaGFzQmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgaGFzQmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gaGFzQmFsYW5jZShhOiBBZGRyZXNzKTogdm9pZApoYXNCYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoxOAoJLy8gYXNzZXJ0KGEuaXNJbkxlZGdlcikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGJhbGFuY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gYmFsYW5jZShhOiBBZGRyZXNzKTogdm9pZApiYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEuYmFsYW5jZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIG1pbkJhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbWluQmFsYW5jZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIG1pbkJhbGFuY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbWluQmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbWluQmFsYW5jZQoJaW50IDEKCXJldHVybgoKLy8gbWluQmFsYW5jZShhOiBBZGRyZXNzKTogdm9pZAptaW5CYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoyNgoJLy8gYXNzZXJ0KGEubWluQmFsYW5jZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGF1dGhBZGRyKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2F1dGhBZGRyOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYXV0aEFkZHIgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYXV0aEFkZHIoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGF1dGhBZGRyCglpbnQgMQoJcmV0dXJuCgovLyBhdXRoQWRkcihhOiBBZGRyZXNzKTogdm9pZAphdXRoQWRkcjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MzAKCS8vIGxvZyhhLmF1dGhBZGRyKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKCXBvcAoJbG9nCglyZXRzdWIKCi8vIHRvdGFsTnVtVWludChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbE51bVVpbnQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbE51bVVpbnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxOdW1VaW50KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbE51bVVpbnQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsTnVtVWludChhOiBBZGRyZXNzKTogdm9pZAp0b3RhbE51bVVpbnQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM0CgkvLyBhc3NlcnQoYS50b3RhbE51bVVpbnQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsTnVtQnl0ZVNsaWNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsTnVtQnl0ZVNsaWNlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxOdW1CeXRlU2xpY2UgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxOdW1CeXRlU2xpY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsTnVtQnl0ZVNsaWNlCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbE51bUJ5dGVTbGljZShhOiBBZGRyZXNzKTogdm9pZAp0b3RhbE51bUJ5dGVTbGljZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MzgKCS8vIGFzc2VydChhLnRvdGFsTnVtQnl0ZVNsaWNlKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsRXh0cmFBcHBQYWdlcyhhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbEV4dHJhQXBwUGFnZXM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEV4dHJhQXBwUGFnZXMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxFeHRyYUFwcFBhZ2VzKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbEV4dHJhQXBwUGFnZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsRXh0cmFBcHBQYWdlcyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEV4dHJhQXBwUGFnZXM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjQyCgkvLyBhc3NlcnQoYS50b3RhbEV4dHJhQXBwUGFnZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXBwc0NyZWF0ZWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxBcHBzQ3JlYXRlZDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQXBwc0NyZWF0ZWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBcHBzQ3JlYXRlZChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxBcHBzQ3JlYXRlZAoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBcHBzQ3JlYXRlZChhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFwcHNDcmVhdGVkOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo0NgoJLy8gYXNzZXJ0KGEudG90YWxBcHBzQ3JlYXRlZCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXBwc09wdGVkSW4oYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxBcHBzT3B0ZWRJbjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQXBwc09wdGVkSW4gbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBcHBzT3B0ZWRJbihhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxBcHBzT3B0ZWRJbgoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBcHBzT3B0ZWRJbihhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFwcHNPcHRlZEluOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo1MAoJLy8gYXNzZXJ0KGEudG90YWxBcHBzT3B0ZWRJbikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXNzZXRzQ3JlYXRlZChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbEFzc2V0c0NyZWF0ZWQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEFzc2V0c0NyZWF0ZWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBc3NldHNDcmVhdGVkKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbEFzc2V0c0NyZWF0ZWQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXNzZXRzQ3JlYXRlZChhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFzc2V0c0NyZWF0ZWQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjU0CgkvLyBhc3NlcnQoYS50b3RhbEFzc2V0c0NyZWF0ZWQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQXNzZXRzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXNzZXRzOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxBc3NldHMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxBc3NldHMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQXNzZXRzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFzc2V0cyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEFzc2V0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NTgKCS8vIGFzc2VydChhLnRvdGFsQXNzZXRzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQm94ZXMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxCb3hlczoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQm94ZXMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxCb3hlcyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxCb3hlcwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxCb3hlcyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEJveGVzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2MgoJLy8gYXNzZXJ0KGEudG90YWxCb3hlcykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIHRvdGFsQm94Qnl0ZXMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxCb3hCeXRlczoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQm94Qnl0ZXMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdG90YWxCb3hCeXRlcyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxCb3hCeXRlcwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxCb3hCeXRlcyhhOiBBZGRyZXNzKTogdm9pZAp0b3RhbEJveEJ5dGVzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2NgoJLy8gYXNzZXJ0KGEudG90YWxCb3hCeXRlcykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJoYXNBc3NldChhZGRyZXNzKXZvaWQiCgltZXRob2QgImFzc2V0QmFsYW5jZShhZGRyZXNzKXZvaWQiCgltZXRob2QgImFzc2V0RnJvemVuKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiaGFzQmFsYW5jZShhZGRyZXNzKXZvaWQiCgltZXRob2QgImJhbGFuY2UoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJtaW5CYWxhbmNlKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiYXV0aEFkZHIoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbE51bVVpbnQoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbE51bUJ5dGVTbGljZShhZGRyZXNzKXZvaWQiCgltZXRob2QgInRvdGFsRXh0cmFBcHBQYWdlcyhhZGRyZXNzKXZvaWQiCgltZXRob2QgInRvdGFsQXBwc0NyZWF0ZWQoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbEFwcHNPcHRlZEluKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidG90YWxBc3NldHNDcmVhdGVkKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidG90YWxBc3NldHMoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJ0b3RhbEJveGVzKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAidG90YWxCb3hCeXRlcyhhZGRyZXNzKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2hhc0Fzc2V0ICphYmlfcm91dGVfYXNzZXRCYWxhbmNlICphYmlfcm91dGVfYXNzZXRGcm96ZW4gKmFiaV9yb3V0ZV9oYXNCYWxhbmNlICphYmlfcm91dGVfYmFsYW5jZSAqYWJpX3JvdXRlX21pbkJhbGFuY2UgKmFiaV9yb3V0ZV9hdXRoQWRkciAqYWJpX3JvdXRlX3RvdGFsTnVtVWludCAqYWJpX3JvdXRlX3RvdGFsTnVtQnl0ZVNsaWNlICphYmlfcm91dGVfdG90YWxFeHRyYUFwcFBhZ2VzICphYmlfcm91dGVfdG90YWxBcHBzQ3JlYXRlZCAqYWJpX3JvdXRlX3RvdGFsQXBwc09wdGVkSW4gKmFiaV9yb3V0ZV90b3RhbEFzc2V0c0NyZWF0ZWQgKmFiaV9yb3V0ZV90b3RhbEFzc2V0cyAqYWJpX3JvdXRlX3RvdGFsQm94ZXMgKmFiaV9yb3V0ZV90b3RhbEJveEJ5dGVzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDMyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gaGFzQXNzZXQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfaGFzQXNzZXQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBoYXNBc3NldCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBoYXNBc3NldChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgaGFzQXNzZXQKCWludCAxCglyZXR1cm4KCi8vIGhhc0Fzc2V0KGE6IEFkZHJlc3MpOiB2b2lkCmhhc0Fzc2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo2CgkvLyBhc3NlcnQoYS5pc09wdGVkSW5Ub0Fzc2V0KEFzc2V0SUQuZnJvbVVpbnQ2NCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglwdXNoaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhc3NldEJhbGFuY2UoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfYXNzZXRCYWxhbmNlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgYXNzZXRCYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFzc2V0QmFsYW5jZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgYXNzZXRCYWxhbmNlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEJhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKYXNzZXRCYWxhbmNlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czoxMAoJLy8gYXNzZXJ0KGEuYXNzZXRCYWxhbmNlKEFzc2V0SUQuZnJvbVVpbnQ2NCgxMjMpKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglwdXNoaW50IDEyMwoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhc3NldEZyb3plbihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hc3NldEZyb3plbjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGFzc2V0RnJvemVuIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFzc2V0RnJvemVuKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhc3NldEZyb3plbgoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcm96ZW4oYTogQWRkcmVzcyk6IHZvaWQKYXNzZXRGcm96ZW46Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjE0CgkvLyBhc3NlcnQoYS5hc3NldEZyb3plbihBc3NldElELmZyb21VaW50NjQoMTIzKSkpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJcHVzaGludCAxMjMKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0RnJvemVuCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBoYXNCYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2hhc0JhbGFuY2U6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBoYXNCYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGhhc0JhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGhhc0JhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGhhc0JhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKaGFzQmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MTgKCS8vIGFzc2VydChhLmlzSW5MZWRnZXIpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBiYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2JhbGFuY2U6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBiYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGJhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGJhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIGJhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKYmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MjIKCS8vIGFzc2VydChhLmJhbGFuY2UpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBtaW5CYWxhbmNlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX21pbkJhbGFuY2U6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBtaW5CYWxhbmNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIG1pbkJhbGFuY2UoYWRkcmVzcyl2b2lkCgljYWxsc3ViIG1pbkJhbGFuY2UKCWludCAxCglyZXR1cm4KCi8vIG1pbkJhbGFuY2UoYTogQWRkcmVzcyk6IHZvaWQKbWluQmFsYW5jZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6MjYKCS8vIGFzc2VydChhLm1pbkJhbGFuY2UpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBhdXRoQWRkcihhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9hdXRoQWRkcjoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGF1dGhBZGRyIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGF1dGhBZGRyKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBhdXRoQWRkcgoJaW50IDEKCXJldHVybgoKLy8gYXV0aEFkZHIoYTogQWRkcmVzcyk6IHZvaWQKYXV0aEFkZHI6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjMwCgkvLyBsb2coYS5hdXRoQWRkcikKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCglwb3AKCWxvZwoJcmV0c3ViCgovLyB0b3RhbE51bVVpbnQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxOdW1VaW50OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxOdW1VaW50IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsTnVtVWludChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxOdW1VaW50CglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbE51bVVpbnQoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxOdW1VaW50OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czozNAoJLy8gYXNzZXJ0KGEudG90YWxOdW1VaW50KQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50Cglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbE51bUJ5dGVTbGljZShhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbE51bUJ5dGVTbGljZToKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsTnVtQnl0ZVNsaWNlIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsTnVtQnl0ZVNsaWNlKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbE51bUJ5dGVTbGljZQoJaW50IDEKCXJldHVybgoKLy8gdG90YWxOdW1CeXRlU2xpY2UoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxOdW1CeXRlU2xpY2U6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjM4CgkvLyBhc3NlcnQoYS50b3RhbE51bUJ5dGVTbGljZSkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxFeHRyYUFwcFBhZ2VzOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxFeHRyYUFwcFBhZ2VzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsRXh0cmFBcHBQYWdlcyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxFeHRyYUFwcFBhZ2VzCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEV4dHJhQXBwUGFnZXMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxFeHRyYUFwcFBhZ2VzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo0MgoJLy8gYXNzZXJ0KGEudG90YWxFeHRyYUFwcFBhZ2VzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFwcHNDcmVhdGVkKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXBwc0NyZWF0ZWQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEFwcHNDcmVhdGVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXBwc0NyZWF0ZWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQXBwc0NyZWF0ZWQKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXBwc0NyZWF0ZWQoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBcHBzQ3JlYXRlZDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NDYKCS8vIGFzc2VydChhLnRvdGFsQXBwc0NyZWF0ZWQpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFwcHNPcHRlZEluKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQXBwc09wdGVkSW46CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEFwcHNPcHRlZEluIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXBwc09wdGVkSW4oYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQXBwc09wdGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQXBwc09wdGVkSW4oYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBcHBzT3B0ZWRJbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NTAKCS8vIGFzc2VydChhLnRvdGFsQXBwc09wdGVkSW4pCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFzc2V0c0NyZWF0ZWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgdG90YWxBc3NldHNDcmVhdGVkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXNzZXRzQ3JlYXRlZChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgdG90YWxBc3NldHNDcmVhdGVkCglpbnQgMQoJcmV0dXJuCgovLyB0b3RhbEFzc2V0c0NyZWF0ZWQoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBc3NldHNDcmVhdGVkOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FjY291bnQuYWxnby50czo1NAoJLy8gYXNzZXJ0KGEudG90YWxBc3NldHNDcmVhdGVkKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEFzc2V0cyhhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV90b3RhbEFzc2V0czoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIHRvdGFsQXNzZXRzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQXNzZXRzKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB0b3RhbEFzc2V0cwoJaW50IDEKCXJldHVybgoKLy8gdG90YWxBc3NldHMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxBc3NldHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWNjb3VudC5hbGdvLnRzOjU4CgkvLyBhc3NlcnQoYS50b3RhbEFzc2V0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEJveGVzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQm94ZXM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEJveGVzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQm94ZXMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQm94ZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQm94ZXMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxCb3hlczoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NjIKCS8vIGFzc2VydChhLnRvdGFsQm94ZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyB0b3RhbEJveEJ5dGVzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX3RvdGFsQm94Qnl0ZXM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciB0b3RhbEJveEJ5dGVzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHRvdGFsQm94Qnl0ZXMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHRvdGFsQm94Qnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIHRvdGFsQm94Qnl0ZXMoYTogQWRkcmVzcyk6IHZvaWQKdG90YWxCb3hCeXRlczoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hY2NvdW50LmFsZ28udHM6NjYKCS8vIGFzc2VydChhLnRvdGFsQm94Qnl0ZXMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGFhMzhhZTkxIC8vIG1ldGhvZCAiaGFzQXNzZXQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NjRjYjA2NjEgLy8gbWV0aG9kICJhc3NldEJhbGFuY2UoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NjhkMThkZGIgLy8gbWV0aG9kICJhc3NldEZyb3plbihhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHgyYWJmMWVkZSAvLyBtZXRob2QgImhhc0JhbGFuY2UoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4ODk5ZTQ3OWQgLy8gbWV0aG9kICJiYWxhbmNlKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDI1OGEwZmNhIC8vIG1ldGhvZCAibWluQmFsYW5jZShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhiZWNjMjE4MyAvLyBtZXRob2QgImF1dGhBZGRyKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGZiODFlMTA5IC8vIG1ldGhvZCAidG90YWxOdW1VaW50KGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDQ0ZDIxNWUxIC8vIG1ldGhvZCAidG90YWxOdW1CeXRlU2xpY2UoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NGIzYmZlZjMgLy8gbWV0aG9kICJ0b3RhbEV4dHJhQXBwUGFnZXMoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4MDkxYWQyYWEgLy8gbWV0aG9kICJ0b3RhbEFwcHNDcmVhdGVkKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGI5YmYzZjk1IC8vIG1ldGhvZCAidG90YWxBcHBzT3B0ZWRJbihhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg0ZjhkMmQyYyAvLyBtZXRob2QgInRvdGFsQXNzZXRzQ3JlYXRlZChhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHgxM2Q0YTM3ZCAvLyBtZXRob2QgInRvdGFsQXNzZXRzKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGZjODcyM2RhIC8vIG1ldGhvZCAidG90YWxCb3hlcyhhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhjNGNjNWU5NSAvLyBtZXRob2QgInRvdGFsQm94Qnl0ZXMoYWRkcmVzcyl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9oYXNBc3NldCAqYWJpX3JvdXRlX2Fzc2V0QmFsYW5jZSAqYWJpX3JvdXRlX2Fzc2V0RnJvemVuICphYmlfcm91dGVfaGFzQmFsYW5jZSAqYWJpX3JvdXRlX2JhbGFuY2UgKmFiaV9yb3V0ZV9taW5CYWxhbmNlICphYmlfcm91dGVfYXV0aEFkZHIgKmFiaV9yb3V0ZV90b3RhbE51bVVpbnQgKmFiaV9yb3V0ZV90b3RhbE51bUJ5dGVTbGljZSAqYWJpX3JvdXRlX3RvdGFsRXh0cmFBcHBQYWdlcyAqYWJpX3JvdXRlX3RvdGFsQXBwc0NyZWF0ZWQgKmFiaV9yb3V0ZV90b3RhbEFwcHNPcHRlZEluICphYmlfcm91dGVfdG90YWxBc3NldHNDcmVhdGVkICphYmlfcm91dGVfdG90YWxBc3NldHMgKmFiaV9yb3V0ZV90b3RhbEJveGVzICphYmlfcm91dGVfdG90YWxCb3hCeXRlcwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADASB7MRgUgQYLMRkIjQwBhgAAAAAAAAAAAAABeAAAAAAAAAAAAAAANhoBSRUjEkSIAAIiQ4oBAIv/JHAATEhEiTYaAUkVIxJEiAACIkOKAQCL/yRwAEhEiTYaAUkVIxJEiAACIkOKAQCL/yRwAUhEiTYaAUkVIxJEiAACIkOKAQCL/3MATEhEiTYaAUkVIxJEiAACIkOKAQCL/3MASESJNhoBSRUjEkSIAAIiQ4oBAIv/cwFIRIk2GgFJFSMSRIgAAiJDigEAi/9zAkiwiTYaAUkVIxJEiAACIkOKAQCL/3MDSESJNhoBSRUjEkSIAAIiQ4oBAIv/cwRIRIk2GgFJFSMSRIgAAiJDigEAi/9zBUhEiTYaAUkVIxJEiAACIkOKAQCL/3MGSESJNhoBSRUjEkSIAAIiQ4oBAIv/cwdIRIk2GgFJFSMSRIgAAiJDigEAi/9zCEhEiTYaAUkVIxJEiAACIkOKAQCL/3MJSESJNhoBSRUjEkSIAAIiQ4oBAIv/cwpIRIk2GgFJFSMSRIgAAiJDigEAi/9zC0hEiSJDgAS4RHs2NhoAjgH/8QCABKo4rpGABGTLBmGABGjRjduABCq/Ht6ABImeR52ABCWKD8qABL7MIYOABPuB4QmABETSFeGABEs7/vOABAka0qqABLm/P5WABE+NLSyABBPUo32ABPyHI9qABMTMXpU2GgCOEP32/g/+J/4//lf+bv6F/pz+s/7K/uH++P8P/yb/Pf9UAA==", + "approval": "CiACASAxGBSBBgsxGQiNDAGqAAAAAAAAAAAAAAGcAAAAAAAAAAAAAAA2GgFJFYEgEkSIAAOBAUOKAQCL/4F7cABMSESJNhoBSRWBIBJEiAADgQFDigEAi/+Be3AASESJNhoBSRWBIBJEiAADgQFDigEAi/+Be3ABSESJNhoBSRWBIBJEiAADgQFDigEAi/9zAExIRIk2GgFJFYEgEkSIAAOBAUOKAQCL/3MASESJNhoBSRWBIBJEiAADgQFDigEAi/9zAUhEiTYaAUkVgSASRIgAA4EBQ4oBAIv/cwJIsIk2GgFJFYEgEkSIAAOBAUOKAQCL/3MDSESJNhoBSRWBIBJEiAADgQFDigEAi/9zBEhEiTYaAUkVgSASRIgAA4EBQ4oBAIv/cwVIRIk2GgFJFYEgEkSIAAOBAUOKAQCL/3MGSESJNhoBSRWBIBJEiAADgQFDigEAi/9zB0hEiTYaAUkVgSASRIgAA4EBQ4oBAIv/cwhIRIk2GgFJFYEgEkSIAAOBAUOKAQCL/3MJSESJNhoBSRWBIBJEiAADgQFDigEAi/9zCkhEiTYaAUkVgSASRIgAA4EBQ4oBAIv/cwtIRImBAUOABLhEezY2GgCOAf/wAIAEqjiukYAEZMsGYYAEaNGN24AEKr8e3oAEiZ5HnYAEJYoPyoAEvswhg4AE+4HhCYAERNIV4YAESzv+84AECRrSqoAEub8/lYAET40tLIAEE9SjfYAE/Icj2oAExMxelTYaAI4Q/dL97v4J/iT+Pv5X/nD+if6i/rv+1P7t/wb/H/84/1EA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/B.approval.teal b/tests/contracts/artifacts/B.approval.teal index c2ddd6ac2..e1c717da5 100644 --- a/tests/contracts/artifacts/B.approval.teal +++ b/tests/contracts/artifacts/B.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x61 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +27,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_a: // execute a()void callsub a - int 1 + pushint 1 return // a(): void @@ -36,7 +37,7 @@ a: // tests/contracts/inheritance.algo.ts:16 // this.aKey.value = 1337 byte 0x61 // "a" - int 1337 + pushint 1337 app_global_put retsub @@ -44,7 +45,7 @@ a: *abi_route_b: // execute b()void callsub b - int 1 + pushint 1 return // b(): void @@ -55,23 +56,23 @@ b: // assert(this.aKey.value === 1337) byte 0x61 // "a" app_global_get - int 1337 + pushint 1337 == assert // tests/contracts/inheritance.algo.ts:25 // this.bKey.value = 42 - byte 0x62 // "b" - int 42 + pushbytes 0x62 // "b" + pushint 42 app_global_put retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -79,8 +80,8 @@ b: err *call_NoOp: - method "a()void" - method "b()void" + pushbytes 0x1e7aad1c // method "a()void" + pushbytes 0x3ac90b08 // method "b()void" txna ApplicationArgs 0 match *abi_route_a *abi_route_b diff --git a/tests/contracts/artifacts/B.arc32.json b/tests/contracts/artifacts/B.arc32.json index ffe863726..2b59ae9d7 100644 --- a/tests/contracts/artifacts/B.arc32.json +++ b/tests/contracts/artifacts/B.arc32.json @@ -53,7 +53,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGEoKXZvaWQKKmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglwdXNoaW50IDEzMzcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGIoKXZvaWQKKmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBiKCk6IHZvaWQKYjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI0CgkvLyBhc3NlcnQodGhpcy5hS2V5LnZhbHVlID09PSAxMzM3KQoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXB1c2hpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJcHVzaGJ5dGVzIDB4NjIgLy8gImIiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHgzYWM5MGIwOCAvLyBtZXRob2QgImIoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/B.arc56_draft.json b/tests/contracts/artifacts/B.arc56_draft.json index 5b8066a6b..d8c221627 100644 --- a/tests/contracts/artifacts/B.arc56_draft.json +++ b/tests/contracts/artifacts/B.arc56_draft.json @@ -85,381 +85,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 20, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ] - }, - { - "teal": 13, - "source": 20, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 14, - "source": 20, - "pc": [ - 12 - ] - }, - { - "teal": 15, - "source": 20, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 16, - "source": 20, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 20, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 20, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 20, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 20, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 15, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 29, - "source": 15, - "pc": [ - 49 - ] - }, - { - "teal": 30, - "source": 15, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 15, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 38, - "source": 16, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 16, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 16, - "pc": [ - 56 - ] - }, - { - "teal": 41, - "source": 15, - "pc": [ - 57 - ] - }, - { - "teal": 46, - "source": 23, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 47, - "source": 23, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 23, - "pc": [ - 62 - ] - }, - { - "teal": 52, - "source": 23, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 56, - "source": 24, - "pc": [ - 66 - ] - }, - { - "teal": 57, - "source": 24, - "pc": [ - 67 - ] - }, - { - "teal": 58, - "source": 24, - "pc": [ - 68 - ] - }, - { - "teal": 59, - "source": 24, - "pc": [ - 69 - ] - }, - { - "teal": 60, - "source": 24, - "pc": [ - 70 - ] - }, - { - "teal": 64, - "source": 25, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 65, - "source": 25, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 66, - "source": 25, - "pc": [ - 76 - ] - }, - { - "teal": 67, - "source": 23, - "pc": [ - 77 - ] - }, - { - "teal": 70, - "source": 20, - "pc": [ - 78 - ] - }, - { - "teal": 71, - "source": 20, - "pc": [ - 79 - ] - }, - { - "teal": 74, - "source": 20, - "pc": [ - 80, - 81, - 82, - 83, - 84, - 85 - ] - }, - { - "teal": 75, - "source": 20, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 76, - "source": 20, - "pc": [ - 89, - 90, - 91, - 92 - ] - }, - { - "teal": 79, - "source": 20, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 93 - ] - }, - { - "teal": 82, - "source": 20, - "pc": [ - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 83, - "source": 20, - "pc": [ - 100, - 101, - 102, - 103, - 104, - 105 - ] - }, - { - "teal": 84, - "source": 20, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 85, - "source": 20, - "pc": [ - 109, - 110, - 111, - 112, - 113, - 114 - ] - }, - { - "teal": 88, - "source": 20, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 115 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 40 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 99 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 121 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGEoKXZvaWQKKmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglwdXNoaW50IDEzMzcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGIoKXZvaWQKKmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBiKCk6IHZvaWQKYjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI0CgkvLyBhc3NlcnQodGhpcy5hS2V5LnZhbHVlID09PSAxMzM3KQoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXB1c2hpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJcHVzaGJ5dGVzIDB4NjIgLy8gImIiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHgzYWM5MGIwOCAvLyBtZXRob2QgImIoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAbkKJgEBYTEYFIEGCzEZCI0MADEAAAAAAAAAAAAAACMAAAAAAAAAAAAAAIgAAiJDigAAKCNniYgAAiJDigAAKGQjEkSAAWKBKmeJIkOABLhEezY2GgCOAf/xAIAEHnqtHIAEOskLCDYaAI4C/7v/xwA=", + "approval": "CiYBAWExGBSBBgsxGQiNDAA8AAAAAAAAAAAAAAAuAAAAAAAAAAAAAACIAAOBAUOKAACAAWGBuQpniYgAA4EBQ4oAAIABYWSBuQoSRIABYoEqZ4mBAUOABLhEezY2GgCOAf/wAIAEHnqtHIAEOskLCDYaAI4C/7D/wQA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/B2.approval.teal b/tests/contracts/artifacts/B2.approval.teal index 5e260d6c3..898cabb76 100644 --- a/tests/contracts/artifacts/B2.approval.teal +++ b/tests/contracts/artifacts/B2.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_a: // execute a()void callsub a - int 1 + pushint 1 return // a(): void @@ -35,8 +35,8 @@ a: // tests/contracts/inheritance.algo.ts:16 // this.aKey.value = 1337 - byte 0x61 // "a" - int 1337 + pushbytes 0x61 // "a" + pushint 1337 app_global_put retsub @@ -44,7 +44,7 @@ a: *abi_route_b2: // execute b2()void callsub b2 - int 1 + pushint 1 return // b2(): void @@ -53,16 +53,16 @@ b2: // tests/contracts/inheritance.algo.ts:88 // log('b2') - byte 0x6232 // "b2" + pushbytes 0x6232 // "b2" log retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -70,8 +70,8 @@ b2: err *call_NoOp: - method "a()void" - method "b2()void" + pushbytes 0x1e7aad1c // method "a()void" + pushbytes 0x443b3319 // method "b2()void" txna ApplicationArgs 0 match *abi_route_a *abi_route_b2 diff --git a/tests/contracts/artifacts/B2.arc32.json b/tests/contracts/artifacts/B2.arc32.json index dd58d84eb..e4ec92aa8 100644 --- a/tests/contracts/artifacts/B2.arc32.json +++ b/tests/contracts/artifacts/B2.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYjIoKXZvaWQKKmFiaV9yb3V0ZV9iMjoKCS8vIGV4ZWN1dGUgYjIoKXZvaWQKCWNhbGxzdWIgYjIKCWludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglieXRlIDB4NjIzMiAvLyAiYjIiCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImIyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYjIKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCXB1c2hieXRlcyAweDYxIC8vICJhIgoJcHVzaGludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglwdXNoYnl0ZXMgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHg0NDNiMzMxOSAvLyBtZXRob2QgImIyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYjIKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/B2.arc56_draft.json b/tests/contracts/artifacts/B2.arc56_draft.json index 5df8f4299..5e4592a21 100644 --- a/tests/contracts/artifacts/B2.arc56_draft.json +++ b/tests/contracts/artifacts/B2.arc56_draft.json @@ -80,337 +80,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 86, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 86, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 86, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 86, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 86, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 86, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 86, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 86, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 86, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 15, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 15, - "pc": [ - 43 - ] - }, - { - "teal": 30, - "source": 15, - "pc": [ - 44 - ] - }, - { - "teal": 34, - "source": 15, - "pc": [ - 45, - 46, - 47 - ] - }, - { - "teal": 38, - "source": 16, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 39, - "source": 16, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 40, - "source": 16, - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 15, - "pc": [ - 55 - ] - }, - { - "teal": 46, - "source": 87, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 47, - "source": 87, - "pc": [ - 59 - ] - }, - { - "teal": 48, - "source": 87, - "pc": [ - 60 - ] - }, - { - "teal": 52, - "source": 87, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 56, - "source": 88, - "pc": [ - 64, - 65, - 66, - 67 - ] - }, - { - "teal": 57, - "source": 88, - "pc": [ - 68 - ] - }, - { - "teal": 58, - "source": 87, - "pc": [ - 69 - ] - }, - { - "teal": 61, - "source": 86, - "pc": [ - 70 - ] - }, - { - "teal": 62, - "source": 86, - "pc": [ - 71 - ] - }, - { - "teal": 65, - "source": 86, - "pc": [ - 72, - 73, - 74, - 75, - 76, - 77 - ] - }, - { - "teal": 66, - "source": 86, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 67, - "source": 86, - "pc": [ - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 70, - "source": 86, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 85 - ] - }, - { - "teal": 73, - "source": 86, - "pc": [ - 86, - 87, - 88, - 89, - 90, - 91 - ] - }, - { - "teal": 74, - "source": 86, - "pc": [ - 92, - 93, - 94, - 95, - 96, - 97 - ] - }, - { - "teal": 75, - "source": 86, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 76, - "source": 86, - "pc": [ - 101, - 102, - 103, - 104, - 105, - 106 - ] - }, - { - "teal": 79, - "source": 86, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 107 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 85 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 107 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYjIoKXZvaWQKKmFiaV9yb3V0ZV9iMjoKCS8vIGV4ZWN1dGUgYjIoKXZvaWQKCWNhbGxzdWIgYjIKCWludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglieXRlIDB4NjIzMiAvLyAiYjIiCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImEoKXZvaWQiCgltZXRob2QgImIyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYjIKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCXB1c2hieXRlcyAweDYxIC8vICJhIgoJcHVzaGludCAxMzM3CglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglwdXNoYnl0ZXMgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHg0NDNiMzMxOSAvLyBtZXRob2QgImIyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYjIKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIgAAiJDigAAgAFhgbkKZ4mIAAIiQ4oAAIACYjKwiSJDgAS4RHs2NhoAjgH/8QCABB56rRyABEQ7Mxk2GgCOAv+9/80A", + "approval": "CjEYFIEGCzEZCI0MADIAAAAAAAAAAAAAACQAAAAAAAAAAAAAAIgAA4EBQ4oAAIABYYG5CmeJiAADgQFDigAAgAJiMrCJgQFDgAS4RHs2NhoAjgH/8ACABB56rRyABEQ7Mxk2GgCOAv+6/8sA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/BasicLsig.lsig.teal b/tests/contracts/artifacts/BasicLsig.lsig.teal index 07346e83a..0b0a34777 100644 --- a/tests/contracts/artifacts/BasicLsig.lsig.teal +++ b/tests/contracts/artifacts/BasicLsig.lsig.teal @@ -1,10 +1,10 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript -// The address of this logic signature is XBBFEDSZ6KEUC76ZFV5LUYHAYYRKAXRJ7FYUSBWIBTNA4HUYLMHGKGYXPU +// The address of this logic signature is 7KLVRXGH54EKIGFYDYG7ZE7D62M4MGRW5XA25HOKTVM27YKDKGFOEEFBAU b *route_logic @@ -12,7 +12,7 @@ b *route_logic *route_logic: // execute logic()void callsub logic - int 1 + pushint 1 return // logic(): void @@ -21,6 +21,6 @@ logic: // tests/contracts/lsig.algo.ts:6 // assert(true) - int 1 + pushint 1 assert retsub \ No newline at end of file diff --git a/tests/contracts/artifacts/BigComment.approval.teal b/tests/contracts/artifacts/BigComment.approval.teal index 6dc96a636..266727fae 100644 --- a/tests/contracts/artifacts/BigComment.approval.teal +++ b/tests/contracts/artifacts/BigComment.approval.teal @@ -4,7 +4,7 @@ txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -14,7 +14,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM err *abi_route_loremIpsum: - byte 0x151f7c75 + pushbytes 0x151f7c75 callsub loremIpsum dup @@ -25,28 +25,28 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return loremIpsum: proto 0 1 - byte 0x4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20656975736d6f642074656d706f7220696e6369646964756e74207574206c61626f726520657420646f6c6f7265206d61676e6120616c697175612e20557420656e696d206164206d696e696d2076656e69616d2c2071756973206e6f737472756420657865726369746174696f6e20756c6c616d636f206c61626f726973206e69736920757420616c697175697020657820656120636f6d6d6f646f20636f6e7365717561742e2044756973206175746520697275726520646f6c6f7220696e20726570726568656e646572697420696e20766f6c7570746174652076656c697420657373652063696c6c756d20646f6c6f726520657520667567696174206e756c6c612070617269617475722e204578636570746575722073696e74206f6363616563617420637570696461746174206e6f6e2070726f6964656e742c2073756e7420696e2063756c706120717569206f666669636961206465736572756e74206d6f6c6c697420616e696d20696420657374206c61626f72756d2e // "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + pushbytes 0x4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20656975736d6f642074656d706f7220696e6369646964756e74207574206c61626f726520657420646f6c6f7265206d61676e6120616c697175612e20557420656e696d206164206d696e696d2076656e69616d2c2071756973206e6f737472756420657865726369746174696f6e20756c6c616d636f206c61626f726973206e69736920757420616c697175697020657820656120636f6d6d6f646f20636f6e7365717561742e2044756973206175746520697275726520646f6c6f7220696e20726570726568656e646572697420696e20766f6c7570746174652076656c697420657373652063696c6c756d20646f6c6f726520657520667567696174206e756c6c612070617269617475722e204578636570746575722073696e74206f6363616563617420637570696461746174206e6f6e2070726f6964656e742c2073756e7420696e2063756c706120717569206f666669636961206465736572756e74206d6f6c6c697420616e696d20696420657374206c61626f72756d2e // "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication err *call_NoOp: - method "loremIpsum()string" + pushbytes 0x81162fac // method "loremIpsum()string" txna ApplicationArgs 0 match *abi_route_loremIpsum diff --git a/tests/contracts/artifacts/BigComment.arc32.json b/tests/contracts/artifacts/BigComment.arc32.json index 648d4d71a..774805517 100644 --- a/tests/contracts/artifacts/BigComment.arc32.json +++ b/tests/contracts/artifacts/BigComment.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCgoKCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgllcnIKCiphYmlfcm91dGVfbG9yZW1JcHN1bToKCWJ5dGUgMHgxNTFmN2M3NQoKCWNhbGxzdWIgbG9yZW1JcHN1bQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgpsb3JlbUlwc3VtOgoJcHJvdG8gMCAxCgoJYnl0ZSAweDRjNmY3MjY1NmQyMDY5NzA3Mzc1NmQyMDY0NmY2YzZmNzIyMDczNjk3NDIwNjE2ZDY1NzQyYzIwNjM2ZjZlNzM2NTYzNzQ2NTc0NzU3MjIwNjE2NDY5NzA2OTczNjM2OTZlNjcyMDY1NmM2OTc0MmMyMDczNjU2NDIwNjQ2ZjIwNjU2OTc1NzM2ZDZmNjQyMDc0NjU2ZDcwNmY3MjIwNjk2ZTYzNjk2NDY5NjQ3NTZlNzQyMDc1NzQyMDZjNjE2MjZmNzI2NTIwNjU3NDIwNjQ2ZjZjNmY3MjY1MjA2ZDYxNjc2ZTYxMjA2MTZjNjk3MTc1NjEyZTIwNTU3NDIwNjU2ZTY5NmQyMDYxNjQyMDZkNjk2ZTY5NmQyMDc2NjU2ZTY5NjE2ZDJjMjA3MTc1Njk3MzIwNmU2ZjczNzQ3Mjc1NjQyMDY1Nzg2NTcyNjM2OTc0NjE3NDY5NmY2ZTIwNzU2YzZjNjE2ZDYzNmYyMDZjNjE2MjZmNzI2OTczMjA2ZTY5NzM2OTIwNzU3NDIwNjE2YzY5NzE3NTY5NzAyMDY1NzgyMDY1NjEyMDYzNmY2ZDZkNmY2NDZmMjA2MzZmNmU3MzY1NzE3NTYxNzQyZTIwNDQ3NTY5NzMyMDYxNzU3NDY1MjA2OTcyNzU3MjY1MjA2NDZmNmM2ZjcyMjA2OTZlMjA3MjY1NzA3MjY1Njg2NTZlNjQ2NTcyNjk3NDIwNjk2ZTIwNzY2ZjZjNzU3MDc0NjE3NDY1MjA3NjY1NmM2OTc0MjA2NTczNzM2NTIwNjM2OTZjNmM3NTZkMjA2NDZmNmM2ZjcyNjUyMDY1NzUyMDY2NzU2NzY5NjE3NDIwNmU3NTZjNmM2MTIwNzA2MTcyNjk2MTc0NzU3MjJlMjA0NTc4NjM2NTcwNzQ2NTc1NzIyMDczNjk2ZTc0MjA2ZjYzNjM2MTY1NjM2MTc0MjA2Mzc1NzA2OTY0NjE3NDYxNzQyMDZlNmY2ZTIwNzA3MjZmNjk2NDY1NmU3NDJjMjA3Mzc1NmU3NDIwNjk2ZTIwNjM3NTZjNzA2MTIwNzE3NTY5MjA2ZjY2NjY2OTYzNjk2MTIwNjQ2NTczNjU3Mjc1NmU3NDIwNmQ2ZjZjNmM2OTc0MjA2MTZlNjk2ZDIwNjk2NDIwNjU3Mzc0MjA2YzYxNjI2ZjcyNzU2ZDJlIC8vICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImxvcmVtSXBzdW0oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbG9yZW1JcHN1bQoKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCgoKCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgoqYWJpX3JvdXRlX2xvcmVtSXBzdW06CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCWNhbGxzdWIgbG9yZW1JcHN1bQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKbG9yZW1JcHN1bToKCXByb3RvIDAgMQoKCXB1c2hieXRlcyAweDRjNmY3MjY1NmQyMDY5NzA3Mzc1NmQyMDY0NmY2YzZmNzIyMDczNjk3NDIwNjE2ZDY1NzQyYzIwNjM2ZjZlNzM2NTYzNzQ2NTc0NzU3MjIwNjE2NDY5NzA2OTczNjM2OTZlNjcyMDY1NmM2OTc0MmMyMDczNjU2NDIwNjQ2ZjIwNjU2OTc1NzM2ZDZmNjQyMDc0NjU2ZDcwNmY3MjIwNjk2ZTYzNjk2NDY5NjQ3NTZlNzQyMDc1NzQyMDZjNjE2MjZmNzI2NTIwNjU3NDIwNjQ2ZjZjNmY3MjY1MjA2ZDYxNjc2ZTYxMjA2MTZjNjk3MTc1NjEyZTIwNTU3NDIwNjU2ZTY5NmQyMDYxNjQyMDZkNjk2ZTY5NmQyMDc2NjU2ZTY5NjE2ZDJjMjA3MTc1Njk3MzIwNmU2ZjczNzQ3Mjc1NjQyMDY1Nzg2NTcyNjM2OTc0NjE3NDY5NmY2ZTIwNzU2YzZjNjE2ZDYzNmYyMDZjNjE2MjZmNzI2OTczMjA2ZTY5NzM2OTIwNzU3NDIwNjE2YzY5NzE3NTY5NzAyMDY1NzgyMDY1NjEyMDYzNmY2ZDZkNmY2NDZmMjA2MzZmNmU3MzY1NzE3NTYxNzQyZTIwNDQ3NTY5NzMyMDYxNzU3NDY1MjA2OTcyNzU3MjY1MjA2NDZmNmM2ZjcyMjA2OTZlMjA3MjY1NzA3MjY1Njg2NTZlNjQ2NTcyNjk3NDIwNjk2ZTIwNzY2ZjZjNzU3MDc0NjE3NDY1MjA3NjY1NmM2OTc0MjA2NTczNzM2NTIwNjM2OTZjNmM3NTZkMjA2NDZmNmM2ZjcyNjUyMDY1NzUyMDY2NzU2NzY5NjE3NDIwNmU3NTZjNmM2MTIwNzA2MTcyNjk2MTc0NzU3MjJlMjA0NTc4NjM2NTcwNzQ2NTc1NzIyMDczNjk2ZTc0MjA2ZjYzNjM2MTY1NjM2MTc0MjA2Mzc1NzA2OTY0NjE3NDYxNzQyMDZlNmY2ZTIwNzA3MjZmNjk2NDY1NmU3NDJjMjA3Mzc1NmU3NDIwNjk2ZTIwNjM3NTZjNzA2MTIwNzE3NTY5MjA2ZjY2NjY2OTYzNjk2MTIwNjQ2NTczNjU3Mjc1NmU3NDIwNmQ2ZjZjNmM2OTc0MjA2MTZlNjk2ZDIwNjk2NDIwNjU3Mzc0MjA2YzYxNjI2ZjcyNzU2ZDJlIC8vICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ODExNjJmYWMgLy8gbWV0aG9kICJsb3JlbUlwc3VtKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2xvcmVtSXBzdW0KCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEx" }, "contract": { diff --git a/tests/contracts/artifacts/BigComment.arc56_draft.json b/tests/contracts/artifacts/BigComment.arc56_draft.json index cb64efb64..08611cf7f 100644 --- a/tests/contracts/artifacts/BigComment.arc56_draft.json +++ b/tests/contracts/artifacts/BigComment.arc56_draft.json @@ -61,649 +61,36 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 3, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 3 - }, - { - "teal": 14, - "source": 3, - "pc": [ - 39 - ] - }, - { - "teal": 15, - "source": 3 - }, - { - "teal": 16, - "source": 3 - }, - { - "teal": 17, - "source": 3, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 18, - "source": 3 - }, - { - "teal": 19, - "source": 3, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 23, - "source": 3, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 28, - "source": 6, - "pc": [ - 59 - ] - }, - { - "teal": 31, - "source": 6 - }, - { - "teal": 32, - "source": 6, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 33, - "source": 6 - }, - { - "teal": 34, - "source": 6, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343, - 344, - 345, - 346, - 347, - 348, - 349, - 350, - 351, - 352, - 353, - 354, - 355, - 356, - 357, - 358, - 359, - 360, - 361, - 362, - 363, - 364, - 365, - 366, - 367, - 368, - 369, - 370, - 371, - 372, - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396, - 397, - 398, - 399, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 418, - 419, - 420, - 421, - 422, - 423, - 424, - 425, - 426, - 427, - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437, - 438, - 439, - 440, - 441, - 442, - 443, - 444, - 445, - 446, - 447, - 448, - 449, - 450, - 451, - 452, - 453, - 454, - 455, - 456, - 457, - 458, - 459, - 460, - 461, - 462, - 463, - 464, - 465, - 466, - 467, - 468, - 469, - 470, - 471, - 472, - 473, - 474, - 475, - 476, - 477, - 478, - 479, - 480, - 481, - 482, - 483, - 484, - 485, - 486, - 487, - 488, - 489, - 490, - 491, - 492, - 493, - 494, - 495, - 496, - 497, - 498, - 499, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 509, - 510, - 511 - ] - }, - { - "teal": 35, - "source": 6, - "pc": [ - 512 - ] - }, - { - "teal": 36, - "source": 6 - }, - { - "teal": 37, - "source": 6 - }, - { - "teal": 38, - "source": 6, - "pc": [ - 513 - ] - }, - { - "teal": 39, - "source": 6, - "pc": [ - 514 - ] - }, - { - "teal": 40, - "source": 6 - }, - { - "teal": 41, - "source": 6 - }, - { - "teal": 45, - "source": 6 - }, - { - "teal": 1376, - "source": 1334 - }, - { - "teal": 1377, - "source": 6 - }, - { - "teal": 1380, - "source": 3 - }, - { - "teal": 1381, - "source": 3 - }, - { - "teal": 1384, - "source": 3 - }, - { - "teal": 1385, - "source": 3 - }, - { - "teal": 1386, - "source": 3 - }, - { - "teal": 1389, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for create NoOp" - }, - { - "teal": 1392, - "source": 3 - }, - { - "teal": 1393, - "source": 3 - }, - { - "teal": 1394, - "source": 3 - }, - { - "teal": 1397, - "source": 3, - "errorMessage": "this contract does not implement the given ABI method for call NoOp" - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 49, + 50, + 51 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCgoKCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgllcnIKCiphYmlfcm91dGVfbG9yZW1JcHN1bToKCWJ5dGUgMHgxNTFmN2M3NQoKCWNhbGxzdWIgbG9yZW1JcHN1bQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgpsb3JlbUlwc3VtOgoJcHJvdG8gMCAxCgoJYnl0ZSAweDRjNmY3MjY1NmQyMDY5NzA3Mzc1NmQyMDY0NmY2YzZmNzIyMDczNjk3NDIwNjE2ZDY1NzQyYzIwNjM2ZjZlNzM2NTYzNzQ2NTc0NzU3MjIwNjE2NDY5NzA2OTczNjM2OTZlNjcyMDY1NmM2OTc0MmMyMDczNjU2NDIwNjQ2ZjIwNjU2OTc1NzM2ZDZmNjQyMDc0NjU2ZDcwNmY3MjIwNjk2ZTYzNjk2NDY5NjQ3NTZlNzQyMDc1NzQyMDZjNjE2MjZmNzI2NTIwNjU3NDIwNjQ2ZjZjNmY3MjY1MjA2ZDYxNjc2ZTYxMjA2MTZjNjk3MTc1NjEyZTIwNTU3NDIwNjU2ZTY5NmQyMDYxNjQyMDZkNjk2ZTY5NmQyMDc2NjU2ZTY5NjE2ZDJjMjA3MTc1Njk3MzIwNmU2ZjczNzQ3Mjc1NjQyMDY1Nzg2NTcyNjM2OTc0NjE3NDY5NmY2ZTIwNzU2YzZjNjE2ZDYzNmYyMDZjNjE2MjZmNzI2OTczMjA2ZTY5NzM2OTIwNzU3NDIwNjE2YzY5NzE3NTY5NzAyMDY1NzgyMDY1NjEyMDYzNmY2ZDZkNmY2NDZmMjA2MzZmNmU3MzY1NzE3NTYxNzQyZTIwNDQ3NTY5NzMyMDYxNzU3NDY1MjA2OTcyNzU3MjY1MjA2NDZmNmM2ZjcyMjA2OTZlMjA3MjY1NzA3MjY1Njg2NTZlNjQ2NTcyNjk3NDIwNjk2ZTIwNzY2ZjZjNzU3MDc0NjE3NDY1MjA3NjY1NmM2OTc0MjA2NTczNzM2NTIwNjM2OTZjNmM3NTZkMjA2NDZmNmM2ZjcyNjUyMDY1NzUyMDY2NzU2NzY5NjE3NDIwNmU3NTZjNmM2MTIwNzA2MTcyNjk2MTc0NzU3MjJlMjA0NTc4NjM2NTcwNzQ2NTc1NzIyMDczNjk2ZTc0MjA2ZjYzNjM2MTY1NjM2MTc0MjA2Mzc1NzA2OTY0NjE3NDYxNzQyMDZlNmY2ZTIwNzA3MjZmNjk2NDY1NmU3NDJjMjA3Mzc1NmU3NDIwNjk2ZTIwNjM3NTZjNzA2MTIwNzE3NTY5MjA2ZjY2NjY2OTYzNjk2MTIwNjQ2NTczNjU3Mjc1NmU3NDIwNmQ2ZjZjNmM2OTc0MjA2MTZlNjk2ZDIwNjk2NDIwNjU3Mzc0MjA2YzYxNjI2ZjcyNzU2ZDJlIC8vICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImxvcmVtSXBzdW0oKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbG9yZW1JcHN1bQoKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCgoKCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJZXJyCgoqYWJpX3JvdXRlX2xvcmVtSXBzdW06CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCWNhbGxzdWIgbG9yZW1JcHN1bQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKbG9yZW1JcHN1bToKCXByb3RvIDAgMQoKCXB1c2hieXRlcyAweDRjNmY3MjY1NmQyMDY5NzA3Mzc1NmQyMDY0NmY2YzZmNzIyMDczNjk3NDIwNjE2ZDY1NzQyYzIwNjM2ZjZlNzM2NTYzNzQ2NTc0NzU3MjIwNjE2NDY5NzA2OTczNjM2OTZlNjcyMDY1NmM2OTc0MmMyMDczNjU2NDIwNjQ2ZjIwNjU2OTc1NzM2ZDZmNjQyMDc0NjU2ZDcwNmY3MjIwNjk2ZTYzNjk2NDY5NjQ3NTZlNzQyMDc1NzQyMDZjNjE2MjZmNzI2NTIwNjU3NDIwNjQ2ZjZjNmY3MjY1MjA2ZDYxNjc2ZTYxMjA2MTZjNjk3MTc1NjEyZTIwNTU3NDIwNjU2ZTY5NmQyMDYxNjQyMDZkNjk2ZTY5NmQyMDc2NjU2ZTY5NjE2ZDJjMjA3MTc1Njk3MzIwNmU2ZjczNzQ3Mjc1NjQyMDY1Nzg2NTcyNjM2OTc0NjE3NDY5NmY2ZTIwNzU2YzZjNjE2ZDYzNmYyMDZjNjE2MjZmNzI2OTczMjA2ZTY5NzM2OTIwNzU3NDIwNjE2YzY5NzE3NTY5NzAyMDY1NzgyMDY1NjEyMDYzNmY2ZDZkNmY2NDZmMjA2MzZmNmU3MzY1NzE3NTYxNzQyZTIwNDQ3NTY5NzMyMDYxNzU3NDY1MjA2OTcyNzU3MjY1MjA2NDZmNmM2ZjcyMjA2OTZlMjA3MjY1NzA3MjY1Njg2NTZlNjQ2NTcyNjk3NDIwNjk2ZTIwNzY2ZjZjNzU3MDc0NjE3NDY1MjA3NjY1NmM2OTc0MjA2NTczNzM2NTIwNjM2OTZjNmM3NTZkMjA2NDZmNmM2ZjcyNjUyMDY1NzUyMDY2NzU2NzY5NjE3NDIwNmU3NTZjNmM2MTIwNzA2MTcyNjk2MTc0NzU3MjJlMjA0NTc4NjM2NTcwNzQ2NTc1NzIyMDczNjk2ZTc0MjA2ZjYzNjM2MTY1NjM2MTc0MjA2Mzc1NzA2OTY0NjE3NDYxNzQyMDZlNmY2ZTIwNzA3MjZmNjk2NDY1NmU3NDJjMjA3Mzc1NmU3NDIwNjk2ZTIwNjM3NTZjNzA2MTIwNzE3NTY5MjA2ZjY2NjY2OTYzNjk2MTIwNjQ2NTczNjU3Mjc1NmU3NDIwNmQ2ZjZjNmM2OTc0MjA2MTZlNjk2ZDIwNjk2NDIwNjU3Mzc0MjA2YzYxNjI2ZjcyNzU2ZDJlIC8vICJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uIgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ODExNjJmYWMgLy8gbWV0aG9kICJsb3JlbUlwc3VtKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2xvcmVtSXBzdW0KCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEx" }, "byteCode": { - "approval": "CyABATEYFIEGCzEZCI0MAeoAAAAAAAAAAAAAAdwAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYC9A0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LiBEdWlzIGF1dGUgaXJ1cmUgZG9sb3IgaW4gcmVwcmVoZW5kZXJpdCBpbiB2b2x1cHRhdGUgdmVsaXQgZXNzZSBjaWxsdW0gZG9sb3JlIGV1IGZ1Z2lhdCBudWxsYSBwYXJpYXR1ci4gRXhjZXB0ZXVyIHNpbnQgb2NjYWVjYXQgY3VwaWRhdGF0IG5vbiBwcm9pZGVudCwgc3VudCBpbiBjdWxwYSBxdWkgb2ZmaWNpYSBkZXNlcnVudCBtb2xsaXQgYW5pbSBpZCBlc3QgbGFib3J1bS6JIkOABLhEezY2GgCOAf/xAIAEgRYvrDYaAI4B/goA", + "approval": "CzEYFIEGCzEZCI0MAewAAAAAAAAAAAAAAd4AAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGAvQNMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uiYEBQ4AEuER7NjYaAI4B//AAgASBFi+sNhoAjgH+CAA=", "clear": "Cw==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/BinaryTest.approval.teal b/tests/contracts/artifacts/BinaryTest.approval.teal index 22a3fddb7..b518a492a 100644 --- a/tests/contracts/artifacts/BinaryTest.approval.teal +++ b/tests/contracts/artifacts/BinaryTest.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +intcblock 1 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -265,7 +266,7 @@ combo: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -273,14 +274,14 @@ combo: err *call_NoOp: - method "and(uint64,uint64)void" - method "or(uint64,uint64)void" - method "equal(uint64,uint64)void" - method "notEqual(uint64,uint64)void" - method "bitAnd(uint64,uint64)void" - method "bitOr(uint64,uint64)void" - method "bitXor(uint64,uint64)void" - method "combo(uint64,uint64,uint64)void" + pushbytes 0x6fd13a13 // method "and(uint64,uint64)void" + pushbytes 0x700aa887 // method "or(uint64,uint64)void" + pushbytes 0x723c87ef // method "equal(uint64,uint64)void" + pushbytes 0xe7ffb9d3 // method "notEqual(uint64,uint64)void" + pushbytes 0x9285188e // method "bitAnd(uint64,uint64)void" + pushbytes 0x592dc73f // method "bitOr(uint64,uint64)void" + pushbytes 0x6d46504a // method "bitXor(uint64,uint64)void" + pushbytes 0x74dc5150 // method "combo(uint64,uint64,uint64)void" txna ApplicationArgs 0 match *abi_route_and *abi_route_or *abi_route_equal *abi_route_notEqual *abi_route_bitAnd *abi_route_bitOr *abi_route_bitXor *abi_route_combo diff --git a/tests/contracts/artifacts/BinaryTest.arc32.json b/tests/contracts/artifacts/BinaryTest.arc32.json index 09461d74b..d5c2d03a5 100644 --- a/tests/contracts/artifacts/BinaryTest.arc32.json +++ b/tests/contracts/artifacts/BinaryTest.arc32.json @@ -74,7 +74,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhbmQodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYW5kOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhbmQodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGFuZAoJaW50IDEKCXJldHVybgoKLy8gYW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZAphbmQ6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6NgoJLy8gYXNzZXJ0KGEgJiYgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCXJldHN1YgoKLy8gb3IodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfb3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG9yKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvcgoJaW50IDEKCXJldHVybgoKLy8gb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCm9yOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjEwCgkvLyBhc3NlcnQoYSB8fCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgl8fAoKKnNraXBfb3IwOgoJYXNzZXJ0CglyZXRzdWIKCi8vIGVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2VxdWFsOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlcXVhbCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZXF1YWwKCWludCAxCglyZXR1cm4KCi8vIGVxdWFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZAplcXVhbDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxNAoJLy8gYXNzZXJ0KGEgPT09IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIG5vdEVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX25vdEVxdWFsOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgbm90RXF1YWwKCWludCAxCglyZXR1cm4KCi8vIG5vdEVxdWFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApub3RFcXVhbDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxOAoJLy8gYXNzZXJ0KGEgIT09IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkhPQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRBbmQ6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0QW5kCglpbnQgMQoJcmV0dXJuCgovLyBiaXRBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdEFuZDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEgJiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2JpdE9yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRPcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0T3IKCWludCAxCglyZXR1cm4KCi8vIGJpdE9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRPcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyNgoJLy8gYXNzZXJ0KGEgfCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdFhvcih1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRYb3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdFhvcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0WG9yCglpbnQgMQoJcmV0dXJuCgovLyBiaXRYb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdFhvcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czozMAoJLy8gYXNzZXJ0KGEgXiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJXgoJYXNzZXJ0CglyZXRzdWIKCi8vIGNvbWJvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jb21ibzoKCS8vIGM6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjb21ibwoJaW50IDEKCXJldHVybgoKLy8gY29tYm8oYTogdWludDY0LCBiOiB1aW50NjQsIGM6IHVpbnQ2NCk6IHZvaWQKY29tYm86Cglwcm90byAzIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzQKCS8vIGFzc2VydChhIHx8IChiICYmIGMpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMyAvLyBjOiB1aW50NjQKCSYmCgoqc2tpcF9hbmQxOgoJfHwKCipza2lwX29yMToKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYW5kKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAib3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJlcXVhbCh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgIm5vdEVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0QW5kKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0T3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJjb21ibyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hbmQgKmFiaV9yb3V0ZV9vciAqYWJpX3JvdXRlX2VxdWFsICphYmlfcm91dGVfbm90RXF1YWwgKmFiaV9yb3V0ZV9iaXRBbmQgKmFiaV9yb3V0ZV9iaXRPciAqYWJpX3JvdXRlX2JpdFhvciAqYWJpX3JvdXRlX2NvbWJvCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYW5kKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2FuZDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYW5kKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBhbmQKCWludCAxCglyZXR1cm4KCi8vIGFuZChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKYW5kOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjYKCS8vIGFzc2VydChhICYmIGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSYmCgoqc2tpcF9hbmQwOgoJYXNzZXJ0CglyZXRzdWIKCi8vIG9yKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX29yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgb3IKCWludCAxCglyZXR1cm4KCi8vIG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApvcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxMAoJLy8gYXNzZXJ0KGEgfHwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfHwKCipza2lwX29yMDoKCWFzc2VydAoJcmV0c3ViCgovLyBlcXVhbCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9lcXVhbDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXF1YWwodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGVxdWFsCglpbnQgMQoJcmV0dXJuCgovLyBlcXVhbChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKZXF1YWw6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MTQKCS8vIGFzc2VydChhID09PSBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9ub3RFcXVhbDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbm90RXF1YWwodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG5vdEVxdWFsCglpbnQgMQoJcmV0dXJuCgovLyBub3RFcXVhbChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKbm90RXF1YWw6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MTgKCS8vIGFzc2VydChhICE9PSBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJIT0KCWFzc2VydAoJcmV0c3ViCgovLyBiaXRBbmQodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYml0QW5kOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRBbmQodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdEFuZAoJaW50IDEKCXJldHVybgoKLy8gYml0QW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRBbmQ6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MjIKCS8vIGFzc2VydChhICYgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSYKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRPcih1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRPcjoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0T3IodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdE9yCglpbnQgMQoJcmV0dXJuCgovLyBiaXRPcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKYml0T3I6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MjYKCS8vIGFzc2VydChhIHwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCXwKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYml0WG9yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdFhvcgoJaW50IDEKCXJldHVybgoKLy8gYml0WG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRYb3I6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzAKCS8vIGFzc2VydChhIF4gYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCV4KCWFzc2VydAoJcmV0c3ViCgovLyBjb21ibyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY29tYm86CgkvLyBjOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNvbWJvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY29tYm8KCWludCAxCglyZXR1cm4KCi8vIGNvbWJvKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiB1aW50NjQpOiB2b2lkCmNvbWJvOgoJcHJvdG8gMyAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjM0CgkvLyBhc3NlcnQoYSB8fCAoYiAmJiBjKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYm56ICpza2lwX29yMQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZHVwCglieiAqc2tpcF9hbmQxCglmcmFtZV9kaWcgLTMgLy8gYzogdWludDY0CgkmJgoKKnNraXBfYW5kMToKCXx8Cgoqc2tpcF9vcjE6Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2ZmQxM2ExMyAvLyBtZXRob2QgImFuZCh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg3MDBhYTg4NyAvLyBtZXRob2QgIm9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDcyM2M4N2VmIC8vIG1ldGhvZCAiZXF1YWwodWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTdmZmI5ZDMgLy8gbWV0aG9kICJub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg5Mjg1MTg4ZSAvLyBtZXRob2QgImJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg1OTJkYzczZiAvLyBtZXRob2QgImJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDZkNDY1MDRhIC8vIG1ldGhvZCAiYml0WG9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDc0ZGM1MTUwIC8vIG1ldGhvZCAiY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYW5kICphYmlfcm91dGVfb3IgKmFiaV9yb3V0ZV9lcXVhbCAqYWJpX3JvdXRlX25vdEVxdWFsICphYmlfcm91dGVfYml0QW5kICphYmlfcm91dGVfYml0T3IgKmFiaV9yb3V0ZV9iaXRYb3IgKmFiaV9yb3V0ZV9jb21ibwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/BinaryTest.arc56_draft.json b/tests/contracts/artifacts/BinaryTest.arc56_draft.json index 5b39d1609..620de09f5 100644 --- a/tests/contracts/artifacts/BinaryTest.arc56_draft.json +++ b/tests/contracts/artifacts/BinaryTest.arc56_draft.json @@ -228,1204 +228,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 5, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 5, - "pc": [ - 43 - ] - }, - { - "teal": 32, - "source": 5, - "pc": [ - 44, - 45, - 46 - ] - }, - { - "teal": 33, - "source": 5, - "pc": [ - 47 - ] - }, - { - "teal": 36, - "source": 5, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 37, - "source": 5, - "pc": [ - 51 - ] - }, - { - "teal": 38, - "source": 5, - "pc": [ - 52 - ] - }, - { - "teal": 42, - "source": 5, - "pc": [ - 53, - 54, - 55 - ] - }, - { - "teal": 46, - "source": 6, - "pc": [ - 56, - 57 - ] - }, - { - "teal": 47, - "source": 6, - "pc": [ - 58 - ] - }, - { - "teal": 48, - "source": 6, - "pc": [ - 59, - 60, - 61 - ] - }, - { - "teal": 49, - "source": 6, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 50, - "source": 6, - "pc": [ - 64 - ] - }, - { - "teal": 53, - "source": 6, - "pc": [ - 65 - ] - }, - { - "teal": 54, - "source": 5, - "pc": [ - 66 - ] - }, - { - "teal": 59, - "source": 9, - "pc": [ - 67, - 68, - 69 - ] - }, - { - "teal": 60, - "source": 9, - "pc": [ - 70 - ] - }, - { - "teal": 63, - "source": 9, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 64, - "source": 9, - "pc": [ - 74 - ] - }, - { - "teal": 67, - "source": 9, - "pc": [ - 75, - 76, - 77 - ] - }, - { - "teal": 68, - "source": 9, - "pc": [ - 78 - ] - }, - { - "teal": 69, - "source": 9, - "pc": [ - 79 - ] - }, - { - "teal": 73, - "source": 9, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 77, - "source": 10, - "pc": [ - 83, - 84 - ] - }, - { - "teal": 78, - "source": 10, - "pc": [ - 85 - ] - }, - { - "teal": 79, - "source": 10, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 80, - "source": 10, - "pc": [ - 89, - 90 - ] - }, - { - "teal": 81, - "source": 10, - "pc": [ - 91 - ] - }, - { - "teal": 84, - "source": 10, - "pc": [ - 92 - ] - }, - { - "teal": 85, - "source": 9, - "pc": [ - 93 - ] - }, - { - "teal": 90, - "source": 13, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 91, - "source": 13, - "pc": [ - 97 - ] - }, - { - "teal": 94, - "source": 13, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 95, - "source": 13, - "pc": [ - 101 - ] - }, - { - "teal": 98, - "source": 13, - "pc": [ - 102, - 103, - 104 - ] - }, - { - "teal": 99, - "source": 13, - "pc": [ - 105 - ] - }, - { - "teal": 100, - "source": 13, - "pc": [ - 106 - ] - }, - { - "teal": 104, - "source": 13, - "pc": [ - 107, - 108, - 109 - ] - }, - { - "teal": 108, - "source": 14, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 109, - "source": 14, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 110, - "source": 14, - "pc": [ - 114 - ] - }, - { - "teal": 111, - "source": 14, - "pc": [ - 115 - ] - }, - { - "teal": 112, - "source": 13, - "pc": [ - 116 - ] - }, - { - "teal": 117, - "source": 17, - "pc": [ - 117, - 118, - 119 - ] - }, - { - "teal": 118, - "source": 17, - "pc": [ - 120 - ] - }, - { - "teal": 121, - "source": 17, - "pc": [ - 121, - 122, - 123 - ] - }, - { - "teal": 122, - "source": 17, - "pc": [ - 124 - ] - }, - { - "teal": 125, - "source": 17, - "pc": [ - 125, - 126, - 127 - ] - }, - { - "teal": 126, - "source": 17, - "pc": [ - 128 - ] - }, - { - "teal": 127, - "source": 17, - "pc": [ - 129 - ] - }, - { - "teal": 131, - "source": 17, - "pc": [ - 130, - 131, - 132 - ] - }, - { - "teal": 135, - "source": 18, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 136, - "source": 18, - "pc": [ - 135, - 136 - ] - }, - { - "teal": 137, - "source": 18, - "pc": [ - 137 - ] - }, - { - "teal": 138, - "source": 18, - "pc": [ - 138 - ] - }, - { - "teal": 139, - "source": 17, - "pc": [ - 139 - ] - }, - { - "teal": 144, - "source": 21, - "pc": [ - 140, - 141, - 142 - ] - }, - { - "teal": 145, - "source": 21, - "pc": [ - 143 - ] - }, - { - "teal": 148, - "source": 21, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 149, - "source": 21, - "pc": [ - 147 - ] - }, - { - "teal": 152, - "source": 21, - "pc": [ - 148, - 149, - 150 - ] - }, - { - "teal": 153, - "source": 21, - "pc": [ - 151 - ] - }, - { - "teal": 154, - "source": 21, - "pc": [ - 152 - ] - }, - { - "teal": 158, - "source": 21, - "pc": [ - 153, - 154, - 155 - ] - }, - { - "teal": 162, - "source": 22, - "pc": [ - 156, - 157 - ] - }, - { - "teal": 163, - "source": 22, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 164, - "source": 22, - "pc": [ - 160 - ] - }, - { - "teal": 165, - "source": 22, - "pc": [ - 161 - ] - }, - { - "teal": 166, - "source": 21, - "pc": [ - 162 - ] - }, - { - "teal": 171, - "source": 25, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 172, - "source": 25, - "pc": [ - 166 - ] - }, - { - "teal": 175, - "source": 25, - "pc": [ - 167, - 168, - 169 - ] - }, - { - "teal": 176, - "source": 25, - "pc": [ - 170 - ] - }, - { - "teal": 179, - "source": 25, - "pc": [ - 171, - 172, - 173 - ] - }, - { - "teal": 180, - "source": 25, - "pc": [ - 174 - ] - }, - { - "teal": 181, - "source": 25, - "pc": [ - 175 - ] - }, - { - "teal": 185, - "source": 25, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 189, - "source": 26, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 190, - "source": 26, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 191, - "source": 26, - "pc": [ - 183 - ] - }, - { - "teal": 192, - "source": 26, - "pc": [ - 184 - ] - }, - { - "teal": 193, - "source": 25, - "pc": [ - 185 - ] - }, - { - "teal": 198, - "source": 29, - "pc": [ - 186, - 187, - 188 - ] - }, - { - "teal": 199, - "source": 29, - "pc": [ - 189 - ] - }, - { - "teal": 202, - "source": 29, - "pc": [ - 190, - 191, - 192 - ] - }, - { - "teal": 203, - "source": 29, - "pc": [ - 193 - ] - }, - { - "teal": 206, - "source": 29, - "pc": [ - 194, - 195, - 196 - ] - }, - { - "teal": 207, - "source": 29, - "pc": [ - 197 - ] - }, - { - "teal": 208, - "source": 29, - "pc": [ - 198 - ] - }, - { - "teal": 212, - "source": 29, - "pc": [ - 199, - 200, - 201 - ] - }, - { - "teal": 216, - "source": 30, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 217, - "source": 30, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 218, - "source": 30, - "pc": [ - 206 - ] - }, - { - "teal": 219, - "source": 30, - "pc": [ - 207 - ] - }, - { - "teal": 220, - "source": 29, - "pc": [ - 208 - ] - }, - { - "teal": 225, - "source": 33, - "pc": [ - 209, - 210, - 211 - ] - }, - { - "teal": 226, - "source": 33, - "pc": [ - 212 - ] - }, - { - "teal": 229, - "source": 33, - "pc": [ - 213, - 214, - 215 - ] - }, - { - "teal": 230, - "source": 33, - "pc": [ - 216 - ] - }, - { - "teal": 233, - "source": 33, - "pc": [ - 217, - 218, - 219 - ] - }, - { - "teal": 234, - "source": 33, - "pc": [ - 220 - ] - }, - { - "teal": 237, - "source": 33, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 238, - "source": 33, - "pc": [ - 224 - ] - }, - { - "teal": 239, - "source": 33, - "pc": [ - 225 - ] - }, - { - "teal": 243, - "source": 33, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 247, - "source": 34, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 248, - "source": 34, - "pc": [ - 231 - ] - }, - { - "teal": 249, - "source": 34, - "pc": [ - 232, - 233, - 234 - ] - }, - { - "teal": 250, - "source": 34, - "pc": [ - 235, - 236 - ] - }, - { - "teal": 251, - "source": 34, - "pc": [ - 237 - ] - }, - { - "teal": 252, - "source": 34, - "pc": [ - 238, - 239, - 240 - ] - }, - { - "teal": 253, - "source": 34, - "pc": [ - 241, - 242 - ] - }, - { - "teal": 254, - "source": 34, - "pc": [ - 243 - ] - }, - { - "teal": 257, - "source": 34, - "pc": [ - 244 - ] - }, - { - "teal": 260, - "source": 34, - "pc": [ - 245 - ] - }, - { - "teal": 261, - "source": 33, - "pc": [ - 246 - ] - }, - { - "teal": 264, - "source": 4, - "pc": [ - 247 - ] - }, - { - "teal": 265, - "source": 4, - "pc": [ - 248 - ] - }, - { - "teal": 268, - "source": 4, - "pc": [ - 249, - 250, - 251, - 252, - 253, - 254 - ] - }, - { - "teal": 269, - "source": 4, - "pc": [ - 255, - 256, - 257 - ] - }, - { - "teal": 270, - "source": 4, - "pc": [ - 258, - 259, - 260, - 261 - ] - }, - { - "teal": 273, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 262 - ] - }, - { - "teal": 276, - "source": 4, - "pc": [ - 263, - 264, - 265, - 266, - 267, - 268 - ] - }, - { - "teal": 277, - "source": 4, - "pc": [ - 269, - 270, - 271, - 272, - 273, - 274 - ] - }, - { - "teal": 278, - "source": 4, - "pc": [ - 275, - 276, - 277, - 278, - 279, - 280 - ] - }, - { - "teal": 279, - "source": 4, - "pc": [ - 281, - 282, - 283, - 284, - 285, - 286 - ] - }, - { - "teal": 280, - "source": 4, - "pc": [ - 287, - 288, - 289, - 290, - 291, - 292 - ] - }, - { - "teal": 281, - "source": 4, - "pc": [ - 293, - 294, - 295, - 296, - 297, - 298 - ] - }, - { - "teal": 282, - "source": 4, - "pc": [ - 299, - 300, - 301, - 302, - 303, - 304 - ] - }, - { - "teal": 283, - "source": 4, - "pc": [ - 305, - 306, - 307, - 308, - 309, - 310 - ] - }, - { - "teal": 284, - "source": 4, - "pc": [ - 311, - 312, - 313 - ] - }, - { - "teal": 285, - "source": 4, - "pc": [ - 314, - 315, - 316, - 317, - 318, - 319, - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331 - ] - }, - { - "teal": 288, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 332 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 39 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 271 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 341 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhbmQodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYW5kOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBhbmQodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGFuZAoJaW50IDEKCXJldHVybgoKLy8gYW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZAphbmQ6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6NgoJLy8gYXNzZXJ0KGEgJiYgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCXJldHN1YgoKLy8gb3IodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfb3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG9yKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvcgoJaW50IDEKCXJldHVybgoKLy8gb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCm9yOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjEwCgkvLyBhc3NlcnQoYSB8fCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogKnNraXBfb3IwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgl8fAoKKnNraXBfb3IwOgoJYXNzZXJ0CglyZXRzdWIKCi8vIGVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2VxdWFsOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBlcXVhbCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgZXF1YWwKCWludCAxCglyZXR1cm4KCi8vIGVxdWFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZAplcXVhbDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxNAoJLy8gYXNzZXJ0KGEgPT09IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIG5vdEVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX25vdEVxdWFsOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgbm90RXF1YWwKCWludCAxCglyZXR1cm4KCi8vIG5vdEVxdWFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApub3RFcXVhbDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxOAoJLy8gYXNzZXJ0KGEgIT09IGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkhPQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRBbmQ6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0QW5kCglpbnQgMQoJcmV0dXJuCgovLyBiaXRBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdEFuZDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyMgoJLy8gYXNzZXJ0KGEgJiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2JpdE9yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRPcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0T3IKCWludCAxCglyZXR1cm4KCi8vIGJpdE9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRPcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoyNgoJLy8gYXNzZXJ0KGEgfCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdFhvcih1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRYb3I6CgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdFhvcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgYml0WG9yCglpbnQgMQoJcmV0dXJuCgovLyBiaXRYb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB2b2lkCmJpdFhvcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czozMAoJLy8gYXNzZXJ0KGEgXiBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJXgoJYXNzZXJ0CglyZXRzdWIKCi8vIGNvbWJvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9jb21ibzoKCS8vIGM6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBjb21ibwoJaW50IDEKCXJldHVybgoKLy8gY29tYm8oYTogdWludDY0LCBiOiB1aW50NjQsIGM6IHVpbnQ2NCk6IHZvaWQKY29tYm86Cglwcm90byAzIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzQKCS8vIGFzc2VydChhIHx8IChiICYmIGMpKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglibnogKnNraXBfb3IxCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMyAvLyBjOiB1aW50NjQKCSYmCgoqc2tpcF9hbmQxOgoJfHwKCipza2lwX29yMToKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYW5kKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAib3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJlcXVhbCh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgIm5vdEVxdWFsKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0QW5kKHVpbnQ2NCx1aW50NjQpdm9pZCIKCW1ldGhvZCAiYml0T3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJjb21ibyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hbmQgKmFiaV9yb3V0ZV9vciAqYWJpX3JvdXRlX2VxdWFsICphYmlfcm91dGVfbm90RXF1YWwgKmFiaV9yb3V0ZV9iaXRBbmQgKmFiaV9yb3V0ZV9iaXRPciAqYWJpX3JvdXRlX2JpdFhvciAqYWJpX3JvdXRlX2NvbWJvCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYW5kKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2FuZDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYW5kKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBhbmQKCWludCAxCglyZXR1cm4KCi8vIGFuZChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKYW5kOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjYKCS8vIGFzc2VydChhICYmIGIpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglkdXAKCWJ6ICpza2lwX2FuZDAKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSYmCgoqc2tpcF9hbmQwOgoJYXNzZXJ0CglyZXRzdWIKCi8vIG9yKHVpbnQ2NCx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX29yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvcih1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgb3IKCWludCAxCglyZXR1cm4KCi8vIG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApvcjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9iaW5hcnkuYWxnby50czoxMAoJLy8gYXNzZXJ0KGEgfHwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYm56ICpza2lwX29yMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfHwKCipza2lwX29yMDoKCWFzc2VydAoJcmV0c3ViCgovLyBlcXVhbCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9lcXVhbDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXF1YWwodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGVxdWFsCglpbnQgMQoJcmV0dXJuCgovLyBlcXVhbChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKZXF1YWw6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MTQKCS8vIGFzc2VydChhID09PSBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9ub3RFcXVhbDoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbm90RXF1YWwodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIG5vdEVxdWFsCglpbnQgMQoJcmV0dXJuCgovLyBub3RFcXVhbChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKbm90RXF1YWw6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MTgKCS8vIGFzc2VydChhICE9PSBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJIT0KCWFzc2VydAoJcmV0c3ViCgovLyBiaXRBbmQodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYml0QW5kOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRBbmQodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdEFuZAoJaW50IDEKCXJldHVybgoKLy8gYml0QW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRBbmQ6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MjIKCS8vIGFzc2VydChhICYgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSYKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRPcih1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9iaXRPcjoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0T3IodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdE9yCglpbnQgMQoJcmV0dXJuCgovLyBiaXRPcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHZvaWQKYml0T3I6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MjYKCS8vIGFzc2VydChhIHwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCXwKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfYml0WG9yOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXRYb3IodWludDY0LHVpbnQ2NCl2b2lkCgljYWxsc3ViIGJpdFhvcgoJaW50IDEKCXJldHVybgoKLy8gYml0WG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApiaXRYb3I6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYmluYXJ5LmFsZ28udHM6MzAKCS8vIGFzc2VydChhIF4gYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCV4KCWFzc2VydAoJcmV0c3ViCgovLyBjb21ibyh1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkCiphYmlfcm91dGVfY29tYm86CgkvLyBjOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNvbWJvKHVpbnQ2NCx1aW50NjQsdWludDY0KXZvaWQKCWNhbGxzdWIgY29tYm8KCWludCAxCglyZXR1cm4KCi8vIGNvbWJvKGE6IHVpbnQ2NCwgYjogdWludDY0LCBjOiB1aW50NjQpOiB2b2lkCmNvbWJvOgoJcHJvdG8gMyAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2JpbmFyeS5hbGdvLnRzOjM0CgkvLyBhc3NlcnQoYSB8fCAoYiAmJiBjKSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYm56ICpza2lwX29yMQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZHVwCglieiAqc2tpcF9hbmQxCglmcmFtZV9kaWcgLTMgLy8gYzogdWludDY0CgkmJgoKKnNraXBfYW5kMToKCXx8Cgoqc2tpcF9vcjE6Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg2ZmQxM2ExMyAvLyBtZXRob2QgImFuZCh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg3MDBhYTg4NyAvLyBtZXRob2QgIm9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDcyM2M4N2VmIC8vIG1ldGhvZCAiZXF1YWwodWludDY0LHVpbnQ2NCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTdmZmI5ZDMgLy8gbWV0aG9kICJub3RFcXVhbCh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg5Mjg1MTg4ZSAvLyBtZXRob2QgImJpdEFuZCh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHg1OTJkYzczZiAvLyBtZXRob2QgImJpdE9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDZkNDY1MDRhIC8vIG1ldGhvZCAiYml0WG9yKHVpbnQ2NCx1aW50NjQpdm9pZCIKCXB1c2hieXRlcyAweDc0ZGM1MTUwIC8vIG1ldGhvZCAiY29tYm8odWludDY0LHVpbnQ2NCx1aW50NjQpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYW5kICphYmlfcm91dGVfb3IgKmFiaV9yb3V0ZV9lcXVhbCAqYWJpX3JvdXRlX25vdEVxdWFsICphYmlfcm91dGVfYml0QW5kICphYmlfcm91dGVfYml0T3IgKmFiaV9yb3V0ZV9iaXRYb3IgKmFiaV9yb3V0ZV9jb21ibwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAOAAAAAAAAAAAAAAANIAAAAAAAAAAAAAADYaAhc2GgEXiAACIkOKAgCL/0lBAAOL/hBEiTYaAhc2GgEXiAACIkOKAgCL/0lAAAOL/hFEiTYaAhc2GgEXiAACIkOKAgCL/4v+EkSJNhoCFzYaAReIAAIiQ4oCAIv/i/4TRIk2GgIXNhoBF4gAAiJDigIAi/+L/hpEiTYaAhc2GgEXiAACIkOKAgCL/4v+GUSJNhoCFzYaAReIAAIiQ4oCAIv/i/4bRIk2GgMXNhoCFzYaAReIAAIiQ4oDAIv/SUAACov+SUEAA4v9EBFEiSJDgAS4RHs2NhoAjgH/8QCABG/ROhOABHAKqIeABHI8h++ABOf/udOABJKFGI6ABFktxz+ABG1GUEqABHTcUVA2GgCOCP7c/vf/Ev8p/0D/V/9u/4UA", + "approval": "CiABATEYFIEGCzEZCI0MAOkAAAAAAAAAAAAAANsAAAAAAAAAAAAAADYaAhc2GgEXiAADgQFDigIAi/9JQQADi/4QRIk2GgIXNhoBF4gAA4EBQ4oCAIv/SUAAA4v+EUSJNhoCFzYaAReIAAOBAUOKAgCL/4v+EkSJNhoCFzYaAReIAAOBAUOKAgCL/4v+E0SJNhoCFzYaAReIAAOBAUOKAgCL/4v+GkSJNhoCFzYaAReIAAOBAUOKAgCL/4v+GUSJNhoCFzYaAReIAAOBAUOKAgCL/4v+G0SJNhoDFzYaAhc2GgEXiAADgQFDigMAi/9JQAAKi/5JQQADi/0QEUSJgQFDgAS4RHs2NhoAjgH/8ACABG/ROhOABHAKqIeABHI8h++ABOf/udOABJKFGI6ABFktxz+ABG1GUEqABHTcUVA2GgCOCP7T/u//C/8j/zv/U/9r/4MA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/BytecblockTest.approval.teal b/tests/contracts/artifacts/BytecblockTest.approval.teal new file mode 100644 index 000000000..7123cd9d9 --- /dev/null +++ b/tests/contracts/artifacts/BytecblockTest.approval.teal @@ -0,0 +1,1625 @@ +#pragma version 10 +bytecblock 0x6279746556616c7565 0x0a8101 + +// This TEAL was generated by TEALScript v0.104.0 +// https://github.com/algorandfoundation/TEALScript + +// This contract is compliant with and/or implements the following ARCs: [ ARC4 ] + +// The following ten lines of TEAL handle initial program flow +// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed +// Here, action refers to the OnComplete in combination with whether the app is being created or called +// Every possible action for this contract is represented in the switch statement +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" +txn ApplicationID +! +pushint 6 +* +txn OnCompletion ++ +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED + +*NOT_IMPLEMENTED: + // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? + err + +// largeBytecblock()string +*abi_route_largeBytecblock: + // The ABI return prefix + pushbytes 0x151f7c75 + + // execute largeBytecblock()string + callsub largeBytecblock + dup + len + itob + extract 6 2 + swap + concat + concat + log + pushint 1 + return + +// largeBytecblock(): string +largeBytecblock: + proto 0 1 + + // tests/contracts/cblocks.algo.ts:274 + // increaseOpcodeBudget() + itxn_begin + pushint 6 // appl + itxn_field TypeEnum + pushint 0 + itxn_field Fee + byte 0x0a8101 // #pragma version 10; int 1 + dup + itxn_field ApprovalProgram + itxn_field ClearStateProgram + pushint 5 // DeleteApplication + itxn_field OnCompletion + itxn_submit + + // tests/contracts/cblocks.algo.ts:276 + // this.byteValue.value = '2' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x32 // "2" + app_global_put + + // tests/contracts/cblocks.algo.ts:277 + // this.byteValue.value = '3' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x33 // "3" + app_global_put + + // tests/contracts/cblocks.algo.ts:278 + // this.byteValue.value = '4' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x34 // "4" + app_global_put + + // tests/contracts/cblocks.algo.ts:279 + // this.byteValue.value = '5' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x35 // "5" + app_global_put + + // tests/contracts/cblocks.algo.ts:280 + // this.byteValue.value = '6' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x36 // "6" + app_global_put + + // tests/contracts/cblocks.algo.ts:281 + // this.byteValue.value = '7' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x37 // "7" + app_global_put + + // tests/contracts/cblocks.algo.ts:282 + // this.byteValue.value = '8' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x38 // "8" + app_global_put + + // tests/contracts/cblocks.algo.ts:283 + // this.byteValue.value = '9' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x39 // "9" + app_global_put + + // tests/contracts/cblocks.algo.ts:284 + // this.byteValue.value = '10' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3130 // "10" + app_global_put + + // tests/contracts/cblocks.algo.ts:285 + // this.byteValue.value = '11' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3131 // "11" + app_global_put + + // tests/contracts/cblocks.algo.ts:286 + // this.byteValue.value = '12' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3132 // "12" + app_global_put + + // tests/contracts/cblocks.algo.ts:287 + // this.byteValue.value = '13' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3133 // "13" + app_global_put + + // tests/contracts/cblocks.algo.ts:288 + // this.byteValue.value = '14' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3134 // "14" + app_global_put + + // tests/contracts/cblocks.algo.ts:289 + // this.byteValue.value = '15' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3135 // "15" + app_global_put + + // tests/contracts/cblocks.algo.ts:290 + // this.byteValue.value = '16' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3136 // "16" + app_global_put + + // tests/contracts/cblocks.algo.ts:291 + // this.byteValue.value = '17' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3137 // "17" + app_global_put + + // tests/contracts/cblocks.algo.ts:292 + // this.byteValue.value = '18' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3138 // "18" + app_global_put + + // tests/contracts/cblocks.algo.ts:293 + // this.byteValue.value = '19' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3139 // "19" + app_global_put + + // tests/contracts/cblocks.algo.ts:294 + // this.byteValue.value = '20' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3230 // "20" + app_global_put + + // tests/contracts/cblocks.algo.ts:295 + // this.byteValue.value = '21' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3231 // "21" + app_global_put + + // tests/contracts/cblocks.algo.ts:296 + // this.byteValue.value = '22' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3232 // "22" + app_global_put + + // tests/contracts/cblocks.algo.ts:297 + // this.byteValue.value = '23' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3233 // "23" + app_global_put + + // tests/contracts/cblocks.algo.ts:298 + // this.byteValue.value = '24' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3234 // "24" + app_global_put + + // tests/contracts/cblocks.algo.ts:299 + // this.byteValue.value = '25' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3235 // "25" + app_global_put + + // tests/contracts/cblocks.algo.ts:300 + // this.byteValue.value = '26' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3236 // "26" + app_global_put + + // tests/contracts/cblocks.algo.ts:301 + // this.byteValue.value = '27' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3237 // "27" + app_global_put + + // tests/contracts/cblocks.algo.ts:302 + // this.byteValue.value = '28' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3238 // "28" + app_global_put + + // tests/contracts/cblocks.algo.ts:303 + // this.byteValue.value = '29' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3239 // "29" + app_global_put + + // tests/contracts/cblocks.algo.ts:304 + // this.byteValue.value = '30' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3330 // "30" + app_global_put + + // tests/contracts/cblocks.algo.ts:305 + // this.byteValue.value = '31' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3331 // "31" + app_global_put + + // tests/contracts/cblocks.algo.ts:306 + // this.byteValue.value = '32' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3332 // "32" + app_global_put + + // tests/contracts/cblocks.algo.ts:307 + // this.byteValue.value = '33' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3333 // "33" + app_global_put + + // tests/contracts/cblocks.algo.ts:308 + // this.byteValue.value = '34' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3334 // "34" + app_global_put + + // tests/contracts/cblocks.algo.ts:309 + // this.byteValue.value = '35' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3335 // "35" + app_global_put + + // tests/contracts/cblocks.algo.ts:310 + // this.byteValue.value = '36' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3336 // "36" + app_global_put + + // tests/contracts/cblocks.algo.ts:311 + // this.byteValue.value = '37' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3337 // "37" + app_global_put + + // tests/contracts/cblocks.algo.ts:312 + // this.byteValue.value = '38' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3338 // "38" + app_global_put + + // tests/contracts/cblocks.algo.ts:313 + // this.byteValue.value = '39' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3339 // "39" + app_global_put + + // tests/contracts/cblocks.algo.ts:314 + // this.byteValue.value = '40' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3430 // "40" + app_global_put + + // tests/contracts/cblocks.algo.ts:315 + // this.byteValue.value = '41' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3431 // "41" + app_global_put + + // tests/contracts/cblocks.algo.ts:316 + // this.byteValue.value = '42' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3432 // "42" + app_global_put + + // tests/contracts/cblocks.algo.ts:317 + // this.byteValue.value = '43' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3433 // "43" + app_global_put + + // tests/contracts/cblocks.algo.ts:318 + // this.byteValue.value = '44' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3434 // "44" + app_global_put + + // tests/contracts/cblocks.algo.ts:319 + // this.byteValue.value = '45' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3435 // "45" + app_global_put + + // tests/contracts/cblocks.algo.ts:320 + // this.byteValue.value = '46' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3436 // "46" + app_global_put + + // tests/contracts/cblocks.algo.ts:321 + // this.byteValue.value = '47' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3437 // "47" + app_global_put + + // tests/contracts/cblocks.algo.ts:322 + // this.byteValue.value = '48' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3438 // "48" + app_global_put + + // tests/contracts/cblocks.algo.ts:323 + // this.byteValue.value = '49' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3439 // "49" + app_global_put + + // tests/contracts/cblocks.algo.ts:324 + // this.byteValue.value = '50' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3530 // "50" + app_global_put + + // tests/contracts/cblocks.algo.ts:325 + // this.byteValue.value = '51' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3531 // "51" + app_global_put + + // tests/contracts/cblocks.algo.ts:326 + // this.byteValue.value = '52' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3532 // "52" + app_global_put + + // tests/contracts/cblocks.algo.ts:327 + // this.byteValue.value = '53' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3533 // "53" + app_global_put + + // tests/contracts/cblocks.algo.ts:328 + // this.byteValue.value = '54' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3534 // "54" + app_global_put + + // tests/contracts/cblocks.algo.ts:329 + // this.byteValue.value = '55' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3535 // "55" + app_global_put + + // tests/contracts/cblocks.algo.ts:330 + // this.byteValue.value = '56' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3536 // "56" + app_global_put + + // tests/contracts/cblocks.algo.ts:331 + // this.byteValue.value = '57' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3537 // "57" + app_global_put + + // tests/contracts/cblocks.algo.ts:332 + // this.byteValue.value = '58' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3538 // "58" + app_global_put + + // tests/contracts/cblocks.algo.ts:333 + // this.byteValue.value = '59' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3539 // "59" + app_global_put + + // tests/contracts/cblocks.algo.ts:334 + // this.byteValue.value = '60' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3630 // "60" + app_global_put + + // tests/contracts/cblocks.algo.ts:335 + // this.byteValue.value = '61' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3631 // "61" + app_global_put + + // tests/contracts/cblocks.algo.ts:336 + // this.byteValue.value = '62' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3632 // "62" + app_global_put + + // tests/contracts/cblocks.algo.ts:337 + // this.byteValue.value = '63' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3633 // "63" + app_global_put + + // tests/contracts/cblocks.algo.ts:338 + // this.byteValue.value = '64' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3634 // "64" + app_global_put + + // tests/contracts/cblocks.algo.ts:339 + // this.byteValue.value = '65' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3635 // "65" + app_global_put + + // tests/contracts/cblocks.algo.ts:340 + // this.byteValue.value = '66' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3636 // "66" + app_global_put + + // tests/contracts/cblocks.algo.ts:341 + // this.byteValue.value = '67' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3637 // "67" + app_global_put + + // tests/contracts/cblocks.algo.ts:342 + // this.byteValue.value = '68' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3638 // "68" + app_global_put + + // tests/contracts/cblocks.algo.ts:343 + // this.byteValue.value = '69' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3639 // "69" + app_global_put + + // tests/contracts/cblocks.algo.ts:344 + // this.byteValue.value = '70' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3730 // "70" + app_global_put + + // tests/contracts/cblocks.algo.ts:345 + // this.byteValue.value = '71' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3731 // "71" + app_global_put + + // tests/contracts/cblocks.algo.ts:346 + // this.byteValue.value = '72' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3732 // "72" + app_global_put + + // tests/contracts/cblocks.algo.ts:347 + // this.byteValue.value = '73' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3733 // "73" + app_global_put + + // tests/contracts/cblocks.algo.ts:348 + // this.byteValue.value = '74' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3734 // "74" + app_global_put + + // tests/contracts/cblocks.algo.ts:349 + // this.byteValue.value = '75' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3735 // "75" + app_global_put + + // tests/contracts/cblocks.algo.ts:350 + // this.byteValue.value = '76' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3736 // "76" + app_global_put + + // tests/contracts/cblocks.algo.ts:351 + // this.byteValue.value = '77' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3737 // "77" + app_global_put + + // tests/contracts/cblocks.algo.ts:352 + // this.byteValue.value = '78' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3738 // "78" + app_global_put + + // tests/contracts/cblocks.algo.ts:353 + // this.byteValue.value = '79' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3739 // "79" + app_global_put + + // tests/contracts/cblocks.algo.ts:354 + // this.byteValue.value = '80' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3830 // "80" + app_global_put + + // tests/contracts/cblocks.algo.ts:355 + // this.byteValue.value = '81' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3831 // "81" + app_global_put + + // tests/contracts/cblocks.algo.ts:356 + // this.byteValue.value = '82' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3832 // "82" + app_global_put + + // tests/contracts/cblocks.algo.ts:357 + // this.byteValue.value = '83' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3833 // "83" + app_global_put + + // tests/contracts/cblocks.algo.ts:358 + // this.byteValue.value = '84' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3834 // "84" + app_global_put + + // tests/contracts/cblocks.algo.ts:359 + // this.byteValue.value = '85' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3835 // "85" + app_global_put + + // tests/contracts/cblocks.algo.ts:360 + // this.byteValue.value = '86' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3836 // "86" + app_global_put + + // tests/contracts/cblocks.algo.ts:361 + // this.byteValue.value = '87' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3837 // "87" + app_global_put + + // tests/contracts/cblocks.algo.ts:362 + // this.byteValue.value = '88' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3838 // "88" + app_global_put + + // tests/contracts/cblocks.algo.ts:363 + // this.byteValue.value = '89' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3839 // "89" + app_global_put + + // tests/contracts/cblocks.algo.ts:364 + // this.byteValue.value = '90' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3930 // "90" + app_global_put + + // tests/contracts/cblocks.algo.ts:365 + // this.byteValue.value = '91' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3931 // "91" + app_global_put + + // tests/contracts/cblocks.algo.ts:366 + // this.byteValue.value = '92' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3932 // "92" + app_global_put + + // tests/contracts/cblocks.algo.ts:367 + // this.byteValue.value = '93' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3933 // "93" + app_global_put + + // tests/contracts/cblocks.algo.ts:368 + // this.byteValue.value = '94' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3934 // "94" + app_global_put + + // tests/contracts/cblocks.algo.ts:369 + // this.byteValue.value = '95' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3935 // "95" + app_global_put + + // tests/contracts/cblocks.algo.ts:370 + // this.byteValue.value = '96' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3936 // "96" + app_global_put + + // tests/contracts/cblocks.algo.ts:371 + // this.byteValue.value = '97' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3937 // "97" + app_global_put + + // tests/contracts/cblocks.algo.ts:372 + // this.byteValue.value = '98' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3938 // "98" + app_global_put + + // tests/contracts/cblocks.algo.ts:373 + // this.byteValue.value = '99' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x3939 // "99" + app_global_put + + // tests/contracts/cblocks.algo.ts:374 + // this.byteValue.value = '100' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313030 // "100" + app_global_put + + // tests/contracts/cblocks.algo.ts:375 + // this.byteValue.value = '101' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313031 // "101" + app_global_put + + // tests/contracts/cblocks.algo.ts:376 + // this.byteValue.value = '102' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313032 // "102" + app_global_put + + // tests/contracts/cblocks.algo.ts:377 + // this.byteValue.value = '103' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313033 // "103" + app_global_put + + // tests/contracts/cblocks.algo.ts:378 + // this.byteValue.value = '104' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313034 // "104" + app_global_put + + // tests/contracts/cblocks.algo.ts:379 + // this.byteValue.value = '105' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313035 // "105" + app_global_put + + // tests/contracts/cblocks.algo.ts:380 + // this.byteValue.value = '106' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313036 // "106" + app_global_put + + // tests/contracts/cblocks.algo.ts:381 + // this.byteValue.value = '107' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313037 // "107" + app_global_put + + // tests/contracts/cblocks.algo.ts:382 + // this.byteValue.value = '108' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313038 // "108" + app_global_put + + // tests/contracts/cblocks.algo.ts:383 + // this.byteValue.value = '109' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313039 // "109" + app_global_put + + // tests/contracts/cblocks.algo.ts:384 + // this.byteValue.value = '110' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313130 // "110" + app_global_put + + // tests/contracts/cblocks.algo.ts:385 + // this.byteValue.value = '111' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313131 // "111" + app_global_put + + // tests/contracts/cblocks.algo.ts:386 + // this.byteValue.value = '112' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313132 // "112" + app_global_put + + // tests/contracts/cblocks.algo.ts:387 + // this.byteValue.value = '113' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313133 // "113" + app_global_put + + // tests/contracts/cblocks.algo.ts:388 + // this.byteValue.value = '114' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313134 // "114" + app_global_put + + // tests/contracts/cblocks.algo.ts:389 + // this.byteValue.value = '115' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313135 // "115" + app_global_put + + // tests/contracts/cblocks.algo.ts:390 + // this.byteValue.value = '116' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313136 // "116" + app_global_put + + // tests/contracts/cblocks.algo.ts:391 + // this.byteValue.value = '117' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313137 // "117" + app_global_put + + // tests/contracts/cblocks.algo.ts:392 + // this.byteValue.value = '118' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313138 // "118" + app_global_put + + // tests/contracts/cblocks.algo.ts:393 + // this.byteValue.value = '119' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313139 // "119" + app_global_put + + // tests/contracts/cblocks.algo.ts:394 + // this.byteValue.value = '120' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313230 // "120" + app_global_put + + // tests/contracts/cblocks.algo.ts:395 + // this.byteValue.value = '121' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313231 // "121" + app_global_put + + // tests/contracts/cblocks.algo.ts:396 + // this.byteValue.value = '122' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313232 // "122" + app_global_put + + // tests/contracts/cblocks.algo.ts:397 + // this.byteValue.value = '123' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313233 // "123" + app_global_put + + // tests/contracts/cblocks.algo.ts:398 + // this.byteValue.value = '124' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313234 // "124" + app_global_put + + // tests/contracts/cblocks.algo.ts:399 + // this.byteValue.value = '125' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313235 // "125" + app_global_put + + // tests/contracts/cblocks.algo.ts:400 + // this.byteValue.value = '126' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313236 // "126" + app_global_put + + // tests/contracts/cblocks.algo.ts:401 + // this.byteValue.value = '127' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313237 // "127" + app_global_put + + // tests/contracts/cblocks.algo.ts:402 + // this.byteValue.value = '128' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313238 // "128" + app_global_put + + // tests/contracts/cblocks.algo.ts:403 + // this.byteValue.value = '129' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313239 // "129" + app_global_put + + // tests/contracts/cblocks.algo.ts:404 + // this.byteValue.value = '130' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313330 // "130" + app_global_put + + // tests/contracts/cblocks.algo.ts:405 + // this.byteValue.value = '131' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313331 // "131" + app_global_put + + // tests/contracts/cblocks.algo.ts:406 + // this.byteValue.value = '132' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313332 // "132" + app_global_put + + // tests/contracts/cblocks.algo.ts:407 + // this.byteValue.value = '133' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313333 // "133" + app_global_put + + // tests/contracts/cblocks.algo.ts:408 + // this.byteValue.value = '134' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313334 // "134" + app_global_put + + // tests/contracts/cblocks.algo.ts:409 + // this.byteValue.value = '135' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313335 // "135" + app_global_put + + // tests/contracts/cblocks.algo.ts:410 + // this.byteValue.value = '136' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313336 // "136" + app_global_put + + // tests/contracts/cblocks.algo.ts:411 + // this.byteValue.value = '137' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313337 // "137" + app_global_put + + // tests/contracts/cblocks.algo.ts:412 + // this.byteValue.value = '138' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313338 // "138" + app_global_put + + // tests/contracts/cblocks.algo.ts:413 + // this.byteValue.value = '139' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313339 // "139" + app_global_put + + // tests/contracts/cblocks.algo.ts:414 + // this.byteValue.value = '140' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313430 // "140" + app_global_put + + // tests/contracts/cblocks.algo.ts:415 + // this.byteValue.value = '141' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313431 // "141" + app_global_put + + // tests/contracts/cblocks.algo.ts:416 + // this.byteValue.value = '142' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313432 // "142" + app_global_put + + // tests/contracts/cblocks.algo.ts:417 + // this.byteValue.value = '143' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313433 // "143" + app_global_put + + // tests/contracts/cblocks.algo.ts:418 + // this.byteValue.value = '144' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313434 // "144" + app_global_put + + // tests/contracts/cblocks.algo.ts:419 + // this.byteValue.value = '145' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313435 // "145" + app_global_put + + // tests/contracts/cblocks.algo.ts:420 + // this.byteValue.value = '146' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313436 // "146" + app_global_put + + // tests/contracts/cblocks.algo.ts:421 + // this.byteValue.value = '147' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313437 // "147" + app_global_put + + // tests/contracts/cblocks.algo.ts:422 + // this.byteValue.value = '148' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313438 // "148" + app_global_put + + // tests/contracts/cblocks.algo.ts:423 + // this.byteValue.value = '149' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313439 // "149" + app_global_put + + // tests/contracts/cblocks.algo.ts:424 + // this.byteValue.value = '150' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313530 // "150" + app_global_put + + // tests/contracts/cblocks.algo.ts:425 + // this.byteValue.value = '151' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313531 // "151" + app_global_put + + // tests/contracts/cblocks.algo.ts:426 + // this.byteValue.value = '152' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313532 // "152" + app_global_put + + // tests/contracts/cblocks.algo.ts:427 + // this.byteValue.value = '153' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313533 // "153" + app_global_put + + // tests/contracts/cblocks.algo.ts:428 + // this.byteValue.value = '154' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313534 // "154" + app_global_put + + // tests/contracts/cblocks.algo.ts:429 + // this.byteValue.value = '155' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313535 // "155" + app_global_put + + // tests/contracts/cblocks.algo.ts:430 + // this.byteValue.value = '156' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313536 // "156" + app_global_put + + // tests/contracts/cblocks.algo.ts:431 + // this.byteValue.value = '157' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313537 // "157" + app_global_put + + // tests/contracts/cblocks.algo.ts:432 + // this.byteValue.value = '158' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313538 // "158" + app_global_put + + // tests/contracts/cblocks.algo.ts:433 + // this.byteValue.value = '159' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313539 // "159" + app_global_put + + // tests/contracts/cblocks.algo.ts:434 + // this.byteValue.value = '160' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313630 // "160" + app_global_put + + // tests/contracts/cblocks.algo.ts:435 + // this.byteValue.value = '161' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313631 // "161" + app_global_put + + // tests/contracts/cblocks.algo.ts:436 + // this.byteValue.value = '162' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313632 // "162" + app_global_put + + // tests/contracts/cblocks.algo.ts:437 + // this.byteValue.value = '163' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313633 // "163" + app_global_put + + // tests/contracts/cblocks.algo.ts:438 + // this.byteValue.value = '164' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313634 // "164" + app_global_put + + // tests/contracts/cblocks.algo.ts:439 + // this.byteValue.value = '165' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313635 // "165" + app_global_put + + // tests/contracts/cblocks.algo.ts:440 + // this.byteValue.value = '166' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313636 // "166" + app_global_put + + // tests/contracts/cblocks.algo.ts:441 + // this.byteValue.value = '167' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313637 // "167" + app_global_put + + // tests/contracts/cblocks.algo.ts:442 + // this.byteValue.value = '168' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313638 // "168" + app_global_put + + // tests/contracts/cblocks.algo.ts:443 + // this.byteValue.value = '169' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313639 // "169" + app_global_put + + // tests/contracts/cblocks.algo.ts:444 + // this.byteValue.value = '170' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313730 // "170" + app_global_put + + // tests/contracts/cblocks.algo.ts:445 + // this.byteValue.value = '171' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313731 // "171" + app_global_put + + // tests/contracts/cblocks.algo.ts:446 + // this.byteValue.value = '172' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313732 // "172" + app_global_put + + // tests/contracts/cblocks.algo.ts:447 + // this.byteValue.value = '173' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313733 // "173" + app_global_put + + // tests/contracts/cblocks.algo.ts:448 + // this.byteValue.value = '174' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313734 // "174" + app_global_put + + // tests/contracts/cblocks.algo.ts:449 + // this.byteValue.value = '175' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313735 // "175" + app_global_put + + // tests/contracts/cblocks.algo.ts:450 + // this.byteValue.value = '176' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313736 // "176" + app_global_put + + // tests/contracts/cblocks.algo.ts:451 + // this.byteValue.value = '177' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313737 // "177" + app_global_put + + // tests/contracts/cblocks.algo.ts:452 + // this.byteValue.value = '178' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313738 // "178" + app_global_put + + // tests/contracts/cblocks.algo.ts:453 + // this.byteValue.value = '179' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313739 // "179" + app_global_put + + // tests/contracts/cblocks.algo.ts:454 + // this.byteValue.value = '180' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313830 // "180" + app_global_put + + // tests/contracts/cblocks.algo.ts:455 + // this.byteValue.value = '181' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313831 // "181" + app_global_put + + // tests/contracts/cblocks.algo.ts:456 + // this.byteValue.value = '182' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313832 // "182" + app_global_put + + // tests/contracts/cblocks.algo.ts:457 + // this.byteValue.value = '183' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313833 // "183" + app_global_put + + // tests/contracts/cblocks.algo.ts:458 + // this.byteValue.value = '184' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313834 // "184" + app_global_put + + // tests/contracts/cblocks.algo.ts:459 + // this.byteValue.value = '185' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313835 // "185" + app_global_put + + // tests/contracts/cblocks.algo.ts:460 + // this.byteValue.value = '186' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313836 // "186" + app_global_put + + // tests/contracts/cblocks.algo.ts:461 + // this.byteValue.value = '187' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313837 // "187" + app_global_put + + // tests/contracts/cblocks.algo.ts:462 + // this.byteValue.value = '188' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313838 // "188" + app_global_put + + // tests/contracts/cblocks.algo.ts:463 + // this.byteValue.value = '189' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313839 // "189" + app_global_put + + // tests/contracts/cblocks.algo.ts:464 + // this.byteValue.value = '190' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313930 // "190" + app_global_put + + // tests/contracts/cblocks.algo.ts:465 + // this.byteValue.value = '191' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313931 // "191" + app_global_put + + // tests/contracts/cblocks.algo.ts:466 + // this.byteValue.value = '192' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313932 // "192" + app_global_put + + // tests/contracts/cblocks.algo.ts:467 + // this.byteValue.value = '193' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313933 // "193" + app_global_put + + // tests/contracts/cblocks.algo.ts:468 + // this.byteValue.value = '194' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313934 // "194" + app_global_put + + // tests/contracts/cblocks.algo.ts:469 + // this.byteValue.value = '195' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313935 // "195" + app_global_put + + // tests/contracts/cblocks.algo.ts:470 + // this.byteValue.value = '196' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313936 // "196" + app_global_put + + // tests/contracts/cblocks.algo.ts:471 + // this.byteValue.value = '197' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313937 // "197" + app_global_put + + // tests/contracts/cblocks.algo.ts:472 + // this.byteValue.value = '198' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313938 // "198" + app_global_put + + // tests/contracts/cblocks.algo.ts:473 + // this.byteValue.value = '199' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x313939 // "199" + app_global_put + + // tests/contracts/cblocks.algo.ts:474 + // this.byteValue.value = '200' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323030 // "200" + app_global_put + + // tests/contracts/cblocks.algo.ts:475 + // this.byteValue.value = '201' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323031 // "201" + app_global_put + + // tests/contracts/cblocks.algo.ts:476 + // this.byteValue.value = '202' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323032 // "202" + app_global_put + + // tests/contracts/cblocks.algo.ts:477 + // this.byteValue.value = '203' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323033 // "203" + app_global_put + + // tests/contracts/cblocks.algo.ts:478 + // this.byteValue.value = '204' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323034 // "204" + app_global_put + + // tests/contracts/cblocks.algo.ts:479 + // this.byteValue.value = '205' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323035 // "205" + app_global_put + + // tests/contracts/cblocks.algo.ts:480 + // this.byteValue.value = '206' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323036 // "206" + app_global_put + + // tests/contracts/cblocks.algo.ts:481 + // this.byteValue.value = '207' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323037 // "207" + app_global_put + + // tests/contracts/cblocks.algo.ts:482 + // this.byteValue.value = '208' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323038 // "208" + app_global_put + + // tests/contracts/cblocks.algo.ts:483 + // this.byteValue.value = '209' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323039 // "209" + app_global_put + + // tests/contracts/cblocks.algo.ts:484 + // this.byteValue.value = '210' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323130 // "210" + app_global_put + + // tests/contracts/cblocks.algo.ts:485 + // this.byteValue.value = '211' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323131 // "211" + app_global_put + + // tests/contracts/cblocks.algo.ts:486 + // this.byteValue.value = '212' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323132 // "212" + app_global_put + + // tests/contracts/cblocks.algo.ts:487 + // this.byteValue.value = '213' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323133 // "213" + app_global_put + + // tests/contracts/cblocks.algo.ts:488 + // this.byteValue.value = '214' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323134 // "214" + app_global_put + + // tests/contracts/cblocks.algo.ts:489 + // this.byteValue.value = '215' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323135 // "215" + app_global_put + + // tests/contracts/cblocks.algo.ts:490 + // this.byteValue.value = '216' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323136 // "216" + app_global_put + + // tests/contracts/cblocks.algo.ts:491 + // this.byteValue.value = '217' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323137 // "217" + app_global_put + + // tests/contracts/cblocks.algo.ts:492 + // this.byteValue.value = '218' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323138 // "218" + app_global_put + + // tests/contracts/cblocks.algo.ts:493 + // this.byteValue.value = '219' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323139 // "219" + app_global_put + + // tests/contracts/cblocks.algo.ts:494 + // this.byteValue.value = '220' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323230 // "220" + app_global_put + + // tests/contracts/cblocks.algo.ts:495 + // this.byteValue.value = '221' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323231 // "221" + app_global_put + + // tests/contracts/cblocks.algo.ts:496 + // this.byteValue.value = '222' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323232 // "222" + app_global_put + + // tests/contracts/cblocks.algo.ts:497 + // this.byteValue.value = '223' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323233 // "223" + app_global_put + + // tests/contracts/cblocks.algo.ts:498 + // this.byteValue.value = '224' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323234 // "224" + app_global_put + + // tests/contracts/cblocks.algo.ts:499 + // this.byteValue.value = '225' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323235 // "225" + app_global_put + + // tests/contracts/cblocks.algo.ts:500 + // this.byteValue.value = '226' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323236 // "226" + app_global_put + + // tests/contracts/cblocks.algo.ts:501 + // this.byteValue.value = '227' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323237 // "227" + app_global_put + + // tests/contracts/cblocks.algo.ts:502 + // this.byteValue.value = '228' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323238 // "228" + app_global_put + + // tests/contracts/cblocks.algo.ts:503 + // this.byteValue.value = '229' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323239 // "229" + app_global_put + + // tests/contracts/cblocks.algo.ts:504 + // this.byteValue.value = '230' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323330 // "230" + app_global_put + + // tests/contracts/cblocks.algo.ts:505 + // this.byteValue.value = '231' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323331 // "231" + app_global_put + + // tests/contracts/cblocks.algo.ts:506 + // this.byteValue.value = '232' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323332 // "232" + app_global_put + + // tests/contracts/cblocks.algo.ts:507 + // this.byteValue.value = '233' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323333 // "233" + app_global_put + + // tests/contracts/cblocks.algo.ts:508 + // this.byteValue.value = '234' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323334 // "234" + app_global_put + + // tests/contracts/cblocks.algo.ts:509 + // this.byteValue.value = '235' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323335 // "235" + app_global_put + + // tests/contracts/cblocks.algo.ts:510 + // this.byteValue.value = '236' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323336 // "236" + app_global_put + + // tests/contracts/cblocks.algo.ts:511 + // this.byteValue.value = '237' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323337 // "237" + app_global_put + + // tests/contracts/cblocks.algo.ts:512 + // this.byteValue.value = '238' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323338 // "238" + app_global_put + + // tests/contracts/cblocks.algo.ts:513 + // this.byteValue.value = '239' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323339 // "239" + app_global_put + + // tests/contracts/cblocks.algo.ts:514 + // this.byteValue.value = '240' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323430 // "240" + app_global_put + + // tests/contracts/cblocks.algo.ts:515 + // this.byteValue.value = '241' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323431 // "241" + app_global_put + + // tests/contracts/cblocks.algo.ts:516 + // this.byteValue.value = '242' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323432 // "242" + app_global_put + + // tests/contracts/cblocks.algo.ts:517 + // this.byteValue.value = '243' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323433 // "243" + app_global_put + + // tests/contracts/cblocks.algo.ts:518 + // this.byteValue.value = '244' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323434 // "244" + app_global_put + + // tests/contracts/cblocks.algo.ts:519 + // this.byteValue.value = '245' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323435 // "245" + app_global_put + + // tests/contracts/cblocks.algo.ts:520 + // this.byteValue.value = '246' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323436 // "246" + app_global_put + + // tests/contracts/cblocks.algo.ts:521 + // this.byteValue.value = '247' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323437 // "247" + app_global_put + + // tests/contracts/cblocks.algo.ts:522 + // this.byteValue.value = '248' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323438 // "248" + app_global_put + + // tests/contracts/cblocks.algo.ts:523 + // this.byteValue.value = '249' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323439 // "249" + app_global_put + + // tests/contracts/cblocks.algo.ts:524 + // this.byteValue.value = '250' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323530 // "250" + app_global_put + + // tests/contracts/cblocks.algo.ts:525 + // this.byteValue.value = '251' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323531 // "251" + app_global_put + + // tests/contracts/cblocks.algo.ts:526 + // this.byteValue.value = '252' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323532 // "252" + app_global_put + + // tests/contracts/cblocks.algo.ts:527 + // this.byteValue.value = '253' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323533 // "253" + app_global_put + + // tests/contracts/cblocks.algo.ts:528 + // this.byteValue.value = '254' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323534 // "254" + app_global_put + + // tests/contracts/cblocks.algo.ts:529 + // this.byteValue.value = '255' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323535 // "255" + app_global_put + + // tests/contracts/cblocks.algo.ts:530 + // this.byteValue.value = '256' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x323536 // "256" + app_global_put + + // tests/contracts/cblocks.algo.ts:532 + // this.byteValue.value = + // 'This is a fairly long byteslice that should be put in the consant block because it is so long' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x54686973206973206120666169726c79206c6f6e672062797465736c69636520746861742073686f756c642062652070757420696e2074686520636f6e73616e7420626c6f636b206265636175736520697420697320736f206c6f6e67 // "This is a fairly long byteslice that should be put in the consant block because it is so long" + app_global_put + + // tests/contracts/cblocks.algo.ts:535 + // return a + b; + pushbytes "1" + pushbytes "257" + concat + retsub + +*abi_route_createApplication: + pushint 1 + return + +*create_NoOp: + pushbytes 0xb8447b36 // method "createApplication()void" + txna ApplicationArgs 0 + match *abi_route_createApplication + + // this contract does not implement the given ABI method for create NoOp + err + +*call_NoOp: + pushbytes 0xb13757d2 // method "largeBytecblock()string" + txna ApplicationArgs 0 + match *abi_route_largeBytecblock + + // this contract does not implement the given ABI method for call NoOp + err \ No newline at end of file diff --git a/tests/contracts/artifacts/BytecblockTest.arc32.json b/tests/contracts/artifacts/BytecblockTest.arc32.json new file mode 100644 index 000000000..301c18752 --- /dev/null +++ b/tests/contracts/artifacts/BytecblockTest.arc32.json @@ -0,0 +1,70 @@ +{ + "hints": { + "largeBytecblock()string": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": { + "byteValue": { + "type": "bytes", + "key": "byteValue" + } + }, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 1, + "num_uints": 0 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgMHgwYTgxMDEKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBsYXJnZUJ5dGVjYmxvY2soKXN0cmluZwoqYWJpX3JvdXRlX2xhcmdlQnl0ZWNibG9jazoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGxhcmdlQnl0ZWNibG9jaygpc3RyaW5nCgljYWxsc3ViIGxhcmdlQnl0ZWNibG9jawoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbGFyZ2VCeXRlY2Jsb2NrKCk6IHN0cmluZwpsYXJnZUJ5dGVjYmxvY2s6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3NAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJcHVzaGludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgMHgwYTgxMDEgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyIC8vICIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzIC8vICIzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0IC8vICI0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1IC8vICI1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2IC8vICI2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3IC8vICI3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4IC8vICI4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5IC8vICI5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwIC8vICIxMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMSAvLyAiMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIgLy8gIjEyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzIC8vICIxMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNCAvLyAiMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUgLy8gIjE1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2IC8vICIxNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNyAvLyAiMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzggLy8gIjE4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5IC8vICIxOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMCAvLyAiMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEgLy8gIjIxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyIC8vICIyMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMyAvLyAiMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQgLy8gIjI0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM1IC8vICIyNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNiAvLyAiMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzcgLy8gIjI3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM4IC8vICIyOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzOSAvLyAiMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzAgLy8gIjMwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMzMxIC8vICIzMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzMyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMzMiAvLyAiMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzMgLy8gIjMzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMzM0IC8vICIzNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMzNSAvLyAiMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzYgLy8gIjM2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMzM3IC8vICIzNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMzOCAvLyAiMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzkgLy8gIjM5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDMwIC8vICI0MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQzMSAvLyAiNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0MzIgLy8gIjQyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDMzIC8vICI0MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQzNCAvLyAiNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0MzUgLy8gIjQ1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDM2IC8vICI0NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQzNyAvLyAiNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0MzggLy8gIjQ4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDM5IC8vICI0OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzMCAvLyAiNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1MzEgLy8gIjUxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNTMyIC8vICI1MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzMyAvLyAiNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1MzQgLy8gIjU0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNTM1IC8vICI1NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzNiAvLyAiNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzMxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1MzcgLy8gIjU3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNTM4IC8vICI1OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzOSAvLyAiNTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzAgLy8gIjYwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNjMxIC8vICI2MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzYyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYzMiAvLyAiNjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzMgLy8gIjYzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNjM0IC8vICI2NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYzNSAvLyAiNjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzYgLy8gIjY2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNjM3IC8vICI2NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYzOCAvLyAiNjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzkgLy8gIjY5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzMwIC8vICI3MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzcxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzczMSAvLyAiNzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3MzIgLy8gIjcyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzMzIC8vICI3MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzczNCAvLyAiNzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3MzUgLy8gIjc1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzM2IC8vICI3NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzczNyAvLyAiNzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3MzggLy8gIjc4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzM5IC8vICI3OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzMCAvLyAiODAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4MzEgLy8gIjgxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzODMyIC8vICI4MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzMyAvLyAiODMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4MzQgLy8gIjg0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzODM1IC8vICI4NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzNiAvLyAiODYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzYxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4MzcgLy8gIjg3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzODM4IC8vICI4OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzOSAvLyAiODkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzAgLy8gIjkwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzOTMxIC8vICI5MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzkyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkzMiAvLyAiOTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzMgLy8gIjkzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzOTM0IC8vICI5NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkzNSAvLyAiOTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzYgLy8gIjk2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzOTM3IC8vICI5NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNzIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkzOCAvLyAiOTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzkgLy8gIjk5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTAwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDMwIC8vICIxMDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwMzEgLy8gIjEwMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEwMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzAzMiAvLyAiMTAyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTAzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDMzIC8vICIxMDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwMzQgLy8gIjEwNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEwNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzAzNSAvLyAiMTA1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTA2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDM2IC8vICIxMDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwMzcgLy8gIjEwNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozODIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEwOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzAzOCAvLyAiMTA4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTA5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDM5IC8vICIxMDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzAgLy8gIjExMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozODUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzEzMSAvLyAiMTExIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTEyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMTMyIC8vICIxMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzMgLy8gIjExMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozODgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzEzNCAvLyAiMTE0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTE1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMTM1IC8vICIxMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzYgLy8gIjExNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzEzNyAvLyAiMTE3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM5MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTE4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMTM4IC8vICIxMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzkgLy8gIjExOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzMCAvLyAiMTIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM5NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTIxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMjMxIC8vICIxMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMyMzIgLy8gIjEyMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzMyAvLyAiMTIzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM5OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTI0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMjM0IC8vICIxMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMyMzUgLy8gIjEyNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzNiAvLyAiMTI2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQwMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTI3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMjM3IC8vICIxMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMyMzggLy8gIjEyOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzOSAvLyAiMTI5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQwNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTMwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzMwIC8vICIxMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzMzEgLy8gIjEzMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEzMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzMzMiAvLyAiMTMyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQwNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTMzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzMzIC8vICIxMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzMzQgLy8gIjEzNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEzNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzMzNSAvLyAiMTM1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTM2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzM2IC8vICIxMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzMzcgLy8gIjEzNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MTIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEzOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzMzOCAvLyAiMTM4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTM5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzM5IC8vICIxMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzAgLy8gIjE0MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MTUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzQzMSAvLyAiMTQxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTQyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNDMyIC8vICIxNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzMgLy8gIjE0MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MTgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzQzNCAvLyAiMTQ0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTQ1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNDM1IC8vICIxNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzYgLy8gIjE0NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MjEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzQzNyAvLyAiMTQ3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQyMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTQ4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNDM4IC8vICIxNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzkgLy8gIjE0OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MjQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzMCAvLyAiMTUwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQyNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTUxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNTMxIC8vICIxNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM1MzIgLy8gIjE1MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MjcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzMyAvLyAiMTUzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQyOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTU0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNTM0IC8vICIxNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM1MzUgLy8gIjE1NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzNiAvLyAiMTU2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQzMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTU3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNTM3IC8vICIxNTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM1MzggLy8gIjE1OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzOSAvLyAiMTU5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQzNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTYwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjMwIC8vICIxNjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2MzEgLy8gIjE2MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE2MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzYzMiAvLyAiMTYyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQzNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTYzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjMzIC8vICIxNjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2MzQgLy8gIjE2NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE2NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzYzNSAvLyAiMTY1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTY2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjM2IC8vICIxNjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2MzcgLy8gIjE2NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE2OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzYzOCAvLyAiMTY4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTY5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjM5IC8vICIxNjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzAgLy8gIjE3MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzczMSAvLyAiMTcxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTcyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNzMyIC8vICIxNzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzMgLy8gIjE3MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzczNCAvLyAiMTc0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTc1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNzM1IC8vICIxNzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzYgLy8gIjE3NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzczNyAvLyAiMTc3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ1MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTc4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNzM4IC8vICIxNzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzkgLy8gIjE3OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzMCAvLyAiMTgwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ1NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTgxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzODMxIC8vICIxODEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM4MzIgLy8gIjE4MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzMyAvLyAiMTgzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ1OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTg0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzODM0IC8vICIxODQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM4MzUgLy8gIjE4NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzNiAvLyAiMTg2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ2MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTg3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzODM3IC8vICIxODciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM4MzggLy8gIjE4OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzOSAvLyAiMTg5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ2NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTkwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTMwIC8vICIxOTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5MzEgLy8gIjE5MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE5MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzkzMiAvLyAiMTkyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ2NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTkzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTMzIC8vICIxOTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5MzQgLy8gIjE5NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE5NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzkzNSAvLyAiMTk1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTk2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTM2IC8vICIxOTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5MzcgLy8gIjE5NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NzIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE5OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzkzOCAvLyAiMTk4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTk5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTM5IC8vICIxOTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzAgLy8gIjIwMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NzUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzAzMSAvLyAiMjAxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjAyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMDMyIC8vICIyMDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzMgLy8gIjIwMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NzgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzAzNCAvLyAiMjA0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjA1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMDM1IC8vICIyMDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzYgLy8gIjIwNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0ODEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzAzNyAvLyAiMjA3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ4MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjA4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMDM4IC8vICIyMDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzkgLy8gIjIwOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0ODQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzMCAvLyAiMjEwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ4NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjExJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMTMxIC8vICIyMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMxMzIgLy8gIjIxMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0ODcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzMyAvLyAiMjEzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ4OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjE0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMTM0IC8vICIyMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMxMzUgLy8gIjIxNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzNiAvLyAiMjE2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ5MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjE3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMTM3IC8vICIyMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMxMzggLy8gIjIxOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzOSAvLyAiMjE5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ5NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjIwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjMwIC8vICIyMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyMzEgLy8gIjIyMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIyMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzIzMiAvLyAiMjIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ5NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjIzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjMzIC8vICIyMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyMzQgLy8gIjIyNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIyNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzIzNSAvLyAiMjI1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjI2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjM2IC8vICIyMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyMzcgLy8gIjIyNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIyOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzIzOCAvLyAiMjI4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjI5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjM5IC8vICIyMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzAgLy8gIjIzMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzMzMSAvLyAiMjMxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjMyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMzMyIC8vICIyMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzMgLy8gIjIzMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzMzNCAvLyAiMjM0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjM1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMzM1IC8vICIyMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzYgLy8gIjIzNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzMzNyAvLyAiMjM3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUxMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjM4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMzM4IC8vICIyMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzkgLy8gIjIzOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzMCAvLyAiMjQwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUxNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNDMxIC8vICIyNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM0MzIgLy8gIjI0MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzMyAvLyAiMjQzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUxOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQ0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNDM0IC8vICIyNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM0MzUgLy8gIjI0NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzNiAvLyAiMjQ2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUyMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQ3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNDM3IC8vICIyNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM0MzggLy8gIjI0OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzOSAvLyAiMjQ5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUyNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjUwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNTMwIC8vICIyNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM1MzEgLy8gIjI1MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI1MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzUzMiAvLyAiMjUyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUyNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjUzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNTMzIC8vICIyNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM1MzQgLy8gIjI1NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI1NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzUzNSAvLyAiMjU1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUzMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjU2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNTM2IC8vICIyNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9CgkvLyAgICAgICAnVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4NTQ2ODY5NzMyMDY5NzMyMDYxMjA2NjYxNjk3MjZjNzkyMDZjNmY2ZTY3MjA2Mjc5NzQ2NTczNmM2OTYzNjUyMDc0Njg2MTc0MjA3MzY4NmY3NTZjNjQyMDYyNjUyMDcwNzU3NDIwNjk2ZTIwNzQ2ODY1MjA2MzZmNmU3MzYxNmU3NDIwNjI2YzZmNjM2YjIwNjI2NTYzNjE3NTczNjUyMDY5NzQyMDY5NzMyMDczNmYyMDZjNmY2ZTY3IC8vICJUaGlzIGlzIGEgZmFpcmx5IGxvbmcgYnl0ZXNsaWNlIHRoYXQgc2hvdWxkIGJlIHB1dCBpbiB0aGUgY29uc2FudCBibG9jayBiZWNhdXNlIGl0IGlzIHNvIGxvbmciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTM1CgkvLyByZXR1cm4gYSArIGI7CglwdXNoYnl0ZXMgIjEiCglwdXNoYnl0ZXMgIjI1NyIKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhiMTM3NTdkMiAvLyBtZXRob2QgImxhcmdlQnl0ZWNibG9jaygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9sYXJnZUJ5dGVjYmxvY2sKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "BytecblockTest", + "desc": "", + "methods": [ + { + "name": "largeBytecblock", + "args": [], + "returns": { + "type": "string" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/BytecblockTest.arc4.json b/tests/contracts/artifacts/BytecblockTest.arc4.json new file mode 100644 index 000000000..fe0e6d184 --- /dev/null +++ b/tests/contracts/artifacts/BytecblockTest.arc4.json @@ -0,0 +1,20 @@ +{ + "name": "BytecblockTest", + "desc": "", + "methods": [ + { + "name": "largeBytecblock", + "args": [], + "returns": { + "type": "string" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] +} \ No newline at end of file diff --git a/tests/contracts/artifacts/BytecblockTest.arc56_draft.json b/tests/contracts/artifacts/BytecblockTest.arc56_draft.json new file mode 100644 index 000000000..83bda7902 --- /dev/null +++ b/tests/contracts/artifacts/BytecblockTest.arc56_draft.json @@ -0,0 +1,115 @@ +{ + "name": "BytecblockTest", + "desc": "", + "methods": [ + { + "name": "largeBytecblock", + "args": [], + "returns": { + "type": "string" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "arcs": [ + 4, + 56 + ], + "structs": {}, + "state": { + "schema": { + "global": { + "bytes": 1, + "ints": 0 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": { + "byteValue": { + "key": "Ynl0ZVZhbHVl", + "keyType": "AVMBytes", + "valueType": "AVMBytes" + } + }, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": {}, + "box": {} + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": { + "sourceInfo": [ + { + "pc": [ + 52 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 4464 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 4478 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgMHgwYTgxMDEKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBsYXJnZUJ5dGVjYmxvY2soKXN0cmluZwoqYWJpX3JvdXRlX2xhcmdlQnl0ZWNibG9jazoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGxhcmdlQnl0ZWNibG9jaygpc3RyaW5nCgljYWxsc3ViIGxhcmdlQnl0ZWNibG9jawoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbGFyZ2VCeXRlY2Jsb2NrKCk6IHN0cmluZwpsYXJnZUJ5dGVjYmxvY2s6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3NAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJcHVzaGludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgMHgwYTgxMDEgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJcHVzaGludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyIC8vICIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzIC8vICIzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0IC8vICI0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI3OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1IC8vICI1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2IC8vICI2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3IC8vICI3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4IC8vICI4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5IC8vICI5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwIC8vICIxMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMSAvLyAiMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIgLy8gIjEyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzIC8vICIxMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNCAvLyAiMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUgLy8gIjE1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2IC8vICIxNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNyAvLyAiMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzggLy8gIjE4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5IC8vICIxOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMCAvLyAiMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEgLy8gIjIxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyIC8vICIyMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMyAvLyAiMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQgLy8gIjI0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM1IC8vICIyNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNiAvLyAiMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzcgLy8gIjI3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM4IC8vICIyOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzOSAvLyAiMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzAgLy8gIjMwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMzMxIC8vICIzMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzMyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMzMiAvLyAiMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzMgLy8gIjMzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMzM0IC8vICIzNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMzNSAvLyAiMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzYgLy8gIjM2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMzM3IC8vICIzNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMzOCAvLyAiMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMzMzkgLy8gIjM5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDMwIC8vICI0MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQzMSAvLyAiNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0MzIgLy8gIjQyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDMzIC8vICI0MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQzNCAvLyAiNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0MzUgLy8gIjQ1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDM2IC8vICI0NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQzNyAvLyAiNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM0MzggLy8gIjQ4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNDM5IC8vICI0OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzMCAvLyAiNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1MzEgLy8gIjUxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNTMyIC8vICI1MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzMyAvLyAiNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1MzQgLy8gIjU0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNTM1IC8vICI1NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzNiAvLyAiNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzMxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM1MzcgLy8gIjU3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNTM4IC8vICI1OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUzOSAvLyAiNTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzAgLy8gIjYwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNjMxIC8vICI2MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzYyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYzMiAvLyAiNjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzMgLy8gIjYzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNjM0IC8vICI2NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYzNSAvLyAiNjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzYgLy8gIjY2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNjM3IC8vICI2NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYzOCAvLyAiNjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM2MzkgLy8gIjY5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzMwIC8vICI3MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzcxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzczMSAvLyAiNzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3MzIgLy8gIjcyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzMzIC8vICI3MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzczNCAvLyAiNzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3MzUgLy8gIjc1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzM2IC8vICI3NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzczNyAvLyAiNzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM3MzggLy8gIjc4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzNzM5IC8vICI3OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzMCAvLyAiODAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4MzEgLy8gIjgxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzODMyIC8vICI4MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzMyAvLyAiODMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4MzQgLy8gIjg0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzODM1IC8vICI4NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzNiAvLyAiODYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzYxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM4MzcgLy8gIjg3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzODM4IC8vICI4OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzgzOSAvLyAiODkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzAgLy8gIjkwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzOTMxIC8vICI5MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzkyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkzMiAvLyAiOTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzMgLy8gIjkzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzOTM0IC8vICI5NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkzNSAvLyAiOTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzYgLy8gIjk2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzOTM3IC8vICI5NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNzIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkzOCAvLyAiOTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDM5MzkgLy8gIjk5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTAwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDMwIC8vICIxMDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwMzEgLy8gIjEwMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEwMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzAzMiAvLyAiMTAyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTAzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDMzIC8vICIxMDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwMzQgLy8gIjEwNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEwNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzAzNSAvLyAiMTA1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTA2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDM2IC8vICIxMDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMwMzcgLy8gIjEwNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozODIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEwOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzAzOCAvLyAiMTA4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTA5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMDM5IC8vICIxMDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzAgLy8gIjExMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozODUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzEzMSAvLyAiMTExIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTEyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMTMyIC8vICIxMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzMgLy8gIjExMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozODgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzEzNCAvLyAiMTE0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM4OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTE1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMTM1IC8vICIxMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzYgLy8gIjExNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzEzNyAvLyAiMTE3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM5MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTE4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMTM4IC8vICIxMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMxMzkgLy8gIjExOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzMCAvLyAiMTIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM5NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTIxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMjMxIC8vICIxMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMyMzIgLy8gIjEyMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzMyAvLyAiMTIzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM5OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTI0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMjM0IC8vICIxMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMyMzUgLy8gIjEyNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzNiAvLyAiMTI2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQwMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTI3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMjM3IC8vICIxMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMyMzggLy8gIjEyOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEyOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzIzOSAvLyAiMTI5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQwNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTMwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzMwIC8vICIxMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzMzEgLy8gIjEzMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEzMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzMzMiAvLyAiMTMyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQwNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTMzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzMzIC8vICIxMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzMzQgLy8gIjEzNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MDkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEzNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzMzNSAvLyAiMTM1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTM2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzM2IC8vICIxMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTMzMzcgLy8gIjEzNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MTIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzEzOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzMzOCAvLyAiMTM4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTM5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzMzM5IC8vICIxMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzAgLy8gIjE0MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MTUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzQzMSAvLyAiMTQxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTQyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNDMyIC8vICIxNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzMgLy8gIjE0MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MTgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzQzNCAvLyAiMTQ0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQxOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTQ1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNDM1IC8vICIxNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzYgLy8gIjE0NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MjEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzQzNyAvLyAiMTQ3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQyMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTQ4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNDM4IC8vICIxNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM0MzkgLy8gIjE0OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MjQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzMCAvLyAiMTUwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQyNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTUxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNTMxIC8vICIxNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM1MzIgLy8gIjE1MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MjcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzMyAvLyAiMTUzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQyOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTU0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNTM0IC8vICIxNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM1MzUgLy8gIjE1NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzNiAvLyAiMTU2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQzMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTU3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNTM3IC8vICIxNTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM1MzggLy8gIjE1OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE1OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzUzOSAvLyAiMTU5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQzNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTYwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjMwIC8vICIxNjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2MzEgLy8gIjE2MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE2MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzYzMiAvLyAiMTYyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQzNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTYzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjMzIC8vICIxNjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2MzQgLy8gIjE2NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE2NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzYzNSAvLyAiMTY1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTY2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjM2IC8vICIxNjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM2MzcgLy8gIjE2NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE2OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzYzOCAvLyAiMTY4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTY5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNjM5IC8vICIxNjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzAgLy8gIjE3MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzczMSAvLyAiMTcxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTcyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNzMyIC8vICIxNzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzMgLy8gIjE3MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzczNCAvLyAiMTc0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ0OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTc1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNzM1IC8vICIxNzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzYgLy8gIjE3NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzczNyAvLyAiMTc3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ1MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTc4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzNzM4IC8vICIxNzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM3MzkgLy8gIjE3OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzMCAvLyAiMTgwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ1NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTgxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzODMxIC8vICIxODEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM4MzIgLy8gIjE4MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzMyAvLyAiMTgzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ1OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTg0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzODM0IC8vICIxODQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM4MzUgLy8gIjE4NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzNiAvLyAiMTg2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ2MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTg3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzODM3IC8vICIxODciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM4MzggLy8gIjE4OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE4OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzgzOSAvLyAiMTg5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ2NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTkwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTMwIC8vICIxOTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5MzEgLy8gIjE5MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE5MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzkzMiAvLyAiMTkyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ2NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTkzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTMzIC8vICIxOTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5MzQgLy8gIjE5NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE5NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzkzNSAvLyAiMTk1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTk2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTM2IC8vICIxOTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMTM5MzcgLy8gIjE5NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NzIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE5OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMxMzkzOCAvLyAiMTk4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTk5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzEzOTM5IC8vICIxOTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzAgLy8gIjIwMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NzUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzAzMSAvLyAiMjAxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjAyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMDMyIC8vICIyMDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzMgLy8gIjIwMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NzgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzAzNCAvLyAiMjA0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ3OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjA1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMDM1IC8vICIyMDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzYgLy8gIjIwNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0ODEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzAzNyAvLyAiMjA3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ4MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjA4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMDM4IC8vICIyMDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMwMzkgLy8gIjIwOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0ODQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzMCAvLyAiMjEwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ4NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjExJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMTMxIC8vICIyMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMxMzIgLy8gIjIxMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0ODcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzMyAvLyAiMjEzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ4OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjE0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMTM0IC8vICIyMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMxMzUgLy8gIjIxNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzNiAvLyAiMjE2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ5MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjE3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMTM3IC8vICIyMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMxMzggLy8gIjIxOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIxOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzEzOSAvLyAiMjE5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ5NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjIwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjMwIC8vICIyMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyMzEgLy8gIjIyMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIyMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzIzMiAvLyAiMjIyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjQ5NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjIzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjMzIC8vICIyMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyMzQgLy8gIjIyNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OTkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIyNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzIzNSAvLyAiMjI1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjI2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjM2IC8vICIyMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMyMzcgLy8gIjIyNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIyOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzIzOCAvLyAiMjI4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjI5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMjM5IC8vICIyMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzAgLy8gIjIzMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzMzMSAvLyAiMjMxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjMyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMzMyIC8vICIyMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzMgLy8gIjIzMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzMzNCAvLyAiMjM0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUwOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjM1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMzM1IC8vICIyMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzYgLy8gIjIzNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzMzNyAvLyAiMjM3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUxMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjM4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzMzM4IC8vICIyMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjMzMzkgLy8gIjIzOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzMCAvLyAiMjQwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUxNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNDMxIC8vICIyNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM0MzIgLy8gIjI0MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzMyAvLyAiMjQzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUxOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQ0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNDM0IC8vICIyNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM0MzUgLy8gIjI0NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzNiAvLyAiMjQ2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUyMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQ3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNDM3IC8vICIyNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM0MzggLy8gIjI0OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI0OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzQzOSAvLyAiMjQ5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUyNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjUwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNTMwIC8vICIyNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM1MzEgLy8gIjI1MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI1MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzUzMiAvLyAiMjUyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUyNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjUzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNTMzIC8vICIyNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglwdXNoYnl0ZXMgMHgzMjM1MzQgLy8gIjI1NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI1NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCXB1c2hieXRlcyAweDMyMzUzNSAvLyAiMjU1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjUzMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjU2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIzNTM2IC8vICIyNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9CgkvLyAgICAgICAnVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4NTQ2ODY5NzMyMDY5NzMyMDYxMjA2NjYxNjk3MjZjNzkyMDZjNmY2ZTY3MjA2Mjc5NzQ2NTczNmM2OTYzNjUyMDc0Njg2MTc0MjA3MzY4NmY3NTZjNjQyMDYyNjUyMDcwNzU3NDIwNjk2ZTIwNzQ2ODY1MjA2MzZmNmU3MzYxNmU3NDIwNjI2YzZmNjM2YjIwNjI2NTYzNjE3NTczNjUyMDY5NzQyMDY5NzMyMDczNmYyMDZjNmY2ZTY3IC8vICJUaGlzIGlzIGEgZmFpcmx5IGxvbmcgYnl0ZXNsaWNlIHRoYXQgc2hvdWxkIGJlIHB1dCBpbiB0aGUgY29uc2FudCBibG9jayBiZWNhdXNlIGl0IGlzIHNvIGxvbmciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTM1CgkvLyByZXR1cm4gYSArIGI7CglwdXNoYnl0ZXMgIjEiCglwdXNoYnl0ZXMgIjI1NyIKCWNvbmNhdAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhiMTM3NTdkMiAvLyBtZXRob2QgImxhcmdlQnl0ZWNibG9jaygpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9sYXJnZUJ5dGVjYmxvY2sKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "byteCode": { + "approval": "CiYCCWJ5dGVWYWx1ZQMKgQExGBSBBgsxGQiNDBE9AAAAAAAAAAAAABEvAAAAAAAAAAAAAACABBUffHWIAA1JFRZXBgJMUFCwgQFDigABsYEGshCBALIBgAMKgQFJsh6yH4EFshmzgAlieXRlVmFsdWWAATJngAlieXRlVmFsdWWAATNngAlieXRlVmFsdWWAATRngAlieXRlVmFsdWWAATVngAlieXRlVmFsdWWAATZngAlieXRlVmFsdWWAATdngAlieXRlVmFsdWWAAThngAlieXRlVmFsdWWAATlngAlieXRlVmFsdWWAAjEwZ4AJYnl0ZVZhbHVlgAIxMWeACWJ5dGVWYWx1ZYACMTJngAlieXRlVmFsdWWAAjEzZ4AJYnl0ZVZhbHVlgAIxNGeACWJ5dGVWYWx1ZYACMTVngAlieXRlVmFsdWWAAjE2Z4AJYnl0ZVZhbHVlgAIxN2eACWJ5dGVWYWx1ZYACMThngAlieXRlVmFsdWWAAjE5Z4AJYnl0ZVZhbHVlgAIyMGeACWJ5dGVWYWx1ZYACMjFngAlieXRlVmFsdWWAAjIyZ4AJYnl0ZVZhbHVlgAIyM2eACWJ5dGVWYWx1ZYACMjRngAlieXRlVmFsdWWAAjI1Z4AJYnl0ZVZhbHVlgAIyNmeACWJ5dGVWYWx1ZYACMjdngAlieXRlVmFsdWWAAjI4Z4AJYnl0ZVZhbHVlgAIyOWeACWJ5dGVWYWx1ZYACMzBngAlieXRlVmFsdWWAAjMxZ4AJYnl0ZVZhbHVlgAIzMmeACWJ5dGVWYWx1ZYACMzNngAlieXRlVmFsdWWAAjM0Z4AJYnl0ZVZhbHVlgAIzNWeACWJ5dGVWYWx1ZYACMzZngAlieXRlVmFsdWWAAjM3Z4AJYnl0ZVZhbHVlgAIzOGeACWJ5dGVWYWx1ZYACMzlngAlieXRlVmFsdWWAAjQwZ4AJYnl0ZVZhbHVlgAI0MWeACWJ5dGVWYWx1ZYACNDJngAlieXRlVmFsdWWAAjQzZ4AJYnl0ZVZhbHVlgAI0NGeACWJ5dGVWYWx1ZYACNDVngAlieXRlVmFsdWWAAjQ2Z4AJYnl0ZVZhbHVlgAI0N2eACWJ5dGVWYWx1ZYACNDhngAlieXRlVmFsdWWAAjQ5Z4AJYnl0ZVZhbHVlgAI1MGeACWJ5dGVWYWx1ZYACNTFngAlieXRlVmFsdWWAAjUyZ4AJYnl0ZVZhbHVlgAI1M2eACWJ5dGVWYWx1ZYACNTRngAlieXRlVmFsdWWAAjU1Z4AJYnl0ZVZhbHVlgAI1NmeACWJ5dGVWYWx1ZYACNTdngAlieXRlVmFsdWWAAjU4Z4AJYnl0ZVZhbHVlgAI1OWeACWJ5dGVWYWx1ZYACNjBngAlieXRlVmFsdWWAAjYxZ4AJYnl0ZVZhbHVlgAI2MmeACWJ5dGVWYWx1ZYACNjNngAlieXRlVmFsdWWAAjY0Z4AJYnl0ZVZhbHVlgAI2NWeACWJ5dGVWYWx1ZYACNjZngAlieXRlVmFsdWWAAjY3Z4AJYnl0ZVZhbHVlgAI2OGeACWJ5dGVWYWx1ZYACNjlngAlieXRlVmFsdWWAAjcwZ4AJYnl0ZVZhbHVlgAI3MWeACWJ5dGVWYWx1ZYACNzJngAlieXRlVmFsdWWAAjczZ4AJYnl0ZVZhbHVlgAI3NGeACWJ5dGVWYWx1ZYACNzVngAlieXRlVmFsdWWAAjc2Z4AJYnl0ZVZhbHVlgAI3N2eACWJ5dGVWYWx1ZYACNzhngAlieXRlVmFsdWWAAjc5Z4AJYnl0ZVZhbHVlgAI4MGeACWJ5dGVWYWx1ZYACODFngAlieXRlVmFsdWWAAjgyZ4AJYnl0ZVZhbHVlgAI4M2eACWJ5dGVWYWx1ZYACODRngAlieXRlVmFsdWWAAjg1Z4AJYnl0ZVZhbHVlgAI4NmeACWJ5dGVWYWx1ZYACODdngAlieXRlVmFsdWWAAjg4Z4AJYnl0ZVZhbHVlgAI4OWeACWJ5dGVWYWx1ZYACOTBngAlieXRlVmFsdWWAAjkxZ4AJYnl0ZVZhbHVlgAI5MmeACWJ5dGVWYWx1ZYACOTNngAlieXRlVmFsdWWAAjk0Z4AJYnl0ZVZhbHVlgAI5NWeACWJ5dGVWYWx1ZYACOTZngAlieXRlVmFsdWWAAjk3Z4AJYnl0ZVZhbHVlgAI5OGeACWJ5dGVWYWx1ZYACOTlngAlieXRlVmFsdWWAAzEwMGeACWJ5dGVWYWx1ZYADMTAxZ4AJYnl0ZVZhbHVlgAMxMDJngAlieXRlVmFsdWWAAzEwM2eACWJ5dGVWYWx1ZYADMTA0Z4AJYnl0ZVZhbHVlgAMxMDVngAlieXRlVmFsdWWAAzEwNmeACWJ5dGVWYWx1ZYADMTA3Z4AJYnl0ZVZhbHVlgAMxMDhngAlieXRlVmFsdWWAAzEwOWeACWJ5dGVWYWx1ZYADMTEwZ4AJYnl0ZVZhbHVlgAMxMTFngAlieXRlVmFsdWWAAzExMmeACWJ5dGVWYWx1ZYADMTEzZ4AJYnl0ZVZhbHVlgAMxMTRngAlieXRlVmFsdWWAAzExNWeACWJ5dGVWYWx1ZYADMTE2Z4AJYnl0ZVZhbHVlgAMxMTdngAlieXRlVmFsdWWAAzExOGeACWJ5dGVWYWx1ZYADMTE5Z4AJYnl0ZVZhbHVlgAMxMjBngAlieXRlVmFsdWWAAzEyMWeACWJ5dGVWYWx1ZYADMTIyZ4AJYnl0ZVZhbHVlgAMxMjNngAlieXRlVmFsdWWAAzEyNGeACWJ5dGVWYWx1ZYADMTI1Z4AJYnl0ZVZhbHVlgAMxMjZngAlieXRlVmFsdWWAAzEyN2eACWJ5dGVWYWx1ZYADMTI4Z4AJYnl0ZVZhbHVlgAMxMjlngAlieXRlVmFsdWWAAzEzMGeACWJ5dGVWYWx1ZYADMTMxZ4AJYnl0ZVZhbHVlgAMxMzJngAlieXRlVmFsdWWAAzEzM2eACWJ5dGVWYWx1ZYADMTM0Z4AJYnl0ZVZhbHVlgAMxMzVngAlieXRlVmFsdWWAAzEzNmeACWJ5dGVWYWx1ZYADMTM3Z4AJYnl0ZVZhbHVlgAMxMzhngAlieXRlVmFsdWWAAzEzOWeACWJ5dGVWYWx1ZYADMTQwZ4AJYnl0ZVZhbHVlgAMxNDFngAlieXRlVmFsdWWAAzE0MmeACWJ5dGVWYWx1ZYADMTQzZ4AJYnl0ZVZhbHVlgAMxNDRngAlieXRlVmFsdWWAAzE0NWeACWJ5dGVWYWx1ZYADMTQ2Z4AJYnl0ZVZhbHVlgAMxNDdngAlieXRlVmFsdWWAAzE0OGeACWJ5dGVWYWx1ZYADMTQ5Z4AJYnl0ZVZhbHVlgAMxNTBngAlieXRlVmFsdWWAAzE1MWeACWJ5dGVWYWx1ZYADMTUyZ4AJYnl0ZVZhbHVlgAMxNTNngAlieXRlVmFsdWWAAzE1NGeACWJ5dGVWYWx1ZYADMTU1Z4AJYnl0ZVZhbHVlgAMxNTZngAlieXRlVmFsdWWAAzE1N2eACWJ5dGVWYWx1ZYADMTU4Z4AJYnl0ZVZhbHVlgAMxNTlngAlieXRlVmFsdWWAAzE2MGeACWJ5dGVWYWx1ZYADMTYxZ4AJYnl0ZVZhbHVlgAMxNjJngAlieXRlVmFsdWWAAzE2M2eACWJ5dGVWYWx1ZYADMTY0Z4AJYnl0ZVZhbHVlgAMxNjVngAlieXRlVmFsdWWAAzE2NmeACWJ5dGVWYWx1ZYADMTY3Z4AJYnl0ZVZhbHVlgAMxNjhngAlieXRlVmFsdWWAAzE2OWeACWJ5dGVWYWx1ZYADMTcwZ4AJYnl0ZVZhbHVlgAMxNzFngAlieXRlVmFsdWWAAzE3MmeACWJ5dGVWYWx1ZYADMTczZ4AJYnl0ZVZhbHVlgAMxNzRngAlieXRlVmFsdWWAAzE3NWeACWJ5dGVWYWx1ZYADMTc2Z4AJYnl0ZVZhbHVlgAMxNzdngAlieXRlVmFsdWWAAzE3OGeACWJ5dGVWYWx1ZYADMTc5Z4AJYnl0ZVZhbHVlgAMxODBngAlieXRlVmFsdWWAAzE4MWeACWJ5dGVWYWx1ZYADMTgyZ4AJYnl0ZVZhbHVlgAMxODNngAlieXRlVmFsdWWAAzE4NGeACWJ5dGVWYWx1ZYADMTg1Z4AJYnl0ZVZhbHVlgAMxODZngAlieXRlVmFsdWWAAzE4N2eACWJ5dGVWYWx1ZYADMTg4Z4AJYnl0ZVZhbHVlgAMxODlngAlieXRlVmFsdWWAAzE5MGeACWJ5dGVWYWx1ZYADMTkxZ4AJYnl0ZVZhbHVlgAMxOTJngAlieXRlVmFsdWWAAzE5M2eACWJ5dGVWYWx1ZYADMTk0Z4AJYnl0ZVZhbHVlgAMxOTVngAlieXRlVmFsdWWAAzE5NmeACWJ5dGVWYWx1ZYADMTk3Z4AJYnl0ZVZhbHVlgAMxOThngAlieXRlVmFsdWWAAzE5OWeACWJ5dGVWYWx1ZYADMjAwZ4AJYnl0ZVZhbHVlgAMyMDFngAlieXRlVmFsdWWAAzIwMmeACWJ5dGVWYWx1ZYADMjAzZ4AJYnl0ZVZhbHVlgAMyMDRngAlieXRlVmFsdWWAAzIwNWeACWJ5dGVWYWx1ZYADMjA2Z4AJYnl0ZVZhbHVlgAMyMDdngAlieXRlVmFsdWWAAzIwOGeACWJ5dGVWYWx1ZYADMjA5Z4AJYnl0ZVZhbHVlgAMyMTBngAlieXRlVmFsdWWAAzIxMWeACWJ5dGVWYWx1ZYADMjEyZ4AJYnl0ZVZhbHVlgAMyMTNngAlieXRlVmFsdWWAAzIxNGeACWJ5dGVWYWx1ZYADMjE1Z4AJYnl0ZVZhbHVlgAMyMTZngAlieXRlVmFsdWWAAzIxN2eACWJ5dGVWYWx1ZYADMjE4Z4AJYnl0ZVZhbHVlgAMyMTlngAlieXRlVmFsdWWAAzIyMGeACWJ5dGVWYWx1ZYADMjIxZ4AJYnl0ZVZhbHVlgAMyMjJngAlieXRlVmFsdWWAAzIyM2eACWJ5dGVWYWx1ZYADMjI0Z4AJYnl0ZVZhbHVlgAMyMjVngAlieXRlVmFsdWWAAzIyNmeACWJ5dGVWYWx1ZYADMjI3Z4AJYnl0ZVZhbHVlgAMyMjhngAlieXRlVmFsdWWAAzIyOWeACWJ5dGVWYWx1ZYADMjMwZ4AJYnl0ZVZhbHVlgAMyMzFngAlieXRlVmFsdWWAAzIzMmeACWJ5dGVWYWx1ZYADMjMzZ4AJYnl0ZVZhbHVlgAMyMzRngAlieXRlVmFsdWWAAzIzNWeACWJ5dGVWYWx1ZYADMjM2Z4AJYnl0ZVZhbHVlgAMyMzdngAlieXRlVmFsdWWAAzIzOGeACWJ5dGVWYWx1ZYADMjM5Z4AJYnl0ZVZhbHVlgAMyNDBngAlieXRlVmFsdWWAAzI0MWeACWJ5dGVWYWx1ZYADMjQyZ4AJYnl0ZVZhbHVlgAMyNDNngAlieXRlVmFsdWWAAzI0NGeACWJ5dGVWYWx1ZYADMjQ1Z4AJYnl0ZVZhbHVlgAMyNDZngAlieXRlVmFsdWWAAzI0N2eACWJ5dGVWYWx1ZYADMjQ4Z4AJYnl0ZVZhbHVlgAMyNDlngAlieXRlVmFsdWWAAzI1MGeACWJ5dGVWYWx1ZYADMjUxZ4AJYnl0ZVZhbHVlgAMyNTJngAlieXRlVmFsdWWAAzI1M2eACWJ5dGVWYWx1ZYADMjU0Z4AJYnl0ZVZhbHVlgAMyNTVngAlieXRlVmFsdWWAAzI1NmeACWJ5dGVWYWx1ZYBdVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nZ4ABMYADMjU3UImBAUOABLhEezY2GgCOAf/wAIAEsTdX0jYaAI4B7rcA", + "clear": "Cg==" + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 26, + "patch": 0, + "commitHash": "0d10b244" + } + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/BytecblockTest.clear.teal b/tests/contracts/artifacts/BytecblockTest.clear.teal new file mode 100644 index 000000000..e9f1d65b3 --- /dev/null +++ b/tests/contracts/artifacts/BytecblockTest.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/tests/contracts/artifacts/C.approval.teal b/tests/contracts/artifacts/C.approval.teal index 9822af924..e1054609f 100644 --- a/tests/contracts/artifacts/C.approval.teal +++ b/tests/contracts/artifacts/C.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x61 0x62 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +27,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_a: // execute a()void callsub a - int 1 + pushint 1 return // a(): void @@ -36,7 +37,7 @@ a: // tests/contracts/inheritance.algo.ts:16 // this.aKey.value = 1337 byte 0x61 // "a" - int 1337 + pushint 1337 app_global_put retsub @@ -44,7 +45,7 @@ a: *abi_route_b: // execute b()void callsub b - int 1 + pushint 1 return // b(): void @@ -55,14 +56,14 @@ b: // assert(this.aKey.value === 1337) byte 0x61 // "a" app_global_get - int 1337 + pushint 1337 == assert // tests/contracts/inheritance.algo.ts:25 // this.bKey.value = 42 byte 0x62 // "b" - int 42 + pushint 42 app_global_put retsub @@ -70,7 +71,7 @@ b: *abi_route_c: // execute c()void callsub c - int 1 + pushint 1 return // c(): void @@ -81,7 +82,7 @@ c: // assert(this.bKey.value === 42) byte 0x62 // "b" app_global_get - int 42 + pushint 42 == assert @@ -89,17 +90,17 @@ c: // assert(this.aKey.value === 1337) byte 0x61 // "a" app_global_get - int 1337 + pushint 1337 == assert retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -107,9 +108,9 @@ c: err *call_NoOp: - method "a()void" - method "b()void" - method "c()void" + pushbytes 0x1e7aad1c // method "a()void" + pushbytes 0x3ac90b08 // method "b()void" + pushbytes 0x8c6966f0 // method "c()void" txna ApplicationArgs 0 match *abi_route_a *abi_route_b *abi_route_c diff --git a/tests/contracts/artifacts/C.arc32.json b/tests/contracts/artifacts/C.arc32.json index 610a131a1..72d596fea 100644 --- a/tests/contracts/artifacts/C.arc32.json +++ b/tests/contracts/artifacts/C.arc32.json @@ -58,7 +58,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBjKCl2b2lkCiphYmlfcm91dGVfYzoKCS8vIGV4ZWN1dGUgYygpdm9pZAoJY2FsbHN1YiBjCglpbnQgMQoJcmV0dXJuCgovLyBjKCk6IHZvaWQKYzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjMxCgkvLyBhc3NlcnQodGhpcy5iS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCW1ldGhvZCAiYygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IgKmFiaV9yb3V0ZV9jCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MSAweDYyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCXB1c2hpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGIoKTogdm9pZApiOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLmFLZXkudmFsdWUgPT09IDEzMzcpCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJcHVzaGludCAxMzM3Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjUKCS8vIHRoaXMuYktleS52YWx1ZSA9IDQyCglieXRlIDB4NjIgLy8gImIiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBjKCl2b2lkCiphYmlfcm91dGVfYzoKCS8vIGV4ZWN1dGUgYygpdm9pZAoJY2FsbHN1YiBjCglwdXNoaW50IDEKCXJldHVybgoKLy8gYygpOiB2b2lkCmM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czozMQoJLy8gYXNzZXJ0KHRoaXMuYktleS52YWx1ZSA9PT0gNDIpCglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJcHVzaGludCA0MgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjMyCgkvLyBhc3NlcnQodGhpcy5hS2V5LnZhbHVlID09PSAxMzM3KQoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXB1c2hpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHgzYWM5MGIwOCAvLyBtZXRob2QgImIoKXZvaWQiCglwdXNoYnl0ZXMgMHg4YzY5NjZmMCAvLyBtZXRob2QgImMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iICphYmlfcm91dGVfYwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/C.arc56_draft.json b/tests/contracts/artifacts/C.arc56_draft.json index 6100a1266..c49027766 100644 --- a/tests/contracts/artifacts/C.arc56_draft.json +++ b/tests/contracts/artifacts/C.arc56_draft.json @@ -98,504 +98,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 29, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ] - }, - { - "teal": 13, - "source": 29, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 14, - "source": 29, - "pc": [ - 15 - ] - }, - { - "teal": 15, - "source": 29, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 16, - "source": 29, - "pc": [ - 18 - ] - }, - { - "teal": 17, - "source": 29, - "pc": [ - 19, - 20 - ] - }, - { - "teal": 18, - "source": 29, - "pc": [ - 21 - ] - }, - { - "teal": 19, - "source": 29, - "pc": [ - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 23, - "source": 29, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 48 - ] - }, - { - "teal": 28, - "source": 15, - "pc": [ - 49, - 50, - 51 - ] - }, - { - "teal": 29, - "source": 15, - "pc": [ - 52 - ] - }, - { - "teal": 30, - "source": 15, - "pc": [ - 53 - ] - }, - { - "teal": 34, - "source": 15, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 38, - "source": 16, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 16, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 16, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 15, - "pc": [ - 60 - ] - }, - { - "teal": 46, - "source": 23, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 47, - "source": 23, - "pc": [ - 64 - ] - }, - { - "teal": 48, - "source": 23, - "pc": [ - 65 - ] - }, - { - "teal": 52, - "source": 23, - "pc": [ - 66, - 67, - 68 - ] - }, - { - "teal": 56, - "source": 24, - "pc": [ - 69 - ] - }, - { - "teal": 57, - "source": 24, - "pc": [ - 70 - ] - }, - { - "teal": 58, - "source": 24, - "pc": [ - 71 - ] - }, - { - "teal": 59, - "source": 24, - "pc": [ - 72 - ] - }, - { - "teal": 60, - "source": 24, - "pc": [ - 73 - ] - }, - { - "teal": 64, - "source": 25, - "pc": [ - 74 - ] - }, - { - "teal": 65, - "source": 25, - "pc": [ - 75 - ] - }, - { - "teal": 66, - "source": 25, - "pc": [ - 76 - ] - }, - { - "teal": 67, - "source": 23, - "pc": [ - 77 - ] - }, - { - "teal": 72, - "source": 30, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 73, - "source": 30, - "pc": [ - 81 - ] - }, - { - "teal": 74, - "source": 30, - "pc": [ - 82 - ] - }, - { - "teal": 78, - "source": 30, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 82, - "source": 31, - "pc": [ - 86 - ] - }, - { - "teal": 83, - "source": 31, - "pc": [ - 87 - ] - }, - { - "teal": 84, - "source": 31, - "pc": [ - 88 - ] - }, - { - "teal": 85, - "source": 31, - "pc": [ - 89 - ] - }, - { - "teal": 86, - "source": 31, - "pc": [ - 90 - ] - }, - { - "teal": 90, - "source": 32, - "pc": [ - 91 - ] - }, - { - "teal": 91, - "source": 32, - "pc": [ - 92 - ] - }, - { - "teal": 92, - "source": 32, - "pc": [ - 93 - ] - }, - { - "teal": 93, - "source": 32, - "pc": [ - 94 - ] - }, - { - "teal": 94, - "source": 32, - "pc": [ - 95 - ] - }, - { - "teal": 95, - "source": 30, - "pc": [ - 96 - ] - }, - { - "teal": 98, - "source": 29, - "pc": [ - 97 - ] - }, - { - "teal": 99, - "source": 29, - "pc": [ - 98 - ] - }, - { - "teal": 102, - "source": 29, - "pc": [ - 99, - 100, - 101, - 102, - 103, - 104 - ] - }, - { - "teal": 103, - "source": 29, - "pc": [ - 105, - 106, - 107 - ] - }, - { - "teal": 104, - "source": 29, - "pc": [ - 108, - 109, - 110, - 111 - ] - }, - { - "teal": 107, - "source": 29, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 112 - ] - }, - { - "teal": 110, - "source": 29, - "pc": [ - 113, - 114, - 115, - 116, - 117, - 118 - ] - }, - { - "teal": 111, - "source": 29, - "pc": [ - 119, - 120, - 121, - 122, - 123, - 124 - ] - }, - { - "teal": 112, - "source": 29, - "pc": [ - 125, - 126, - 127, - 128, - 129, - 130 - ] - }, - { - "teal": 113, - "source": 29, - "pc": [ - 131, - 132, - 133 - ] - }, - { - "teal": 114, - "source": 29, - "pc": [ - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141 - ] - }, - { - "teal": 117, - "source": 29, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 142 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 42 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 128 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 158 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBjKCl2b2lkCiphYmlfcm91dGVfYzoKCS8vIGV4ZWN1dGUgYygpdm9pZAoJY2FsbHN1YiBjCglpbnQgMQoJcmV0dXJuCgovLyBjKCk6IHZvaWQKYzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjMxCgkvLyBhc3NlcnQodGhpcy5iS2V5LnZhbHVlID09PSA0MikKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgNDIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czozMgoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCW1ldGhvZCAiYygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IgKmFiaV9yb3V0ZV9jCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MSAweDYyCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gYSgpdm9pZAoqYWJpX3JvdXRlX2E6CgkvLyBleGVjdXRlIGEoKXZvaWQKCWNhbGxzdWIgYQoJcHVzaGludCAxCglyZXR1cm4KCi8vIGEoKTogdm9pZAphOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTYKCS8vIHRoaXMuYUtleS52YWx1ZSA9IDEzMzcKCWJ5dGUgMHg2MSAvLyAiYSIKCXB1c2hpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGIoKTogdm9pZApiOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjQKCS8vIGFzc2VydCh0aGlzLmFLZXkudmFsdWUgPT09IDEzMzcpCglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJcHVzaGludCAxMzM3Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MjUKCS8vIHRoaXMuYktleS52YWx1ZSA9IDQyCglieXRlIDB4NjIgLy8gImIiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBjKCl2b2lkCiphYmlfcm91dGVfYzoKCS8vIGV4ZWN1dGUgYygpdm9pZAoJY2FsbHN1YiBjCglwdXNoaW50IDEKCXJldHVybgoKLy8gYygpOiB2b2lkCmM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czozMQoJLy8gYXNzZXJ0KHRoaXMuYktleS52YWx1ZSA9PT0gNDIpCglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJcHVzaGludCA0MgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjMyCgkvLyBhc3NlcnQodGhpcy5hS2V5LnZhbHVlID09PSAxMzM3KQoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXB1c2hpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxZTdhYWQxYyAvLyBtZXRob2QgImEoKXZvaWQiCglwdXNoYnl0ZXMgMHgzYWM5MGIwOCAvLyBtZXRob2QgImIoKXZvaWQiCglwdXNoYnl0ZXMgMHg4YzY5NjZmMCAvLyBtZXRob2QgImMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iICphYmlfcm91dGVfYwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiADAbkKKiYCAWEBYjEYFIEGCzEZCI0MAEEAAAAAAAAAAAAAADMAAAAAAAAAAAAAAIgAAiJDigAAKCNniYgAAiJDigAAKGQjEkQpJGeJiAACIkOKAAApZCQSRChkIxJEiSJDgAS4RHs2NhoAjgH/8QCABB56rRyABDrJCwiABIxpZvA2GgCOA/+j/6//wAA=", + "approval": "CiYCAWEBYjEYFIEGCzEZCI0MAFcAAAAAAAAAAAAAAEkAAAAAAAAAAAAAAIgAA4EBQ4oAAIABYYG5CmeJiAADgQFDigAAgAFhZIG5ChJEgAFigSpniYgAA4EBQ4oAAIABYmSBKhJEgAFhZIG5ChJEiYEBQ4AEuER7NjYaAI4B//AAgAQeeq0cgAQ6yQsIgASMaWbwNhoAjgP/jf+e/7cA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/CblocksTest.approval.teal b/tests/contracts/artifacts/CblocksTest.approval.teal new file mode 100644 index 000000000..42706db4d --- /dev/null +++ b/tests/contracts/artifacts/CblocksTest.approval.teal @@ -0,0 +1,3164 @@ +#pragma version 10 +intcblock 258 256 255 254 253 252 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 +bytecblock 0x54686973206973206120666169726c79206c6f6e672062797465736c69636520746861742073686f756c642062652070757420696e2074686520636f6e73616e7420626c6f636b206265636175736520697420697320736f206c6f6e672c2064657370697465207468652066616374207468617420697420636f6d657320616674657220746865206f7468657220737472696e6773 0x6279746556616c7565 0x696e7456616c7565 0x151f7c75 0xb8447b36 0xd14e61db 0xc48a55a8 0x313030 0x313031 0x313032 0x313033 0x313034 0x313035 0x313036 0x313037 0x313038 0x313039 0x313130 0x313131 0x313132 0x313133 0x313134 0x313135 0x313136 0x313137 0x313138 0x313139 0x313230 0x313231 0x313232 0x313233 0x313234 0x313235 0x313236 0x313237 0x313238 0x313239 0x313330 0x313331 0x313332 0x313333 0x313334 0x313335 0x313336 0x313337 0x313338 0x313339 0x313430 0x313431 0x313432 0x313433 0x313434 0x313435 0x313436 0x313437 0x313438 0x313439 0x313530 0x313531 0x313532 0x313533 0x313534 0x313535 0x313536 0x313537 0x313538 0x313539 0x313630 0x313631 0x313632 0x313633 0x313634 0x313635 0x313636 0x313637 0x313638 0x313639 0x313730 0x313731 0x313732 0x313733 0x313734 0x313735 0x313736 0x313737 0x313738 0x313739 0x313830 0x313831 0x313832 0x313833 0x313834 0x313835 0x313836 0x313837 0x313838 0x313839 0x313930 0x313931 0x313932 0x313933 0x313934 0x313935 0x313936 0x313937 0x313938 0x313939 0x323030 0x323031 0x323032 0x323033 0x323034 0x323035 0x323036 0x323037 0x323038 0x323039 0x323130 0x323131 0x323132 0x323133 0x323134 0x323135 0x323136 0x323137 0x323138 0x323139 0x323230 0x323231 0x323232 0x323233 0x323234 0x323235 0x323236 0x323237 0x323238 0x323239 0x323330 0x323331 0x323332 0x323333 0x323334 0x323335 0x323336 0x323337 0x323338 0x323339 0x323430 0x323431 0x323432 0x323433 0x323434 0x323435 0x323436 0x323437 0x323438 0x323439 0x323530 0x323531 0x323532 0x323533 0x323534 0x323535 0x323536 0x3130 0x3131 0x3132 0x3133 0x3134 0x3135 0x3136 0x3137 0x3138 0x3139 0x3230 0x3231 0x3232 0x3233 0x3234 0x3235 0x3236 0x3237 0x3238 0x3239 0x3330 0x3331 0x3332 0x3333 0x3334 0x3335 0x3336 0x3337 0x3338 0x3339 0x3430 0x3431 0x3432 0x3433 0x3434 0x3435 0x3436 0x3437 0x3438 0x3439 0x3530 0x3531 0x3532 0x3533 0x3534 0x3535 0x3536 0x3537 0x3538 0x3539 0x3630 0x3631 0x3632 0x3633 0x3634 0x3635 0x3636 0x3637 0x3638 0x3639 0x3730 0x3731 0x3732 0x3733 0x3734 0x3735 0x3736 0x3737 0x3738 0x3739 0x3830 0x3831 0x3832 0x3833 0x3834 0x3835 0x3836 0x3837 0x3838 0x3839 0x3930 0x3931 0x3932 0x3933 0x3934 0x3935 0x3936 0x3937 0x3938 0x3939 "257" + +// This TEAL was generated by TEALScript v0.102.0 +// https://github.com/algorandfoundation/TEALScript + +// This contract is compliant with and/or implements the following ARCs: [ ARC4 ] + +// The following ten lines of TEAL handle initial program flow +// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed +// Here, action refers to the OnComplete in combination with whether the app is being created or called +// Every possible action for this contract is represented in the switch statement +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" +txn ApplicationID +! +int 6 +* +txn OnCompletion ++ +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED + +*NOT_IMPLEMENTED: + // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? + err + +// largeIntcblock()uint64 +*abi_route_largeIntcblock: + // The ABI return prefix + byte 0x151f7c75 + + // execute largeIntcblock()uint64 + callsub largeIntcblock + itob + concat + log + pushint 1 + return + +// largeIntcblock(): uint64 +largeIntcblock: + proto 0 1 + + // tests/contracts/cblocks.algo.ts:11 + // this.intValue.value = 2 + byte 0x696e7456616c7565 // "intValue" + pushint 2 + app_global_put + + // tests/contracts/cblocks.algo.ts:12 + // this.intValue.value = 3 + byte 0x696e7456616c7565 // "intValue" + int 3 + app_global_put + + // tests/contracts/cblocks.algo.ts:13 + // this.intValue.value = 4 + byte 0x696e7456616c7565 // "intValue" + int 4 + app_global_put + + // tests/contracts/cblocks.algo.ts:14 + // this.intValue.value = 5 + byte 0x696e7456616c7565 // "intValue" + int 5 + app_global_put + + // tests/contracts/cblocks.algo.ts:15 + // this.intValue.value = 6 + byte 0x696e7456616c7565 // "intValue" + int 6 + app_global_put + + // tests/contracts/cblocks.algo.ts:16 + // this.intValue.value = 7 + byte 0x696e7456616c7565 // "intValue" + int 7 + app_global_put + + // tests/contracts/cblocks.algo.ts:17 + // this.intValue.value = 8 + byte 0x696e7456616c7565 // "intValue" + int 8 + app_global_put + + // tests/contracts/cblocks.algo.ts:18 + // this.intValue.value = 9 + byte 0x696e7456616c7565 // "intValue" + int 9 + app_global_put + + // tests/contracts/cblocks.algo.ts:19 + // this.intValue.value = 10 + byte 0x696e7456616c7565 // "intValue" + int 10 + app_global_put + + // tests/contracts/cblocks.algo.ts:20 + // this.intValue.value = 11 + byte 0x696e7456616c7565 // "intValue" + int 11 + app_global_put + + // tests/contracts/cblocks.algo.ts:21 + // this.intValue.value = 12 + byte 0x696e7456616c7565 // "intValue" + int 12 + app_global_put + + // tests/contracts/cblocks.algo.ts:22 + // this.intValue.value = 13 + byte 0x696e7456616c7565 // "intValue" + int 13 + app_global_put + + // tests/contracts/cblocks.algo.ts:23 + // this.intValue.value = 14 + byte 0x696e7456616c7565 // "intValue" + int 14 + app_global_put + + // tests/contracts/cblocks.algo.ts:24 + // this.intValue.value = 15 + byte 0x696e7456616c7565 // "intValue" + int 15 + app_global_put + + // tests/contracts/cblocks.algo.ts:25 + // this.intValue.value = 16 + byte 0x696e7456616c7565 // "intValue" + int 16 + app_global_put + + // tests/contracts/cblocks.algo.ts:26 + // this.intValue.value = 17 + byte 0x696e7456616c7565 // "intValue" + int 17 + app_global_put + + // tests/contracts/cblocks.algo.ts:27 + // this.intValue.value = 18 + byte 0x696e7456616c7565 // "intValue" + int 18 + app_global_put + + // tests/contracts/cblocks.algo.ts:28 + // this.intValue.value = 19 + byte 0x696e7456616c7565 // "intValue" + int 19 + app_global_put + + // tests/contracts/cblocks.algo.ts:29 + // this.intValue.value = 20 + byte 0x696e7456616c7565 // "intValue" + int 20 + app_global_put + + // tests/contracts/cblocks.algo.ts:30 + // this.intValue.value = 21 + byte 0x696e7456616c7565 // "intValue" + int 21 + app_global_put + + // tests/contracts/cblocks.algo.ts:31 + // this.intValue.value = 22 + byte 0x696e7456616c7565 // "intValue" + int 22 + app_global_put + + // tests/contracts/cblocks.algo.ts:32 + // this.intValue.value = 23 + byte 0x696e7456616c7565 // "intValue" + int 23 + app_global_put + + // tests/contracts/cblocks.algo.ts:33 + // this.intValue.value = 24 + byte 0x696e7456616c7565 // "intValue" + int 24 + app_global_put + + // tests/contracts/cblocks.algo.ts:34 + // this.intValue.value = 25 + byte 0x696e7456616c7565 // "intValue" + int 25 + app_global_put + + // tests/contracts/cblocks.algo.ts:35 + // this.intValue.value = 26 + byte 0x696e7456616c7565 // "intValue" + int 26 + app_global_put + + // tests/contracts/cblocks.algo.ts:36 + // this.intValue.value = 27 + byte 0x696e7456616c7565 // "intValue" + int 27 + app_global_put + + // tests/contracts/cblocks.algo.ts:37 + // this.intValue.value = 28 + byte 0x696e7456616c7565 // "intValue" + int 28 + app_global_put + + // tests/contracts/cblocks.algo.ts:38 + // this.intValue.value = 29 + byte 0x696e7456616c7565 // "intValue" + int 29 + app_global_put + + // tests/contracts/cblocks.algo.ts:39 + // this.intValue.value = 30 + byte 0x696e7456616c7565 // "intValue" + int 30 + app_global_put + + // tests/contracts/cblocks.algo.ts:40 + // this.intValue.value = 31 + byte 0x696e7456616c7565 // "intValue" + int 31 + app_global_put + + // tests/contracts/cblocks.algo.ts:41 + // this.intValue.value = 32 + byte 0x696e7456616c7565 // "intValue" + int 32 + app_global_put + + // tests/contracts/cblocks.algo.ts:42 + // this.intValue.value = 33 + byte 0x696e7456616c7565 // "intValue" + int 33 + app_global_put + + // tests/contracts/cblocks.algo.ts:43 + // this.intValue.value = 34 + byte 0x696e7456616c7565 // "intValue" + int 34 + app_global_put + + // tests/contracts/cblocks.algo.ts:44 + // this.intValue.value = 35 + byte 0x696e7456616c7565 // "intValue" + int 35 + app_global_put + + // tests/contracts/cblocks.algo.ts:45 + // this.intValue.value = 36 + byte 0x696e7456616c7565 // "intValue" + int 36 + app_global_put + + // tests/contracts/cblocks.algo.ts:46 + // this.intValue.value = 37 + byte 0x696e7456616c7565 // "intValue" + int 37 + app_global_put + + // tests/contracts/cblocks.algo.ts:47 + // this.intValue.value = 38 + byte 0x696e7456616c7565 // "intValue" + int 38 + app_global_put + + // tests/contracts/cblocks.algo.ts:48 + // this.intValue.value = 39 + byte 0x696e7456616c7565 // "intValue" + int 39 + app_global_put + + // tests/contracts/cblocks.algo.ts:49 + // this.intValue.value = 40 + byte 0x696e7456616c7565 // "intValue" + int 40 + app_global_put + + // tests/contracts/cblocks.algo.ts:50 + // this.intValue.value = 41 + byte 0x696e7456616c7565 // "intValue" + int 41 + app_global_put + + // tests/contracts/cblocks.algo.ts:51 + // this.intValue.value = 42 + byte 0x696e7456616c7565 // "intValue" + int 42 + app_global_put + + // tests/contracts/cblocks.algo.ts:52 + // this.intValue.value = 43 + byte 0x696e7456616c7565 // "intValue" + int 43 + app_global_put + + // tests/contracts/cblocks.algo.ts:53 + // this.intValue.value = 44 + byte 0x696e7456616c7565 // "intValue" + int 44 + app_global_put + + // tests/contracts/cblocks.algo.ts:54 + // this.intValue.value = 45 + byte 0x696e7456616c7565 // "intValue" + int 45 + app_global_put + + // tests/contracts/cblocks.algo.ts:55 + // this.intValue.value = 46 + byte 0x696e7456616c7565 // "intValue" + int 46 + app_global_put + + // tests/contracts/cblocks.algo.ts:56 + // this.intValue.value = 47 + byte 0x696e7456616c7565 // "intValue" + int 47 + app_global_put + + // tests/contracts/cblocks.algo.ts:57 + // this.intValue.value = 48 + byte 0x696e7456616c7565 // "intValue" + int 48 + app_global_put + + // tests/contracts/cblocks.algo.ts:58 + // this.intValue.value = 49 + byte 0x696e7456616c7565 // "intValue" + int 49 + app_global_put + + // tests/contracts/cblocks.algo.ts:59 + // this.intValue.value = 50 + byte 0x696e7456616c7565 // "intValue" + int 50 + app_global_put + + // tests/contracts/cblocks.algo.ts:60 + // this.intValue.value = 51 + byte 0x696e7456616c7565 // "intValue" + int 51 + app_global_put + + // tests/contracts/cblocks.algo.ts:61 + // this.intValue.value = 52 + byte 0x696e7456616c7565 // "intValue" + int 52 + app_global_put + + // tests/contracts/cblocks.algo.ts:62 + // this.intValue.value = 53 + byte 0x696e7456616c7565 // "intValue" + int 53 + app_global_put + + // tests/contracts/cblocks.algo.ts:63 + // this.intValue.value = 54 + byte 0x696e7456616c7565 // "intValue" + int 54 + app_global_put + + // tests/contracts/cblocks.algo.ts:64 + // this.intValue.value = 55 + byte 0x696e7456616c7565 // "intValue" + int 55 + app_global_put + + // tests/contracts/cblocks.algo.ts:65 + // this.intValue.value = 56 + byte 0x696e7456616c7565 // "intValue" + int 56 + app_global_put + + // tests/contracts/cblocks.algo.ts:66 + // this.intValue.value = 57 + byte 0x696e7456616c7565 // "intValue" + int 57 + app_global_put + + // tests/contracts/cblocks.algo.ts:67 + // this.intValue.value = 58 + byte 0x696e7456616c7565 // "intValue" + int 58 + app_global_put + + // tests/contracts/cblocks.algo.ts:68 + // this.intValue.value = 59 + byte 0x696e7456616c7565 // "intValue" + int 59 + app_global_put + + // tests/contracts/cblocks.algo.ts:69 + // this.intValue.value = 60 + byte 0x696e7456616c7565 // "intValue" + int 60 + app_global_put + + // tests/contracts/cblocks.algo.ts:70 + // this.intValue.value = 61 + byte 0x696e7456616c7565 // "intValue" + int 61 + app_global_put + + // tests/contracts/cblocks.algo.ts:71 + // this.intValue.value = 62 + byte 0x696e7456616c7565 // "intValue" + int 62 + app_global_put + + // tests/contracts/cblocks.algo.ts:72 + // this.intValue.value = 63 + byte 0x696e7456616c7565 // "intValue" + int 63 + app_global_put + + // tests/contracts/cblocks.algo.ts:73 + // this.intValue.value = 64 + byte 0x696e7456616c7565 // "intValue" + int 64 + app_global_put + + // tests/contracts/cblocks.algo.ts:74 + // this.intValue.value = 65 + byte 0x696e7456616c7565 // "intValue" + int 65 + app_global_put + + // tests/contracts/cblocks.algo.ts:75 + // this.intValue.value = 66 + byte 0x696e7456616c7565 // "intValue" + int 66 + app_global_put + + // tests/contracts/cblocks.algo.ts:76 + // this.intValue.value = 67 + byte 0x696e7456616c7565 // "intValue" + int 67 + app_global_put + + // tests/contracts/cblocks.algo.ts:77 + // this.intValue.value = 68 + byte 0x696e7456616c7565 // "intValue" + int 68 + app_global_put + + // tests/contracts/cblocks.algo.ts:78 + // this.intValue.value = 69 + byte 0x696e7456616c7565 // "intValue" + int 69 + app_global_put + + // tests/contracts/cblocks.algo.ts:79 + // this.intValue.value = 70 + byte 0x696e7456616c7565 // "intValue" + int 70 + app_global_put + + // tests/contracts/cblocks.algo.ts:80 + // this.intValue.value = 71 + byte 0x696e7456616c7565 // "intValue" + int 71 + app_global_put + + // tests/contracts/cblocks.algo.ts:81 + // this.intValue.value = 72 + byte 0x696e7456616c7565 // "intValue" + int 72 + app_global_put + + // tests/contracts/cblocks.algo.ts:82 + // this.intValue.value = 73 + byte 0x696e7456616c7565 // "intValue" + int 73 + app_global_put + + // tests/contracts/cblocks.algo.ts:83 + // this.intValue.value = 74 + byte 0x696e7456616c7565 // "intValue" + int 74 + app_global_put + + // tests/contracts/cblocks.algo.ts:84 + // this.intValue.value = 75 + byte 0x696e7456616c7565 // "intValue" + int 75 + app_global_put + + // tests/contracts/cblocks.algo.ts:85 + // this.intValue.value = 76 + byte 0x696e7456616c7565 // "intValue" + int 76 + app_global_put + + // tests/contracts/cblocks.algo.ts:86 + // this.intValue.value = 77 + byte 0x696e7456616c7565 // "intValue" + int 77 + app_global_put + + // tests/contracts/cblocks.algo.ts:87 + // this.intValue.value = 78 + byte 0x696e7456616c7565 // "intValue" + int 78 + app_global_put + + // tests/contracts/cblocks.algo.ts:88 + // this.intValue.value = 79 + byte 0x696e7456616c7565 // "intValue" + int 79 + app_global_put + + // tests/contracts/cblocks.algo.ts:89 + // this.intValue.value = 80 + byte 0x696e7456616c7565 // "intValue" + int 80 + app_global_put + + // tests/contracts/cblocks.algo.ts:90 + // this.intValue.value = 81 + byte 0x696e7456616c7565 // "intValue" + int 81 + app_global_put + + // tests/contracts/cblocks.algo.ts:91 + // this.intValue.value = 82 + byte 0x696e7456616c7565 // "intValue" + int 82 + app_global_put + + // tests/contracts/cblocks.algo.ts:92 + // this.intValue.value = 83 + byte 0x696e7456616c7565 // "intValue" + int 83 + app_global_put + + // tests/contracts/cblocks.algo.ts:93 + // this.intValue.value = 84 + byte 0x696e7456616c7565 // "intValue" + int 84 + app_global_put + + // tests/contracts/cblocks.algo.ts:94 + // this.intValue.value = 85 + byte 0x696e7456616c7565 // "intValue" + int 85 + app_global_put + + // tests/contracts/cblocks.algo.ts:95 + // this.intValue.value = 86 + byte 0x696e7456616c7565 // "intValue" + int 86 + app_global_put + + // tests/contracts/cblocks.algo.ts:96 + // this.intValue.value = 87 + byte 0x696e7456616c7565 // "intValue" + int 87 + app_global_put + + // tests/contracts/cblocks.algo.ts:97 + // this.intValue.value = 88 + byte 0x696e7456616c7565 // "intValue" + int 88 + app_global_put + + // tests/contracts/cblocks.algo.ts:98 + // this.intValue.value = 89 + byte 0x696e7456616c7565 // "intValue" + int 89 + app_global_put + + // tests/contracts/cblocks.algo.ts:99 + // this.intValue.value = 90 + byte 0x696e7456616c7565 // "intValue" + int 90 + app_global_put + + // tests/contracts/cblocks.algo.ts:100 + // this.intValue.value = 91 + byte 0x696e7456616c7565 // "intValue" + int 91 + app_global_put + + // tests/contracts/cblocks.algo.ts:101 + // this.intValue.value = 92 + byte 0x696e7456616c7565 // "intValue" + int 92 + app_global_put + + // tests/contracts/cblocks.algo.ts:102 + // this.intValue.value = 93 + byte 0x696e7456616c7565 // "intValue" + int 93 + app_global_put + + // tests/contracts/cblocks.algo.ts:103 + // this.intValue.value = 94 + byte 0x696e7456616c7565 // "intValue" + int 94 + app_global_put + + // tests/contracts/cblocks.algo.ts:104 + // this.intValue.value = 95 + byte 0x696e7456616c7565 // "intValue" + int 95 + app_global_put + + // tests/contracts/cblocks.algo.ts:105 + // this.intValue.value = 96 + byte 0x696e7456616c7565 // "intValue" + int 96 + app_global_put + + // tests/contracts/cblocks.algo.ts:106 + // this.intValue.value = 97 + byte 0x696e7456616c7565 // "intValue" + int 97 + app_global_put + + // tests/contracts/cblocks.algo.ts:107 + // this.intValue.value = 98 + byte 0x696e7456616c7565 // "intValue" + int 98 + app_global_put + + // tests/contracts/cblocks.algo.ts:108 + // this.intValue.value = 99 + byte 0x696e7456616c7565 // "intValue" + int 99 + app_global_put + + // tests/contracts/cblocks.algo.ts:109 + // this.intValue.value = 100 + byte 0x696e7456616c7565 // "intValue" + int 100 + app_global_put + + // tests/contracts/cblocks.algo.ts:110 + // this.intValue.value = 101 + byte 0x696e7456616c7565 // "intValue" + int 101 + app_global_put + + // tests/contracts/cblocks.algo.ts:111 + // this.intValue.value = 102 + byte 0x696e7456616c7565 // "intValue" + int 102 + app_global_put + + // tests/contracts/cblocks.algo.ts:112 + // this.intValue.value = 103 + byte 0x696e7456616c7565 // "intValue" + int 103 + app_global_put + + // tests/contracts/cblocks.algo.ts:113 + // this.intValue.value = 104 + byte 0x696e7456616c7565 // "intValue" + int 104 + app_global_put + + // tests/contracts/cblocks.algo.ts:114 + // this.intValue.value = 105 + byte 0x696e7456616c7565 // "intValue" + int 105 + app_global_put + + // tests/contracts/cblocks.algo.ts:115 + // this.intValue.value = 106 + byte 0x696e7456616c7565 // "intValue" + int 106 + app_global_put + + // tests/contracts/cblocks.algo.ts:116 + // this.intValue.value = 107 + byte 0x696e7456616c7565 // "intValue" + int 107 + app_global_put + + // tests/contracts/cblocks.algo.ts:117 + // this.intValue.value = 108 + byte 0x696e7456616c7565 // "intValue" + int 108 + app_global_put + + // tests/contracts/cblocks.algo.ts:118 + // this.intValue.value = 109 + byte 0x696e7456616c7565 // "intValue" + int 109 + app_global_put + + // tests/contracts/cblocks.algo.ts:119 + // this.intValue.value = 110 + byte 0x696e7456616c7565 // "intValue" + int 110 + app_global_put + + // tests/contracts/cblocks.algo.ts:120 + // this.intValue.value = 111 + byte 0x696e7456616c7565 // "intValue" + int 111 + app_global_put + + // tests/contracts/cblocks.algo.ts:121 + // this.intValue.value = 112 + byte 0x696e7456616c7565 // "intValue" + int 112 + app_global_put + + // tests/contracts/cblocks.algo.ts:122 + // this.intValue.value = 113 + byte 0x696e7456616c7565 // "intValue" + int 113 + app_global_put + + // tests/contracts/cblocks.algo.ts:123 + // this.intValue.value = 114 + byte 0x696e7456616c7565 // "intValue" + int 114 + app_global_put + + // tests/contracts/cblocks.algo.ts:124 + // this.intValue.value = 115 + byte 0x696e7456616c7565 // "intValue" + int 115 + app_global_put + + // tests/contracts/cblocks.algo.ts:125 + // this.intValue.value = 116 + byte 0x696e7456616c7565 // "intValue" + int 116 + app_global_put + + // tests/contracts/cblocks.algo.ts:126 + // this.intValue.value = 117 + byte 0x696e7456616c7565 // "intValue" + int 117 + app_global_put + + // tests/contracts/cblocks.algo.ts:127 + // this.intValue.value = 118 + byte 0x696e7456616c7565 // "intValue" + int 118 + app_global_put + + // tests/contracts/cblocks.algo.ts:128 + // this.intValue.value = 119 + byte 0x696e7456616c7565 // "intValue" + int 119 + app_global_put + + // tests/contracts/cblocks.algo.ts:129 + // this.intValue.value = 120 + byte 0x696e7456616c7565 // "intValue" + int 120 + app_global_put + + // tests/contracts/cblocks.algo.ts:130 + // this.intValue.value = 121 + byte 0x696e7456616c7565 // "intValue" + int 121 + app_global_put + + // tests/contracts/cblocks.algo.ts:131 + // this.intValue.value = 122 + byte 0x696e7456616c7565 // "intValue" + int 122 + app_global_put + + // tests/contracts/cblocks.algo.ts:132 + // this.intValue.value = 123 + byte 0x696e7456616c7565 // "intValue" + int 123 + app_global_put + + // tests/contracts/cblocks.algo.ts:133 + // this.intValue.value = 124 + byte 0x696e7456616c7565 // "intValue" + int 124 + app_global_put + + // tests/contracts/cblocks.algo.ts:134 + // this.intValue.value = 125 + byte 0x696e7456616c7565 // "intValue" + int 125 + app_global_put + + // tests/contracts/cblocks.algo.ts:135 + // this.intValue.value = 126 + byte 0x696e7456616c7565 // "intValue" + int 126 + app_global_put + + // tests/contracts/cblocks.algo.ts:136 + // this.intValue.value = 127 + byte 0x696e7456616c7565 // "intValue" + int 127 + app_global_put + + // tests/contracts/cblocks.algo.ts:137 + // this.intValue.value = 128 + byte 0x696e7456616c7565 // "intValue" + int 128 + app_global_put + + // tests/contracts/cblocks.algo.ts:138 + // this.intValue.value = 129 + byte 0x696e7456616c7565 // "intValue" + int 129 + app_global_put + + // tests/contracts/cblocks.algo.ts:139 + // this.intValue.value = 130 + byte 0x696e7456616c7565 // "intValue" + int 130 + app_global_put + + // tests/contracts/cblocks.algo.ts:140 + // this.intValue.value = 131 + byte 0x696e7456616c7565 // "intValue" + int 131 + app_global_put + + // tests/contracts/cblocks.algo.ts:141 + // this.intValue.value = 132 + byte 0x696e7456616c7565 // "intValue" + int 132 + app_global_put + + // tests/contracts/cblocks.algo.ts:142 + // this.intValue.value = 133 + byte 0x696e7456616c7565 // "intValue" + int 133 + app_global_put + + // tests/contracts/cblocks.algo.ts:143 + // this.intValue.value = 134 + byte 0x696e7456616c7565 // "intValue" + int 134 + app_global_put + + // tests/contracts/cblocks.algo.ts:144 + // this.intValue.value = 135 + byte 0x696e7456616c7565 // "intValue" + int 135 + app_global_put + + // tests/contracts/cblocks.algo.ts:145 + // this.intValue.value = 136 + byte 0x696e7456616c7565 // "intValue" + int 136 + app_global_put + + // tests/contracts/cblocks.algo.ts:146 + // this.intValue.value = 137 + byte 0x696e7456616c7565 // "intValue" + int 137 + app_global_put + + // tests/contracts/cblocks.algo.ts:147 + // this.intValue.value = 138 + byte 0x696e7456616c7565 // "intValue" + int 138 + app_global_put + + // tests/contracts/cblocks.algo.ts:148 + // this.intValue.value = 139 + byte 0x696e7456616c7565 // "intValue" + int 139 + app_global_put + + // tests/contracts/cblocks.algo.ts:149 + // this.intValue.value = 140 + byte 0x696e7456616c7565 // "intValue" + int 140 + app_global_put + + // tests/contracts/cblocks.algo.ts:150 + // this.intValue.value = 141 + byte 0x696e7456616c7565 // "intValue" + int 141 + app_global_put + + // tests/contracts/cblocks.algo.ts:151 + // this.intValue.value = 142 + byte 0x696e7456616c7565 // "intValue" + int 142 + app_global_put + + // tests/contracts/cblocks.algo.ts:152 + // this.intValue.value = 143 + byte 0x696e7456616c7565 // "intValue" + int 143 + app_global_put + + // tests/contracts/cblocks.algo.ts:153 + // this.intValue.value = 144 + byte 0x696e7456616c7565 // "intValue" + int 144 + app_global_put + + // tests/contracts/cblocks.algo.ts:154 + // this.intValue.value = 145 + byte 0x696e7456616c7565 // "intValue" + int 145 + app_global_put + + // tests/contracts/cblocks.algo.ts:155 + // this.intValue.value = 146 + byte 0x696e7456616c7565 // "intValue" + int 146 + app_global_put + + // tests/contracts/cblocks.algo.ts:156 + // this.intValue.value = 147 + byte 0x696e7456616c7565 // "intValue" + int 147 + app_global_put + + // tests/contracts/cblocks.algo.ts:157 + // this.intValue.value = 148 + byte 0x696e7456616c7565 // "intValue" + int 148 + app_global_put + + // tests/contracts/cblocks.algo.ts:158 + // this.intValue.value = 149 + byte 0x696e7456616c7565 // "intValue" + int 149 + app_global_put + + // tests/contracts/cblocks.algo.ts:159 + // this.intValue.value = 150 + byte 0x696e7456616c7565 // "intValue" + int 150 + app_global_put + + // tests/contracts/cblocks.algo.ts:160 + // this.intValue.value = 151 + byte 0x696e7456616c7565 // "intValue" + int 151 + app_global_put + + // tests/contracts/cblocks.algo.ts:161 + // this.intValue.value = 152 + byte 0x696e7456616c7565 // "intValue" + int 152 + app_global_put + + // tests/contracts/cblocks.algo.ts:162 + // this.intValue.value = 153 + byte 0x696e7456616c7565 // "intValue" + int 153 + app_global_put + + // tests/contracts/cblocks.algo.ts:163 + // this.intValue.value = 154 + byte 0x696e7456616c7565 // "intValue" + int 154 + app_global_put + + // tests/contracts/cblocks.algo.ts:164 + // this.intValue.value = 155 + byte 0x696e7456616c7565 // "intValue" + int 155 + app_global_put + + // tests/contracts/cblocks.algo.ts:165 + // this.intValue.value = 156 + byte 0x696e7456616c7565 // "intValue" + int 156 + app_global_put + + // tests/contracts/cblocks.algo.ts:166 + // this.intValue.value = 157 + byte 0x696e7456616c7565 // "intValue" + int 157 + app_global_put + + // tests/contracts/cblocks.algo.ts:167 + // this.intValue.value = 158 + byte 0x696e7456616c7565 // "intValue" + int 158 + app_global_put + + // tests/contracts/cblocks.algo.ts:168 + // this.intValue.value = 159 + byte 0x696e7456616c7565 // "intValue" + int 159 + app_global_put + + // tests/contracts/cblocks.algo.ts:169 + // this.intValue.value = 160 + byte 0x696e7456616c7565 // "intValue" + int 160 + app_global_put + + // tests/contracts/cblocks.algo.ts:170 + // this.intValue.value = 161 + byte 0x696e7456616c7565 // "intValue" + int 161 + app_global_put + + // tests/contracts/cblocks.algo.ts:171 + // this.intValue.value = 162 + byte 0x696e7456616c7565 // "intValue" + int 162 + app_global_put + + // tests/contracts/cblocks.algo.ts:172 + // this.intValue.value = 163 + byte 0x696e7456616c7565 // "intValue" + int 163 + app_global_put + + // tests/contracts/cblocks.algo.ts:173 + // this.intValue.value = 164 + byte 0x696e7456616c7565 // "intValue" + int 164 + app_global_put + + // tests/contracts/cblocks.algo.ts:174 + // this.intValue.value = 165 + byte 0x696e7456616c7565 // "intValue" + int 165 + app_global_put + + // tests/contracts/cblocks.algo.ts:175 + // this.intValue.value = 166 + byte 0x696e7456616c7565 // "intValue" + int 166 + app_global_put + + // tests/contracts/cblocks.algo.ts:176 + // this.intValue.value = 167 + byte 0x696e7456616c7565 // "intValue" + int 167 + app_global_put + + // tests/contracts/cblocks.algo.ts:177 + // this.intValue.value = 168 + byte 0x696e7456616c7565 // "intValue" + int 168 + app_global_put + + // tests/contracts/cblocks.algo.ts:178 + // this.intValue.value = 169 + byte 0x696e7456616c7565 // "intValue" + int 169 + app_global_put + + // tests/contracts/cblocks.algo.ts:179 + // this.intValue.value = 170 + byte 0x696e7456616c7565 // "intValue" + int 170 + app_global_put + + // tests/contracts/cblocks.algo.ts:180 + // this.intValue.value = 171 + byte 0x696e7456616c7565 // "intValue" + int 171 + app_global_put + + // tests/contracts/cblocks.algo.ts:181 + // this.intValue.value = 172 + byte 0x696e7456616c7565 // "intValue" + int 172 + app_global_put + + // tests/contracts/cblocks.algo.ts:182 + // this.intValue.value = 173 + byte 0x696e7456616c7565 // "intValue" + int 173 + app_global_put + + // tests/contracts/cblocks.algo.ts:183 + // this.intValue.value = 174 + byte 0x696e7456616c7565 // "intValue" + int 174 + app_global_put + + // tests/contracts/cblocks.algo.ts:184 + // this.intValue.value = 175 + byte 0x696e7456616c7565 // "intValue" + int 175 + app_global_put + + // tests/contracts/cblocks.algo.ts:185 + // this.intValue.value = 176 + byte 0x696e7456616c7565 // "intValue" + int 176 + app_global_put + + // tests/contracts/cblocks.algo.ts:186 + // this.intValue.value = 177 + byte 0x696e7456616c7565 // "intValue" + int 177 + app_global_put + + // tests/contracts/cblocks.algo.ts:187 + // this.intValue.value = 178 + byte 0x696e7456616c7565 // "intValue" + int 178 + app_global_put + + // tests/contracts/cblocks.algo.ts:188 + // this.intValue.value = 179 + byte 0x696e7456616c7565 // "intValue" + int 179 + app_global_put + + // tests/contracts/cblocks.algo.ts:189 + // this.intValue.value = 180 + byte 0x696e7456616c7565 // "intValue" + int 180 + app_global_put + + // tests/contracts/cblocks.algo.ts:190 + // this.intValue.value = 181 + byte 0x696e7456616c7565 // "intValue" + int 181 + app_global_put + + // tests/contracts/cblocks.algo.ts:191 + // this.intValue.value = 182 + byte 0x696e7456616c7565 // "intValue" + int 182 + app_global_put + + // tests/contracts/cblocks.algo.ts:192 + // this.intValue.value = 183 + byte 0x696e7456616c7565 // "intValue" + int 183 + app_global_put + + // tests/contracts/cblocks.algo.ts:193 + // this.intValue.value = 184 + byte 0x696e7456616c7565 // "intValue" + int 184 + app_global_put + + // tests/contracts/cblocks.algo.ts:194 + // this.intValue.value = 185 + byte 0x696e7456616c7565 // "intValue" + int 185 + app_global_put + + // tests/contracts/cblocks.algo.ts:195 + // this.intValue.value = 186 + byte 0x696e7456616c7565 // "intValue" + int 186 + app_global_put + + // tests/contracts/cblocks.algo.ts:196 + // this.intValue.value = 187 + byte 0x696e7456616c7565 // "intValue" + int 187 + app_global_put + + // tests/contracts/cblocks.algo.ts:197 + // this.intValue.value = 188 + byte 0x696e7456616c7565 // "intValue" + int 188 + app_global_put + + // tests/contracts/cblocks.algo.ts:198 + // this.intValue.value = 189 + byte 0x696e7456616c7565 // "intValue" + int 189 + app_global_put + + // tests/contracts/cblocks.algo.ts:199 + // this.intValue.value = 190 + byte 0x696e7456616c7565 // "intValue" + int 190 + app_global_put + + // tests/contracts/cblocks.algo.ts:200 + // this.intValue.value = 191 + byte 0x696e7456616c7565 // "intValue" + int 191 + app_global_put + + // tests/contracts/cblocks.algo.ts:201 + // this.intValue.value = 192 + byte 0x696e7456616c7565 // "intValue" + int 192 + app_global_put + + // tests/contracts/cblocks.algo.ts:202 + // this.intValue.value = 193 + byte 0x696e7456616c7565 // "intValue" + int 193 + app_global_put + + // tests/contracts/cblocks.algo.ts:203 + // this.intValue.value = 194 + byte 0x696e7456616c7565 // "intValue" + int 194 + app_global_put + + // tests/contracts/cblocks.algo.ts:204 + // this.intValue.value = 195 + byte 0x696e7456616c7565 // "intValue" + int 195 + app_global_put + + // tests/contracts/cblocks.algo.ts:205 + // this.intValue.value = 196 + byte 0x696e7456616c7565 // "intValue" + int 196 + app_global_put + + // tests/contracts/cblocks.algo.ts:206 + // this.intValue.value = 197 + byte 0x696e7456616c7565 // "intValue" + int 197 + app_global_put + + // tests/contracts/cblocks.algo.ts:207 + // this.intValue.value = 198 + byte 0x696e7456616c7565 // "intValue" + int 198 + app_global_put + + // tests/contracts/cblocks.algo.ts:208 + // this.intValue.value = 199 + byte 0x696e7456616c7565 // "intValue" + int 199 + app_global_put + + // tests/contracts/cblocks.algo.ts:209 + // this.intValue.value = 200 + byte 0x696e7456616c7565 // "intValue" + int 200 + app_global_put + + // tests/contracts/cblocks.algo.ts:210 + // this.intValue.value = 201 + byte 0x696e7456616c7565 // "intValue" + int 201 + app_global_put + + // tests/contracts/cblocks.algo.ts:211 + // this.intValue.value = 202 + byte 0x696e7456616c7565 // "intValue" + int 202 + app_global_put + + // tests/contracts/cblocks.algo.ts:212 + // this.intValue.value = 203 + byte 0x696e7456616c7565 // "intValue" + int 203 + app_global_put + + // tests/contracts/cblocks.algo.ts:213 + // this.intValue.value = 204 + byte 0x696e7456616c7565 // "intValue" + int 204 + app_global_put + + // tests/contracts/cblocks.algo.ts:214 + // this.intValue.value = 205 + byte 0x696e7456616c7565 // "intValue" + int 205 + app_global_put + + // tests/contracts/cblocks.algo.ts:215 + // this.intValue.value = 206 + byte 0x696e7456616c7565 // "intValue" + int 206 + app_global_put + + // tests/contracts/cblocks.algo.ts:216 + // this.intValue.value = 207 + byte 0x696e7456616c7565 // "intValue" + int 207 + app_global_put + + // tests/contracts/cblocks.algo.ts:217 + // this.intValue.value = 208 + byte 0x696e7456616c7565 // "intValue" + int 208 + app_global_put + + // tests/contracts/cblocks.algo.ts:218 + // this.intValue.value = 209 + byte 0x696e7456616c7565 // "intValue" + int 209 + app_global_put + + // tests/contracts/cblocks.algo.ts:219 + // this.intValue.value = 210 + byte 0x696e7456616c7565 // "intValue" + int 210 + app_global_put + + // tests/contracts/cblocks.algo.ts:220 + // this.intValue.value = 211 + byte 0x696e7456616c7565 // "intValue" + int 211 + app_global_put + + // tests/contracts/cblocks.algo.ts:221 + // this.intValue.value = 212 + byte 0x696e7456616c7565 // "intValue" + int 212 + app_global_put + + // tests/contracts/cblocks.algo.ts:222 + // this.intValue.value = 213 + byte 0x696e7456616c7565 // "intValue" + int 213 + app_global_put + + // tests/contracts/cblocks.algo.ts:223 + // this.intValue.value = 214 + byte 0x696e7456616c7565 // "intValue" + int 214 + app_global_put + + // tests/contracts/cblocks.algo.ts:224 + // this.intValue.value = 215 + byte 0x696e7456616c7565 // "intValue" + int 215 + app_global_put + + // tests/contracts/cblocks.algo.ts:225 + // this.intValue.value = 216 + byte 0x696e7456616c7565 // "intValue" + int 216 + app_global_put + + // tests/contracts/cblocks.algo.ts:226 + // this.intValue.value = 217 + byte 0x696e7456616c7565 // "intValue" + int 217 + app_global_put + + // tests/contracts/cblocks.algo.ts:227 + // this.intValue.value = 218 + byte 0x696e7456616c7565 // "intValue" + int 218 + app_global_put + + // tests/contracts/cblocks.algo.ts:228 + // this.intValue.value = 219 + byte 0x696e7456616c7565 // "intValue" + int 219 + app_global_put + + // tests/contracts/cblocks.algo.ts:229 + // this.intValue.value = 220 + byte 0x696e7456616c7565 // "intValue" + int 220 + app_global_put + + // tests/contracts/cblocks.algo.ts:230 + // this.intValue.value = 221 + byte 0x696e7456616c7565 // "intValue" + int 221 + app_global_put + + // tests/contracts/cblocks.algo.ts:231 + // this.intValue.value = 222 + byte 0x696e7456616c7565 // "intValue" + int 222 + app_global_put + + // tests/contracts/cblocks.algo.ts:232 + // this.intValue.value = 223 + byte 0x696e7456616c7565 // "intValue" + int 223 + app_global_put + + // tests/contracts/cblocks.algo.ts:233 + // this.intValue.value = 224 + byte 0x696e7456616c7565 // "intValue" + int 224 + app_global_put + + // tests/contracts/cblocks.algo.ts:234 + // this.intValue.value = 225 + byte 0x696e7456616c7565 // "intValue" + int 225 + app_global_put + + // tests/contracts/cblocks.algo.ts:235 + // this.intValue.value = 226 + byte 0x696e7456616c7565 // "intValue" + int 226 + app_global_put + + // tests/contracts/cblocks.algo.ts:236 + // this.intValue.value = 227 + byte 0x696e7456616c7565 // "intValue" + int 227 + app_global_put + + // tests/contracts/cblocks.algo.ts:237 + // this.intValue.value = 228 + byte 0x696e7456616c7565 // "intValue" + int 228 + app_global_put + + // tests/contracts/cblocks.algo.ts:238 + // this.intValue.value = 229 + byte 0x696e7456616c7565 // "intValue" + int 229 + app_global_put + + // tests/contracts/cblocks.algo.ts:239 + // this.intValue.value = 230 + byte 0x696e7456616c7565 // "intValue" + int 230 + app_global_put + + // tests/contracts/cblocks.algo.ts:240 + // this.intValue.value = 231 + byte 0x696e7456616c7565 // "intValue" + int 231 + app_global_put + + // tests/contracts/cblocks.algo.ts:241 + // this.intValue.value = 232 + byte 0x696e7456616c7565 // "intValue" + int 232 + app_global_put + + // tests/contracts/cblocks.algo.ts:242 + // this.intValue.value = 233 + byte 0x696e7456616c7565 // "intValue" + int 233 + app_global_put + + // tests/contracts/cblocks.algo.ts:243 + // this.intValue.value = 234 + byte 0x696e7456616c7565 // "intValue" + int 234 + app_global_put + + // tests/contracts/cblocks.algo.ts:244 + // this.intValue.value = 235 + byte 0x696e7456616c7565 // "intValue" + int 235 + app_global_put + + // tests/contracts/cblocks.algo.ts:245 + // this.intValue.value = 236 + byte 0x696e7456616c7565 // "intValue" + int 236 + app_global_put + + // tests/contracts/cblocks.algo.ts:246 + // this.intValue.value = 237 + byte 0x696e7456616c7565 // "intValue" + int 237 + app_global_put + + // tests/contracts/cblocks.algo.ts:247 + // this.intValue.value = 238 + byte 0x696e7456616c7565 // "intValue" + int 238 + app_global_put + + // tests/contracts/cblocks.algo.ts:248 + // this.intValue.value = 239 + byte 0x696e7456616c7565 // "intValue" + int 239 + app_global_put + + // tests/contracts/cblocks.algo.ts:249 + // this.intValue.value = 240 + byte 0x696e7456616c7565 // "intValue" + int 240 + app_global_put + + // tests/contracts/cblocks.algo.ts:250 + // this.intValue.value = 241 + byte 0x696e7456616c7565 // "intValue" + int 241 + app_global_put + + // tests/contracts/cblocks.algo.ts:251 + // this.intValue.value = 242 + byte 0x696e7456616c7565 // "intValue" + int 242 + app_global_put + + // tests/contracts/cblocks.algo.ts:252 + // this.intValue.value = 243 + byte 0x696e7456616c7565 // "intValue" + int 243 + app_global_put + + // tests/contracts/cblocks.algo.ts:253 + // this.intValue.value = 244 + byte 0x696e7456616c7565 // "intValue" + int 244 + app_global_put + + // tests/contracts/cblocks.algo.ts:254 + // this.intValue.value = 245 + byte 0x696e7456616c7565 // "intValue" + int 245 + app_global_put + + // tests/contracts/cblocks.algo.ts:255 + // this.intValue.value = 246 + byte 0x696e7456616c7565 // "intValue" + int 246 + app_global_put + + // tests/contracts/cblocks.algo.ts:256 + // this.intValue.value = 247 + byte 0x696e7456616c7565 // "intValue" + int 247 + app_global_put + + // tests/contracts/cblocks.algo.ts:257 + // this.intValue.value = 248 + byte 0x696e7456616c7565 // "intValue" + int 248 + app_global_put + + // tests/contracts/cblocks.algo.ts:258 + // this.intValue.value = 249 + byte 0x696e7456616c7565 // "intValue" + int 249 + app_global_put + + // tests/contracts/cblocks.algo.ts:259 + // this.intValue.value = 250 + byte 0x696e7456616c7565 // "intValue" + int 250 + app_global_put + + // tests/contracts/cblocks.algo.ts:260 + // this.intValue.value = 251 + byte 0x696e7456616c7565 // "intValue" + int 251 + app_global_put + + // tests/contracts/cblocks.algo.ts:261 + // this.intValue.value = 252 + byte 0x696e7456616c7565 // "intValue" + int 252 + app_global_put + + // tests/contracts/cblocks.algo.ts:262 + // this.intValue.value = 253 + byte 0x696e7456616c7565 // "intValue" + int 253 + app_global_put + + // tests/contracts/cblocks.algo.ts:263 + // this.intValue.value = 254 + byte 0x696e7456616c7565 // "intValue" + int 254 + app_global_put + + // tests/contracts/cblocks.algo.ts:264 + // this.intValue.value = 255 + byte 0x696e7456616c7565 // "intValue" + int 255 + app_global_put + + // tests/contracts/cblocks.algo.ts:265 + // this.intValue.value = 256 + byte 0x696e7456616c7565 // "intValue" + int 256 + app_global_put + + // tests/contracts/cblocks.algo.ts:268 + // return a + b; + int 258 + retsub + +// largeBytecblock()byte[] +*abi_route_largeBytecblock: + // The ABI return prefix + byte 0x151f7c75 + + // execute largeBytecblock()byte[] + callsub largeBytecblock + dup + len + itob + extract 6 2 + swap + concat + concat + log + pushint 1 + return + +// largeBytecblock(): bytes +largeBytecblock: + proto 0 1 + + // tests/contracts/cblocks.algo.ts:273 + // this.byteValue.value = '2' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x32 // "2" + app_global_put + + // tests/contracts/cblocks.algo.ts:274 + // this.byteValue.value = '3' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x33 // "3" + app_global_put + + // tests/contracts/cblocks.algo.ts:275 + // this.byteValue.value = '4' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x34 // "4" + app_global_put + + // tests/contracts/cblocks.algo.ts:276 + // this.byteValue.value = '5' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x35 // "5" + app_global_put + + // tests/contracts/cblocks.algo.ts:277 + // this.byteValue.value = '6' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x36 // "6" + app_global_put + + // tests/contracts/cblocks.algo.ts:278 + // this.byteValue.value = '7' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x37 // "7" + app_global_put + + // tests/contracts/cblocks.algo.ts:279 + // this.byteValue.value = '8' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x38 // "8" + app_global_put + + // tests/contracts/cblocks.algo.ts:280 + // this.byteValue.value = '9' + byte 0x6279746556616c7565 // "byteValue" + pushbytes 0x39 // "9" + app_global_put + + // tests/contracts/cblocks.algo.ts:281 + // this.byteValue.value = '10' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3130 // "10" + app_global_put + + // tests/contracts/cblocks.algo.ts:282 + // this.byteValue.value = '11' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3131 // "11" + app_global_put + + // tests/contracts/cblocks.algo.ts:283 + // this.byteValue.value = '12' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3132 // "12" + app_global_put + + // tests/contracts/cblocks.algo.ts:284 + // this.byteValue.value = '13' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3133 // "13" + app_global_put + + // tests/contracts/cblocks.algo.ts:285 + // this.byteValue.value = '14' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3134 // "14" + app_global_put + + // tests/contracts/cblocks.algo.ts:286 + // this.byteValue.value = '15' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3135 // "15" + app_global_put + + // tests/contracts/cblocks.algo.ts:287 + // this.byteValue.value = '16' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3136 // "16" + app_global_put + + // tests/contracts/cblocks.algo.ts:288 + // this.byteValue.value = '17' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3137 // "17" + app_global_put + + // tests/contracts/cblocks.algo.ts:289 + // this.byteValue.value = '18' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3138 // "18" + app_global_put + + // tests/contracts/cblocks.algo.ts:290 + // this.byteValue.value = '19' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3139 // "19" + app_global_put + + // tests/contracts/cblocks.algo.ts:291 + // this.byteValue.value = '20' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3230 // "20" + app_global_put + + // tests/contracts/cblocks.algo.ts:292 + // this.byteValue.value = '21' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3231 // "21" + app_global_put + + // tests/contracts/cblocks.algo.ts:293 + // this.byteValue.value = '22' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3232 // "22" + app_global_put + + // tests/contracts/cblocks.algo.ts:294 + // this.byteValue.value = '23' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3233 // "23" + app_global_put + + // tests/contracts/cblocks.algo.ts:295 + // this.byteValue.value = '24' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3234 // "24" + app_global_put + + // tests/contracts/cblocks.algo.ts:296 + // this.byteValue.value = '25' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3235 // "25" + app_global_put + + // tests/contracts/cblocks.algo.ts:297 + // this.byteValue.value = '26' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3236 // "26" + app_global_put + + // tests/contracts/cblocks.algo.ts:298 + // this.byteValue.value = '27' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3237 // "27" + app_global_put + + // tests/contracts/cblocks.algo.ts:299 + // this.byteValue.value = '28' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3238 // "28" + app_global_put + + // tests/contracts/cblocks.algo.ts:300 + // this.byteValue.value = '29' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3239 // "29" + app_global_put + + // tests/contracts/cblocks.algo.ts:301 + // this.byteValue.value = '30' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3330 // "30" + app_global_put + + // tests/contracts/cblocks.algo.ts:302 + // this.byteValue.value = '31' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3331 // "31" + app_global_put + + // tests/contracts/cblocks.algo.ts:303 + // this.byteValue.value = '32' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3332 // "32" + app_global_put + + // tests/contracts/cblocks.algo.ts:304 + // this.byteValue.value = '33' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3333 // "33" + app_global_put + + // tests/contracts/cblocks.algo.ts:305 + // this.byteValue.value = '34' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3334 // "34" + app_global_put + + // tests/contracts/cblocks.algo.ts:306 + // this.byteValue.value = '35' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3335 // "35" + app_global_put + + // tests/contracts/cblocks.algo.ts:307 + // this.byteValue.value = '36' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3336 // "36" + app_global_put + + // tests/contracts/cblocks.algo.ts:308 + // this.byteValue.value = '37' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3337 // "37" + app_global_put + + // tests/contracts/cblocks.algo.ts:309 + // this.byteValue.value = '38' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3338 // "38" + app_global_put + + // tests/contracts/cblocks.algo.ts:310 + // this.byteValue.value = '39' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3339 // "39" + app_global_put + + // tests/contracts/cblocks.algo.ts:311 + // this.byteValue.value = '40' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3430 // "40" + app_global_put + + // tests/contracts/cblocks.algo.ts:312 + // this.byteValue.value = '41' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3431 // "41" + app_global_put + + // tests/contracts/cblocks.algo.ts:313 + // this.byteValue.value = '42' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3432 // "42" + app_global_put + + // tests/contracts/cblocks.algo.ts:314 + // this.byteValue.value = '43' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3433 // "43" + app_global_put + + // tests/contracts/cblocks.algo.ts:315 + // this.byteValue.value = '44' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3434 // "44" + app_global_put + + // tests/contracts/cblocks.algo.ts:316 + // this.byteValue.value = '45' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3435 // "45" + app_global_put + + // tests/contracts/cblocks.algo.ts:317 + // this.byteValue.value = '46' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3436 // "46" + app_global_put + + // tests/contracts/cblocks.algo.ts:318 + // this.byteValue.value = '47' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3437 // "47" + app_global_put + + // tests/contracts/cblocks.algo.ts:319 + // this.byteValue.value = '48' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3438 // "48" + app_global_put + + // tests/contracts/cblocks.algo.ts:320 + // this.byteValue.value = '49' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3439 // "49" + app_global_put + + // tests/contracts/cblocks.algo.ts:321 + // this.byteValue.value = '50' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3530 // "50" + app_global_put + + // tests/contracts/cblocks.algo.ts:322 + // this.byteValue.value = '51' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3531 // "51" + app_global_put + + // tests/contracts/cblocks.algo.ts:323 + // this.byteValue.value = '52' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3532 // "52" + app_global_put + + // tests/contracts/cblocks.algo.ts:324 + // this.byteValue.value = '53' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3533 // "53" + app_global_put + + // tests/contracts/cblocks.algo.ts:325 + // this.byteValue.value = '54' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3534 // "54" + app_global_put + + // tests/contracts/cblocks.algo.ts:326 + // this.byteValue.value = '55' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3535 // "55" + app_global_put + + // tests/contracts/cblocks.algo.ts:327 + // this.byteValue.value = '56' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3536 // "56" + app_global_put + + // tests/contracts/cblocks.algo.ts:328 + // this.byteValue.value = '57' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3537 // "57" + app_global_put + + // tests/contracts/cblocks.algo.ts:329 + // this.byteValue.value = '58' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3538 // "58" + app_global_put + + // tests/contracts/cblocks.algo.ts:330 + // this.byteValue.value = '59' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3539 // "59" + app_global_put + + // tests/contracts/cblocks.algo.ts:331 + // this.byteValue.value = '60' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3630 // "60" + app_global_put + + // tests/contracts/cblocks.algo.ts:332 + // this.byteValue.value = '61' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3631 // "61" + app_global_put + + // tests/contracts/cblocks.algo.ts:333 + // this.byteValue.value = '62' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3632 // "62" + app_global_put + + // tests/contracts/cblocks.algo.ts:334 + // this.byteValue.value = '63' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3633 // "63" + app_global_put + + // tests/contracts/cblocks.algo.ts:335 + // this.byteValue.value = '64' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3634 // "64" + app_global_put + + // tests/contracts/cblocks.algo.ts:336 + // this.byteValue.value = '65' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3635 // "65" + app_global_put + + // tests/contracts/cblocks.algo.ts:337 + // this.byteValue.value = '66' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3636 // "66" + app_global_put + + // tests/contracts/cblocks.algo.ts:338 + // this.byteValue.value = '67' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3637 // "67" + app_global_put + + // tests/contracts/cblocks.algo.ts:339 + // this.byteValue.value = '68' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3638 // "68" + app_global_put + + // tests/contracts/cblocks.algo.ts:340 + // this.byteValue.value = '69' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3639 // "69" + app_global_put + + // tests/contracts/cblocks.algo.ts:341 + // this.byteValue.value = '70' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3730 // "70" + app_global_put + + // tests/contracts/cblocks.algo.ts:342 + // this.byteValue.value = '71' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3731 // "71" + app_global_put + + // tests/contracts/cblocks.algo.ts:343 + // this.byteValue.value = '72' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3732 // "72" + app_global_put + + // tests/contracts/cblocks.algo.ts:344 + // this.byteValue.value = '73' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3733 // "73" + app_global_put + + // tests/contracts/cblocks.algo.ts:345 + // this.byteValue.value = '74' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3734 // "74" + app_global_put + + // tests/contracts/cblocks.algo.ts:346 + // this.byteValue.value = '75' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3735 // "75" + app_global_put + + // tests/contracts/cblocks.algo.ts:347 + // this.byteValue.value = '76' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3736 // "76" + app_global_put + + // tests/contracts/cblocks.algo.ts:348 + // this.byteValue.value = '77' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3737 // "77" + app_global_put + + // tests/contracts/cblocks.algo.ts:349 + // this.byteValue.value = '78' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3738 // "78" + app_global_put + + // tests/contracts/cblocks.algo.ts:350 + // this.byteValue.value = '79' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3739 // "79" + app_global_put + + // tests/contracts/cblocks.algo.ts:351 + // this.byteValue.value = '80' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3830 // "80" + app_global_put + + // tests/contracts/cblocks.algo.ts:352 + // this.byteValue.value = '81' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3831 // "81" + app_global_put + + // tests/contracts/cblocks.algo.ts:353 + // this.byteValue.value = '82' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3832 // "82" + app_global_put + + // tests/contracts/cblocks.algo.ts:354 + // this.byteValue.value = '83' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3833 // "83" + app_global_put + + // tests/contracts/cblocks.algo.ts:355 + // this.byteValue.value = '84' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3834 // "84" + app_global_put + + // tests/contracts/cblocks.algo.ts:356 + // this.byteValue.value = '85' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3835 // "85" + app_global_put + + // tests/contracts/cblocks.algo.ts:357 + // this.byteValue.value = '86' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3836 // "86" + app_global_put + + // tests/contracts/cblocks.algo.ts:358 + // this.byteValue.value = '87' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3837 // "87" + app_global_put + + // tests/contracts/cblocks.algo.ts:359 + // this.byteValue.value = '88' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3838 // "88" + app_global_put + + // tests/contracts/cblocks.algo.ts:360 + // this.byteValue.value = '89' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3839 // "89" + app_global_put + + // tests/contracts/cblocks.algo.ts:361 + // this.byteValue.value = '90' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3930 // "90" + app_global_put + + // tests/contracts/cblocks.algo.ts:362 + // this.byteValue.value = '91' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3931 // "91" + app_global_put + + // tests/contracts/cblocks.algo.ts:363 + // this.byteValue.value = '92' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3932 // "92" + app_global_put + + // tests/contracts/cblocks.algo.ts:364 + // this.byteValue.value = '93' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3933 // "93" + app_global_put + + // tests/contracts/cblocks.algo.ts:365 + // this.byteValue.value = '94' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3934 // "94" + app_global_put + + // tests/contracts/cblocks.algo.ts:366 + // this.byteValue.value = '95' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3935 // "95" + app_global_put + + // tests/contracts/cblocks.algo.ts:367 + // this.byteValue.value = '96' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3936 // "96" + app_global_put + + // tests/contracts/cblocks.algo.ts:368 + // this.byteValue.value = '97' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3937 // "97" + app_global_put + + // tests/contracts/cblocks.algo.ts:369 + // this.byteValue.value = '98' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3938 // "98" + app_global_put + + // tests/contracts/cblocks.algo.ts:370 + // this.byteValue.value = '99' + byte 0x6279746556616c7565 // "byteValue" + byte 0x3939 // "99" + app_global_put + + // tests/contracts/cblocks.algo.ts:371 + // this.byteValue.value = '100' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313030 // "100" + app_global_put + + // tests/contracts/cblocks.algo.ts:372 + // this.byteValue.value = '101' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313031 // "101" + app_global_put + + // tests/contracts/cblocks.algo.ts:373 + // this.byteValue.value = '102' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313032 // "102" + app_global_put + + // tests/contracts/cblocks.algo.ts:374 + // this.byteValue.value = '103' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313033 // "103" + app_global_put + + // tests/contracts/cblocks.algo.ts:375 + // this.byteValue.value = '104' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313034 // "104" + app_global_put + + // tests/contracts/cblocks.algo.ts:376 + // this.byteValue.value = '105' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313035 // "105" + app_global_put + + // tests/contracts/cblocks.algo.ts:377 + // this.byteValue.value = '106' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313036 // "106" + app_global_put + + // tests/contracts/cblocks.algo.ts:378 + // this.byteValue.value = '107' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313037 // "107" + app_global_put + + // tests/contracts/cblocks.algo.ts:379 + // this.byteValue.value = '108' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313038 // "108" + app_global_put + + // tests/contracts/cblocks.algo.ts:380 + // this.byteValue.value = '109' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313039 // "109" + app_global_put + + // tests/contracts/cblocks.algo.ts:381 + // this.byteValue.value = '110' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313130 // "110" + app_global_put + + // tests/contracts/cblocks.algo.ts:382 + // this.byteValue.value = '111' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313131 // "111" + app_global_put + + // tests/contracts/cblocks.algo.ts:383 + // this.byteValue.value = '112' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313132 // "112" + app_global_put + + // tests/contracts/cblocks.algo.ts:384 + // this.byteValue.value = '113' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313133 // "113" + app_global_put + + // tests/contracts/cblocks.algo.ts:385 + // this.byteValue.value = '114' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313134 // "114" + app_global_put + + // tests/contracts/cblocks.algo.ts:386 + // this.byteValue.value = '115' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313135 // "115" + app_global_put + + // tests/contracts/cblocks.algo.ts:387 + // this.byteValue.value = '116' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313136 // "116" + app_global_put + + // tests/contracts/cblocks.algo.ts:388 + // this.byteValue.value = '117' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313137 // "117" + app_global_put + + // tests/contracts/cblocks.algo.ts:389 + // this.byteValue.value = '118' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313138 // "118" + app_global_put + + // tests/contracts/cblocks.algo.ts:390 + // this.byteValue.value = '119' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313139 // "119" + app_global_put + + // tests/contracts/cblocks.algo.ts:391 + // this.byteValue.value = '120' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313230 // "120" + app_global_put + + // tests/contracts/cblocks.algo.ts:392 + // this.byteValue.value = '121' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313231 // "121" + app_global_put + + // tests/contracts/cblocks.algo.ts:393 + // this.byteValue.value = '122' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313232 // "122" + app_global_put + + // tests/contracts/cblocks.algo.ts:394 + // this.byteValue.value = '123' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313233 // "123" + app_global_put + + // tests/contracts/cblocks.algo.ts:395 + // this.byteValue.value = '124' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313234 // "124" + app_global_put + + // tests/contracts/cblocks.algo.ts:396 + // this.byteValue.value = '125' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313235 // "125" + app_global_put + + // tests/contracts/cblocks.algo.ts:397 + // this.byteValue.value = '126' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313236 // "126" + app_global_put + + // tests/contracts/cblocks.algo.ts:398 + // this.byteValue.value = '127' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313237 // "127" + app_global_put + + // tests/contracts/cblocks.algo.ts:399 + // this.byteValue.value = '128' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313238 // "128" + app_global_put + + // tests/contracts/cblocks.algo.ts:400 + // this.byteValue.value = '129' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313239 // "129" + app_global_put + + // tests/contracts/cblocks.algo.ts:401 + // this.byteValue.value = '130' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313330 // "130" + app_global_put + + // tests/contracts/cblocks.algo.ts:402 + // this.byteValue.value = '131' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313331 // "131" + app_global_put + + // tests/contracts/cblocks.algo.ts:403 + // this.byteValue.value = '132' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313332 // "132" + app_global_put + + // tests/contracts/cblocks.algo.ts:404 + // this.byteValue.value = '133' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313333 // "133" + app_global_put + + // tests/contracts/cblocks.algo.ts:405 + // this.byteValue.value = '134' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313334 // "134" + app_global_put + + // tests/contracts/cblocks.algo.ts:406 + // this.byteValue.value = '135' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313335 // "135" + app_global_put + + // tests/contracts/cblocks.algo.ts:407 + // this.byteValue.value = '136' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313336 // "136" + app_global_put + + // tests/contracts/cblocks.algo.ts:408 + // this.byteValue.value = '137' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313337 // "137" + app_global_put + + // tests/contracts/cblocks.algo.ts:409 + // this.byteValue.value = '138' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313338 // "138" + app_global_put + + // tests/contracts/cblocks.algo.ts:410 + // this.byteValue.value = '139' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313339 // "139" + app_global_put + + // tests/contracts/cblocks.algo.ts:411 + // this.byteValue.value = '140' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313430 // "140" + app_global_put + + // tests/contracts/cblocks.algo.ts:412 + // this.byteValue.value = '141' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313431 // "141" + app_global_put + + // tests/contracts/cblocks.algo.ts:413 + // this.byteValue.value = '142' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313432 // "142" + app_global_put + + // tests/contracts/cblocks.algo.ts:414 + // this.byteValue.value = '143' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313433 // "143" + app_global_put + + // tests/contracts/cblocks.algo.ts:415 + // this.byteValue.value = '144' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313434 // "144" + app_global_put + + // tests/contracts/cblocks.algo.ts:416 + // this.byteValue.value = '145' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313435 // "145" + app_global_put + + // tests/contracts/cblocks.algo.ts:417 + // this.byteValue.value = '146' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313436 // "146" + app_global_put + + // tests/contracts/cblocks.algo.ts:418 + // this.byteValue.value = '147' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313437 // "147" + app_global_put + + // tests/contracts/cblocks.algo.ts:419 + // this.byteValue.value = '148' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313438 // "148" + app_global_put + + // tests/contracts/cblocks.algo.ts:420 + // this.byteValue.value = '149' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313439 // "149" + app_global_put + + // tests/contracts/cblocks.algo.ts:421 + // this.byteValue.value = '150' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313530 // "150" + app_global_put + + // tests/contracts/cblocks.algo.ts:422 + // this.byteValue.value = '151' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313531 // "151" + app_global_put + + // tests/contracts/cblocks.algo.ts:423 + // this.byteValue.value = '152' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313532 // "152" + app_global_put + + // tests/contracts/cblocks.algo.ts:424 + // this.byteValue.value = '153' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313533 // "153" + app_global_put + + // tests/contracts/cblocks.algo.ts:425 + // this.byteValue.value = '154' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313534 // "154" + app_global_put + + // tests/contracts/cblocks.algo.ts:426 + // this.byteValue.value = '155' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313535 // "155" + app_global_put + + // tests/contracts/cblocks.algo.ts:427 + // this.byteValue.value = '156' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313536 // "156" + app_global_put + + // tests/contracts/cblocks.algo.ts:428 + // this.byteValue.value = '157' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313537 // "157" + app_global_put + + // tests/contracts/cblocks.algo.ts:429 + // this.byteValue.value = '158' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313538 // "158" + app_global_put + + // tests/contracts/cblocks.algo.ts:430 + // this.byteValue.value = '159' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313539 // "159" + app_global_put + + // tests/contracts/cblocks.algo.ts:431 + // this.byteValue.value = '160' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313630 // "160" + app_global_put + + // tests/contracts/cblocks.algo.ts:432 + // this.byteValue.value = '161' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313631 // "161" + app_global_put + + // tests/contracts/cblocks.algo.ts:433 + // this.byteValue.value = '162' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313632 // "162" + app_global_put + + // tests/contracts/cblocks.algo.ts:434 + // this.byteValue.value = '163' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313633 // "163" + app_global_put + + // tests/contracts/cblocks.algo.ts:435 + // this.byteValue.value = '164' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313634 // "164" + app_global_put + + // tests/contracts/cblocks.algo.ts:436 + // this.byteValue.value = '165' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313635 // "165" + app_global_put + + // tests/contracts/cblocks.algo.ts:437 + // this.byteValue.value = '166' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313636 // "166" + app_global_put + + // tests/contracts/cblocks.algo.ts:438 + // this.byteValue.value = '167' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313637 // "167" + app_global_put + + // tests/contracts/cblocks.algo.ts:439 + // this.byteValue.value = '168' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313638 // "168" + app_global_put + + // tests/contracts/cblocks.algo.ts:440 + // this.byteValue.value = '169' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313639 // "169" + app_global_put + + // tests/contracts/cblocks.algo.ts:441 + // this.byteValue.value = '170' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313730 // "170" + app_global_put + + // tests/contracts/cblocks.algo.ts:442 + // this.byteValue.value = '171' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313731 // "171" + app_global_put + + // tests/contracts/cblocks.algo.ts:443 + // this.byteValue.value = '172' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313732 // "172" + app_global_put + + // tests/contracts/cblocks.algo.ts:444 + // this.byteValue.value = '173' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313733 // "173" + app_global_put + + // tests/contracts/cblocks.algo.ts:445 + // this.byteValue.value = '174' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313734 // "174" + app_global_put + + // tests/contracts/cblocks.algo.ts:446 + // this.byteValue.value = '175' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313735 // "175" + app_global_put + + // tests/contracts/cblocks.algo.ts:447 + // this.byteValue.value = '176' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313736 // "176" + app_global_put + + // tests/contracts/cblocks.algo.ts:448 + // this.byteValue.value = '177' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313737 // "177" + app_global_put + + // tests/contracts/cblocks.algo.ts:449 + // this.byteValue.value = '178' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313738 // "178" + app_global_put + + // tests/contracts/cblocks.algo.ts:450 + // this.byteValue.value = '179' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313739 // "179" + app_global_put + + // tests/contracts/cblocks.algo.ts:451 + // this.byteValue.value = '180' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313830 // "180" + app_global_put + + // tests/contracts/cblocks.algo.ts:452 + // this.byteValue.value = '181' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313831 // "181" + app_global_put + + // tests/contracts/cblocks.algo.ts:453 + // this.byteValue.value = '182' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313832 // "182" + app_global_put + + // tests/contracts/cblocks.algo.ts:454 + // this.byteValue.value = '183' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313833 // "183" + app_global_put + + // tests/contracts/cblocks.algo.ts:455 + // this.byteValue.value = '184' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313834 // "184" + app_global_put + + // tests/contracts/cblocks.algo.ts:456 + // this.byteValue.value = '185' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313835 // "185" + app_global_put + + // tests/contracts/cblocks.algo.ts:457 + // this.byteValue.value = '186' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313836 // "186" + app_global_put + + // tests/contracts/cblocks.algo.ts:458 + // this.byteValue.value = '187' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313837 // "187" + app_global_put + + // tests/contracts/cblocks.algo.ts:459 + // this.byteValue.value = '188' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313838 // "188" + app_global_put + + // tests/contracts/cblocks.algo.ts:460 + // this.byteValue.value = '189' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313839 // "189" + app_global_put + + // tests/contracts/cblocks.algo.ts:461 + // this.byteValue.value = '190' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313930 // "190" + app_global_put + + // tests/contracts/cblocks.algo.ts:462 + // this.byteValue.value = '191' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313931 // "191" + app_global_put + + // tests/contracts/cblocks.algo.ts:463 + // this.byteValue.value = '192' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313932 // "192" + app_global_put + + // tests/contracts/cblocks.algo.ts:464 + // this.byteValue.value = '193' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313933 // "193" + app_global_put + + // tests/contracts/cblocks.algo.ts:465 + // this.byteValue.value = '194' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313934 // "194" + app_global_put + + // tests/contracts/cblocks.algo.ts:466 + // this.byteValue.value = '195' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313935 // "195" + app_global_put + + // tests/contracts/cblocks.algo.ts:467 + // this.byteValue.value = '196' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313936 // "196" + app_global_put + + // tests/contracts/cblocks.algo.ts:468 + // this.byteValue.value = '197' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313937 // "197" + app_global_put + + // tests/contracts/cblocks.algo.ts:469 + // this.byteValue.value = '198' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313938 // "198" + app_global_put + + // tests/contracts/cblocks.algo.ts:470 + // this.byteValue.value = '199' + byte 0x6279746556616c7565 // "byteValue" + byte 0x313939 // "199" + app_global_put + + // tests/contracts/cblocks.algo.ts:471 + // this.byteValue.value = '200' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323030 // "200" + app_global_put + + // tests/contracts/cblocks.algo.ts:472 + // this.byteValue.value = '201' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323031 // "201" + app_global_put + + // tests/contracts/cblocks.algo.ts:473 + // this.byteValue.value = '202' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323032 // "202" + app_global_put + + // tests/contracts/cblocks.algo.ts:474 + // this.byteValue.value = '203' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323033 // "203" + app_global_put + + // tests/contracts/cblocks.algo.ts:475 + // this.byteValue.value = '204' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323034 // "204" + app_global_put + + // tests/contracts/cblocks.algo.ts:476 + // this.byteValue.value = '205' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323035 // "205" + app_global_put + + // tests/contracts/cblocks.algo.ts:477 + // this.byteValue.value = '206' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323036 // "206" + app_global_put + + // tests/contracts/cblocks.algo.ts:478 + // this.byteValue.value = '207' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323037 // "207" + app_global_put + + // tests/contracts/cblocks.algo.ts:479 + // this.byteValue.value = '208' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323038 // "208" + app_global_put + + // tests/contracts/cblocks.algo.ts:480 + // this.byteValue.value = '209' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323039 // "209" + app_global_put + + // tests/contracts/cblocks.algo.ts:481 + // this.byteValue.value = '210' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323130 // "210" + app_global_put + + // tests/contracts/cblocks.algo.ts:482 + // this.byteValue.value = '211' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323131 // "211" + app_global_put + + // tests/contracts/cblocks.algo.ts:483 + // this.byteValue.value = '212' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323132 // "212" + app_global_put + + // tests/contracts/cblocks.algo.ts:484 + // this.byteValue.value = '213' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323133 // "213" + app_global_put + + // tests/contracts/cblocks.algo.ts:485 + // this.byteValue.value = '214' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323134 // "214" + app_global_put + + // tests/contracts/cblocks.algo.ts:486 + // this.byteValue.value = '215' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323135 // "215" + app_global_put + + // tests/contracts/cblocks.algo.ts:487 + // this.byteValue.value = '216' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323136 // "216" + app_global_put + + // tests/contracts/cblocks.algo.ts:488 + // this.byteValue.value = '217' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323137 // "217" + app_global_put + + // tests/contracts/cblocks.algo.ts:489 + // this.byteValue.value = '218' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323138 // "218" + app_global_put + + // tests/contracts/cblocks.algo.ts:490 + // this.byteValue.value = '219' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323139 // "219" + app_global_put + + // tests/contracts/cblocks.algo.ts:491 + // this.byteValue.value = '220' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323230 // "220" + app_global_put + + // tests/contracts/cblocks.algo.ts:492 + // this.byteValue.value = '221' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323231 // "221" + app_global_put + + // tests/contracts/cblocks.algo.ts:493 + // this.byteValue.value = '222' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323232 // "222" + app_global_put + + // tests/contracts/cblocks.algo.ts:494 + // this.byteValue.value = '223' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323233 // "223" + app_global_put + + // tests/contracts/cblocks.algo.ts:495 + // this.byteValue.value = '224' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323234 // "224" + app_global_put + + // tests/contracts/cblocks.algo.ts:496 + // this.byteValue.value = '225' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323235 // "225" + app_global_put + + // tests/contracts/cblocks.algo.ts:497 + // this.byteValue.value = '226' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323236 // "226" + app_global_put + + // tests/contracts/cblocks.algo.ts:498 + // this.byteValue.value = '227' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323237 // "227" + app_global_put + + // tests/contracts/cblocks.algo.ts:499 + // this.byteValue.value = '228' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323238 // "228" + app_global_put + + // tests/contracts/cblocks.algo.ts:500 + // this.byteValue.value = '229' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323239 // "229" + app_global_put + + // tests/contracts/cblocks.algo.ts:501 + // this.byteValue.value = '230' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323330 // "230" + app_global_put + + // tests/contracts/cblocks.algo.ts:502 + // this.byteValue.value = '231' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323331 // "231" + app_global_put + + // tests/contracts/cblocks.algo.ts:503 + // this.byteValue.value = '232' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323332 // "232" + app_global_put + + // tests/contracts/cblocks.algo.ts:504 + // this.byteValue.value = '233' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323333 // "233" + app_global_put + + // tests/contracts/cblocks.algo.ts:505 + // this.byteValue.value = '234' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323334 // "234" + app_global_put + + // tests/contracts/cblocks.algo.ts:506 + // this.byteValue.value = '235' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323335 // "235" + app_global_put + + // tests/contracts/cblocks.algo.ts:507 + // this.byteValue.value = '236' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323336 // "236" + app_global_put + + // tests/contracts/cblocks.algo.ts:508 + // this.byteValue.value = '237' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323337 // "237" + app_global_put + + // tests/contracts/cblocks.algo.ts:509 + // this.byteValue.value = '238' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323338 // "238" + app_global_put + + // tests/contracts/cblocks.algo.ts:510 + // this.byteValue.value = '239' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323339 // "239" + app_global_put + + // tests/contracts/cblocks.algo.ts:511 + // this.byteValue.value = '240' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323430 // "240" + app_global_put + + // tests/contracts/cblocks.algo.ts:512 + // this.byteValue.value = '241' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323431 // "241" + app_global_put + + // tests/contracts/cblocks.algo.ts:513 + // this.byteValue.value = '242' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323432 // "242" + app_global_put + + // tests/contracts/cblocks.algo.ts:514 + // this.byteValue.value = '243' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323433 // "243" + app_global_put + + // tests/contracts/cblocks.algo.ts:515 + // this.byteValue.value = '244' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323434 // "244" + app_global_put + + // tests/contracts/cblocks.algo.ts:516 + // this.byteValue.value = '245' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323435 // "245" + app_global_put + + // tests/contracts/cblocks.algo.ts:517 + // this.byteValue.value = '246' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323436 // "246" + app_global_put + + // tests/contracts/cblocks.algo.ts:518 + // this.byteValue.value = '247' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323437 // "247" + app_global_put + + // tests/contracts/cblocks.algo.ts:519 + // this.byteValue.value = '248' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323438 // "248" + app_global_put + + // tests/contracts/cblocks.algo.ts:520 + // this.byteValue.value = '249' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323439 // "249" + app_global_put + + // tests/contracts/cblocks.algo.ts:521 + // this.byteValue.value = '250' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323530 // "250" + app_global_put + + // tests/contracts/cblocks.algo.ts:522 + // this.byteValue.value = '251' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323531 // "251" + app_global_put + + // tests/contracts/cblocks.algo.ts:523 + // this.byteValue.value = '252' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323532 // "252" + app_global_put + + // tests/contracts/cblocks.algo.ts:524 + // this.byteValue.value = '253' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323533 // "253" + app_global_put + + // tests/contracts/cblocks.algo.ts:525 + // this.byteValue.value = '254' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323534 // "254" + app_global_put + + // tests/contracts/cblocks.algo.ts:526 + // this.byteValue.value = '255' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323535 // "255" + app_global_put + + // tests/contracts/cblocks.algo.ts:527 + // this.byteValue.value = '256' + byte 0x6279746556616c7565 // "byteValue" + byte 0x323536 // "256" + app_global_put + + // tests/contracts/cblocks.algo.ts:529 + // this.byteValue.value = + // 'This is a fairly long byteslice that should be put in the consant block because it is so long, despite the fact that it comes after the other strings' + byte 0x6279746556616c7565 // "byteValue" + byte 0x54686973206973206120666169726c79206c6f6e672062797465736c69636520746861742073686f756c642062652070757420696e2074686520636f6e73616e7420626c6f636b206265636175736520697420697320736f206c6f6e672c2064657370697465207468652066616374207468617420697420636f6d657320616674657220746865206f7468657220737472696e6773 // "This is a fairly long byteslice that should be put in the consant block because it is so long, despite the fact that it comes after the other strings" + app_global_put + + // tests/contracts/cblocks.algo.ts:532 + // return a + b; + pushbytes "1" + byte "257" + concat + retsub + +*abi_route_createApplication: + pushint 1 + return + +*create_NoOp: + byte 0xb8447b36 // method "createApplication()void" + txna ApplicationArgs 0 + match *abi_route_createApplication + + // this contract does not implement the given ABI method for create NoOp + err + +*call_NoOp: + byte 0xd14e61db // method "largeIntcblock()uint64" + byte 0xc48a55a8 // method "largeBytecblock()byte[]" + txna ApplicationArgs 0 + match *abi_route_largeIntcblock *abi_route_largeBytecblock + + // this contract does not implement the given ABI method for call NoOp + err \ No newline at end of file diff --git a/tests/contracts/artifacts/CblocksTest.arc32.json b/tests/contracts/artifacts/CblocksTest.arc32.json new file mode 100644 index 000000000..b6fd6ec85 --- /dev/null +++ b/tests/contracts/artifacts/CblocksTest.arc32.json @@ -0,0 +1,86 @@ +{ + "hints": { + "largeIntcblock()uint64": { + "call_config": { + "no_op": "CALL" + } + }, + "largeBytecblock()byte[]": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": { + "intValue": { + "type": "uint64", + "key": "intValue" + }, + "byteValue": { + "type": "bytes", + "key": "byteValue" + } + }, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 1, + "num_uints": 1 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyNTggMjU2IDI1NSAyNTQgMjUzIDI1MiAyNTEgMjUwIDI0OSAyNDggMjQ3IDI0NiAyNDUgMjQ0IDI0MyAyNDIgMjQxIDI0MCAyMzkgMjM4IDIzNyAyMzYgMjM1IDIzNCAyMzMgMjMyIDIzMSAyMzAgMjI5IDIyOCAyMjcgMjI2IDIyNSAyMjQgMjIzIDIyMiAyMjEgMjIwIDIxOSAyMTggMjE3IDIxNiAyMTUgMjE0IDIxMyAyMTIgMjExIDIxMCAyMDkgMjA4IDIwNyAyMDYgMjA1IDIwNCAyMDMgMjAyIDIwMSAyMDAgMTk5IDE5OCAxOTcgMTk2IDE5NSAxOTQgMTkzIDE5MiAxOTEgMTkwIDE4OSAxODggMTg3IDE4NiAxODUgMTg0IDE4MyAxODIgMTgxIDE4MCAxNzkgMTc4IDE3NyAxNzYgMTc1IDE3NCAxNzMgMTcyIDE3MSAxNzAgMTY5IDE2OCAxNjcgMTY2IDE2NSAxNjQgMTYzIDE2MiAxNjEgMTYwIDE1OSAxNTggMTU3IDE1NiAxNTUgMTU0IDE1MyAxNTIgMTUxIDE1MCAxNDkgMTQ4IDE0NyAxNDYgMTQ1IDE0NCAxNDMgMTQyIDE0MSAxNDAgMTM5IDEzOCAxMzcgMTM2IDEzNSAxMzQgMTMzIDEzMiAxMzEgMTMwIDEyOSAxMjggMTI3IDEyNiAxMjUgMTI0IDEyMyAxMjIgMTIxIDEyMCAxMTkgMTE4IDExNyAxMTYgMTE1IDExNCAxMTMgMTEyIDExMSAxMTAgMTA5IDEwOCAxMDcgMTA2IDEwNSAxMDQgMTAzIDEwMiAxMDEgMTAwIDk5IDk4IDk3IDk2IDk1IDk0IDkzIDkyIDkxIDkwIDg5IDg4IDg3IDg2IDg1IDg0IDgzIDgyIDgxIDgwIDc5IDc4IDc3IDc2IDc1IDc0IDczIDcyIDcxIDcwIDY5IDY4IDY3IDY2IDY1IDY0IDYzIDYyIDYxIDYwIDU5IDU4IDU3IDU2IDU1IDU0IDUzIDUyIDUxIDUwIDQ5IDQ4IDQ3IDQ2IDQ1IDQ0IDQzIDQyIDQxIDQwIDM5IDM4IDM3IDM2IDM1IDM0IDMzIDMyIDMxIDMwIDI5IDI4IDI3IDI2IDI1IDI0IDIzIDIyIDIxIDIwIDE5IDE4IDE3IDE2IDE1IDE0IDEzIDEyIDExIDEwIDkgOCA3IDYgNSA0IDMKYnl0ZWNibG9jayAweDU0Njg2OTczMjA2OTczMjA2MTIwNjY2MTY5NzI2Yzc5MjA2YzZmNmU2NzIwNjI3OTc0NjU3MzZjNjk2MzY1MjA3NDY4NjE3NDIwNzM2ODZmNzU2YzY0MjA2MjY1MjA3MDc1NzQyMDY5NmUyMDc0Njg2NTIwNjM2ZjZlNzM2MTZlNzQyMDYyNmM2ZjYzNmIyMDYyNjU2MzYxNzU3MzY1MjA2OTc0MjA2OTczMjA3MzZmMjA2YzZmNmU2NzJjMjA2NDY1NzM3MDY5NzQ2NTIwNzQ2ODY1MjA2NjYxNjM3NDIwNzQ2ODYxNzQyMDY5NzQyMDYzNmY2ZDY1NzMyMDYxNjY3NDY1NzIyMDc0Njg2NTIwNmY3NDY4NjU3MjIwNzM3NDcyNjk2ZTY3NzMgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgMHg2OTZlNzQ1NjYxNmM3NTY1IDB4MTUxZjdjNzUgMHhiODQ0N2IzNiAweGQxNGU2MWRiIDB4YzQ4YTU1YTggMHgzMTMwMzAgMHgzMTMwMzEgMHgzMTMwMzIgMHgzMTMwMzMgMHgzMTMwMzQgMHgzMTMwMzUgMHgzMTMwMzYgMHgzMTMwMzcgMHgzMTMwMzggMHgzMTMwMzkgMHgzMTMxMzAgMHgzMTMxMzEgMHgzMTMxMzIgMHgzMTMxMzMgMHgzMTMxMzQgMHgzMTMxMzUgMHgzMTMxMzYgMHgzMTMxMzcgMHgzMTMxMzggMHgzMTMxMzkgMHgzMTMyMzAgMHgzMTMyMzEgMHgzMTMyMzIgMHgzMTMyMzMgMHgzMTMyMzQgMHgzMTMyMzUgMHgzMTMyMzYgMHgzMTMyMzcgMHgzMTMyMzggMHgzMTMyMzkgMHgzMTMzMzAgMHgzMTMzMzEgMHgzMTMzMzIgMHgzMTMzMzMgMHgzMTMzMzQgMHgzMTMzMzUgMHgzMTMzMzYgMHgzMTMzMzcgMHgzMTMzMzggMHgzMTMzMzkgMHgzMTM0MzAgMHgzMTM0MzEgMHgzMTM0MzIgMHgzMTM0MzMgMHgzMTM0MzQgMHgzMTM0MzUgMHgzMTM0MzYgMHgzMTM0MzcgMHgzMTM0MzggMHgzMTM0MzkgMHgzMTM1MzAgMHgzMTM1MzEgMHgzMTM1MzIgMHgzMTM1MzMgMHgzMTM1MzQgMHgzMTM1MzUgMHgzMTM1MzYgMHgzMTM1MzcgMHgzMTM1MzggMHgzMTM1MzkgMHgzMTM2MzAgMHgzMTM2MzEgMHgzMTM2MzIgMHgzMTM2MzMgMHgzMTM2MzQgMHgzMTM2MzUgMHgzMTM2MzYgMHgzMTM2MzcgMHgzMTM2MzggMHgzMTM2MzkgMHgzMTM3MzAgMHgzMTM3MzEgMHgzMTM3MzIgMHgzMTM3MzMgMHgzMTM3MzQgMHgzMTM3MzUgMHgzMTM3MzYgMHgzMTM3MzcgMHgzMTM3MzggMHgzMTM3MzkgMHgzMTM4MzAgMHgzMTM4MzEgMHgzMTM4MzIgMHgzMTM4MzMgMHgzMTM4MzQgMHgzMTM4MzUgMHgzMTM4MzYgMHgzMTM4MzcgMHgzMTM4MzggMHgzMTM4MzkgMHgzMTM5MzAgMHgzMTM5MzEgMHgzMTM5MzIgMHgzMTM5MzMgMHgzMTM5MzQgMHgzMTM5MzUgMHgzMTM5MzYgMHgzMTM5MzcgMHgzMTM5MzggMHgzMTM5MzkgMHgzMjMwMzAgMHgzMjMwMzEgMHgzMjMwMzIgMHgzMjMwMzMgMHgzMjMwMzQgMHgzMjMwMzUgMHgzMjMwMzYgMHgzMjMwMzcgMHgzMjMwMzggMHgzMjMwMzkgMHgzMjMxMzAgMHgzMjMxMzEgMHgzMjMxMzIgMHgzMjMxMzMgMHgzMjMxMzQgMHgzMjMxMzUgMHgzMjMxMzYgMHgzMjMxMzcgMHgzMjMxMzggMHgzMjMxMzkgMHgzMjMyMzAgMHgzMjMyMzEgMHgzMjMyMzIgMHgzMjMyMzMgMHgzMjMyMzQgMHgzMjMyMzUgMHgzMjMyMzYgMHgzMjMyMzcgMHgzMjMyMzggMHgzMjMyMzkgMHgzMjMzMzAgMHgzMjMzMzEgMHgzMjMzMzIgMHgzMjMzMzMgMHgzMjMzMzQgMHgzMjMzMzUgMHgzMjMzMzYgMHgzMjMzMzcgMHgzMjMzMzggMHgzMjMzMzkgMHgzMjM0MzAgMHgzMjM0MzEgMHgzMjM0MzIgMHgzMjM0MzMgMHgzMjM0MzQgMHgzMjM0MzUgMHgzMjM0MzYgMHgzMjM0MzcgMHgzMjM0MzggMHgzMjM0MzkgMHgzMjM1MzAgMHgzMjM1MzEgMHgzMjM1MzIgMHgzMjM1MzMgMHgzMjM1MzQgMHgzMjM1MzUgMHgzMjM1MzYgMHgzMTMwIDB4MzEzMSAweDMxMzIgMHgzMTMzIDB4MzEzNCAweDMxMzUgMHgzMTM2IDB4MzEzNyAweDMxMzggMHgzMTM5IDB4MzIzMCAweDMyMzEgMHgzMjMyIDB4MzIzMyAweDMyMzQgMHgzMjM1IDB4MzIzNiAweDMyMzcgMHgzMjM4IDB4MzIzOSAweDMzMzAgMHgzMzMxIDB4MzMzMiAweDMzMzMgMHgzMzM0IDB4MzMzNSAweDMzMzYgMHgzMzM3IDB4MzMzOCAweDMzMzkgMHgzNDMwIDB4MzQzMSAweDM0MzIgMHgzNDMzIDB4MzQzNCAweDM0MzUgMHgzNDM2IDB4MzQzNyAweDM0MzggMHgzNDM5IDB4MzUzMCAweDM1MzEgMHgzNTMyIDB4MzUzMyAweDM1MzQgMHgzNTM1IDB4MzUzNiAweDM1MzcgMHgzNTM4IDB4MzUzOSAweDM2MzAgMHgzNjMxIDB4MzYzMiAweDM2MzMgMHgzNjM0IDB4MzYzNSAweDM2MzYgMHgzNjM3IDB4MzYzOCAweDM2MzkgMHgzNzMwIDB4MzczMSAweDM3MzIgMHgzNzMzIDB4MzczNCAweDM3MzUgMHgzNzM2IDB4MzczNyAweDM3MzggMHgzNzM5IDB4MzgzMCAweDM4MzEgMHgzODMyIDB4MzgzMyAweDM4MzQgMHgzODM1IDB4MzgzNiAweDM4MzcgMHgzODM4IDB4MzgzOSAweDM5MzAgMHgzOTMxIDB4MzkzMiAweDM5MzMgMHgzOTM0IDB4MzkzNSAweDM5MzYgMHgzOTM3IDB4MzkzOCAweDM5MzkgIjI1NyIKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTAyLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGxhcmdlSW50Y2Jsb2NrKCl1aW50NjQKKmFiaV9yb3V0ZV9sYXJnZUludGNibG9jazoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBsYXJnZUludGNibG9jaygpdWludDY0CgljYWxsc3ViIGxhcmdlSW50Y2Jsb2NrCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGxhcmdlSW50Y2Jsb2NrKCk6IHVpbnQ2NApsYXJnZUludGNibG9jazoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglwdXNoaW50IDIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMgoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDMKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgNAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjE0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxNQoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDYKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgNwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjE3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxOAoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDkKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDEwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDExCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDEyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDEzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxOQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyOQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzOQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDcwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDcxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDcyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDkwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTAwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOTEKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5MQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwMQoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDkyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgOTIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDkzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTAzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOTQKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwNAoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDk1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgOTUKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDk2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOTcKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5NwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwNwoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDk4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgOTgKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDk5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTExCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTEwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTEwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTExCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTExCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTEyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTEyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTEzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTEzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTczCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTcwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTcwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTcxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTcxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTcyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTcyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTczCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjExCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjEwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjEwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjExCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjExCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjEyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjEyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjEzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjEzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjU0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjU0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjU1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjU1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjU2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjU2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY4CgkvLyByZXR1cm4gYSArIGI7CglpbnQgMjU4CglyZXRzdWIKCi8vIGxhcmdlQnl0ZWNibG9jaygpYnl0ZVtdCiphYmlfcm91dGVfbGFyZ2VCeXRlY2Jsb2NrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGxhcmdlQnl0ZWNibG9jaygpYnl0ZVtdCgljYWxsc3ViIGxhcmdlQnl0ZWNibG9jawoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbGFyZ2VCeXRlY2Jsb2NrKCk6IGJ5dGVzCmxhcmdlQnl0ZWNibG9jazoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIgLy8gIjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMgLy8gIjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQgLy8gIjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUgLy8gIjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYgLy8gIjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzcgLy8gIjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzggLy8gIjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkgLy8gIjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTMwIC8vICIxMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMxMzEgLy8gIjExIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMiAvLyAiMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTMzIC8vICIxMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMxMzQgLy8gIjE0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNSAvLyAiMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTM2IC8vICIxNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMxMzcgLy8gIjE3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOCAvLyAiMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTM5IC8vICIxOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzAgLy8gIjIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMSAvLyAiMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMjMyIC8vICIyMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzMgLy8gIjIzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNCAvLyAiMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMjM1IC8vICIyNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzYgLy8gIjI2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNyAvLyAiMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMjM4IC8vICIyOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzkgLy8gIjI5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzMCAvLyAiMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMzMxIC8vICIzMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzMyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMzMzIgLy8gIjMyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzMyAvLyAiMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMzM0IC8vICIzNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMzMzUgLy8gIjM1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzNiAvLyAiMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMzM3IC8vICIzNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMzMzggLy8gIjM4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzOSAvLyAiMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDMwIC8vICI0MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM0MzEgLy8gIjQxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzQzMiAvLyAiNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDMzIC8vICI0MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM0MzQgLy8gIjQ0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzQzNSAvLyAiNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDM2IC8vICI0NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM0MzcgLy8gIjQ3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzQzOCAvLyAiNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDM5IC8vICI0OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzAgLy8gIjUwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzUzMSAvLyAiNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNTMyIC8vICI1MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzMgLy8gIjUzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzUzNCAvLyAiNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNTM1IC8vICI1NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzYgLy8gIjU2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzUzNyAvLyAiNTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNTM4IC8vICI1OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzkgLy8gIjU5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzMCAvLyAiNjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNjMxIC8vICI2MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzYyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM2MzIgLy8gIjYyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzMyAvLyAiNjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNjM0IC8vICI2NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM2MzUgLy8gIjY1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzNiAvLyAiNjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNjM3IC8vICI2NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM2MzggLy8gIjY4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzOSAvLyAiNjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzMwIC8vICI3MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzcxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM3MzEgLy8gIjcxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzczMiAvLyAiNzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzMzIC8vICI3MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM3MzQgLy8gIjc0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzczNSAvLyAiNzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzM2IC8vICI3NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM3MzcgLy8gIjc3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzczOCAvLyAiNzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzM5IC8vICI3OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzAgLy8gIjgwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzgzMSAvLyAiODEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzODMyIC8vICI4MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzMgLy8gIjgzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzgzNCAvLyAiODQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzODM1IC8vICI4NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzYgLy8gIjg2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzgzNyAvLyAiODciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzODM4IC8vICI4OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzkgLy8gIjg5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzMCAvLyAiOTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzYyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzOTMxIC8vICI5MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzkyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM5MzIgLy8gIjkyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzMyAvLyAiOTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzOTM0IC8vICI5NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM5MzUgLy8gIjk1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzNiAvLyAiOTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzOTM3IC8vICI5NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM5MzggLy8gIjk4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzOSAvLyAiOTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMwIC8vICIxMDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMxIC8vICIxMDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMyIC8vICIxMDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMzIC8vICIxMDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM0IC8vICIxMDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM1IC8vICIxMDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM2IC8vICIxMDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM3IC8vICIxMDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM4IC8vICIxMDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM5IC8vICIxMDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMwIC8vICIxMTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMxIC8vICIxMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMyIC8vICIxMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMzIC8vICIxMTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM0IC8vICIxMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM1IC8vICIxMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM2IC8vICIxMTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM3IC8vICIxMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM4IC8vICIxMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM5IC8vICIxMTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMwIC8vICIxMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMxIC8vICIxMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMyIC8vICIxMjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMzIC8vICIxMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM0IC8vICIxMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM1IC8vICIxMjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM2IC8vICIxMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM3IC8vICIxMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM4IC8vICIxMjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM5IC8vICIxMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMwIC8vICIxMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMxIC8vICIxMzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMyIC8vICIxMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMzIC8vICIxMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM0IC8vICIxMzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM1IC8vICIxMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM2IC8vICIxMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM3IC8vICIxMzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM4IC8vICIxMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM5IC8vICIxMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMwIC8vICIxNDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMxIC8vICIxNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMyIC8vICIxNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMzIC8vICIxNDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM0IC8vICIxNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM1IC8vICIxNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM2IC8vICIxNDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM3IC8vICIxNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM4IC8vICIxNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM5IC8vICIxNDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMwIC8vICIxNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMxIC8vICIxNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMyIC8vICIxNTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMzIC8vICIxNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM0IC8vICIxNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM1IC8vICIxNTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM2IC8vICIxNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM3IC8vICIxNTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM4IC8vICIxNTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM5IC8vICIxNTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMwIC8vICIxNjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMxIC8vICIxNjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMyIC8vICIxNjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMzIC8vICIxNjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM0IC8vICIxNjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM1IC8vICIxNjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM2IC8vICIxNjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM3IC8vICIxNjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM4IC8vICIxNjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM5IC8vICIxNjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMwIC8vICIxNzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMxIC8vICIxNzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMyIC8vICIxNzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMzIC8vICIxNzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM0IC8vICIxNzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM1IC8vICIxNzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM2IC8vICIxNzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM3IC8vICIxNzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM4IC8vICIxNzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM5IC8vICIxNzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMwIC8vICIxODAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMxIC8vICIxODEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMyIC8vICIxODIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMzIC8vICIxODMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM0IC8vICIxODQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM1IC8vICIxODUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM2IC8vICIxODYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM3IC8vICIxODciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM4IC8vICIxODgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM5IC8vICIxODkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMwIC8vICIxOTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMxIC8vICIxOTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMyIC8vICIxOTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMzIC8vICIxOTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM0IC8vICIxOTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM1IC8vICIxOTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM2IC8vICIxOTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM3IC8vICIxOTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM4IC8vICIxOTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM5IC8vICIxOTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMwIC8vICIyMDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMxIC8vICIyMDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMyIC8vICIyMDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMzIC8vICIyMDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM0IC8vICIyMDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM1IC8vICIyMDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM2IC8vICIyMDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM3IC8vICIyMDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM4IC8vICIyMDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM5IC8vICIyMDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMwIC8vICIyMTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMxIC8vICIyMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMyIC8vICIyMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMzIC8vICIyMTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM0IC8vICIyMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM1IC8vICIyMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM2IC8vICIyMTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM3IC8vICIyMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM4IC8vICIyMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM5IC8vICIyMTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMwIC8vICIyMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMxIC8vICIyMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMyIC8vICIyMjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMzIC8vICIyMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM0IC8vICIyMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM1IC8vICIyMjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM2IC8vICIyMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM3IC8vICIyMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM4IC8vICIyMjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM5IC8vICIyMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMwIC8vICIyMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMxIC8vICIyMzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMyIC8vICIyMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMzIC8vICIyMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM0IC8vICIyMzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM1IC8vICIyMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM2IC8vICIyMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM3IC8vICIyMzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM4IC8vICIyMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM5IC8vICIyMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMwIC8vICIyNDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMxIC8vICIyNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMyIC8vICIyNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMzIC8vICIyNDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM0IC8vICIyNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM1IC8vICIyNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM2IC8vICIyNDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM3IC8vICIyNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM4IC8vICIyNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM5IC8vICIyNDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMwIC8vICIyNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMxIC8vICIyNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMyIC8vICIyNTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMzIC8vICIyNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTM0IC8vICIyNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTM1IC8vICIyNTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTM2IC8vICIyNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9CgkvLyAgICAgICAnVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nLCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgaXQgY29tZXMgYWZ0ZXIgdGhlIG90aGVyIHN0cmluZ3MnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4NTQ2ODY5NzMyMDY5NzMyMDYxMjA2NjYxNjk3MjZjNzkyMDZjNmY2ZTY3MjA2Mjc5NzQ2NTczNmM2OTYzNjUyMDc0Njg2MTc0MjA3MzY4NmY3NTZjNjQyMDYyNjUyMDcwNzU3NDIwNjk2ZTIwNzQ2ODY1MjA2MzZmNmU3MzYxNmU3NDIwNjI2YzZmNjM2YjIwNjI2NTYzNjE3NTczNjUyMDY5NzQyMDY5NzMyMDczNmYyMDZjNmY2ZTY3MmMyMDY0NjU3MzcwNjk3NDY1MjA3NDY4NjUyMDY2NjE2Mzc0MjA3NDY4NjE3NDIwNjk3NDIwNjM2ZjZkNjU3MzIwNjE2Njc0NjU3MjIwNzQ2ODY1MjA2Zjc0Njg2NTcyMjA3Mzc0NzI2OTZlNjc3MyAvLyAiVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nLCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgaXQgY29tZXMgYWZ0ZXIgdGhlIG90aGVyIHN0cmluZ3MiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTMyCgkvLyByZXR1cm4gYSArIGI7CglwdXNoYnl0ZXMgIjEiCglieXRlICIyNTciCgljb25jYXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglieXRlIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCWJ5dGUgMHhkMTRlNjFkYiAvLyBtZXRob2QgImxhcmdlSW50Y2Jsb2NrKCl1aW50NjQiCglieXRlIDB4YzQ4YTU1YTggLy8gbWV0aG9kICJsYXJnZUJ5dGVjYmxvY2soKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VJbnRjYmxvY2sgKmFiaV9yb3V0ZV9sYXJnZUJ5dGVjYmxvY2sKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "CblocksTest", + "desc": "", + "methods": [ + { + "name": "largeIntcblock", + "args": [], + "returns": { + "type": "uint64" + } + }, + { + "name": "largeBytecblock", + "args": [], + "returns": { + "type": "byte[]" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/CblocksTest.arc4.json b/tests/contracts/artifacts/CblocksTest.arc4.json new file mode 100644 index 000000000..10f1bd112 --- /dev/null +++ b/tests/contracts/artifacts/CblocksTest.arc4.json @@ -0,0 +1,27 @@ +{ + "name": "CblocksTest", + "desc": "", + "methods": [ + { + "name": "largeIntcblock", + "args": [], + "returns": { + "type": "uint64" + } + }, + { + "name": "largeBytecblock", + "args": [], + "returns": { + "type": "byte[]" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] +} \ No newline at end of file diff --git a/tests/contracts/artifacts/CblocksTest.arc56_draft.json b/tests/contracts/artifacts/CblocksTest.arc56_draft.json new file mode 100644 index 000000000..9d6224b14 --- /dev/null +++ b/tests/contracts/artifacts/CblocksTest.arc56_draft.json @@ -0,0 +1,19057 @@ +{ + "name": "CblocksTest", + "desc": "", + "methods": [ + { + "name": "largeIntcblock", + "args": [], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "largeBytecblock", + "args": [], + "returns": { + "type": "byte[]" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "arcs": [ + 4, + 56 + ], + "structs": {}, + "state": { + "schema": { + "global": { + "bytes": 1, + "ints": 1 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": { + "intValue": { + "key": "aW50VmFsdWU=", + "keyType": "bytes", + "valueType": "uint64" + }, + "byteValue": { + "key": "Ynl0ZVZhbHVl", + "keyType": "bytes", + "valueType": "byte[]" + } + }, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": {}, + "box": {} + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": [ + { + "teal": 1, + "source": 4, + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": 4, + "pc": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179, + 180, + 181, + 182, + 183, + 184, + 185, + 186, + 187, + 188, + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 210, + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222, + 223, + 224, + 225, + 226, + 227, + 228, + 229, + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243, + 244, + 245, + 246, + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262, + 263, + 264, + 265, + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280, + 281, + 282, + 283, + 284, + 285, + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295, + 296, + 297, + 298, + 299, + 300, + 301, + 302, + 303, + 304, + 305, + 306, + 307, + 308, + 309, + 310, + 311, + 312, + 313, + 314, + 315, + 316, + 317, + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351, + 352, + 353, + 354, + 355, + 356, + 357, + 358, + 359, + 360, + 361, + 362, + 363, + 364, + 365, + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388 + ] + }, + { + "teal": 3, + "source": 4, + "pc": [ + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223, + 1224, + 1225, + 1226, + 1227, + 1228, + 1229, + 1230, + 1231, + 1232, + 1233, + 1234, + 1235, + 1236, + 1237, + 1238, + 1239, + 1240, + 1241, + 1242, + 1243, + 1244, + 1245, + 1246, + 1247, + 1248, + 1249, + 1250, + 1251, + 1252, + 1253, + 1254, + 1255, + 1256, + 1257, + 1258, + 1259, + 1260, + 1261, + 1262, + 1263, + 1264, + 1265, + 1266, + 1267, + 1268, + 1269, + 1270, + 1271, + 1272, + 1273, + 1274, + 1275, + 1276, + 1277, + 1278, + 1279, + 1280, + 1281, + 1282, + 1283, + 1284, + 1285, + 1286, + 1287, + 1288, + 1289, + 1290, + 1291, + 1292, + 1293, + 1294, + 1295, + 1296, + 1297, + 1298, + 1299, + 1300, + 1301, + 1302, + 1303, + 1304, + 1305, + 1306, + 1307, + 1308, + 1309, + 1310, + 1311, + 1312, + 1313, + 1314, + 1315, + 1316, + 1317, + 1318, + 1319, + 1320, + 1321, + 1322, + 1323, + 1324, + 1325, + 1326, + 1327, + 1328, + 1329, + 1330, + 1331, + 1332, + 1333, + 1334, + 1335, + 1336, + 1337, + 1338, + 1339, + 1340, + 1341, + 1342, + 1343, + 1344, + 1345, + 1346, + 1347, + 1348, + 1349, + 1350, + 1351, + 1352, + 1353, + 1354, + 1355, + 1356, + 1357, + 1358, + 1359, + 1360, + 1361, + 1362, + 1363, + 1364, + 1365, + 1366, + 1367, + 1368, + 1369, + 1370, + 1371, + 1372, + 1373, + 1374, + 1375, + 1376, + 1377, + 1378, + 1379, + 1380, + 1381, + 1382, + 1383, + 1384, + 1385, + 1386, + 1387, + 1388, + 1389, + 1390, + 1391, + 1392, + 1393, + 1394, + 1395, + 1396, + 1397, + 1398, + 1399, + 1400, + 1401, + 1402, + 1403, + 1404, + 1405, + 1406, + 1407, + 1408, + 1409, + 1410, + 1411, + 1412, + 1413, + 1414, + 1415, + 1416, + 1417, + 1418, + 1419, + 1420, + 1421, + 1422, + 1423, + 1424, + 1425, + 1426, + 1427, + 1428, + 1429, + 1430, + 1431, + 1432, + 1433, + 1434, + 1435, + 1436, + 1437, + 1438, + 1439, + 1440, + 1441, + 1442, + 1443, + 1444, + 1445, + 1446, + 1447, + 1448, + 1449, + 1450, + 1451, + 1452, + 1453, + 1454, + 1455, + 1456, + 1457, + 1458, + 1459, + 1460, + 1461, + 1462, + 1463, + 1464, + 1465, + 1466, + 1467, + 1468, + 1469, + 1470, + 1471, + 1472, + 1473, + 1474, + 1475, + 1476, + 1477, + 1478, + 1479, + 1480, + 1481, + 1482, + 1483 + ] + }, + { + "teal": 15, + "source": 4, + "pc": [ + 1484, + 1485 + ] + }, + { + "teal": 16, + "source": 4, + "pc": [ + 1486 + ] + }, + { + "teal": 17, + "source": 4, + "pc": [ + 1487, + 1488 + ] + }, + { + "teal": 18, + "source": 4, + "pc": [ + 1489 + ] + }, + { + "teal": 19, + "source": 4, + "pc": [ + 1490, + 1491 + ] + }, + { + "teal": 20, + "source": 4, + "pc": [ + 1492 + ] + }, + { + "teal": 21, + "source": 4, + "pc": [ + 1493, + 1494, + 1495, + 1496, + 1497, + 1498, + 1499, + 1500, + 1501, + 1502, + 1503, + 1504, + 1505, + 1506, + 1507, + 1508, + 1509, + 1510, + 1511, + 1512, + 1513, + 1514, + 1515, + 1516, + 1517, + 1518 + ] + }, + { + "teal": 25, + "source": 4, + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 1519 + ] + }, + { + "teal": 30, + "source": 9, + "pc": [ + 1520, + 1521, + 1522, + 1523, + 1524, + 1525 + ] + }, + { + "teal": 33, + "source": 9, + "pc": [ + 1526, + 1527, + 1528 + ] + }, + { + "teal": 34, + "source": 9, + "pc": [ + 1529 + ] + }, + { + "teal": 35, + "source": 9, + "pc": [ + 1530 + ] + }, + { + "teal": 36, + "source": 9, + "pc": [ + 1531 + ] + }, + { + "teal": 37, + "source": 9, + "pc": [ + 1532, + 1533 + ] + }, + { + "teal": 38, + "source": 9, + "pc": [ + 1534 + ] + }, + { + "teal": 42, + "source": 9, + "pc": [ + 1535, + 1536, + 1537 + ] + }, + { + "teal": 46, + "source": 11, + "pc": [ + 1538, + 1539, + 1540, + 1541, + 1542, + 1543, + 1544, + 1545, + 1546, + 1547 + ] + }, + { + "teal": 47, + "source": 11, + "pc": [ + 1548, + 1549 + ] + }, + { + "teal": 48, + "source": 11, + "pc": [ + 1550 + ] + }, + { + "teal": 52, + "source": 12, + "pc": [ + 1551, + 1552, + 1553, + 1554, + 1555, + 1556, + 1557, + 1558, + 1559, + 1560 + ] + }, + { + "teal": 53, + "source": 12, + "pc": [ + 1561, + 1562 + ] + }, + { + "teal": 54, + "source": 12, + "pc": [ + 1563 + ] + }, + { + "teal": 58, + "source": 13, + "pc": [ + 1564, + 1565, + 1566, + 1567, + 1568, + 1569, + 1570, + 1571, + 1572, + 1573 + ] + }, + { + "teal": 59, + "source": 13, + "pc": [ + 1574, + 1575 + ] + }, + { + "teal": 60, + "source": 13, + "pc": [ + 1576 + ] + }, + { + "teal": 64, + "source": 14, + "pc": [ + 1577, + 1578, + 1579, + 1580, + 1581, + 1582, + 1583, + 1584, + 1585, + 1586 + ] + }, + { + "teal": 65, + "source": 14, + "pc": [ + 1587, + 1588 + ] + }, + { + "teal": 66, + "source": 14, + "pc": [ + 1589 + ] + }, + { + "teal": 70, + "source": 15, + "pc": [ + 1590, + 1591, + 1592, + 1593, + 1594, + 1595, + 1596, + 1597, + 1598, + 1599 + ] + }, + { + "teal": 71, + "source": 15, + "pc": [ + 1600, + 1601 + ] + }, + { + "teal": 72, + "source": 15, + "pc": [ + 1602 + ] + }, + { + "teal": 76, + "source": 16, + "pc": [ + 1603, + 1604, + 1605, + 1606, + 1607, + 1608, + 1609, + 1610, + 1611, + 1612 + ] + }, + { + "teal": 77, + "source": 16, + "pc": [ + 1613, + 1614 + ] + }, + { + "teal": 78, + "source": 16, + "pc": [ + 1615 + ] + }, + { + "teal": 82, + "source": 17, + "pc": [ + 1616, + 1617, + 1618, + 1619, + 1620, + 1621, + 1622, + 1623, + 1624, + 1625 + ] + }, + { + "teal": 83, + "source": 17, + "pc": [ + 1626, + 1627 + ] + }, + { + "teal": 84, + "source": 17, + "pc": [ + 1628 + ] + }, + { + "teal": 88, + "source": 18, + "pc": [ + 1629, + 1630, + 1631, + 1632, + 1633, + 1634, + 1635, + 1636, + 1637, + 1638 + ] + }, + { + "teal": 89, + "source": 18, + "pc": [ + 1639, + 1640 + ] + }, + { + "teal": 90, + "source": 18, + "pc": [ + 1641 + ] + }, + { + "teal": 94, + "source": 19, + "pc": [ + 1642, + 1643, + 1644, + 1645, + 1646, + 1647, + 1648, + 1649, + 1650, + 1651 + ] + }, + { + "teal": 95, + "source": 19, + "pc": [ + 1652, + 1653 + ] + }, + { + "teal": 96, + "source": 19, + "pc": [ + 1654 + ] + }, + { + "teal": 100, + "source": 20, + "pc": [ + 1655, + 1656, + 1657, + 1658, + 1659, + 1660, + 1661, + 1662, + 1663, + 1664 + ] + }, + { + "teal": 101, + "source": 20, + "pc": [ + 1665, + 1666 + ] + }, + { + "teal": 102, + "source": 20, + "pc": [ + 1667 + ] + }, + { + "teal": 106, + "source": 21, + "pc": [ + 1668, + 1669, + 1670, + 1671, + 1672, + 1673, + 1674, + 1675, + 1676, + 1677 + ] + }, + { + "teal": 107, + "source": 21, + "pc": [ + 1678, + 1679 + ] + }, + { + "teal": 108, + "source": 21, + "pc": [ + 1680 + ] + }, + { + "teal": 112, + "source": 22, + "pc": [ + 1681, + 1682, + 1683, + 1684, + 1685, + 1686, + 1687, + 1688, + 1689, + 1690 + ] + }, + { + "teal": 113, + "source": 22, + "pc": [ + 1691, + 1692 + ] + }, + { + "teal": 114, + "source": 22, + "pc": [ + 1693 + ] + }, + { + "teal": 118, + "source": 23, + "pc": [ + 1694, + 1695, + 1696, + 1697, + 1698, + 1699, + 1700, + 1701, + 1702, + 1703 + ] + }, + { + "teal": 119, + "source": 23, + "pc": [ + 1704, + 1705 + ] + }, + { + "teal": 120, + "source": 23, + "pc": [ + 1706 + ] + }, + { + "teal": 124, + "source": 24, + "pc": [ + 1707, + 1708, + 1709, + 1710, + 1711, + 1712, + 1713, + 1714, + 1715, + 1716 + ] + }, + { + "teal": 125, + "source": 24, + "pc": [ + 1717, + 1718 + ] + }, + { + "teal": 126, + "source": 24, + "pc": [ + 1719 + ] + }, + { + "teal": 130, + "source": 25, + "pc": [ + 1720, + 1721, + 1722, + 1723, + 1724, + 1725, + 1726, + 1727, + 1728, + 1729 + ] + }, + { + "teal": 131, + "source": 25, + "pc": [ + 1730, + 1731 + ] + }, + { + "teal": 132, + "source": 25, + "pc": [ + 1732 + ] + }, + { + "teal": 136, + "source": 26, + "pc": [ + 1733, + 1734, + 1735, + 1736, + 1737, + 1738, + 1739, + 1740, + 1741, + 1742 + ] + }, + { + "teal": 137, + "source": 26, + "pc": [ + 1743, + 1744 + ] + }, + { + "teal": 138, + "source": 26, + "pc": [ + 1745 + ] + }, + { + "teal": 142, + "source": 27, + "pc": [ + 1746, + 1747, + 1748, + 1749, + 1750, + 1751, + 1752, + 1753, + 1754, + 1755 + ] + }, + { + "teal": 143, + "source": 27, + "pc": [ + 1756, + 1757 + ] + }, + { + "teal": 144, + "source": 27, + "pc": [ + 1758 + ] + }, + { + "teal": 148, + "source": 28, + "pc": [ + 1759, + 1760, + 1761, + 1762, + 1763, + 1764, + 1765, + 1766, + 1767, + 1768 + ] + }, + { + "teal": 149, + "source": 28, + "pc": [ + 1769, + 1770 + ] + }, + { + "teal": 150, + "source": 28, + "pc": [ + 1771 + ] + }, + { + "teal": 154, + "source": 29, + "pc": [ + 1772, + 1773, + 1774, + 1775, + 1776, + 1777, + 1778, + 1779, + 1780, + 1781 + ] + }, + { + "teal": 155, + "source": 29, + "pc": [ + 1782, + 1783 + ] + }, + { + "teal": 156, + "source": 29, + "pc": [ + 1784 + ] + }, + { + "teal": 160, + "source": 30, + "pc": [ + 1785, + 1786, + 1787, + 1788, + 1789, + 1790, + 1791, + 1792, + 1793, + 1794 + ] + }, + { + "teal": 161, + "source": 30, + "pc": [ + 1795, + 1796 + ] + }, + { + "teal": 162, + "source": 30, + "pc": [ + 1797 + ] + }, + { + "teal": 166, + "source": 31, + "pc": [ + 1798, + 1799, + 1800, + 1801, + 1802, + 1803, + 1804, + 1805, + 1806, + 1807 + ] + }, + { + "teal": 167, + "source": 31, + "pc": [ + 1808, + 1809 + ] + }, + { + "teal": 168, + "source": 31, + "pc": [ + 1810 + ] + }, + { + "teal": 172, + "source": 32, + "pc": [ + 1811, + 1812, + 1813, + 1814, + 1815, + 1816, + 1817, + 1818, + 1819, + 1820 + ] + }, + { + "teal": 173, + "source": 32, + "pc": [ + 1821, + 1822 + ] + }, + { + "teal": 174, + "source": 32, + "pc": [ + 1823 + ] + }, + { + "teal": 178, + "source": 33, + "pc": [ + 1824, + 1825, + 1826, + 1827, + 1828, + 1829, + 1830, + 1831, + 1832, + 1833 + ] + }, + { + "teal": 179, + "source": 33, + "pc": [ + 1834, + 1835 + ] + }, + { + "teal": 180, + "source": 33, + "pc": [ + 1836 + ] + }, + { + "teal": 184, + "source": 34, + "pc": [ + 1837, + 1838, + 1839, + 1840, + 1841, + 1842, + 1843, + 1844, + 1845, + 1846 + ] + }, + { + "teal": 185, + "source": 34, + "pc": [ + 1847, + 1848 + ] + }, + { + "teal": 186, + "source": 34, + "pc": [ + 1849 + ] + }, + { + "teal": 190, + "source": 35, + "pc": [ + 1850, + 1851, + 1852, + 1853, + 1854, + 1855, + 1856, + 1857, + 1858, + 1859 + ] + }, + { + "teal": 191, + "source": 35, + "pc": [ + 1860, + 1861 + ] + }, + { + "teal": 192, + "source": 35, + "pc": [ + 1862 + ] + }, + { + "teal": 196, + "source": 36, + "pc": [ + 1863, + 1864, + 1865, + 1866, + 1867, + 1868, + 1869, + 1870, + 1871, + 1872 + ] + }, + { + "teal": 197, + "source": 36, + "pc": [ + 1873, + 1874 + ] + }, + { + "teal": 198, + "source": 36, + "pc": [ + 1875 + ] + }, + { + "teal": 202, + "source": 37, + "pc": [ + 1876, + 1877, + 1878, + 1879, + 1880, + 1881, + 1882, + 1883, + 1884, + 1885 + ] + }, + { + "teal": 203, + "source": 37, + "pc": [ + 1886, + 1887 + ] + }, + { + "teal": 204, + "source": 37, + "pc": [ + 1888 + ] + }, + { + "teal": 208, + "source": 38, + "pc": [ + 1889, + 1890, + 1891, + 1892, + 1893, + 1894, + 1895, + 1896, + 1897, + 1898 + ] + }, + { + "teal": 209, + "source": 38, + "pc": [ + 1899, + 1900 + ] + }, + { + "teal": 210, + "source": 38, + "pc": [ + 1901 + ] + }, + { + "teal": 214, + "source": 39, + "pc": [ + 1902, + 1903, + 1904, + 1905, + 1906, + 1907, + 1908, + 1909, + 1910, + 1911 + ] + }, + { + "teal": 215, + "source": 39, + "pc": [ + 1912, + 1913 + ] + }, + { + "teal": 216, + "source": 39, + "pc": [ + 1914 + ] + }, + { + "teal": 220, + "source": 40, + "pc": [ + 1915, + 1916, + 1917, + 1918, + 1919, + 1920, + 1921, + 1922, + 1923, + 1924 + ] + }, + { + "teal": 221, + "source": 40, + "pc": [ + 1925, + 1926 + ] + }, + { + "teal": 222, + "source": 40, + "pc": [ + 1927 + ] + }, + { + "teal": 226, + "source": 41, + "pc": [ + 1928, + 1929, + 1930, + 1931, + 1932, + 1933, + 1934, + 1935, + 1936, + 1937 + ] + }, + { + "teal": 227, + "source": 41, + "pc": [ + 1938, + 1939 + ] + }, + { + "teal": 228, + "source": 41, + "pc": [ + 1940 + ] + }, + { + "teal": 232, + "source": 42, + "pc": [ + 1941, + 1942, + 1943, + 1944, + 1945, + 1946, + 1947, + 1948, + 1949, + 1950 + ] + }, + { + "teal": 233, + "source": 42, + "pc": [ + 1951, + 1952 + ] + }, + { + "teal": 234, + "source": 42, + "pc": [ + 1953 + ] + }, + { + "teal": 238, + "source": 43, + "pc": [ + 1954, + 1955, + 1956, + 1957, + 1958, + 1959, + 1960, + 1961, + 1962, + 1963 + ] + }, + { + "teal": 239, + "source": 43, + "pc": [ + 1964, + 1965 + ] + }, + { + "teal": 240, + "source": 43, + "pc": [ + 1966 + ] + }, + { + "teal": 244, + "source": 44, + "pc": [ + 1967, + 1968, + 1969, + 1970, + 1971, + 1972, + 1973, + 1974, + 1975, + 1976 + ] + }, + { + "teal": 245, + "source": 44, + "pc": [ + 1977, + 1978 + ] + }, + { + "teal": 246, + "source": 44, + "pc": [ + 1979 + ] + }, + { + "teal": 250, + "source": 45, + "pc": [ + 1980, + 1981, + 1982, + 1983, + 1984, + 1985, + 1986, + 1987, + 1988, + 1989 + ] + }, + { + "teal": 251, + "source": 45, + "pc": [ + 1990, + 1991 + ] + }, + { + "teal": 252, + "source": 45, + "pc": [ + 1992 + ] + }, + { + "teal": 256, + "source": 46, + "pc": [ + 1993, + 1994, + 1995, + 1996, + 1997, + 1998, + 1999, + 2000, + 2001, + 2002 + ] + }, + { + "teal": 257, + "source": 46, + "pc": [ + 2003, + 2004 + ] + }, + { + "teal": 258, + "source": 46, + "pc": [ + 2005 + ] + }, + { + "teal": 262, + "source": 47, + "pc": [ + 2006, + 2007, + 2008, + 2009, + 2010, + 2011, + 2012, + 2013, + 2014, + 2015 + ] + }, + { + "teal": 263, + "source": 47, + "pc": [ + 2016, + 2017 + ] + }, + { + "teal": 264, + "source": 47, + "pc": [ + 2018 + ] + }, + { + "teal": 268, + "source": 48, + "pc": [ + 2019, + 2020, + 2021, + 2022, + 2023, + 2024, + 2025, + 2026, + 2027, + 2028 + ] + }, + { + "teal": 269, + "source": 48, + "pc": [ + 2029, + 2030 + ] + }, + { + "teal": 270, + "source": 48, + "pc": [ + 2031 + ] + }, + { + "teal": 274, + "source": 49, + "pc": [ + 2032, + 2033, + 2034, + 2035, + 2036, + 2037, + 2038, + 2039, + 2040, + 2041 + ] + }, + { + "teal": 275, + "source": 49, + "pc": [ + 2042, + 2043 + ] + }, + { + "teal": 276, + "source": 49, + "pc": [ + 2044 + ] + }, + { + "teal": 280, + "source": 50, + "pc": [ + 2045, + 2046, + 2047, + 2048, + 2049, + 2050, + 2051, + 2052, + 2053, + 2054 + ] + }, + { + "teal": 281, + "source": 50, + "pc": [ + 2055, + 2056 + ] + }, + { + "teal": 282, + "source": 50, + "pc": [ + 2057 + ] + }, + { + "teal": 286, + "source": 51, + "pc": [ + 2058, + 2059, + 2060, + 2061, + 2062, + 2063, + 2064, + 2065, + 2066, + 2067 + ] + }, + { + "teal": 287, + "source": 51, + "pc": [ + 2068, + 2069 + ] + }, + { + "teal": 288, + "source": 51, + "pc": [ + 2070 + ] + }, + { + "teal": 292, + "source": 52, + "pc": [ + 2071, + 2072, + 2073, + 2074, + 2075, + 2076, + 2077, + 2078, + 2079, + 2080 + ] + }, + { + "teal": 293, + "source": 52, + "pc": [ + 2081, + 2082 + ] + }, + { + "teal": 294, + "source": 52, + "pc": [ + 2083 + ] + }, + { + "teal": 298, + "source": 53, + "pc": [ + 2084, + 2085, + 2086, + 2087, + 2088, + 2089, + 2090, + 2091, + 2092, + 2093 + ] + }, + { + "teal": 299, + "source": 53, + "pc": [ + 2094, + 2095 + ] + }, + { + "teal": 300, + "source": 53, + "pc": [ + 2096 + ] + }, + { + "teal": 304, + "source": 54, + "pc": [ + 2097, + 2098, + 2099, + 2100, + 2101, + 2102, + 2103, + 2104, + 2105, + 2106 + ] + }, + { + "teal": 305, + "source": 54, + "pc": [ + 2107, + 2108 + ] + }, + { + "teal": 306, + "source": 54, + "pc": [ + 2109 + ] + }, + { + "teal": 310, + "source": 55, + "pc": [ + 2110, + 2111, + 2112, + 2113, + 2114, + 2115, + 2116, + 2117, + 2118, + 2119 + ] + }, + { + "teal": 311, + "source": 55, + "pc": [ + 2120, + 2121 + ] + }, + { + "teal": 312, + "source": 55, + "pc": [ + 2122 + ] + }, + { + "teal": 316, + "source": 56, + "pc": [ + 2123, + 2124, + 2125, + 2126, + 2127, + 2128, + 2129, + 2130, + 2131, + 2132 + ] + }, + { + "teal": 317, + "source": 56, + "pc": [ + 2133, + 2134 + ] + }, + { + "teal": 318, + "source": 56, + "pc": [ + 2135 + ] + }, + { + "teal": 322, + "source": 57, + "pc": [ + 2136, + 2137, + 2138, + 2139, + 2140, + 2141, + 2142, + 2143, + 2144, + 2145 + ] + }, + { + "teal": 323, + "source": 57, + "pc": [ + 2146, + 2147 + ] + }, + { + "teal": 324, + "source": 57, + "pc": [ + 2148 + ] + }, + { + "teal": 328, + "source": 58, + "pc": [ + 2149, + 2150, + 2151, + 2152, + 2153, + 2154, + 2155, + 2156, + 2157, + 2158 + ] + }, + { + "teal": 329, + "source": 58, + "pc": [ + 2159, + 2160 + ] + }, + { + "teal": 330, + "source": 58, + "pc": [ + 2161 + ] + }, + { + "teal": 334, + "source": 59, + "pc": [ + 2162, + 2163, + 2164, + 2165, + 2166, + 2167, + 2168, + 2169, + 2170, + 2171 + ] + }, + { + "teal": 335, + "source": 59, + "pc": [ + 2172, + 2173 + ] + }, + { + "teal": 336, + "source": 59, + "pc": [ + 2174 + ] + }, + { + "teal": 340, + "source": 60, + "pc": [ + 2175, + 2176, + 2177, + 2178, + 2179, + 2180, + 2181, + 2182, + 2183, + 2184 + ] + }, + { + "teal": 341, + "source": 60, + "pc": [ + 2185, + 2186 + ] + }, + { + "teal": 342, + "source": 60, + "pc": [ + 2187 + ] + }, + { + "teal": 346, + "source": 61, + "pc": [ + 2188, + 2189, + 2190, + 2191, + 2192, + 2193, + 2194, + 2195, + 2196, + 2197 + ] + }, + { + "teal": 347, + "source": 61, + "pc": [ + 2198, + 2199 + ] + }, + { + "teal": 348, + "source": 61, + "pc": [ + 2200 + ] + }, + { + "teal": 352, + "source": 62, + "pc": [ + 2201, + 2202, + 2203, + 2204, + 2205, + 2206, + 2207, + 2208, + 2209, + 2210 + ] + }, + { + "teal": 353, + "source": 62, + "pc": [ + 2211, + 2212 + ] + }, + { + "teal": 354, + "source": 62, + "pc": [ + 2213 + ] + }, + { + "teal": 358, + "source": 63, + "pc": [ + 2214, + 2215, + 2216, + 2217, + 2218, + 2219, + 2220, + 2221, + 2222, + 2223 + ] + }, + { + "teal": 359, + "source": 63, + "pc": [ + 2224, + 2225 + ] + }, + { + "teal": 360, + "source": 63, + "pc": [ + 2226 + ] + }, + { + "teal": 364, + "source": 64, + "pc": [ + 2227, + 2228, + 2229, + 2230, + 2231, + 2232, + 2233, + 2234, + 2235, + 2236 + ] + }, + { + "teal": 365, + "source": 64, + "pc": [ + 2237, + 2238 + ] + }, + { + "teal": 366, + "source": 64, + "pc": [ + 2239 + ] + }, + { + "teal": 370, + "source": 65, + "pc": [ + 2240, + 2241, + 2242, + 2243, + 2244, + 2245, + 2246, + 2247, + 2248, + 2249 + ] + }, + { + "teal": 371, + "source": 65, + "pc": [ + 2250, + 2251 + ] + }, + { + "teal": 372, + "source": 65, + "pc": [ + 2252 + ] + }, + { + "teal": 376, + "source": 66, + "pc": [ + 2253, + 2254, + 2255, + 2256, + 2257, + 2258, + 2259, + 2260, + 2261, + 2262 + ] + }, + { + "teal": 377, + "source": 66, + "pc": [ + 2263, + 2264 + ] + }, + { + "teal": 378, + "source": 66, + "pc": [ + 2265 + ] + }, + { + "teal": 382, + "source": 67, + "pc": [ + 2266, + 2267, + 2268, + 2269, + 2270, + 2271, + 2272, + 2273, + 2274, + 2275 + ] + }, + { + "teal": 383, + "source": 67, + "pc": [ + 2276, + 2277 + ] + }, + { + "teal": 384, + "source": 67, + "pc": [ + 2278 + ] + }, + { + "teal": 388, + "source": 68, + "pc": [ + 2279, + 2280, + 2281, + 2282, + 2283, + 2284, + 2285, + 2286, + 2287, + 2288 + ] + }, + { + "teal": 389, + "source": 68, + "pc": [ + 2289, + 2290 + ] + }, + { + "teal": 390, + "source": 68, + "pc": [ + 2291 + ] + }, + { + "teal": 394, + "source": 69, + "pc": [ + 2292, + 2293, + 2294, + 2295, + 2296, + 2297, + 2298, + 2299, + 2300, + 2301 + ] + }, + { + "teal": 395, + "source": 69, + "pc": [ + 2302, + 2303 + ] + }, + { + "teal": 396, + "source": 69, + "pc": [ + 2304 + ] + }, + { + "teal": 400, + "source": 70, + "pc": [ + 2305, + 2306, + 2307, + 2308, + 2309, + 2310, + 2311, + 2312, + 2313, + 2314 + ] + }, + { + "teal": 401, + "source": 70, + "pc": [ + 2315, + 2316 + ] + }, + { + "teal": 402, + "source": 70, + "pc": [ + 2317 + ] + }, + { + "teal": 406, + "source": 71, + "pc": [ + 2318, + 2319, + 2320, + 2321, + 2322, + 2323, + 2324, + 2325, + 2326, + 2327 + ] + }, + { + "teal": 407, + "source": 71, + "pc": [ + 2328, + 2329 + ] + }, + { + "teal": 408, + "source": 71, + "pc": [ + 2330 + ] + }, + { + "teal": 412, + "source": 72, + "pc": [ + 2331, + 2332, + 2333, + 2334, + 2335, + 2336, + 2337, + 2338, + 2339, + 2340 + ] + }, + { + "teal": 413, + "source": 72, + "pc": [ + 2341, + 2342 + ] + }, + { + "teal": 414, + "source": 72, + "pc": [ + 2343 + ] + }, + { + "teal": 418, + "source": 73, + "pc": [ + 2344, + 2345, + 2346, + 2347, + 2348, + 2349, + 2350, + 2351, + 2352, + 2353 + ] + }, + { + "teal": 419, + "source": 73, + "pc": [ + 2354, + 2355 + ] + }, + { + "teal": 420, + "source": 73, + "pc": [ + 2356 + ] + }, + { + "teal": 424, + "source": 74, + "pc": [ + 2357, + 2358, + 2359, + 2360, + 2361, + 2362, + 2363, + 2364, + 2365, + 2366 + ] + }, + { + "teal": 425, + "source": 74, + "pc": [ + 2367, + 2368 + ] + }, + { + "teal": 426, + "source": 74, + "pc": [ + 2369 + ] + }, + { + "teal": 430, + "source": 75, + "pc": [ + 2370, + 2371, + 2372, + 2373, + 2374, + 2375, + 2376, + 2377, + 2378, + 2379 + ] + }, + { + "teal": 431, + "source": 75, + "pc": [ + 2380, + 2381 + ] + }, + { + "teal": 432, + "source": 75, + "pc": [ + 2382 + ] + }, + { + "teal": 436, + "source": 76, + "pc": [ + 2383, + 2384, + 2385, + 2386, + 2387, + 2388, + 2389, + 2390, + 2391, + 2392 + ] + }, + { + "teal": 437, + "source": 76, + "pc": [ + 2393, + 2394 + ] + }, + { + "teal": 438, + "source": 76, + "pc": [ + 2395 + ] + }, + { + "teal": 442, + "source": 77, + "pc": [ + 2396, + 2397, + 2398, + 2399, + 2400, + 2401, + 2402, + 2403, + 2404, + 2405 + ] + }, + { + "teal": 443, + "source": 77, + "pc": [ + 2406, + 2407 + ] + }, + { + "teal": 444, + "source": 77, + "pc": [ + 2408 + ] + }, + { + "teal": 448, + "source": 78, + "pc": [ + 2409, + 2410, + 2411, + 2412, + 2413, + 2414, + 2415, + 2416, + 2417, + 2418 + ] + }, + { + "teal": 449, + "source": 78, + "pc": [ + 2419, + 2420 + ] + }, + { + "teal": 450, + "source": 78, + "pc": [ + 2421 + ] + }, + { + "teal": 454, + "source": 79, + "pc": [ + 2422, + 2423, + 2424, + 2425, + 2426, + 2427, + 2428, + 2429, + 2430, + 2431 + ] + }, + { + "teal": 455, + "source": 79, + "pc": [ + 2432, + 2433 + ] + }, + { + "teal": 456, + "source": 79, + "pc": [ + 2434 + ] + }, + { + "teal": 460, + "source": 80, + "pc": [ + 2435, + 2436, + 2437, + 2438, + 2439, + 2440, + 2441, + 2442, + 2443, + 2444 + ] + }, + { + "teal": 461, + "source": 80, + "pc": [ + 2445, + 2446 + ] + }, + { + "teal": 462, + "source": 80, + "pc": [ + 2447 + ] + }, + { + "teal": 466, + "source": 81, + "pc": [ + 2448, + 2449, + 2450, + 2451, + 2452, + 2453, + 2454, + 2455, + 2456, + 2457 + ] + }, + { + "teal": 467, + "source": 81, + "pc": [ + 2458, + 2459 + ] + }, + { + "teal": 468, + "source": 81, + "pc": [ + 2460 + ] + }, + { + "teal": 472, + "source": 82, + "pc": [ + 2461, + 2462, + 2463, + 2464, + 2465, + 2466, + 2467, + 2468, + 2469, + 2470 + ] + }, + { + "teal": 473, + "source": 82, + "pc": [ + 2471, + 2472 + ] + }, + { + "teal": 474, + "source": 82, + "pc": [ + 2473 + ] + }, + { + "teal": 478, + "source": 83, + "pc": [ + 2474, + 2475, + 2476, + 2477, + 2478, + 2479, + 2480, + 2481, + 2482, + 2483 + ] + }, + { + "teal": 479, + "source": 83, + "pc": [ + 2484, + 2485 + ] + }, + { + "teal": 480, + "source": 83, + "pc": [ + 2486 + ] + }, + { + "teal": 484, + "source": 84, + "pc": [ + 2487, + 2488, + 2489, + 2490, + 2491, + 2492, + 2493, + 2494, + 2495, + 2496 + ] + }, + { + "teal": 485, + "source": 84, + "pc": [ + 2497, + 2498 + ] + }, + { + "teal": 486, + "source": 84, + "pc": [ + 2499 + ] + }, + { + "teal": 490, + "source": 85, + "pc": [ + 2500, + 2501, + 2502, + 2503, + 2504, + 2505, + 2506, + 2507, + 2508, + 2509 + ] + }, + { + "teal": 491, + "source": 85, + "pc": [ + 2510, + 2511 + ] + }, + { + "teal": 492, + "source": 85, + "pc": [ + 2512 + ] + }, + { + "teal": 496, + "source": 86, + "pc": [ + 2513, + 2514, + 2515, + 2516, + 2517, + 2518, + 2519, + 2520, + 2521, + 2522 + ] + }, + { + "teal": 497, + "source": 86, + "pc": [ + 2523, + 2524 + ] + }, + { + "teal": 498, + "source": 86, + "pc": [ + 2525 + ] + }, + { + "teal": 502, + "source": 87, + "pc": [ + 2526, + 2527, + 2528, + 2529, + 2530, + 2531, + 2532, + 2533, + 2534, + 2535 + ] + }, + { + "teal": 503, + "source": 87, + "pc": [ + 2536, + 2537 + ] + }, + { + "teal": 504, + "source": 87, + "pc": [ + 2538 + ] + }, + { + "teal": 508, + "source": 88, + "pc": [ + 2539, + 2540, + 2541, + 2542, + 2543, + 2544, + 2545, + 2546, + 2547, + 2548 + ] + }, + { + "teal": 509, + "source": 88, + "pc": [ + 2549, + 2550 + ] + }, + { + "teal": 510, + "source": 88, + "pc": [ + 2551 + ] + }, + { + "teal": 514, + "source": 89, + "pc": [ + 2552, + 2553, + 2554, + 2555, + 2556, + 2557, + 2558, + 2559, + 2560, + 2561 + ] + }, + { + "teal": 515, + "source": 89, + "pc": [ + 2562, + 2563 + ] + }, + { + "teal": 516, + "source": 89, + "pc": [ + 2564 + ] + }, + { + "teal": 520, + "source": 90, + "pc": [ + 2565, + 2566, + 2567, + 2568, + 2569, + 2570, + 2571, + 2572, + 2573, + 2574 + ] + }, + { + "teal": 521, + "source": 90, + "pc": [ + 2575, + 2576 + ] + }, + { + "teal": 522, + "source": 90, + "pc": [ + 2577 + ] + }, + { + "teal": 526, + "source": 91, + "pc": [ + 2578, + 2579, + 2580, + 2581, + 2582, + 2583, + 2584, + 2585, + 2586, + 2587 + ] + }, + { + "teal": 527, + "source": 91, + "pc": [ + 2588, + 2589 + ] + }, + { + "teal": 528, + "source": 91, + "pc": [ + 2590 + ] + }, + { + "teal": 532, + "source": 92, + "pc": [ + 2591, + 2592, + 2593, + 2594, + 2595, + 2596, + 2597, + 2598, + 2599, + 2600 + ] + }, + { + "teal": 533, + "source": 92, + "pc": [ + 2601, + 2602 + ] + }, + { + "teal": 534, + "source": 92, + "pc": [ + 2603 + ] + }, + { + "teal": 538, + "source": 93, + "pc": [ + 2604, + 2605, + 2606, + 2607, + 2608, + 2609, + 2610, + 2611, + 2612, + 2613 + ] + }, + { + "teal": 539, + "source": 93, + "pc": [ + 2614, + 2615 + ] + }, + { + "teal": 540, + "source": 93, + "pc": [ + 2616 + ] + }, + { + "teal": 544, + "source": 94, + "pc": [ + 2617, + 2618, + 2619, + 2620, + 2621, + 2622, + 2623, + 2624, + 2625, + 2626 + ] + }, + { + "teal": 545, + "source": 94, + "pc": [ + 2627, + 2628 + ] + }, + { + "teal": 546, + "source": 94, + "pc": [ + 2629 + ] + }, + { + "teal": 550, + "source": 95, + "pc": [ + 2630, + 2631, + 2632, + 2633, + 2634, + 2635, + 2636, + 2637, + 2638, + 2639 + ] + }, + { + "teal": 551, + "source": 95, + "pc": [ + 2640, + 2641 + ] + }, + { + "teal": 552, + "source": 95, + "pc": [ + 2642 + ] + }, + { + "teal": 556, + "source": 96, + "pc": [ + 2643, + 2644, + 2645, + 2646, + 2647, + 2648, + 2649, + 2650, + 2651, + 2652 + ] + }, + { + "teal": 557, + "source": 96, + "pc": [ + 2653, + 2654 + ] + }, + { + "teal": 558, + "source": 96, + "pc": [ + 2655 + ] + }, + { + "teal": 562, + "source": 97, + "pc": [ + 2656, + 2657, + 2658, + 2659, + 2660, + 2661, + 2662, + 2663, + 2664, + 2665 + ] + }, + { + "teal": 563, + "source": 97, + "pc": [ + 2666, + 2667 + ] + }, + { + "teal": 564, + "source": 97, + "pc": [ + 2668 + ] + }, + { + "teal": 568, + "source": 98, + "pc": [ + 2669, + 2670, + 2671, + 2672, + 2673, + 2674, + 2675, + 2676, + 2677, + 2678 + ] + }, + { + "teal": 569, + "source": 98, + "pc": [ + 2679, + 2680 + ] + }, + { + "teal": 570, + "source": 98, + "pc": [ + 2681 + ] + }, + { + "teal": 574, + "source": 99, + "pc": [ + 2682, + 2683, + 2684, + 2685, + 2686, + 2687, + 2688, + 2689, + 2690, + 2691 + ] + }, + { + "teal": 575, + "source": 99, + "pc": [ + 2692, + 2693 + ] + }, + { + "teal": 576, + "source": 99, + "pc": [ + 2694 + ] + }, + { + "teal": 580, + "source": 100, + "pc": [ + 2695, + 2696, + 2697, + 2698, + 2699, + 2700, + 2701, + 2702, + 2703, + 2704 + ] + }, + { + "teal": 581, + "source": 100, + "pc": [ + 2705, + 2706 + ] + }, + { + "teal": 582, + "source": 100, + "pc": [ + 2707 + ] + }, + { + "teal": 586, + "source": 101, + "pc": [ + 2708, + 2709, + 2710, + 2711, + 2712, + 2713, + 2714, + 2715, + 2716, + 2717 + ] + }, + { + "teal": 587, + "source": 101, + "pc": [ + 2718, + 2719 + ] + }, + { + "teal": 588, + "source": 101, + "pc": [ + 2720 + ] + }, + { + "teal": 592, + "source": 102, + "pc": [ + 2721, + 2722, + 2723, + 2724, + 2725, + 2726, + 2727, + 2728, + 2729, + 2730 + ] + }, + { + "teal": 593, + "source": 102, + "pc": [ + 2731, + 2732 + ] + }, + { + "teal": 594, + "source": 102, + "pc": [ + 2733 + ] + }, + { + "teal": 598, + "source": 103, + "pc": [ + 2734, + 2735, + 2736, + 2737, + 2738, + 2739, + 2740, + 2741, + 2742, + 2743 + ] + }, + { + "teal": 599, + "source": 103, + "pc": [ + 2744, + 2745 + ] + }, + { + "teal": 600, + "source": 103, + "pc": [ + 2746 + ] + }, + { + "teal": 604, + "source": 104, + "pc": [ + 2747, + 2748, + 2749, + 2750, + 2751, + 2752, + 2753, + 2754, + 2755, + 2756 + ] + }, + { + "teal": 605, + "source": 104, + "pc": [ + 2757, + 2758 + ] + }, + { + "teal": 606, + "source": 104, + "pc": [ + 2759 + ] + }, + { + "teal": 610, + "source": 105, + "pc": [ + 2760, + 2761, + 2762, + 2763, + 2764, + 2765, + 2766, + 2767, + 2768, + 2769 + ] + }, + { + "teal": 611, + "source": 105, + "pc": [ + 2770, + 2771 + ] + }, + { + "teal": 612, + "source": 105, + "pc": [ + 2772 + ] + }, + { + "teal": 616, + "source": 106, + "pc": [ + 2773, + 2774, + 2775, + 2776, + 2777, + 2778, + 2779, + 2780, + 2781, + 2782 + ] + }, + { + "teal": 617, + "source": 106, + "pc": [ + 2783, + 2784 + ] + }, + { + "teal": 618, + "source": 106, + "pc": [ + 2785 + ] + }, + { + "teal": 622, + "source": 107, + "pc": [ + 2786, + 2787, + 2788, + 2789, + 2790, + 2791, + 2792, + 2793, + 2794, + 2795 + ] + }, + { + "teal": 623, + "source": 107, + "pc": [ + 2796, + 2797 + ] + }, + { + "teal": 624, + "source": 107, + "pc": [ + 2798 + ] + }, + { + "teal": 628, + "source": 108, + "pc": [ + 2799, + 2800, + 2801, + 2802, + 2803, + 2804, + 2805, + 2806, + 2807, + 2808 + ] + }, + { + "teal": 629, + "source": 108, + "pc": [ + 2809, + 2810 + ] + }, + { + "teal": 630, + "source": 108, + "pc": [ + 2811 + ] + }, + { + "teal": 634, + "source": 109, + "pc": [ + 2812, + 2813, + 2814, + 2815, + 2816, + 2817, + 2818, + 2819, + 2820, + 2821 + ] + }, + { + "teal": 635, + "source": 109, + "pc": [ + 2822, + 2823 + ] + }, + { + "teal": 636, + "source": 109, + "pc": [ + 2824 + ] + }, + { + "teal": 640, + "source": 110, + "pc": [ + 2825, + 2826, + 2827, + 2828, + 2829, + 2830, + 2831, + 2832, + 2833, + 2834 + ] + }, + { + "teal": 641, + "source": 110, + "pc": [ + 2835, + 2836 + ] + }, + { + "teal": 642, + "source": 110, + "pc": [ + 2837 + ] + }, + { + "teal": 646, + "source": 111, + "pc": [ + 2838, + 2839, + 2840, + 2841, + 2842, + 2843, + 2844, + 2845, + 2846, + 2847 + ] + }, + { + "teal": 647, + "source": 111, + "pc": [ + 2848, + 2849 + ] + }, + { + "teal": 648, + "source": 111, + "pc": [ + 2850 + ] + }, + { + "teal": 652, + "source": 112, + "pc": [ + 2851, + 2852, + 2853, + 2854, + 2855, + 2856, + 2857, + 2858, + 2859, + 2860 + ] + }, + { + "teal": 653, + "source": 112, + "pc": [ + 2861, + 2862 + ] + }, + { + "teal": 654, + "source": 112, + "pc": [ + 2863 + ] + }, + { + "teal": 658, + "source": 113, + "pc": [ + 2864, + 2865, + 2866, + 2867, + 2868, + 2869, + 2870, + 2871, + 2872, + 2873 + ] + }, + { + "teal": 659, + "source": 113, + "pc": [ + 2874, + 2875 + ] + }, + { + "teal": 660, + "source": 113, + "pc": [ + 2876 + ] + }, + { + "teal": 664, + "source": 114, + "pc": [ + 2877, + 2878, + 2879, + 2880, + 2881, + 2882, + 2883, + 2884, + 2885, + 2886 + ] + }, + { + "teal": 665, + "source": 114, + "pc": [ + 2887, + 2888 + ] + }, + { + "teal": 666, + "source": 114, + "pc": [ + 2889 + ] + }, + { + "teal": 670, + "source": 115, + "pc": [ + 2890, + 2891, + 2892, + 2893, + 2894, + 2895, + 2896, + 2897, + 2898, + 2899 + ] + }, + { + "teal": 671, + "source": 115, + "pc": [ + 2900, + 2901 + ] + }, + { + "teal": 672, + "source": 115, + "pc": [ + 2902 + ] + }, + { + "teal": 676, + "source": 116, + "pc": [ + 2903, + 2904, + 2905, + 2906, + 2907, + 2908, + 2909, + 2910, + 2911, + 2912 + ] + }, + { + "teal": 677, + "source": 116, + "pc": [ + 2913, + 2914 + ] + }, + { + "teal": 678, + "source": 116, + "pc": [ + 2915 + ] + }, + { + "teal": 682, + "source": 117, + "pc": [ + 2916, + 2917, + 2918, + 2919, + 2920, + 2921, + 2922, + 2923, + 2924, + 2925 + ] + }, + { + "teal": 683, + "source": 117, + "pc": [ + 2926, + 2927 + ] + }, + { + "teal": 684, + "source": 117, + "pc": [ + 2928 + ] + }, + { + "teal": 688, + "source": 118, + "pc": [ + 2929, + 2930, + 2931, + 2932, + 2933, + 2934, + 2935, + 2936, + 2937, + 2938 + ] + }, + { + "teal": 689, + "source": 118, + "pc": [ + 2939, + 2940 + ] + }, + { + "teal": 690, + "source": 118, + "pc": [ + 2941 + ] + }, + { + "teal": 694, + "source": 119, + "pc": [ + 2942, + 2943, + 2944, + 2945, + 2946, + 2947, + 2948, + 2949, + 2950, + 2951 + ] + }, + { + "teal": 695, + "source": 119, + "pc": [ + 2952, + 2953 + ] + }, + { + "teal": 696, + "source": 119, + "pc": [ + 2954 + ] + }, + { + "teal": 700, + "source": 120, + "pc": [ + 2955, + 2956, + 2957, + 2958, + 2959, + 2960, + 2961, + 2962, + 2963, + 2964 + ] + }, + { + "teal": 701, + "source": 120, + "pc": [ + 2965, + 2966 + ] + }, + { + "teal": 702, + "source": 120, + "pc": [ + 2967 + ] + }, + { + "teal": 706, + "source": 121, + "pc": [ + 2968, + 2969, + 2970, + 2971, + 2972, + 2973, + 2974, + 2975, + 2976, + 2977 + ] + }, + { + "teal": 707, + "source": 121, + "pc": [ + 2978, + 2979 + ] + }, + { + "teal": 708, + "source": 121, + "pc": [ + 2980 + ] + }, + { + "teal": 712, + "source": 122, + "pc": [ + 2981, + 2982, + 2983, + 2984, + 2985, + 2986, + 2987, + 2988, + 2989, + 2990 + ] + }, + { + "teal": 713, + "source": 122, + "pc": [ + 2991, + 2992 + ] + }, + { + "teal": 714, + "source": 122, + "pc": [ + 2993 + ] + }, + { + "teal": 718, + "source": 123, + "pc": [ + 2994, + 2995, + 2996, + 2997, + 2998, + 2999, + 3000, + 3001, + 3002, + 3003 + ] + }, + { + "teal": 719, + "source": 123, + "pc": [ + 3004, + 3005 + ] + }, + { + "teal": 720, + "source": 123, + "pc": [ + 3006 + ] + }, + { + "teal": 724, + "source": 124, + "pc": [ + 3007, + 3008, + 3009, + 3010, + 3011, + 3012, + 3013, + 3014, + 3015, + 3016 + ] + }, + { + "teal": 725, + "source": 124, + "pc": [ + 3017, + 3018 + ] + }, + { + "teal": 726, + "source": 124, + "pc": [ + 3019 + ] + }, + { + "teal": 730, + "source": 125, + "pc": [ + 3020, + 3021, + 3022, + 3023, + 3024, + 3025, + 3026, + 3027, + 3028, + 3029 + ] + }, + { + "teal": 731, + "source": 125, + "pc": [ + 3030, + 3031 + ] + }, + { + "teal": 732, + "source": 125, + "pc": [ + 3032 + ] + }, + { + "teal": 736, + "source": 126, + "pc": [ + 3033, + 3034, + 3035, + 3036, + 3037, + 3038, + 3039, + 3040, + 3041, + 3042 + ] + }, + { + "teal": 737, + "source": 126, + "pc": [ + 3043, + 3044 + ] + }, + { + "teal": 738, + "source": 126, + "pc": [ + 3045 + ] + }, + { + "teal": 742, + "source": 127, + "pc": [ + 3046, + 3047, + 3048, + 3049, + 3050, + 3051, + 3052, + 3053, + 3054, + 3055 + ] + }, + { + "teal": 743, + "source": 127, + "pc": [ + 3056, + 3057 + ] + }, + { + "teal": 744, + "source": 127, + "pc": [ + 3058 + ] + }, + { + "teal": 748, + "source": 128, + "pc": [ + 3059, + 3060, + 3061, + 3062, + 3063, + 3064, + 3065, + 3066, + 3067, + 3068 + ] + }, + { + "teal": 749, + "source": 128, + "pc": [ + 3069, + 3070 + ] + }, + { + "teal": 750, + "source": 128, + "pc": [ + 3071 + ] + }, + { + "teal": 754, + "source": 129, + "pc": [ + 3072, + 3073, + 3074, + 3075, + 3076, + 3077, + 3078, + 3079, + 3080, + 3081 + ] + }, + { + "teal": 755, + "source": 129, + "pc": [ + 3082, + 3083 + ] + }, + { + "teal": 756, + "source": 129, + "pc": [ + 3084 + ] + }, + { + "teal": 760, + "source": 130, + "pc": [ + 3085, + 3086, + 3087, + 3088, + 3089, + 3090, + 3091, + 3092, + 3093, + 3094 + ] + }, + { + "teal": 761, + "source": 130, + "pc": [ + 3095, + 3096 + ] + }, + { + "teal": 762, + "source": 130, + "pc": [ + 3097 + ] + }, + { + "teal": 766, + "source": 131, + "pc": [ + 3098, + 3099, + 3100, + 3101, + 3102, + 3103, + 3104, + 3105, + 3106, + 3107 + ] + }, + { + "teal": 767, + "source": 131, + "pc": [ + 3108, + 3109 + ] + }, + { + "teal": 768, + "source": 131, + "pc": [ + 3110 + ] + }, + { + "teal": 772, + "source": 132, + "pc": [ + 3111, + 3112, + 3113, + 3114, + 3115, + 3116, + 3117, + 3118, + 3119, + 3120 + ] + }, + { + "teal": 773, + "source": 132, + "pc": [ + 3121, + 3122 + ] + }, + { + "teal": 774, + "source": 132, + "pc": [ + 3123 + ] + }, + { + "teal": 778, + "source": 133, + "pc": [ + 3124, + 3125, + 3126, + 3127, + 3128, + 3129, + 3130, + 3131, + 3132, + 3133 + ] + }, + { + "teal": 779, + "source": 133, + "pc": [ + 3134, + 3135 + ] + }, + { + "teal": 780, + "source": 133, + "pc": [ + 3136 + ] + }, + { + "teal": 784, + "source": 134, + "pc": [ + 3137, + 3138, + 3139, + 3140, + 3141, + 3142, + 3143, + 3144, + 3145, + 3146 + ] + }, + { + "teal": 785, + "source": 134, + "pc": [ + 3147, + 3148 + ] + }, + { + "teal": 786, + "source": 134, + "pc": [ + 3149 + ] + }, + { + "teal": 790, + "source": 135, + "pc": [ + 3150, + 3151, + 3152, + 3153, + 3154, + 3155, + 3156, + 3157, + 3158, + 3159 + ] + }, + { + "teal": 791, + "source": 135, + "pc": [ + 3160, + 3161 + ] + }, + { + "teal": 792, + "source": 135, + "pc": [ + 3162 + ] + }, + { + "teal": 796, + "source": 136, + "pc": [ + 3163, + 3164, + 3165, + 3166, + 3167, + 3168, + 3169, + 3170, + 3171, + 3172 + ] + }, + { + "teal": 797, + "source": 136, + "pc": [ + 3173, + 3174 + ] + }, + { + "teal": 798, + "source": 136, + "pc": [ + 3175 + ] + }, + { + "teal": 802, + "source": 137, + "pc": [ + 3176, + 3177, + 3178, + 3179, + 3180, + 3181, + 3182, + 3183, + 3184, + 3185 + ] + }, + { + "teal": 803, + "source": 137, + "pc": [ + 3186, + 3187, + 3188 + ] + }, + { + "teal": 804, + "source": 137, + "pc": [ + 3189 + ] + }, + { + "teal": 808, + "source": 138, + "pc": [ + 3190, + 3191, + 3192, + 3193, + 3194, + 3195, + 3196, + 3197, + 3198, + 3199 + ] + }, + { + "teal": 809, + "source": 138, + "pc": [ + 3200, + 3201, + 3202 + ] + }, + { + "teal": 810, + "source": 138, + "pc": [ + 3203 + ] + }, + { + "teal": 814, + "source": 139, + "pc": [ + 3204, + 3205, + 3206, + 3207, + 3208, + 3209, + 3210, + 3211, + 3212, + 3213 + ] + }, + { + "teal": 815, + "source": 139, + "pc": [ + 3214, + 3215, + 3216 + ] + }, + { + "teal": 816, + "source": 139, + "pc": [ + 3217 + ] + }, + { + "teal": 820, + "source": 140, + "pc": [ + 3218, + 3219, + 3220, + 3221, + 3222, + 3223, + 3224, + 3225, + 3226, + 3227 + ] + }, + { + "teal": 821, + "source": 140, + "pc": [ + 3228, + 3229, + 3230 + ] + }, + { + "teal": 822, + "source": 140, + "pc": [ + 3231 + ] + }, + { + "teal": 826, + "source": 141, + "pc": [ + 3232, + 3233, + 3234, + 3235, + 3236, + 3237, + 3238, + 3239, + 3240, + 3241 + ] + }, + { + "teal": 827, + "source": 141, + "pc": [ + 3242, + 3243, + 3244 + ] + }, + { + "teal": 828, + "source": 141, + "pc": [ + 3245 + ] + }, + { + "teal": 832, + "source": 142, + "pc": [ + 3246, + 3247, + 3248, + 3249, + 3250, + 3251, + 3252, + 3253, + 3254, + 3255 + ] + }, + { + "teal": 833, + "source": 142, + "pc": [ + 3256, + 3257, + 3258 + ] + }, + { + "teal": 834, + "source": 142, + "pc": [ + 3259 + ] + }, + { + "teal": 838, + "source": 143, + "pc": [ + 3260, + 3261, + 3262, + 3263, + 3264, + 3265, + 3266, + 3267, + 3268, + 3269 + ] + }, + { + "teal": 839, + "source": 143, + "pc": [ + 3270, + 3271, + 3272 + ] + }, + { + "teal": 840, + "source": 143, + "pc": [ + 3273 + ] + }, + { + "teal": 844, + "source": 144, + "pc": [ + 3274, + 3275, + 3276, + 3277, + 3278, + 3279, + 3280, + 3281, + 3282, + 3283 + ] + }, + { + "teal": 845, + "source": 144, + "pc": [ + 3284, + 3285, + 3286 + ] + }, + { + "teal": 846, + "source": 144, + "pc": [ + 3287 + ] + }, + { + "teal": 850, + "source": 145, + "pc": [ + 3288, + 3289, + 3290, + 3291, + 3292, + 3293, + 3294, + 3295, + 3296, + 3297 + ] + }, + { + "teal": 851, + "source": 145, + "pc": [ + 3298, + 3299, + 3300 + ] + }, + { + "teal": 852, + "source": 145, + "pc": [ + 3301 + ] + }, + { + "teal": 856, + "source": 146, + "pc": [ + 3302, + 3303, + 3304, + 3305, + 3306, + 3307, + 3308, + 3309, + 3310, + 3311 + ] + }, + { + "teal": 857, + "source": 146, + "pc": [ + 3312, + 3313, + 3314 + ] + }, + { + "teal": 858, + "source": 146, + "pc": [ + 3315 + ] + }, + { + "teal": 862, + "source": 147, + "pc": [ + 3316, + 3317, + 3318, + 3319, + 3320, + 3321, + 3322, + 3323, + 3324, + 3325 + ] + }, + { + "teal": 863, + "source": 147, + "pc": [ + 3326, + 3327, + 3328 + ] + }, + { + "teal": 864, + "source": 147, + "pc": [ + 3329 + ] + }, + { + "teal": 868, + "source": 148, + "pc": [ + 3330, + 3331, + 3332, + 3333, + 3334, + 3335, + 3336, + 3337, + 3338, + 3339 + ] + }, + { + "teal": 869, + "source": 148, + "pc": [ + 3340, + 3341, + 3342 + ] + }, + { + "teal": 870, + "source": 148, + "pc": [ + 3343 + ] + }, + { + "teal": 874, + "source": 149, + "pc": [ + 3344, + 3345, + 3346, + 3347, + 3348, + 3349, + 3350, + 3351, + 3352, + 3353 + ] + }, + { + "teal": 875, + "source": 149, + "pc": [ + 3354, + 3355, + 3356 + ] + }, + { + "teal": 876, + "source": 149, + "pc": [ + 3357 + ] + }, + { + "teal": 880, + "source": 150, + "pc": [ + 3358, + 3359, + 3360, + 3361, + 3362, + 3363, + 3364, + 3365, + 3366, + 3367 + ] + }, + { + "teal": 881, + "source": 150, + "pc": [ + 3368, + 3369, + 3370 + ] + }, + { + "teal": 882, + "source": 150, + "pc": [ + 3371 + ] + }, + { + "teal": 886, + "source": 151, + "pc": [ + 3372, + 3373, + 3374, + 3375, + 3376, + 3377, + 3378, + 3379, + 3380, + 3381 + ] + }, + { + "teal": 887, + "source": 151, + "pc": [ + 3382, + 3383, + 3384 + ] + }, + { + "teal": 888, + "source": 151, + "pc": [ + 3385 + ] + }, + { + "teal": 892, + "source": 152, + "pc": [ + 3386, + 3387, + 3388, + 3389, + 3390, + 3391, + 3392, + 3393, + 3394, + 3395 + ] + }, + { + "teal": 893, + "source": 152, + "pc": [ + 3396, + 3397, + 3398 + ] + }, + { + "teal": 894, + "source": 152, + "pc": [ + 3399 + ] + }, + { + "teal": 898, + "source": 153, + "pc": [ + 3400, + 3401, + 3402, + 3403, + 3404, + 3405, + 3406, + 3407, + 3408, + 3409 + ] + }, + { + "teal": 899, + "source": 153, + "pc": [ + 3410, + 3411, + 3412 + ] + }, + { + "teal": 900, + "source": 153, + "pc": [ + 3413 + ] + }, + { + "teal": 904, + "source": 154, + "pc": [ + 3414, + 3415, + 3416, + 3417, + 3418, + 3419, + 3420, + 3421, + 3422, + 3423 + ] + }, + { + "teal": 905, + "source": 154, + "pc": [ + 3424, + 3425, + 3426 + ] + }, + { + "teal": 906, + "source": 154, + "pc": [ + 3427 + ] + }, + { + "teal": 910, + "source": 155, + "pc": [ + 3428, + 3429, + 3430, + 3431, + 3432, + 3433, + 3434, + 3435, + 3436, + 3437 + ] + }, + { + "teal": 911, + "source": 155, + "pc": [ + 3438, + 3439, + 3440 + ] + }, + { + "teal": 912, + "source": 155, + "pc": [ + 3441 + ] + }, + { + "teal": 916, + "source": 156, + "pc": [ + 3442, + 3443, + 3444, + 3445, + 3446, + 3447, + 3448, + 3449, + 3450, + 3451 + ] + }, + { + "teal": 917, + "source": 156, + "pc": [ + 3452, + 3453, + 3454 + ] + }, + { + "teal": 918, + "source": 156, + "pc": [ + 3455 + ] + }, + { + "teal": 922, + "source": 157, + "pc": [ + 3456, + 3457, + 3458, + 3459, + 3460, + 3461, + 3462, + 3463, + 3464, + 3465 + ] + }, + { + "teal": 923, + "source": 157, + "pc": [ + 3466, + 3467, + 3468 + ] + }, + { + "teal": 924, + "source": 157, + "pc": [ + 3469 + ] + }, + { + "teal": 928, + "source": 158, + "pc": [ + 3470, + 3471, + 3472, + 3473, + 3474, + 3475, + 3476, + 3477, + 3478, + 3479 + ] + }, + { + "teal": 929, + "source": 158, + "pc": [ + 3480, + 3481, + 3482 + ] + }, + { + "teal": 930, + "source": 158, + "pc": [ + 3483 + ] + }, + { + "teal": 934, + "source": 159, + "pc": [ + 3484, + 3485, + 3486, + 3487, + 3488, + 3489, + 3490, + 3491, + 3492, + 3493 + ] + }, + { + "teal": 935, + "source": 159, + "pc": [ + 3494, + 3495, + 3496 + ] + }, + { + "teal": 936, + "source": 159, + "pc": [ + 3497 + ] + }, + { + "teal": 940, + "source": 160, + "pc": [ + 3498, + 3499, + 3500, + 3501, + 3502, + 3503, + 3504, + 3505, + 3506, + 3507 + ] + }, + { + "teal": 941, + "source": 160, + "pc": [ + 3508, + 3509, + 3510 + ] + }, + { + "teal": 942, + "source": 160, + "pc": [ + 3511 + ] + }, + { + "teal": 946, + "source": 161, + "pc": [ + 3512, + 3513, + 3514, + 3515, + 3516, + 3517, + 3518, + 3519, + 3520, + 3521 + ] + }, + { + "teal": 947, + "source": 161, + "pc": [ + 3522, + 3523, + 3524 + ] + }, + { + "teal": 948, + "source": 161, + "pc": [ + 3525 + ] + }, + { + "teal": 952, + "source": 162, + "pc": [ + 3526, + 3527, + 3528, + 3529, + 3530, + 3531, + 3532, + 3533, + 3534, + 3535 + ] + }, + { + "teal": 953, + "source": 162, + "pc": [ + 3536, + 3537, + 3538 + ] + }, + { + "teal": 954, + "source": 162, + "pc": [ + 3539 + ] + }, + { + "teal": 958, + "source": 163, + "pc": [ + 3540, + 3541, + 3542, + 3543, + 3544, + 3545, + 3546, + 3547, + 3548, + 3549 + ] + }, + { + "teal": 959, + "source": 163, + "pc": [ + 3550, + 3551, + 3552 + ] + }, + { + "teal": 960, + "source": 163, + "pc": [ + 3553 + ] + }, + { + "teal": 964, + "source": 164, + "pc": [ + 3554, + 3555, + 3556, + 3557, + 3558, + 3559, + 3560, + 3561, + 3562, + 3563 + ] + }, + { + "teal": 965, + "source": 164, + "pc": [ + 3564, + 3565, + 3566 + ] + }, + { + "teal": 966, + "source": 164, + "pc": [ + 3567 + ] + }, + { + "teal": 970, + "source": 165, + "pc": [ + 3568, + 3569, + 3570, + 3571, + 3572, + 3573, + 3574, + 3575, + 3576, + 3577 + ] + }, + { + "teal": 971, + "source": 165, + "pc": [ + 3578, + 3579, + 3580 + ] + }, + { + "teal": 972, + "source": 165, + "pc": [ + 3581 + ] + }, + { + "teal": 976, + "source": 166, + "pc": [ + 3582, + 3583, + 3584, + 3585, + 3586, + 3587, + 3588, + 3589, + 3590, + 3591 + ] + }, + { + "teal": 977, + "source": 166, + "pc": [ + 3592, + 3593, + 3594 + ] + }, + { + "teal": 978, + "source": 166, + "pc": [ + 3595 + ] + }, + { + "teal": 982, + "source": 167, + "pc": [ + 3596, + 3597, + 3598, + 3599, + 3600, + 3601, + 3602, + 3603, + 3604, + 3605 + ] + }, + { + "teal": 983, + "source": 167, + "pc": [ + 3606, + 3607, + 3608 + ] + }, + { + "teal": 984, + "source": 167, + "pc": [ + 3609 + ] + }, + { + "teal": 988, + "source": 168, + "pc": [ + 3610, + 3611, + 3612, + 3613, + 3614, + 3615, + 3616, + 3617, + 3618, + 3619 + ] + }, + { + "teal": 989, + "source": 168, + "pc": [ + 3620, + 3621, + 3622 + ] + }, + { + "teal": 990, + "source": 168, + "pc": [ + 3623 + ] + }, + { + "teal": 994, + "source": 169, + "pc": [ + 3624, + 3625, + 3626, + 3627, + 3628, + 3629, + 3630, + 3631, + 3632, + 3633 + ] + }, + { + "teal": 995, + "source": 169, + "pc": [ + 3634, + 3635, + 3636 + ] + }, + { + "teal": 996, + "source": 169, + "pc": [ + 3637 + ] + }, + { + "teal": 1000, + "source": 170, + "pc": [ + 3638, + 3639, + 3640, + 3641, + 3642, + 3643, + 3644, + 3645, + 3646, + 3647 + ] + }, + { + "teal": 1001, + "source": 170, + "pc": [ + 3648, + 3649, + 3650 + ] + }, + { + "teal": 1002, + "source": 170, + "pc": [ + 3651 + ] + }, + { + "teal": 1006, + "source": 171, + "pc": [ + 3652, + 3653, + 3654, + 3655, + 3656, + 3657, + 3658, + 3659, + 3660, + 3661 + ] + }, + { + "teal": 1007, + "source": 171, + "pc": [ + 3662, + 3663, + 3664 + ] + }, + { + "teal": 1008, + "source": 171, + "pc": [ + 3665 + ] + }, + { + "teal": 1012, + "source": 172, + "pc": [ + 3666, + 3667, + 3668, + 3669, + 3670, + 3671, + 3672, + 3673, + 3674, + 3675 + ] + }, + { + "teal": 1013, + "source": 172, + "pc": [ + 3676, + 3677, + 3678 + ] + }, + { + "teal": 1014, + "source": 172, + "pc": [ + 3679 + ] + }, + { + "teal": 1018, + "source": 173, + "pc": [ + 3680, + 3681, + 3682, + 3683, + 3684, + 3685, + 3686, + 3687, + 3688, + 3689 + ] + }, + { + "teal": 1019, + "source": 173, + "pc": [ + 3690, + 3691, + 3692 + ] + }, + { + "teal": 1020, + "source": 173, + "pc": [ + 3693 + ] + }, + { + "teal": 1024, + "source": 174, + "pc": [ + 3694, + 3695, + 3696, + 3697, + 3698, + 3699, + 3700, + 3701, + 3702, + 3703 + ] + }, + { + "teal": 1025, + "source": 174, + "pc": [ + 3704, + 3705, + 3706 + ] + }, + { + "teal": 1026, + "source": 174, + "pc": [ + 3707 + ] + }, + { + "teal": 1030, + "source": 175, + "pc": [ + 3708, + 3709, + 3710, + 3711, + 3712, + 3713, + 3714, + 3715, + 3716, + 3717 + ] + }, + { + "teal": 1031, + "source": 175, + "pc": [ + 3718, + 3719, + 3720 + ] + }, + { + "teal": 1032, + "source": 175, + "pc": [ + 3721 + ] + }, + { + "teal": 1036, + "source": 176, + "pc": [ + 3722, + 3723, + 3724, + 3725, + 3726, + 3727, + 3728, + 3729, + 3730, + 3731 + ] + }, + { + "teal": 1037, + "source": 176, + "pc": [ + 3732, + 3733, + 3734 + ] + }, + { + "teal": 1038, + "source": 176, + "pc": [ + 3735 + ] + }, + { + "teal": 1042, + "source": 177, + "pc": [ + 3736, + 3737, + 3738, + 3739, + 3740, + 3741, + 3742, + 3743, + 3744, + 3745 + ] + }, + { + "teal": 1043, + "source": 177, + "pc": [ + 3746, + 3747, + 3748 + ] + }, + { + "teal": 1044, + "source": 177, + "pc": [ + 3749 + ] + }, + { + "teal": 1048, + "source": 178, + "pc": [ + 3750, + 3751, + 3752, + 3753, + 3754, + 3755, + 3756, + 3757, + 3758, + 3759 + ] + }, + { + "teal": 1049, + "source": 178, + "pc": [ + 3760, + 3761, + 3762 + ] + }, + { + "teal": 1050, + "source": 178, + "pc": [ + 3763 + ] + }, + { + "teal": 1054, + "source": 179, + "pc": [ + 3764, + 3765, + 3766, + 3767, + 3768, + 3769, + 3770, + 3771, + 3772, + 3773 + ] + }, + { + "teal": 1055, + "source": 179, + "pc": [ + 3774, + 3775, + 3776 + ] + }, + { + "teal": 1056, + "source": 179, + "pc": [ + 3777 + ] + }, + { + "teal": 1060, + "source": 180, + "pc": [ + 3778, + 3779, + 3780, + 3781, + 3782, + 3783, + 3784, + 3785, + 3786, + 3787 + ] + }, + { + "teal": 1061, + "source": 180, + "pc": [ + 3788, + 3789, + 3790 + ] + }, + { + "teal": 1062, + "source": 180, + "pc": [ + 3791 + ] + }, + { + "teal": 1066, + "source": 181, + "pc": [ + 3792, + 3793, + 3794, + 3795, + 3796, + 3797, + 3798, + 3799, + 3800, + 3801 + ] + }, + { + "teal": 1067, + "source": 181, + "pc": [ + 3802, + 3803, + 3804 + ] + }, + { + "teal": 1068, + "source": 181, + "pc": [ + 3805 + ] + }, + { + "teal": 1072, + "source": 182, + "pc": [ + 3806, + 3807, + 3808, + 3809, + 3810, + 3811, + 3812, + 3813, + 3814, + 3815 + ] + }, + { + "teal": 1073, + "source": 182, + "pc": [ + 3816, + 3817, + 3818 + ] + }, + { + "teal": 1074, + "source": 182, + "pc": [ + 3819 + ] + }, + { + "teal": 1078, + "source": 183, + "pc": [ + 3820, + 3821, + 3822, + 3823, + 3824, + 3825, + 3826, + 3827, + 3828, + 3829 + ] + }, + { + "teal": 1079, + "source": 183, + "pc": [ + 3830, + 3831, + 3832 + ] + }, + { + "teal": 1080, + "source": 183, + "pc": [ + 3833 + ] + }, + { + "teal": 1084, + "source": 184, + "pc": [ + 3834, + 3835, + 3836, + 3837, + 3838, + 3839, + 3840, + 3841, + 3842, + 3843 + ] + }, + { + "teal": 1085, + "source": 184, + "pc": [ + 3844, + 3845, + 3846 + ] + }, + { + "teal": 1086, + "source": 184, + "pc": [ + 3847 + ] + }, + { + "teal": 1090, + "source": 185, + "pc": [ + 3848, + 3849, + 3850, + 3851, + 3852, + 3853, + 3854, + 3855, + 3856, + 3857 + ] + }, + { + "teal": 1091, + "source": 185, + "pc": [ + 3858, + 3859, + 3860 + ] + }, + { + "teal": 1092, + "source": 185, + "pc": [ + 3861 + ] + }, + { + "teal": 1096, + "source": 186, + "pc": [ + 3862, + 3863, + 3864, + 3865, + 3866, + 3867, + 3868, + 3869, + 3870, + 3871 + ] + }, + { + "teal": 1097, + "source": 186, + "pc": [ + 3872, + 3873, + 3874 + ] + }, + { + "teal": 1098, + "source": 186, + "pc": [ + 3875 + ] + }, + { + "teal": 1102, + "source": 187, + "pc": [ + 3876, + 3877, + 3878, + 3879, + 3880, + 3881, + 3882, + 3883, + 3884, + 3885 + ] + }, + { + "teal": 1103, + "source": 187, + "pc": [ + 3886, + 3887, + 3888 + ] + }, + { + "teal": 1104, + "source": 187, + "pc": [ + 3889 + ] + }, + { + "teal": 1108, + "source": 188, + "pc": [ + 3890, + 3891, + 3892, + 3893, + 3894, + 3895, + 3896, + 3897, + 3898, + 3899 + ] + }, + { + "teal": 1109, + "source": 188, + "pc": [ + 3900, + 3901, + 3902 + ] + }, + { + "teal": 1110, + "source": 188, + "pc": [ + 3903 + ] + }, + { + "teal": 1114, + "source": 189, + "pc": [ + 3904, + 3905, + 3906, + 3907, + 3908, + 3909, + 3910, + 3911, + 3912, + 3913 + ] + }, + { + "teal": 1115, + "source": 189, + "pc": [ + 3914, + 3915, + 3916 + ] + }, + { + "teal": 1116, + "source": 189, + "pc": [ + 3917 + ] + }, + { + "teal": 1120, + "source": 190, + "pc": [ + 3918, + 3919, + 3920, + 3921, + 3922, + 3923, + 3924, + 3925, + 3926, + 3927 + ] + }, + { + "teal": 1121, + "source": 190, + "pc": [ + 3928, + 3929, + 3930 + ] + }, + { + "teal": 1122, + "source": 190, + "pc": [ + 3931 + ] + }, + { + "teal": 1126, + "source": 191, + "pc": [ + 3932, + 3933, + 3934, + 3935, + 3936, + 3937, + 3938, + 3939, + 3940, + 3941 + ] + }, + { + "teal": 1127, + "source": 191, + "pc": [ + 3942, + 3943, + 3944 + ] + }, + { + "teal": 1128, + "source": 191, + "pc": [ + 3945 + ] + }, + { + "teal": 1132, + "source": 192, + "pc": [ + 3946, + 3947, + 3948, + 3949, + 3950, + 3951, + 3952, + 3953, + 3954, + 3955 + ] + }, + { + "teal": 1133, + "source": 192, + "pc": [ + 3956, + 3957, + 3958 + ] + }, + { + "teal": 1134, + "source": 192, + "pc": [ + 3959 + ] + }, + { + "teal": 1138, + "source": 193, + "pc": [ + 3960, + 3961, + 3962, + 3963, + 3964, + 3965, + 3966, + 3967, + 3968, + 3969 + ] + }, + { + "teal": 1139, + "source": 193, + "pc": [ + 3970, + 3971, + 3972 + ] + }, + { + "teal": 1140, + "source": 193, + "pc": [ + 3973 + ] + }, + { + "teal": 1144, + "source": 194, + "pc": [ + 3974, + 3975, + 3976, + 3977, + 3978, + 3979, + 3980, + 3981, + 3982, + 3983 + ] + }, + { + "teal": 1145, + "source": 194, + "pc": [ + 3984, + 3985, + 3986 + ] + }, + { + "teal": 1146, + "source": 194, + "pc": [ + 3987 + ] + }, + { + "teal": 1150, + "source": 195, + "pc": [ + 3988, + 3989, + 3990, + 3991, + 3992, + 3993, + 3994, + 3995, + 3996, + 3997 + ] + }, + { + "teal": 1151, + "source": 195, + "pc": [ + 3998, + 3999, + 4000 + ] + }, + { + "teal": 1152, + "source": 195, + "pc": [ + 4001 + ] + }, + { + "teal": 1156, + "source": 196, + "pc": [ + 4002, + 4003, + 4004, + 4005, + 4006, + 4007, + 4008, + 4009, + 4010, + 4011 + ] + }, + { + "teal": 1157, + "source": 196, + "pc": [ + 4012, + 4013, + 4014 + ] + }, + { + "teal": 1158, + "source": 196, + "pc": [ + 4015 + ] + }, + { + "teal": 1162, + "source": 197, + "pc": [ + 4016, + 4017, + 4018, + 4019, + 4020, + 4021, + 4022, + 4023, + 4024, + 4025 + ] + }, + { + "teal": 1163, + "source": 197, + "pc": [ + 4026, + 4027, + 4028 + ] + }, + { + "teal": 1164, + "source": 197, + "pc": [ + 4029 + ] + }, + { + "teal": 1168, + "source": 198, + "pc": [ + 4030, + 4031, + 4032, + 4033, + 4034, + 4035, + 4036, + 4037, + 4038, + 4039 + ] + }, + { + "teal": 1169, + "source": 198, + "pc": [ + 4040, + 4041, + 4042 + ] + }, + { + "teal": 1170, + "source": 198, + "pc": [ + 4043 + ] + }, + { + "teal": 1174, + "source": 199, + "pc": [ + 4044, + 4045, + 4046, + 4047, + 4048, + 4049, + 4050, + 4051, + 4052, + 4053 + ] + }, + { + "teal": 1175, + "source": 199, + "pc": [ + 4054, + 4055, + 4056 + ] + }, + { + "teal": 1176, + "source": 199, + "pc": [ + 4057 + ] + }, + { + "teal": 1180, + "source": 200, + "pc": [ + 4058, + 4059, + 4060, + 4061, + 4062, + 4063, + 4064, + 4065, + 4066, + 4067 + ] + }, + { + "teal": 1181, + "source": 200, + "pc": [ + 4068, + 4069, + 4070 + ] + }, + { + "teal": 1182, + "source": 200, + "pc": [ + 4071 + ] + }, + { + "teal": 1186, + "source": 201, + "pc": [ + 4072, + 4073, + 4074, + 4075, + 4076, + 4077, + 4078, + 4079, + 4080, + 4081 + ] + }, + { + "teal": 1187, + "source": 201, + "pc": [ + 4082, + 4083, + 4084 + ] + }, + { + "teal": 1188, + "source": 201, + "pc": [ + 4085 + ] + }, + { + "teal": 1192, + "source": 202, + "pc": [ + 4086, + 4087, + 4088, + 4089, + 4090, + 4091, + 4092, + 4093, + 4094, + 4095 + ] + }, + { + "teal": 1193, + "source": 202, + "pc": [ + 4096, + 4097, + 4098 + ] + }, + { + "teal": 1194, + "source": 202, + "pc": [ + 4099 + ] + }, + { + "teal": 1198, + "source": 203, + "pc": [ + 4100, + 4101, + 4102, + 4103, + 4104, + 4105, + 4106, + 4107, + 4108, + 4109 + ] + }, + { + "teal": 1199, + "source": 203, + "pc": [ + 4110, + 4111, + 4112 + ] + }, + { + "teal": 1200, + "source": 203, + "pc": [ + 4113 + ] + }, + { + "teal": 1204, + "source": 204, + "pc": [ + 4114, + 4115, + 4116, + 4117, + 4118, + 4119, + 4120, + 4121, + 4122, + 4123 + ] + }, + { + "teal": 1205, + "source": 204, + "pc": [ + 4124, + 4125, + 4126 + ] + }, + { + "teal": 1206, + "source": 204, + "pc": [ + 4127 + ] + }, + { + "teal": 1210, + "source": 205, + "pc": [ + 4128, + 4129, + 4130, + 4131, + 4132, + 4133, + 4134, + 4135, + 4136, + 4137 + ] + }, + { + "teal": 1211, + "source": 205, + "pc": [ + 4138, + 4139, + 4140 + ] + }, + { + "teal": 1212, + "source": 205, + "pc": [ + 4141 + ] + }, + { + "teal": 1216, + "source": 206, + "pc": [ + 4142, + 4143, + 4144, + 4145, + 4146, + 4147, + 4148, + 4149, + 4150, + 4151 + ] + }, + { + "teal": 1217, + "source": 206, + "pc": [ + 4152, + 4153, + 4154 + ] + }, + { + "teal": 1218, + "source": 206, + "pc": [ + 4155 + ] + }, + { + "teal": 1222, + "source": 207, + "pc": [ + 4156, + 4157, + 4158, + 4159, + 4160, + 4161, + 4162, + 4163, + 4164, + 4165 + ] + }, + { + "teal": 1223, + "source": 207, + "pc": [ + 4166, + 4167, + 4168 + ] + }, + { + "teal": 1224, + "source": 207, + "pc": [ + 4169 + ] + }, + { + "teal": 1228, + "source": 208, + "pc": [ + 4170, + 4171, + 4172, + 4173, + 4174, + 4175, + 4176, + 4177, + 4178, + 4179 + ] + }, + { + "teal": 1229, + "source": 208, + "pc": [ + 4180, + 4181, + 4182 + ] + }, + { + "teal": 1230, + "source": 208, + "pc": [ + 4183 + ] + }, + { + "teal": 1234, + "source": 209, + "pc": [ + 4184, + 4185, + 4186, + 4187, + 4188, + 4189, + 4190, + 4191, + 4192, + 4193 + ] + }, + { + "teal": 1235, + "source": 209, + "pc": [ + 4194, + 4195, + 4196 + ] + }, + { + "teal": 1236, + "source": 209, + "pc": [ + 4197 + ] + }, + { + "teal": 1240, + "source": 210, + "pc": [ + 4198, + 4199, + 4200, + 4201, + 4202, + 4203, + 4204, + 4205, + 4206, + 4207 + ] + }, + { + "teal": 1241, + "source": 210, + "pc": [ + 4208, + 4209, + 4210 + ] + }, + { + "teal": 1242, + "source": 210, + "pc": [ + 4211 + ] + }, + { + "teal": 1246, + "source": 211, + "pc": [ + 4212, + 4213, + 4214, + 4215, + 4216, + 4217, + 4218, + 4219, + 4220, + 4221 + ] + }, + { + "teal": 1247, + "source": 211, + "pc": [ + 4222, + 4223, + 4224 + ] + }, + { + "teal": 1248, + "source": 211, + "pc": [ + 4225 + ] + }, + { + "teal": 1252, + "source": 212, + "pc": [ + 4226, + 4227, + 4228, + 4229, + 4230, + 4231, + 4232, + 4233, + 4234, + 4235 + ] + }, + { + "teal": 1253, + "source": 212, + "pc": [ + 4236, + 4237, + 4238 + ] + }, + { + "teal": 1254, + "source": 212, + "pc": [ + 4239 + ] + }, + { + "teal": 1258, + "source": 213, + "pc": [ + 4240, + 4241, + 4242, + 4243, + 4244, + 4245, + 4246, + 4247, + 4248, + 4249 + ] + }, + { + "teal": 1259, + "source": 213, + "pc": [ + 4250, + 4251, + 4252 + ] + }, + { + "teal": 1260, + "source": 213, + "pc": [ + 4253 + ] + }, + { + "teal": 1264, + "source": 214, + "pc": [ + 4254, + 4255, + 4256, + 4257, + 4258, + 4259, + 4260, + 4261, + 4262, + 4263 + ] + }, + { + "teal": 1265, + "source": 214, + "pc": [ + 4264, + 4265, + 4266 + ] + }, + { + "teal": 1266, + "source": 214, + "pc": [ + 4267 + ] + }, + { + "teal": 1270, + "source": 215, + "pc": [ + 4268, + 4269, + 4270, + 4271, + 4272, + 4273, + 4274, + 4275, + 4276, + 4277 + ] + }, + { + "teal": 1271, + "source": 215, + "pc": [ + 4278, + 4279, + 4280 + ] + }, + { + "teal": 1272, + "source": 215, + "pc": [ + 4281 + ] + }, + { + "teal": 1276, + "source": 216, + "pc": [ + 4282, + 4283, + 4284, + 4285, + 4286, + 4287, + 4288, + 4289, + 4290, + 4291 + ] + }, + { + "teal": 1277, + "source": 216, + "pc": [ + 4292, + 4293, + 4294 + ] + }, + { + "teal": 1278, + "source": 216, + "pc": [ + 4295 + ] + }, + { + "teal": 1282, + "source": 217, + "pc": [ + 4296, + 4297, + 4298, + 4299, + 4300, + 4301, + 4302, + 4303, + 4304, + 4305 + ] + }, + { + "teal": 1283, + "source": 217, + "pc": [ + 4306, + 4307, + 4308 + ] + }, + { + "teal": 1284, + "source": 217, + "pc": [ + 4309 + ] + }, + { + "teal": 1288, + "source": 218, + "pc": [ + 4310, + 4311, + 4312, + 4313, + 4314, + 4315, + 4316, + 4317, + 4318, + 4319 + ] + }, + { + "teal": 1289, + "source": 218, + "pc": [ + 4320, + 4321, + 4322 + ] + }, + { + "teal": 1290, + "source": 218, + "pc": [ + 4323 + ] + }, + { + "teal": 1294, + "source": 219, + "pc": [ + 4324, + 4325, + 4326, + 4327, + 4328, + 4329, + 4330, + 4331, + 4332, + 4333 + ] + }, + { + "teal": 1295, + "source": 219, + "pc": [ + 4334, + 4335, + 4336 + ] + }, + { + "teal": 1296, + "source": 219, + "pc": [ + 4337 + ] + }, + { + "teal": 1300, + "source": 220, + "pc": [ + 4338, + 4339, + 4340, + 4341, + 4342, + 4343, + 4344, + 4345, + 4346, + 4347 + ] + }, + { + "teal": 1301, + "source": 220, + "pc": [ + 4348, + 4349, + 4350 + ] + }, + { + "teal": 1302, + "source": 220, + "pc": [ + 4351 + ] + }, + { + "teal": 1306, + "source": 221, + "pc": [ + 4352, + 4353, + 4354, + 4355, + 4356, + 4357, + 4358, + 4359, + 4360, + 4361 + ] + }, + { + "teal": 1307, + "source": 221, + "pc": [ + 4362, + 4363, + 4364 + ] + }, + { + "teal": 1308, + "source": 221, + "pc": [ + 4365 + ] + }, + { + "teal": 1312, + "source": 222, + "pc": [ + 4366, + 4367, + 4368, + 4369, + 4370, + 4371, + 4372, + 4373, + 4374, + 4375 + ] + }, + { + "teal": 1313, + "source": 222, + "pc": [ + 4376, + 4377, + 4378 + ] + }, + { + "teal": 1314, + "source": 222, + "pc": [ + 4379 + ] + }, + { + "teal": 1318, + "source": 223, + "pc": [ + 4380, + 4381, + 4382, + 4383, + 4384, + 4385, + 4386, + 4387, + 4388, + 4389 + ] + }, + { + "teal": 1319, + "source": 223, + "pc": [ + 4390, + 4391, + 4392 + ] + }, + { + "teal": 1320, + "source": 223, + "pc": [ + 4393 + ] + }, + { + "teal": 1324, + "source": 224, + "pc": [ + 4394, + 4395, + 4396, + 4397, + 4398, + 4399, + 4400, + 4401, + 4402, + 4403 + ] + }, + { + "teal": 1325, + "source": 224, + "pc": [ + 4404, + 4405, + 4406 + ] + }, + { + "teal": 1326, + "source": 224, + "pc": [ + 4407 + ] + }, + { + "teal": 1330, + "source": 225, + "pc": [ + 4408, + 4409, + 4410, + 4411, + 4412, + 4413, + 4414, + 4415, + 4416, + 4417 + ] + }, + { + "teal": 1331, + "source": 225, + "pc": [ + 4418, + 4419, + 4420 + ] + }, + { + "teal": 1332, + "source": 225, + "pc": [ + 4421 + ] + }, + { + "teal": 1336, + "source": 226, + "pc": [ + 4422, + 4423, + 4424, + 4425, + 4426, + 4427, + 4428, + 4429, + 4430, + 4431 + ] + }, + { + "teal": 1337, + "source": 226, + "pc": [ + 4432, + 4433, + 4434 + ] + }, + { + "teal": 1338, + "source": 226, + "pc": [ + 4435 + ] + }, + { + "teal": 1342, + "source": 227, + "pc": [ + 4436, + 4437, + 4438, + 4439, + 4440, + 4441, + 4442, + 4443, + 4444, + 4445 + ] + }, + { + "teal": 1343, + "source": 227, + "pc": [ + 4446, + 4447, + 4448 + ] + }, + { + "teal": 1344, + "source": 227, + "pc": [ + 4449 + ] + }, + { + "teal": 1348, + "source": 228, + "pc": [ + 4450, + 4451, + 4452, + 4453, + 4454, + 4455, + 4456, + 4457, + 4458, + 4459 + ] + }, + { + "teal": 1349, + "source": 228, + "pc": [ + 4460, + 4461, + 4462 + ] + }, + { + "teal": 1350, + "source": 228, + "pc": [ + 4463 + ] + }, + { + "teal": 1354, + "source": 229, + "pc": [ + 4464, + 4465, + 4466, + 4467, + 4468, + 4469, + 4470, + 4471, + 4472, + 4473 + ] + }, + { + "teal": 1355, + "source": 229, + "pc": [ + 4474, + 4475, + 4476 + ] + }, + { + "teal": 1356, + "source": 229, + "pc": [ + 4477 + ] + }, + { + "teal": 1360, + "source": 230, + "pc": [ + 4478, + 4479, + 4480, + 4481, + 4482, + 4483, + 4484, + 4485, + 4486, + 4487 + ] + }, + { + "teal": 1361, + "source": 230, + "pc": [ + 4488, + 4489, + 4490 + ] + }, + { + "teal": 1362, + "source": 230, + "pc": [ + 4491 + ] + }, + { + "teal": 1366, + "source": 231, + "pc": [ + 4492, + 4493, + 4494, + 4495, + 4496, + 4497, + 4498, + 4499, + 4500, + 4501 + ] + }, + { + "teal": 1367, + "source": 231, + "pc": [ + 4502, + 4503, + 4504 + ] + }, + { + "teal": 1368, + "source": 231, + "pc": [ + 4505 + ] + }, + { + "teal": 1372, + "source": 232, + "pc": [ + 4506, + 4507, + 4508, + 4509, + 4510, + 4511, + 4512, + 4513, + 4514, + 4515 + ] + }, + { + "teal": 1373, + "source": 232, + "pc": [ + 4516, + 4517, + 4518 + ] + }, + { + "teal": 1374, + "source": 232, + "pc": [ + 4519 + ] + }, + { + "teal": 1378, + "source": 233, + "pc": [ + 4520, + 4521, + 4522, + 4523, + 4524, + 4525, + 4526, + 4527, + 4528, + 4529 + ] + }, + { + "teal": 1379, + "source": 233, + "pc": [ + 4530, + 4531, + 4532 + ] + }, + { + "teal": 1380, + "source": 233, + "pc": [ + 4533 + ] + }, + { + "teal": 1384, + "source": 234, + "pc": [ + 4534, + 4535, + 4536, + 4537, + 4538, + 4539, + 4540, + 4541, + 4542, + 4543 + ] + }, + { + "teal": 1385, + "source": 234, + "pc": [ + 4544, + 4545, + 4546 + ] + }, + { + "teal": 1386, + "source": 234, + "pc": [ + 4547 + ] + }, + { + "teal": 1390, + "source": 235, + "pc": [ + 4548, + 4549, + 4550, + 4551, + 4552, + 4553, + 4554, + 4555, + 4556, + 4557 + ] + }, + { + "teal": 1391, + "source": 235, + "pc": [ + 4558, + 4559, + 4560 + ] + }, + { + "teal": 1392, + "source": 235, + "pc": [ + 4561 + ] + }, + { + "teal": 1396, + "source": 236, + "pc": [ + 4562, + 4563, + 4564, + 4565, + 4566, + 4567, + 4568, + 4569, + 4570, + 4571 + ] + }, + { + "teal": 1397, + "source": 236, + "pc": [ + 4572, + 4573, + 4574 + ] + }, + { + "teal": 1398, + "source": 236, + "pc": [ + 4575 + ] + }, + { + "teal": 1402, + "source": 237, + "pc": [ + 4576, + 4577, + 4578, + 4579, + 4580, + 4581, + 4582, + 4583, + 4584, + 4585 + ] + }, + { + "teal": 1403, + "source": 237, + "pc": [ + 4586, + 4587, + 4588 + ] + }, + { + "teal": 1404, + "source": 237, + "pc": [ + 4589 + ] + }, + { + "teal": 1408, + "source": 238, + "pc": [ + 4590, + 4591, + 4592, + 4593, + 4594, + 4595, + 4596, + 4597, + 4598, + 4599 + ] + }, + { + "teal": 1409, + "source": 238, + "pc": [ + 4600, + 4601, + 4602 + ] + }, + { + "teal": 1410, + "source": 238, + "pc": [ + 4603 + ] + }, + { + "teal": 1414, + "source": 239, + "pc": [ + 4604, + 4605, + 4606, + 4607, + 4608, + 4609, + 4610, + 4611, + 4612, + 4613 + ] + }, + { + "teal": 1415, + "source": 239, + "pc": [ + 4614, + 4615, + 4616 + ] + }, + { + "teal": 1416, + "source": 239, + "pc": [ + 4617 + ] + }, + { + "teal": 1420, + "source": 240, + "pc": [ + 4618, + 4619, + 4620, + 4621, + 4622, + 4623, + 4624, + 4625, + 4626, + 4627 + ] + }, + { + "teal": 1421, + "source": 240, + "pc": [ + 4628, + 4629, + 4630 + ] + }, + { + "teal": 1422, + "source": 240, + "pc": [ + 4631 + ] + }, + { + "teal": 1426, + "source": 241, + "pc": [ + 4632, + 4633, + 4634, + 4635, + 4636, + 4637, + 4638, + 4639, + 4640, + 4641 + ] + }, + { + "teal": 1427, + "source": 241, + "pc": [ + 4642, + 4643, + 4644 + ] + }, + { + "teal": 1428, + "source": 241, + "pc": [ + 4645 + ] + }, + { + "teal": 1432, + "source": 242, + "pc": [ + 4646, + 4647, + 4648, + 4649, + 4650, + 4651, + 4652, + 4653, + 4654, + 4655 + ] + }, + { + "teal": 1433, + "source": 242, + "pc": [ + 4656, + 4657, + 4658 + ] + }, + { + "teal": 1434, + "source": 242, + "pc": [ + 4659 + ] + }, + { + "teal": 1438, + "source": 243, + "pc": [ + 4660, + 4661, + 4662, + 4663, + 4664, + 4665, + 4666, + 4667, + 4668, + 4669 + ] + }, + { + "teal": 1439, + "source": 243, + "pc": [ + 4670, + 4671, + 4672 + ] + }, + { + "teal": 1440, + "source": 243, + "pc": [ + 4673 + ] + }, + { + "teal": 1444, + "source": 244, + "pc": [ + 4674, + 4675, + 4676, + 4677, + 4678, + 4679, + 4680, + 4681, + 4682, + 4683 + ] + }, + { + "teal": 1445, + "source": 244, + "pc": [ + 4684, + 4685, + 4686 + ] + }, + { + "teal": 1446, + "source": 244, + "pc": [ + 4687 + ] + }, + { + "teal": 1450, + "source": 245, + "pc": [ + 4688, + 4689, + 4690, + 4691, + 4692, + 4693, + 4694, + 4695, + 4696, + 4697 + ] + }, + { + "teal": 1451, + "source": 245, + "pc": [ + 4698, + 4699, + 4700 + ] + }, + { + "teal": 1452, + "source": 245, + "pc": [ + 4701 + ] + }, + { + "teal": 1456, + "source": 246, + "pc": [ + 4702, + 4703, + 4704, + 4705, + 4706, + 4707, + 4708, + 4709, + 4710, + 4711 + ] + }, + { + "teal": 1457, + "source": 246, + "pc": [ + 4712, + 4713, + 4714 + ] + }, + { + "teal": 1458, + "source": 246, + "pc": [ + 4715 + ] + }, + { + "teal": 1462, + "source": 247, + "pc": [ + 4716, + 4717, + 4718, + 4719, + 4720, + 4721, + 4722, + 4723, + 4724, + 4725 + ] + }, + { + "teal": 1463, + "source": 247, + "pc": [ + 4726, + 4727, + 4728 + ] + }, + { + "teal": 1464, + "source": 247, + "pc": [ + 4729 + ] + }, + { + "teal": 1468, + "source": 248, + "pc": [ + 4730, + 4731, + 4732, + 4733, + 4734, + 4735, + 4736, + 4737, + 4738, + 4739 + ] + }, + { + "teal": 1469, + "source": 248, + "pc": [ + 4740, + 4741, + 4742 + ] + }, + { + "teal": 1470, + "source": 248, + "pc": [ + 4743 + ] + }, + { + "teal": 1474, + "source": 249, + "pc": [ + 4744, + 4745, + 4746, + 4747, + 4748, + 4749, + 4750, + 4751, + 4752, + 4753 + ] + }, + { + "teal": 1475, + "source": 249, + "pc": [ + 4754, + 4755, + 4756 + ] + }, + { + "teal": 1476, + "source": 249, + "pc": [ + 4757 + ] + }, + { + "teal": 1480, + "source": 250, + "pc": [ + 4758, + 4759, + 4760, + 4761, + 4762, + 4763, + 4764, + 4765, + 4766, + 4767 + ] + }, + { + "teal": 1481, + "source": 250, + "pc": [ + 4768, + 4769, + 4770 + ] + }, + { + "teal": 1482, + "source": 250, + "pc": [ + 4771 + ] + }, + { + "teal": 1486, + "source": 251, + "pc": [ + 4772, + 4773, + 4774, + 4775, + 4776, + 4777, + 4778, + 4779, + 4780, + 4781 + ] + }, + { + "teal": 1487, + "source": 251, + "pc": [ + 4782, + 4783, + 4784 + ] + }, + { + "teal": 1488, + "source": 251, + "pc": [ + 4785 + ] + }, + { + "teal": 1492, + "source": 252, + "pc": [ + 4786, + 4787, + 4788, + 4789, + 4790, + 4791, + 4792, + 4793, + 4794, + 4795 + ] + }, + { + "teal": 1493, + "source": 252, + "pc": [ + 4796, + 4797, + 4798 + ] + }, + { + "teal": 1494, + "source": 252, + "pc": [ + 4799 + ] + }, + { + "teal": 1498, + "source": 253, + "pc": [ + 4800, + 4801, + 4802, + 4803, + 4804, + 4805, + 4806, + 4807, + 4808, + 4809 + ] + }, + { + "teal": 1499, + "source": 253, + "pc": [ + 4810, + 4811, + 4812 + ] + }, + { + "teal": 1500, + "source": 253, + "pc": [ + 4813 + ] + }, + { + "teal": 1504, + "source": 254, + "pc": [ + 4814, + 4815, + 4816, + 4817, + 4818, + 4819, + 4820, + 4821, + 4822, + 4823 + ] + }, + { + "teal": 1505, + "source": 254, + "pc": [ + 4824, + 4825, + 4826 + ] + }, + { + "teal": 1506, + "source": 254, + "pc": [ + 4827 + ] + }, + { + "teal": 1510, + "source": 255, + "pc": [ + 4828, + 4829, + 4830, + 4831, + 4832, + 4833, + 4834, + 4835, + 4836, + 4837 + ] + }, + { + "teal": 1511, + "source": 255, + "pc": [ + 4838, + 4839, + 4840 + ] + }, + { + "teal": 1512, + "source": 255, + "pc": [ + 4841 + ] + }, + { + "teal": 1516, + "source": 256, + "pc": [ + 4842, + 4843, + 4844, + 4845, + 4846, + 4847, + 4848, + 4849, + 4850, + 4851 + ] + }, + { + "teal": 1517, + "source": 256, + "pc": [ + 4852, + 4853, + 4854 + ] + }, + { + "teal": 1518, + "source": 256, + "pc": [ + 4855 + ] + }, + { + "teal": 1522, + "source": 257, + "pc": [ + 4856, + 4857, + 4858, + 4859, + 4860, + 4861, + 4862, + 4863, + 4864, + 4865 + ] + }, + { + "teal": 1523, + "source": 257, + "pc": [ + 4866, + 4867, + 4868 + ] + }, + { + "teal": 1524, + "source": 257, + "pc": [ + 4869 + ] + }, + { + "teal": 1528, + "source": 258, + "pc": [ + 4870, + 4871, + 4872, + 4873, + 4874, + 4875, + 4876, + 4877, + 4878, + 4879 + ] + }, + { + "teal": 1529, + "source": 258, + "pc": [ + 4880, + 4881, + 4882 + ] + }, + { + "teal": 1530, + "source": 258, + "pc": [ + 4883 + ] + }, + { + "teal": 1534, + "source": 259, + "pc": [ + 4884, + 4885, + 4886, + 4887, + 4888, + 4889, + 4890, + 4891, + 4892, + 4893 + ] + }, + { + "teal": 1535, + "source": 259, + "pc": [ + 4894, + 4895, + 4896 + ] + }, + { + "teal": 1536, + "source": 259, + "pc": [ + 4897 + ] + }, + { + "teal": 1540, + "source": 260, + "pc": [ + 4898, + 4899, + 4900, + 4901, + 4902, + 4903, + 4904, + 4905, + 4906, + 4907 + ] + }, + { + "teal": 1541, + "source": 260, + "pc": [ + 4908, + 4909, + 4910 + ] + }, + { + "teal": 1542, + "source": 260, + "pc": [ + 4911 + ] + }, + { + "teal": 1546, + "source": 261, + "pc": [ + 4912, + 4913, + 4914, + 4915, + 4916, + 4917, + 4918, + 4919, + 4920, + 4921 + ] + }, + { + "teal": 1547, + "source": 261, + "pc": [ + 4922, + 4923, + 4924 + ] + }, + { + "teal": 1548, + "source": 261, + "pc": [ + 4925 + ] + }, + { + "teal": 1552, + "source": 262, + "pc": [ + 4926, + 4927, + 4928, + 4929, + 4930, + 4931, + 4932, + 4933, + 4934, + 4935 + ] + }, + { + "teal": 1553, + "source": 262, + "pc": [ + 4936, + 4937, + 4938 + ] + }, + { + "teal": 1554, + "source": 262, + "pc": [ + 4939 + ] + }, + { + "teal": 1558, + "source": 263, + "pc": [ + 4940, + 4941, + 4942, + 4943, + 4944, + 4945, + 4946, + 4947, + 4948, + 4949 + ] + }, + { + "teal": 1559, + "source": 263, + "pc": [ + 4950, + 4951, + 4952 + ] + }, + { + "teal": 1560, + "source": 263, + "pc": [ + 4953 + ] + }, + { + "teal": 1564, + "source": 264, + "pc": [ + 4954, + 4955, + 4956, + 4957, + 4958, + 4959, + 4960, + 4961, + 4962, + 4963 + ] + }, + { + "teal": 1565, + "source": 264, + "pc": [ + 4964, + 4965, + 4966 + ] + }, + { + "teal": 1566, + "source": 264, + "pc": [ + 4967 + ] + }, + { + "teal": 1570, + "source": 265, + "pc": [ + 4968, + 4969, + 4970, + 4971, + 4972, + 4973, + 4974, + 4975, + 4976, + 4977 + ] + }, + { + "teal": 1571, + "source": 265, + "pc": [ + 4978, + 4979, + 4980 + ] + }, + { + "teal": 1572, + "source": 265, + "pc": [ + 4981 + ] + }, + { + "teal": 1576, + "source": 268, + "pc": [ + 4982, + 4983, + 4984 + ] + }, + { + "teal": 1577, + "source": 9, + "pc": [ + 4985 + ] + }, + { + "teal": 1582, + "source": 271, + "pc": [ + 4986, + 4987, + 4988, + 4989, + 4990, + 4991 + ] + }, + { + "teal": 1585, + "source": 271, + "pc": [ + 4992, + 4993, + 4994 + ] + }, + { + "teal": 1586, + "source": 271, + "pc": [ + 4995 + ] + }, + { + "teal": 1587, + "source": 271, + "pc": [ + 4996 + ] + }, + { + "teal": 1588, + "source": 271, + "pc": [ + 4997 + ] + }, + { + "teal": 1589, + "source": 271, + "pc": [ + 4998, + 4999, + 5000 + ] + }, + { + "teal": 1590, + "source": 271, + "pc": [ + 5001 + ] + }, + { + "teal": 1591, + "source": 271, + "pc": [ + 5002 + ] + }, + { + "teal": 1592, + "source": 271, + "pc": [ + 5003 + ] + }, + { + "teal": 1593, + "source": 271, + "pc": [ + 5004 + ] + }, + { + "teal": 1594, + "source": 271, + "pc": [ + 5005, + 5006 + ] + }, + { + "teal": 1595, + "source": 271, + "pc": [ + 5007 + ] + }, + { + "teal": 1599, + "source": 271, + "pc": [ + 5008, + 5009, + 5010 + ] + }, + { + "teal": 1603, + "source": 273, + "pc": [ + 5011, + 5012, + 5013, + 5014, + 5015, + 5016, + 5017, + 5018, + 5019, + 5020, + 5021 + ] + }, + { + "teal": 1604, + "source": 273, + "pc": [ + 5022, + 5023, + 5024 + ] + }, + { + "teal": 1605, + "source": 273, + "pc": [ + 5025 + ] + }, + { + "teal": 1609, + "source": 274, + "pc": [ + 5026, + 5027, + 5028, + 5029, + 5030, + 5031, + 5032, + 5033, + 5034, + 5035, + 5036 + ] + }, + { + "teal": 1610, + "source": 274, + "pc": [ + 5037, + 5038, + 5039 + ] + }, + { + "teal": 1611, + "source": 274, + "pc": [ + 5040 + ] + }, + { + "teal": 1615, + "source": 275, + "pc": [ + 5041, + 5042, + 5043, + 5044, + 5045, + 5046, + 5047, + 5048, + 5049, + 5050, + 5051 + ] + }, + { + "teal": 1616, + "source": 275, + "pc": [ + 5052, + 5053, + 5054 + ] + }, + { + "teal": 1617, + "source": 275, + "pc": [ + 5055 + ] + }, + { + "teal": 1621, + "source": 276, + "pc": [ + 5056, + 5057, + 5058, + 5059, + 5060, + 5061, + 5062, + 5063, + 5064, + 5065, + 5066 + ] + }, + { + "teal": 1622, + "source": 276, + "pc": [ + 5067, + 5068, + 5069 + ] + }, + { + "teal": 1623, + "source": 276, + "pc": [ + 5070 + ] + }, + { + "teal": 1627, + "source": 277, + "pc": [ + 5071, + 5072, + 5073, + 5074, + 5075, + 5076, + 5077, + 5078, + 5079, + 5080, + 5081 + ] + }, + { + "teal": 1628, + "source": 277, + "pc": [ + 5082, + 5083, + 5084 + ] + }, + { + "teal": 1629, + "source": 277, + "pc": [ + 5085 + ] + }, + { + "teal": 1633, + "source": 278, + "pc": [ + 5086, + 5087, + 5088, + 5089, + 5090, + 5091, + 5092, + 5093, + 5094, + 5095, + 5096 + ] + }, + { + "teal": 1634, + "source": 278, + "pc": [ + 5097, + 5098, + 5099 + ] + }, + { + "teal": 1635, + "source": 278, + "pc": [ + 5100 + ] + }, + { + "teal": 1639, + "source": 279, + "pc": [ + 5101, + 5102, + 5103, + 5104, + 5105, + 5106, + 5107, + 5108, + 5109, + 5110, + 5111 + ] + }, + { + "teal": 1640, + "source": 279, + "pc": [ + 5112, + 5113, + 5114 + ] + }, + { + "teal": 1641, + "source": 279, + "pc": [ + 5115 + ] + }, + { + "teal": 1645, + "source": 280, + "pc": [ + 5116, + 5117, + 5118, + 5119, + 5120, + 5121, + 5122, + 5123, + 5124, + 5125, + 5126 + ] + }, + { + "teal": 1646, + "source": 280, + "pc": [ + 5127, + 5128, + 5129 + ] + }, + { + "teal": 1647, + "source": 280, + "pc": [ + 5130 + ] + }, + { + "teal": 1651, + "source": 281, + "pc": [ + 5131, + 5132, + 5133, + 5134, + 5135, + 5136, + 5137, + 5138, + 5139, + 5140, + 5141 + ] + }, + { + "teal": 1652, + "source": 281, + "pc": [ + 5142, + 5143, + 5144, + 5145 + ] + }, + { + "teal": 1653, + "source": 281, + "pc": [ + 5146 + ] + }, + { + "teal": 1657, + "source": 282, + "pc": [ + 5147, + 5148, + 5149, + 5150, + 5151, + 5152, + 5153, + 5154, + 5155, + 5156, + 5157 + ] + }, + { + "teal": 1658, + "source": 282, + "pc": [ + 5158, + 5159, + 5160, + 5161 + ] + }, + { + "teal": 1659, + "source": 282, + "pc": [ + 5162 + ] + }, + { + "teal": 1663, + "source": 283, + "pc": [ + 5163, + 5164, + 5165, + 5166, + 5167, + 5168, + 5169, + 5170, + 5171, + 5172, + 5173 + ] + }, + { + "teal": 1664, + "source": 283, + "pc": [ + 5174, + 5175, + 5176, + 5177 + ] + }, + { + "teal": 1665, + "source": 283, + "pc": [ + 5178 + ] + }, + { + "teal": 1669, + "source": 284, + "pc": [ + 5179, + 5180, + 5181, + 5182, + 5183, + 5184, + 5185, + 5186, + 5187, + 5188, + 5189 + ] + }, + { + "teal": 1670, + "source": 284, + "pc": [ + 5190, + 5191, + 5192, + 5193 + ] + }, + { + "teal": 1671, + "source": 284, + "pc": [ + 5194 + ] + }, + { + "teal": 1675, + "source": 285, + "pc": [ + 5195, + 5196, + 5197, + 5198, + 5199, + 5200, + 5201, + 5202, + 5203, + 5204, + 5205 + ] + }, + { + "teal": 1676, + "source": 285, + "pc": [ + 5206, + 5207, + 5208, + 5209 + ] + }, + { + "teal": 1677, + "source": 285, + "pc": [ + 5210 + ] + }, + { + "teal": 1681, + "source": 286, + "pc": [ + 5211, + 5212, + 5213, + 5214, + 5215, + 5216, + 5217, + 5218, + 5219, + 5220, + 5221 + ] + }, + { + "teal": 1682, + "source": 286, + "pc": [ + 5222, + 5223, + 5224, + 5225 + ] + }, + { + "teal": 1683, + "source": 286, + "pc": [ + 5226 + ] + }, + { + "teal": 1687, + "source": 287, + "pc": [ + 5227, + 5228, + 5229, + 5230, + 5231, + 5232, + 5233, + 5234, + 5235, + 5236, + 5237 + ] + }, + { + "teal": 1688, + "source": 287, + "pc": [ + 5238, + 5239, + 5240, + 5241 + ] + }, + { + "teal": 1689, + "source": 287, + "pc": [ + 5242 + ] + }, + { + "teal": 1693, + "source": 288, + "pc": [ + 5243, + 5244, + 5245, + 5246, + 5247, + 5248, + 5249, + 5250, + 5251, + 5252, + 5253 + ] + }, + { + "teal": 1694, + "source": 288, + "pc": [ + 5254, + 5255, + 5256, + 5257 + ] + }, + { + "teal": 1695, + "source": 288, + "pc": [ + 5258 + ] + }, + { + "teal": 1699, + "source": 289, + "pc": [ + 5259, + 5260, + 5261, + 5262, + 5263, + 5264, + 5265, + 5266, + 5267, + 5268, + 5269 + ] + }, + { + "teal": 1700, + "source": 289, + "pc": [ + 5270, + 5271, + 5272, + 5273 + ] + }, + { + "teal": 1701, + "source": 289, + "pc": [ + 5274 + ] + }, + { + "teal": 1705, + "source": 290, + "pc": [ + 5275, + 5276, + 5277, + 5278, + 5279, + 5280, + 5281, + 5282, + 5283, + 5284, + 5285 + ] + }, + { + "teal": 1706, + "source": 290, + "pc": [ + 5286, + 5287, + 5288, + 5289 + ] + }, + { + "teal": 1707, + "source": 290, + "pc": [ + 5290 + ] + }, + { + "teal": 1711, + "source": 291, + "pc": [ + 5291, + 5292, + 5293, + 5294, + 5295, + 5296, + 5297, + 5298, + 5299, + 5300, + 5301 + ] + }, + { + "teal": 1712, + "source": 291, + "pc": [ + 5302, + 5303, + 5304, + 5305 + ] + }, + { + "teal": 1713, + "source": 291, + "pc": [ + 5306 + ] + }, + { + "teal": 1717, + "source": 292, + "pc": [ + 5307, + 5308, + 5309, + 5310, + 5311, + 5312, + 5313, + 5314, + 5315, + 5316, + 5317 + ] + }, + { + "teal": 1718, + "source": 292, + "pc": [ + 5318, + 5319, + 5320, + 5321 + ] + }, + { + "teal": 1719, + "source": 292, + "pc": [ + 5322 + ] + }, + { + "teal": 1723, + "source": 293, + "pc": [ + 5323, + 5324, + 5325, + 5326, + 5327, + 5328, + 5329, + 5330, + 5331, + 5332, + 5333 + ] + }, + { + "teal": 1724, + "source": 293, + "pc": [ + 5334, + 5335, + 5336, + 5337 + ] + }, + { + "teal": 1725, + "source": 293, + "pc": [ + 5338 + ] + }, + { + "teal": 1729, + "source": 294, + "pc": [ + 5339, + 5340, + 5341, + 5342, + 5343, + 5344, + 5345, + 5346, + 5347, + 5348, + 5349 + ] + }, + { + "teal": 1730, + "source": 294, + "pc": [ + 5350, + 5351, + 5352, + 5353 + ] + }, + { + "teal": 1731, + "source": 294, + "pc": [ + 5354 + ] + }, + { + "teal": 1735, + "source": 295, + "pc": [ + 5355, + 5356, + 5357, + 5358, + 5359, + 5360, + 5361, + 5362, + 5363, + 5364, + 5365 + ] + }, + { + "teal": 1736, + "source": 295, + "pc": [ + 5366, + 5367, + 5368, + 5369 + ] + }, + { + "teal": 1737, + "source": 295, + "pc": [ + 5370 + ] + }, + { + "teal": 1741, + "source": 296, + "pc": [ + 5371, + 5372, + 5373, + 5374, + 5375, + 5376, + 5377, + 5378, + 5379, + 5380, + 5381 + ] + }, + { + "teal": 1742, + "source": 296, + "pc": [ + 5382, + 5383, + 5384, + 5385 + ] + }, + { + "teal": 1743, + "source": 296, + "pc": [ + 5386 + ] + }, + { + "teal": 1747, + "source": 297, + "pc": [ + 5387, + 5388, + 5389, + 5390, + 5391, + 5392, + 5393, + 5394, + 5395, + 5396, + 5397 + ] + }, + { + "teal": 1748, + "source": 297, + "pc": [ + 5398, + 5399, + 5400, + 5401 + ] + }, + { + "teal": 1749, + "source": 297, + "pc": [ + 5402 + ] + }, + { + "teal": 1753, + "source": 298, + "pc": [ + 5403, + 5404, + 5405, + 5406, + 5407, + 5408, + 5409, + 5410, + 5411, + 5412, + 5413 + ] + }, + { + "teal": 1754, + "source": 298, + "pc": [ + 5414, + 5415, + 5416, + 5417 + ] + }, + { + "teal": 1755, + "source": 298, + "pc": [ + 5418 + ] + }, + { + "teal": 1759, + "source": 299, + "pc": [ + 5419, + 5420, + 5421, + 5422, + 5423, + 5424, + 5425, + 5426, + 5427, + 5428, + 5429 + ] + }, + { + "teal": 1760, + "source": 299, + "pc": [ + 5430, + 5431, + 5432, + 5433 + ] + }, + { + "teal": 1761, + "source": 299, + "pc": [ + 5434 + ] + }, + { + "teal": 1765, + "source": 300, + "pc": [ + 5435, + 5436, + 5437, + 5438, + 5439, + 5440, + 5441, + 5442, + 5443, + 5444, + 5445 + ] + }, + { + "teal": 1766, + "source": 300, + "pc": [ + 5446, + 5447, + 5448, + 5449 + ] + }, + { + "teal": 1767, + "source": 300, + "pc": [ + 5450 + ] + }, + { + "teal": 1771, + "source": 301, + "pc": [ + 5451, + 5452, + 5453, + 5454, + 5455, + 5456, + 5457, + 5458, + 5459, + 5460, + 5461 + ] + }, + { + "teal": 1772, + "source": 301, + "pc": [ + 5462, + 5463, + 5464, + 5465 + ] + }, + { + "teal": 1773, + "source": 301, + "pc": [ + 5466 + ] + }, + { + "teal": 1777, + "source": 302, + "pc": [ + 5467, + 5468, + 5469, + 5470, + 5471, + 5472, + 5473, + 5474, + 5475, + 5476, + 5477 + ] + }, + { + "teal": 1778, + "source": 302, + "pc": [ + 5478, + 5479, + 5480, + 5481 + ] + }, + { + "teal": 1779, + "source": 302, + "pc": [ + 5482 + ] + }, + { + "teal": 1783, + "source": 303, + "pc": [ + 5483, + 5484, + 5485, + 5486, + 5487, + 5488, + 5489, + 5490, + 5491, + 5492, + 5493 + ] + }, + { + "teal": 1784, + "source": 303, + "pc": [ + 5494, + 5495, + 5496, + 5497 + ] + }, + { + "teal": 1785, + "source": 303, + "pc": [ + 5498 + ] + }, + { + "teal": 1789, + "source": 304, + "pc": [ + 5499, + 5500, + 5501, + 5502, + 5503, + 5504, + 5505, + 5506, + 5507, + 5508, + 5509 + ] + }, + { + "teal": 1790, + "source": 304, + "pc": [ + 5510, + 5511, + 5512, + 5513 + ] + }, + { + "teal": 1791, + "source": 304, + "pc": [ + 5514 + ] + }, + { + "teal": 1795, + "source": 305, + "pc": [ + 5515, + 5516, + 5517, + 5518, + 5519, + 5520, + 5521, + 5522, + 5523, + 5524, + 5525 + ] + }, + { + "teal": 1796, + "source": 305, + "pc": [ + 5526, + 5527, + 5528, + 5529 + ] + }, + { + "teal": 1797, + "source": 305, + "pc": [ + 5530 + ] + }, + { + "teal": 1801, + "source": 306, + "pc": [ + 5531, + 5532, + 5533, + 5534, + 5535, + 5536, + 5537, + 5538, + 5539, + 5540, + 5541 + ] + }, + { + "teal": 1802, + "source": 306, + "pc": [ + 5542, + 5543, + 5544, + 5545 + ] + }, + { + "teal": 1803, + "source": 306, + "pc": [ + 5546 + ] + }, + { + "teal": 1807, + "source": 307, + "pc": [ + 5547, + 5548, + 5549, + 5550, + 5551, + 5552, + 5553, + 5554, + 5555, + 5556, + 5557 + ] + }, + { + "teal": 1808, + "source": 307, + "pc": [ + 5558, + 5559, + 5560, + 5561 + ] + }, + { + "teal": 1809, + "source": 307, + "pc": [ + 5562 + ] + }, + { + "teal": 1813, + "source": 308, + "pc": [ + 5563, + 5564, + 5565, + 5566, + 5567, + 5568, + 5569, + 5570, + 5571, + 5572, + 5573 + ] + }, + { + "teal": 1814, + "source": 308, + "pc": [ + 5574, + 5575, + 5576, + 5577 + ] + }, + { + "teal": 1815, + "source": 308, + "pc": [ + 5578 + ] + }, + { + "teal": 1819, + "source": 309, + "pc": [ + 5579, + 5580, + 5581, + 5582, + 5583, + 5584, + 5585, + 5586, + 5587, + 5588, + 5589 + ] + }, + { + "teal": 1820, + "source": 309, + "pc": [ + 5590, + 5591, + 5592, + 5593 + ] + }, + { + "teal": 1821, + "source": 309, + "pc": [ + 5594 + ] + }, + { + "teal": 1825, + "source": 310, + "pc": [ + 5595, + 5596, + 5597, + 5598, + 5599, + 5600, + 5601, + 5602, + 5603, + 5604, + 5605 + ] + }, + { + "teal": 1826, + "source": 310, + "pc": [ + 5606, + 5607, + 5608, + 5609 + ] + }, + { + "teal": 1827, + "source": 310, + "pc": [ + 5610 + ] + }, + { + "teal": 1831, + "source": 311, + "pc": [ + 5611, + 5612, + 5613, + 5614, + 5615, + 5616, + 5617, + 5618, + 5619, + 5620, + 5621 + ] + }, + { + "teal": 1832, + "source": 311, + "pc": [ + 5622, + 5623, + 5624, + 5625 + ] + }, + { + "teal": 1833, + "source": 311, + "pc": [ + 5626 + ] + }, + { + "teal": 1837, + "source": 312, + "pc": [ + 5627, + 5628, + 5629, + 5630, + 5631, + 5632, + 5633, + 5634, + 5635, + 5636, + 5637 + ] + }, + { + "teal": 1838, + "source": 312, + "pc": [ + 5638, + 5639, + 5640, + 5641 + ] + }, + { + "teal": 1839, + "source": 312, + "pc": [ + 5642 + ] + }, + { + "teal": 1843, + "source": 313, + "pc": [ + 5643, + 5644, + 5645, + 5646, + 5647, + 5648, + 5649, + 5650, + 5651, + 5652, + 5653 + ] + }, + { + "teal": 1844, + "source": 313, + "pc": [ + 5654, + 5655, + 5656, + 5657 + ] + }, + { + "teal": 1845, + "source": 313, + "pc": [ + 5658 + ] + }, + { + "teal": 1849, + "source": 314, + "pc": [ + 5659, + 5660, + 5661, + 5662, + 5663, + 5664, + 5665, + 5666, + 5667, + 5668, + 5669 + ] + }, + { + "teal": 1850, + "source": 314, + "pc": [ + 5670, + 5671, + 5672, + 5673 + ] + }, + { + "teal": 1851, + "source": 314, + "pc": [ + 5674 + ] + }, + { + "teal": 1855, + "source": 315, + "pc": [ + 5675, + 5676, + 5677, + 5678, + 5679, + 5680, + 5681, + 5682, + 5683, + 5684, + 5685 + ] + }, + { + "teal": 1856, + "source": 315, + "pc": [ + 5686, + 5687, + 5688, + 5689 + ] + }, + { + "teal": 1857, + "source": 315, + "pc": [ + 5690 + ] + }, + { + "teal": 1861, + "source": 316, + "pc": [ + 5691, + 5692, + 5693, + 5694, + 5695, + 5696, + 5697, + 5698, + 5699, + 5700, + 5701 + ] + }, + { + "teal": 1862, + "source": 316, + "pc": [ + 5702, + 5703, + 5704, + 5705 + ] + }, + { + "teal": 1863, + "source": 316, + "pc": [ + 5706 + ] + }, + { + "teal": 1867, + "source": 317, + "pc": [ + 5707, + 5708, + 5709, + 5710, + 5711, + 5712, + 5713, + 5714, + 5715, + 5716, + 5717 + ] + }, + { + "teal": 1868, + "source": 317, + "pc": [ + 5718, + 5719, + 5720, + 5721 + ] + }, + { + "teal": 1869, + "source": 317, + "pc": [ + 5722 + ] + }, + { + "teal": 1873, + "source": 318, + "pc": [ + 5723, + 5724, + 5725, + 5726, + 5727, + 5728, + 5729, + 5730, + 5731, + 5732, + 5733 + ] + }, + { + "teal": 1874, + "source": 318, + "pc": [ + 5734, + 5735, + 5736, + 5737 + ] + }, + { + "teal": 1875, + "source": 318, + "pc": [ + 5738 + ] + }, + { + "teal": 1879, + "source": 319, + "pc": [ + 5739, + 5740, + 5741, + 5742, + 5743, + 5744, + 5745, + 5746, + 5747, + 5748, + 5749 + ] + }, + { + "teal": 1880, + "source": 319, + "pc": [ + 5750, + 5751, + 5752, + 5753 + ] + }, + { + "teal": 1881, + "source": 319, + "pc": [ + 5754 + ] + }, + { + "teal": 1885, + "source": 320, + "pc": [ + 5755, + 5756, + 5757, + 5758, + 5759, + 5760, + 5761, + 5762, + 5763, + 5764, + 5765 + ] + }, + { + "teal": 1886, + "source": 320, + "pc": [ + 5766, + 5767, + 5768, + 5769 + ] + }, + { + "teal": 1887, + "source": 320, + "pc": [ + 5770 + ] + }, + { + "teal": 1891, + "source": 321, + "pc": [ + 5771, + 5772, + 5773, + 5774, + 5775, + 5776, + 5777, + 5778, + 5779, + 5780, + 5781 + ] + }, + { + "teal": 1892, + "source": 321, + "pc": [ + 5782, + 5783, + 5784, + 5785 + ] + }, + { + "teal": 1893, + "source": 321, + "pc": [ + 5786 + ] + }, + { + "teal": 1897, + "source": 322, + "pc": [ + 5787, + 5788, + 5789, + 5790, + 5791, + 5792, + 5793, + 5794, + 5795, + 5796, + 5797 + ] + }, + { + "teal": 1898, + "source": 322, + "pc": [ + 5798, + 5799, + 5800, + 5801 + ] + }, + { + "teal": 1899, + "source": 322, + "pc": [ + 5802 + ] + }, + { + "teal": 1903, + "source": 323, + "pc": [ + 5803, + 5804, + 5805, + 5806, + 5807, + 5808, + 5809, + 5810, + 5811, + 5812, + 5813 + ] + }, + { + "teal": 1904, + "source": 323, + "pc": [ + 5814, + 5815, + 5816, + 5817 + ] + }, + { + "teal": 1905, + "source": 323, + "pc": [ + 5818 + ] + }, + { + "teal": 1909, + "source": 324, + "pc": [ + 5819, + 5820, + 5821, + 5822, + 5823, + 5824, + 5825, + 5826, + 5827, + 5828, + 5829 + ] + }, + { + "teal": 1910, + "source": 324, + "pc": [ + 5830, + 5831, + 5832, + 5833 + ] + }, + { + "teal": 1911, + "source": 324, + "pc": [ + 5834 + ] + }, + { + "teal": 1915, + "source": 325, + "pc": [ + 5835, + 5836, + 5837, + 5838, + 5839, + 5840, + 5841, + 5842, + 5843, + 5844, + 5845 + ] + }, + { + "teal": 1916, + "source": 325, + "pc": [ + 5846, + 5847, + 5848, + 5849 + ] + }, + { + "teal": 1917, + "source": 325, + "pc": [ + 5850 + ] + }, + { + "teal": 1921, + "source": 326, + "pc": [ + 5851, + 5852, + 5853, + 5854, + 5855, + 5856, + 5857, + 5858, + 5859, + 5860, + 5861 + ] + }, + { + "teal": 1922, + "source": 326, + "pc": [ + 5862, + 5863, + 5864, + 5865 + ] + }, + { + "teal": 1923, + "source": 326, + "pc": [ + 5866 + ] + }, + { + "teal": 1927, + "source": 327, + "pc": [ + 5867, + 5868, + 5869, + 5870, + 5871, + 5872, + 5873, + 5874, + 5875, + 5876, + 5877 + ] + }, + { + "teal": 1928, + "source": 327, + "pc": [ + 5878, + 5879, + 5880, + 5881 + ] + }, + { + "teal": 1929, + "source": 327, + "pc": [ + 5882 + ] + }, + { + "teal": 1933, + "source": 328, + "pc": [ + 5883, + 5884, + 5885, + 5886, + 5887, + 5888, + 5889, + 5890, + 5891, + 5892, + 5893 + ] + }, + { + "teal": 1934, + "source": 328, + "pc": [ + 5894, + 5895, + 5896, + 5897 + ] + }, + { + "teal": 1935, + "source": 328, + "pc": [ + 5898 + ] + }, + { + "teal": 1939, + "source": 329, + "pc": [ + 5899, + 5900, + 5901, + 5902, + 5903, + 5904, + 5905, + 5906, + 5907, + 5908, + 5909 + ] + }, + { + "teal": 1940, + "source": 329, + "pc": [ + 5910, + 5911, + 5912, + 5913 + ] + }, + { + "teal": 1941, + "source": 329, + "pc": [ + 5914 + ] + }, + { + "teal": 1945, + "source": 330, + "pc": [ + 5915, + 5916, + 5917, + 5918, + 5919, + 5920, + 5921, + 5922, + 5923, + 5924, + 5925 + ] + }, + { + "teal": 1946, + "source": 330, + "pc": [ + 5926, + 5927, + 5928, + 5929 + ] + }, + { + "teal": 1947, + "source": 330, + "pc": [ + 5930 + ] + }, + { + "teal": 1951, + "source": 331, + "pc": [ + 5931, + 5932, + 5933, + 5934, + 5935, + 5936, + 5937, + 5938, + 5939, + 5940, + 5941 + ] + }, + { + "teal": 1952, + "source": 331, + "pc": [ + 5942, + 5943, + 5944, + 5945 + ] + }, + { + "teal": 1953, + "source": 331, + "pc": [ + 5946 + ] + }, + { + "teal": 1957, + "source": 332, + "pc": [ + 5947, + 5948, + 5949, + 5950, + 5951, + 5952, + 5953, + 5954, + 5955, + 5956, + 5957 + ] + }, + { + "teal": 1958, + "source": 332, + "pc": [ + 5958, + 5959, + 5960, + 5961 + ] + }, + { + "teal": 1959, + "source": 332, + "pc": [ + 5962 + ] + }, + { + "teal": 1963, + "source": 333, + "pc": [ + 5963, + 5964, + 5965, + 5966, + 5967, + 5968, + 5969, + 5970, + 5971, + 5972, + 5973 + ] + }, + { + "teal": 1964, + "source": 333, + "pc": [ + 5974, + 5975, + 5976, + 5977 + ] + }, + { + "teal": 1965, + "source": 333, + "pc": [ + 5978 + ] + }, + { + "teal": 1969, + "source": 334, + "pc": [ + 5979, + 5980, + 5981, + 5982, + 5983, + 5984, + 5985, + 5986, + 5987, + 5988, + 5989 + ] + }, + { + "teal": 1970, + "source": 334, + "pc": [ + 5990, + 5991, + 5992, + 5993 + ] + }, + { + "teal": 1971, + "source": 334, + "pc": [ + 5994 + ] + }, + { + "teal": 1975, + "source": 335, + "pc": [ + 5995, + 5996, + 5997, + 5998, + 5999, + 6000, + 6001, + 6002, + 6003, + 6004, + 6005 + ] + }, + { + "teal": 1976, + "source": 335, + "pc": [ + 6006, + 6007, + 6008, + 6009 + ] + }, + { + "teal": 1977, + "source": 335, + "pc": [ + 6010 + ] + }, + { + "teal": 1981, + "source": 336, + "pc": [ + 6011, + 6012, + 6013, + 6014, + 6015, + 6016, + 6017, + 6018, + 6019, + 6020, + 6021 + ] + }, + { + "teal": 1982, + "source": 336, + "pc": [ + 6022, + 6023, + 6024, + 6025 + ] + }, + { + "teal": 1983, + "source": 336, + "pc": [ + 6026 + ] + }, + { + "teal": 1987, + "source": 337, + "pc": [ + 6027, + 6028, + 6029, + 6030, + 6031, + 6032, + 6033, + 6034, + 6035, + 6036, + 6037 + ] + }, + { + "teal": 1988, + "source": 337, + "pc": [ + 6038, + 6039, + 6040, + 6041 + ] + }, + { + "teal": 1989, + "source": 337, + "pc": [ + 6042 + ] + }, + { + "teal": 1993, + "source": 338, + "pc": [ + 6043, + 6044, + 6045, + 6046, + 6047, + 6048, + 6049, + 6050, + 6051, + 6052, + 6053 + ] + }, + { + "teal": 1994, + "source": 338, + "pc": [ + 6054, + 6055, + 6056, + 6057 + ] + }, + { + "teal": 1995, + "source": 338, + "pc": [ + 6058 + ] + }, + { + "teal": 1999, + "source": 339, + "pc": [ + 6059, + 6060, + 6061, + 6062, + 6063, + 6064, + 6065, + 6066, + 6067, + 6068, + 6069 + ] + }, + { + "teal": 2000, + "source": 339, + "pc": [ + 6070, + 6071, + 6072, + 6073 + ] + }, + { + "teal": 2001, + "source": 339, + "pc": [ + 6074 + ] + }, + { + "teal": 2005, + "source": 340, + "pc": [ + 6075, + 6076, + 6077, + 6078, + 6079, + 6080, + 6081, + 6082, + 6083, + 6084, + 6085 + ] + }, + { + "teal": 2006, + "source": 340, + "pc": [ + 6086, + 6087, + 6088, + 6089 + ] + }, + { + "teal": 2007, + "source": 340, + "pc": [ + 6090 + ] + }, + { + "teal": 2011, + "source": 341, + "pc": [ + 6091, + 6092, + 6093, + 6094, + 6095, + 6096, + 6097, + 6098, + 6099, + 6100, + 6101 + ] + }, + { + "teal": 2012, + "source": 341, + "pc": [ + 6102, + 6103, + 6104, + 6105 + ] + }, + { + "teal": 2013, + "source": 341, + "pc": [ + 6106 + ] + }, + { + "teal": 2017, + "source": 342, + "pc": [ + 6107, + 6108, + 6109, + 6110, + 6111, + 6112, + 6113, + 6114, + 6115, + 6116, + 6117 + ] + }, + { + "teal": 2018, + "source": 342, + "pc": [ + 6118, + 6119, + 6120, + 6121 + ] + }, + { + "teal": 2019, + "source": 342, + "pc": [ + 6122 + ] + }, + { + "teal": 2023, + "source": 343, + "pc": [ + 6123, + 6124, + 6125, + 6126, + 6127, + 6128, + 6129, + 6130, + 6131, + 6132, + 6133 + ] + }, + { + "teal": 2024, + "source": 343, + "pc": [ + 6134, + 6135, + 6136, + 6137 + ] + }, + { + "teal": 2025, + "source": 343, + "pc": [ + 6138 + ] + }, + { + "teal": 2029, + "source": 344, + "pc": [ + 6139, + 6140, + 6141, + 6142, + 6143, + 6144, + 6145, + 6146, + 6147, + 6148, + 6149 + ] + }, + { + "teal": 2030, + "source": 344, + "pc": [ + 6150, + 6151, + 6152, + 6153 + ] + }, + { + "teal": 2031, + "source": 344, + "pc": [ + 6154 + ] + }, + { + "teal": 2035, + "source": 345, + "pc": [ + 6155, + 6156, + 6157, + 6158, + 6159, + 6160, + 6161, + 6162, + 6163, + 6164, + 6165 + ] + }, + { + "teal": 2036, + "source": 345, + "pc": [ + 6166, + 6167, + 6168, + 6169 + ] + }, + { + "teal": 2037, + "source": 345, + "pc": [ + 6170 + ] + }, + { + "teal": 2041, + "source": 346, + "pc": [ + 6171, + 6172, + 6173, + 6174, + 6175, + 6176, + 6177, + 6178, + 6179, + 6180, + 6181 + ] + }, + { + "teal": 2042, + "source": 346, + "pc": [ + 6182, + 6183, + 6184, + 6185 + ] + }, + { + "teal": 2043, + "source": 346, + "pc": [ + 6186 + ] + }, + { + "teal": 2047, + "source": 347, + "pc": [ + 6187, + 6188, + 6189, + 6190, + 6191, + 6192, + 6193, + 6194, + 6195, + 6196, + 6197 + ] + }, + { + "teal": 2048, + "source": 347, + "pc": [ + 6198, + 6199, + 6200, + 6201 + ] + }, + { + "teal": 2049, + "source": 347, + "pc": [ + 6202 + ] + }, + { + "teal": 2053, + "source": 348, + "pc": [ + 6203, + 6204, + 6205, + 6206, + 6207, + 6208, + 6209, + 6210, + 6211, + 6212, + 6213 + ] + }, + { + "teal": 2054, + "source": 348, + "pc": [ + 6214, + 6215, + 6216, + 6217 + ] + }, + { + "teal": 2055, + "source": 348, + "pc": [ + 6218 + ] + }, + { + "teal": 2059, + "source": 349, + "pc": [ + 6219, + 6220, + 6221, + 6222, + 6223, + 6224, + 6225, + 6226, + 6227, + 6228, + 6229 + ] + }, + { + "teal": 2060, + "source": 349, + "pc": [ + 6230, + 6231, + 6232, + 6233 + ] + }, + { + "teal": 2061, + "source": 349, + "pc": [ + 6234 + ] + }, + { + "teal": 2065, + "source": 350, + "pc": [ + 6235, + 6236, + 6237, + 6238, + 6239, + 6240, + 6241, + 6242, + 6243, + 6244, + 6245 + ] + }, + { + "teal": 2066, + "source": 350, + "pc": [ + 6246, + 6247, + 6248, + 6249 + ] + }, + { + "teal": 2067, + "source": 350, + "pc": [ + 6250 + ] + }, + { + "teal": 2071, + "source": 351, + "pc": [ + 6251, + 6252, + 6253, + 6254, + 6255, + 6256, + 6257, + 6258, + 6259, + 6260, + 6261 + ] + }, + { + "teal": 2072, + "source": 351, + "pc": [ + 6262, + 6263, + 6264, + 6265 + ] + }, + { + "teal": 2073, + "source": 351, + "pc": [ + 6266 + ] + }, + { + "teal": 2077, + "source": 352, + "pc": [ + 6267, + 6268, + 6269, + 6270, + 6271, + 6272, + 6273, + 6274, + 6275, + 6276, + 6277 + ] + }, + { + "teal": 2078, + "source": 352, + "pc": [ + 6278, + 6279, + 6280, + 6281 + ] + }, + { + "teal": 2079, + "source": 352, + "pc": [ + 6282 + ] + }, + { + "teal": 2083, + "source": 353, + "pc": [ + 6283, + 6284, + 6285, + 6286, + 6287, + 6288, + 6289, + 6290, + 6291, + 6292, + 6293 + ] + }, + { + "teal": 2084, + "source": 353, + "pc": [ + 6294, + 6295, + 6296, + 6297 + ] + }, + { + "teal": 2085, + "source": 353, + "pc": [ + 6298 + ] + }, + { + "teal": 2089, + "source": 354, + "pc": [ + 6299, + 6300, + 6301, + 6302, + 6303, + 6304, + 6305, + 6306, + 6307, + 6308, + 6309 + ] + }, + { + "teal": 2090, + "source": 354, + "pc": [ + 6310, + 6311, + 6312, + 6313 + ] + }, + { + "teal": 2091, + "source": 354, + "pc": [ + 6314 + ] + }, + { + "teal": 2095, + "source": 355, + "pc": [ + 6315, + 6316, + 6317, + 6318, + 6319, + 6320, + 6321, + 6322, + 6323, + 6324, + 6325 + ] + }, + { + "teal": 2096, + "source": 355, + "pc": [ + 6326, + 6327, + 6328, + 6329 + ] + }, + { + "teal": 2097, + "source": 355, + "pc": [ + 6330 + ] + }, + { + "teal": 2101, + "source": 356, + "pc": [ + 6331, + 6332, + 6333, + 6334, + 6335, + 6336, + 6337, + 6338, + 6339, + 6340, + 6341 + ] + }, + { + "teal": 2102, + "source": 356, + "pc": [ + 6342, + 6343, + 6344, + 6345 + ] + }, + { + "teal": 2103, + "source": 356, + "pc": [ + 6346 + ] + }, + { + "teal": 2107, + "source": 357, + "pc": [ + 6347, + 6348, + 6349, + 6350, + 6351, + 6352, + 6353, + 6354, + 6355, + 6356, + 6357 + ] + }, + { + "teal": 2108, + "source": 357, + "pc": [ + 6358, + 6359, + 6360, + 6361 + ] + }, + { + "teal": 2109, + "source": 357, + "pc": [ + 6362 + ] + }, + { + "teal": 2113, + "source": 358, + "pc": [ + 6363, + 6364, + 6365, + 6366, + 6367, + 6368, + 6369, + 6370, + 6371, + 6372, + 6373 + ] + }, + { + "teal": 2114, + "source": 358, + "pc": [ + 6374, + 6375, + 6376, + 6377 + ] + }, + { + "teal": 2115, + "source": 358, + "pc": [ + 6378 + ] + }, + { + "teal": 2119, + "source": 359, + "pc": [ + 6379, + 6380, + 6381, + 6382, + 6383, + 6384, + 6385, + 6386, + 6387, + 6388, + 6389 + ] + }, + { + "teal": 2120, + "source": 359, + "pc": [ + 6390, + 6391, + 6392, + 6393 + ] + }, + { + "teal": 2121, + "source": 359, + "pc": [ + 6394 + ] + }, + { + "teal": 2125, + "source": 360, + "pc": [ + 6395, + 6396, + 6397, + 6398, + 6399, + 6400, + 6401, + 6402, + 6403, + 6404, + 6405 + ] + }, + { + "teal": 2126, + "source": 360, + "pc": [ + 6406, + 6407, + 6408, + 6409 + ] + }, + { + "teal": 2127, + "source": 360, + "pc": [ + 6410 + ] + }, + { + "teal": 2131, + "source": 361, + "pc": [ + 6411, + 6412, + 6413, + 6414, + 6415, + 6416, + 6417, + 6418, + 6419, + 6420, + 6421 + ] + }, + { + "teal": 2132, + "source": 361, + "pc": [ + 6422, + 6423, + 6424, + 6425 + ] + }, + { + "teal": 2133, + "source": 361, + "pc": [ + 6426 + ] + }, + { + "teal": 2137, + "source": 362, + "pc": [ + 6427, + 6428, + 6429, + 6430, + 6431, + 6432, + 6433, + 6434, + 6435, + 6436, + 6437 + ] + }, + { + "teal": 2138, + "source": 362, + "pc": [ + 6438, + 6439, + 6440, + 6441 + ] + }, + { + "teal": 2139, + "source": 362, + "pc": [ + 6442 + ] + }, + { + "teal": 2143, + "source": 363, + "pc": [ + 6443, + 6444, + 6445, + 6446, + 6447, + 6448, + 6449, + 6450, + 6451, + 6452, + 6453 + ] + }, + { + "teal": 2144, + "source": 363, + "pc": [ + 6454, + 6455, + 6456, + 6457 + ] + }, + { + "teal": 2145, + "source": 363, + "pc": [ + 6458 + ] + }, + { + "teal": 2149, + "source": 364, + "pc": [ + 6459, + 6460, + 6461, + 6462, + 6463, + 6464, + 6465, + 6466, + 6467, + 6468, + 6469 + ] + }, + { + "teal": 2150, + "source": 364, + "pc": [ + 6470, + 6471, + 6472, + 6473 + ] + }, + { + "teal": 2151, + "source": 364, + "pc": [ + 6474 + ] + }, + { + "teal": 2155, + "source": 365, + "pc": [ + 6475, + 6476, + 6477, + 6478, + 6479, + 6480, + 6481, + 6482, + 6483, + 6484, + 6485 + ] + }, + { + "teal": 2156, + "source": 365, + "pc": [ + 6486, + 6487, + 6488, + 6489 + ] + }, + { + "teal": 2157, + "source": 365, + "pc": [ + 6490 + ] + }, + { + "teal": 2161, + "source": 366, + "pc": [ + 6491, + 6492, + 6493, + 6494, + 6495, + 6496, + 6497, + 6498, + 6499, + 6500, + 6501 + ] + }, + { + "teal": 2162, + "source": 366, + "pc": [ + 6502, + 6503, + 6504, + 6505 + ] + }, + { + "teal": 2163, + "source": 366, + "pc": [ + 6506 + ] + }, + { + "teal": 2167, + "source": 367, + "pc": [ + 6507, + 6508, + 6509, + 6510, + 6511, + 6512, + 6513, + 6514, + 6515, + 6516, + 6517 + ] + }, + { + "teal": 2168, + "source": 367, + "pc": [ + 6518, + 6519, + 6520, + 6521 + ] + }, + { + "teal": 2169, + "source": 367, + "pc": [ + 6522 + ] + }, + { + "teal": 2173, + "source": 368, + "pc": [ + 6523, + 6524, + 6525, + 6526, + 6527, + 6528, + 6529, + 6530, + 6531, + 6532, + 6533 + ] + }, + { + "teal": 2174, + "source": 368, + "pc": [ + 6534, + 6535, + 6536, + 6537 + ] + }, + { + "teal": 2175, + "source": 368, + "pc": [ + 6538 + ] + }, + { + "teal": 2179, + "source": 369, + "pc": [ + 6539, + 6540, + 6541, + 6542, + 6543, + 6544, + 6545, + 6546, + 6547, + 6548, + 6549 + ] + }, + { + "teal": 2180, + "source": 369, + "pc": [ + 6550, + 6551, + 6552, + 6553 + ] + }, + { + "teal": 2181, + "source": 369, + "pc": [ + 6554 + ] + }, + { + "teal": 2185, + "source": 370, + "pc": [ + 6555, + 6556, + 6557, + 6558, + 6559, + 6560, + 6561, + 6562, + 6563, + 6564, + 6565 + ] + }, + { + "teal": 2186, + "source": 370, + "pc": [ + 6566, + 6567, + 6568, + 6569 + ] + }, + { + "teal": 2187, + "source": 370, + "pc": [ + 6570 + ] + }, + { + "teal": 2191, + "source": 371, + "pc": [ + 6571, + 6572, + 6573, + 6574, + 6575, + 6576, + 6577, + 6578, + 6579, + 6580, + 6581 + ] + }, + { + "teal": 2192, + "source": 371, + "pc": [ + 6582, + 6583, + 6584, + 6585, + 6586 + ] + }, + { + "teal": 2193, + "source": 371, + "pc": [ + 6587 + ] + }, + { + "teal": 2197, + "source": 372, + "pc": [ + 6588, + 6589, + 6590, + 6591, + 6592, + 6593, + 6594, + 6595, + 6596, + 6597, + 6598 + ] + }, + { + "teal": 2198, + "source": 372, + "pc": [ + 6599, + 6600, + 6601, + 6602, + 6603 + ] + }, + { + "teal": 2199, + "source": 372, + "pc": [ + 6604 + ] + }, + { + "teal": 2203, + "source": 373, + "pc": [ + 6605, + 6606, + 6607, + 6608, + 6609, + 6610, + 6611, + 6612, + 6613, + 6614, + 6615 + ] + }, + { + "teal": 2204, + "source": 373, + "pc": [ + 6616, + 6617, + 6618, + 6619, + 6620 + ] + }, + { + "teal": 2205, + "source": 373, + "pc": [ + 6621 + ] + }, + { + "teal": 2209, + "source": 374, + "pc": [ + 6622, + 6623, + 6624, + 6625, + 6626, + 6627, + 6628, + 6629, + 6630, + 6631, + 6632 + ] + }, + { + "teal": 2210, + "source": 374, + "pc": [ + 6633, + 6634, + 6635, + 6636, + 6637 + ] + }, + { + "teal": 2211, + "source": 374, + "pc": [ + 6638 + ] + }, + { + "teal": 2215, + "source": 375, + "pc": [ + 6639, + 6640, + 6641, + 6642, + 6643, + 6644, + 6645, + 6646, + 6647, + 6648, + 6649 + ] + }, + { + "teal": 2216, + "source": 375, + "pc": [ + 6650, + 6651, + 6652, + 6653, + 6654 + ] + }, + { + "teal": 2217, + "source": 375, + "pc": [ + 6655 + ] + }, + { + "teal": 2221, + "source": 376, + "pc": [ + 6656, + 6657, + 6658, + 6659, + 6660, + 6661, + 6662, + 6663, + 6664, + 6665, + 6666 + ] + }, + { + "teal": 2222, + "source": 376, + "pc": [ + 6667, + 6668, + 6669, + 6670, + 6671 + ] + }, + { + "teal": 2223, + "source": 376, + "pc": [ + 6672 + ] + }, + { + "teal": 2227, + "source": 377, + "pc": [ + 6673, + 6674, + 6675, + 6676, + 6677, + 6678, + 6679, + 6680, + 6681, + 6682, + 6683 + ] + }, + { + "teal": 2228, + "source": 377, + "pc": [ + 6684, + 6685, + 6686, + 6687, + 6688 + ] + }, + { + "teal": 2229, + "source": 377, + "pc": [ + 6689 + ] + }, + { + "teal": 2233, + "source": 378, + "pc": [ + 6690, + 6691, + 6692, + 6693, + 6694, + 6695, + 6696, + 6697, + 6698, + 6699, + 6700 + ] + }, + { + "teal": 2234, + "source": 378, + "pc": [ + 6701, + 6702, + 6703, + 6704, + 6705 + ] + }, + { + "teal": 2235, + "source": 378, + "pc": [ + 6706 + ] + }, + { + "teal": 2239, + "source": 379, + "pc": [ + 6707, + 6708, + 6709, + 6710, + 6711, + 6712, + 6713, + 6714, + 6715, + 6716, + 6717 + ] + }, + { + "teal": 2240, + "source": 379, + "pc": [ + 6718, + 6719, + 6720, + 6721, + 6722 + ] + }, + { + "teal": 2241, + "source": 379, + "pc": [ + 6723 + ] + }, + { + "teal": 2245, + "source": 380, + "pc": [ + 6724, + 6725, + 6726, + 6727, + 6728, + 6729, + 6730, + 6731, + 6732, + 6733, + 6734 + ] + }, + { + "teal": 2246, + "source": 380, + "pc": [ + 6735, + 6736, + 6737, + 6738, + 6739 + ] + }, + { + "teal": 2247, + "source": 380, + "pc": [ + 6740 + ] + }, + { + "teal": 2251, + "source": 381, + "pc": [ + 6741, + 6742, + 6743, + 6744, + 6745, + 6746, + 6747, + 6748, + 6749, + 6750, + 6751 + ] + }, + { + "teal": 2252, + "source": 381, + "pc": [ + 6752, + 6753, + 6754, + 6755, + 6756 + ] + }, + { + "teal": 2253, + "source": 381, + "pc": [ + 6757 + ] + }, + { + "teal": 2257, + "source": 382, + "pc": [ + 6758, + 6759, + 6760, + 6761, + 6762, + 6763, + 6764, + 6765, + 6766, + 6767, + 6768 + ] + }, + { + "teal": 2258, + "source": 382, + "pc": [ + 6769, + 6770, + 6771, + 6772, + 6773 + ] + }, + { + "teal": 2259, + "source": 382, + "pc": [ + 6774 + ] + }, + { + "teal": 2263, + "source": 383, + "pc": [ + 6775, + 6776, + 6777, + 6778, + 6779, + 6780, + 6781, + 6782, + 6783, + 6784, + 6785 + ] + }, + { + "teal": 2264, + "source": 383, + "pc": [ + 6786, + 6787, + 6788, + 6789, + 6790 + ] + }, + { + "teal": 2265, + "source": 383, + "pc": [ + 6791 + ] + }, + { + "teal": 2269, + "source": 384, + "pc": [ + 6792, + 6793, + 6794, + 6795, + 6796, + 6797, + 6798, + 6799, + 6800, + 6801, + 6802 + ] + }, + { + "teal": 2270, + "source": 384, + "pc": [ + 6803, + 6804, + 6805, + 6806, + 6807 + ] + }, + { + "teal": 2271, + "source": 384, + "pc": [ + 6808 + ] + }, + { + "teal": 2275, + "source": 385, + "pc": [ + 6809, + 6810, + 6811, + 6812, + 6813, + 6814, + 6815, + 6816, + 6817, + 6818, + 6819 + ] + }, + { + "teal": 2276, + "source": 385, + "pc": [ + 6820, + 6821, + 6822, + 6823, + 6824 + ] + }, + { + "teal": 2277, + "source": 385, + "pc": [ + 6825 + ] + }, + { + "teal": 2281, + "source": 386, + "pc": [ + 6826, + 6827, + 6828, + 6829, + 6830, + 6831, + 6832, + 6833, + 6834, + 6835, + 6836 + ] + }, + { + "teal": 2282, + "source": 386, + "pc": [ + 6837, + 6838, + 6839, + 6840, + 6841 + ] + }, + { + "teal": 2283, + "source": 386, + "pc": [ + 6842 + ] + }, + { + "teal": 2287, + "source": 387, + "pc": [ + 6843, + 6844, + 6845, + 6846, + 6847, + 6848, + 6849, + 6850, + 6851, + 6852, + 6853 + ] + }, + { + "teal": 2288, + "source": 387, + "pc": [ + 6854, + 6855, + 6856, + 6857, + 6858 + ] + }, + { + "teal": 2289, + "source": 387, + "pc": [ + 6859 + ] + }, + { + "teal": 2293, + "source": 388, + "pc": [ + 6860, + 6861, + 6862, + 6863, + 6864, + 6865, + 6866, + 6867, + 6868, + 6869, + 6870 + ] + }, + { + "teal": 2294, + "source": 388, + "pc": [ + 6871, + 6872, + 6873, + 6874, + 6875 + ] + }, + { + "teal": 2295, + "source": 388, + "pc": [ + 6876 + ] + }, + { + "teal": 2299, + "source": 389, + "pc": [ + 6877, + 6878, + 6879, + 6880, + 6881, + 6882, + 6883, + 6884, + 6885, + 6886, + 6887 + ] + }, + { + "teal": 2300, + "source": 389, + "pc": [ + 6888, + 6889, + 6890, + 6891, + 6892 + ] + }, + { + "teal": 2301, + "source": 389, + "pc": [ + 6893 + ] + }, + { + "teal": 2305, + "source": 390, + "pc": [ + 6894, + 6895, + 6896, + 6897, + 6898, + 6899, + 6900, + 6901, + 6902, + 6903, + 6904 + ] + }, + { + "teal": 2306, + "source": 390, + "pc": [ + 6905, + 6906, + 6907, + 6908, + 6909 + ] + }, + { + "teal": 2307, + "source": 390, + "pc": [ + 6910 + ] + }, + { + "teal": 2311, + "source": 391, + "pc": [ + 6911, + 6912, + 6913, + 6914, + 6915, + 6916, + 6917, + 6918, + 6919, + 6920, + 6921 + ] + }, + { + "teal": 2312, + "source": 391, + "pc": [ + 6922, + 6923, + 6924, + 6925, + 6926 + ] + }, + { + "teal": 2313, + "source": 391, + "pc": [ + 6927 + ] + }, + { + "teal": 2317, + "source": 392, + "pc": [ + 6928, + 6929, + 6930, + 6931, + 6932, + 6933, + 6934, + 6935, + 6936, + 6937, + 6938 + ] + }, + { + "teal": 2318, + "source": 392, + "pc": [ + 6939, + 6940, + 6941, + 6942, + 6943 + ] + }, + { + "teal": 2319, + "source": 392, + "pc": [ + 6944 + ] + }, + { + "teal": 2323, + "source": 393, + "pc": [ + 6945, + 6946, + 6947, + 6948, + 6949, + 6950, + 6951, + 6952, + 6953, + 6954, + 6955 + ] + }, + { + "teal": 2324, + "source": 393, + "pc": [ + 6956, + 6957, + 6958, + 6959, + 6960 + ] + }, + { + "teal": 2325, + "source": 393, + "pc": [ + 6961 + ] + }, + { + "teal": 2329, + "source": 394, + "pc": [ + 6962, + 6963, + 6964, + 6965, + 6966, + 6967, + 6968, + 6969, + 6970, + 6971, + 6972 + ] + }, + { + "teal": 2330, + "source": 394, + "pc": [ + 6973, + 6974, + 6975, + 6976, + 6977 + ] + }, + { + "teal": 2331, + "source": 394, + "pc": [ + 6978 + ] + }, + { + "teal": 2335, + "source": 395, + "pc": [ + 6979, + 6980, + 6981, + 6982, + 6983, + 6984, + 6985, + 6986, + 6987, + 6988, + 6989 + ] + }, + { + "teal": 2336, + "source": 395, + "pc": [ + 6990, + 6991, + 6992, + 6993, + 6994 + ] + }, + { + "teal": 2337, + "source": 395, + "pc": [ + 6995 + ] + }, + { + "teal": 2341, + "source": 396, + "pc": [ + 6996, + 6997, + 6998, + 6999, + 7000, + 7001, + 7002, + 7003, + 7004, + 7005, + 7006 + ] + }, + { + "teal": 2342, + "source": 396, + "pc": [ + 7007, + 7008, + 7009, + 7010, + 7011 + ] + }, + { + "teal": 2343, + "source": 396, + "pc": [ + 7012 + ] + }, + { + "teal": 2347, + "source": 397, + "pc": [ + 7013, + 7014, + 7015, + 7016, + 7017, + 7018, + 7019, + 7020, + 7021, + 7022, + 7023 + ] + }, + { + "teal": 2348, + "source": 397, + "pc": [ + 7024, + 7025, + 7026, + 7027, + 7028 + ] + }, + { + "teal": 2349, + "source": 397, + "pc": [ + 7029 + ] + }, + { + "teal": 2353, + "source": 398, + "pc": [ + 7030, + 7031, + 7032, + 7033, + 7034, + 7035, + 7036, + 7037, + 7038, + 7039, + 7040 + ] + }, + { + "teal": 2354, + "source": 398, + "pc": [ + 7041, + 7042, + 7043, + 7044, + 7045 + ] + }, + { + "teal": 2355, + "source": 398, + "pc": [ + 7046 + ] + }, + { + "teal": 2359, + "source": 399, + "pc": [ + 7047, + 7048, + 7049, + 7050, + 7051, + 7052, + 7053, + 7054, + 7055, + 7056, + 7057 + ] + }, + { + "teal": 2360, + "source": 399, + "pc": [ + 7058, + 7059, + 7060, + 7061, + 7062 + ] + }, + { + "teal": 2361, + "source": 399, + "pc": [ + 7063 + ] + }, + { + "teal": 2365, + "source": 400, + "pc": [ + 7064, + 7065, + 7066, + 7067, + 7068, + 7069, + 7070, + 7071, + 7072, + 7073, + 7074 + ] + }, + { + "teal": 2366, + "source": 400, + "pc": [ + 7075, + 7076, + 7077, + 7078, + 7079 + ] + }, + { + "teal": 2367, + "source": 400, + "pc": [ + 7080 + ] + }, + { + "teal": 2371, + "source": 401, + "pc": [ + 7081, + 7082, + 7083, + 7084, + 7085, + 7086, + 7087, + 7088, + 7089, + 7090, + 7091 + ] + }, + { + "teal": 2372, + "source": 401, + "pc": [ + 7092, + 7093, + 7094, + 7095, + 7096 + ] + }, + { + "teal": 2373, + "source": 401, + "pc": [ + 7097 + ] + }, + { + "teal": 2377, + "source": 402, + "pc": [ + 7098, + 7099, + 7100, + 7101, + 7102, + 7103, + 7104, + 7105, + 7106, + 7107, + 7108 + ] + }, + { + "teal": 2378, + "source": 402, + "pc": [ + 7109, + 7110, + 7111, + 7112, + 7113 + ] + }, + { + "teal": 2379, + "source": 402, + "pc": [ + 7114 + ] + }, + { + "teal": 2383, + "source": 403, + "pc": [ + 7115, + 7116, + 7117, + 7118, + 7119, + 7120, + 7121, + 7122, + 7123, + 7124, + 7125 + ] + }, + { + "teal": 2384, + "source": 403, + "pc": [ + 7126, + 7127, + 7128, + 7129, + 7130 + ] + }, + { + "teal": 2385, + "source": 403, + "pc": [ + 7131 + ] + }, + { + "teal": 2389, + "source": 404, + "pc": [ + 7132, + 7133, + 7134, + 7135, + 7136, + 7137, + 7138, + 7139, + 7140, + 7141, + 7142 + ] + }, + { + "teal": 2390, + "source": 404, + "pc": [ + 7143, + 7144, + 7145, + 7146, + 7147 + ] + }, + { + "teal": 2391, + "source": 404, + "pc": [ + 7148 + ] + }, + { + "teal": 2395, + "source": 405, + "pc": [ + 7149, + 7150, + 7151, + 7152, + 7153, + 7154, + 7155, + 7156, + 7157, + 7158, + 7159 + ] + }, + { + "teal": 2396, + "source": 405, + "pc": [ + 7160, + 7161, + 7162, + 7163, + 7164 + ] + }, + { + "teal": 2397, + "source": 405, + "pc": [ + 7165 + ] + }, + { + "teal": 2401, + "source": 406, + "pc": [ + 7166, + 7167, + 7168, + 7169, + 7170, + 7171, + 7172, + 7173, + 7174, + 7175, + 7176 + ] + }, + { + "teal": 2402, + "source": 406, + "pc": [ + 7177, + 7178, + 7179, + 7180, + 7181 + ] + }, + { + "teal": 2403, + "source": 406, + "pc": [ + 7182 + ] + }, + { + "teal": 2407, + "source": 407, + "pc": [ + 7183, + 7184, + 7185, + 7186, + 7187, + 7188, + 7189, + 7190, + 7191, + 7192, + 7193 + ] + }, + { + "teal": 2408, + "source": 407, + "pc": [ + 7194, + 7195, + 7196, + 7197, + 7198 + ] + }, + { + "teal": 2409, + "source": 407, + "pc": [ + 7199 + ] + }, + { + "teal": 2413, + "source": 408, + "pc": [ + 7200, + 7201, + 7202, + 7203, + 7204, + 7205, + 7206, + 7207, + 7208, + 7209, + 7210 + ] + }, + { + "teal": 2414, + "source": 408, + "pc": [ + 7211, + 7212, + 7213, + 7214, + 7215 + ] + }, + { + "teal": 2415, + "source": 408, + "pc": [ + 7216 + ] + }, + { + "teal": 2419, + "source": 409, + "pc": [ + 7217, + 7218, + 7219, + 7220, + 7221, + 7222, + 7223, + 7224, + 7225, + 7226, + 7227 + ] + }, + { + "teal": 2420, + "source": 409, + "pc": [ + 7228, + 7229, + 7230, + 7231, + 7232 + ] + }, + { + "teal": 2421, + "source": 409, + "pc": [ + 7233 + ] + }, + { + "teal": 2425, + "source": 410, + "pc": [ + 7234, + 7235, + 7236, + 7237, + 7238, + 7239, + 7240, + 7241, + 7242, + 7243, + 7244 + ] + }, + { + "teal": 2426, + "source": 410, + "pc": [ + 7245, + 7246, + 7247, + 7248, + 7249 + ] + }, + { + "teal": 2427, + "source": 410, + "pc": [ + 7250 + ] + }, + { + "teal": 2431, + "source": 411, + "pc": [ + 7251, + 7252, + 7253, + 7254, + 7255, + 7256, + 7257, + 7258, + 7259, + 7260, + 7261 + ] + }, + { + "teal": 2432, + "source": 411, + "pc": [ + 7262, + 7263, + 7264, + 7265, + 7266 + ] + }, + { + "teal": 2433, + "source": 411, + "pc": [ + 7267 + ] + }, + { + "teal": 2437, + "source": 412, + "pc": [ + 7268, + 7269, + 7270, + 7271, + 7272, + 7273, + 7274, + 7275, + 7276, + 7277, + 7278 + ] + }, + { + "teal": 2438, + "source": 412, + "pc": [ + 7279, + 7280, + 7281, + 7282, + 7283 + ] + }, + { + "teal": 2439, + "source": 412, + "pc": [ + 7284 + ] + }, + { + "teal": 2443, + "source": 413, + "pc": [ + 7285, + 7286, + 7287, + 7288, + 7289, + 7290, + 7291, + 7292, + 7293, + 7294, + 7295 + ] + }, + { + "teal": 2444, + "source": 413, + "pc": [ + 7296, + 7297, + 7298, + 7299, + 7300 + ] + }, + { + "teal": 2445, + "source": 413, + "pc": [ + 7301 + ] + }, + { + "teal": 2449, + "source": 414, + "pc": [ + 7302, + 7303, + 7304, + 7305, + 7306, + 7307, + 7308, + 7309, + 7310, + 7311, + 7312 + ] + }, + { + "teal": 2450, + "source": 414, + "pc": [ + 7313, + 7314, + 7315, + 7316, + 7317 + ] + }, + { + "teal": 2451, + "source": 414, + "pc": [ + 7318 + ] + }, + { + "teal": 2455, + "source": 415, + "pc": [ + 7319, + 7320, + 7321, + 7322, + 7323, + 7324, + 7325, + 7326, + 7327, + 7328, + 7329 + ] + }, + { + "teal": 2456, + "source": 415, + "pc": [ + 7330, + 7331, + 7332, + 7333, + 7334 + ] + }, + { + "teal": 2457, + "source": 415, + "pc": [ + 7335 + ] + }, + { + "teal": 2461, + "source": 416, + "pc": [ + 7336, + 7337, + 7338, + 7339, + 7340, + 7341, + 7342, + 7343, + 7344, + 7345, + 7346 + ] + }, + { + "teal": 2462, + "source": 416, + "pc": [ + 7347, + 7348, + 7349, + 7350, + 7351 + ] + }, + { + "teal": 2463, + "source": 416, + "pc": [ + 7352 + ] + }, + { + "teal": 2467, + "source": 417, + "pc": [ + 7353, + 7354, + 7355, + 7356, + 7357, + 7358, + 7359, + 7360, + 7361, + 7362, + 7363 + ] + }, + { + "teal": 2468, + "source": 417, + "pc": [ + 7364, + 7365, + 7366, + 7367, + 7368 + ] + }, + { + "teal": 2469, + "source": 417, + "pc": [ + 7369 + ] + }, + { + "teal": 2473, + "source": 418, + "pc": [ + 7370, + 7371, + 7372, + 7373, + 7374, + 7375, + 7376, + 7377, + 7378, + 7379, + 7380 + ] + }, + { + "teal": 2474, + "source": 418, + "pc": [ + 7381, + 7382, + 7383, + 7384, + 7385 + ] + }, + { + "teal": 2475, + "source": 418, + "pc": [ + 7386 + ] + }, + { + "teal": 2479, + "source": 419, + "pc": [ + 7387, + 7388, + 7389, + 7390, + 7391, + 7392, + 7393, + 7394, + 7395, + 7396, + 7397 + ] + }, + { + "teal": 2480, + "source": 419, + "pc": [ + 7398, + 7399, + 7400, + 7401, + 7402 + ] + }, + { + "teal": 2481, + "source": 419, + "pc": [ + 7403 + ] + }, + { + "teal": 2485, + "source": 420, + "pc": [ + 7404, + 7405, + 7406, + 7407, + 7408, + 7409, + 7410, + 7411, + 7412, + 7413, + 7414 + ] + }, + { + "teal": 2486, + "source": 420, + "pc": [ + 7415, + 7416, + 7417, + 7418, + 7419 + ] + }, + { + "teal": 2487, + "source": 420, + "pc": [ + 7420 + ] + }, + { + "teal": 2491, + "source": 421, + "pc": [ + 7421, + 7422, + 7423, + 7424, + 7425, + 7426, + 7427, + 7428, + 7429, + 7430, + 7431 + ] + }, + { + "teal": 2492, + "source": 421, + "pc": [ + 7432, + 7433, + 7434, + 7435, + 7436 + ] + }, + { + "teal": 2493, + "source": 421, + "pc": [ + 7437 + ] + }, + { + "teal": 2497, + "source": 422, + "pc": [ + 7438, + 7439, + 7440, + 7441, + 7442, + 7443, + 7444, + 7445, + 7446, + 7447, + 7448 + ] + }, + { + "teal": 2498, + "source": 422, + "pc": [ + 7449, + 7450, + 7451, + 7452, + 7453 + ] + }, + { + "teal": 2499, + "source": 422, + "pc": [ + 7454 + ] + }, + { + "teal": 2503, + "source": 423, + "pc": [ + 7455, + 7456, + 7457, + 7458, + 7459, + 7460, + 7461, + 7462, + 7463, + 7464, + 7465 + ] + }, + { + "teal": 2504, + "source": 423, + "pc": [ + 7466, + 7467, + 7468, + 7469, + 7470 + ] + }, + { + "teal": 2505, + "source": 423, + "pc": [ + 7471 + ] + }, + { + "teal": 2509, + "source": 424, + "pc": [ + 7472, + 7473, + 7474, + 7475, + 7476, + 7477, + 7478, + 7479, + 7480, + 7481, + 7482 + ] + }, + { + "teal": 2510, + "source": 424, + "pc": [ + 7483, + 7484, + 7485, + 7486, + 7487 + ] + }, + { + "teal": 2511, + "source": 424, + "pc": [ + 7488 + ] + }, + { + "teal": 2515, + "source": 425, + "pc": [ + 7489, + 7490, + 7491, + 7492, + 7493, + 7494, + 7495, + 7496, + 7497, + 7498, + 7499 + ] + }, + { + "teal": 2516, + "source": 425, + "pc": [ + 7500, + 7501, + 7502, + 7503, + 7504 + ] + }, + { + "teal": 2517, + "source": 425, + "pc": [ + 7505 + ] + }, + { + "teal": 2521, + "source": 426, + "pc": [ + 7506, + 7507, + 7508, + 7509, + 7510, + 7511, + 7512, + 7513, + 7514, + 7515, + 7516 + ] + }, + { + "teal": 2522, + "source": 426, + "pc": [ + 7517, + 7518, + 7519, + 7520, + 7521 + ] + }, + { + "teal": 2523, + "source": 426, + "pc": [ + 7522 + ] + }, + { + "teal": 2527, + "source": 427, + "pc": [ + 7523, + 7524, + 7525, + 7526, + 7527, + 7528, + 7529, + 7530, + 7531, + 7532, + 7533 + ] + }, + { + "teal": 2528, + "source": 427, + "pc": [ + 7534, + 7535, + 7536, + 7537, + 7538 + ] + }, + { + "teal": 2529, + "source": 427, + "pc": [ + 7539 + ] + }, + { + "teal": 2533, + "source": 428, + "pc": [ + 7540, + 7541, + 7542, + 7543, + 7544, + 7545, + 7546, + 7547, + 7548, + 7549, + 7550 + ] + }, + { + "teal": 2534, + "source": 428, + "pc": [ + 7551, + 7552, + 7553, + 7554, + 7555 + ] + }, + { + "teal": 2535, + "source": 428, + "pc": [ + 7556 + ] + }, + { + "teal": 2539, + "source": 429, + "pc": [ + 7557, + 7558, + 7559, + 7560, + 7561, + 7562, + 7563, + 7564, + 7565, + 7566, + 7567 + ] + }, + { + "teal": 2540, + "source": 429, + "pc": [ + 7568, + 7569, + 7570, + 7571, + 7572 + ] + }, + { + "teal": 2541, + "source": 429, + "pc": [ + 7573 + ] + }, + { + "teal": 2545, + "source": 430, + "pc": [ + 7574, + 7575, + 7576, + 7577, + 7578, + 7579, + 7580, + 7581, + 7582, + 7583, + 7584 + ] + }, + { + "teal": 2546, + "source": 430, + "pc": [ + 7585, + 7586, + 7587, + 7588, + 7589 + ] + }, + { + "teal": 2547, + "source": 430, + "pc": [ + 7590 + ] + }, + { + "teal": 2551, + "source": 431, + "pc": [ + 7591, + 7592, + 7593, + 7594, + 7595, + 7596, + 7597, + 7598, + 7599, + 7600, + 7601 + ] + }, + { + "teal": 2552, + "source": 431, + "pc": [ + 7602, + 7603, + 7604, + 7605, + 7606 + ] + }, + { + "teal": 2553, + "source": 431, + "pc": [ + 7607 + ] + }, + { + "teal": 2557, + "source": 432, + "pc": [ + 7608, + 7609, + 7610, + 7611, + 7612, + 7613, + 7614, + 7615, + 7616, + 7617, + 7618 + ] + }, + { + "teal": 2558, + "source": 432, + "pc": [ + 7619, + 7620, + 7621, + 7622, + 7623 + ] + }, + { + "teal": 2559, + "source": 432, + "pc": [ + 7624 + ] + }, + { + "teal": 2563, + "source": 433, + "pc": [ + 7625, + 7626, + 7627, + 7628, + 7629, + 7630, + 7631, + 7632, + 7633, + 7634, + 7635 + ] + }, + { + "teal": 2564, + "source": 433, + "pc": [ + 7636, + 7637, + 7638, + 7639, + 7640 + ] + }, + { + "teal": 2565, + "source": 433, + "pc": [ + 7641 + ] + }, + { + "teal": 2569, + "source": 434, + "pc": [ + 7642, + 7643, + 7644, + 7645, + 7646, + 7647, + 7648, + 7649, + 7650, + 7651, + 7652 + ] + }, + { + "teal": 2570, + "source": 434, + "pc": [ + 7653, + 7654, + 7655, + 7656, + 7657 + ] + }, + { + "teal": 2571, + "source": 434, + "pc": [ + 7658 + ] + }, + { + "teal": 2575, + "source": 435, + "pc": [ + 7659, + 7660, + 7661, + 7662, + 7663, + 7664, + 7665, + 7666, + 7667, + 7668, + 7669 + ] + }, + { + "teal": 2576, + "source": 435, + "pc": [ + 7670, + 7671, + 7672, + 7673, + 7674 + ] + }, + { + "teal": 2577, + "source": 435, + "pc": [ + 7675 + ] + }, + { + "teal": 2581, + "source": 436, + "pc": [ + 7676, + 7677, + 7678, + 7679, + 7680, + 7681, + 7682, + 7683, + 7684, + 7685, + 7686 + ] + }, + { + "teal": 2582, + "source": 436, + "pc": [ + 7687, + 7688, + 7689, + 7690, + 7691 + ] + }, + { + "teal": 2583, + "source": 436, + "pc": [ + 7692 + ] + }, + { + "teal": 2587, + "source": 437, + "pc": [ + 7693, + 7694, + 7695, + 7696, + 7697, + 7698, + 7699, + 7700, + 7701, + 7702, + 7703 + ] + }, + { + "teal": 2588, + "source": 437, + "pc": [ + 7704, + 7705, + 7706, + 7707, + 7708 + ] + }, + { + "teal": 2589, + "source": 437, + "pc": [ + 7709 + ] + }, + { + "teal": 2593, + "source": 438, + "pc": [ + 7710, + 7711, + 7712, + 7713, + 7714, + 7715, + 7716, + 7717, + 7718, + 7719, + 7720 + ] + }, + { + "teal": 2594, + "source": 438, + "pc": [ + 7721, + 7722, + 7723, + 7724, + 7725 + ] + }, + { + "teal": 2595, + "source": 438, + "pc": [ + 7726 + ] + }, + { + "teal": 2599, + "source": 439, + "pc": [ + 7727, + 7728, + 7729, + 7730, + 7731, + 7732, + 7733, + 7734, + 7735, + 7736, + 7737 + ] + }, + { + "teal": 2600, + "source": 439, + "pc": [ + 7738, + 7739, + 7740, + 7741, + 7742 + ] + }, + { + "teal": 2601, + "source": 439, + "pc": [ + 7743 + ] + }, + { + "teal": 2605, + "source": 440, + "pc": [ + 7744, + 7745, + 7746, + 7747, + 7748, + 7749, + 7750, + 7751, + 7752, + 7753, + 7754 + ] + }, + { + "teal": 2606, + "source": 440, + "pc": [ + 7755, + 7756, + 7757, + 7758, + 7759 + ] + }, + { + "teal": 2607, + "source": 440, + "pc": [ + 7760 + ] + }, + { + "teal": 2611, + "source": 441, + "pc": [ + 7761, + 7762, + 7763, + 7764, + 7765, + 7766, + 7767, + 7768, + 7769, + 7770, + 7771 + ] + }, + { + "teal": 2612, + "source": 441, + "pc": [ + 7772, + 7773, + 7774, + 7775, + 7776 + ] + }, + { + "teal": 2613, + "source": 441, + "pc": [ + 7777 + ] + }, + { + "teal": 2617, + "source": 442, + "pc": [ + 7778, + 7779, + 7780, + 7781, + 7782, + 7783, + 7784, + 7785, + 7786, + 7787, + 7788 + ] + }, + { + "teal": 2618, + "source": 442, + "pc": [ + 7789, + 7790, + 7791, + 7792, + 7793 + ] + }, + { + "teal": 2619, + "source": 442, + "pc": [ + 7794 + ] + }, + { + "teal": 2623, + "source": 443, + "pc": [ + 7795, + 7796, + 7797, + 7798, + 7799, + 7800, + 7801, + 7802, + 7803, + 7804, + 7805 + ] + }, + { + "teal": 2624, + "source": 443, + "pc": [ + 7806, + 7807, + 7808, + 7809, + 7810 + ] + }, + { + "teal": 2625, + "source": 443, + "pc": [ + 7811 + ] + }, + { + "teal": 2629, + "source": 444, + "pc": [ + 7812, + 7813, + 7814, + 7815, + 7816, + 7817, + 7818, + 7819, + 7820, + 7821, + 7822 + ] + }, + { + "teal": 2630, + "source": 444, + "pc": [ + 7823, + 7824, + 7825, + 7826, + 7827 + ] + }, + { + "teal": 2631, + "source": 444, + "pc": [ + 7828 + ] + }, + { + "teal": 2635, + "source": 445, + "pc": [ + 7829, + 7830, + 7831, + 7832, + 7833, + 7834, + 7835, + 7836, + 7837, + 7838, + 7839 + ] + }, + { + "teal": 2636, + "source": 445, + "pc": [ + 7840, + 7841, + 7842, + 7843, + 7844 + ] + }, + { + "teal": 2637, + "source": 445, + "pc": [ + 7845 + ] + }, + { + "teal": 2641, + "source": 446, + "pc": [ + 7846, + 7847, + 7848, + 7849, + 7850, + 7851, + 7852, + 7853, + 7854, + 7855, + 7856 + ] + }, + { + "teal": 2642, + "source": 446, + "pc": [ + 7857, + 7858, + 7859, + 7860, + 7861 + ] + }, + { + "teal": 2643, + "source": 446, + "pc": [ + 7862 + ] + }, + { + "teal": 2647, + "source": 447, + "pc": [ + 7863, + 7864, + 7865, + 7866, + 7867, + 7868, + 7869, + 7870, + 7871, + 7872, + 7873 + ] + }, + { + "teal": 2648, + "source": 447, + "pc": [ + 7874, + 7875, + 7876, + 7877, + 7878 + ] + }, + { + "teal": 2649, + "source": 447, + "pc": [ + 7879 + ] + }, + { + "teal": 2653, + "source": 448, + "pc": [ + 7880, + 7881, + 7882, + 7883, + 7884, + 7885, + 7886, + 7887, + 7888, + 7889, + 7890 + ] + }, + { + "teal": 2654, + "source": 448, + "pc": [ + 7891, + 7892, + 7893, + 7894, + 7895 + ] + }, + { + "teal": 2655, + "source": 448, + "pc": [ + 7896 + ] + }, + { + "teal": 2659, + "source": 449, + "pc": [ + 7897, + 7898, + 7899, + 7900, + 7901, + 7902, + 7903, + 7904, + 7905, + 7906, + 7907 + ] + }, + { + "teal": 2660, + "source": 449, + "pc": [ + 7908, + 7909, + 7910, + 7911, + 7912 + ] + }, + { + "teal": 2661, + "source": 449, + "pc": [ + 7913 + ] + }, + { + "teal": 2665, + "source": 450, + "pc": [ + 7914, + 7915, + 7916, + 7917, + 7918, + 7919, + 7920, + 7921, + 7922, + 7923, + 7924 + ] + }, + { + "teal": 2666, + "source": 450, + "pc": [ + 7925, + 7926, + 7927, + 7928, + 7929 + ] + }, + { + "teal": 2667, + "source": 450, + "pc": [ + 7930 + ] + }, + { + "teal": 2671, + "source": 451, + "pc": [ + 7931, + 7932, + 7933, + 7934, + 7935, + 7936, + 7937, + 7938, + 7939, + 7940, + 7941 + ] + }, + { + "teal": 2672, + "source": 451, + "pc": [ + 7942, + 7943, + 7944, + 7945, + 7946 + ] + }, + { + "teal": 2673, + "source": 451, + "pc": [ + 7947 + ] + }, + { + "teal": 2677, + "source": 452, + "pc": [ + 7948, + 7949, + 7950, + 7951, + 7952, + 7953, + 7954, + 7955, + 7956, + 7957, + 7958 + ] + }, + { + "teal": 2678, + "source": 452, + "pc": [ + 7959, + 7960, + 7961, + 7962, + 7963 + ] + }, + { + "teal": 2679, + "source": 452, + "pc": [ + 7964 + ] + }, + { + "teal": 2683, + "source": 453, + "pc": [ + 7965, + 7966, + 7967, + 7968, + 7969, + 7970, + 7971, + 7972, + 7973, + 7974, + 7975 + ] + }, + { + "teal": 2684, + "source": 453, + "pc": [ + 7976, + 7977, + 7978, + 7979, + 7980 + ] + }, + { + "teal": 2685, + "source": 453, + "pc": [ + 7981 + ] + }, + { + "teal": 2689, + "source": 454, + "pc": [ + 7982, + 7983, + 7984, + 7985, + 7986, + 7987, + 7988, + 7989, + 7990, + 7991, + 7992 + ] + }, + { + "teal": 2690, + "source": 454, + "pc": [ + 7993, + 7994, + 7995, + 7996, + 7997 + ] + }, + { + "teal": 2691, + "source": 454, + "pc": [ + 7998 + ] + }, + { + "teal": 2695, + "source": 455, + "pc": [ + 7999, + 8000, + 8001, + 8002, + 8003, + 8004, + 8005, + 8006, + 8007, + 8008, + 8009 + ] + }, + { + "teal": 2696, + "source": 455, + "pc": [ + 8010, + 8011, + 8012, + 8013, + 8014 + ] + }, + { + "teal": 2697, + "source": 455, + "pc": [ + 8015 + ] + }, + { + "teal": 2701, + "source": 456, + "pc": [ + 8016, + 8017, + 8018, + 8019, + 8020, + 8021, + 8022, + 8023, + 8024, + 8025, + 8026 + ] + }, + { + "teal": 2702, + "source": 456, + "pc": [ + 8027, + 8028, + 8029, + 8030, + 8031 + ] + }, + { + "teal": 2703, + "source": 456, + "pc": [ + 8032 + ] + }, + { + "teal": 2707, + "source": 457, + "pc": [ + 8033, + 8034, + 8035, + 8036, + 8037, + 8038, + 8039, + 8040, + 8041, + 8042, + 8043 + ] + }, + { + "teal": 2708, + "source": 457, + "pc": [ + 8044, + 8045, + 8046, + 8047, + 8048 + ] + }, + { + "teal": 2709, + "source": 457, + "pc": [ + 8049 + ] + }, + { + "teal": 2713, + "source": 458, + "pc": [ + 8050, + 8051, + 8052, + 8053, + 8054, + 8055, + 8056, + 8057, + 8058, + 8059, + 8060 + ] + }, + { + "teal": 2714, + "source": 458, + "pc": [ + 8061, + 8062, + 8063, + 8064, + 8065 + ] + }, + { + "teal": 2715, + "source": 458, + "pc": [ + 8066 + ] + }, + { + "teal": 2719, + "source": 459, + "pc": [ + 8067, + 8068, + 8069, + 8070, + 8071, + 8072, + 8073, + 8074, + 8075, + 8076, + 8077 + ] + }, + { + "teal": 2720, + "source": 459, + "pc": [ + 8078, + 8079, + 8080, + 8081, + 8082 + ] + }, + { + "teal": 2721, + "source": 459, + "pc": [ + 8083 + ] + }, + { + "teal": 2725, + "source": 460, + "pc": [ + 8084, + 8085, + 8086, + 8087, + 8088, + 8089, + 8090, + 8091, + 8092, + 8093, + 8094 + ] + }, + { + "teal": 2726, + "source": 460, + "pc": [ + 8095, + 8096, + 8097, + 8098, + 8099 + ] + }, + { + "teal": 2727, + "source": 460, + "pc": [ + 8100 + ] + }, + { + "teal": 2731, + "source": 461, + "pc": [ + 8101, + 8102, + 8103, + 8104, + 8105, + 8106, + 8107, + 8108, + 8109, + 8110, + 8111 + ] + }, + { + "teal": 2732, + "source": 461, + "pc": [ + 8112, + 8113, + 8114, + 8115, + 8116 + ] + }, + { + "teal": 2733, + "source": 461, + "pc": [ + 8117 + ] + }, + { + "teal": 2737, + "source": 462, + "pc": [ + 8118, + 8119, + 8120, + 8121, + 8122, + 8123, + 8124, + 8125, + 8126, + 8127, + 8128 + ] + }, + { + "teal": 2738, + "source": 462, + "pc": [ + 8129, + 8130, + 8131, + 8132, + 8133 + ] + }, + { + "teal": 2739, + "source": 462, + "pc": [ + 8134 + ] + }, + { + "teal": 2743, + "source": 463, + "pc": [ + 8135, + 8136, + 8137, + 8138, + 8139, + 8140, + 8141, + 8142, + 8143, + 8144, + 8145 + ] + }, + { + "teal": 2744, + "source": 463, + "pc": [ + 8146, + 8147, + 8148, + 8149, + 8150 + ] + }, + { + "teal": 2745, + "source": 463, + "pc": [ + 8151 + ] + }, + { + "teal": 2749, + "source": 464, + "pc": [ + 8152, + 8153, + 8154, + 8155, + 8156, + 8157, + 8158, + 8159, + 8160, + 8161, + 8162 + ] + }, + { + "teal": 2750, + "source": 464, + "pc": [ + 8163, + 8164, + 8165, + 8166, + 8167 + ] + }, + { + "teal": 2751, + "source": 464, + "pc": [ + 8168 + ] + }, + { + "teal": 2755, + "source": 465, + "pc": [ + 8169, + 8170, + 8171, + 8172, + 8173, + 8174, + 8175, + 8176, + 8177, + 8178, + 8179 + ] + }, + { + "teal": 2756, + "source": 465, + "pc": [ + 8180, + 8181, + 8182, + 8183, + 8184 + ] + }, + { + "teal": 2757, + "source": 465, + "pc": [ + 8185 + ] + }, + { + "teal": 2761, + "source": 466, + "pc": [ + 8186, + 8187, + 8188, + 8189, + 8190, + 8191, + 8192, + 8193, + 8194, + 8195, + 8196 + ] + }, + { + "teal": 2762, + "source": 466, + "pc": [ + 8197, + 8198, + 8199, + 8200, + 8201 + ] + }, + { + "teal": 2763, + "source": 466, + "pc": [ + 8202 + ] + }, + { + "teal": 2767, + "source": 467, + "pc": [ + 8203, + 8204, + 8205, + 8206, + 8207, + 8208, + 8209, + 8210, + 8211, + 8212, + 8213 + ] + }, + { + "teal": 2768, + "source": 467, + "pc": [ + 8214, + 8215, + 8216, + 8217, + 8218 + ] + }, + { + "teal": 2769, + "source": 467, + "pc": [ + 8219 + ] + }, + { + "teal": 2773, + "source": 468, + "pc": [ + 8220, + 8221, + 8222, + 8223, + 8224, + 8225, + 8226, + 8227, + 8228, + 8229, + 8230 + ] + }, + { + "teal": 2774, + "source": 468, + "pc": [ + 8231, + 8232, + 8233, + 8234, + 8235 + ] + }, + { + "teal": 2775, + "source": 468, + "pc": [ + 8236 + ] + }, + { + "teal": 2779, + "source": 469, + "pc": [ + 8237, + 8238, + 8239, + 8240, + 8241, + 8242, + 8243, + 8244, + 8245, + 8246, + 8247 + ] + }, + { + "teal": 2780, + "source": 469, + "pc": [ + 8248, + 8249, + 8250, + 8251, + 8252 + ] + }, + { + "teal": 2781, + "source": 469, + "pc": [ + 8253 + ] + }, + { + "teal": 2785, + "source": 470, + "pc": [ + 8254, + 8255, + 8256, + 8257, + 8258, + 8259, + 8260, + 8261, + 8262, + 8263, + 8264 + ] + }, + { + "teal": 2786, + "source": 470, + "pc": [ + 8265, + 8266, + 8267, + 8268, + 8269 + ] + }, + { + "teal": 2787, + "source": 470, + "pc": [ + 8270 + ] + }, + { + "teal": 2791, + "source": 471, + "pc": [ + 8271, + 8272, + 8273, + 8274, + 8275, + 8276, + 8277, + 8278, + 8279, + 8280, + 8281 + ] + }, + { + "teal": 2792, + "source": 471, + "pc": [ + 8282, + 8283, + 8284, + 8285, + 8286 + ] + }, + { + "teal": 2793, + "source": 471, + "pc": [ + 8287 + ] + }, + { + "teal": 2797, + "source": 472, + "pc": [ + 8288, + 8289, + 8290, + 8291, + 8292, + 8293, + 8294, + 8295, + 8296, + 8297, + 8298 + ] + }, + { + "teal": 2798, + "source": 472, + "pc": [ + 8299, + 8300, + 8301, + 8302, + 8303 + ] + }, + { + "teal": 2799, + "source": 472, + "pc": [ + 8304 + ] + }, + { + "teal": 2803, + "source": 473, + "pc": [ + 8305, + 8306, + 8307, + 8308, + 8309, + 8310, + 8311, + 8312, + 8313, + 8314, + 8315 + ] + }, + { + "teal": 2804, + "source": 473, + "pc": [ + 8316, + 8317, + 8318, + 8319, + 8320 + ] + }, + { + "teal": 2805, + "source": 473, + "pc": [ + 8321 + ] + }, + { + "teal": 2809, + "source": 474, + "pc": [ + 8322, + 8323, + 8324, + 8325, + 8326, + 8327, + 8328, + 8329, + 8330, + 8331, + 8332 + ] + }, + { + "teal": 2810, + "source": 474, + "pc": [ + 8333, + 8334, + 8335, + 8336, + 8337 + ] + }, + { + "teal": 2811, + "source": 474, + "pc": [ + 8338 + ] + }, + { + "teal": 2815, + "source": 475, + "pc": [ + 8339, + 8340, + 8341, + 8342, + 8343, + 8344, + 8345, + 8346, + 8347, + 8348, + 8349 + ] + }, + { + "teal": 2816, + "source": 475, + "pc": [ + 8350, + 8351, + 8352, + 8353, + 8354 + ] + }, + { + "teal": 2817, + "source": 475, + "pc": [ + 8355 + ] + }, + { + "teal": 2821, + "source": 476, + "pc": [ + 8356, + 8357, + 8358, + 8359, + 8360, + 8361, + 8362, + 8363, + 8364, + 8365, + 8366 + ] + }, + { + "teal": 2822, + "source": 476, + "pc": [ + 8367, + 8368, + 8369, + 8370, + 8371 + ] + }, + { + "teal": 2823, + "source": 476, + "pc": [ + 8372 + ] + }, + { + "teal": 2827, + "source": 477, + "pc": [ + 8373, + 8374, + 8375, + 8376, + 8377, + 8378, + 8379, + 8380, + 8381, + 8382, + 8383 + ] + }, + { + "teal": 2828, + "source": 477, + "pc": [ + 8384, + 8385, + 8386, + 8387, + 8388 + ] + }, + { + "teal": 2829, + "source": 477, + "pc": [ + 8389 + ] + }, + { + "teal": 2833, + "source": 478, + "pc": [ + 8390, + 8391, + 8392, + 8393, + 8394, + 8395, + 8396, + 8397, + 8398, + 8399, + 8400 + ] + }, + { + "teal": 2834, + "source": 478, + "pc": [ + 8401, + 8402, + 8403, + 8404, + 8405 + ] + }, + { + "teal": 2835, + "source": 478, + "pc": [ + 8406 + ] + }, + { + "teal": 2839, + "source": 479, + "pc": [ + 8407, + 8408, + 8409, + 8410, + 8411, + 8412, + 8413, + 8414, + 8415, + 8416, + 8417 + ] + }, + { + "teal": 2840, + "source": 479, + "pc": [ + 8418, + 8419, + 8420, + 8421, + 8422 + ] + }, + { + "teal": 2841, + "source": 479, + "pc": [ + 8423 + ] + }, + { + "teal": 2845, + "source": 480, + "pc": [ + 8424, + 8425, + 8426, + 8427, + 8428, + 8429, + 8430, + 8431, + 8432, + 8433, + 8434 + ] + }, + { + "teal": 2846, + "source": 480, + "pc": [ + 8435, + 8436, + 8437, + 8438, + 8439 + ] + }, + { + "teal": 2847, + "source": 480, + "pc": [ + 8440 + ] + }, + { + "teal": 2851, + "source": 481, + "pc": [ + 8441, + 8442, + 8443, + 8444, + 8445, + 8446, + 8447, + 8448, + 8449, + 8450, + 8451 + ] + }, + { + "teal": 2852, + "source": 481, + "pc": [ + 8452, + 8453, + 8454, + 8455, + 8456 + ] + }, + { + "teal": 2853, + "source": 481, + "pc": [ + 8457 + ] + }, + { + "teal": 2857, + "source": 482, + "pc": [ + 8458, + 8459, + 8460, + 8461, + 8462, + 8463, + 8464, + 8465, + 8466, + 8467, + 8468 + ] + }, + { + "teal": 2858, + "source": 482, + "pc": [ + 8469, + 8470, + 8471, + 8472, + 8473 + ] + }, + { + "teal": 2859, + "source": 482, + "pc": [ + 8474 + ] + }, + { + "teal": 2863, + "source": 483, + "pc": [ + 8475, + 8476, + 8477, + 8478, + 8479, + 8480, + 8481, + 8482, + 8483, + 8484, + 8485 + ] + }, + { + "teal": 2864, + "source": 483, + "pc": [ + 8486, + 8487, + 8488, + 8489, + 8490 + ] + }, + { + "teal": 2865, + "source": 483, + "pc": [ + 8491 + ] + }, + { + "teal": 2869, + "source": 484, + "pc": [ + 8492, + 8493, + 8494, + 8495, + 8496, + 8497, + 8498, + 8499, + 8500, + 8501, + 8502 + ] + }, + { + "teal": 2870, + "source": 484, + "pc": [ + 8503, + 8504, + 8505, + 8506, + 8507 + ] + }, + { + "teal": 2871, + "source": 484, + "pc": [ + 8508 + ] + }, + { + "teal": 2875, + "source": 485, + "pc": [ + 8509, + 8510, + 8511, + 8512, + 8513, + 8514, + 8515, + 8516, + 8517, + 8518, + 8519 + ] + }, + { + "teal": 2876, + "source": 485, + "pc": [ + 8520, + 8521, + 8522, + 8523, + 8524 + ] + }, + { + "teal": 2877, + "source": 485, + "pc": [ + 8525 + ] + }, + { + "teal": 2881, + "source": 486, + "pc": [ + 8526, + 8527, + 8528, + 8529, + 8530, + 8531, + 8532, + 8533, + 8534, + 8535, + 8536 + ] + }, + { + "teal": 2882, + "source": 486, + "pc": [ + 8537, + 8538, + 8539, + 8540, + 8541 + ] + }, + { + "teal": 2883, + "source": 486, + "pc": [ + 8542 + ] + }, + { + "teal": 2887, + "source": 487, + "pc": [ + 8543, + 8544, + 8545, + 8546, + 8547, + 8548, + 8549, + 8550, + 8551, + 8552, + 8553 + ] + }, + { + "teal": 2888, + "source": 487, + "pc": [ + 8554, + 8555, + 8556, + 8557, + 8558 + ] + }, + { + "teal": 2889, + "source": 487, + "pc": [ + 8559 + ] + }, + { + "teal": 2893, + "source": 488, + "pc": [ + 8560, + 8561, + 8562, + 8563, + 8564, + 8565, + 8566, + 8567, + 8568, + 8569, + 8570 + ] + }, + { + "teal": 2894, + "source": 488, + "pc": [ + 8571, + 8572, + 8573, + 8574, + 8575 + ] + }, + { + "teal": 2895, + "source": 488, + "pc": [ + 8576 + ] + }, + { + "teal": 2899, + "source": 489, + "pc": [ + 8577, + 8578, + 8579, + 8580, + 8581, + 8582, + 8583, + 8584, + 8585, + 8586, + 8587 + ] + }, + { + "teal": 2900, + "source": 489, + "pc": [ + 8588, + 8589, + 8590, + 8591, + 8592 + ] + }, + { + "teal": 2901, + "source": 489, + "pc": [ + 8593 + ] + }, + { + "teal": 2905, + "source": 490, + "pc": [ + 8594, + 8595, + 8596, + 8597, + 8598, + 8599, + 8600, + 8601, + 8602, + 8603, + 8604 + ] + }, + { + "teal": 2906, + "source": 490, + "pc": [ + 8605, + 8606, + 8607, + 8608, + 8609 + ] + }, + { + "teal": 2907, + "source": 490, + "pc": [ + 8610 + ] + }, + { + "teal": 2911, + "source": 491, + "pc": [ + 8611, + 8612, + 8613, + 8614, + 8615, + 8616, + 8617, + 8618, + 8619, + 8620, + 8621 + ] + }, + { + "teal": 2912, + "source": 491, + "pc": [ + 8622, + 8623, + 8624, + 8625, + 8626 + ] + }, + { + "teal": 2913, + "source": 491, + "pc": [ + 8627 + ] + }, + { + "teal": 2917, + "source": 492, + "pc": [ + 8628, + 8629, + 8630, + 8631, + 8632, + 8633, + 8634, + 8635, + 8636, + 8637, + 8638 + ] + }, + { + "teal": 2918, + "source": 492, + "pc": [ + 8639, + 8640, + 8641, + 8642, + 8643 + ] + }, + { + "teal": 2919, + "source": 492, + "pc": [ + 8644 + ] + }, + { + "teal": 2923, + "source": 493, + "pc": [ + 8645, + 8646, + 8647, + 8648, + 8649, + 8650, + 8651, + 8652, + 8653, + 8654, + 8655 + ] + }, + { + "teal": 2924, + "source": 493, + "pc": [ + 8656, + 8657, + 8658, + 8659, + 8660 + ] + }, + { + "teal": 2925, + "source": 493, + "pc": [ + 8661 + ] + }, + { + "teal": 2929, + "source": 494, + "pc": [ + 8662, + 8663, + 8664, + 8665, + 8666, + 8667, + 8668, + 8669, + 8670, + 8671, + 8672 + ] + }, + { + "teal": 2930, + "source": 494, + "pc": [ + 8673, + 8674, + 8675, + 8676, + 8677 + ] + }, + { + "teal": 2931, + "source": 494, + "pc": [ + 8678 + ] + }, + { + "teal": 2935, + "source": 495, + "pc": [ + 8679, + 8680, + 8681, + 8682, + 8683, + 8684, + 8685, + 8686, + 8687, + 8688, + 8689 + ] + }, + { + "teal": 2936, + "source": 495, + "pc": [ + 8690, + 8691, + 8692, + 8693, + 8694 + ] + }, + { + "teal": 2937, + "source": 495, + "pc": [ + 8695 + ] + }, + { + "teal": 2941, + "source": 496, + "pc": [ + 8696, + 8697, + 8698, + 8699, + 8700, + 8701, + 8702, + 8703, + 8704, + 8705, + 8706 + ] + }, + { + "teal": 2942, + "source": 496, + "pc": [ + 8707, + 8708, + 8709, + 8710, + 8711 + ] + }, + { + "teal": 2943, + "source": 496, + "pc": [ + 8712 + ] + }, + { + "teal": 2947, + "source": 497, + "pc": [ + 8713, + 8714, + 8715, + 8716, + 8717, + 8718, + 8719, + 8720, + 8721, + 8722, + 8723 + ] + }, + { + "teal": 2948, + "source": 497, + "pc": [ + 8724, + 8725, + 8726, + 8727, + 8728 + ] + }, + { + "teal": 2949, + "source": 497, + "pc": [ + 8729 + ] + }, + { + "teal": 2953, + "source": 498, + "pc": [ + 8730, + 8731, + 8732, + 8733, + 8734, + 8735, + 8736, + 8737, + 8738, + 8739, + 8740 + ] + }, + { + "teal": 2954, + "source": 498, + "pc": [ + 8741, + 8742, + 8743, + 8744, + 8745 + ] + }, + { + "teal": 2955, + "source": 498, + "pc": [ + 8746 + ] + }, + { + "teal": 2959, + "source": 499, + "pc": [ + 8747, + 8748, + 8749, + 8750, + 8751, + 8752, + 8753, + 8754, + 8755, + 8756, + 8757 + ] + }, + { + "teal": 2960, + "source": 499, + "pc": [ + 8758, + 8759, + 8760, + 8761, + 8762 + ] + }, + { + "teal": 2961, + "source": 499, + "pc": [ + 8763 + ] + }, + { + "teal": 2965, + "source": 500, + "pc": [ + 8764, + 8765, + 8766, + 8767, + 8768, + 8769, + 8770, + 8771, + 8772, + 8773, + 8774 + ] + }, + { + "teal": 2966, + "source": 500, + "pc": [ + 8775, + 8776, + 8777, + 8778, + 8779 + ] + }, + { + "teal": 2967, + "source": 500, + "pc": [ + 8780 + ] + }, + { + "teal": 2971, + "source": 501, + "pc": [ + 8781, + 8782, + 8783, + 8784, + 8785, + 8786, + 8787, + 8788, + 8789, + 8790, + 8791 + ] + }, + { + "teal": 2972, + "source": 501, + "pc": [ + 8792, + 8793, + 8794, + 8795, + 8796 + ] + }, + { + "teal": 2973, + "source": 501, + "pc": [ + 8797 + ] + }, + { + "teal": 2977, + "source": 502, + "pc": [ + 8798, + 8799, + 8800, + 8801, + 8802, + 8803, + 8804, + 8805, + 8806, + 8807, + 8808 + ] + }, + { + "teal": 2978, + "source": 502, + "pc": [ + 8809, + 8810, + 8811, + 8812, + 8813 + ] + }, + { + "teal": 2979, + "source": 502, + "pc": [ + 8814 + ] + }, + { + "teal": 2983, + "source": 503, + "pc": [ + 8815, + 8816, + 8817, + 8818, + 8819, + 8820, + 8821, + 8822, + 8823, + 8824, + 8825 + ] + }, + { + "teal": 2984, + "source": 503, + "pc": [ + 8826, + 8827, + 8828, + 8829, + 8830 + ] + }, + { + "teal": 2985, + "source": 503, + "pc": [ + 8831 + ] + }, + { + "teal": 2989, + "source": 504, + "pc": [ + 8832, + 8833, + 8834, + 8835, + 8836, + 8837, + 8838, + 8839, + 8840, + 8841, + 8842 + ] + }, + { + "teal": 2990, + "source": 504, + "pc": [ + 8843, + 8844, + 8845, + 8846, + 8847 + ] + }, + { + "teal": 2991, + "source": 504, + "pc": [ + 8848 + ] + }, + { + "teal": 2995, + "source": 505, + "pc": [ + 8849, + 8850, + 8851, + 8852, + 8853, + 8854, + 8855, + 8856, + 8857, + 8858, + 8859 + ] + }, + { + "teal": 2996, + "source": 505, + "pc": [ + 8860, + 8861, + 8862, + 8863, + 8864 + ] + }, + { + "teal": 2997, + "source": 505, + "pc": [ + 8865 + ] + }, + { + "teal": 3001, + "source": 506, + "pc": [ + 8866, + 8867, + 8868, + 8869, + 8870, + 8871, + 8872, + 8873, + 8874, + 8875, + 8876 + ] + }, + { + "teal": 3002, + "source": 506, + "pc": [ + 8877, + 8878, + 8879, + 8880, + 8881 + ] + }, + { + "teal": 3003, + "source": 506, + "pc": [ + 8882 + ] + }, + { + "teal": 3007, + "source": 507, + "pc": [ + 8883, + 8884, + 8885, + 8886, + 8887, + 8888, + 8889, + 8890, + 8891, + 8892, + 8893 + ] + }, + { + "teal": 3008, + "source": 507, + "pc": [ + 8894, + 8895, + 8896, + 8897, + 8898 + ] + }, + { + "teal": 3009, + "source": 507, + "pc": [ + 8899 + ] + }, + { + "teal": 3013, + "source": 508, + "pc": [ + 8900, + 8901, + 8902, + 8903, + 8904, + 8905, + 8906, + 8907, + 8908, + 8909, + 8910 + ] + }, + { + "teal": 3014, + "source": 508, + "pc": [ + 8911, + 8912, + 8913, + 8914, + 8915 + ] + }, + { + "teal": 3015, + "source": 508, + "pc": [ + 8916 + ] + }, + { + "teal": 3019, + "source": 509, + "pc": [ + 8917, + 8918, + 8919, + 8920, + 8921, + 8922, + 8923, + 8924, + 8925, + 8926, + 8927 + ] + }, + { + "teal": 3020, + "source": 509, + "pc": [ + 8928, + 8929, + 8930, + 8931, + 8932 + ] + }, + { + "teal": 3021, + "source": 509, + "pc": [ + 8933 + ] + }, + { + "teal": 3025, + "source": 510, + "pc": [ + 8934, + 8935, + 8936, + 8937, + 8938, + 8939, + 8940, + 8941, + 8942, + 8943, + 8944 + ] + }, + { + "teal": 3026, + "source": 510, + "pc": [ + 8945, + 8946, + 8947, + 8948, + 8949 + ] + }, + { + "teal": 3027, + "source": 510, + "pc": [ + 8950 + ] + }, + { + "teal": 3031, + "source": 511, + "pc": [ + 8951, + 8952, + 8953, + 8954, + 8955, + 8956, + 8957, + 8958, + 8959, + 8960, + 8961 + ] + }, + { + "teal": 3032, + "source": 511, + "pc": [ + 8962, + 8963, + 8964, + 8965, + 8966 + ] + }, + { + "teal": 3033, + "source": 511, + "pc": [ + 8967 + ] + }, + { + "teal": 3037, + "source": 512, + "pc": [ + 8968, + 8969, + 8970, + 8971, + 8972, + 8973, + 8974, + 8975, + 8976, + 8977, + 8978 + ] + }, + { + "teal": 3038, + "source": 512, + "pc": [ + 8979, + 8980, + 8981, + 8982, + 8983 + ] + }, + { + "teal": 3039, + "source": 512, + "pc": [ + 8984 + ] + }, + { + "teal": 3043, + "source": 513, + "pc": [ + 8985, + 8986, + 8987, + 8988, + 8989, + 8990, + 8991, + 8992, + 8993, + 8994, + 8995 + ] + }, + { + "teal": 3044, + "source": 513, + "pc": [ + 8996, + 8997, + 8998, + 8999, + 9000 + ] + }, + { + "teal": 3045, + "source": 513, + "pc": [ + 9001 + ] + }, + { + "teal": 3049, + "source": 514, + "pc": [ + 9002, + 9003, + 9004, + 9005, + 9006, + 9007, + 9008, + 9009, + 9010, + 9011, + 9012 + ] + }, + { + "teal": 3050, + "source": 514, + "pc": [ + 9013, + 9014, + 9015, + 9016, + 9017 + ] + }, + { + "teal": 3051, + "source": 514, + "pc": [ + 9018 + ] + }, + { + "teal": 3055, + "source": 515, + "pc": [ + 9019, + 9020, + 9021, + 9022, + 9023, + 9024, + 9025, + 9026, + 9027, + 9028, + 9029 + ] + }, + { + "teal": 3056, + "source": 515, + "pc": [ + 9030, + 9031, + 9032, + 9033, + 9034 + ] + }, + { + "teal": 3057, + "source": 515, + "pc": [ + 9035 + ] + }, + { + "teal": 3061, + "source": 516, + "pc": [ + 9036, + 9037, + 9038, + 9039, + 9040, + 9041, + 9042, + 9043, + 9044, + 9045, + 9046 + ] + }, + { + "teal": 3062, + "source": 516, + "pc": [ + 9047, + 9048, + 9049, + 9050, + 9051 + ] + }, + { + "teal": 3063, + "source": 516, + "pc": [ + 9052 + ] + }, + { + "teal": 3067, + "source": 517, + "pc": [ + 9053, + 9054, + 9055, + 9056, + 9057, + 9058, + 9059, + 9060, + 9061, + 9062, + 9063 + ] + }, + { + "teal": 3068, + "source": 517, + "pc": [ + 9064, + 9065, + 9066, + 9067, + 9068 + ] + }, + { + "teal": 3069, + "source": 517, + "pc": [ + 9069 + ] + }, + { + "teal": 3073, + "source": 518, + "pc": [ + 9070, + 9071, + 9072, + 9073, + 9074, + 9075, + 9076, + 9077, + 9078, + 9079, + 9080 + ] + }, + { + "teal": 3074, + "source": 518, + "pc": [ + 9081, + 9082, + 9083, + 9084, + 9085 + ] + }, + { + "teal": 3075, + "source": 518, + "pc": [ + 9086 + ] + }, + { + "teal": 3079, + "source": 519, + "pc": [ + 9087, + 9088, + 9089, + 9090, + 9091, + 9092, + 9093, + 9094, + 9095, + 9096, + 9097 + ] + }, + { + "teal": 3080, + "source": 519, + "pc": [ + 9098, + 9099, + 9100, + 9101, + 9102 + ] + }, + { + "teal": 3081, + "source": 519, + "pc": [ + 9103 + ] + }, + { + "teal": 3085, + "source": 520, + "pc": [ + 9104, + 9105, + 9106, + 9107, + 9108, + 9109, + 9110, + 9111, + 9112, + 9113, + 9114 + ] + }, + { + "teal": 3086, + "source": 520, + "pc": [ + 9115, + 9116, + 9117, + 9118, + 9119 + ] + }, + { + "teal": 3087, + "source": 520, + "pc": [ + 9120 + ] + }, + { + "teal": 3091, + "source": 521, + "pc": [ + 9121, + 9122, + 9123, + 9124, + 9125, + 9126, + 9127, + 9128, + 9129, + 9130, + 9131 + ] + }, + { + "teal": 3092, + "source": 521, + "pc": [ + 9132, + 9133, + 9134, + 9135, + 9136 + ] + }, + { + "teal": 3093, + "source": 521, + "pc": [ + 9137 + ] + }, + { + "teal": 3097, + "source": 522, + "pc": [ + 9138, + 9139, + 9140, + 9141, + 9142, + 9143, + 9144, + 9145, + 9146, + 9147, + 9148 + ] + }, + { + "teal": 3098, + "source": 522, + "pc": [ + 9149, + 9150, + 9151, + 9152, + 9153 + ] + }, + { + "teal": 3099, + "source": 522, + "pc": [ + 9154 + ] + }, + { + "teal": 3103, + "source": 523, + "pc": [ + 9155, + 9156, + 9157, + 9158, + 9159, + 9160, + 9161, + 9162, + 9163, + 9164, + 9165 + ] + }, + { + "teal": 3104, + "source": 523, + "pc": [ + 9166, + 9167, + 9168, + 9169, + 9170 + ] + }, + { + "teal": 3105, + "source": 523, + "pc": [ + 9171 + ] + }, + { + "teal": 3109, + "source": 524, + "pc": [ + 9172, + 9173, + 9174, + 9175, + 9176, + 9177, + 9178, + 9179, + 9180, + 9181, + 9182 + ] + }, + { + "teal": 3110, + "source": 524, + "pc": [ + 9183, + 9184, + 9185, + 9186, + 9187 + ] + }, + { + "teal": 3111, + "source": 524, + "pc": [ + 9188 + ] + }, + { + "teal": 3115, + "source": 525, + "pc": [ + 9189, + 9190, + 9191, + 9192, + 9193, + 9194, + 9195, + 9196, + 9197, + 9198, + 9199 + ] + }, + { + "teal": 3116, + "source": 525, + "pc": [ + 9200, + 9201, + 9202, + 9203, + 9204 + ] + }, + { + "teal": 3117, + "source": 525, + "pc": [ + 9205 + ] + }, + { + "teal": 3121, + "source": 526, + "pc": [ + 9206, + 9207, + 9208, + 9209, + 9210, + 9211, + 9212, + 9213, + 9214, + 9215, + 9216 + ] + }, + { + "teal": 3122, + "source": 526, + "pc": [ + 9217, + 9218, + 9219, + 9220, + 9221 + ] + }, + { + "teal": 3123, + "source": 526, + "pc": [ + 9222 + ] + }, + { + "teal": 3127, + "source": 527, + "pc": [ + 9223, + 9224, + 9225, + 9226, + 9227, + 9228, + 9229, + 9230, + 9231, + 9232, + 9233 + ] + }, + { + "teal": 3128, + "source": 527, + "pc": [ + 9234, + 9235, + 9236, + 9237, + 9238 + ] + }, + { + "teal": 3129, + "source": 527, + "pc": [ + 9239 + ] + }, + { + "teal": 3134, + "source": 529, + "pc": [ + 9240, + 9241, + 9242, + 9243, + 9244, + 9245, + 9246, + 9247, + 9248, + 9249, + 9250 + ] + }, + { + "teal": 3135, + "source": 530, + "pc": [ + 9251, + 9252, + 9253, + 9254, + 9255, + 9256, + 9257, + 9258, + 9259, + 9260, + 9261, + 9262, + 9263, + 9264, + 9265, + 9266, + 9267, + 9268, + 9269, + 9270, + 9271, + 9272, + 9273, + 9274, + 9275, + 9276, + 9277, + 9278, + 9279, + 9280, + 9281, + 9282, + 9283, + 9284, + 9285, + 9286, + 9287, + 9288, + 9289, + 9290, + 9291, + 9292, + 9293, + 9294, + 9295, + 9296, + 9297, + 9298, + 9299, + 9300, + 9301, + 9302, + 9303, + 9304, + 9305, + 9306, + 9307, + 9308, + 9309, + 9310, + 9311, + 9312, + 9313, + 9314, + 9315, + 9316, + 9317, + 9318, + 9319, + 9320, + 9321, + 9322, + 9323, + 9324, + 9325, + 9326, + 9327, + 9328, + 9329, + 9330, + 9331, + 9332, + 9333, + 9334, + 9335, + 9336, + 9337, + 9338, + 9339, + 9340, + 9341, + 9342, + 9343, + 9344, + 9345, + 9346, + 9347, + 9348, + 9349, + 9350, + 9351, + 9352, + 9353, + 9354, + 9355, + 9356, + 9357, + 9358, + 9359, + 9360, + 9361, + 9362, + 9363, + 9364, + 9365, + 9366, + 9367, + 9368, + 9369, + 9370, + 9371, + 9372, + 9373, + 9374, + 9375, + 9376, + 9377, + 9378, + 9379, + 9380, + 9381, + 9382, + 9383, + 9384, + 9385, + 9386, + 9387, + 9388, + 9389, + 9390, + 9391, + 9392, + 9393, + 9394, + 9395, + 9396, + 9397, + 9398, + 9399, + 9400, + 9401, + 9402 + ] + }, + { + "teal": 3136, + "source": 529, + "pc": [ + 9403 + ] + }, + { + "teal": 3140, + "source": 532, + "pc": [ + 9404, + 9405, + 9406 + ] + }, + { + "teal": 3141, + "source": 532, + "pc": [ + 9407, + 9408, + 9409, + 9410, + 9411 + ] + }, + { + "teal": 3142, + "source": 532, + "pc": [ + 9412 + ] + }, + { + "teal": 3143, + "source": 271, + "pc": [ + 9413 + ] + }, + { + "teal": 3146, + "source": 4, + "pc": [ + 9414, + 9415 + ] + }, + { + "teal": 3147, + "source": 4, + "pc": [ + 9416 + ] + }, + { + "teal": 3150, + "source": 4, + "pc": [ + 9417, + 9418, + 9419, + 9420, + 9421, + 9422 + ] + }, + { + "teal": 3151, + "source": 4, + "pc": [ + 9423, + 9424, + 9425 + ] + }, + { + "teal": 3152, + "source": 4, + "pc": [ + 9426, + 9427, + 9428, + 9429 + ] + }, + { + "teal": 3155, + "source": 4, + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 9430 + ] + }, + { + "teal": 3158, + "source": 4, + "pc": [ + 9431, + 9432, + 9433, + 9434, + 9435, + 9436 + ] + }, + { + "teal": 3159, + "source": 4, + "pc": [ + 9437, + 9438, + 9439, + 9440, + 9441, + 9442 + ] + }, + { + "teal": 3160, + "source": 4, + "pc": [ + 9443, + 9444, + 9445 + ] + }, + { + "teal": 3161, + "source": 4, + "pc": [ + 9446, + 9447, + 9448, + 9449, + 9450, + 9451 + ] + }, + { + "teal": 3164, + "source": 4, + "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "pc": [ + 9452 + ] + } + ], + "clear": [] + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyNTggMjU2IDI1NSAyNTQgMjUzIDI1MiAyNTEgMjUwIDI0OSAyNDggMjQ3IDI0NiAyNDUgMjQ0IDI0MyAyNDIgMjQxIDI0MCAyMzkgMjM4IDIzNyAyMzYgMjM1IDIzNCAyMzMgMjMyIDIzMSAyMzAgMjI5IDIyOCAyMjcgMjI2IDIyNSAyMjQgMjIzIDIyMiAyMjEgMjIwIDIxOSAyMTggMjE3IDIxNiAyMTUgMjE0IDIxMyAyMTIgMjExIDIxMCAyMDkgMjA4IDIwNyAyMDYgMjA1IDIwNCAyMDMgMjAyIDIwMSAyMDAgMTk5IDE5OCAxOTcgMTk2IDE5NSAxOTQgMTkzIDE5MiAxOTEgMTkwIDE4OSAxODggMTg3IDE4NiAxODUgMTg0IDE4MyAxODIgMTgxIDE4MCAxNzkgMTc4IDE3NyAxNzYgMTc1IDE3NCAxNzMgMTcyIDE3MSAxNzAgMTY5IDE2OCAxNjcgMTY2IDE2NSAxNjQgMTYzIDE2MiAxNjEgMTYwIDE1OSAxNTggMTU3IDE1NiAxNTUgMTU0IDE1MyAxNTIgMTUxIDE1MCAxNDkgMTQ4IDE0NyAxNDYgMTQ1IDE0NCAxNDMgMTQyIDE0MSAxNDAgMTM5IDEzOCAxMzcgMTM2IDEzNSAxMzQgMTMzIDEzMiAxMzEgMTMwIDEyOSAxMjggMTI3IDEyNiAxMjUgMTI0IDEyMyAxMjIgMTIxIDEyMCAxMTkgMTE4IDExNyAxMTYgMTE1IDExNCAxMTMgMTEyIDExMSAxMTAgMTA5IDEwOCAxMDcgMTA2IDEwNSAxMDQgMTAzIDEwMiAxMDEgMTAwIDk5IDk4IDk3IDk2IDk1IDk0IDkzIDkyIDkxIDkwIDg5IDg4IDg3IDg2IDg1IDg0IDgzIDgyIDgxIDgwIDc5IDc4IDc3IDc2IDc1IDc0IDczIDcyIDcxIDcwIDY5IDY4IDY3IDY2IDY1IDY0IDYzIDYyIDYxIDYwIDU5IDU4IDU3IDU2IDU1IDU0IDUzIDUyIDUxIDUwIDQ5IDQ4IDQ3IDQ2IDQ1IDQ0IDQzIDQyIDQxIDQwIDM5IDM4IDM3IDM2IDM1IDM0IDMzIDMyIDMxIDMwIDI5IDI4IDI3IDI2IDI1IDI0IDIzIDIyIDIxIDIwIDE5IDE4IDE3IDE2IDE1IDE0IDEzIDEyIDExIDEwIDkgOCA3IDYgNSA0IDMKYnl0ZWNibG9jayAweDU0Njg2OTczMjA2OTczMjA2MTIwNjY2MTY5NzI2Yzc5MjA2YzZmNmU2NzIwNjI3OTc0NjU3MzZjNjk2MzY1MjA3NDY4NjE3NDIwNzM2ODZmNzU2YzY0MjA2MjY1MjA3MDc1NzQyMDY5NmUyMDc0Njg2NTIwNjM2ZjZlNzM2MTZlNzQyMDYyNmM2ZjYzNmIyMDYyNjU2MzYxNzU3MzY1MjA2OTc0MjA2OTczMjA3MzZmMjA2YzZmNmU2NzJjMjA2NDY1NzM3MDY5NzQ2NTIwNzQ2ODY1MjA2NjYxNjM3NDIwNzQ2ODYxNzQyMDY5NzQyMDYzNmY2ZDY1NzMyMDYxNjY3NDY1NzIyMDc0Njg2NTIwNmY3NDY4NjU3MjIwNzM3NDcyNjk2ZTY3NzMgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgMHg2OTZlNzQ1NjYxNmM3NTY1IDB4MTUxZjdjNzUgMHhiODQ0N2IzNiAweGQxNGU2MWRiIDB4YzQ4YTU1YTggMHgzMTMwMzAgMHgzMTMwMzEgMHgzMTMwMzIgMHgzMTMwMzMgMHgzMTMwMzQgMHgzMTMwMzUgMHgzMTMwMzYgMHgzMTMwMzcgMHgzMTMwMzggMHgzMTMwMzkgMHgzMTMxMzAgMHgzMTMxMzEgMHgzMTMxMzIgMHgzMTMxMzMgMHgzMTMxMzQgMHgzMTMxMzUgMHgzMTMxMzYgMHgzMTMxMzcgMHgzMTMxMzggMHgzMTMxMzkgMHgzMTMyMzAgMHgzMTMyMzEgMHgzMTMyMzIgMHgzMTMyMzMgMHgzMTMyMzQgMHgzMTMyMzUgMHgzMTMyMzYgMHgzMTMyMzcgMHgzMTMyMzggMHgzMTMyMzkgMHgzMTMzMzAgMHgzMTMzMzEgMHgzMTMzMzIgMHgzMTMzMzMgMHgzMTMzMzQgMHgzMTMzMzUgMHgzMTMzMzYgMHgzMTMzMzcgMHgzMTMzMzggMHgzMTMzMzkgMHgzMTM0MzAgMHgzMTM0MzEgMHgzMTM0MzIgMHgzMTM0MzMgMHgzMTM0MzQgMHgzMTM0MzUgMHgzMTM0MzYgMHgzMTM0MzcgMHgzMTM0MzggMHgzMTM0MzkgMHgzMTM1MzAgMHgzMTM1MzEgMHgzMTM1MzIgMHgzMTM1MzMgMHgzMTM1MzQgMHgzMTM1MzUgMHgzMTM1MzYgMHgzMTM1MzcgMHgzMTM1MzggMHgzMTM1MzkgMHgzMTM2MzAgMHgzMTM2MzEgMHgzMTM2MzIgMHgzMTM2MzMgMHgzMTM2MzQgMHgzMTM2MzUgMHgzMTM2MzYgMHgzMTM2MzcgMHgzMTM2MzggMHgzMTM2MzkgMHgzMTM3MzAgMHgzMTM3MzEgMHgzMTM3MzIgMHgzMTM3MzMgMHgzMTM3MzQgMHgzMTM3MzUgMHgzMTM3MzYgMHgzMTM3MzcgMHgzMTM3MzggMHgzMTM3MzkgMHgzMTM4MzAgMHgzMTM4MzEgMHgzMTM4MzIgMHgzMTM4MzMgMHgzMTM4MzQgMHgzMTM4MzUgMHgzMTM4MzYgMHgzMTM4MzcgMHgzMTM4MzggMHgzMTM4MzkgMHgzMTM5MzAgMHgzMTM5MzEgMHgzMTM5MzIgMHgzMTM5MzMgMHgzMTM5MzQgMHgzMTM5MzUgMHgzMTM5MzYgMHgzMTM5MzcgMHgzMTM5MzggMHgzMTM5MzkgMHgzMjMwMzAgMHgzMjMwMzEgMHgzMjMwMzIgMHgzMjMwMzMgMHgzMjMwMzQgMHgzMjMwMzUgMHgzMjMwMzYgMHgzMjMwMzcgMHgzMjMwMzggMHgzMjMwMzkgMHgzMjMxMzAgMHgzMjMxMzEgMHgzMjMxMzIgMHgzMjMxMzMgMHgzMjMxMzQgMHgzMjMxMzUgMHgzMjMxMzYgMHgzMjMxMzcgMHgzMjMxMzggMHgzMjMxMzkgMHgzMjMyMzAgMHgzMjMyMzEgMHgzMjMyMzIgMHgzMjMyMzMgMHgzMjMyMzQgMHgzMjMyMzUgMHgzMjMyMzYgMHgzMjMyMzcgMHgzMjMyMzggMHgzMjMyMzkgMHgzMjMzMzAgMHgzMjMzMzEgMHgzMjMzMzIgMHgzMjMzMzMgMHgzMjMzMzQgMHgzMjMzMzUgMHgzMjMzMzYgMHgzMjMzMzcgMHgzMjMzMzggMHgzMjMzMzkgMHgzMjM0MzAgMHgzMjM0MzEgMHgzMjM0MzIgMHgzMjM0MzMgMHgzMjM0MzQgMHgzMjM0MzUgMHgzMjM0MzYgMHgzMjM0MzcgMHgzMjM0MzggMHgzMjM0MzkgMHgzMjM1MzAgMHgzMjM1MzEgMHgzMjM1MzIgMHgzMjM1MzMgMHgzMjM1MzQgMHgzMjM1MzUgMHgzMjM1MzYgMHgzMTMwIDB4MzEzMSAweDMxMzIgMHgzMTMzIDB4MzEzNCAweDMxMzUgMHgzMTM2IDB4MzEzNyAweDMxMzggMHgzMTM5IDB4MzIzMCAweDMyMzEgMHgzMjMyIDB4MzIzMyAweDMyMzQgMHgzMjM1IDB4MzIzNiAweDMyMzcgMHgzMjM4IDB4MzIzOSAweDMzMzAgMHgzMzMxIDB4MzMzMiAweDMzMzMgMHgzMzM0IDB4MzMzNSAweDMzMzYgMHgzMzM3IDB4MzMzOCAweDMzMzkgMHgzNDMwIDB4MzQzMSAweDM0MzIgMHgzNDMzIDB4MzQzNCAweDM0MzUgMHgzNDM2IDB4MzQzNyAweDM0MzggMHgzNDM5IDB4MzUzMCAweDM1MzEgMHgzNTMyIDB4MzUzMyAweDM1MzQgMHgzNTM1IDB4MzUzNiAweDM1MzcgMHgzNTM4IDB4MzUzOSAweDM2MzAgMHgzNjMxIDB4MzYzMiAweDM2MzMgMHgzNjM0IDB4MzYzNSAweDM2MzYgMHgzNjM3IDB4MzYzOCAweDM2MzkgMHgzNzMwIDB4MzczMSAweDM3MzIgMHgzNzMzIDB4MzczNCAweDM3MzUgMHgzNzM2IDB4MzczNyAweDM3MzggMHgzNzM5IDB4MzgzMCAweDM4MzEgMHgzODMyIDB4MzgzMyAweDM4MzQgMHgzODM1IDB4MzgzNiAweDM4MzcgMHgzODM4IDB4MzgzOSAweDM5MzAgMHgzOTMxIDB4MzkzMiAweDM5MzMgMHgzOTM0IDB4MzkzNSAweDM5MzYgMHgzOTM3IDB4MzkzOCAweDM5MzkgIjI1NyIKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTAyLjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGxhcmdlSW50Y2Jsb2NrKCl1aW50NjQKKmFiaV9yb3V0ZV9sYXJnZUludGNibG9jazoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBsYXJnZUludGNibG9jaygpdWludDY0CgljYWxsc3ViIGxhcmdlSW50Y2Jsb2NrCglpdG9iCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGxhcmdlSW50Y2Jsb2NrKCk6IHVpbnQ2NApsYXJnZUludGNibG9jazoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglwdXNoaW50IDIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMgoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDMKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgNAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjE0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxNQoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDYKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgNwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjE3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxOAoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDkKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDEwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDExCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDEyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxMwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDEzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxNwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAxOQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDE5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyMwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDIzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyNwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAyOQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDI5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzMwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDMzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzNwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzOAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSAzOQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDM5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA0OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDQ5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDUzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA1OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDU5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NjkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDYzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA2OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDY5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NzkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDcwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDcxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDcyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA3OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDc5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6ODkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTAKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTEKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDgzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTMKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTQKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTYKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4NwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTcKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4OAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA4OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDg5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6OTkKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5MAoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDkwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTAwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOTEKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5MQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwMQoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDkyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgOTIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDIKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5MwoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDkzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTAzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOTQKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwNAoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDk1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgOTUKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDUKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5NgoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDk2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gOTcKCWJ5dGUgMHg2OTZlNzQ1NjYxNmM3NTY1IC8vICJpbnRWYWx1ZSIKCWludCA5NwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwNwoJLy8gdGhpcy5pbnRWYWx1ZS52YWx1ZSA9IDk4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgOTgKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDgKCS8vIHRoaXMuaW50VmFsdWUudmFsdWUgPSA5OQoJYnl0ZSAweDY5NmU3NDU2NjE2Yzc1NjUgLy8gImludFZhbHVlIgoJaW50IDk5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTExCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTAzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTA5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTA5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTEwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTEwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTExCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTExCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTEyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTEyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTEzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTEzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTE5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTE5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTIzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTIzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTI5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTI5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTMzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTMzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTM5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTM5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTQ5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTQ5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTUzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTUzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTU5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTU5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTYzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTYzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTczCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTY5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTY5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTcwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTcwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTcxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTcxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTcyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTcyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTczCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTczCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTc5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTc5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTgzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTgzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTg5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTg5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTkzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTkzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMTk5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMTk5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjExCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjAzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjAzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjA5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjA5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjEwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjEwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjExCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjExCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjEyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjEyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjEzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjEzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjE5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjE5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjIzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjIzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjI5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjI5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjMzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjMzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjM5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjM5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU2CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ3CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ3CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU3CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ4CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ4CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU4CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjQ5CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjQ5CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU5CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUwCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYwCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUxCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYxCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUyCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUyCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYyCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjUzCglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjUzCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYzCgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjU0CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjU0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY0CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjU1CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjU1CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY1CgkvLyB0aGlzLmludFZhbHVlLnZhbHVlID0gMjU2CglieXRlIDB4Njk2ZTc0NTY2MTZjNzU2NSAvLyAiaW50VmFsdWUiCglpbnQgMjU2CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY4CgkvLyByZXR1cm4gYSArIGI7CglpbnQgMjU4CglyZXRzdWIKCi8vIGxhcmdlQnl0ZWNibG9jaygpYnl0ZVtdCiphYmlfcm91dGVfbGFyZ2VCeXRlY2Jsb2NrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGxhcmdlQnl0ZWNibG9jaygpYnl0ZVtdCgljYWxsc3ViIGxhcmdlQnl0ZWNibG9jawoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gbGFyZ2VCeXRlY2Jsb2NrKCk6IGJ5dGVzCmxhcmdlQnl0ZWNibG9jazoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzIgLy8gIjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzMgLy8gIjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzQgLy8gIjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzUgLy8gIjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzYgLy8gIjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzcgLy8gIjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjc5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzggLy8gIjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJcHVzaGJ5dGVzIDB4MzkgLy8gIjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTMwIC8vICIxMCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzExJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMxMzEgLy8gIjExIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMiAvLyAiMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTMzIC8vICIxMyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMxMzQgLy8gIjE0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNSAvLyAiMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTM2IC8vICIxNiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyODgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzE3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMxMzcgLy8gIjE3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI4OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOCAvLyAiMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMTM5IC8vICIxOSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzAgLy8gIjIwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMSAvLyAiMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMjMyIC8vICIyMiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzIzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzMgLy8gIjIzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNCAvLyAiMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMjM1IC8vICIyNSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzYgLy8gIjI2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjI5OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNyAvLyAiMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mjk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyOCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMjM4IC8vICIyOCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzI5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMyMzkgLy8gIjI5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzMCAvLyAiMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczMScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMzMxIC8vICIzMSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzMyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMzMzIgLy8gIjMyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzMyAvLyAiMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczNCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMzM0IC8vICIzNCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMzMzUgLy8gIjM1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMwNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzNiAvLyAiMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICczNycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzMzM3IC8vICIzNyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMDkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzM4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDMzMzggLy8gIjM4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxMAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzMzOSAvLyAiMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDMwIC8vICI0MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM0MzEgLy8gIjQxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxMwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzQzMiAvLyAiNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDMzIC8vICI0MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM0MzQgLy8gIjQ0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxNgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzQzNSAvLyAiNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDM2IC8vICI0NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMTgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzQ3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM0MzcgLy8gIjQ3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMxOQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzQzOCAvLyAiNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc0OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNDM5IC8vICI0OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzAgLy8gIjUwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyMgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzUzMSAvLyAiNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNTMyIC8vICI1MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzUzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzMgLy8gIjUzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyNQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzUzNCAvLyAiNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNTM1IC8vICI1NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMjcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzYgLy8gIjU2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMyOAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzUzNyAvLyAiNTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc1OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNTM4IC8vICI1OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzU5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM1MzkgLy8gIjU5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzMQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzMCAvLyAiNjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNjMxIC8vICI2MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzYyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM2MzIgLy8gIjYyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzNAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzMyAvLyAiNjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNjM0IC8vICI2NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM2MzUgLy8gIjY1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjMzNwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzNiAvLyAiNjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzM4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc2NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNjM3IC8vICI2NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMzkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzY4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM2MzggLy8gIjY4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzYzOSAvLyAiNjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3MCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzMwIC8vICI3MCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDIKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzcxJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM3MzEgLy8gIjcxIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0MwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzczMiAvLyAiNzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3MycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzMzIC8vICI3MyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDUKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc0JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM3MzQgLy8gIjc0IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0NgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzczNSAvLyAiNzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzQ3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3NicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzM2IC8vICI3NiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNDgKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzc3JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM3MzcgLy8gIjc3IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM0OQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnNzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzczOCAvLyAiNzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc3OScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzNzM5IC8vICI3OSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTEKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgwJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzAgLy8gIjgwIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1MgoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzgzMSAvLyAiODEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzUzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4MicKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzODMyIC8vICI4MiIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTQKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzgzJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzMgLy8gIjgzIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1NQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzgzNCAvLyAiODQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4NScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzODM1IC8vICI4NSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNTcKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg2JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzYgLy8gIjg2IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM1OAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnODcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzgzNyAvLyAiODciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzU5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc4OCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzODM4IC8vICI4OCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjAKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzg5JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM4MzkgLy8gIjg5IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2MQoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzMCAvLyAiOTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzYyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5MScKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzOTMxIC8vICI5MSIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjMKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzkyJwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM5MzIgLy8gIjkyIgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2NAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzMyAvLyAiOTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5NCcKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzOTM0IC8vICI5NCIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjYKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk1JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM5MzUgLy8gIjk1IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM2NwoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzNiAvLyAiOTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzY4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICc5NycKCWJ5dGUgMHg2Mjc5NzQ2NTU2NjE2Yzc1NjUgLy8gImJ5dGVWYWx1ZSIKCWJ5dGUgMHgzOTM3IC8vICI5NyIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNjkKCS8vIHRoaXMuYnl0ZVZhbHVlLnZhbHVlID0gJzk4JwoJYnl0ZSAweDYyNzk3NDY1NTY2MTZjNzU2NSAvLyAiYnl0ZVZhbHVlIgoJYnl0ZSAweDM5MzggLy8gIjk4IgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjM3MAoJLy8gdGhpcy5ieXRlVmFsdWUudmFsdWUgPSAnOTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzkzOSAvLyAiOTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMwIC8vICIxMDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzcyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMxIC8vICIxMDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMyIC8vICIxMDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDMzIC8vICIxMDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM0IC8vICIxMDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM1IC8vICIxMDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM2IC8vICIxMDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM3IC8vICIxMDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzc5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM4IC8vICIxMDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMDM5IC8vICIxMDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMwIC8vICIxMTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMxIC8vICIxMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzgzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMyIC8vICIxMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTMzIC8vICIxMTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM0IC8vICIxMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM1IC8vICIxMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM2IC8vICIxMTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM3IC8vICIxMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM4IC8vICIxMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMTM5IC8vICIxMTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMwIC8vICIxMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMxIC8vICIxMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MzkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMyIC8vICIxMjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjMzIC8vICIxMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM0IC8vICIxMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM1IC8vICIxMjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM2IC8vICIxMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM3IC8vICIxMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6Mzk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM4IC8vICIxMjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMjM5IC8vICIxMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMwIC8vICIxMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMxIC8vICIxMzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDAzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMyIC8vICIxMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzMzIC8vICIxMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM0IC8vICIxMzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM1IC8vICIxMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM2IC8vICIxMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM3IC8vICIxMzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDA5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM4IC8vICIxMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzMzM5IC8vICIxMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMwIC8vICIxNDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMxIC8vICIxNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMyIC8vICIxNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDMzIC8vICIxNDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM0IC8vICIxNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM1IC8vICIxNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM2IC8vICIxNDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM3IC8vICIxNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM4IC8vICIxNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNDM5IC8vICIxNDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMwIC8vICIxNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMxIC8vICIxNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMyIC8vICIxNTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTMzIC8vICIxNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM0IC8vICIxNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM1IC8vICIxNTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM2IC8vICIxNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM3IC8vICIxNTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM4IC8vICIxNTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNTM5IC8vICIxNTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMwIC8vICIxNjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMxIC8vICIxNjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDMzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMyIC8vICIxNjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjMzIC8vICIxNjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM0IC8vICIxNjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM1IC8vICIxNjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM2IC8vICIxNjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM3IC8vICIxNjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDM5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM4IC8vICIxNjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNjM5IC8vICIxNjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMwIC8vICIxNzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMxIC8vICIxNzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMyIC8vICIxNzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzMzIC8vICIxNzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM0IC8vICIxNzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM1IC8vICIxNzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM2IC8vICIxNzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM3IC8vICIxNzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDQ5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM4IC8vICIxNzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxNzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzNzM5IC8vICIxNzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMwIC8vICIxODAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMxIC8vICIxODEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDUzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMyIC8vICIxODIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODMzIC8vICIxODMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM0IC8vICIxODQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM1IC8vICIxODUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM2IC8vICIxODYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM3IC8vICIxODciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDU5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM4IC8vICIxODgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxODknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzODM5IC8vICIxODkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMwIC8vICIxOTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMxIC8vICIxOTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDYzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMyIC8vICIxOTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTMzIC8vICIxOTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM0IC8vICIxOTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM1IC8vICIxOTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM2IC8vICIxOTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM3IC8vICIxOTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDY5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM4IC8vICIxOTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcxOTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzEzOTM5IC8vICIxOTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMwIC8vICIyMDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDcyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMxIC8vICIyMDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDczCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMyIC8vICIyMDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDMzIC8vICIyMDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM0IC8vICIyMDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM1IC8vICIyMDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM2IC8vICIyMDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM3IC8vICIyMDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDc5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM4IC8vICIyMDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMDM5IC8vICIyMDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMwIC8vICIyMTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMxIC8vICIyMTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDgzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMyIC8vICIyMTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTMzIC8vICIyMTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM0IC8vICIyMTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM1IC8vICIyMTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM2IC8vICIyMTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM3IC8vICIyMTciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDg5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM4IC8vICIyMTgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMTknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMTM5IC8vICIyMTkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMwIC8vICIyMjAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMxIC8vICIyMjEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDkzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMyIC8vICIyMjIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjMzIC8vICIyMjMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM0IC8vICIyMjQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM1IC8vICIyMjUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM2IC8vICIyMjYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM3IC8vICIyMjciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NDk5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM4IC8vICIyMjgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMjknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMjM5IC8vICIyMjkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMwIC8vICIyMzAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMxIC8vICIyMzEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTAzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMyIC8vICIyMzIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzMzIC8vICIyMzMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM0IC8vICIyMzQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM1IC8vICIyMzUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM2IC8vICIyMzYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM3IC8vICIyMzciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTA5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM4IC8vICIyMzgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyMzknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzMzM5IC8vICIyMzkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTExCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMwIC8vICIyNDAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMxIC8vICIyNDEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTEzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMyIC8vICIyNDIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDMzIC8vICIyNDMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM0IC8vICIyNDQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM1IC8vICIyNDUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM2IC8vICIyNDYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE4CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDcnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM3IC8vICIyNDciCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTE5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDgnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM4IC8vICIyNDgiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIwCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNDknCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNDM5IC8vICIyNDkiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIxCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTAnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMwIC8vICIyNTAiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIyCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTEnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMxIC8vICIyNTEiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTIzCgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTInCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMyIC8vICIyNTIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI0CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTMnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTMzIC8vICIyNTMiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI1CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTQnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTM0IC8vICIyNTQiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI2CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTUnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTM1IC8vICIyNTUiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI3CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9ICcyNTYnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4MzIzNTM2IC8vICIyNTYiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTI5CgkvLyB0aGlzLmJ5dGVWYWx1ZS52YWx1ZSA9CgkvLyAgICAgICAnVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nLCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgaXQgY29tZXMgYWZ0ZXIgdGhlIG90aGVyIHN0cmluZ3MnCglieXRlIDB4NjI3OTc0NjU1NjYxNmM3NTY1IC8vICJieXRlVmFsdWUiCglieXRlIDB4NTQ2ODY5NzMyMDY5NzMyMDYxMjA2NjYxNjk3MjZjNzkyMDZjNmY2ZTY3MjA2Mjc5NzQ2NTczNmM2OTYzNjUyMDc0Njg2MTc0MjA3MzY4NmY3NTZjNjQyMDYyNjUyMDcwNzU3NDIwNjk2ZTIwNzQ2ODY1MjA2MzZmNmU3MzYxNmU3NDIwNjI2YzZmNjM2YjIwNjI2NTYzNjE3NTczNjUyMDY5NzQyMDY5NzMyMDczNmYyMDZjNmY2ZTY3MmMyMDY0NjU3MzcwNjk3NDY1MjA3NDY4NjUyMDY2NjE2Mzc0MjA3NDY4NjE3NDIwNjk3NDIwNjM2ZjZkNjU3MzIwNjE2Njc0NjU3MjIwNzQ2ODY1MjA2Zjc0Njg2NTcyMjA3Mzc0NzI2OTZlNjc3MyAvLyAiVGhpcyBpcyBhIGZhaXJseSBsb25nIGJ5dGVzbGljZSB0aGF0IHNob3VsZCBiZSBwdXQgaW4gdGhlIGNvbnNhbnQgYmxvY2sgYmVjYXVzZSBpdCBpcyBzbyBsb25nLCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgaXQgY29tZXMgYWZ0ZXIgdGhlIG90aGVyIHN0cmluZ3MiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6NTMyCgkvLyByZXR1cm4gYSArIGI7CglwdXNoYnl0ZXMgIjEiCglieXRlICIyNTciCgljb25jYXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglieXRlIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCWJ5dGUgMHhkMTRlNjFkYiAvLyBtZXRob2QgImxhcmdlSW50Y2Jsb2NrKCl1aW50NjQiCglieXRlIDB4YzQ4YTU1YTggLy8gbWV0aG9kICJsYXJnZUJ5dGVjYmxvY2soKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfbGFyZ2VJbnRjYmxvY2sgKmFiaV9yb3V0ZV9sYXJnZUJ5dGVjYmxvY2sKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "byteCode": { + "approval": "CiD/AYICgAL/Af4B/QH8AfsB+gH5AfgB9wH2AfUB9AHzAfIB8QHwAe8B7gHtAewB6wHqAekB6AHnAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAdEB0AHPAc4BzQHMAcsBygHJAcgBxwHGAcUBxAHDAcIBwQHAAb8BvgG9AbwBuwG6AbkBuAG3AbYBtQG0AbMBsgGxAbABrwGuAa0BrAGrAaoBqQGoAacBpgGlAaQBowGiAaEBoAGfAZ4BnQGcAZsBmgGZAZgBlwGWAZUBlAGTAZIBkQGQAY8BjgGNAYwBiwGKAYkBiAGHAYYBhQGEAYMBggGBAYABf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMm/wGVAVRoaXMgaXMgYSBmYWlybHkgbG9uZyBieXRlc2xpY2UgdGhhdCBzaG91bGQgYmUgcHV0IGluIHRoZSBjb25zYW50IGJsb2NrIGJlY2F1c2UgaXQgaXMgc28gbG9uZywgZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IGl0IGNvbWVzIGFmdGVyIHRoZSBvdGhlciBzdHJpbmdzCWJ5dGVWYWx1ZQhpbnRWYWx1ZQQVH3x1BLhEezYE0U5h2wTEilWoAzEwMAMxMDEDMTAyAzEwMwMxMDQDMTA1AzEwNgMxMDcDMTA4AzEwOQMxMTADMTExAzExMgMxMTMDMTE0AzExNQMxMTYDMTE3AzExOAMxMTkDMTIwAzEyMQMxMjIDMTIzAzEyNAMxMjUDMTI2AzEyNwMxMjgDMTI5AzEzMAMxMzEDMTMyAzEzMwMxMzQDMTM1AzEzNgMxMzcDMTM4AzEzOQMxNDADMTQxAzE0MgMxNDMDMTQ0AzE0NQMxNDYDMTQ3AzE0OAMxNDkDMTUwAzE1MQMxNTIDMTUzAzE1NAMxNTUDMTU2AzE1NwMxNTgDMTU5AzE2MAMxNjEDMTYyAzE2MwMxNjQDMTY1AzE2NgMxNjcDMTY4AzE2OQMxNzADMTcxAzE3MgMxNzMDMTc0AzE3NQMxNzYDMTc3AzE3OAMxNzkDMTgwAzE4MQMxODIDMTgzAzE4NAMxODUDMTg2AzE4NwMxODgDMTg5AzE5MAMxOTEDMTkyAzE5MwMxOTQDMTk1AzE5NgMxOTcDMTk4AzE5OQMyMDADMjAxAzIwMgMyMDMDMjA0AzIwNQMyMDYDMjA3AzIwOAMyMDkDMjEwAzIxMQMyMTIDMjEzAzIxNAMyMTUDMjE2AzIxNwMyMTgDMjE5AzIyMAMyMjEDMjIyAzIyMwMyMjQDMjI1AzIyNgMyMjcDMjI4AzIyOQMyMzADMjMxAzIzMgMyMzMDMjM0AzIzNQMyMzYDMjM3AzIzOAMyMzkDMjQwAzI0MQMyNDIDMjQzAzI0NAMyNDUDMjQ2AzI0NwMyNDgDMjQ5AzI1MAMyNTEDMjUyAzI1MwMyNTQDMjU1AzI1NgIxMAIxMQIxMgIxMwIxNAIxNQIxNgIxNwIxOAIxOQIyMAIyMQIyMgIyMwIyNAIyNQIyNgIyNwIyOAIyOQIzMAIzMQIzMgIzMwIzNAIzNQIzNgIzNwIzOAIzOQI0MAI0MQI0MgI0MwI0NAI0NQI0NgI0NwI0OAI0OQI1MAI1MQI1MgI1MwI1NAI1NQI1NgI1NwI1OAI1OQI2MAI2MQI2MgI2MwI2NAI2NQI2NgI2NwI2OAI2OQI3MAI3MQI3MgI3MwI3NAI3NQI3NgI3NwI3OAI3OQI4MAI4MQI4MgI4MwI4NAI4NQI4NgI4NwI4OAI4OQI5MAI5MQI5MgI5MwI5NAI5NQI5NgI5NwI5OAI5OQMyNTcxGBSBBgsxGQiNDB7oAAAAAAAAAAAAAB7aAAAAAAAAAAAAAACABBUffHWIAAYWULCBAUOKAAGACGludFZhbHVlgQJngAhpbnRWYWx1ZYEDZ4AIaW50VmFsdWWBBGeACGludFZhbHVlgQVngAhpbnRWYWx1ZYEGZ4AIaW50VmFsdWWBB2eACGludFZhbHVlgQhngAhpbnRWYWx1ZYEJZ4AIaW50VmFsdWWBCmeACGludFZhbHVlgQtngAhpbnRWYWx1ZYEMZ4AIaW50VmFsdWWBDWeACGludFZhbHVlgQ5ngAhpbnRWYWx1ZYEPZ4AIaW50VmFsdWWBEGeACGludFZhbHVlgRFngAhpbnRWYWx1ZYESZ4AIaW50VmFsdWWBE2eACGludFZhbHVlgRRngAhpbnRWYWx1ZYEVZ4AIaW50VmFsdWWBFmeACGludFZhbHVlgRdngAhpbnRWYWx1ZYEYZ4AIaW50VmFsdWWBGWeACGludFZhbHVlgRpngAhpbnRWYWx1ZYEbZ4AIaW50VmFsdWWBHGeACGludFZhbHVlgR1ngAhpbnRWYWx1ZYEeZ4AIaW50VmFsdWWBH2eACGludFZhbHVlgSBngAhpbnRWYWx1ZYEhZ4AIaW50VmFsdWWBImeACGludFZhbHVlgSNngAhpbnRWYWx1ZYEkZ4AIaW50VmFsdWWBJWeACGludFZhbHVlgSZngAhpbnRWYWx1ZYEnZ4AIaW50VmFsdWWBKGeACGludFZhbHVlgSlngAhpbnRWYWx1ZYEqZ4AIaW50VmFsdWWBK2eACGludFZhbHVlgSxngAhpbnRWYWx1ZYEtZ4AIaW50VmFsdWWBLmeACGludFZhbHVlgS9ngAhpbnRWYWx1ZYEwZ4AIaW50VmFsdWWBMWeACGludFZhbHVlgTJngAhpbnRWYWx1ZYEzZ4AIaW50VmFsdWWBNGeACGludFZhbHVlgTVngAhpbnRWYWx1ZYE2Z4AIaW50VmFsdWWBN2eACGludFZhbHVlgThngAhpbnRWYWx1ZYE5Z4AIaW50VmFsdWWBOmeACGludFZhbHVlgTtngAhpbnRWYWx1ZYE8Z4AIaW50VmFsdWWBPWeACGludFZhbHVlgT5ngAhpbnRWYWx1ZYE/Z4AIaW50VmFsdWWBQGeACGludFZhbHVlgUFngAhpbnRWYWx1ZYFCZ4AIaW50VmFsdWWBQ2eACGludFZhbHVlgURngAhpbnRWYWx1ZYFFZ4AIaW50VmFsdWWBRmeACGludFZhbHVlgUdngAhpbnRWYWx1ZYFIZ4AIaW50VmFsdWWBSWeACGludFZhbHVlgUpngAhpbnRWYWx1ZYFLZ4AIaW50VmFsdWWBTGeACGludFZhbHVlgU1ngAhpbnRWYWx1ZYFOZ4AIaW50VmFsdWWBT2eACGludFZhbHVlgVBngAhpbnRWYWx1ZYFRZ4AIaW50VmFsdWWBUmeACGludFZhbHVlgVNngAhpbnRWYWx1ZYFUZ4AIaW50VmFsdWWBVWeACGludFZhbHVlgVZngAhpbnRWYWx1ZYFXZ4AIaW50VmFsdWWBWGeACGludFZhbHVlgVlngAhpbnRWYWx1ZYFaZ4AIaW50VmFsdWWBW2eACGludFZhbHVlgVxngAhpbnRWYWx1ZYFdZ4AIaW50VmFsdWWBXmeACGludFZhbHVlgV9ngAhpbnRWYWx1ZYFgZ4AIaW50VmFsdWWBYWeACGludFZhbHVlgWJngAhpbnRWYWx1ZYFjZ4AIaW50VmFsdWWBZGeACGludFZhbHVlgWVngAhpbnRWYWx1ZYFmZ4AIaW50VmFsdWWBZ2eACGludFZhbHVlgWhngAhpbnRWYWx1ZYFpZ4AIaW50VmFsdWWBameACGludFZhbHVlgWtngAhpbnRWYWx1ZYFsZ4AIaW50VmFsdWWBbWeACGludFZhbHVlgW5ngAhpbnRWYWx1ZYFvZ4AIaW50VmFsdWWBcGeACGludFZhbHVlgXFngAhpbnRWYWx1ZYFyZ4AIaW50VmFsdWWBc2eACGludFZhbHVlgXRngAhpbnRWYWx1ZYF1Z4AIaW50VmFsdWWBdmeACGludFZhbHVlgXdngAhpbnRWYWx1ZYF4Z4AIaW50VmFsdWWBeWeACGludFZhbHVlgXpngAhpbnRWYWx1ZYF7Z4AIaW50VmFsdWWBfGeACGludFZhbHVlgX1ngAhpbnRWYWx1ZYF+Z4AIaW50VmFsdWWBf2eACGludFZhbHVlgYABZ4AIaW50VmFsdWWBgQFngAhpbnRWYWx1ZYGCAWeACGludFZhbHVlgYMBZ4AIaW50VmFsdWWBhAFngAhpbnRWYWx1ZYGFAWeACGludFZhbHVlgYYBZ4AIaW50VmFsdWWBhwFngAhpbnRWYWx1ZYGIAWeACGludFZhbHVlgYkBZ4AIaW50VmFsdWWBigFngAhpbnRWYWx1ZYGLAWeACGludFZhbHVlgYwBZ4AIaW50VmFsdWWBjQFngAhpbnRWYWx1ZYGOAWeACGludFZhbHVlgY8BZ4AIaW50VmFsdWWBkAFngAhpbnRWYWx1ZYGRAWeACGludFZhbHVlgZIBZ4AIaW50VmFsdWWBkwFngAhpbnRWYWx1ZYGUAWeACGludFZhbHVlgZUBZ4AIaW50VmFsdWWBlgFngAhpbnRWYWx1ZYGXAWeACGludFZhbHVlgZgBZ4AIaW50VmFsdWWBmQFngAhpbnRWYWx1ZYGaAWeACGludFZhbHVlgZsBZ4AIaW50VmFsdWWBnAFngAhpbnRWYWx1ZYGdAWeACGludFZhbHVlgZ4BZ4AIaW50VmFsdWWBnwFngAhpbnRWYWx1ZYGgAWeACGludFZhbHVlgaEBZ4AIaW50VmFsdWWBogFngAhpbnRWYWx1ZYGjAWeACGludFZhbHVlgaQBZ4AIaW50VmFsdWWBpQFngAhpbnRWYWx1ZYGmAWeACGludFZhbHVlgacBZ4AIaW50VmFsdWWBqAFngAhpbnRWYWx1ZYGpAWeACGludFZhbHVlgaoBZ4AIaW50VmFsdWWBqwFngAhpbnRWYWx1ZYGsAWeACGludFZhbHVlga0BZ4AIaW50VmFsdWWBrgFngAhpbnRWYWx1ZYGvAWeACGludFZhbHVlgbABZ4AIaW50VmFsdWWBsQFngAhpbnRWYWx1ZYGyAWeACGludFZhbHVlgbMBZ4AIaW50VmFsdWWBtAFngAhpbnRWYWx1ZYG1AWeACGludFZhbHVlgbYBZ4AIaW50VmFsdWWBtwFngAhpbnRWYWx1ZYG4AWeACGludFZhbHVlgbkBZ4AIaW50VmFsdWWBugFngAhpbnRWYWx1ZYG7AWeACGludFZhbHVlgbwBZ4AIaW50VmFsdWWBvQFngAhpbnRWYWx1ZYG+AWeACGludFZhbHVlgb8BZ4AIaW50VmFsdWWBwAFngAhpbnRWYWx1ZYHBAWeACGludFZhbHVlgcIBZ4AIaW50VmFsdWWBwwFngAhpbnRWYWx1ZYHEAWeACGludFZhbHVlgcUBZ4AIaW50VmFsdWWBxgFngAhpbnRWYWx1ZYHHAWeACGludFZhbHVlgcgBZ4AIaW50VmFsdWWByQFngAhpbnRWYWx1ZYHKAWeACGludFZhbHVlgcsBZ4AIaW50VmFsdWWBzAFngAhpbnRWYWx1ZYHNAWeACGludFZhbHVlgc4BZ4AIaW50VmFsdWWBzwFngAhpbnRWYWx1ZYHQAWeACGludFZhbHVlgdEBZ4AIaW50VmFsdWWB0gFngAhpbnRWYWx1ZYHTAWeACGludFZhbHVlgdQBZ4AIaW50VmFsdWWB1QFngAhpbnRWYWx1ZYHWAWeACGludFZhbHVlgdcBZ4AIaW50VmFsdWWB2AFngAhpbnRWYWx1ZYHZAWeACGludFZhbHVlgdoBZ4AIaW50VmFsdWWB2wFngAhpbnRWYWx1ZYHcAWeACGludFZhbHVlgd0BZ4AIaW50VmFsdWWB3gFngAhpbnRWYWx1ZYHfAWeACGludFZhbHVlgeABZ4AIaW50VmFsdWWB4QFngAhpbnRWYWx1ZYHiAWeACGludFZhbHVlgeMBZ4AIaW50VmFsdWWB5AFngAhpbnRWYWx1ZYHlAWeACGludFZhbHVlgeYBZ4AIaW50VmFsdWWB5wFngAhpbnRWYWx1ZYHoAWeACGludFZhbHVlgekBZ4AIaW50VmFsdWWB6gFngAhpbnRWYWx1ZYHrAWeACGludFZhbHVlgewBZ4AIaW50VmFsdWWB7QFngAhpbnRWYWx1ZYHuAWeACGludFZhbHVlge8BZ4AIaW50VmFsdWWB8AFngAhpbnRWYWx1ZYHxAWeACGludFZhbHVlgfIBZ4AIaW50VmFsdWWB8wFngAhpbnRWYWx1ZYH0AWeACGludFZhbHVlgfUBZ4AIaW50VmFsdWWB9gFngAhpbnRWYWx1ZYH3AWeACGludFZhbHVlgfgBZ4AIaW50VmFsdWWB+QFngAhpbnRWYWx1ZYH6AWeACGludFZhbHVlgfsBZ4AIaW50VmFsdWWB/AFngAhpbnRWYWx1ZYH9AWeACGludFZhbHVlgf4BZ4AIaW50VmFsdWWB/wFngAhpbnRWYWx1ZYGAAmeBggKJgAQVH3x1iAANSRUWVwYCTFBQsIEBQ4oAAYAJYnl0ZVZhbHVlgAEyZ4AJYnl0ZVZhbHVlgAEzZ4AJYnl0ZVZhbHVlgAE0Z4AJYnl0ZVZhbHVlgAE1Z4AJYnl0ZVZhbHVlgAE2Z4AJYnl0ZVZhbHVlgAE3Z4AJYnl0ZVZhbHVlgAE4Z4AJYnl0ZVZhbHVlgAE5Z4AJYnl0ZVZhbHVlgAIxMGeACWJ5dGVWYWx1ZYACMTFngAlieXRlVmFsdWWAAjEyZ4AJYnl0ZVZhbHVlgAIxM2eACWJ5dGVWYWx1ZYACMTRngAlieXRlVmFsdWWAAjE1Z4AJYnl0ZVZhbHVlgAIxNmeACWJ5dGVWYWx1ZYACMTdngAlieXRlVmFsdWWAAjE4Z4AJYnl0ZVZhbHVlgAIxOWeACWJ5dGVWYWx1ZYACMjBngAlieXRlVmFsdWWAAjIxZ4AJYnl0ZVZhbHVlgAIyMmeACWJ5dGVWYWx1ZYACMjNngAlieXRlVmFsdWWAAjI0Z4AJYnl0ZVZhbHVlgAIyNWeACWJ5dGVWYWx1ZYACMjZngAlieXRlVmFsdWWAAjI3Z4AJYnl0ZVZhbHVlgAIyOGeACWJ5dGVWYWx1ZYACMjlngAlieXRlVmFsdWWAAjMwZ4AJYnl0ZVZhbHVlgAIzMWeACWJ5dGVWYWx1ZYACMzJngAlieXRlVmFsdWWAAjMzZ4AJYnl0ZVZhbHVlgAIzNGeACWJ5dGVWYWx1ZYACMzVngAlieXRlVmFsdWWAAjM2Z4AJYnl0ZVZhbHVlgAIzN2eACWJ5dGVWYWx1ZYACMzhngAlieXRlVmFsdWWAAjM5Z4AJYnl0ZVZhbHVlgAI0MGeACWJ5dGVWYWx1ZYACNDFngAlieXRlVmFsdWWAAjQyZ4AJYnl0ZVZhbHVlgAI0M2eACWJ5dGVWYWx1ZYACNDRngAlieXRlVmFsdWWAAjQ1Z4AJYnl0ZVZhbHVlgAI0NmeACWJ5dGVWYWx1ZYACNDdngAlieXRlVmFsdWWAAjQ4Z4AJYnl0ZVZhbHVlgAI0OWeACWJ5dGVWYWx1ZYACNTBngAlieXRlVmFsdWWAAjUxZ4AJYnl0ZVZhbHVlgAI1MmeACWJ5dGVWYWx1ZYACNTNngAlieXRlVmFsdWWAAjU0Z4AJYnl0ZVZhbHVlgAI1NWeACWJ5dGVWYWx1ZYACNTZngAlieXRlVmFsdWWAAjU3Z4AJYnl0ZVZhbHVlgAI1OGeACWJ5dGVWYWx1ZYACNTlngAlieXRlVmFsdWWAAjYwZ4AJYnl0ZVZhbHVlgAI2MWeACWJ5dGVWYWx1ZYACNjJngAlieXRlVmFsdWWAAjYzZ4AJYnl0ZVZhbHVlgAI2NGeACWJ5dGVWYWx1ZYACNjVngAlieXRlVmFsdWWAAjY2Z4AJYnl0ZVZhbHVlgAI2N2eACWJ5dGVWYWx1ZYACNjhngAlieXRlVmFsdWWAAjY5Z4AJYnl0ZVZhbHVlgAI3MGeACWJ5dGVWYWx1ZYACNzFngAlieXRlVmFsdWWAAjcyZ4AJYnl0ZVZhbHVlgAI3M2eACWJ5dGVWYWx1ZYACNzRngAlieXRlVmFsdWWAAjc1Z4AJYnl0ZVZhbHVlgAI3NmeACWJ5dGVWYWx1ZYACNzdngAlieXRlVmFsdWWAAjc4Z4AJYnl0ZVZhbHVlgAI3OWeACWJ5dGVWYWx1ZYACODBngAlieXRlVmFsdWWAAjgxZ4AJYnl0ZVZhbHVlgAI4MmeACWJ5dGVWYWx1ZYACODNngAlieXRlVmFsdWWAAjg0Z4AJYnl0ZVZhbHVlgAI4NWeACWJ5dGVWYWx1ZYACODZngAlieXRlVmFsdWWAAjg3Z4AJYnl0ZVZhbHVlgAI4OGeACWJ5dGVWYWx1ZYACODlngAlieXRlVmFsdWWAAjkwZ4AJYnl0ZVZhbHVlgAI5MWeACWJ5dGVWYWx1ZYACOTJngAlieXRlVmFsdWWAAjkzZ4AJYnl0ZVZhbHVlgAI5NGeACWJ5dGVWYWx1ZYACOTVngAlieXRlVmFsdWWAAjk2Z4AJYnl0ZVZhbHVlgAI5N2eACWJ5dGVWYWx1ZYACOThngAlieXRlVmFsdWWAAjk5Z4AJYnl0ZVZhbHVlgAMxMDBngAlieXRlVmFsdWWAAzEwMWeACWJ5dGVWYWx1ZYADMTAyZ4AJYnl0ZVZhbHVlgAMxMDNngAlieXRlVmFsdWWAAzEwNGeACWJ5dGVWYWx1ZYADMTA1Z4AJYnl0ZVZhbHVlgAMxMDZngAlieXRlVmFsdWWAAzEwN2eACWJ5dGVWYWx1ZYADMTA4Z4AJYnl0ZVZhbHVlgAMxMDlngAlieXRlVmFsdWWAAzExMGeACWJ5dGVWYWx1ZYADMTExZ4AJYnl0ZVZhbHVlgAMxMTJngAlieXRlVmFsdWWAAzExM2eACWJ5dGVWYWx1ZYADMTE0Z4AJYnl0ZVZhbHVlgAMxMTVngAlieXRlVmFsdWWAAzExNmeACWJ5dGVWYWx1ZYADMTE3Z4AJYnl0ZVZhbHVlgAMxMThngAlieXRlVmFsdWWAAzExOWeACWJ5dGVWYWx1ZYADMTIwZ4AJYnl0ZVZhbHVlgAMxMjFngAlieXRlVmFsdWWAAzEyMmeACWJ5dGVWYWx1ZYADMTIzZ4AJYnl0ZVZhbHVlgAMxMjRngAlieXRlVmFsdWWAAzEyNWeACWJ5dGVWYWx1ZYADMTI2Z4AJYnl0ZVZhbHVlgAMxMjdngAlieXRlVmFsdWWAAzEyOGeACWJ5dGVWYWx1ZYADMTI5Z4AJYnl0ZVZhbHVlgAMxMzBngAlieXRlVmFsdWWAAzEzMWeACWJ5dGVWYWx1ZYADMTMyZ4AJYnl0ZVZhbHVlgAMxMzNngAlieXRlVmFsdWWAAzEzNGeACWJ5dGVWYWx1ZYADMTM1Z4AJYnl0ZVZhbHVlgAMxMzZngAlieXRlVmFsdWWAAzEzN2eACWJ5dGVWYWx1ZYADMTM4Z4AJYnl0ZVZhbHVlgAMxMzlngAlieXRlVmFsdWWAAzE0MGeACWJ5dGVWYWx1ZYADMTQxZ4AJYnl0ZVZhbHVlgAMxNDJngAlieXRlVmFsdWWAAzE0M2eACWJ5dGVWYWx1ZYADMTQ0Z4AJYnl0ZVZhbHVlgAMxNDVngAlieXRlVmFsdWWAAzE0NmeACWJ5dGVWYWx1ZYADMTQ3Z4AJYnl0ZVZhbHVlgAMxNDhngAlieXRlVmFsdWWAAzE0OWeACWJ5dGVWYWx1ZYADMTUwZ4AJYnl0ZVZhbHVlgAMxNTFngAlieXRlVmFsdWWAAzE1MmeACWJ5dGVWYWx1ZYADMTUzZ4AJYnl0ZVZhbHVlgAMxNTRngAlieXRlVmFsdWWAAzE1NWeACWJ5dGVWYWx1ZYADMTU2Z4AJYnl0ZVZhbHVlgAMxNTdngAlieXRlVmFsdWWAAzE1OGeACWJ5dGVWYWx1ZYADMTU5Z4AJYnl0ZVZhbHVlgAMxNjBngAlieXRlVmFsdWWAAzE2MWeACWJ5dGVWYWx1ZYADMTYyZ4AJYnl0ZVZhbHVlgAMxNjNngAlieXRlVmFsdWWAAzE2NGeACWJ5dGVWYWx1ZYADMTY1Z4AJYnl0ZVZhbHVlgAMxNjZngAlieXRlVmFsdWWAAzE2N2eACWJ5dGVWYWx1ZYADMTY4Z4AJYnl0ZVZhbHVlgAMxNjlngAlieXRlVmFsdWWAAzE3MGeACWJ5dGVWYWx1ZYADMTcxZ4AJYnl0ZVZhbHVlgAMxNzJngAlieXRlVmFsdWWAAzE3M2eACWJ5dGVWYWx1ZYADMTc0Z4AJYnl0ZVZhbHVlgAMxNzVngAlieXRlVmFsdWWAAzE3NmeACWJ5dGVWYWx1ZYADMTc3Z4AJYnl0ZVZhbHVlgAMxNzhngAlieXRlVmFsdWWAAzE3OWeACWJ5dGVWYWx1ZYADMTgwZ4AJYnl0ZVZhbHVlgAMxODFngAlieXRlVmFsdWWAAzE4MmeACWJ5dGVWYWx1ZYADMTgzZ4AJYnl0ZVZhbHVlgAMxODRngAlieXRlVmFsdWWAAzE4NWeACWJ5dGVWYWx1ZYADMTg2Z4AJYnl0ZVZhbHVlgAMxODdngAlieXRlVmFsdWWAAzE4OGeACWJ5dGVWYWx1ZYADMTg5Z4AJYnl0ZVZhbHVlgAMxOTBngAlieXRlVmFsdWWAAzE5MWeACWJ5dGVWYWx1ZYADMTkyZ4AJYnl0ZVZhbHVlgAMxOTNngAlieXRlVmFsdWWAAzE5NGeACWJ5dGVWYWx1ZYADMTk1Z4AJYnl0ZVZhbHVlgAMxOTZngAlieXRlVmFsdWWAAzE5N2eACWJ5dGVWYWx1ZYADMTk4Z4AJYnl0ZVZhbHVlgAMxOTlngAlieXRlVmFsdWWAAzIwMGeACWJ5dGVWYWx1ZYADMjAxZ4AJYnl0ZVZhbHVlgAMyMDJngAlieXRlVmFsdWWAAzIwM2eACWJ5dGVWYWx1ZYADMjA0Z4AJYnl0ZVZhbHVlgAMyMDVngAlieXRlVmFsdWWAAzIwNmeACWJ5dGVWYWx1ZYADMjA3Z4AJYnl0ZVZhbHVlgAMyMDhngAlieXRlVmFsdWWAAzIwOWeACWJ5dGVWYWx1ZYADMjEwZ4AJYnl0ZVZhbHVlgAMyMTFngAlieXRlVmFsdWWAAzIxMmeACWJ5dGVWYWx1ZYADMjEzZ4AJYnl0ZVZhbHVlgAMyMTRngAlieXRlVmFsdWWAAzIxNWeACWJ5dGVWYWx1ZYADMjE2Z4AJYnl0ZVZhbHVlgAMyMTdngAlieXRlVmFsdWWAAzIxOGeACWJ5dGVWYWx1ZYADMjE5Z4AJYnl0ZVZhbHVlgAMyMjBngAlieXRlVmFsdWWAAzIyMWeACWJ5dGVWYWx1ZYADMjIyZ4AJYnl0ZVZhbHVlgAMyMjNngAlieXRlVmFsdWWAAzIyNGeACWJ5dGVWYWx1ZYADMjI1Z4AJYnl0ZVZhbHVlgAMyMjZngAlieXRlVmFsdWWAAzIyN2eACWJ5dGVWYWx1ZYADMjI4Z4AJYnl0ZVZhbHVlgAMyMjlngAlieXRlVmFsdWWAAzIzMGeACWJ5dGVWYWx1ZYADMjMxZ4AJYnl0ZVZhbHVlgAMyMzJngAlieXRlVmFsdWWAAzIzM2eACWJ5dGVWYWx1ZYADMjM0Z4AJYnl0ZVZhbHVlgAMyMzVngAlieXRlVmFsdWWAAzIzNmeACWJ5dGVWYWx1ZYADMjM3Z4AJYnl0ZVZhbHVlgAMyMzhngAlieXRlVmFsdWWAAzIzOWeACWJ5dGVWYWx1ZYADMjQwZ4AJYnl0ZVZhbHVlgAMyNDFngAlieXRlVmFsdWWAAzI0MmeACWJ5dGVWYWx1ZYADMjQzZ4AJYnl0ZVZhbHVlgAMyNDRngAlieXRlVmFsdWWAAzI0NWeACWJ5dGVWYWx1ZYADMjQ2Z4AJYnl0ZVZhbHVlgAMyNDdngAlieXRlVmFsdWWAAzI0OGeACWJ5dGVWYWx1ZYADMjQ5Z4AJYnl0ZVZhbHVlgAMyNTBngAlieXRlVmFsdWWAAzI1MWeACWJ5dGVWYWx1ZYADMjUyZ4AJYnl0ZVZhbHVlgAMyNTNngAlieXRlVmFsdWWAAzI1NGeACWJ5dGVWYWx1ZYADMjU1Z4AJYnl0ZVZhbHVlgAMyNTZngAlieXRlVmFsdWWAlQFUaGlzIGlzIGEgZmFpcmx5IGxvbmcgYnl0ZXNsaWNlIHRoYXQgc2hvdWxkIGJlIHB1dCBpbiB0aGUgY29uc2FudCBibG9jayBiZWNhdXNlIGl0IGlzIHNvIGxvbmcsIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBpdCBjb21lcyBhZnRlciB0aGUgb3RoZXIgc3RyaW5nc2eAATGAAzI1N1CJgQFDgAS4RHs2NhoAjgH/8ACABNFOYduABMSKVag2GgCOAuEE7o4A", + "clear": "Cg==" + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 25, + "patch": 0, + "commitHash": "9855f57c" + } + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/CblocksTest.clear.teal b/tests/contracts/artifacts/CblocksTest.clear.teal new file mode 100644 index 000000000..e9f1d65b3 --- /dev/null +++ b/tests/contracts/artifacts/CblocksTest.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/tests/contracts/artifacts/ContractWithCustomStruct.approval.teal b/tests/contracts/artifacts/ContractWithCustomStruct.approval.teal index 5c62e2d18..a1751c21c 100644 --- a/tests/contracts/artifacts/ContractWithCustomStruct.approval.teal +++ b/tests/contracts/artifacts/ContractWithCustomStruct.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,13 +25,13 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // customStructMethod((uint64))(uint64) *abi_route_customStructMethod: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // input: (uint64) txna ApplicationArgs 1 dup len - int 8 + pushint 8 == // argument 0 (input) for customStructMethod must be a (uint64) @@ -41,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM callsub customStructMethod concat log - int 1 + pushint 1 return // customStructMethod(input: AnotherCustomStruct): AnotherCustomStruct @@ -54,11 +54,11 @@ customStructMethod: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -66,7 +66,7 @@ customStructMethod: err *call_NoOp: - method "customStructMethod((uint64))(uint64)" + pushbytes 0x8d22739a // method "customStructMethod((uint64))(uint64)" txna ApplicationArgs 0 match *abi_route_customStructMethod diff --git a/tests/contracts/artifacts/ContractWithCustomStruct.arc32.json b/tests/contracts/artifacts/ContractWithCustomStruct.arc32.json index 1f86f861c..bbe661004 100644 --- a/tests/contracts/artifacts/ContractWithCustomStruct.arc32.json +++ b/tests/contracts/artifacts/ContractWithCustomStruct.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0KTogQW5vdGhlckN1c3RvbVN0cnVjdApjdXN0b21TdHJ1Y3RNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoyMQoJLy8gcmV0dXJuIGlucHV0OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCiphYmlfcm91dGVfY3VzdG9tU3RydWN0TWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVN0cnVjdE1ldGhvZCBtdXN0IGJlIGEgKHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCgljYWxsc3ViIGN1c3RvbVN0cnVjdE1ldGhvZAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoaW5wdXQ6IEFub3RoZXJDdXN0b21TdHJ1Y3QpOiBBbm90aGVyQ3VzdG9tU3RydWN0CmN1c3RvbVN0cnVjdE1ldGhvZDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS1leHRlcm5hbC5hbGdvLnRzOjIxCgkvLyByZXR1cm4gaW5wdXQ7CglmcmFtZV9kaWcgLTEgLy8gaW5wdXQ6IEFub3RoZXJDdXN0b21TdHJ1Y3QKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGQyMjczOWEgLy8gbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ContractWithCustomStruct.arc56_draft.json b/tests/contracts/artifacts/ContractWithCustomStruct.arc56_draft.json index fae104111..a4d233f6c 100644 --- a/tests/contracts/artifacts/ContractWithCustomStruct.arc56_draft.json +++ b/tests/contracts/artifacts/ContractWithCustomStruct.arc56_draft.json @@ -75,322 +75,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 19, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 19, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 19, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 19, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 19, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 19, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 19, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 19, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 19, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 20, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 20, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 20, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 20, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 20, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 35, - "source": 20, - "pc": [ - 53 - ] - }, - { - "teal": 38, - "source": 20, - "errorMessage": "argument 0 (input) for customStructMethod must be a (uint64)", - "pc": [ - 54 - ] - }, - { - "teal": 41, - "source": 20, - "pc": [ - 55, - 56, - 57 - ] - }, - { - "teal": 42, - "source": 20, - "pc": [ - 58 - ] - }, - { - "teal": 43, - "source": 20, - "pc": [ - 59 - ] - }, - { - "teal": 44, - "source": 20, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 20, - "pc": [ - 61 - ] - }, - { - "teal": 49, - "source": 20, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 53, - "source": 21, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 54, - "source": 20, - "pc": [ - 67 - ] - }, - { - "teal": 57, - "source": 19, - "pc": [ - 68 - ] - }, - { - "teal": 58, - "source": 19, - "pc": [ - 69 - ] - }, - { - "teal": 61, - "source": 19, - "pc": [ - 70, - 71, - 72, - 73, - 74, - 75 - ] - }, - { - "teal": 62, - "source": 19, - "pc": [ - 76, - 77, - 78 - ] - }, - { - "teal": 63, - "source": 19, - "pc": [ - 79, - 80, - 81, - 82 - ] - }, - { - "teal": 66, - "source": 19, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 83 - ] - }, - { - "teal": 69, - "source": 19, - "pc": [ - 84, - 85, - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 70, - "source": 19, - "pc": [ - 90, - 91, - 92 - ] - }, - { - "teal": 71, - "source": 19, - "pc": [ - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 74, - "source": 19, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 97 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 51 + ], + "errorMessage": "argument 0 (input) for customStructMethod must be a (uint64)" + }, + { + "pc": [ + 82 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 96 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKKmFiaV9yb3V0ZV9jdXN0b21TdHJ1Y3RNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCA4Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKGlucHV0KSBmb3IgY3VzdG9tU3RydWN0TWV0aG9kIG11c3QgYmUgYSAodWludDY0KQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkKCWNhbGxzdWIgY3VzdG9tU3RydWN0TWV0aG9kCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0KTogQW5vdGhlckN1c3RvbVN0cnVjdApjdXN0b21TdHJ1Y3RNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoyMQoJLy8gcmV0dXJuIGlucHV0OwoJZnJhbWVfZGlnIC0xIC8vIGlucHV0OiBBbm90aGVyQ3VzdG9tU3RydWN0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCiphYmlfcm91dGVfY3VzdG9tU3RydWN0TWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGlucHV0OiAodWludDY0KQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgOAoJPT0KCgkvLyBhcmd1bWVudCAwIChpbnB1dCkgZm9yIGN1c3RvbVN0cnVjdE1ldGhvZCBtdXN0IGJlIGEgKHVpbnQ2NCkKCWFzc2VydAoKCS8vIGV4ZWN1dGUgY3VzdG9tU3RydWN0TWV0aG9kKCh1aW50NjQpKSh1aW50NjQpCgljYWxsc3ViIGN1c3RvbVN0cnVjdE1ldGhvZAoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjdXN0b21TdHJ1Y3RNZXRob2QoaW5wdXQ6IEFub3RoZXJDdXN0b21TdHJ1Y3QpOiBBbm90aGVyQ3VzdG9tU3RydWN0CmN1c3RvbVN0cnVjdE1ldGhvZDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS1leHRlcm5hbC5hbGdvLnRzOjIxCgkvLyByZXR1cm4gaW5wdXQ7CglmcmFtZV9kaWcgLTEgLy8gaW5wdXQ6IEFub3RoZXJDdXN0b21TdHJ1Y3QKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4OGQyMjczOWEgLy8gbWV0aG9kICJjdXN0b21TdHJ1Y3RNZXRob2QoKHVpbnQ2NCkpKHVpbnQ2NCkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2N1c3RvbVN0cnVjdE1ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAC0AAAAAAAAAAAAAAB8AAAAAAAAAAAAAAIAEFR98dTYaAUkVgQgSRIgABFCwIkOKAQGL/4kiQ4AEuER7NjYaAI4B//EAgASNInOaNhoAjgH/xwA=", + "approval": "CjEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIAEFR98dTYaAUkVgQgSRIgABVCwgQFDigEBi/+JgQFDgAS4RHs2NhoAjgH/8ACABI0ic5o2GgCOAf/FAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal b/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal index 2a6e105e5..6ab954a7b 100644 --- a/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal +++ b/tests/contracts/artifacts/ContractWithLsigProgram.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_ *abi_route_createApplication: // execute createApplication()void callsub createApplication - int 1 + pushint 1 return // createApplication(): void @@ -35,12 +35,12 @@ createApplication: // tests/contracts/lsig.algo.ts:32 // log(BasicLsig.program()) - byte b64 CiABAUIAAIgAAiJDigAAIkSJ + pushbytes 0x0a4200008800038101438a000081014489 log retsub *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication diff --git a/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json b/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json index 498c10e3b..f04f35ea0 100644 --- a/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json +++ b/tests/contracts/artifacts/ContractWithLsigProgram.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sc2lnLmFsZ28udHM6MzIKCS8vIGxvZyhCYXNpY0xzaWcucHJvZ3JhbSgpKQoJYnl0ZSBiNjQgQ2lBQkFVSUFBSWdBQWlKRGlnQUFJa1NKCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xzaWcuYWxnby50czozMgoJLy8gbG9nKEJhc2ljTHNpZy5wcm9ncmFtKCkpCglwdXNoYnl0ZXMgMHgwYTQyMDAwMDg4MDAwMzgxMDE0MzhhMDAwMDgxMDE0NDg5Cglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ContractWithLsigProgram.arc56_draft.json b/tests/contracts/artifacts/ContractWithLsigProgram.arc56_draft.json index f05e20908..3ea0ca568 100644 --- a/tests/contracts/artifacts/ContractWithLsigProgram.arc56_draft.json +++ b/tests/contracts/artifacts/ContractWithLsigProgram.arc56_draft.json @@ -48,220 +48,34 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 30, - "pc": [ - 0 - ] - }, - { - "teal": 13, - "source": 30, - "pc": [ - 1, - 2 - ] - }, - { - "teal": 14, - "source": 30, - "pc": [ - 3 - ] - }, - { - "teal": 15, - "source": 30, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 16, - "source": 30, - "pc": [ - 6 - ] - }, - { - "teal": 17, - "source": 30, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 18, - "source": 30, - "pc": [ - 9 - ] - }, - { - "teal": 19, - "source": 30, - "pc": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "teal": 23, - "source": 30, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 36 - ] - }, - { - "teal": 28, - "source": 31, - "pc": [ - 37, - 38, - 39 - ] - }, - { - "teal": 29, - "source": 31, - "pc": [ - 40, - 41 - ] - }, - { - "teal": 30, - "source": 31, - "pc": [ - 42 - ] - }, - { - "teal": 34, - "source": 31, - "pc": [ - 43, - 44, - 45 - ] - }, - { - "teal": 38, - "source": 32, - "pc": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65 - ] - }, - { - "teal": 39, - "source": 32, - "pc": [ - 66 - ] - }, - { - "teal": 40, - "source": 31, - "pc": [ - 67 - ] - }, - { - "teal": 43, - "source": 30, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73 - ] - }, - { - "teal": 44, - "source": 30, - "pc": [ - 74, - 75, - 76 - ] - }, - { - "teal": 45, - "source": 30, - "pc": [ - 77, - 78, - 79, - 80 - ] - }, - { - "teal": 48, - "source": 30, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 81 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 80 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sc2lnLmFsZ28udHM6MzIKCS8vIGxvZyhCYXNpY0xzaWcucHJvZ3JhbSgpKQoJYnl0ZSBiNjQgQ2lBQkFVSUFBSWdBQWlKRGlnQUFJa1NKCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xzaWcuYWxnby50czozMgoJLy8gbG9nKEJhc2ljTHNpZy5wcm9ncmFtKCkpCglwdXNoYnl0ZXMgMHgwYTQyMDAwMDg4MDAwMzgxMDE0MzhhMDAwMDgxMDE0NDg5Cglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CjEYFIEGCzEZCI0MAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAIgAA4EBQ4oAAIASCiABAUIAAIgAAiJDigAAIkSJsImABLhEezY2GgCOAf/UAA==", + "approval": "CjEYFIEGCzEZCI0MAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAIgAA4EBQ4oAAIARCkIAAIgAA4EBQ4oAAIEBRImwiYAEuER7NjYaAI4B/9UA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal b/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal index d9cde31f5..1b58b84a5 100644 --- a/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal +++ b/tests/contracts/artifacts/ContratWithLsigAddress.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_ *abi_route_createApplication: // execute createApplication()void callsub createApplication - int 1 + pushint 1 return // createApplication(): void @@ -35,12 +35,12 @@ createApplication: // tests/contracts/lsig.algo.ts:39 // log(BasicLsig.address()) - addr XBBFEDSZ6KEUC76ZFV5LUYHAYYRKAXRJ7FYUSBWIBTNA4HUYLMHGKGYXPU + pushbytes 0xfa9758dcc7ef08a418b81e0dfc93e3f699c61a36edc1ae9dca9d59afe143518a // addr "7KLVRXGH54EKIGFYDYG7ZE7D62M4MGRW5XA25HOKTVM27YKDKGFOEEFBAU" log retsub *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication diff --git a/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json b/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json index e856392b4..4f2a2ce25 100644 --- a/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json +++ b/tests/contracts/artifacts/ContratWithLsigAddress.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sc2lnLmFsZ28udHM6MzkKCS8vIGxvZyhCYXNpY0xzaWcuYWRkcmVzcygpKQoJYWRkciBYQkJGRURTWjZLRVVDNzZaRlY1TFVZSEFZWVJLQVhSSjdGWVVTQldJQlROQTRIVVlMTUhHS0dZWFBVCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xzaWcuYWxnby50czozOQoJLy8gbG9nKEJhc2ljTHNpZy5hZGRyZXNzKCkpCglwdXNoYnl0ZXMgMHhmYTk3NThkY2M3ZWYwOGE0MThiODFlMGRmYzkzZTNmNjk5YzYxYTM2ZWRjMWFlOWRjYTlkNTlhZmUxNDM1MThhIC8vIGFkZHIgIjdLTFZSWEdINTRFS0lHRllEWUc3WkU3RDYyTTRNR1JXNVhBMjVIT0tUVk0yN1lLREtHRk9FRUZCQVUiCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ContratWithLsigAddress.arc56_draft.json b/tests/contracts/artifacts/ContratWithLsigAddress.arc56_draft.json index 12ae71662..992d0d328 100644 --- a/tests/contracts/artifacts/ContratWithLsigAddress.arc56_draft.json +++ b/tests/contracts/artifacts/ContratWithLsigAddress.arc56_draft.json @@ -48,234 +48,34 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 37, - "pc": [ - 0 - ] - }, - { - "teal": 13, - "source": 37, - "pc": [ - 1, - 2 - ] - }, - { - "teal": 14, - "source": 37, - "pc": [ - 3 - ] - }, - { - "teal": 15, - "source": 37, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 16, - "source": 37, - "pc": [ - 6 - ] - }, - { - "teal": 17, - "source": 37, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 18, - "source": 37, - "pc": [ - 9 - ] - }, - { - "teal": 19, - "source": 37, - "pc": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "teal": 23, - "source": 37, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 36 - ] - }, - { - "teal": 28, - "source": 38, - "pc": [ - 37, - 38, - 39 - ] - }, - { - "teal": 29, - "source": 38, - "pc": [ - 40, - 41 - ] - }, - { - "teal": 30, - "source": 38, - "pc": [ - 42 - ] - }, - { - "teal": 34, - "source": 38, - "pc": [ - 43, - 44, - 45 - ] - }, - { - "teal": 38, - "source": 39, - "pc": [ - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79 - ] - }, - { - "teal": 39, - "source": 39, - "pc": [ - 80 - ] - }, - { - "teal": 40, - "source": 38, - "pc": [ - 81 - ] - }, - { - "teal": 43, - "source": 37, - "pc": [ - 82, - 83, - 84, - 85, - 86, - 87 - ] - }, - { - "teal": 44, - "source": 37, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 45, - "source": 37, - "pc": [ - 91, - 92, - 93, - 94 - ] - }, - { - "teal": 48, - "source": 37, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 95 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 95 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSBjcmVhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiBjcmVhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKTogdm9pZApjcmVhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sc2lnLmFsZ28udHM6MzkKCS8vIGxvZyhCYXNpY0xzaWcuYWRkcmVzcygpKQoJYWRkciBYQkJGRURTWjZLRVVDNzZaRlY1TFVZSEFZWVJLQVhSSjdGWVVTQldJQlROQTRIVVlMTUhHS0dZWFBVCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xzaWcuYWxnby50czozOQoJLy8gbG9nKEJhc2ljTHNpZy5hZGRyZXNzKCkpCglwdXNoYnl0ZXMgMHhmYTk3NThkY2M3ZWYwOGE0MThiODFlMGRmYzkzZTNmNjk5YzYxYTM2ZWRjMWFlOWRjYTlkNTlhZmUxNDM1MThhIC8vIGFkZHIgIjdLTFZSWEdINTRFS0lHRllEWUc3WkU3RDYyTTRNR1JXNVhBMjVIT0tUVk0yN1lLREtHRk9FRUZCQVUiCglsb2cKCXJldHN1YgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CjEYFIEGCzEZCI0MAAAAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIgAA4EBQ4oAAIAguEJSDlnyiUF/2S16umDgxiKgXin5cUkGyAzaDh6YWw6wiYAEuER7NjYaAI4B/8YA", + "approval": "CjEYFIEGCzEZCI0MAAAAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAIgAA4EBQ4oAAIAg+pdY3MfvCKQYuB4N/JPj9pnGGjbtwa6dyp1Zr+FDUYqwiYAEuER7NjYaAI4B/8YA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/D.approval.teal b/tests/contracts/artifacts/D.approval.teal index b355d232f..1b2071f0a 100644 --- a/tests/contracts/artifacts/D.approval.teal +++ b/tests/contracts/artifacts/D.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_d: // execute d()void callsub d - int 1 + pushint 1 return // d(): void @@ -35,17 +35,17 @@ d: // tests/contracts/inheritance.algo.ts:40 // this.dKey.value = 42 - byte 0x64 // "d" - int 42 + pushbytes 0x64 // "d" + pushint 42 app_global_put retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -53,7 +53,7 @@ d: err *call_NoOp: - method "d()void" + pushbytes 0x29efd0f6 // method "d()void" txna ApplicationArgs 0 match *abi_route_d diff --git a/tests/contracts/artifacts/D.arc32.json b/tests/contracts/artifacts/D.arc32.json index 8cb7db998..83f33f327 100644 --- a/tests/contracts/artifacts/D.arc32.json +++ b/tests/contracts/artifacts/D.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkKCl2b2lkCiphYmlfcm91dGVfZDoKCS8vIGV4ZWN1dGUgZCgpdm9pZAoJY2FsbHN1YiBkCglpbnQgMQoJcmV0dXJuCgovLyBkKCk6IHZvaWQKZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQwCgkvLyB0aGlzLmRLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDY0IC8vICJkIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJcHVzaGludCAxCglyZXR1cm4KCi8vIGQoKTogdm9pZApkOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NDAKCS8vIHRoaXMuZEtleS52YWx1ZSA9IDQyCglwdXNoYnl0ZXMgMHg2NCAvLyAiZCIKCXB1c2hpbnQgNDIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDI5ZWZkMGY2IC8vIG1ldGhvZCAiZCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/D.arc56_draft.json b/tests/contracts/artifacts/D.arc56_draft.json index 526506df8..01eddd468 100644 --- a/tests/contracts/artifacts/D.arc56_draft.json +++ b/tests/contracts/artifacts/D.arc56_draft.json @@ -67,266 +67,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 36, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 36, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 36, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 36, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 36, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 36, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 36, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 36, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 36, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 39, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 39, - "pc": [ - 43 - ] - }, - { - "teal": 30, - "source": 39, - "pc": [ - 44 - ] - }, - { - "teal": 34, - "source": 39, - "pc": [ - 45, - 46, - 47 - ] - }, - { - "teal": 38, - "source": 40, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 39, - "source": 40, - "pc": [ - 51, - 52 - ] - }, - { - "teal": 40, - "source": 40, - "pc": [ - 53 - ] - }, - { - "teal": 41, - "source": 39, - "pc": [ - 54 - ] - }, - { - "teal": 44, - "source": 36, - "pc": [ - 55 - ] - }, - { - "teal": 45, - "source": 36, - "pc": [ - 56 - ] - }, - { - "teal": 48, - "source": 36, - "pc": [ - 57, - 58, - 59, - 60, - 61, - 62 - ] - }, - { - "teal": 49, - "source": 36, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 50, - "source": 36, - "pc": [ - 66, - 67, - 68, - 69 - ] - }, - { - "teal": 53, - "source": 36, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 70 - ] - }, - { - "teal": 56, - "source": 36, - "pc": [ - 71, - 72, - 73, - 74, - 75, - 76 - ] - }, - { - "teal": 57, - "source": 36, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 58, - "source": 36, - "pc": [ - 80, - 81, - 82, - 83 - ] - }, - { - "teal": 61, - "source": 36, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 84 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 69 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 83 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBkKCl2b2lkCiphYmlfcm91dGVfZDoKCS8vIGV4ZWN1dGUgZCgpdm9pZAoJY2FsbHN1YiBkCglpbnQgMQoJcmV0dXJuCgovLyBkKCk6IHZvaWQKZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjQwCgkvLyB0aGlzLmRLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDY0IC8vICJkIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZCgpdm9pZAoqYWJpX3JvdXRlX2Q6CgkvLyBleGVjdXRlIGQoKXZvaWQKCWNhbGxzdWIgZAoJcHVzaGludCAxCglyZXR1cm4KCi8vIGQoKTogdm9pZApkOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NDAKCS8vIHRoaXMuZEtleS52YWx1ZSA9IDQyCglwdXNoYnl0ZXMgMHg2NCAvLyAiZCIKCXB1c2hpbnQgNDIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDI5ZWZkMGY2IC8vIG1ldGhvZCAiZCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MACAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAIgAAiJDigAAgAFkgSpniSJDgAS4RHs2NhoAjgH/8QCABCnv0PY2GgCOAf/UAA==", + "approval": "CjEYFIEGCzEZCI0MACIAAAAAAAAAAAAAABQAAAAAAAAAAAAAAIgAA4EBQ4oAAIABZIEqZ4mBAUOABLhEezY2GgCOAf/wAIAEKe/Q9jYaAI4B/9IA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/DummyContract.approval.teal b/tests/contracts/artifacts/DummyContract.approval.teal index d89d9563d..da4fbac83 100644 --- a/tests/contracts/artifacts/DummyContract.approval.teal +++ b/tests/contracts/artifacts/DummyContract.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -23,11 +23,11 @@ switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_ err *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication diff --git a/tests/contracts/artifacts/DummyContract.arc32.json b/tests/contracts/artifacts/DummyContract.arc32.json index 5e3562df6..c3723f5ff 100644 --- a/tests/contracts/artifacts/DummyContract.arc32.json +++ b/tests/contracts/artifacts/DummyContract.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/DummyContract.arc56_draft.json b/tests/contracts/artifacts/DummyContract.arc56_draft.json index 77ee7bde5..677965e53 100644 --- a/tests/contracts/artifacts/DummyContract.arc56_draft.json +++ b/tests/contracts/artifacts/DummyContract.arc56_draft.json @@ -48,158 +48,30 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 5, - "pc": [ - 0 - ] - }, - { - "teal": 13, - "source": 5, - "pc": [ - 1, - 2 - ] - }, - { - "teal": 14, - "source": 5, - "pc": [ - 3 - ] - }, - { - "teal": 15, - "source": 5, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 16, - "source": 5, - "pc": [ - 6 - ] - }, - { - "teal": 17, - "source": 5, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 18, - "source": 5, - "pc": [ - 9 - ] - }, - { - "teal": 19, - "source": 5, - "pc": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "teal": 23, - "source": 5, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 36 - ] - }, - { - "teal": 26, - "source": 5, - "pc": [ - 37, - 38 - ] - }, - { - "teal": 27, - "source": 5, - "pc": [ - 39 - ] - }, - { - "teal": 30, - "source": 5, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 5, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 5, - "pc": [ - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 5, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 53 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 53 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { diff --git a/tests/contracts/artifacts/E.approval.teal b/tests/contracts/artifacts/E.approval.teal index 3095e29bc..93f294c4a 100644 --- a/tests/contracts/artifacts/E.approval.teal +++ b/tests/contracts/artifacts/E.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x0000000000000000000000000000000000000000000000000000000000000141 0x65787465726e616c4b6579 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // externalMethod()uint8 *abi_route_externalMethod: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute externalMethod()uint8 callsub externalMethod itob dup bitlen - int 8 + pushint 8 <= // externalMethod return value overflowed 8 bits @@ -40,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 7 1 concat log - int 1 + pushint 1 return // externalMethod(): CustomType @@ -50,7 +51,7 @@ externalMethod: // tests/contracts/inheritance-external.algo.ts:11 // this.externalKey.value = 123 byte 0x65787465726e616c4b6579 // "externalKey" - byte 0x7b + pushbytes 0x7b app_global_put // tests/contracts/inheritance-external.algo.ts:12 @@ -64,7 +65,7 @@ externalMethod: *abi_route_e: // execute e()void callsub e - int 1 + pushint 1 return // e(): void @@ -77,7 +78,7 @@ e: // tests/contracts/inheritance.algo.ts:53 // val: ExternalCustomType = 123 - int 123 + pushint 123 frame_bury 0 // val: ExternalCustomType // tests/contracts/inheritance.algo.ts:54 @@ -85,7 +86,7 @@ e: byte 0x65787465726e616c4b6579 // "externalKey" app_global_get btoi - int 123 // val: ExternalCustomType + pushint 123 // val: ExternalCustomType == assert @@ -108,25 +109,25 @@ e: // tests/contracts/inheritance.algo.ts:60 // assert(MY_CONST === 456) - int 456 - dup + pushint 456 + pushint 456 == assert // tests/contracts/inheritance.algo.ts:61 // assert(EXTERNAL_CONST === 654) - int 654 - dup + pushint 654 + pushint 654 == assert retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -134,8 +135,8 @@ e: err *call_NoOp: - method "externalMethod()uint8" - method "e()void" + pushbytes 0x17bea4bb // method "externalMethod()uint8" + pushbytes 0x277630fc // method "e()void" txna ApplicationArgs 0 match *abi_route_externalMethod *abi_route_e diff --git a/tests/contracts/artifacts/E.arc32.json b/tests/contracts/artifacts/E.arc32.json index 0f25130d0..9b25362c7 100644 --- a/tests/contracts/artifacts/E.arc32.json +++ b/tests/contracts/artifacts/E.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyBleHRlcm5hbE1ldGhvZCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWJ5dGUgMHg3YgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMgoJLy8gcmV0dXJuIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWU7CglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgovLyBlKCl2b2lkCiphYmlfcm91dGVfZToKCS8vIGV4ZWN1dGUgZSgpdm9pZAoJY2FsbHN1YiBlCglpbnQgMQoJcmV0dXJuCgovLyBlKCk6IHZvaWQKZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1MwoJLy8gdmFsOiBFeHRlcm5hbEN1c3RvbVR5cGUgPSA8RXh0ZXJuYWxDdXN0b21UeXBlPjEyMwoJaW50IDEyMwoJZnJhbWVfYnVyeSAwIC8vIHZhbDogRXh0ZXJuYWxDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTQKCS8vIGFzc2VydCh0aGlzLmV4dGVybmFsS2V5LnZhbHVlID09PSB2YWwpCglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaW50IDEyMyAvLyB2YWw6IEV4dGVybmFsQ3VzdG9tVHlwZQoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU1CgkvLyB4ID0gPHVpbnQyNTY+MzIxCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MQoJZnJhbWVfYnVyeSAxIC8vIHg6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1NgoJLy8geSA9IDxDdXN0b21UeXBlPjMyMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEKCWZyYW1lX2J1cnkgMiAvLyB5OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTgKCS8vIGFzc2VydCh4ID09PSB5KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEgLy8geDogdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEgLy8geTogdWludDI1NgoJYj09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2MAoJLy8gYXNzZXJ0KE1ZX0NPTlNUID09PSA0NTYpCglpbnQgNDU2CglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2MQoJLy8gYXNzZXJ0KEVYVEVSTkFMX0NPTlNUID09PSA2NTQpCglpbnQgNjU0CglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCW1ldGhvZCAiZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2QgKmFiaV9yb3V0ZV9lCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGV4dGVybmFsTWV0aG9kKCl1aW50OAoqYWJpX3JvdXRlX2V4dGVybmFsTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZXh0ZXJuYWxNZXRob2QoKXVpbnQ4CgljYWxsc3ViIGV4dGVybmFsTWV0aG9kCglpdG9iCglkdXAKCWJpdGxlbgoJcHVzaGludCA4Cgk8PQoKCS8vIGV4dGVybmFsTWV0aG9kIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCXB1c2hieXRlcyAweDdiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS1leHRlcm5hbC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gdGhpcy5leHRlcm5hbEtleS52YWx1ZTsKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWFwcF9nbG9iYWxfZ2V0CglidG9pCglyZXRzdWIKCi8vIGUoKXZvaWQKKmFiaV9yb3V0ZV9lOgoJLy8gZXhlY3V0ZSBlKCl2b2lkCgljYWxsc3ViIGUKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBlKCk6IHZvaWQKZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1MwoJLy8gdmFsOiBFeHRlcm5hbEN1c3RvbVR5cGUgPSA8RXh0ZXJuYWxDdXN0b21UeXBlPjEyMwoJcHVzaGludCAxMjMKCWZyYW1lX2J1cnkgMCAvLyB2YWw6IEV4dGVybmFsQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU0CgkvLyBhc3NlcnQodGhpcy5leHRlcm5hbEtleS52YWx1ZSA9PT0gdmFsKQoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCXB1c2hpbnQgMTIzIC8vIHZhbDogRXh0ZXJuYWxDdXN0b21UeXBlCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTUKCS8vIHggPSA8dWludDI1Nj4zMjEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxCglmcmFtZV9idXJ5IDEgLy8geDogdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU2CgkvLyB5ID0gPEN1c3RvbVR5cGU+MzIxCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MQoJZnJhbWVfYnVyeSAyIC8vIHk6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1OAoJLy8gYXNzZXJ0KHggPT09IHkpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MSAvLyB4OiB1aW50MjU2CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MSAvLyB5OiB1aW50MjU2CgliPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjYwCgkvLyBhc3NlcnQoTVlfQ09OU1QgPT09IDQ1NikKCXB1c2hpbnQgNDU2CglwdXNoaW50IDQ1NgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjYxCgkvLyBhc3NlcnQoRVhURVJOQUxfQ09OU1QgPT09IDY1NCkKCXB1c2hpbnQgNjU0CglwdXNoaW50IDY1NAoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxN2JlYTRiYiAvLyBtZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCXB1c2hieXRlcyAweDI3NzYzMGZjIC8vIG1ldGhvZCAiZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2QgKmFiaV9yb3V0ZV9lCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/E.arc56_draft.json b/tests/contracts/artifacts/E.arc56_draft.json index bacc51a98..7d60a77de 100644 --- a/tests/contracts/artifacts/E.arc56_draft.json +++ b/tests/contracts/artifacts/E.arc56_draft.json @@ -80,657 +80,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 51, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51 - ] - }, - { - "teal": 13, - "source": 51, - "pc": [ - 52, - 53 - ] - }, - { - "teal": 14, - "source": 51, - "pc": [ - 54 - ] - }, - { - "teal": 15, - "source": 51, - "pc": [ - 55, - 56 - ] - }, - { - "teal": 16, - "source": 51, - "pc": [ - 57 - ] - }, - { - "teal": 17, - "source": 51, - "pc": [ - 58, - 59 - ] - }, - { - "teal": 18, - "source": 51, - "pc": [ - 60 - ] - }, - { - "teal": 19, - "source": 51, - "pc": [ - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86 - ] - }, - { - "teal": 23, - "source": 51, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 87 - ] - }, - { - "teal": 28, - "source": 10, - "pc": [ - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 31, - "source": 10, - "pc": [ - 94, - 95, - 96 - ] - }, - { - "teal": 32, - "source": 10, - "pc": [ - 97 - ] - }, - { - "teal": 33, - "source": 10, - "pc": [ - 98 - ] - }, - { - "teal": 34, - "source": 10, - "pc": [ - 99 - ] - }, - { - "teal": 35, - "source": 10, - "pc": [ - 100, - 101 - ] - }, - { - "teal": 36, - "source": 10, - "pc": [ - 102 - ] - }, - { - "teal": 39, - "source": 10, - "errorMessage": "externalMethod return value overflowed 8 bits", - "pc": [ - 103 - ] - }, - { - "teal": 40, - "source": 10, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 41, - "source": 10, - "pc": [ - 107 - ] - }, - { - "teal": 42, - "source": 10, - "pc": [ - 108 - ] - }, - { - "teal": 43, - "source": 10, - "pc": [ - 109 - ] - }, - { - "teal": 44, - "source": 10, - "pc": [ - 110 - ] - }, - { - "teal": 48, - "source": 10, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 52, - "source": 12, - "pc": [ - 114 - ] - }, - { - "teal": 53, - "source": 13, - "pc": [ - 115, - 116, - 117 - ] - }, - { - "teal": 54, - "source": 12, - "pc": [ - 118 - ] - }, - { - "teal": 58, - "source": 13, - "pc": [ - 119 - ] - }, - { - "teal": 59, - "source": 13, - "pc": [ - 120 - ] - }, - { - "teal": 60, - "source": 13, - "pc": [ - 121 - ] - }, - { - "teal": 61, - "source": 10, - "pc": [ - 122 - ] - }, - { - "teal": 66, - "source": 52, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 67, - "source": 52, - "pc": [ - 126 - ] - }, - { - "teal": 68, - "source": 52, - "pc": [ - 127 - ] - }, - { - "teal": 72, - "source": 52, - "pc": [ - 128, - 129, - 130 - ] - }, - { - "teal": 75, - "source": 52, - "pc": [ - 131, - 132 - ] - }, - { - "teal": 76, - "source": 52, - "pc": [ - 133, - 134 - ] - }, - { - "teal": 80, - "source": 53, - "pc": [ - 135 - ] - }, - { - "teal": 81, - "source": 53, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 85, - "source": 54, - "pc": [ - 138 - ] - }, - { - "teal": 86, - "source": 54, - "pc": [ - 139 - ] - }, - { - "teal": 87, - "source": 54, - "pc": [ - 140 - ] - }, - { - "teal": 88, - "source": 54, - "pc": [ - 141 - ] - }, - { - "teal": 89, - "source": 54, - "pc": [ - 142 - ] - }, - { - "teal": 90, - "source": 54, - "pc": [ - 143 - ] - }, - { - "teal": 94, - "source": 55, - "pc": [ - 144 - ] - }, - { - "teal": 95, - "source": 55, - "pc": [ - 145, - 146 - ] - }, - { - "teal": 99, - "source": 56, - "pc": [ - 147 - ] - }, - { - "teal": 100, - "source": 56, - "pc": [ - 148, - 149 - ] - }, - { - "teal": 104, - "source": 58, - "pc": [ - 150 - ] - }, - { - "teal": 105, - "source": 58, - "pc": [ - 151 - ] - }, - { - "teal": 106, - "source": 58, - "pc": [ - 152 - ] - }, - { - "teal": 107, - "source": 58, - "pc": [ - 153 - ] - }, - { - "teal": 111, - "source": 60, - "pc": [ - 154, - 155, - 156 - ] - }, - { - "teal": 112, - "source": 60, - "pc": [ - 157 - ] - }, - { - "teal": 113, - "source": 60, - "pc": [ - 158 - ] - }, - { - "teal": 114, - "source": 60, - "pc": [ - 159 - ] - }, - { - "teal": 118, - "source": 61, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 119, - "source": 61, - "pc": [ - 163 - ] - }, - { - "teal": 120, - "source": 61, - "pc": [ - 164 - ] - }, - { - "teal": 121, - "source": 61, - "pc": [ - 165 - ] - }, - { - "teal": 122, - "source": 52, - "pc": [ - 166 - ] - }, - { - "teal": 125, - "source": 51, - "pc": [ - 167 - ] - }, - { - "teal": 126, - "source": 51, - "pc": [ - 168 - ] - }, - { - "teal": 129, - "source": 51, - "pc": [ - 169, - 170, - 171, - 172, - 173, - 174 - ] - }, - { - "teal": 130, - "source": 51, - "pc": [ - 175, - 176, - 177 - ] - }, - { - "teal": 131, - "source": 51, - "pc": [ - 178, - 179, - 180, - 181 - ] - }, - { - "teal": 134, - "source": 51, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 182 - ] - }, - { - "teal": 137, - "source": 51, - "pc": [ - 183, - 184, - 185, - 186, - 187, - 188 - ] - }, - { - "teal": 138, - "source": 51, - "pc": [ - 189, - 190, - 191, - 192, - 193, - 194 - ] - }, - { - "teal": 139, - "source": 51, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 140, - "source": 51, - "pc": [ - 198, - 199, - 200, - 201, - 202, - 203 - ] - }, - { - "teal": 143, - "source": 51, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 204 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 84 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 100 + ], + "errorMessage": "externalMethod return value overflowed 8 bits" + }, + { + "pc": [ + 356 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 378 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyBleHRlcm5hbE1ldGhvZCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWJ5dGUgMHg3YgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMgoJLy8gcmV0dXJuIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWU7CglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgovLyBlKCl2b2lkCiphYmlfcm91dGVfZToKCS8vIGV4ZWN1dGUgZSgpdm9pZAoJY2FsbHN1YiBlCglpbnQgMQoJcmV0dXJuCgovLyBlKCk6IHZvaWQKZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1MwoJLy8gdmFsOiBFeHRlcm5hbEN1c3RvbVR5cGUgPSA8RXh0ZXJuYWxDdXN0b21UeXBlPjEyMwoJaW50IDEyMwoJZnJhbWVfYnVyeSAwIC8vIHZhbDogRXh0ZXJuYWxDdXN0b21UeXBlCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTQKCS8vIGFzc2VydCh0aGlzLmV4dGVybmFsS2V5LnZhbHVlID09PSB2YWwpCglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJaW50IDEyMyAvLyB2YWw6IEV4dGVybmFsQ3VzdG9tVHlwZQoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU1CgkvLyB4ID0gPHVpbnQyNTY+MzIxCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MQoJZnJhbWVfYnVyeSAxIC8vIHg6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1NgoJLy8geSA9IDxDdXN0b21UeXBlPjMyMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEKCWZyYW1lX2J1cnkgMiAvLyB5OiB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTgKCS8vIGFzc2VydCh4ID09PSB5KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEgLy8geDogdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNDEgLy8geTogdWludDI1NgoJYj09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2MAoJLy8gYXNzZXJ0KE1ZX0NPTlNUID09PSA0NTYpCglpbnQgNDU2CglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2MQoJLy8gYXNzZXJ0KEVYVEVSTkFMX0NPTlNUID09PSA2NTQpCglpbnQgNjU0CglkdXAKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCW1ldGhvZCAiZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2QgKmFiaV9yb3V0ZV9lCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAweAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGV4dGVybmFsTWV0aG9kKCl1aW50OAoqYWJpX3JvdXRlX2V4dGVybmFsTWV0aG9kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZXh0ZXJuYWxNZXRob2QoKXVpbnQ4CgljYWxsc3ViIGV4dGVybmFsTWV0aG9kCglpdG9iCglkdXAKCWJpdGxlbgoJcHVzaGludCA4Cgk8PQoKCS8vIGV4dGVybmFsTWV0aG9kIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDcgMQoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCXB1c2hieXRlcyAweDdiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS1leHRlcm5hbC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gdGhpcy5leHRlcm5hbEtleS52YWx1ZTsKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWFwcF9nbG9iYWxfZ2V0CglidG9pCglyZXRzdWIKCi8vIGUoKXZvaWQKKmFiaV9yb3V0ZV9lOgoJLy8gZXhlY3V0ZSBlKCl2b2lkCgljYWxsc3ViIGUKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBlKCk6IHZvaWQKZToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1MwoJLy8gdmFsOiBFeHRlcm5hbEN1c3RvbVR5cGUgPSA8RXh0ZXJuYWxDdXN0b21UeXBlPjEyMwoJcHVzaGludCAxMjMKCWZyYW1lX2J1cnkgMCAvLyB2YWw6IEV4dGVybmFsQ3VzdG9tVHlwZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU0CgkvLyBhc3NlcnQodGhpcy5leHRlcm5hbEtleS52YWx1ZSA9PT0gdmFsKQoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCXB1c2hpbnQgMTIzIC8vIHZhbDogRXh0ZXJuYWxDdXN0b21UeXBlCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NTUKCS8vIHggPSA8dWludDI1Nj4zMjEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQxCglmcmFtZV9idXJ5IDEgLy8geDogdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjU2CgkvLyB5ID0gPEN1c3RvbVR5cGU+MzIxCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MQoJZnJhbWVfYnVyeSAyIC8vIHk6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo1OAoJLy8gYXNzZXJ0KHggPT09IHkpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MSAvLyB4OiB1aW50MjU2CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0MSAvLyB5OiB1aW50MjU2CgliPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjYwCgkvLyBhc3NlcnQoTVlfQ09OU1QgPT09IDQ1NikKCXB1c2hpbnQgNDU2CglwdXNoaW50IDQ1NgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjYxCgkvLyBhc3NlcnQoRVhURVJOQUxfQ09OU1QgPT09IDY1NCkKCXB1c2hpbnQgNjU0CglwdXNoaW50IDY1NAoJPT0KCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHgxN2JlYTRiYiAvLyBtZXRob2QgImV4dGVybmFsTWV0aG9kKCl1aW50OCIKCXB1c2hieXRlcyAweDI3NzYzMGZjIC8vIG1ldGhvZCAiZSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2QgKmFiaV9yb3V0ZV9lCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAXsmAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQQtleHRlcm5hbEtleTEYFIEGCzEZCI0MAGAAAAAAAAAAAAAAAFIAAAAAAAAAAAAAAIAEFR98dYgADhZJk4EIDkRXBwFQsCJDigABKYABe2cpZBeJiAACIkOKAACAAEcCI4wAKWQXIxJEKIwBKIwCKCioRIHIA0kSRIGOBUkSRIkiQ4AEuER7NjYaAI4B//EAgAQXvqS7gAQndjD8NhoAjgL/jP+vAA==", + "approval": "CiYDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBC2V4dGVybmFsS2V5ADEYFIEGCzEZCI0MAREAAAAAAAAAAAAAAQMAAAAAAAAAAAAAAIAEFR98dYgADxZJk4EIDkRXBwFQsIEBQ4oAAYALZXh0ZXJuYWxLZXmAAXtngAtleHRlcm5hbEtleWQXiYgAA4EBQ4oAAIAARwKBe4wAgAtleHRlcm5hbEtleWQXgXsSRIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGMAYAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGMAoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBqESByAOByAMSRIGOBYGOBRJEiYEBQ4AEuER7NjYaAI4B//AAgAQXvqS7gAQndjD8NhoAjgL+2/8XAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ExternalContract.approval.teal b/tests/contracts/artifacts/ExternalContract.approval.teal index bd177f8d3..440aba9da 100644 --- a/tests/contracts/artifacts/ExternalContract.approval.teal +++ b/tests/contracts/artifacts/ExternalContract.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x65787465726e616c4b6579 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,14 +26,14 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // externalMethod()uint8 *abi_route_externalMethod: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute externalMethod()uint8 callsub externalMethod itob dup bitlen - int 8 + pushint 8 <= // externalMethod return value overflowed 8 bits @@ -40,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM extract 7 1 concat log - int 1 + pushint 1 return // externalMethod(): CustomType @@ -50,7 +51,7 @@ externalMethod: // tests/contracts/inheritance-external.algo.ts:11 // this.externalKey.value = 123 byte 0x65787465726e616c4b6579 // "externalKey" - byte 0x7b + pushbytes 0x7b app_global_put // tests/contracts/inheritance-external.algo.ts:12 @@ -61,11 +62,11 @@ externalMethod: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -73,7 +74,7 @@ externalMethod: err *call_NoOp: - method "externalMethod()uint8" + pushbytes 0x17bea4bb // method "externalMethod()uint8" txna ApplicationArgs 0 match *abi_route_externalMethod diff --git a/tests/contracts/artifacts/ExternalContract.arc32.json b/tests/contracts/artifacts/ExternalContract.arc32.json index 6ebb5d568..0b0af47f0 100644 --- a/tests/contracts/artifacts/ExternalContract.arc32.json +++ b/tests/contracts/artifacts/ExternalContract.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyBleHRlcm5hbE1ldGhvZCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWJ5dGUgMHg3YgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMgoJLy8gcmV0dXJuIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWU7CglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZXh0ZXJuYWxNZXRob2QoKXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZXh0ZXJuYWxNZXRob2QoKXVpbnQ4CiphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDgKCTw9CgoJLy8gZXh0ZXJuYWxNZXRob2QgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGV4dGVybmFsTWV0aG9kKCk6IEN1c3RvbVR5cGUKZXh0ZXJuYWxNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMQoJLy8gdGhpcy5leHRlcm5hbEtleS52YWx1ZSA9IDxDdXN0b21UeXBlPjEyMwoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJcHVzaGJ5dGVzIDB4N2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTIKCS8vIHJldHVybiB0aGlzLmV4dGVybmFsS2V5LnZhbHVlOwoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MTdiZWE0YmIgLy8gbWV0aG9kICJleHRlcm5hbE1ldGhvZCgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2V4dGVybmFsTWV0aG9kCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ExternalContract.arc56_draft.json b/tests/contracts/artifacts/ExternalContract.arc56_draft.json index 88f0693b9..3472731ab 100644 --- a/tests/contracts/artifacts/ExternalContract.arc56_draft.json +++ b/tests/contracts/artifacts/ExternalContract.arc56_draft.json @@ -67,379 +67,46 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 7, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17 - ] - }, - { - "teal": 13, - "source": 7, - "pc": [ - 18, - 19 - ] - }, - { - "teal": 14, - "source": 7, - "pc": [ - 20 - ] - }, - { - "teal": 15, - "source": 7, - "pc": [ - 21, - 22 - ] - }, - { - "teal": 16, - "source": 7, - "pc": [ - 23 - ] - }, - { - "teal": 17, - "source": 7, - "pc": [ - 24, - 25 - ] - }, - { - "teal": 18, - "source": 7, - "pc": [ - 26 - ] - }, - { - "teal": 19, - "source": 7, - "pc": [ - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 23, - "source": 7, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 53 - ] - }, - { - "teal": 28, - "source": 10, - "pc": [ - 54, - 55, - 56, - 57, - 58, - 59 - ] - }, - { - "teal": 31, - "source": 10, - "pc": [ - 60, - 61, - 62 - ] - }, - { - "teal": 32, - "source": 10, - "pc": [ - 63 - ] - }, - { - "teal": 33, - "source": 10, - "pc": [ - 64 - ] - }, - { - "teal": 34, - "source": 10, - "pc": [ - 65 - ] - }, - { - "teal": 35, - "source": 10, - "pc": [ - 66, - 67 - ] - }, - { - "teal": 36, - "source": 10, - "pc": [ - 68 - ] - }, - { - "teal": 39, - "source": 10, - "errorMessage": "externalMethod return value overflowed 8 bits", - "pc": [ - 69 - ] - }, - { - "teal": 40, - "source": 10, - "pc": [ - 70, - 71, - 72 - ] - }, - { - "teal": 41, - "source": 10, - "pc": [ - 73 - ] - }, - { - "teal": 42, - "source": 10, - "pc": [ - 74 - ] - }, - { - "teal": 43, - "source": 10, - "pc": [ - 75 - ] - }, - { - "teal": 44, - "source": 10, - "pc": [ - 76 - ] - }, - { - "teal": 48, - "source": 10, - "pc": [ - 77, - 78, - 79 - ] - }, - { - "teal": 52, - "source": 11, - "pc": [ - 80 - ] - }, - { - "teal": 53, - "source": 11, - "pc": [ - 81, - 82, - 83 - ] - }, - { - "teal": 54, - "source": 11, - "pc": [ - 84 - ] - }, - { - "teal": 58, - "source": 12, - "pc": [ - 85 - ] - }, - { - "teal": 59, - "source": 12, - "pc": [ - 86 - ] - }, - { - "teal": 60, - "source": 12, - "pc": [ - 87 - ] - }, - { - "teal": 61, - "source": 10, - "pc": [ - 88 - ] - }, - { - "teal": 64, - "source": 7, - "pc": [ - 89 - ] - }, - { - "teal": 65, - "source": 7, - "pc": [ - 90 - ] - }, - { - "teal": 68, - "source": 7, - "pc": [ - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 69, - "source": 7, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 70, - "source": 7, - "pc": [ - 100, - 101, - 102, - 103 - ] - }, - { - "teal": 73, - "source": 7, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 104 - ] - }, - { - "teal": 76, - "source": 7, - "pc": [ - 105, - 106, - 107, - 108, - 109, - 110 - ] - }, - { - "teal": 77, - "source": 7, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 78, - "source": 7, - "pc": [ - 114, - 115, - 116, - 117 - ] - }, - { - "teal": 81, - "source": 7, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 118 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 50 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 66 + ], + "errorMessage": "externalMethod return value overflowed 8 bits" + }, + { + "pc": [ + 127 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 141 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBleHRlcm5hbE1ldGhvZCgpdWludDgKKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyBleHRlcm5hbE1ldGhvZCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHRlcm5hbE1ldGhvZCgpOiBDdXN0b21UeXBlCmV4dGVybmFsTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTEKCS8vIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWUgPSA8Q3VzdG9tVHlwZT4xMjMKCWJ5dGUgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5IC8vICJleHRlcm5hbEtleSIKCWJ5dGUgMHg3YgoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMgoJLy8gcmV0dXJuIHRoaXMuZXh0ZXJuYWxLZXkudmFsdWU7CglieXRlIDB4NjU3ODc0NjU3MjZlNjE2YzRiNjU3OSAvLyAiZXh0ZXJuYWxLZXkiCglhcHBfZ2xvYmFsX2dldAoJYnRvaQoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiZXh0ZXJuYWxNZXRob2QoKXVpbnQ4IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9leHRlcm5hbE1ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2NTc4NzQ2NTcyNmU2MTZjNGI2NTc5CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gZXh0ZXJuYWxNZXRob2QoKXVpbnQ4CiphYmlfcm91dGVfZXh0ZXJuYWxNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBleHRlcm5hbE1ldGhvZCgpdWludDgKCWNhbGxzdWIgZXh0ZXJuYWxNZXRob2QKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDgKCTw9CgoJLy8gZXh0ZXJuYWxNZXRob2QgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIGV4dGVybmFsTWV0aG9kKCk6IEN1c3RvbVR5cGUKZXh0ZXJuYWxNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UtZXh0ZXJuYWwuYWxnby50czoxMQoJLy8gdGhpcy5leHRlcm5hbEtleS52YWx1ZSA9IDxDdXN0b21UeXBlPjEyMwoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJcHVzaGJ5dGVzIDB4N2IKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLWV4dGVybmFsLmFsZ28udHM6MTIKCS8vIHJldHVybiB0aGlzLmV4dGVybmFsS2V5LnZhbHVlOwoJYnl0ZSAweDY1Nzg3NDY1NzI2ZTYxNmM0YjY1NzkgLy8gImV4dGVybmFsS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWJ0b2kKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MTdiZWE0YmIgLy8gbWV0aG9kICJleHRlcm5hbE1ldGhvZCgpdWludDgiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2V4dGVybmFsTWV0aG9kCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBC2V4dGVybmFsS2V5MRgUgQYLMRkIjQwANAAAAAAAAAAAAAAAJgAAAAAAAAAAAAAAgAQVH3x1iAAOFkmTgQgORFcHAVCwIkOKAAEogAF7ZyhkF4kiQ4AEuER7NjYaAI4B//EAgAQXvqS7NhoAjgH/wAA=", + "approval": "CiYBC2V4dGVybmFsS2V5MRgUgQYLMRkIjQwATgAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAgAQVH3x1iAAPFkmTgQgORFcHAVCwgQFDigABgAtleHRlcm5hbEtleYABe2eAC2V4dGVybmFsS2V5ZBeJgQFDgAS4RHs2NhoAjgH/8ACABBe+pLs2GgCOAf+mAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/F.approval.teal b/tests/contracts/artifacts/F.approval.teal index 0bb3d3e2e..a412da8d6 100644 --- a/tests/contracts/artifacts/F.approval.teal +++ b/tests/contracts/artifacts/F.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +25,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // publicMethod()string *abi_route_publicMethod: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute publicMethod()string callsub publicMethod @@ -37,7 +37,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // publicMethod(): string @@ -46,7 +46,7 @@ publicMethod: // tests/contracts/inheritance.algo.ts:67 // return 'public'; - byte 0x7075626c6963 // "public" + pushbytes 0x7075626c6963 // "public" retsub // privateMethod(): string @@ -55,7 +55,7 @@ privateMethod: // tests/contracts/inheritance.algo.ts:71 // return 'private'; - byte 0x70726976617465 // "private" + pushbytes 0x70726976617465 // "private" retsub // protectedMethod(): string @@ -64,15 +64,15 @@ protectedMethod: // tests/contracts/inheritance.algo.ts:75 // return 'protected'; - byte 0x70726f746563746564 // "protected" + pushbytes 0x70726f746563746564 // "protected" retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -80,7 +80,7 @@ protectedMethod: err *call_NoOp: - method "publicMethod()string" + pushbytes 0xe0418c54 // method "publicMethod()string" txna ApplicationArgs 0 match *abi_route_publicMethod diff --git a/tests/contracts/artifacts/F.arc32.json b/tests/contracts/artifacts/F.arc32.json index f45743aec..652abdf64 100644 --- a/tests/contracts/artifacts/F.arc32.json +++ b/tests/contracts/artifacts/F.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglieXRlIDB4NzA3MjY5NzY2MTc0NjUgLy8gInByaXZhdGUiCglyZXRzdWIKCi8vIHByb3RlY3RlZE1ldGhvZCgpOiBzdHJpbmcKcHJvdGVjdGVkTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzUKCS8vIHJldHVybiAncHJvdGVjdGVkJzsKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2QKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcHVibGljTWV0aG9kKClzdHJpbmcKKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHB1YmxpY01ldGhvZCgpOiBzdHJpbmcKcHVibGljTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NjcKCS8vIHJldHVybiAncHVibGljJzsKCXB1c2hieXRlcyAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglwdXNoYnl0ZXMgMHg3MDcyNjk3NjYxNzQ2NSAvLyAicHJpdmF0ZSIKCXJldHN1YgoKLy8gcHJvdGVjdGVkTWV0aG9kKCk6IHN0cmluZwpwcm90ZWN0ZWRNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3NQoJLy8gcmV0dXJuICdwcm90ZWN0ZWQnOwoJcHVzaGJ5dGVzIDB4NzA3MjZmNzQ2NTYzNzQ2NTY0IC8vICJwcm90ZWN0ZWQiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGUwNDE4YzU0IC8vIG1ldGhvZCAicHVibGljTWV0aG9kKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3B1YmxpY01ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/F.arc56_draft.json b/tests/contracts/artifacts/F.arc56_draft.json index 199beaefa..430d715e1 100644 --- a/tests/contracts/artifacts/F.arc56_draft.json +++ b/tests/contracts/artifacts/F.arc56_draft.json @@ -61,390 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 65, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 65, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 65, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 65, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 65, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 65, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 65, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 65, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 65, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 66, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 66, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 66, - "pc": [ - 49 - ] - }, - { - "teal": 33, - "source": 66, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 66, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 66, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 66, - "pc": [ - 55 - ] - }, - { - "teal": 37, - "source": 66, - "pc": [ - 56 - ] - }, - { - "teal": 38, - "source": 66, - "pc": [ - 57 - ] - }, - { - "teal": 39, - "source": 66, - "pc": [ - 58 - ] - }, - { - "teal": 40, - "source": 66, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 66, - "pc": [ - 60 - ] - }, - { - "teal": 45, - "source": 66, - "pc": [ - 61, - 62, - 63 - ] - }, - { - "teal": 49, - "source": 67, - "pc": [ - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71 - ] - }, - { - "teal": 50, - "source": 66, - "pc": [ - 72 - ] - }, - { - "teal": 54, - "source": 70, - "pc": [ - 73, - 74, - 75 - ] - }, - { - "teal": 58, - "source": 71, - "pc": [ - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84 - ] - }, - { - "teal": 59, - "source": 70, - "pc": [ - 85 - ] - }, - { - "teal": 63, - "source": 74, - "pc": [ - 86, - 87, - 88 - ] - }, - { - "teal": 67, - "source": 75, - "pc": [ - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99 - ] - }, - { - "teal": 68, - "source": 74, - "pc": [ - 100 - ] - }, - { - "teal": 71, - "source": 65, - "pc": [ - 101 - ] - }, - { - "teal": 72, - "source": 65, - "pc": [ - 102 - ] - }, - { - "teal": 75, - "source": 65, - "pc": [ - 103, - 104, - 105, - 106, - 107, - 108 - ] - }, - { - "teal": 76, - "source": 65, - "pc": [ - 109, - 110, - 111 - ] - }, - { - "teal": 77, - "source": 65, - "pc": [ - 112, - 113, - 114, - 115 - ] - }, - { - "teal": 80, - "source": 65, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 116 - ] - }, - { - "teal": 83, - "source": 65, - "pc": [ - 117, - 118, - 119, - 120, - 121, - 122 - ] - }, - { - "teal": 84, - "source": 65, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 85, - "source": 65, - "pc": [ - 126, - 127, - 128, - 129 - ] - }, - { - "teal": 88, - "source": 65, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 130 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 115 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 129 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglieXRlIDB4NzA3MjY5NzY2MTc0NjUgLy8gInByaXZhdGUiCglyZXRzdWIKCi8vIHByb3RlY3RlZE1ldGhvZCgpOiBzdHJpbmcKcHJvdGVjdGVkTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzUKCS8vIHJldHVybiAncHJvdGVjdGVkJzsKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2QKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcHVibGljTWV0aG9kKClzdHJpbmcKKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCXB1c2hieXRlcyAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHB1YmxpY01ldGhvZCgpOiBzdHJpbmcKcHVibGljTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NjcKCS8vIHJldHVybiAncHVibGljJzsKCXB1c2hieXRlcyAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglwdXNoYnl0ZXMgMHg3MDcyNjk3NjYxNzQ2NSAvLyAicHJpdmF0ZSIKCXJldHN1YgoKLy8gcHJvdGVjdGVkTWV0aG9kKCk6IHN0cmluZwpwcm90ZWN0ZWRNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3NQoJLy8gcmV0dXJuICdwcm90ZWN0ZWQnOwoJcHVzaGJ5dGVzIDB4NzA3MjZmNzQ2NTYzNzQ2NTY0IC8vICJwcm90ZWN0ZWQiCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGUwNDE4YzU0IC8vIG1ldGhvZCAicHVibGljTWV0aG9kKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3B1YmxpY01ldGhvZAoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MAE4AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAEFR98dYgADEkVFlcGAkxQULAiQ4oAAYAGcHVibGljiYoAAYAHcHJpdmF0ZYmKAAGACXByb3RlY3RlZIkiQ4AEuER7NjYaAI4B//EAgATgQYxUNhoAjgH/pgA=", + "approval": "CjEYFIEGCzEZCI0MAFAAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAIAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGABnB1YmxpY4mKAAGAB3ByaXZhdGWJigABgAlwcm90ZWN0ZWSJgQFDgAS4RHs2NhoAjgH/8ACABOBBjFQ2GgCOAf+kAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/FunctionsTest.approval.teal b/tests/contracts/artifacts/FunctionsTest.approval.teal index 7beac6dc6..cbb7144dc 100644 --- a/tests/contracts/artifacts/FunctionsTest.approval.teal +++ b/tests/contracts/artifacts/FunctionsTest.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x151f7c75 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -40,7 +41,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM itob concat log - int 1 + pushint 1 return // callNonClassFunction(a: uint64, b: uint64): uint64 @@ -72,7 +73,7 @@ callNonClassFunction: itob concat log - int 1 + pushint 1 return // callExternalFunction(a: uint64, b: uint64): uint64 @@ -104,7 +105,7 @@ callExternalFunction: itob concat log - int 1 + pushint 1 return // callPackageFunction(a: uint64, b: uint64): uint64 @@ -119,11 +120,11 @@ callPackageFunction: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -131,9 +132,9 @@ callPackageFunction: err *call_NoOp: - method "callNonClassFunction(uint64,uint64)uint64" - method "callExternalFunction(uint64,uint64)uint64" - method "callPackageFunction(uint64,uint64)uint64" + pushbytes 0x8fd23b48 // method "callNonClassFunction(uint64,uint64)uint64" + pushbytes 0xf5db3b41 // method "callExternalFunction(uint64,uint64)uint64" + pushbytes 0x8b789196 // method "callPackageFunction(uint64,uint64)uint64" txna ApplicationArgs 0 match *abi_route_callNonClassFunction *abi_route_callExternalFunction *abi_route_callPackageFunction diff --git a/tests/contracts/artifacts/FunctionsTest.arc32.json b/tests/contracts/artifacts/FunctionsTest.arc32.json index c0b7af524..e142a459d 100644 --- a/tests/contracts/artifacts/FunctionsTest.arc32.json +++ b/tests/contracts/artifacts/FunctionsTest.arc32.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjYWxsTm9uQ2xhc3NGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2NhbGxOb25DbGFzc0Z1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGNhbGxOb25DbGFzc0Z1bmN0aW9uCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY2FsbE5vbkNsYXNzRnVuY3Rpb24oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKY2FsbE5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MTIKCS8vIHJldHVybiBub25DbGFzc0Z1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBub25DbGFzc0Z1bmN0aW9uCglyZXRzdWIKCi8vIGNhbGxFeHRlcm5hbEZ1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfY2FsbEV4dGVybmFsRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbEV4dGVybmFsRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbEV4dGVybmFsRnVuY3Rpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsRXh0ZXJuYWxGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApjYWxsRXh0ZXJuYWxGdW5jdGlvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9mdW5jdGlvbnMuYWxnby50czoxNgoJLy8gcmV0dXJuIGV4dGVybmFsRnVuY3Rpb24oYSwgYik7CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIGV4dGVybmFsRnVuY3Rpb24KCXJldHN1YgoKLy8gY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2NhbGxQYWNrYWdlRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBjYWxsUGFja2FnZUZ1bmN0aW9uCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY2FsbFBhY2thZ2VGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApjYWxsUGFja2FnZUZ1bmN0aW9uOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2Z1bmN0aW9ucy5hbGdvLnRzOjIwCgkvLyByZXR1cm4gcGFja2FnZUZ1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBwYWNrYWdlRnVuY3Rpb24KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJjYWxsRXh0ZXJuYWxGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2FsbE5vbkNsYXNzRnVuY3Rpb24gKmFiaV9yb3V0ZV9jYWxsRXh0ZXJuYWxGdW5jdGlvbiAqYWJpX3JvdXRlX2NhbGxQYWNrYWdlRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCi8vIHBhY2thZ2VGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApwYWNrYWdlRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyBub2RlX21vZHVsZXMvdGVhbHNjcmlwdF90ZXN0X3BhY2thZ2UvaW5kZXgudHM6NAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBleHRlcm5hbEZ1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4dGVybmFsRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLWV4dGVybmFsLmFsZ28udHM6MgoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBub25DbGFzc0Z1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Cm5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6NwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfY2FsbE5vbkNsYXNzRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbE5vbkNsYXNzRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbE5vbkNsYXNzRnVuY3Rpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2FsbE5vbkNsYXNzRnVuY3Rpb24oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKY2FsbE5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MTIKCS8vIHJldHVybiBub25DbGFzc0Z1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBub25DbGFzc0Z1bmN0aW9uCglyZXRzdWIKCi8vIGNhbGxFeHRlcm5hbEZ1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfY2FsbEV4dGVybmFsRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbEV4dGVybmFsRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbEV4dGVybmFsRnVuY3Rpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2FsbEV4dGVybmFsRnVuY3Rpb24oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKY2FsbEV4dGVybmFsRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MTYKCS8vIHJldHVybiBleHRlcm5hbEZ1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBleHRlcm5hbEZ1bmN0aW9uCglyZXRzdWIKCi8vIGNhbGxQYWNrYWdlRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9jYWxsUGFja2FnZUZ1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNhbGxQYWNrYWdlRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbFBhY2thZ2VGdW5jdGlvbgoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjYWxsUGFja2FnZUZ1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmNhbGxQYWNrYWdlRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MjAKCS8vIHJldHVybiBwYWNrYWdlRnVuY3Rpb24oYSwgYik7CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIHBhY2thZ2VGdW5jdGlvbgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4ZmQyM2I0OCAvLyBtZXRob2QgImNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZjVkYjNiNDEgLy8gbWV0aG9kICJjYWxsRXh0ZXJuYWxGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDhiNzg5MTk2IC8vIG1ldGhvZCAiY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2FsbE5vbkNsYXNzRnVuY3Rpb24gKmFiaV9yb3V0ZV9jYWxsRXh0ZXJuYWxGdW5jdGlvbiAqYWJpX3JvdXRlX2NhbGxQYWNrYWdlRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCi8vIHBhY2thZ2VGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApwYWNrYWdlRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyBub2RlX21vZHVsZXMvdGVhbHNjcmlwdF90ZXN0X3BhY2thZ2UvaW5kZXgudHM6NAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBleHRlcm5hbEZ1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4dGVybmFsRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLWV4dGVybmFsLmFsZ28udHM6MgoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBub25DbGFzc0Z1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Cm5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6NwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/FunctionsTest.arc56_draft.json b/tests/contracts/artifacts/FunctionsTest.arc56_draft.json index d01eea5db..231fe807b 100644 --- a/tests/contracts/artifacts/FunctionsTest.arc56_draft.json +++ b/tests/contracts/artifacts/FunctionsTest.arc56_draft.json @@ -114,727 +114,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 10, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10 - ] - }, - { - "teal": 13, - "source": 10, - "pc": [ - 11, - 12 - ] - }, - { - "teal": 14, - "source": 10, - "pc": [ - 13 - ] - }, - { - "teal": 15, - "source": 10, - "pc": [ - 14, - 15 - ] - }, - { - "teal": 16, - "source": 10, - "pc": [ - 16 - ] - }, - { - "teal": 17, - "source": 10, - "pc": [ - 17, - 18 - ] - }, - { - "teal": 18, - "source": 10, - "pc": [ - 19 - ] - }, - { - "teal": 19, - "source": 10, - "pc": [ - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 23, - "source": 10, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 46 - ] - }, - { - "teal": 28, - "source": 11, - "pc": [ - 47 - ] - }, - { - "teal": 31, - "source": 11, - "pc": [ - 48, - 49, - 50 - ] - }, - { - "teal": 32, - "source": 11, - "pc": [ - 51 - ] - }, - { - "teal": 35, - "source": 11, - "pc": [ - 52, - 53, - 54 - ] - }, - { - "teal": 36, - "source": 11, - "pc": [ - 55 - ] - }, - { - "teal": 39, - "source": 11, - "pc": [ - 56, - 57, - 58 - ] - }, - { - "teal": 40, - "source": 11, - "pc": [ - 59 - ] - }, - { - "teal": 41, - "source": 11, - "pc": [ - 60 - ] - }, - { - "teal": 42, - "source": 11, - "pc": [ - 61 - ] - }, - { - "teal": 43, - "source": 11, - "pc": [ - 62 - ] - }, - { - "teal": 44, - "source": 11, - "pc": [ - 63 - ] - }, - { - "teal": 48, - "source": 11, - "pc": [ - 64, - 65, - 66 - ] - }, - { - "teal": 52, - "source": 12, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 53, - "source": 12, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 54, - "source": 12, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 55, - "source": 11, - "pc": [ - 74 - ] - }, - { - "teal": 60, - "source": 15, - "pc": [ - 75 - ] - }, - { - "teal": 63, - "source": 15, - "pc": [ - 76, - 77, - 78 - ] - }, - { - "teal": 64, - "source": 15, - "pc": [ - 79 - ] - }, - { - "teal": 67, - "source": 15, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 68, - "source": 15, - "pc": [ - 83 - ] - }, - { - "teal": 71, - "source": 15, - "pc": [ - 84, - 85, - 86 - ] - }, - { - "teal": 72, - "source": 15, - "pc": [ - 87 - ] - }, - { - "teal": 73, - "source": 15, - "pc": [ - 88 - ] - }, - { - "teal": 74, - "source": 15, - "pc": [ - 89 - ] - }, - { - "teal": 75, - "source": 15, - "pc": [ - 90 - ] - }, - { - "teal": 76, - "source": 15, - "pc": [ - 91 - ] - }, - { - "teal": 80, - "source": 15, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 84, - "source": 16, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 85, - "source": 16, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 86, - "source": 16, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 87, - "source": 15, - "pc": [ - 102 - ] - }, - { - "teal": 92, - "source": 19, - "pc": [ - 103 - ] - }, - { - "teal": 95, - "source": 19, - "pc": [ - 104, - 105, - 106 - ] - }, - { - "teal": 96, - "source": 19, - "pc": [ - 107 - ] - }, - { - "teal": 99, - "source": 19, - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 100, - "source": 19, - "pc": [ - 111 - ] - }, - { - "teal": 103, - "source": 19, - "pc": [ - 112, - 113, - 114 - ] - }, - { - "teal": 104, - "source": 19, - "pc": [ - 115 - ] - }, - { - "teal": 105, - "source": 19, - "pc": [ - 116 - ] - }, - { - "teal": 106, - "source": 19, - "pc": [ - 117 - ] - }, - { - "teal": 107, - "source": 19, - "pc": [ - 118 - ] - }, - { - "teal": 108, - "source": 19, - "pc": [ - 119 - ] - }, - { - "teal": 112, - "source": 19, - "pc": [ - 120, - 121, - 122 - ] - }, - { - "teal": 116, - "source": 20, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 117, - "source": 20, - "pc": [ - 125, - 126 - ] - }, - { - "teal": 118, - "source": 20, - "pc": [ - 127, - 128, - 129 - ] - }, - { - "teal": 119, - "source": 19, - "pc": [ - 130 - ] - }, - { - "teal": 122, - "source": 10, - "pc": [ - 131 - ] - }, - { - "teal": 123, - "source": 10, - "pc": [ - 132 - ] - }, - { - "teal": 126, - "source": 10, - "pc": [ - 133, - 134, - 135, - 136, - 137, - 138 - ] - }, - { - "teal": 127, - "source": 10, - "pc": [ - 139, - 140, - 141 - ] - }, - { - "teal": 128, - "source": 10, - "pc": [ - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 131, - "source": 10, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 146 - ] - }, - { - "teal": 134, - "source": 10, - "pc": [ - 147, - 148, - 149, - 150, - 151, - 152 - ] - }, - { - "teal": 135, - "source": 10, - "pc": [ - 153, - 154, - 155, - 156, - 157, - 158 - ] - }, - { - "teal": 136, - "source": 10, - "pc": [ - 159, - 160, - 161, - 162, - 163, - 164 - ] - }, - { - "teal": 137, - "source": 10, - "pc": [ - 165, - 166, - 167 - ] - }, - { - "teal": 138, - "source": 10, - "pc": [ - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175 - ] - }, - { - "teal": 141, - "source": 10, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 176 - ] - }, - { - "teal": 145, - "source": 2, - "pc": [ - 177, - 178, - 179 - ] - }, - { - "teal": 149, - "source": 4, - "pc": [ - 180, - 181 - ] - }, - { - "teal": 150, - "source": 4, - "pc": [ - 182, - 183 - ] - }, - { - "teal": 151, - "source": 4, - "pc": [ - 184 - ] - }, - { - "teal": 152, - "source": 2, - "pc": [ - 185 - ] - }, - { - "teal": 156, - "source": 1, - "pc": [ - 186, - 187, - 188 - ] - }, - { - "teal": 160, - "source": 2, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 161, - "source": 2, - "pc": [ - 191, - 192 - ] - }, - { - "teal": 162, - "source": 2, - "pc": [ - 193 - ] - }, - { - "teal": 163, - "source": 1, - "pc": [ - 194 - ] - }, - { - "teal": 167, - "source": 6, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 171, - "source": 7, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 172, - "source": 7, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 173, - "source": 7, - "pc": [ - 202 - ] - }, - { - "teal": 174, - "source": 6, - "pc": [ - 203 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 43 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 162 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 192 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBjYWxsTm9uQ2xhc3NGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2NhbGxOb25DbGFzc0Z1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGNhbGxOb25DbGFzc0Z1bmN0aW9uCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY2FsbE5vbkNsYXNzRnVuY3Rpb24oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKY2FsbE5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MTIKCS8vIHJldHVybiBub25DbGFzc0Z1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBub25DbGFzc0Z1bmN0aW9uCglyZXRzdWIKCi8vIGNhbGxFeHRlcm5hbEZ1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfY2FsbEV4dGVybmFsRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbEV4dGVybmFsRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbEV4dGVybmFsRnVuY3Rpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsRXh0ZXJuYWxGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApjYWxsRXh0ZXJuYWxGdW5jdGlvbjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9mdW5jdGlvbnMuYWxnby50czoxNgoJLy8gcmV0dXJuIGV4dGVybmFsRnVuY3Rpb24oYSwgYik7CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIGV4dGVybmFsRnVuY3Rpb24KCXJldHN1YgoKLy8gY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2NhbGxQYWNrYWdlRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBjYWxsUGFja2FnZUZ1bmN0aW9uCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY2FsbFBhY2thZ2VGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApjYWxsUGFja2FnZUZ1bmN0aW9uOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2Z1bmN0aW9ucy5hbGdvLnRzOjIwCgkvLyByZXR1cm4gcGFja2FnZUZ1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBwYWNrYWdlRnVuY3Rpb24KCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgImNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJjYWxsRXh0ZXJuYWxGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2FsbE5vbkNsYXNzRnVuY3Rpb24gKmFiaV9yb3V0ZV9jYWxsRXh0ZXJuYWxGdW5jdGlvbiAqYWJpX3JvdXRlX2NhbGxQYWNrYWdlRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCi8vIHBhY2thZ2VGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApwYWNrYWdlRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyBub2RlX21vZHVsZXMvdGVhbHNjcmlwdF90ZXN0X3BhY2thZ2UvaW5kZXgudHM6NAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBleHRlcm5hbEZ1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4dGVybmFsRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLWV4dGVybmFsLmFsZ28udHM6MgoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBub25DbGFzc0Z1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Cm5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6NwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfY2FsbE5vbkNsYXNzRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbE5vbkNsYXNzRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbE5vbkNsYXNzRnVuY3Rpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2FsbE5vbkNsYXNzRnVuY3Rpb24oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKY2FsbE5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MTIKCS8vIHJldHVybiBub25DbGFzc0Z1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBub25DbGFzc0Z1bmN0aW9uCglyZXRzdWIKCi8vIGNhbGxFeHRlcm5hbEZ1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfY2FsbEV4dGVybmFsRnVuY3Rpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgY2FsbEV4dGVybmFsRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbEV4dGVybmFsRnVuY3Rpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gY2FsbEV4dGVybmFsRnVuY3Rpb24oYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKY2FsbEV4dGVybmFsRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MTYKCS8vIHJldHVybiBleHRlcm5hbEZ1bmN0aW9uKGEsIGIpOwoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJY2FsbHN1YiBleHRlcm5hbEZ1bmN0aW9uCglyZXRzdWIKCi8vIGNhbGxQYWNrYWdlRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9jYWxsUGFja2FnZUZ1bmN0aW9uOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGNhbGxQYWNrYWdlRnVuY3Rpb24odWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgY2FsbFBhY2thZ2VGdW5jdGlvbgoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBjYWxsUGFja2FnZUZ1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmNhbGxQYWNrYWdlRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6MjAKCS8vIHJldHVybiBwYWNrYWdlRnVuY3Rpb24oYSwgYik7CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CgljYWxsc3ViIHBhY2thZ2VGdW5jdGlvbgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg4ZmQyM2I0OCAvLyBtZXRob2QgImNhbGxOb25DbGFzc0Z1bmN0aW9uKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZjVkYjNiNDEgLy8gbWV0aG9kICJjYWxsRXh0ZXJuYWxGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDhiNzg5MTk2IC8vIG1ldGhvZCAiY2FsbFBhY2thZ2VGdW5jdGlvbih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY2FsbE5vbkNsYXNzRnVuY3Rpb24gKmFiaV9yb3V0ZV9jYWxsRXh0ZXJuYWxGdW5jdGlvbiAqYWJpX3JvdXRlX2NhbGxQYWNrYWdlRnVuY3Rpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnIKCi8vIHBhY2thZ2VGdW5jdGlvbihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApwYWNrYWdlRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyBub2RlX21vZHVsZXMvdGVhbHNjcmlwdF90ZXN0X3BhY2thZ2UvaW5kZXgudHM6NAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBleHRlcm5hbEZ1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4dGVybmFsRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLWV4dGVybmFsLmFsZ28udHM6MgoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBub25DbGFzc0Z1bmN0aW9uKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0Cm5vbkNsYXNzRnVuY3Rpb246Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZnVuY3Rpb25zLmFsZ28udHM6NwoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYBBBUffHUxGBSBBgsxGQiNDABlAAAAAAAAAAAAAABXAAAAAAAAAAAAAAAoNhoCFzYaAReIAAUWULAiQ4oCAYv+i/+IAHmJKDYaAhc2GgEXiAAFFlCwIkOKAgGL/ov/iABUiSg2GgIXNhoBF4gABRZQsCJDigIBi/6L/4gAL4kiQ4AEuER7NjYaAI4B//EAgASP0jtIgAT12ztBgASLeJGWNhoAjgP/f/+b/7cAigIBi/+L/giJigIBi/+L/giJigIBi/+L/giJ", + "approval": "CiYBBBUffHUxGBSBBgsxGQiNDAB4AAAAAAAAAAAAAABqAAAAAAAAAAAAAACABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYv+i/+IAIaJgAQVH3x1NhoCFzYaAReIAAYWULCBAUOKAgGL/ov/iABbiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBi/6L/4gAMImBAUOABLhEezY2GgCOAf/wAIAEj9I7SIAE9ds7QYAEi3iRljYaAI4D/2z/jv+wAIoCAYv/i/4IiYoCAYv/i/4IiYoCAYv/i/4IiQ==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/G.approval.teal b/tests/contracts/artifacts/G.approval.teal index d4de35d61..f5828cd40 100644 --- a/tests/contracts/artifacts/G.approval.teal +++ b/tests/contracts/artifacts/G.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x70726f746563746564 0x7075626c6963 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -25,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM // publicMethod()string *abi_route_publicMethod: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // execute publicMethod()string callsub publicMethod @@ -37,7 +38,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM concat concat log - int 1 + pushint 1 return // publicMethod(): string @@ -55,7 +56,7 @@ privateMethod: // tests/contracts/inheritance.algo.ts:71 // return 'private'; - byte 0x70726976617465 // "private" + pushbytes 0x70726976617465 // "private" retsub // protectedMethod(): string @@ -71,7 +72,7 @@ protectedMethod: *abi_route_g: // execute g()void callsub g - int 1 + pushint 1 return // g(): void @@ -94,11 +95,11 @@ g: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -106,8 +107,8 @@ g: err *call_NoOp: - method "publicMethod()string" - method "g()void" + pushbytes 0xe0418c54 // method "publicMethod()string" + pushbytes 0xf2b65f27 // method "g()void" txna ApplicationArgs 0 match *abi_route_publicMethod *abi_route_g diff --git a/tests/contracts/artifacts/G.arc32.json b/tests/contracts/artifacts/G.arc32.json index 54619bb4b..210eb6c87 100644 --- a/tests/contracts/artifacts/G.arc32.json +++ b/tests/contracts/artifacts/G.arc32.json @@ -44,7 +44,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglieXRlIDB4NzA3MjY5NzY2MTc0NjUgLy8gInByaXZhdGUiCglyZXRzdWIKCi8vIHByb3RlY3RlZE1ldGhvZCgpOiBzdHJpbmcKcHJvdGVjdGVkTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzUKCS8vIHJldHVybiAncHJvdGVjdGVkJzsKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCXJldHN1YgoKLy8gZygpdm9pZAoqYWJpX3JvdXRlX2c6CgkvLyBleGVjdXRlIGcoKXZvaWQKCWNhbGxzdWIgZwoJaW50IDEKCXJldHVybgoKLy8gZygpOiB2b2lkCmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MQoJLy8gYXNzZXJ0KHRoaXMucHJvdGVjdGVkTWV0aG9kKCkgPT09ICdwcm90ZWN0ZWQnKQoJY2FsbHN1YiBwcm90ZWN0ZWRNZXRob2QKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MgoJLy8gYXNzZXJ0KHRoaXMucHVibGljTWV0aG9kKCkgPT09ICdwdWJsaWMnKQoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWJ5dGUgMHg3MDc1NjI2YzY5NjMgLy8gInB1YmxpYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJbWV0aG9kICJnKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2QgKmFiaV9yb3V0ZV9nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg3MDcyNmY3NDY1NjM3NDY1NjQgMHg3MDc1NjI2YzY5NjMKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHB1YmxpY01ldGhvZCgpc3RyaW5nCgljYWxsc3ViIHB1YmxpY01ldGhvZAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglwdXNoYnl0ZXMgMHg3MDcyNjk3NjYxNzQ2NSAvLyAicHJpdmF0ZSIKCXJldHN1YgoKLy8gcHJvdGVjdGVkTWV0aG9kKCk6IHN0cmluZwpwcm90ZWN0ZWRNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3NQoJLy8gcmV0dXJuICdwcm90ZWN0ZWQnOwoJYnl0ZSAweDcwNzI2Zjc0NjU2Mzc0NjU2NCAvLyAicHJvdGVjdGVkIgoJcmV0c3ViCgovLyBnKCl2b2lkCiphYmlfcm91dGVfZzoKCS8vIGV4ZWN1dGUgZygpdm9pZAoJY2FsbHN1YiBnCglwdXNoaW50IDEKCXJldHVybgoKLy8gZygpOiB2b2lkCmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MQoJLy8gYXNzZXJ0KHRoaXMucHJvdGVjdGVkTWV0aG9kKCkgPT09ICdwcm90ZWN0ZWQnKQoJY2FsbHN1YiBwcm90ZWN0ZWRNZXRob2QKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MgoJLy8gYXNzZXJ0KHRoaXMucHVibGljTWV0aG9kKCkgPT09ICdwdWJsaWMnKQoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWJ5dGUgMHg3MDc1NjI2YzY5NjMgLy8gInB1YmxpYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTA0MThjNTQgLy8gbWV0aG9kICJwdWJsaWNNZXRob2QoKXN0cmluZyIKCXB1c2hieXRlcyAweGYyYjY1ZjI3IC8vIG1ldGhvZCAiZygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcHVibGljTWV0aG9kICphYmlfcm91dGVfZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/G.arc56_draft.json b/tests/contracts/artifacts/G.arc56_draft.json index 21ceb8df3..c41fd784b 100644 --- a/tests/contracts/artifacts/G.arc56_draft.json +++ b/tests/contracts/artifacts/G.arc56_draft.json @@ -74,505 +74,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 79, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22 - ] - }, - { - "teal": 13, - "source": 79, - "pc": [ - 23, - 24 - ] - }, - { - "teal": 14, - "source": 79, - "pc": [ - 25 - ] - }, - { - "teal": 15, - "source": 79, - "pc": [ - 26, - 27 - ] - }, - { - "teal": 16, - "source": 79, - "pc": [ - 28 - ] - }, - { - "teal": 17, - "source": 79, - "pc": [ - 29, - 30 - ] - }, - { - "teal": 18, - "source": 79, - "pc": [ - 31 - ] - }, - { - "teal": 19, - "source": 79, - "pc": [ - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57 - ] - }, - { - "teal": 23, - "source": 79, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 58 - ] - }, - { - "teal": 28, - "source": 66, - "pc": [ - 59, - 60, - 61, - 62, - 63, - 64 - ] - }, - { - "teal": 31, - "source": 66, - "pc": [ - 65, - 66, - 67 - ] - }, - { - "teal": 32, - "source": 66, - "pc": [ - 68 - ] - }, - { - "teal": 33, - "source": 66, - "pc": [ - 69 - ] - }, - { - "teal": 34, - "source": 66, - "pc": [ - 70 - ] - }, - { - "teal": 35, - "source": 66, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 36, - "source": 66, - "pc": [ - 74 - ] - }, - { - "teal": 37, - "source": 66, - "pc": [ - 75 - ] - }, - { - "teal": 38, - "source": 66, - "pc": [ - 76 - ] - }, - { - "teal": 39, - "source": 66, - "pc": [ - 77 - ] - }, - { - "teal": 40, - "source": 66, - "pc": [ - 78 - ] - }, - { - "teal": 41, - "source": 66, - "pc": [ - 79 - ] - }, - { - "teal": 45, - "source": 66, - "pc": [ - 80, - 81, - 82 - ] - }, - { - "teal": 49, - "source": 67, - "pc": [ - 83 - ] - }, - { - "teal": 50, - "source": 66, - "pc": [ - 84 - ] - }, - { - "teal": 54, - "source": 70, - "pc": [ - 85, - 86, - 87 - ] - }, - { - "teal": 58, - "source": 71, - "pc": [ - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96 - ] - }, - { - "teal": 59, - "source": 70, - "pc": [ - 97 - ] - }, - { - "teal": 63, - "source": 74, - "pc": [ - 98, - 99, - 100 - ] - }, - { - "teal": 67, - "source": 75, - "pc": [ - 101 - ] - }, - { - "teal": 68, - "source": 74, - "pc": [ - 102 - ] - }, - { - "teal": 73, - "source": 80, - "pc": [ - 103, - 104, - 105 - ] - }, - { - "teal": 74, - "source": 80, - "pc": [ - 106 - ] - }, - { - "teal": 75, - "source": 80, - "pc": [ - 107 - ] - }, - { - "teal": 79, - "source": 80, - "pc": [ - 108, - 109, - 110 - ] - }, - { - "teal": 83, - "source": 81, - "pc": [ - 111, - 112, - 113 - ] - }, - { - "teal": 84, - "source": 81, - "pc": [ - 114 - ] - }, - { - "teal": 85, - "source": 81, - "pc": [ - 115 - ] - }, - { - "teal": 86, - "source": 81, - "pc": [ - 116 - ] - }, - { - "teal": 90, - "source": 82, - "pc": [ - 117, - 118, - 119 - ] - }, - { - "teal": 91, - "source": 82, - "pc": [ - 120 - ] - }, - { - "teal": 92, - "source": 82, - "pc": [ - 121 - ] - }, - { - "teal": 93, - "source": 82, - "pc": [ - 122 - ] - }, - { - "teal": 94, - "source": 80, - "pc": [ - 123 - ] - }, - { - "teal": 97, - "source": 79, - "pc": [ - 124 - ] - }, - { - "teal": 98, - "source": 79, - "pc": [ - 125 - ] - }, - { - "teal": 101, - "source": 79, - "pc": [ - 126, - 127, - 128, - 129, - 130, - 131 - ] - }, - { - "teal": 102, - "source": 79, - "pc": [ - 132, - 133, - 134 - ] - }, - { - "teal": 103, - "source": 79, - "pc": [ - 135, - 136, - 137, - 138 - ] - }, - { - "teal": 106, - "source": 79, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 139 - ] - }, - { - "teal": 109, - "source": 79, - "pc": [ - 140, - 141, - 142, - 143, - 144, - 145 - ] - }, - { - "teal": 110, - "source": 79, - "pc": [ - 146, - 147, - 148, - 149, - 150, - 151 - ] - }, - { - "teal": 111, - "source": 79, - "pc": [ - 152, - 153, - 154 - ] - }, - { - "teal": 112, - "source": 79, - "pc": [ - 155, - 156, - 157, - 158, - 159, - 160 - ] - }, - { - "teal": 115, - "source": 79, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 161 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 55 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 173 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 195 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBwdWJsaWNNZXRob2QoKXN0cmluZwoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglieXRlIDB4NzA3MjY5NzY2MTc0NjUgLy8gInByaXZhdGUiCglyZXRzdWIKCi8vIHByb3RlY3RlZE1ldGhvZCgpOiBzdHJpbmcKcHJvdGVjdGVkTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzUKCS8vIHJldHVybiAncHJvdGVjdGVkJzsKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCXJldHN1YgoKLy8gZygpdm9pZAoqYWJpX3JvdXRlX2c6CgkvLyBleGVjdXRlIGcoKXZvaWQKCWNhbGxzdWIgZwoJaW50IDEKCXJldHVybgoKLy8gZygpOiB2b2lkCmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MQoJLy8gYXNzZXJ0KHRoaXMucHJvdGVjdGVkTWV0aG9kKCkgPT09ICdwcm90ZWN0ZWQnKQoJY2FsbHN1YiBwcm90ZWN0ZWRNZXRob2QKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MgoJLy8gYXNzZXJ0KHRoaXMucHVibGljTWV0aG9kKCkgPT09ICdwdWJsaWMnKQoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWJ5dGUgMHg3MDc1NjI2YzY5NjMgLy8gInB1YmxpYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInB1YmxpY01ldGhvZCgpc3RyaW5nIgoJbWV0aG9kICJnKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wdWJsaWNNZXRob2QgKmFiaV9yb3V0ZV9nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg3MDcyNmY3NDY1NjM3NDY1NjQgMHg3MDc1NjI2YzY5NjMKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwdWJsaWNNZXRob2QoKXN0cmluZwoqYWJpX3JvdXRlX3B1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJcHVzaGJ5dGVzIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHB1YmxpY01ldGhvZCgpc3RyaW5nCgljYWxsc3ViIHB1YmxpY01ldGhvZAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglwdXNoaW50IDEKCXJldHVybgoKLy8gcHVibGljTWV0aG9kKCk6IHN0cmluZwpwdWJsaWNNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo2NwoJLy8gcmV0dXJuICdwdWJsaWMnOwoJYnl0ZSAweDcwNzU2MjZjNjk2MyAvLyAicHVibGljIgoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKCk6IHN0cmluZwpwcml2YXRlTWV0aG9kOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6NzEKCS8vIHJldHVybiAncHJpdmF0ZSc7CglwdXNoYnl0ZXMgMHg3MDcyNjk3NjYxNzQ2NSAvLyAicHJpdmF0ZSIKCXJldHN1YgoKLy8gcHJvdGVjdGVkTWV0aG9kKCk6IHN0cmluZwpwcm90ZWN0ZWRNZXRob2Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo3NQoJLy8gcmV0dXJuICdwcm90ZWN0ZWQnOwoJYnl0ZSAweDcwNzI2Zjc0NjU2Mzc0NjU2NCAvLyAicHJvdGVjdGVkIgoJcmV0c3ViCgovLyBnKCl2b2lkCiphYmlfcm91dGVfZzoKCS8vIGV4ZWN1dGUgZygpdm9pZAoJY2FsbHN1YiBnCglwdXNoaW50IDEKCXJldHVybgoKLy8gZygpOiB2b2lkCmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MQoJLy8gYXNzZXJ0KHRoaXMucHJvdGVjdGVkTWV0aG9kKCkgPT09ICdwcm90ZWN0ZWQnKQoJY2FsbHN1YiBwcm90ZWN0ZWRNZXRob2QKCWJ5dGUgMHg3MDcyNmY3NDY1NjM3NDY1NjQgLy8gInByb3RlY3RlZCIKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4MgoJLy8gYXNzZXJ0KHRoaXMucHVibGljTWV0aG9kKCkgPT09ICdwdWJsaWMnKQoJY2FsbHN1YiBwdWJsaWNNZXRob2QKCWJ5dGUgMHg3MDc1NjI2YzY5NjMgLy8gInB1YmxpYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ZTA0MThjNTQgLy8gbWV0aG9kICJwdWJsaWNNZXRob2QoKXN0cmluZyIKCXB1c2hieXRlcyAweGYyYjY1ZjI3IC8vIG1ldGhvZCAiZygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcHVibGljTWV0aG9kICphYmlfcm91dGVfZwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABASYCBnB1YmxpYwlwcm90ZWN0ZWQxGBSBBgsxGQiNDABSAAAAAAAAAAAAAABEAAAAAAAAAAAAAACABBUffHWIAAxJFRZXBgJMUFCwIkOKAAEoiYoAAYAHcHJpdmF0ZYmKAAEpiYgAAiJDigAAiP/wKRJEiP/YKBJEiSJDgAS4RHs2NhoAjgH/8QCABOBBjFSABPK2Xyc2GgCOAv+a/8YA", + "approval": "CiYCCXByb3RlY3RlZAZwdWJsaWMxGBSBBgsxGQiNDAB3AAAAAAAAAAAAAABpAAAAAAAAAAAAAACABBUffHWIAA1JFRZXBgJMUFCwgQFDigABgAZwdWJsaWOJigABgAdwcml2YXRliYoAAYAJcHJvdGVjdGVkiYgAA4EBQ4oAAIj/5YAJcHJvdGVjdGVkEkSI/7yABnB1YmxpYxJEiYEBQ4AEuER7NjYaAI4B//AAgATgQYxUgATytl8nNhoAjgL/df+zAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/GeneralTest.approval.teal b/tests/contracts/artifacts/GeneralTest.approval.teal index 90c9f7b3c..050bf5954 100644 --- a/tests/contracts/artifacts/GeneralTest.approval.teal +++ b/tests/contracts/artifacts/GeneralTest.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 0 6 1337 2 5 123 4 +bytecblock 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0x0000000000000000000000000000000000000000000000000000000000000000 0x000000000000000100000000000000020000000000000003 0x151f7c75 0x0a8101 0x73746f726167654172726179 0x 0x666f6f 0x000000000000000000 0x0000000000000001 0x706167654f6e65 0x7061676554776f 0x674b6579 0x2c636eeb 0x626172 0x627965 0x0000 0x30 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // !!!! WARNING: This contract is *NOT* ARC4 compliant. It may contain ABI methods, but it also allows app calls where the first argument does NOT match an ABI selector @@ -33,11 +35,11 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM txnTypeEnum: proto 0 0 - // tests/contracts/general.algo.ts:61 + // tests/contracts/general.algo.ts:65 // assert(this.txnGroup[0].typeEnum === TransactionType.ApplicationCall) int 0 gtxns TypeEnum - int appl + int 6 // appl == assert retsub @@ -53,7 +55,7 @@ txnTypeEnum: txnGroupLength: proto 0 0 - // tests/contracts/general.algo.ts:65 + // tests/contracts/general.algo.ts:69 // assert(this.txnGroup.length === 1) global GroupSize int 1 @@ -96,7 +98,7 @@ txnGroupLength: asserts: proto 2 0 - // tests/contracts/general.algo.ts:69 + // tests/contracts/general.algo.ts:73 // asserts(arg1, arg2, arg1 === arg2) frame_dig -1 // arg1: boolean @@ -122,7 +124,7 @@ asserts: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 0 (somePay) for verifyTxnFromArg must be a pay transaction @@ -137,7 +139,7 @@ asserts: verifyTxnFromArg: proto 1 0 - // tests/contracts/general.algo.ts:73 + // tests/contracts/general.algo.ts:77 // verifyTxn(somePay, { receiver: this.app.address, amount: 100_000 }) // verify receiver frame_dig -1 // somePay: PayTxn @@ -151,7 +153,7 @@ verifyTxnFromArg: // verify amount frame_dig -1 // somePay: PayTxn gtxns Amount - int 100_000 + pushint 100_000 == // transaction verification failed: {"txn":"somePay","field":"amount","expected":"100_000"} @@ -169,7 +171,7 @@ verifyTxnFromArg: verifyTxnFromTxnGroup: proto 0 0 - // tests/contracts/general.algo.ts:77 + // tests/contracts/general.algo.ts:81 // verifyTxn(this.txnGroup[0], { sender: this.txn.sender }) // verify sender int 0 @@ -192,7 +194,7 @@ verifyTxnFromTxnGroup: verifyTxnCondition: proto 0 0 - // tests/contracts/general.algo.ts:81 + // tests/contracts/general.algo.ts:85 // verifyTxn(this.txn, { // applicationID: { greaterThan: 1 }, // }) @@ -216,7 +218,7 @@ verifyTxnCondition: verifyTxnIncludedIn: proto 0 0 - // tests/contracts/general.algo.ts:87 + // tests/contracts/general.algo.ts:91 // verifyTxn(this.txn, { // sender: { includedIn: [this.txn.sender] }, // }) @@ -240,7 +242,7 @@ verifyTxnIncludedIn: verifyTxnNotIncludedIn: proto 0 0 - // tests/contracts/general.algo.ts:93 + // tests/contracts/general.algo.ts:97 // verifyTxn(this.txn, { // sender: { notIncludedIn: [globals.zeroAddress] }, // }) @@ -264,18 +266,18 @@ verifyTxnNotIncludedIn: submitPendingGroup: proto 0 0 - // tests/contracts/general.algo.ts:99 + // tests/contracts/general.algo.ts:103 // this.pendingGroup.addPayment({ amount: 0, receiver: this.app.address, isFirstTxn: true }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum - // tests/contracts/general.algo.ts:99 + // tests/contracts/general.algo.ts:103 // amount: 0 int 0 itxn_field Amount - // tests/contracts/general.algo.ts:99 + // tests/contracts/general.algo.ts:103 // receiver: this.app.address global CurrentApplicationAddress itxn_field Receiver @@ -284,23 +286,23 @@ submitPendingGroup: int 0 itxn_field Fee - // tests/contracts/general.algo.ts:100 + // tests/contracts/general.algo.ts:104 // this.pendingGroup.addPayment({ amount: 0, receiver: this.app.address, note: 'foo' }) itxn_next - int pay + int 1 // pay itxn_field TypeEnum - // tests/contracts/general.algo.ts:100 + // tests/contracts/general.algo.ts:104 // amount: 0 int 0 itxn_field Amount - // tests/contracts/general.algo.ts:100 + // tests/contracts/general.algo.ts:104 // receiver: this.app.address global CurrentApplicationAddress itxn_field Receiver - // tests/contracts/general.algo.ts:100 + // tests/contracts/general.algo.ts:104 // note: 'foo' byte 0x666f6f // "foo" itxn_field Note @@ -309,7 +311,7 @@ submitPendingGroup: int 0 itxn_field Fee - // tests/contracts/general.algo.ts:101 + // tests/contracts/general.algo.ts:105 // this.pendingGroup.submit() itxn_submit retsub @@ -325,7 +327,7 @@ submitPendingGroup: methodWithTxnArgs: proto 0 0 - // tests/contracts/general.algo.ts:105 + // tests/contracts/general.algo.ts:109 // sendMethodCall<[PayTxn, MethodCall<[uint64], void>], void>({ // name: 'foo', // methodArgs: [ @@ -338,15 +340,15 @@ methodWithTxnArgs: // ], // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum - // tests/contracts/general.algo.ts:108 + // tests/contracts/general.algo.ts:112 // amount: 100_000 - int 100_000 + pushint 100_000 itxn_field Amount - // tests/contracts/general.algo.ts:108 + // tests/contracts/general.algo.ts:112 // receiver: this.txn.sender txn Sender itxn_field Receiver @@ -355,17 +357,17 @@ methodWithTxnArgs: int 0 itxn_field Fee itxn_next - int appl + int 6 // appl itxn_field TypeEnum - method "bar(uint64)void" + pushbytes 0x0e8cb9f6 // method "bar(uint64)void" itxn_field ApplicationArgs - // tests/contracts/general.algo.ts:111 + // tests/contracts/general.algo.ts:115 // applicationID: AppID.fromUint64(1337) int 1337 itxn_field ApplicationID - // tests/contracts/general.algo.ts:112 + // tests/contracts/general.algo.ts:116 // methodArgs: [1] byte 0x0000000000000001 itxn_field ApplicationArgs @@ -374,12 +376,12 @@ methodWithTxnArgs: int 0 itxn_field Fee itxn_next - int appl + int 6 // appl itxn_field TypeEnum - method "foo(pay,appl)void" + pushbytes 0x6c6f7a08 // method "foo(pay,appl)void" itxn_field ApplicationArgs - // tests/contracts/general.algo.ts:107 + // tests/contracts/general.algo.ts:111 // methodArgs: [ // { amount: 100_000, receiver: this.txn.sender }, // { @@ -407,7 +409,7 @@ methodWithTxnArgs: shift: proto 0 0 - // tests/contracts/general.algo.ts:119 + // tests/contracts/general.algo.ts:123 // assert(1 << 2 === 4) int 1 int 2 @@ -416,7 +418,7 @@ shift: == assert - // tests/contracts/general.algo.ts:120 + // tests/contracts/general.algo.ts:124 // assert(4 >> 1 === 2) int 4 int 1 @@ -437,9 +439,9 @@ shift: fromBytes: proto 0 0 - // tests/contracts/general.algo.ts:124 + // tests/contracts/general.algo.ts:128 // assert(Address.fromBytes('abc').minBalance) - byte 0x616263 // "abc" + pushbytes 0x616263 // "abc" acct_params_get AcctMinBalance pop assert @@ -456,14 +458,14 @@ fromBytes: fromUint64: proto 0 0 - // tests/contracts/general.algo.ts:128 + // tests/contracts/general.algo.ts:132 // log(AppID.fromUint64(123).creator) int 123 app_params_get AppCreator pop log - // tests/contracts/general.algo.ts:129 + // tests/contracts/general.algo.ts:133 // log(AssetID.fromUint64(123).creator) int 123 asset_params_get AssetCreator @@ -486,23 +488,23 @@ bzeroFunction: byte 0x dupn 2 - // tests/contracts/general.algo.ts:134 + // tests/contracts/general.algo.ts:138 // x: bytes = bzero(2) byte 0x0000 frame_bury 0 // x: bytes - // tests/contracts/general.algo.ts:135 + // tests/contracts/general.algo.ts:139 // y: bytes = bzero(n) int 1 bzero frame_bury 1 // y: bytes - // tests/contracts/general.algo.ts:136 + // tests/contracts/general.algo.ts:140 // z: [uint64, uint<8>] = bzero<[uint64, uint<8>]>() byte 0x000000000000000000 frame_bury 2 // z: [uint64, uint<8>] - // tests/contracts/general.algo.ts:137 + // tests/contracts/general.algo.ts:141 // assert(len(x + y + z) === 12) byte 0x0000 // x: bytes frame_dig 1 // y: bytes @@ -510,7 +512,7 @@ bzeroFunction: byte 0x000000000000000000 // z: [uint64, uint<8>] concat len - int 12 + pushint 12 == assert retsub @@ -526,9 +528,9 @@ bzeroFunction: events: proto 0 0 - // tests/contracts/general.algo.ts:152 + // tests/contracts/general.algo.ts:156 // this.myEvent.log({ app: this.app, num: 1 }) - byte 0x87528196 // myEvent(uint64,uint64) + pushbytes 0x87528196 // myEvent(uint64,uint64) txna Applications 0 itob byte 0x0000000000000001 @@ -550,7 +552,7 @@ events: callsub letOptimization dup len - int 8 + pushint 8 / itob extract 6 2 @@ -565,7 +567,7 @@ events: letOptimization: proto 1 1 - // tests/contracts/general.algo.ts:156 + // tests/contracts/general.algo.ts:160 // assert(a[0]) frame_dig -1 // a: uint64[] store 255 // full array @@ -574,12 +576,12 @@ letOptimization: btoi assert - // tests/contracts/general.algo.ts:158 + // tests/contracts/general.algo.ts:162 // b = [1, 2, 3] byte 0x000000000000000100000000000000020000000000000003 frame_bury -1 // b: uint64[] - // tests/contracts/general.algo.ts:160 + // tests/contracts/general.algo.ts:164 // return b; frame_dig -1 // a: uint64[] retsub @@ -595,7 +597,7 @@ letOptimization: staticContractProperties: proto 0 0 - // tests/contracts/general.algo.ts:164 + // tests/contracts/general.algo.ts:168 // sendAppCall({ // onCompletion: OnCompletion.NoOp, // approvalProgram: DummyContract.approvalProgram(), @@ -606,40 +608,40 @@ staticContractProperties: // globalNumUint: DummyContract.schema.global.numUint, // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - // tests/contracts/general.algo.ts:165 + // tests/contracts/general.algo.ts:169 // onCompletion: OnCompletion.NoOp int 0 // NoOp itxn_field OnCompletion - // tests/contracts/general.algo.ts:166 + // tests/contracts/general.algo.ts:170 // approvalProgram: DummyContract.approvalProgram() - byte b64 CjEYFIEGCzEZCI0MAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAIEBQ4AEuER7NjYaAI4B//AA + pushbytes 0x0a31181481060b3119088d0c000000000000000000000000000400000000000000000000008101438004b8447b36361a008e01fff000 itxn_field ApprovalProgram - // tests/contracts/general.algo.ts:167 + // tests/contracts/general.algo.ts:171 // clearStateProgram: DummyContract.clearProgram() - byte b64 Cg== + pushbytes 0x0a itxn_field ClearStateProgram - // tests/contracts/general.algo.ts:168 + // tests/contracts/general.algo.ts:172 // localNumByteSlice: DummyContract.schema.local.numByteSlice int 0 itxn_field LocalNumByteSlice - // tests/contracts/general.algo.ts:169 + // tests/contracts/general.algo.ts:173 // localNumUint: DummyContract.schema.local.numUint int 0 itxn_field LocalNumUint - // tests/contracts/general.algo.ts:170 + // tests/contracts/general.algo.ts:174 // globalNumByteSlice: DummyContract.schema.global.numByteSlice int 0 itxn_field GlobalNumByteSlice - // tests/contracts/general.algo.ts:171 + // tests/contracts/general.algo.ts:175 // globalNumUint: DummyContract.schema.global.numUint int 0 itxn_field GlobalNumUint @@ -663,11 +665,11 @@ staticContractProperties: numberToString: proto 0 0 - // tests/contracts/general.algo.ts:178 + // tests/contracts/general.algo.ts:182 // assert(n.toString() === s) int 1 callsub *itoa - byte "1" + pushbytes "1" == assert retsub @@ -683,11 +685,11 @@ numberToString: methodOnParens: proto 0 0 - // tests/contracts/general.algo.ts:182 + // tests/contracts/general.algo.ts:186 // assert((1 + 2).toString() === '3') - int 3 + pushint 3 callsub *itoa - byte 0x33 // "3" + pushbytes 0x33 // "3" == assert retsub @@ -703,11 +705,11 @@ methodOnParens: stringSubstring: proto 0 0 - // tests/contracts/general.algo.ts:187 + // tests/contracts/general.algo.ts:191 // assert(s.substring(1, 3) === 'bc') - byte "abcdef" + pushbytes "abcdef" substring 1 3 - byte 0x6263 // "bc" + pushbytes 0x6263 // "bc" == assert retsub @@ -727,24 +729,24 @@ idProperty: byte 0x dup - // tests/contracts/general.algo.ts:191 + // tests/contracts/general.algo.ts:195 // app = AppID.zeroIndex int 0 frame_bury 0 // app: uint64 - // tests/contracts/general.algo.ts:192 + // tests/contracts/general.algo.ts:196 // assert(AppID.fromUint64(app.id) === app) int 0 // app: uint64 dup == assert - // tests/contracts/general.algo.ts:194 + // tests/contracts/general.algo.ts:198 // asa = AssetID.zeroIndex int 0 frame_bury 1 // asa: uint64 - // tests/contracts/general.algo.ts:195 + // tests/contracts/general.algo.ts:199 // assert(AssetID.fromUint64(asa.id) === asa) int 0 // asa: uint64 dup @@ -763,12 +765,12 @@ idProperty: scratchSlot: proto 0 0 - // tests/contracts/general.algo.ts:199 + // tests/contracts/general.algo.ts:203 // this.scratch.value = 1337 int 1337 store 0 - // tests/contracts/general.algo.ts:200 + // tests/contracts/general.algo.ts:204 // assert(this.scratch.value === 1337) load 0 int 1337 @@ -791,30 +793,30 @@ ecdsa: byte 0x dupn 3 - // tests/contracts/general.algo.ts:204 + // tests/contracts/general.algo.ts:208 // ecdsaVerify('Secp256k1', '' as bytes32, '' as bytes32, '' as bytes32, '' as bytes32, '' as bytes32) byte 0x0000000000000000000000000000000000000000000000000000000000000000 // "" dupn 4 ecdsa_verify Secp256k1 - // tests/contracts/general.algo.ts:205 + // tests/contracts/general.algo.ts:209 // d = ecdsaPkDecompress('Secp256k1', '' as bytes<33>) - byte 0x000000000000000000000000000000000000000000000000000000000000000000 // "" + pushbytes 0x000000000000000000000000000000000000000000000000000000000000000000 // "" ecdsa_pk_decompress Secp256k1 frame_bury 0 // d y component: byte[] frame_bury 1 // d x component: byte[] - // tests/contracts/general.algo.ts:206 + // tests/contracts/general.algo.ts:210 // log(d.y) frame_dig 0 // d y component: byte[] log - // tests/contracts/general.algo.ts:207 + // tests/contracts/general.algo.ts:211 // log(d.x) frame_dig 1 // d x component: byte[] log - // tests/contracts/general.algo.ts:209 + // tests/contracts/general.algo.ts:213 // r = ecdsaPkRecover('Secp256k1', '' as bytes32, 1, '' as bytes32, '' as bytes32) byte 0x0000000000000000000000000000000000000000000000000000000000000000 // "" int 1 @@ -824,12 +826,12 @@ ecdsa: frame_bury 2 // r y component: byte[] frame_bury 3 // r x component: byte[] - // tests/contracts/general.algo.ts:210 + // tests/contracts/general.algo.ts:214 // log(r.y) frame_dig 2 // r y component: byte[] log - // tests/contracts/general.algo.ts:211 + // tests/contracts/general.algo.ts:215 // log(r.x) frame_dig 3 // r x component: byte[] log @@ -846,14 +848,14 @@ ecdsa: verifyTxnTypes: proto 0 0 - // tests/contracts/general.algo.ts:215 + // tests/contracts/general.algo.ts:219 // verifyPayTxn(this.txnGroup[0], { // amount: { greaterThan: 0 }, // }) // verify pay int 0 gtxns TypeEnum - int pay + int 1 // pay == // transaction verification failed: {"txn":"this.txnGroup[0]","field":"typeEnum","expected":"pay"} @@ -868,7 +870,7 @@ verifyTxnTypes: // transaction verification failed: {"txn":"this.txnGroup[0]","field":"amount","condition":"greaterThan","expected":">0"} assert - // tests/contracts/general.algo.ts:219 + // tests/contracts/general.algo.ts:223 // verifyAppCallTxn(this.txnGroup[0], { // applicationID: AppID.fromUint64(0), // applicationArgs: { @@ -881,7 +883,7 @@ verifyTxnTypes: // verify appl int 0 gtxns TypeEnum - int appl + int 6 // appl == // transaction verification failed: {"txn":"this.txnGroup[0]","field":"typeEnum","expected":"appl"} @@ -913,21 +915,21 @@ verifyTxnTypes: == int 0 gtxns ApplicationArgs 1 - byte 0x62617a // "baz" + pushbytes 0x62617a // "baz" == || // transaction verification failed: {"txn":{"txnText":"this.txnGroup[0]"},"field":"applicationArgs 1","condition":"includedIn","expected":"['bar', 'baz']"} assert - // tests/contracts/general.algo.ts:229 + // tests/contracts/general.algo.ts:233 // verifyAssetTransferTxn(this.txnGroup[0], { // assetReceiver: this.app.address, // }) // verify axfer int 0 gtxns TypeEnum - int axfer + int 4 // axfer == // transaction verification failed: {"txn":"this.txnGroup[0]","field":"typeEnum","expected":"axfer"} @@ -942,14 +944,14 @@ verifyTxnTypes: // transaction verification failed: {"txn":"this.txnGroup[0]","field":"assetReceiver","expected":"this.app.address"} assert - // tests/contracts/general.algo.ts:233 + // tests/contracts/general.algo.ts:237 // verifyAssetConfigTxn(this.txnGroup[0], { // configAsset: AssetID.fromUint64(0), // }) // verify acfg int 0 gtxns TypeEnum - int acfg + pushint 3 // acfg == // transaction verification failed: {"txn":"this.txnGroup[0]","field":"typeEnum","expected":"acfg"} @@ -964,14 +966,14 @@ verifyTxnTypes: // transaction verification failed: {"txn":"this.txnGroup[0]","field":"configAsset","expected":"AssetID.fromUint64(0)"} assert - // tests/contracts/general.algo.ts:237 + // tests/contracts/general.algo.ts:241 // verifyKeyRegTxn(this.txnGroup[0], { // voteFirst: 1337, // }) // verify keyreg int 0 gtxns TypeEnum - int keyreg + int 2 // keyreg == // transaction verification failed: {"txn":"this.txnGroup[0]","field":"typeEnum","expected":"keyreg"} @@ -1001,22 +1003,22 @@ stringPlusEquals: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:243 + // tests/contracts/general.algo.ts:247 // s = 'foo' byte 0x666f6f // "foo" frame_bury 0 // s: byte[] - // tests/contracts/general.algo.ts:244 + // tests/contracts/general.algo.ts:248 // s += 'bar' frame_dig 0 // s: byte[] byte 0x626172 // "bar" concat frame_bury 0 // s: byte[] - // tests/contracts/general.algo.ts:245 + // tests/contracts/general.algo.ts:249 // assert(s === 'foobar') frame_dig 0 // s: byte[] - byte 0x666f6f626172 // "foobar" + pushbytes 0x666f6f626172 // "foobar" == assert retsub @@ -1043,9 +1045,9 @@ stringPlusEquals: importedProgram: proto 0 1 - // tests/contracts/general.algo.ts:249 + // tests/contracts/general.algo.ts:253 // return IfTest.approvalProgram(); - byte b64 CiAEAQACICYJBBUffHUCaWYEZWxzZQNlbmQAA2ZvbwdlbHNlIGlmCWVsc2UgaWYgMQllbHNlIGlmIDIxGBSBBgsxGQiNDAMkAAAAAAAAAAAAAAMWAAAAAAAAAAAAAAAoNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oBAYv/QQACKYkriSg2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigEBi/9BAAUpiUIAAiqJiSg2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oCAYv/QQAFKYlCAAiL/kEAAycGiSuJKDYaAkkVIhJEI1M2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigIBi/9BAAUpiUIADYv+QQAGJwaJQgACKomJKDYaA0kVIhJEI1M2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oDAYv/QQAFKYlCABOL/kEABicHiUIACIv9QQADJwiJK4koNhoDSRUiEkQjUzYaAkkVIhJEI1M2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigMBi/9BAAUpiUIAGIv+QQAGJweJQgANi/1BAAYnCIlCAAIqiYkoNhoCSRUiEkQjUzYaAUkVIhJEI1OIAAxJFRZXBgJMUFCwIkOKAgGL/0EAFov+QQAMgAluZXN0ZWQgaWaJKYlCAAIqiYkoNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oBAYv/QQAFKYlCAAIqiYkoNhoCSRUiEkQjUzYaAUkVIhJEI1OIAAUWULAiQ4oCAYv/QQAEIkIAC4v+QQAEJEIAAoEDiSg2GgFXAgCIAAUWULAiQ4oBAYv/JwSpQQACIokkiSg2GgFXAgCIAAUWULAiQ4oBAYv/JwSpQQAEIkIAASSJNhoBSRUkEkQXiAACIkOKAQCL/ycEqUEAAycFsIk2GgJJFSQSRBc2GgFJFSQSRBeIAAIiQ4oCAIv/i/4OQQADJwWwiTYaAkkVJRJENhoBSRUlEkSIAAIiQ4oCAIv/i/6mQQADJwWwiSg2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oCAYv/QQAZi/5BAA2AB2EgYW5kIGKJQgAEgAFhiUIAFov+QQAHgAFiiUIACoAHbmVpdGhlcomJIkOABLhEezY2GgCOAf/xAIAEQ27BwoAEHHoNXoAEXg+2z4AEXhxsUIAEWNC6koAEXS9PAoAEhFcp2YAEj+dsqIAEGjx4eIAEdLzIaIAEQhL5BYAEld2uv4AEMUe4ZoAEQol/YYAEU0vitzYaAI4P/GD8hvyw/Ov9Kv16/c7+E/49/nL+kP6w/s3+8/8XAA== + pushbytes 0x0a20020100260904151f7c7504656c736502696609656c7365206966203109656c7365206966203207656c736520696603656e6403666f6f0031181481060b3119088d0c041900000000000000000000040b00000000000000000000008004151f7c75361a0149158101124481005388000d4915165706024c5050b08101438a01018bff41000580026966898003656e64898004151f7c75361a0149158101124481005388000d4915165706024c5050b08101438a01018bff41000880026966894200078004656c736589898004151f7c75361a02491581011244810053361a0149158101124481005388000d4915165706024c5050b08101438a02018bff410008800269668942000f8bfe41000a8007656c7365206966898003656e64898004151f7c75361a02491581011244810053361a0149158101124481005388000d4915165706024c5050b08101438a02018bff41000880026966894200198bfe41000d8007656c7365206966894200078004656c736589898004151f7c75361a03491581011244810053361a02491581011244810053361a0149158101124481005388000d4915165706024c5050b08101438a03018bff41000880026966894200258bfe41000f8009656c73652069662031894200118bfd41000c8009656c73652069662032898003656e64898004151f7c75361a03491581011244810053361a02491581011244810053361a0149158101124481005388000d4915165706024c5050b08101438a03018bff410008800269668942002f8bfe41000f8009656c736520696620318942001b8bfd41000f8009656c73652069662032894200078004656c736589898004151f7c75361a02491581011244810053361a0149158101124481005388000d4915165706024c5050b08101438a02018bff4100198bfe41000c80096e65737465642069668980026966894200078004656c736589898004151f7c75361a0149158101124481005388000d4915165706024c5050b08101438a01018bff41000880026966894200078004656c736589898004151f7c75361a02491581011244810053361a014915810112448100538800061650b08101438a02018bff410005810142000c8bfe41000581024200028103898004151f7c75361a015702008800061650b08101438a01018bff8000a94100038101898102898004151f7c75361a015702008800061650b08101438a01018bff8000a94100058101420002810289361a01491581021244178800038101438a01008bff8000a94100068003666f6fb089361a0249158102124417361a01491581021244178800038101438a02008bff8bfe0e4100068003666f6fb089361a02491581201244361a014915812012448800038101438a02008bff8bfea64100068003666f6fb0898004151f7c75361a02491581011244810053361a0149158101124481005388000d4915165706024c5050b08101438a02018bff4100198bfe41000d80076120616e64206289420004800161894200168bfe4100078001628942000a80076e65697468657289898101438004b8447b36361a008e01fff0008004436ec1c280041c7a0d5e80045e0fb6cf80045e1c6c50800458d0ba9280045d2f4f028004845729d980048fe76ca880041a3c7878800474bcc86880044212f905800495ddaebf80043147b866800442897f618004534be2b7361a008e0ffb6bfba0fbdafc2dfc85fcfafd74fdcbfe05fe46fe6cfe94feb6fee2ff0c00 retsub // callPrivateDefinedLater()void @@ -1059,9 +1061,9 @@ importedProgram: callPrivateDefinedLater: proto 0 0 - // tests/contracts/general.algo.ts:253 + // tests/contracts/general.algo.ts:257 // log(this.privateMethod('hello')) - byte 0x68656c6c6f // "hello" + pushbytes 0x68656c6c6f // "hello" callsub privateMethod log retsub @@ -1070,7 +1072,7 @@ callPrivateDefinedLater: privateMethod: proto 1 1 - // tests/contracts/general.algo.ts:257 + // tests/contracts/general.algo.ts:261 // return msg; frame_dig -1 // msg: string retsub @@ -1100,7 +1102,7 @@ privateMethod: interalPublicMethod: proto 2 1 - // tests/contracts/general.algo.ts:261 + // tests/contracts/general.algo.ts:265 // return a + b; frame_dig -1 // a: uint64 frame_dig -2 // b: uint64 @@ -1118,12 +1120,12 @@ interalPublicMethod: callInternalPublicMethod: proto 0 0 - // tests/contracts/general.algo.ts:265 + // tests/contracts/general.algo.ts:269 // assert(this.interalPublicMethod(1, 2) === 3) int 2 int 1 callsub interalPublicMethod - int 3 + pushint 3 == assert retsub @@ -1139,7 +1141,7 @@ callInternalPublicMethod: appLoadScratch: proto 0 0 - // tests/contracts/general.algo.ts:269 + // tests/contracts/general.algo.ts:273 // log(this.txnGroup[1].loadScratch(2) as bytes) gload 1 2 log @@ -1154,17 +1156,17 @@ appLoadScratch: callsub uintNWithUnderscore dup bitlen - int 256 + pushint 256 <= // uintNWithUnderscore return value overflowed 256 bits assert - byte 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + pushbytes 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF b& dup len dup - int 32 + pushint 32 - swap substring3 @@ -1177,9 +1179,9 @@ appLoadScratch: uintNWithUnderscore: proto 0 1 - // tests/contracts/general.algo.ts:273 + // tests/contracts/general.algo.ts:277 // return 123_456; - byte 0x000000000000000000000000000000000000000000000000000000000001e240 + pushbytes 0x000000000000000000000000000000000000000000000000000000000001e240 retsub // opUp()void @@ -1196,41 +1198,41 @@ opUp: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:277 + // tests/contracts/general.algo.ts:281 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:278 + // tests/contracts/general.algo.ts:282 // for (let i = 1; i < 75; i += 1) int 1 frame_bury 0 // i: uint64 *for_0: - // tests/contracts/general.algo.ts:278 + // tests/contracts/general.algo.ts:282 // i < 75 frame_dig 0 // i: uint64 - int 75 + pushint 75 < bz *for_0_end - // tests/contracts/general.algo.ts:279 + // tests/contracts/general.algo.ts:283 // assert(i) frame_dig 0 // i: uint64 assert *for_0_continue: - // tests/contracts/general.algo.ts:278 + // tests/contracts/general.algo.ts:282 // i += 1 frame_dig 0 // i: uint64 int 1 @@ -1266,13 +1268,13 @@ returnValueOnAssignment: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:284 + // tests/contracts/general.algo.ts:288 // message = 'hi' - byte 0x6869 // "hi" + pushbytes 0x6869 // "hi" frame_bury 0 // message: byte[] // *if0_condition - // tests/contracts/general.algo.ts:286 + // tests/contracts/general.algo.ts:290 // this.txn.sender === this.app.address txn Sender global CurrentApplicationAddress @@ -1280,13 +1282,13 @@ returnValueOnAssignment: bz *if0_end // *if0_consequent - // tests/contracts/general.algo.ts:287 + // tests/contracts/general.algo.ts:291 // message = 'in block' - byte 0x696e20626c6f636b // "in block" + pushbytes 0x696e20626c6f636b // "in block" frame_bury 0 // message: byte[] *if0_end: - // tests/contracts/general.algo.ts:290 + // tests/contracts/general.algo.ts:294 // return (message = 'bye'); byte 0x627965 // "bye" dup @@ -1316,12 +1318,12 @@ returnArrayValueOnAssignment: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:294 + // tests/contracts/general.algo.ts:298 // a: StaticArray = [1, 2, 3] byte 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray - // tests/contracts/general.algo.ts:296 + // tests/contracts/general.algo.ts:300 // return (a[0] = 4); frame_dig 0 // a: StaticArray int 0 @@ -1354,13 +1356,13 @@ returnArrayValueOnAssignment: returnStorageValueOnAssignment: proto 0 1 - // tests/contracts/general.algo.ts:300 + // tests/contracts/general.algo.ts:304 // this.gKey.value = 1 byte 0x674b6579 // "gKey" int 1 app_global_put - // tests/contracts/general.algo.ts:302 + // tests/contracts/general.algo.ts:306 // return (this.gKey.value = 2); byte 0x674b6579 // "gKey" int 2 @@ -1390,12 +1392,12 @@ returnOperatorAssignmentValue: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:306 + // tests/contracts/general.algo.ts:310 // a = 1 int 1 frame_bury 0 // a: uint64 - // tests/contracts/general.algo.ts:308 + // tests/contracts/general.algo.ts:312 // return (a += 2); frame_dig 0 // a: uint64 int 2 @@ -1429,12 +1431,12 @@ returnArrayValueOnOperatorAssignment: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:312 + // tests/contracts/general.algo.ts:316 // a: StaticArray = [1, 2, 3] byte 0x000000000000000100000000000000020000000000000003 frame_bury 0 // a: StaticArray - // tests/contracts/general.algo.ts:314 + // tests/contracts/general.algo.ts:318 // return (a[0] += 4); frame_dig 0 // a: StaticArray int 0 @@ -1471,13 +1473,13 @@ returnArrayValueOnOperatorAssignment: returnArrayInStorageValueOnOperatorAssignment: proto 0 1 - // tests/contracts/general.algo.ts:318 + // tests/contracts/general.algo.ts:322 // this.storageArray.value = [1, 2, 3] byte 0x73746f726167654172726179 // "storageArray" byte 0x000000000000000100000000000000020000000000000003 app_global_put - // tests/contracts/general.algo.ts:320 + // tests/contracts/general.algo.ts:324 // return (this.storageArray.value[0] += 4); byte 0x73746f726167654172726179 // "storageArray" app_global_get @@ -1509,21 +1511,21 @@ returnArrayInStorageValueOnOperatorAssignment: consts: proto 0 0 - // tests/contracts/general.algo.ts:324 + // tests/contracts/general.algo.ts:328 // assert(STRING_CONST === 'foo') - byte "foo" + pushbytes "foo" byte 0x666f6f // "foo" == assert - // tests/contracts/general.algo.ts:325 + // tests/contracts/general.algo.ts:329 // assert(NUM_CONST === 123) int 123 dup == assert - // tests/contracts/general.algo.ts:326 + // tests/contracts/general.algo.ts:330 // assert(NESTED_CONST === 123) int 123 dup @@ -1542,7 +1544,7 @@ consts: assertWithMessage: proto 0 0 - // tests/contracts/general.algo.ts:330 + // tests/contracts/general.algo.ts:334 // assert(false, 'this is false') int 0 @@ -1561,32 +1563,32 @@ assertWithMessage: opcodeAliases: proto 0 0 - // tests/contracts/general.algo.ts:334 + // tests/contracts/general.algo.ts:338 // extractUint16(bzero(64), 0) byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 int 0 extract_uint16 - // tests/contracts/general.algo.ts:335 + // tests/contracts/general.algo.ts:339 // extractUint32(bzero(64), 0) byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 int 0 extract_uint32 - // tests/contracts/general.algo.ts:336 + // tests/contracts/general.algo.ts:340 // extractUint64(bzero(64), 0) byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 int 0 extract_uint64 - // tests/contracts/general.algo.ts:337 + // tests/contracts/general.algo.ts:341 // ed25519VerifyBare(bzero(64), bzero(64), bzero(32)) byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 dup byte 0x0000000000000000000000000000000000000000000000000000000000000000 ed25519verify_bare - // tests/contracts/general.algo.ts:338 + // tests/contracts/general.algo.ts:342 // ed25519Verify(bzero(64), bzero(64), bzero(32)) byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 dup @@ -1609,157 +1611,157 @@ vrfVerifyOp: byte 0x dup - // tests/contracts/general.algo.ts:342 + // tests/contracts/general.algo.ts:346 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:343 + // tests/contracts/general.algo.ts:347 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:344 + // tests/contracts/general.algo.ts:348 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:345 + // tests/contracts/general.algo.ts:349 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:346 + // tests/contracts/general.algo.ts:350 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:347 + // tests/contracts/general.algo.ts:351 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:348 + // tests/contracts/general.algo.ts:352 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:349 + // tests/contracts/general.algo.ts:353 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:350 + // tests/contracts/general.algo.ts:354 // increaseOpcodeBudget() itxn_begin - int appl + int 6 // appl itxn_field TypeEnum int 0 itxn_field Fee - byte b64 CoEB // #pragma version 10; int 1 + byte 0x0a8101 // #pragma version 10; int 1 dup itxn_field ApprovalProgram itxn_field ClearStateProgram - int DeleteApplication + int 5 // DeleteApplication itxn_field OnCompletion itxn_submit - // tests/contracts/general.algo.ts:352 + // tests/contracts/general.algo.ts:356 // r = vrfVefiry('VrfAlgorand', bzero(32) as bytes, bzero(80), bzero(32)) byte 0x0000000000000000000000000000000000000000000000000000000000000000 - byte 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + pushbytes 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte 0x0000000000000000000000000000000000000000000000000000000000000000 vrf_verify VrfAlgorand frame_bury 0 // r verified: bool frame_bury 1 // r output: byte[] - // tests/contracts/general.algo.ts:353 + // tests/contracts/general.algo.ts:357 // assert(!r.verified) frame_dig 0 // r verified: bool ! assert - // tests/contracts/general.algo.ts:354 + // tests/contracts/general.algo.ts:358 // log(r.output) frame_dig 1 // r output: byte[] log @@ -1779,40 +1781,40 @@ ecMath: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:358 + // tests/contracts/general.algo.ts:362 // ecScalarMul('BN254g1', '', '') byte 0x // "" dup ec_scalar_mul BN254g1 - // tests/contracts/general.algo.ts:359 + // tests/contracts/general.algo.ts:363 // ecPairingCheck('BN254g1', '', '') byte 0x // "" dup ec_pairing_check BN254g1 - // tests/contracts/general.algo.ts:360 + // tests/contracts/general.algo.ts:364 // scalars: bytes32[] = [bzero(32), bzero(32)] byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 frame_bury 0 // scalars: bytes32[] - // tests/contracts/general.algo.ts:361 + // tests/contracts/general.algo.ts:365 // ecMultiScalarMul('BN254g1', '', scalars) byte 0x // "" byte 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 // scalars: bytes32[] ec_multi_scalar_mul BN254g1 - // tests/contracts/general.algo.ts:362 + // tests/contracts/general.algo.ts:366 // ecSubgroupCheck('BN254g1', '') byte 0x // "" ec_subgroup_check BN254g1 - // tests/contracts/general.algo.ts:363 + // tests/contracts/general.algo.ts:367 // ecMapTo('BN254g1', '') byte 0x // "" ec_map_to BN254g1 - // tests/contracts/general.algo.ts:364 + // tests/contracts/general.algo.ts:368 // ecAdd('BN254g1', '', '') byte 0x // "" dup @@ -1833,17 +1835,17 @@ gitxn: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:368 + // tests/contracts/general.algo.ts:372 // log(this.lastInnerGroup[0].sender) gitxn 0 Sender log - // tests/contracts/general.algo.ts:370 + // tests/contracts/general.algo.ts:374 // anotherTxn = this.lastInnerGroup[1] int 1 frame_bury 0 // anotherTxn: gitxn - // tests/contracts/general.algo.ts:372 + // tests/contracts/general.algo.ts:376 // log(anotherTxn.sender) gitxn 1 Sender log @@ -1860,7 +1862,7 @@ gitxn: getSetBytes: proto 0 0 - // tests/contracts/general.algo.ts:376 + // tests/contracts/general.algo.ts:380 // log(setbit('foo', 0, true)) byte 0x666f6f // "foo" int 0 @@ -1868,19 +1870,19 @@ getSetBytes: setbit log - // tests/contracts/general.algo.ts:377 + // tests/contracts/general.algo.ts:381 // getbit('foo', 0) byte 0x666f6f // "foo" int 0 getbit - // tests/contracts/general.algo.ts:378 + // tests/contracts/general.algo.ts:382 // getbyte('foo', 0) byte 0x666f6f // "foo" int 0 getbyte - // tests/contracts/general.algo.ts:379 + // tests/contracts/general.algo.ts:383 // setbyte('foo', 0, 1) byte 0x666f6f // "foo" int 0 @@ -1899,7 +1901,7 @@ getSetBytes: getSetUint64: proto 0 0 - // tests/contracts/general.algo.ts:383 + // tests/contracts/general.algo.ts:387 // assert(setbit(123, 0, true)) int 123 int 0 @@ -1907,7 +1909,7 @@ getSetUint64: setbit assert - // tests/contracts/general.algo.ts:384 + // tests/contracts/general.algo.ts:388 // getbit(123, 0) int 123 int 0 @@ -1925,7 +1927,7 @@ getSetUint64: blockOp: proto 0 0 - // tests/contracts/general.algo.ts:388 + // tests/contracts/general.algo.ts:392 // log(blocks[globals.round - 1].seed) global Round int 1 @@ -1933,7 +1935,7 @@ blockOp: block BlkSeed log - // tests/contracts/general.algo.ts:389 + // tests/contracts/general.algo.ts:393 // assert(blocks[globals.round - 1].timestamp) global Round int 1 @@ -1953,7 +1955,7 @@ blockOp: b64: proto 0 0 - // tests/contracts/general.algo.ts:393 + // tests/contracts/general.algo.ts:397 // log(base64Decode('StdEncoding', '')) byte 0x // "" base64_decode StdEncoding @@ -1971,21 +1973,21 @@ b64: json: proto 0 0 - // tests/contracts/general.algo.ts:397 + // tests/contracts/general.algo.ts:401 // log(jsonRef('JSONObject', '', '')) byte 0x // "" dup json_ref JSONObject log - // tests/contracts/general.algo.ts:398 + // tests/contracts/general.algo.ts:402 // log(jsonRef('JSONString', '', '')) byte 0x // "" dup json_ref JSONString log - // tests/contracts/general.algo.ts:399 + // tests/contracts/general.algo.ts:403 // assert(jsonRef('JSONUint64', '', '')) byte 0x // "" dup @@ -2004,12 +2006,12 @@ json: bitlenOp: proto 0 0 - // tests/contracts/general.algo.ts:403 + // tests/contracts/general.algo.ts:407 // bitlen(123) int 123 bitlen - // tests/contracts/general.algo.ts:404 + // tests/contracts/general.algo.ts:408 // bitlen('foo') byte 0x666f6f // "foo" bitlen @@ -2026,9 +2028,9 @@ bitlenOp: computedConst: proto 0 0 - // tests/contracts/general.algo.ts:408 + // tests/contracts/general.algo.ts:412 // assert(COMPUTED_CONST) - int 246 + pushint 246 assert retsub @@ -2043,9 +2045,9 @@ computedConst: multiComputedConst: proto 0 0 - // tests/contracts/general.algo.ts:412 + // tests/contracts/general.algo.ts:416 // assert(MUTLI_COMPUTED_CONST) - int 30381 + pushint 30381 assert retsub @@ -2060,28 +2062,28 @@ multiComputedConst: readSchema: proto 0 0 - // tests/contracts/general.algo.ts:416 + // tests/contracts/general.algo.ts:420 // assert(SchemaContract.schema.global.numUint === 1) int 1 dup == assert - // tests/contracts/general.algo.ts:417 + // tests/contracts/general.algo.ts:421 // assert(SchemaContract.schema.global.numByteSlice === 2) int 2 dup == assert - // tests/contracts/general.algo.ts:418 + // tests/contracts/general.algo.ts:422 // assert(SchemaContract.schema.local.numUint === 3) - int 3 - dup + pushint 3 + pushint 3 == assert - // tests/contracts/general.algo.ts:419 + // tests/contracts/general.algo.ts:423 // assert(SchemaContract.schema.local.numByteSlice === 4) int 4 dup @@ -2096,7 +2098,7 @@ readSchema: // execute comparisonOr()bool callsub comparisonOr - byte 0x00 + pushbytes 0x00 int 0 uncover 2 setbit @@ -2109,7 +2111,7 @@ readSchema: comparisonOr: proto 0 1 - // tests/contracts/general.algo.ts:423 + // tests/contracts/general.algo.ts:427 // return this.txn.sender === globals.zeroAddress || this.txn.sender === globals.zeroAddress; txn Sender global ZeroAddress @@ -2132,7 +2134,7 @@ comparisonOr: - dup gtxns TypeEnum - int pay + int 1 // pay == // argument 0 (_pay1) for txnArgsMethod must be a pay transaction @@ -2159,20 +2161,20 @@ txnArgsMethod: callTxnArgsMethod: proto 0 0 - // tests/contracts/general.algo.ts:430 + // tests/contracts/general.algo.ts:434 // sendMethodCall({ // methodArgs: [{ receiver: this.app.address, amount: 0 }], // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum - // tests/contracts/general.algo.ts:431 + // tests/contracts/general.algo.ts:435 // receiver: this.app.address global CurrentApplicationAddress itxn_field Receiver - // tests/contracts/general.algo.ts:431 + // tests/contracts/general.algo.ts:435 // amount: 0 int 0 itxn_field Amount @@ -2181,12 +2183,12 @@ callTxnArgsMethod: int 0 itxn_field Fee itxn_next - int appl + int 6 // appl itxn_field TypeEnum - method "txnArgsMethod(pay)void" + byte 0x2c636eeb // method "txnArgsMethod(pay)void" itxn_field ApplicationArgs - // tests/contracts/general.algo.ts:431 + // tests/contracts/general.algo.ts:435 // methodArgs: [{ receiver: this.app.address, amount: 0 }] // Fee field not set, defaulting to 0 int 0 @@ -2202,7 +2204,7 @@ callTxnArgsMethod: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 0 (x) for staticValueLen must be a uint256 @@ -2217,9 +2219,9 @@ callTxnArgsMethod: staticValueLen: proto 1 0 - // tests/contracts/general.algo.ts:436 + // tests/contracts/general.algo.ts:440 // assert(len(x)) - int 32 + pushint 32 assert retsub @@ -2234,9 +2236,9 @@ staticValueLen: staticTypeLen: proto 0 0 - // tests/contracts/general.algo.ts:440 + // tests/contracts/general.algo.ts:444 // assert(len()) - int 32 + pushint 32 assert retsub @@ -2251,13 +2253,13 @@ staticTypeLen: dynamicScratchSlot: proto 0 0 - // tests/contracts/general.algo.ts:444 + // tests/contracts/general.algo.ts:448 // this.dynamicScratch(1).value = 1337 int 1 int 1337 stores - // tests/contracts/general.algo.ts:445 + // tests/contracts/general.algo.ts:449 // assert(this.dynamicScratch(1).value === 1337) int 1 loads @@ -2277,22 +2279,22 @@ dynamicScratchSlot: incrementScratchSlot: proto 0 0 - // tests/contracts/general.algo.ts:449 + // tests/contracts/general.algo.ts:453 // this.scratch.value = 1337 int 1337 store 0 - // tests/contracts/general.algo.ts:450 + // tests/contracts/general.algo.ts:454 // this.scratch.value += 1 load 0 int 1 + store 0 - // tests/contracts/general.algo.ts:451 + // tests/contracts/general.algo.ts:455 // assert(this.scratch.value === 1338) load 0 - int 1338 + pushint 1338 == assert retsub @@ -2308,13 +2310,13 @@ incrementScratchSlot: incrementDynamicScratchSlot: proto 0 0 - // tests/contracts/general.algo.ts:455 + // tests/contracts/general.algo.ts:459 // this.dynamicScratch(2).value = 1337 int 2 int 1337 stores - // tests/contracts/general.algo.ts:456 + // tests/contracts/general.algo.ts:460 // this.dynamicScratch(2).value += 1 int 2 loads @@ -2324,11 +2326,11 @@ incrementDynamicScratchSlot: swap stores - // tests/contracts/general.algo.ts:457 + // tests/contracts/general.algo.ts:461 // assert(this.dynamicScratch(2).value === 1338) int 2 loads - int 1338 + pushint 1338 == assert retsub @@ -2347,12 +2349,12 @@ fromAddress: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:461 + // tests/contracts/general.algo.ts:465 // a = Address.fromAddress('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ') - addr AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ + byte 0x0000000000000000000000000000000000000000000000000000000000000000 // addr "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ" frame_bury 0 // a: address - // tests/contracts/general.algo.ts:462 + // tests/contracts/general.algo.ts:466 // assert(a === Address.zeroAddress) frame_dig 0 // a: address global ZeroAddress @@ -2385,7 +2387,7 @@ earlyReturn: byte 0x // *if1_condition - // tests/contracts/general.algo.ts:466 + // tests/contracts/general.algo.ts:470 // a === 1 frame_dig -1 // a: uint64 int 1 @@ -2393,20 +2395,20 @@ earlyReturn: bz *if1_end // *if1_consequent - // tests/contracts/general.algo.ts:467 + // tests/contracts/general.algo.ts:471 // return 2; int 2 b *earlyReturn*return *if1_end: - // tests/contracts/general.algo.ts:469 + // tests/contracts/general.algo.ts:473 // b = a + 1 frame_dig -1 // a: uint64 int 1 + frame_bury 0 // b: uint64 - // tests/contracts/general.algo.ts:470 + // tests/contracts/general.algo.ts:474 // return b; frame_dig 0 // b: uint64 @@ -2426,22 +2428,22 @@ earlyReturn: assetMethodArgs: proto 0 0 - // tests/contracts/general.algo.ts:474 + // tests/contracts/general.algo.ts:478 // sendMethodCall<[AssetReference], void>({ // name: 'foo', // methodArgs: [AssetID.fromUint64(1)], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - method "foo(asset)void" + pushbytes 0xa15316de // method "foo(asset)void" itxn_field ApplicationArgs - // tests/contracts/general.algo.ts:476 + // tests/contracts/general.algo.ts:480 // methodArgs: [AssetID.fromUint64(1)] int 1 itxn_field Assets - byte 0x0000000000000000 + pushbytes 0x0000000000000000 itxn_field ApplicationArgs // Fee field not set, defaulting to 0 @@ -2463,16 +2465,16 @@ assetMethodArgs: multipleProgramPages: proto 0 0 - // tests/contracts/general.algo.ts:485 + // tests/contracts/general.algo.ts:489 // sendAppCall({ // approvalProgram: [this.pageOne.value, this.pageTwo.value], // clearStateProgram: [this.pageOne.value, this.pageTwo.value], // }) itxn_begin - int appl + int 6 // appl itxn_field TypeEnum - // tests/contracts/general.algo.ts:486 + // tests/contracts/general.algo.ts:490 // approvalProgram: [this.pageOne.value, this.pageTwo.value] byte 0x706167654f6e65 // "pageOne" box_get @@ -2487,7 +2489,7 @@ multipleProgramPages: assert itxn_field ApprovalProgramPages - // tests/contracts/general.algo.ts:487 + // tests/contracts/general.algo.ts:491 // clearStateProgram: [this.pageOne.value, this.pageTwo.value] byte 0x706167654f6e65 // "pageOne" box_get @@ -2521,7 +2523,7 @@ multipleProgramPages: assertComment: proto 0 0 - // tests/contracts/general.algo.ts:492 + // tests/contracts/general.algo.ts:496 // assert(false, 'this is false') int 0 @@ -2567,7 +2569,7 @@ orLiteralType: byte 0x dup - // tests/contracts/general.algo.ts:500 + // tests/contracts/general.algo.ts:504 // foo = a && b === 1 ? 2 : 0 frame_dig -1 // a: uint64 dup @@ -2588,12 +2590,12 @@ orLiteralType: *ternary0_end: frame_bury 0 // foo: uint64 - // tests/contracts/general.algo.ts:501 + // tests/contracts/general.algo.ts:505 // assert(foo) frame_dig 0 // foo: uint64 assert - // tests/contracts/general.algo.ts:503 + // tests/contracts/general.algo.ts:507 // bar = a && b === 0 ? '2' : '0' frame_dig -1 // a: uint64 dup @@ -2605,7 +2607,7 @@ orLiteralType: *skip_and1: bz *ternary1_false - byte 0x32 // "2" + pushbytes 0x32 // "2" b *ternary1_end *ternary1_false: @@ -2614,7 +2616,7 @@ orLiteralType: *ternary1_end: frame_bury 1 // bar: byte[] - // tests/contracts/general.algo.ts:504 + // tests/contracts/general.algo.ts:508 // log(bar) frame_dig 1 // bar: byte[] log @@ -2627,32 +2629,32 @@ nonAbi: // Push empty bytes after the frame pointer to reserve space for local variables byte 0x - // tests/contracts/general.algo.ts:509 + // tests/contracts/general.algo.ts:513 // assert(this.txn.applicationArgs!.length) txn NumAppArgs assert - // tests/contracts/general.algo.ts:511 + // tests/contracts/general.algo.ts:515 // for (let i = 0; i < this.txn.applicationArgs!.length; i += 1) int 0 frame_bury 0 // i: uint64 *for_1: - // tests/contracts/general.algo.ts:511 + // tests/contracts/general.algo.ts:515 // i < this.txn.applicationArgs!.length frame_dig 0 // i: uint64 txn NumAppArgs < bz *for_1_end - // tests/contracts/general.algo.ts:512 + // tests/contracts/general.algo.ts:516 // log(this.txn.applicationArgs![i]) frame_dig 0 // i: uint64 txnas ApplicationArgs log *for_1_continue: - // tests/contracts/general.algo.ts:511 + // tests/contracts/general.algo.ts:515 // i += 1 frame_dig 0 // i: uint64 int 1 @@ -2678,24 +2680,24 @@ multilineFunctionCall: byte 0x dup - // tests/contracts/general.algo.ts:517 + // tests/contracts/general.algo.ts:521 // app = AppID.zeroIndex int 0 frame_bury 0 // app: uint64 - // tests/contracts/general.algo.ts:518 + // tests/contracts/general.algo.ts:522 // addr = Address.zeroAddress global ZeroAddress frame_bury 1 // addr: address - // tests/contracts/general.algo.ts:520 + // tests/contracts/general.algo.ts:524 // app.localState( // addr, // 'key' // ) frame_dig 1 // addr: address int 0 // app: uint64 - byte 0x6b6579 // "key" + pushbytes 0x6b6579 // "key" app_local_get_ex // local state value does not exist: app.localState( addr, 'key' ) @@ -2719,9 +2721,9 @@ multilineFunctionCall: a: proto 0 1 - // tests/contracts/general.algo.ts:527 + // tests/contracts/general.algo.ts:531 // return 3; - int 3 + pushint 3 retsub // b()uint64 @@ -2741,7 +2743,7 @@ a: b: proto 0 1 - // tests/contracts/general.algo.ts:531 + // tests/contracts/general.algo.ts:535 // return 5; int 5 retsub @@ -2763,12 +2765,12 @@ b: unusedMethodValue: proto 0 1 - // tests/contracts/general.algo.ts:535 + // tests/contracts/general.algo.ts:539 // this.a() callsub a pop - // tests/contracts/general.algo.ts:536 + // tests/contracts/general.algo.ts:540 // return this.b(); callsub b retsub @@ -2794,30 +2796,30 @@ reassignedNonFirstVar: byte 0x dup - // tests/contracts/general.algo.ts:547 + // tests/contracts/general.algo.ts:551 // a = 1 as uint64 int 1 frame_bury 0 // a: uint64 - // tests/contracts/general.algo.ts:548 + // tests/contracts/general.algo.ts:552 // b = this.app.id txna Applications 0 frame_bury 1 // b: uint64 // *if2_condition - // tests/contracts/general.algo.ts:549 + // tests/contracts/general.algo.ts:553 // a frame_dig 0 // a: uint64 bz *if2_end // *if2_consequent - // tests/contracts/general.algo.ts:550 + // tests/contracts/general.algo.ts:554 // b = 2 int 2 frame_bury 1 // b: uint64 *if2_end: - // tests/contracts/general.algo.ts:553 + // tests/contracts/general.algo.ts:557 // return b; frame_dig 1 // b: uint64 @@ -2839,12 +2841,12 @@ reassignedNonFirstVar: fvLv: proto 0 0 - // tests/contracts/general.algo.ts:557 + // tests/contracts/general.algo.ts:561 // assert(this.txn.firstValid) txn FirstValid assert - // tests/contracts/general.algo.ts:558 + // tests/contracts/general.algo.ts:562 // assert(this.txn.lastValid) txn LastValid assert @@ -2855,7 +2857,7 @@ fvLv: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -2863,80 +2865,80 @@ fvLv: err *call_NoOp: - method "txnTypeEnum()void" - method "txnGroupLength()void" - method "asserts(bool,bool)void" - method "verifyTxnFromArg(pay)void" - method "verifyTxnFromTxnGroup()void" - method "verifyTxnCondition()void" - method "verifyTxnIncludedIn()void" - method "verifyTxnNotIncludedIn()void" - method "submitPendingGroup()void" - method "methodWithTxnArgs()void" - method "shift()void" - method "fromBytes()void" - method "fromUint64()void" - method "bzeroFunction()void" - method "events()void" - method "letOptimization(uint64[])uint64[]" - method "staticContractProperties()void" - method "numberToString()void" - method "methodOnParens()void" - method "stringSubstring()void" - method "idProperty()void" - method "scratchSlot()void" - method "ecdsa()void" - method "verifyTxnTypes()void" - method "stringPlusEquals()void" - method "importedProgram()byte[]" - method "callPrivateDefinedLater()void" - method "interalPublicMethod(uint64,uint64)uint64" - method "callInternalPublicMethod()void" - method "appLoadScratch()void" - method "uintNWithUnderscore()uint256" - method "opUp()void" - method "returnValueOnAssignment()string" - method "returnArrayValueOnAssignment()uint64" - method "returnStorageValueOnAssignment()uint64" - method "returnOperatorAssignmentValue()uint64" - method "returnArrayValueOnOperatorAssignment()uint64" - method "returnArrayInStorageValueOnOperatorAssignment()uint64" - method "consts()void" - method "assertWithMessage()void" - method "opcodeAliases()void" - method "vrfVerifyOp()void" - method "ecMath()void" - method "gitxn()void" - method "getSetBytes()void" - method "getSetUint64()void" - method "blockOp()void" - method "b64()void" - method "json()void" - method "bitlenOp()void" - method "computedConst()void" - method "multiComputedConst()void" - method "readSchema()void" - method "comparisonOr()bool" - method "txnArgsMethod(pay)void" - method "callTxnArgsMethod()void" - method "staticValueLen(uint256)void" - method "staticTypeLen()void" - method "dynamicScratchSlot()void" - method "incrementScratchSlot()void" - method "incrementDynamicScratchSlot()void" - method "fromAddress()void" - method "earlyReturn(uint64)uint64" - method "assetMethodArgs()void" - method "multipleProgramPages()void" - method "assertComment()void" - method "throwErrorMessage()void" - method "orLiteralType(uint64,uint64)void" - method "multilineFunctionCall()void" - method "a()uint64" - method "b()uint64" - method "unusedMethodValue()uint64" - method "reassignedNonFirstVar()uint64" - method "fvLv()void" + pushbytes 0x624264a3 // method "txnTypeEnum()void" + pushbytes 0xb205edc9 // method "txnGroupLength()void" + pushbytes 0xe6e97d5b // method "asserts(bool,bool)void" + pushbytes 0xdd6fa7c8 // method "verifyTxnFromArg(pay)void" + pushbytes 0x0ea644fb // method "verifyTxnFromTxnGroup()void" + pushbytes 0xec0d9094 // method "verifyTxnCondition()void" + pushbytes 0x68848d97 // method "verifyTxnIncludedIn()void" + pushbytes 0x18bd23dc // method "verifyTxnNotIncludedIn()void" + pushbytes 0x806bfb93 // method "submitPendingGroup()void" + pushbytes 0x3be5f82e // method "methodWithTxnArgs()void" + pushbytes 0x1295d683 // method "shift()void" + pushbytes 0xb3b8c472 // method "fromBytes()void" + pushbytes 0x53e0b6f0 // method "fromUint64()void" + pushbytes 0x4b3eb877 // method "bzeroFunction()void" + pushbytes 0xdac2e7a5 // method "events()void" + pushbytes 0xa3db6704 // method "letOptimization(uint64[])uint64[]" + pushbytes 0xae21c172 // method "staticContractProperties()void" + pushbytes 0xdab4d1c4 // method "numberToString()void" + pushbytes 0xa7b4ae9a // method "methodOnParens()void" + pushbytes 0x6d4485ba // method "stringSubstring()void" + pushbytes 0xef6262e9 // method "idProperty()void" + pushbytes 0x8d2b668b // method "scratchSlot()void" + pushbytes 0xe6c154fc // method "ecdsa()void" + pushbytes 0xa9764197 // method "verifyTxnTypes()void" + pushbytes 0x9dbbc42c // method "stringPlusEquals()void" + pushbytes 0x4c0ddec1 // method "importedProgram()byte[]" + pushbytes 0x30ecfb41 // method "callPrivateDefinedLater()void" + pushbytes 0x14a49919 // method "interalPublicMethod(uint64,uint64)uint64" + pushbytes 0xb71c179a // method "callInternalPublicMethod()void" + pushbytes 0x98481093 // method "appLoadScratch()void" + pushbytes 0xf572d1c1 // method "uintNWithUnderscore()uint256" + pushbytes 0x854dede0 // method "opUp()void" + pushbytes 0x681599fa // method "returnValueOnAssignment()string" + pushbytes 0x5e1477e8 // method "returnArrayValueOnAssignment()uint64" + pushbytes 0xe07b3be9 // method "returnStorageValueOnAssignment()uint64" + pushbytes 0x16e46657 // method "returnOperatorAssignmentValue()uint64" + pushbytes 0x2c836f46 // method "returnArrayValueOnOperatorAssignment()uint64" + pushbytes 0xa93c56f9 // method "returnArrayInStorageValueOnOperatorAssignment()uint64" + pushbytes 0xf936952d // method "consts()void" + pushbytes 0x88f39c99 // method "assertWithMessage()void" + pushbytes 0x58794cf4 // method "opcodeAliases()void" + pushbytes 0x35044ad8 // method "vrfVerifyOp()void" + pushbytes 0x7d279e8e // method "ecMath()void" + pushbytes 0x3dfa18c8 // method "gitxn()void" + pushbytes 0x78ca5c4e // method "getSetBytes()void" + pushbytes 0x0e67e957 // method "getSetUint64()void" + pushbytes 0x3b446eef // method "blockOp()void" + pushbytes 0xae82e875 // method "b64()void" + pushbytes 0xd69af530 // method "json()void" + pushbytes 0x4d52f33d // method "bitlenOp()void" + pushbytes 0x2c0cd201 // method "computedConst()void" + pushbytes 0x70e0afe5 // method "multiComputedConst()void" + pushbytes 0x30a2fef4 // method "readSchema()void" + pushbytes 0xf3971dca // method "comparisonOr()bool" + byte 0x2c636eeb // method "txnArgsMethod(pay)void" + pushbytes 0x9e40d34b // method "callTxnArgsMethod()void" + pushbytes 0x91cf2b58 // method "staticValueLen(uint256)void" + pushbytes 0xb1c8b45c // method "staticTypeLen()void" + pushbytes 0x9c0e1bdb // method "dynamicScratchSlot()void" + pushbytes 0x0a319504 // method "incrementScratchSlot()void" + pushbytes 0x84b260fa // method "incrementDynamicScratchSlot()void" + pushbytes 0x4a908856 // method "fromAddress()void" + pushbytes 0x8deb32d3 // method "earlyReturn(uint64)uint64" + pushbytes 0x67de156f // method "assetMethodArgs()void" + pushbytes 0x1e428412 // method "multipleProgramPages()void" + pushbytes 0x278fd8b8 // method "assertComment()void" + pushbytes 0xbfc36208 // method "throwErrorMessage()void" + pushbytes 0x04eedf79 // method "orLiteralType(uint64,uint64)void" + pushbytes 0x35d5fbc7 // method "multilineFunctionCall()void" + pushbytes 0xf9522e2f // method "a()uint64" + pushbytes 0x8c9379e6 // method "b()uint64" + pushbytes 0xf9a13552 // method "unusedMethodValue()uint64" + pushbytes 0x94f2049a // method "reassignedNonFirstVar()uint64" + pushbytes 0x56264215 // method "fvLv()void" txna ApplicationArgs 0 match *abi_route_txnTypeEnum *abi_route_txnGroupLength *abi_route_asserts *abi_route_verifyTxnFromArg *abi_route_verifyTxnFromTxnGroup *abi_route_verifyTxnCondition *abi_route_verifyTxnIncludedIn *abi_route_verifyTxnNotIncludedIn *abi_route_submitPendingGroup *abi_route_methodWithTxnArgs *abi_route_shift *abi_route_fromBytes *abi_route_fromUint64 *abi_route_bzeroFunction *abi_route_events *abi_route_letOptimization *abi_route_staticContractProperties *abi_route_numberToString *abi_route_methodOnParens *abi_route_stringSubstring *abi_route_idProperty *abi_route_scratchSlot *abi_route_ecdsa *abi_route_verifyTxnTypes *abi_route_stringPlusEquals *abi_route_importedProgram *abi_route_callPrivateDefinedLater *abi_route_interalPublicMethod *abi_route_callInternalPublicMethod *abi_route_appLoadScratch *abi_route_uintNWithUnderscore *abi_route_opUp *abi_route_returnValueOnAssignment *abi_route_returnArrayValueOnAssignment *abi_route_returnStorageValueOnAssignment *abi_route_returnOperatorAssignmentValue *abi_route_returnArrayValueOnOperatorAssignment *abi_route_returnArrayInStorageValueOnOperatorAssignment *abi_route_consts *abi_route_assertWithMessage *abi_route_opcodeAliases *abi_route_vrfVerifyOp *abi_route_ecMath *abi_route_gitxn *abi_route_getSetBytes *abi_route_getSetUint64 *abi_route_blockOp *abi_route_b64 *abi_route_json *abi_route_bitlenOp *abi_route_computedConst *abi_route_multiComputedConst *abi_route_readSchema *abi_route_comparisonOr *abi_route_txnArgsMethod *abi_route_callTxnArgsMethod *abi_route_staticValueLen *abi_route_staticTypeLen *abi_route_dynamicScratchSlot *abi_route_incrementScratchSlot *abi_route_incrementDynamicScratchSlot *abi_route_fromAddress *abi_route_earlyReturn *abi_route_assetMethodArgs *abi_route_multipleProgramPages *abi_route_assertComment *abi_route_throwErrorMessage *abi_route_orLiteralType *abi_route_multilineFunctionCall *abi_route_a *abi_route_b *abi_route_unusedMethodValue *abi_route_reassignedNonFirstVar *abi_route_fvLv @@ -2947,7 +2949,7 @@ fvLv: *intToAscii: proto 1 1 - byte 0x30313233343536373839 // "0123456789" + pushbytes 0x30313233343536373839 // "0123456789" frame_dig -1 // i: uint64 int 1 extract3 @@ -2965,13 +2967,13 @@ fvLv: *itoa_if_end: frame_dig -1 // i: uint64 - int 10 + pushint 10 / int 0 > bz *itoa_ternary_false frame_dig -1 // i: uint64 - int 10 + pushint 10 / callsub *itoa b *itoa_ternary_end @@ -2981,7 +2983,7 @@ fvLv: *itoa_ternary_end: frame_dig -1 // i: uint64 - int 10 + pushint 10 % callsub *intToAscii concat diff --git a/tests/contracts/artifacts/GeneralTest.arc32.json b/tests/contracts/artifacts/GeneralTest.arc32.json index 3e6ae92d0..f1e1e16f7 100644 --- a/tests/contracts/artifacts/GeneralTest.arc32.json +++ b/tests/contracts/artifacts/GeneralTest.arc32.json @@ -413,7 +413,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gISEhISBXQVJOSU5HOiBUaGlzIGNvbnRyYWN0IGlzICpOT1QqIEFSQzQgY29tcGxpYW50LiBJdCBtYXkgY29udGFpbiBBQkkgbWV0aG9kcywgYnV0IGl0IGFsc28gYWxsb3dzIGFwcCBjYWxscyB3aGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgZG9lcyBOT1QgbWF0Y2ggYW4gQUJJIHNlbGVjdG9yCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eG5UeXBlRW51bSgpdm9pZAoqYWJpX3JvdXRlX3R4blR5cGVFbnVtOgoJLy8gZXhlY3V0ZSB0eG5UeXBlRW51bSgpdm9pZAoJY2FsbHN1YiB0eG5UeXBlRW51bQoJaW50IDEKCXJldHVybgoKLy8gdHhuVHlwZUVudW0oKTogdm9pZAp0eG5UeXBlRW51bToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjEKCS8vIGFzc2VydCh0aGlzLnR4bkdyb3VwWzBdLnR5cGVFbnVtID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsKQoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB0eG5Hcm91cExlbmd0aCgpdm9pZAoqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoOgoJLy8gZXhlY3V0ZSB0eG5Hcm91cExlbmd0aCgpdm9pZAoJY2FsbHN1YiB0eG5Hcm91cExlbmd0aAoJaW50IDEKCXJldHVybgoKLy8gdHhuR3JvdXBMZW5ndGgoKTogdm9pZAp0eG5Hcm91cExlbmd0aDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjUKCS8vIGFzc2VydCh0aGlzLnR4bkdyb3VwLmxlbmd0aCA9PT0gMSkKCWdsb2JhbCBHcm91cFNpemUKCWludCAxCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydHMoYm9vbCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRzOgoJLy8gYXJnMjogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFyZzIpIGZvciBhc3NlcnRzIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMSkgZm9yIGFzc2VydHMgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgYXNzZXJ0cyhib29sLGJvb2wpdm9pZAoJY2FsbHN1YiBhc3NlcnRzCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRzKGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiB2b2lkCmFzc2VydHM6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjY5CgkvLyBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglmcmFtZV9kaWcgLTEgLy8gYXJnMTogYm9vbGVhbgoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBhcmcyOiBib29sZWFuCgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoYXJnMSwgYXJnMiwgYXJnMSA9PT0gYXJnMikKCWFzc2VydAoJZnJhbWVfZGlnIC0xIC8vIGFyZzE6IGJvb2xlYW4KCWZyYW1lX2RpZyAtMiAvLyBhcmcyOiBib29sZWFuCgk9PQoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21Bcmc6CgkvLyBzb21lUGF5OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChzb21lUGF5KSBmb3IgdmVyaWZ5VHhuRnJvbUFyZyBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuRnJvbUFyZwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhzb21lUGF5OiBQYXlUeG4pOiB2b2lkCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjczCgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNvbWVQYXkiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaW50IDEwMF8wMDAKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzb21lUGF5IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6IjEwMF8wMDAifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkZyb21UeG5Hcm91cAoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCk6IHZvaWQKdmVyaWZ5VHhuRnJvbVR4bkdyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo3NwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuR3JvdXBbMF0sIHsgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWludCAwCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuQ29uZGl0aW9uKCl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuQ29uZGl0aW9uOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuQ29uZGl0aW9uCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5Db25kaXRpb24oKTogdm9pZAp2ZXJpZnlUeG5Db25kaXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjgxCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uSUQKCXR4biBBcHBsaWNhdGlvbklECglpbnQgMQoJPgoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6ImFwcGxpY2F0aW9uSUQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjEifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5JbmNsdWRlZEluKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkluY2x1ZGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKTogdm9pZAp2ZXJpZnlUeG5JbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4NwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgaW5jbHVkZWRJbjogW3RoaXMudHhuLnNlbmRlcl0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0IjoidGhpcy50eG4ifSwiZmllbGQiOiJzZW5kZXIiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbdGhpcy50eG4uc2VuZGVyXSJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bk5vdEluY2x1ZGVkSW46CgkvLyBleGVjdXRlIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuTm90SW5jbHVkZWRJbgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpOiB2b2lkCnZlcmlmeVR4bk5vdEluY2x1ZGVkSW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkzCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIHNlbmRlcjogeyBub3RJbmNsdWRlZEluOiBbZ2xvYmFscy56ZXJvQWRkcmVzc10gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjp7InR4blRleHQiOiJ0aGlzLnR4biJ9LCJmaWVsZCI6InNlbmRlciIsImNvbmRpdGlvbiI6Im5vdEluY2x1ZGVkSW4iLCJleHBlY3RlZCI6IltnbG9iYWxzLnplcm9BZGRyZXNzXSJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCiphYmlfcm91dGVfc3VibWl0UGVuZGluZ0dyb3VwOgoJLy8gZXhlY3V0ZSBzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQKCWNhbGxzdWIgc3VibWl0UGVuZGluZ0dyb3VwCglpbnQgMQoJcmV0dXJuCgovLyBzdWJtaXRQZW5kaW5nR3JvdXAoKTogdm9pZApzdWJtaXRQZW5kaW5nR3JvdXA6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjk5CgkvLyB0aGlzLnBlbmRpbmdHcm91cC5hZGRQYXltZW50KHsgYW1vdW50OiAwLCByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgaXNGaXJzdFR4bjogdHJ1ZSB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTkKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5OQoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZFBheW1lbnQoeyBhbW91bnQ6IDAsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBub3RlOiAnZm9vJyB9KQoJaXR4bl9uZXh0CglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTAwCgkvLyBub3RlOiAnZm9vJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDEKCS8vIHRoaXMucGVuZGluZ0dyb3VwLnN1Ym1pdCgpCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzOgoJLy8gZXhlY3V0ZSBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoJY2FsbHN1YiBtZXRob2RXaXRoVHhuQXJncwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKTogdm9pZAptZXRob2RXaXRoVHhuQXJnczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTA1CgkvLyBzZW5kTWV0aG9kQ2FsbDxbUGF5VHhuLCBNZXRob2RDYWxsPFt1aW50NjRdLCB2b2lkPl0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICB7IGFtb3VudDogMTAwXzAwMCwgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciB9LAoJLy8gICAgICAgICB7CgkvLyAgICAgICAgICAgbmFtZTogJ2JhcicsCgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgxMzM3KSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbMV0sCgkvLyAgICAgICAgIH0sCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDgKCS8vIGFtb3VudDogMTAwXzAwMAoJaW50IDEwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiYmFyKHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExMQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgxMzM3KQoJaW50IDEzMzcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTEyCgkvLyBtZXRob2RBcmdzOiBbMV0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJmb28ocGF5LGFwcGwpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDcKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXQoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBzaGlmdCgpdm9pZAoqYWJpX3JvdXRlX3NoaWZ0OgoJLy8gZXhlY3V0ZSBzaGlmdCgpdm9pZAoJY2FsbHN1YiBzaGlmdAoJaW50IDEKCXJldHVybgoKLy8gc2hpZnQoKTogdm9pZApzaGlmdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTE5CgkvLyBhc3NlcnQoMSA8PCAyID09PSA0KQoJaW50IDEKCWludCAyCglzaGwKCWludCA0Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjAKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCiphYmlfcm91dGVfZnJvbUJ5dGVzOgoJLy8gZXhlY3V0ZSBmcm9tQnl0ZXMoKXZvaWQKCWNhbGxzdWIgZnJvbUJ5dGVzCglpbnQgMQoJcmV0dXJuCgovLyBmcm9tQnl0ZXMoKTogdm9pZApmcm9tQnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyNAoJLy8gYXNzZXJ0KEFkZHJlc3MuZnJvbUJ5dGVzKCdhYmMnKS5taW5CYWxhbmNlKQoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBmcm9tVWludDY0KCl2b2lkCiphYmlfcm91dGVfZnJvbVVpbnQ2NDoKCS8vIGV4ZWN1dGUgZnJvbVVpbnQ2NCgpdm9pZAoJY2FsbHN1YiBmcm9tVWludDY0CglpbnQgMQoJcmV0dXJuCgovLyBmcm9tVWludDY0KCk6IHZvaWQKZnJvbVVpbnQ2NDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI4CgkvLyBsb2coQXBwSUQuZnJvbVVpbnQ2NCgxMjMpLmNyZWF0b3IpCglpbnQgMTIzCglhcHBfcGFyYW1zX2dldCBBcHBDcmVhdG9yCglwb3AKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI5CgkvLyBsb2coQXNzZXRJRC5mcm9tVWludDY0KDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWxvZwoJcmV0c3ViCgovLyBiemVyb0Z1bmN0aW9uKCl2b2lkCiphYmlfcm91dGVfYnplcm9GdW5jdGlvbjoKCS8vIGV4ZWN1dGUgYnplcm9GdW5jdGlvbigpdm9pZAoJY2FsbHN1YiBiemVyb0Z1bmN0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBiemVyb0Z1bmN0aW9uKCk6IHZvaWQKYnplcm9GdW5jdGlvbjoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzNAoJLy8geDogYnl0ZXMgPSBiemVybygyKQoJYnl0ZSAweDAwMDAKCWZyYW1lX2J1cnkgMCAvLyB4OiBieXRlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM1CgkvLyB5OiBieXRlcyA9IGJ6ZXJvKG4pCglpbnQgMQoJYnplcm8KCWZyYW1lX2J1cnkgMSAvLyB5OiBieXRlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM2CgkvLyB6OiBbdWludDY0LCB1aW50PDg+XSA9IGJ6ZXJvPFt1aW50NjQsIHVpbnQ8OD5dPigpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDIgLy8gejogW3VpbnQ2NCwgdWludDw4Pl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzNwoJLy8gYXNzZXJ0KGxlbih4ICsgeSArIHopID09PSAxMikKCWJ5dGUgMHgwMDAwIC8vIHg6IGJ5dGVzCglmcmFtZV9kaWcgMSAvLyB5OiBieXRlcwoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwIC8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dCgljb25jYXQKCWxlbgoJaW50IDEyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGV2ZW50cygpdm9pZAoqYWJpX3JvdXRlX2V2ZW50czoKCS8vIGV4ZWN1dGUgZXZlbnRzKCl2b2lkCgljYWxsc3ViIGV2ZW50cwoJaW50IDEKCXJldHVybgoKLy8gZXZlbnRzKCk6IHZvaWQKZXZlbnRzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTIKCS8vIHRoaXMubXlFdmVudC5sb2coeyBhcHA6IHRoaXMuYXBwLCBudW06IDEgfSkKCWJ5dGUgMHg4NzUyODE5NiAvLyBteUV2ZW50KHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY29uY2F0Cgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10KKmFiaV9yb3V0ZV9sZXRPcHRpbWl6YXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgbGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdCgljYWxsc3ViIGxldE9wdGltaXphdGlvbgoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbGV0T3B0aW1pemF0aW9uKGE6IHVpbnQ2NFtdKTogdWludDY0W10KbGV0T3B0aW1pemF0aW9uOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTYKCS8vIGFzc2VydChhWzBdKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTU4CgkvLyBiID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IC0xIC8vIGI6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjAKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglyZXRzdWIKCi8vIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCS8vIGV4ZWN1dGUgc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkCgljYWxsc3ViIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCk6IHZvaWQKc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCksCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogRHVtbXlDb250cmFjdC5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2NQoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcAoJaW50IDAgLy8gTm9PcAoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2NgoJLy8gYXBwcm92YWxQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmFwcHJvdmFsUHJvZ3JhbSgpCglieXRlIGI2NCBDakVZRklFR0N6RVpDSTBNQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBSUVCUTRBRXVFUjdOallhQUk0Qi8vQUEKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjcKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjgKCS8vIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UKCWludCAwCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjkKCS8vIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludAoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzEKCS8vIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBudW1iZXJUb1N0cmluZygpdm9pZAoqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nOgoJLy8gZXhlY3V0ZSBudW1iZXJUb1N0cmluZygpdm9pZAoJY2FsbHN1YiBudW1iZXJUb1N0cmluZwoJaW50IDEKCXJldHVybgoKLy8gbnVtYmVyVG9TdHJpbmcoKTogdm9pZApudW1iZXJUb1N0cmluZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTc4CgkvLyBhc3NlcnQobi50b1N0cmluZygpID09PSBzKQoJaW50IDEKCWNhbGxzdWIgKml0b2EKCWJ5dGUgIjEiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIG1ldGhvZE9uUGFyZW5zKCl2b2lkCiphYmlfcm91dGVfbWV0aG9kT25QYXJlbnM6CgkvLyBleGVjdXRlIG1ldGhvZE9uUGFyZW5zKCl2b2lkCgljYWxsc3ViIG1ldGhvZE9uUGFyZW5zCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RPblBhcmVucygpOiB2b2lkCm1ldGhvZE9uUGFyZW5zOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxODIKCS8vIGFzc2VydCgoMSArIDIpLnRvU3RyaW5nKCkgPT09ICczJykKCWludCAzCgljYWxsc3ViICppdG9hCglieXRlIDB4MzMgLy8gIjMiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1N1YnN0cmluZygpdm9pZAoqYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZzoKCS8vIGV4ZWN1dGUgc3RyaW5nU3Vic3RyaW5nKCl2b2lkCgljYWxsc3ViIHN0cmluZ1N1YnN0cmluZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nU3Vic3RyaW5nKCk6IHZvaWQKc3RyaW5nU3Vic3RyaW5nOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxODcKCS8vIGFzc2VydChzLnN1YnN0cmluZygxLCAzKSA9PT0gJ2JjJykKCWJ5dGUgImFiY2RlZiIKCXN1YnN0cmluZyAxIDMKCWJ5dGUgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAoqYWJpX3JvdXRlX2lkUHJvcGVydHk6CgkvLyBleGVjdXRlIGlkUHJvcGVydHkoKXZvaWQKCWNhbGxzdWIgaWRQcm9wZXJ0eQoJaW50IDEKCXJldHVybgoKLy8gaWRQcm9wZXJ0eSgpOiB2b2lkCmlkUHJvcGVydHk6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTEKCS8vIGFwcCA9IEFwcElELnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBhcHA6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQoQXBwSUQuZnJvbVVpbnQ2NChhcHAuaWQpID09PSBhcHApCglpbnQgMCAvLyBhcHA6IHVpbnQ2NAoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTQKCS8vIGFzYSA9IEFzc2V0SUQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGFzYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTUKCS8vIGFzc2VydChBc3NldElELmZyb21VaW50NjQoYXNhLmlkKSA9PT0gYXNhKQoJaW50IDAgLy8gYXNhOiB1aW50NjQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gc2NyYXRjaFNsb3QoKTogdm9pZApzY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTk5CgkvLyB0aGlzLnNjcmF0Y2gudmFsdWUgPSAxMzM3CglpbnQgMTMzNwoJc3RvcmUgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjAwCgkvLyBhc3NlcnQodGhpcy5zY3JhdGNoLnZhbHVlID09PSAxMzM3KQoJbG9hZCAwCglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlY2RzYSgpdm9pZAoqYWJpX3JvdXRlX2VjZHNhOgoJLy8gZXhlY3V0ZSBlY2RzYSgpdm9pZAoJY2FsbHN1YiBlY2RzYQoJaW50IDEKCXJldHVybgoKLy8gZWNkc2EoKTogdm9pZAplY2RzYToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwNAoJLy8gZWNkc2FWZXJpZnkoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZHVwbiA0CgllY2RzYV92ZXJpZnkgU2VjcDI1NmsxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDUKCS8vIGQgPSBlY2RzYVBrRGVjb21wcmVzcygnU2VjcDI1NmsxJywgJycgYXMgYnl0ZXM8MzM+KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZWNkc2FfcGtfZGVjb21wcmVzcyBTZWNwMjU2azEKCWZyYW1lX2J1cnkgMCAvLyBkIHkgY29tcG9uZW50OiBieXRlW10KCWZyYW1lX2J1cnkgMSAvLyBkIHggY29tcG9uZW50OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwNgoJLy8gbG9nKGQueSkKCWZyYW1lX2RpZyAwIC8vIGQgeSBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDcKCS8vIGxvZyhkLngpCglmcmFtZV9kaWcgMSAvLyBkIHggY29tcG9uZW50OiBieXRlW10KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjA5CgkvLyByID0gZWNkc2FQa1JlY292ZXIoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsIDEsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJaW50IDEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglkdXAKCWVjZHNhX3BrX3JlY292ZXIgU2VjcDI1NmsxCglmcmFtZV9idXJ5IDIgLy8gciB5IGNvbXBvbmVudDogYnl0ZVtdCglmcmFtZV9idXJ5IDMgLy8gciB4IGNvbXBvbmVudDogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTAKCS8vIGxvZyhyLnkpCglmcmFtZV9kaWcgMiAvLyByIHkgY29tcG9uZW50OiBieXRlW10KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjExCgkvLyBsb2coci54KQoJZnJhbWVfZGlnIDMgLy8gciB4IGNvbXBvbmVudDogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gdmVyaWZ5VHhuVHlwZXMoKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5UeXBlczoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuVHlwZXMoKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuVHlwZXMKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4blR5cGVzKCk6IHZvaWQKdmVyaWZ5VHhuVHlwZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIxNQoJLy8gdmVyaWZ5UGF5VHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgcGF5CglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoicGF5In0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWludCAwCglndHhucyBBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJhbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTkKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgwKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogewoJLy8gICAgICAgICAwOiAnZm9vJywKCS8vICAgICAgICAgMTogewoJLy8gICAgICAgICAgIGluY2x1ZGVkSW46IFsnYmFyJywgJ2JheiddLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGwKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGFwcGwKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoiYXBwbCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25JRAoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uSUQKCWludCAwCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYXBwbGljYXRpb25JRCIsImV4cGVjdGVkIjoiQXBwSUQuZnJvbVVpbnQ2NCgwKSJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzIDAKCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6ImFwcGxpY2F0aW9uQXJncyIsImluZGV4IjoiMCIsImV4cGVjdGVkIjoiJ2ZvbycifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uQXJncyAxCglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09CglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCWJ5dGUgMHg2MjYxN2EgLy8gImJheiIKCT09Cgl8fAoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjp7InR4blRleHQiOiJ0aGlzLnR4bkdyb3VwWzBdIn0sImZpZWxkIjoiYXBwbGljYXRpb25BcmdzIDEiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbJ2JhcicsICdiYXonXSJ9Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIyOQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXhmZXIKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoidHlwZUVudW0iLCJleHBlY3RlZCI6ImF4ZmVyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglpbnQgMAoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJhc3NldFJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjMzCgkvLyB2ZXJpZnlBc3NldENvbmZpZ1R4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KDApLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYWNmZwoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYWNmZwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJhY2ZnIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBjb25maWdBc3NldAoJaW50IDAKCWd0eG5zIENvbmZpZ0Fzc2V0CglpbnQgMAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6ImNvbmZpZ0Fzc2V0IiwiZXhwZWN0ZWQiOiJBc3NldElELmZyb21VaW50NjQoMCkifQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMzcKCS8vIHZlcmlmeUtleVJlZ1R4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICB2b3RlRmlyc3Q6IDEzMzcsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBrZXlyZWcKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGtleXJlZwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJrZXlyZWcifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHZvdGVGaXJzdAoJaW50IDAKCWd0eG5zIFZvdGVGaXJzdAoJaW50IDEzMzcKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ2b3RlRmlyc3QiLCJleHBlY3RlZCI6IjEzMzcifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1BsdXNFcXVhbHMoKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzOgoJLy8gZXhlY3V0ZSBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCgljYWxsc3ViIHN0cmluZ1BsdXNFcXVhbHMKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1BsdXNFcXVhbHMoKTogdm9pZApzdHJpbmdQbHVzRXF1YWxzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI0MwoJLy8gcyA9ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDQKCS8vIHMgKz0gJ2JhcicKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDUKCS8vIGFzc2VydChzID09PSAnZm9vYmFyJykKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDY2NmY2ZjYyNjE3MiAvLyAiZm9vYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQoqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQoJY2FsbHN1YiBpbXBvcnRlZFByb2dyYW0KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaW1wb3J0ZWRQcm9ncmFtKCk6IGJ5dGVzCmltcG9ydGVkUHJvZ3JhbToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjQ5CgkvLyByZXR1cm4gSWZUZXN0LmFwcHJvdmFsUHJvZ3JhbSgpOwoJYnl0ZSBiNjQgQ2lBRUFRQUNJQ1lKQkJVZmZIVUNhV1lFWld4elpRTmxibVFBQTJadmJ3ZGxiSE5sSUdsbUNXVnNjMlVnYVdZZ01RbGxiSE5sSUdsbUlESXhHQlNCQmdzeEdRaU5EQU1rQUFBQUFBQUFBQUFBQUFNV0FBQUFBQUFBQUFBQUFBQW9OaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0JBWXYvUVFBQ0tZa3JpU2cyR2dGSkZTSVNSQ05UaUFBTVNSVVdWd1lDVEZCUXNDSkRpZ0VCaS85QkFBVXBpVUlBQWlxSmlTZzJHZ0pKRlNJU1JDTlROaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0NBWXYvUVFBRktZbENBQWlML2tFQUF5Y0dpU3VKS0RZYUFra1ZJaEpFSTFNMkdnRkpGU0lTUkNOVGlBQU1TUlVXVndZQ1RGQlFzQ0pEaWdJQmkvOUJBQVVwaVVJQURZditRUUFHSndhSlFnQUNLb21KS0RZYUEwa1ZJaEpFSTFNMkdnSkpGU0lTUkNOVE5ob0JTUlVpRWtRalU0Z0FERWtWRmxjR0FreFFVTEFpUTRvREFZdi9RUUFGS1lsQ0FCT0wva0VBQmljSGlVSUFDSXY5UVFBREp3aUpLNGtvTmhvRFNSVWlFa1FqVXpZYUFra1ZJaEpFSTFNMkdnRkpGU0lTUkNOVGlBQU1TUlVXVndZQ1RGQlFzQ0pEaWdNQmkvOUJBQVVwaVVJQUdJditRUUFHSndlSlFnQU5pLzFCQUFZbkNJbENBQUlxaVlrb05ob0NTUlVpRWtRalV6WWFBVWtWSWhKRUkxT0lBQXhKRlJaWEJnSk1VRkN3SWtPS0FnR0wvMEVBRm92K1FRQU1nQWx1WlhOMFpXUWdhV2FKS1lsQ0FBSXFpWWtvTmhvQlNSVWlFa1FqVTRnQURFa1ZGbGNHQWt4UVVMQWlRNG9CQVl2L1FRQUZLWWxDQUFJcWlZa29OaG9DU1JVaUVrUWpVellhQVVrVkloSkVJMU9JQUFVV1VMQWlRNG9DQVl2L1FRQUVJa0lBQzR2K1FRQUVKRUlBQW9FRGlTZzJHZ0ZYQWdDSUFBVVdVTEFpUTRvQkFZdi9Kd1NwUVFBQ0lva2tpU2cyR2dGWEFnQ0lBQVVXVUxBaVE0b0JBWXYvSndTcFFRQUVJa0lBQVNTSk5ob0JTUlVrRWtRWGlBQUNJa09LQVFDTC95Y0VxVUVBQXljRnNJazJHZ0pKRlNRU1JCYzJHZ0ZKRlNRU1JCZUlBQUlpUTRvQ0FJdi9pLzRPUVFBREp3V3dpVFlhQWtrVkpSSkVOaG9CU1JVbEVrU0lBQUlpUTRvQ0FJdi9pLzZtUVFBREp3V3dpU2cyR2dKSkZTSVNSQ05UTmhvQlNSVWlFa1FqVTRnQURFa1ZGbGNHQWt4UVVMQWlRNG9DQVl2L1FRQVppLzVCQUEyQUIyRWdZVzVrSUdLSlFnQUVnQUZoaVVJQUZvditRUUFIZ0FGaWlVSUFDb0FIYm1WcGRHaGxjb21KSWtPQUJMaEVlelkyR2dDT0FmL3hBSUFFUTI3QndvQUVISG9OWG9BRVhnKzJ6NEFFWGh4c1VJQUVXTkM2a29BRVhTOVBBb0FFaEZjcDJZQUVqK2RzcUlBRUdqeDRlSUFFZEx6SWFJQUVRaEw1QllBRWxkMnV2NEFFTVVlNFpvQUVRb2wvWVlBRVUwdml0ellhQUk0UC9HRDhodnl3L092OUt2MTYvYzcrRS80OS9uTCtrUDZ3L3MzKzgvOFhBQT09CglyZXRzdWIKCi8vIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyKCl2b2lkCiphYmlfcm91dGVfY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXI6CgkvLyBleGVjdXRlIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyKCl2b2lkCgljYWxsc3ViIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpOiB2b2lkCmNhbGxQcml2YXRlRGVmaW5lZExhdGVyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNTMKCS8vIGxvZyh0aGlzLnByaXZhdGVNZXRob2QoJ2hlbGxvJykpCglieXRlIDB4Njg2NTZjNmM2ZiAvLyAiaGVsbG8iCgljYWxsc3ViIHByaXZhdGVNZXRob2QKCWxvZwoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKG1zZzogc3RyaW5nKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI1NwoJLy8gcmV0dXJuIG1zZzsKCWZyYW1lX2RpZyAtMSAvLyBtc2c6IHN0cmluZwoJcmV0c3ViCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmludGVyYWxQdWJsaWNNZXRob2Q6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2MQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QoKXZvaWQKKmFiaV9yb3V0ZV9jYWxsSW50ZXJuYWxQdWJsaWNNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZAoJY2FsbHN1YiBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QKCWludCAxCglyZXR1cm4KCi8vIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpOiB2b2lkCmNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjY1CgkvLyBhc3NlcnQodGhpcy5pbnRlcmFsUHVibGljTWV0aG9kKDEsIDIpID09PSAzKQoJaW50IDIKCWludCAxCgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCWludCAzCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFwcExvYWRTY3JhdGNoKCl2b2lkCiphYmlfcm91dGVfYXBwTG9hZFNjcmF0Y2g6CgkvLyBleGVjdXRlIGFwcExvYWRTY3JhdGNoKCl2b2lkCgljYWxsc3ViIGFwcExvYWRTY3JhdGNoCglpbnQgMQoJcmV0dXJuCgovLyBhcHBMb2FkU2NyYXRjaCgpOiB2b2lkCmFwcExvYWRTY3JhdGNoOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNjkKCS8vIGxvZyh0aGlzLnR4bkdyb3VwWzFdLmxvYWRTY3JhdGNoKDIpIGFzIGJ5dGVzKQoJZ2xvYWQgMSAyCglsb2cKCXJldHN1YgoKLy8gdWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NgoqYWJpX3JvdXRlX3VpbnROV2l0aFVuZGVyc2NvcmU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NgoJY2FsbHN1YiB1aW50TldpdGhVbmRlcnNjb3JlCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1aW50TldpdGhVbmRlcnNjb3JlIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludE5XaXRoVW5kZXJzY29yZSgpOiB1aW50MjU2CnVpbnROV2l0aFVuZGVyc2NvcmU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI3MwoJLy8gcmV0dXJuIDx1aW50MjU2PjEyM180NTY7CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZTI0MAoJcmV0c3ViCgovLyBvcFVwKCl2b2lkCiphYmlfcm91dGVfb3BVcDoKCS8vIGV4ZWN1dGUgb3BVcCgpdm9pZAoJY2FsbHN1YiBvcFVwCglpbnQgMQoJcmV0dXJuCgovLyBvcFVwKCk6IHZvaWQKb3BVcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI3OAoJLy8gZm9yIChsZXQgaSA9IDE7IGkgPCA3NTsgaSArPSAxKQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc4CgkvLyBpIDwgNzUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDc1Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzkKCS8vIGFzc2VydChpKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cglhc3NlcnQKCipmb3JfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJcmV0c3ViCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCiphYmlfcm91dGVfcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZwoJY2FsbHN1YiByZXR1cm5WYWx1ZU9uQXNzaWdubWVudAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpOiBzdHJpbmcKcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjg0CgkvLyBtZXNzYWdlID0gJ2hpJwoJYnl0ZSAweDY4NjkgLy8gImhpIgoJZnJhbWVfYnVyeSAwIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4NgoJLy8gdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLmFwcC5hZGRyZXNzCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4NwoJLy8gbWVzc2FnZSA9ICdpbiBibG9jaycKCWJ5dGUgMHg2OTZlMjA2MjZjNmY2MzZiIC8vICJpbiBibG9jayIKCWZyYW1lX2J1cnkgMCAvLyBtZXNzYWdlOiBieXRlW10KCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTAKCS8vIHJldHVybiAobWVzc2FnZSA9ICdieWUnKTsKCWJ5dGUgMHg2Mjc5NjUgLy8gImJ5ZSIKCWR1cAoJZnJhbWVfYnVyeSAwIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTYKCS8vIHJldHVybiAoYVswXSA9IDQpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJaW50IDAKCWludCA0CglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwMAoJLy8gdGhpcy5nS2V5LnZhbHVlID0gMQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJaW50IDEKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDIKCS8vIHJldHVybiAodGhpcy5nS2V5LnZhbHVlID0gMik7CglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglpbnQgMgoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJYXBwX2dsb2JhbF9wdXQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCXJldHN1YgoKLy8gcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpOiB1aW50NjQKcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzA2CgkvLyBhID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwOAoJLy8gcmV0dXJuIChhICs9IDIpOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0CglpbnQgMgoJKwoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NAoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTQKCS8vIHJldHVybiAoYVswXSArPSA0KTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWludCAwCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDAgOAoJYnRvaQoJaW50IDQKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE4CgkvLyB0aGlzLnN0b3JhZ2VBcnJheS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyMAoJLy8gcmV0dXJuICh0aGlzLnN0b3JhZ2VBcnJheS52YWx1ZVswXSArPSA0KTsKCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgMCA4CglidG9pCglpbnQgNAoJKwoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJaXRvYgoJcmVwbGFjZTMKCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglyZXRzdWIKCi8vIGNvbnN0cygpdm9pZAoqYWJpX3JvdXRlX2NvbnN0czoKCS8vIGV4ZWN1dGUgY29uc3RzKCl2b2lkCgljYWxsc3ViIGNvbnN0cwoJaW50IDEKCXJldHVybgoKLy8gY29uc3RzKCk6IHZvaWQKY29uc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjQKCS8vIGFzc2VydChTVFJJTkdfQ09OU1QgPT09ICdmb28nKQoJYnl0ZSAiZm9vIgoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI1CgkvLyBhc3NlcnQoTlVNX0NPTlNUID09PSAxMjMpCglpbnQgMTIzCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyNgoJLy8gYXNzZXJ0KE5FU1RFRF9DT05TVCA9PT0gMTIzKQoJaW50IDEyMwoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCiphYmlfcm91dGVfYXNzZXJ0V2l0aE1lc3NhZ2U6CgkvLyBleGVjdXRlIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCgljYWxsc3ViIGFzc2VydFdpdGhNZXNzYWdlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRXaXRoTWVzc2FnZSgpOiB2b2lkCmFzc2VydFdpdGhNZXNzYWdlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzAKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gb3Bjb2RlQWxpYXNlcygpdm9pZAoqYWJpX3JvdXRlX29wY29kZUFsaWFzZXM6CgkvLyBleGVjdXRlIG9wY29kZUFsaWFzZXMoKXZvaWQKCWNhbGxzdWIgb3Bjb2RlQWxpYXNlcwoJaW50IDEKCXJldHVybgoKLy8gb3Bjb2RlQWxpYXNlcygpOiB2b2lkCm9wY29kZUFsaWFzZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzNAoJLy8gZXh0cmFjdFVpbnQxNihiemVybyg2NCksIDApCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWludCAwCglleHRyYWN0X3VpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM1CgkvLyBleHRyYWN0VWludDMyKGJ6ZXJvKDY0KSwgMCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJaW50IDAKCWV4dHJhY3RfdWludDMyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzYKCS8vIGV4dHJhY3RVaW50NjQoYnplcm8oNjQpLCAwKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglpbnQgMAoJZXh0cmFjdF91aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzNwoJLy8gZWQyNTUxOVZlcmlmeUJhcmUoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeV9iYXJlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzgKCS8vIGVkMjU1MTlWZXJpZnkoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeQoJcmV0c3ViCgovLyB2cmZWZXJpZnlPcCgpdm9pZAoqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wOgoJLy8gZXhlY3V0ZSB2cmZWZXJpZnlPcCgpdm9pZAoJY2FsbHN1YiB2cmZWZXJpZnlPcAoJaW50IDEKCXJldHVybgoKLy8gdnJmVmVyaWZ5T3AoKTogdm9pZAp2cmZWZXJpZnlPcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0MgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQzCgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQ2CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQ5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MgoJLy8gciA9IHZyZlZlZmlyeSgnVnJmQWxnb3JhbmQnLCBiemVybygzMikgYXMgYnl0ZXMsIGJ6ZXJvKDgwKSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJdnJmX3ZlcmlmeSBWcmZBbGdvcmFuZAoJZnJhbWVfYnVyeSAwIC8vIHIgdmVyaWZpZWQ6IGJvb2wKCWZyYW1lX2J1cnkgMSAvLyByIG91dHB1dDogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTMKCS8vIGFzc2VydCghci52ZXJpZmllZCkKCWZyYW1lX2RpZyAwIC8vIHIgdmVyaWZpZWQ6IGJvb2wKCSEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU0CgkvLyBsb2coci5vdXRwdXQpCglmcmFtZV9kaWcgMSAvLyByIG91dHB1dDogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gZWNNYXRoKCl2b2lkCiphYmlfcm91dGVfZWNNYXRoOgoJLy8gZXhlY3V0ZSBlY01hdGgoKXZvaWQKCWNhbGxzdWIgZWNNYXRoCglpbnQgMQoJcmV0dXJuCgovLyBlY01hdGgoKTogdm9pZAplY01hdGg6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU4CgkvLyBlY1NjYWxhck11bCgnQk4yNTRnMScsICcnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWR1cAoJZWNfc2NhbGFyX211bCBCTjI1NGcxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTkKCS8vIGVjUGFpcmluZ0NoZWNrKCdCTjI1NGcxJywgJycsICcnKQoJYnl0ZSAweCAvLyAiIgoJZHVwCgllY19wYWlyaW5nX2NoZWNrIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2MAoJLy8gc2NhbGFyczogYnl0ZXMzMltdID0gW2J6ZXJvKDMyKSwgYnplcm8oMzIpXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gc2NhbGFyczogYnl0ZXMzMltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjEKCS8vIGVjTXVsdGlTY2FsYXJNdWwoJ0JOMjU0ZzEnLCAnJywgc2NhbGFycykKCWJ5dGUgMHggLy8gIiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyBzY2FsYXJzOiBieXRlczMyW10KCWVjX211bHRpX3NjYWxhcl9tdWwgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzYyCgkvLyBlY1N1Ymdyb3VwQ2hlY2soJ0JOMjU0ZzEnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWVjX3N1Ymdyb3VwX2NoZWNrIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2MwoJLy8gZWNNYXBUbygnQk4yNTRnMScsICcnKQoJYnl0ZSAweCAvLyAiIgoJZWNfbWFwX3RvIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2NAoJLy8gZWNBZGQoJ0JOMjU0ZzEnLCAnJywgJycpCglieXRlIDB4IC8vICIiCglkdXAKCWVjX2FkZCBCTjI1NGcxCglyZXRzdWIKCi8vIGdpdHhuKCl2b2lkCiphYmlfcm91dGVfZ2l0eG46CgkvLyBleGVjdXRlIGdpdHhuKCl2b2lkCgljYWxsc3ViIGdpdHhuCglpbnQgMQoJcmV0dXJuCgovLyBnaXR4bigpOiB2b2lkCmdpdHhuOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2OAoJLy8gbG9nKHRoaXMubGFzdElubmVyR3JvdXBbMF0uc2VuZGVyKQoJZ2l0eG4gMCBTZW5kZXIKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcwCgkvLyBhbm90aGVyVHhuID0gdGhpcy5sYXN0SW5uZXJHcm91cFsxXQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBhbm90aGVyVHhuOiBnaXR4bgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcyCgkvLyBsb2coYW5vdGhlclR4bi5zZW5kZXIpCglnaXR4biAxIFNlbmRlcgoJbG9nCglyZXRzdWIKCi8vIGdldFNldEJ5dGVzKCl2b2lkCiphYmlfcm91dGVfZ2V0U2V0Qnl0ZXM6CgkvLyBleGVjdXRlIGdldFNldEJ5dGVzKCl2b2lkCgljYWxsc3ViIGdldFNldEJ5dGVzCglpbnQgMQoJcmV0dXJuCgovLyBnZXRTZXRCeXRlcygpOiB2b2lkCmdldFNldEJ5dGVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzYKCS8vIGxvZyhzZXRiaXQoJ2ZvbycsIDAsIHRydWUpKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAxCglzZXRiaXQKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzc3CgkvLyBnZXRiaXQoJ2ZvbycsIDApCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJZ2V0Yml0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzgKCS8vIGdldGJ5dGUoJ2ZvbycsIDApCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJZ2V0Ynl0ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzc5CgkvLyBzZXRieXRlKCdmb28nLCAwLCAxKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAxCglzZXRieXRlCglyZXRzdWIKCi8vIGdldFNldFVpbnQ2NCgpdm9pZAoqYWJpX3JvdXRlX2dldFNldFVpbnQ2NDoKCS8vIGV4ZWN1dGUgZ2V0U2V0VWludDY0KCl2b2lkCgljYWxsc3ViIGdldFNldFVpbnQ2NAoJaW50IDEKCXJldHVybgoKLy8gZ2V0U2V0VWludDY0KCk6IHZvaWQKZ2V0U2V0VWludDY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODMKCS8vIGFzc2VydChzZXRiaXQoMTIzLCAwLCB0cnVlKSkKCWludCAxMjMKCWludCAwCglpbnQgMQoJc2V0Yml0Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4NAoJLy8gZ2V0Yml0KDEyMywgMCkKCWludCAxMjMKCWludCAwCglnZXRiaXQKCXJldHN1YgoKLy8gYmxvY2tPcCgpdm9pZAoqYWJpX3JvdXRlX2Jsb2NrT3A6CgkvLyBleGVjdXRlIGJsb2NrT3AoKXZvaWQKCWNhbGxzdWIgYmxvY2tPcAoJaW50IDEKCXJldHVybgoKLy8gYmxvY2tPcCgpOiB2b2lkCmJsb2NrT3A6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4OAoJLy8gbG9nKGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uc2VlZCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1NlZWQKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzg5CgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS50aW1lc3RhbXApCglnbG9iYWwgUm91bmQKCWludCAxCgktCglibG9jayBCbGtUaW1lc3RhbXAKCWFzc2VydAoJcmV0c3ViCgovLyBiNjQoKXZvaWQKKmFiaV9yb3V0ZV9iNjQ6CgkvLyBleGVjdXRlIGI2NCgpdm9pZAoJY2FsbHN1YiBiNjQKCWludCAxCglyZXR1cm4KCi8vIGI2NCgpOiB2b2lkCmI2NDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkzCgkvLyBsb2coYmFzZTY0RGVjb2RlKCdTdGRFbmNvZGluZycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWJhc2U2NF9kZWNvZGUgU3RkRW5jb2RpbmcKCWxvZwoJcmV0c3ViCgovLyBqc29uKCl2b2lkCiphYmlfcm91dGVfanNvbjoKCS8vIGV4ZWN1dGUganNvbigpdm9pZAoJY2FsbHN1YiBqc29uCglpbnQgMQoJcmV0dXJuCgovLyBqc29uKCk6IHZvaWQKanNvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzk3CgkvLyBsb2coanNvblJlZignSlNPTk9iamVjdCcsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05PYmplY3QKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzk4CgkvLyBsb2coanNvblJlZignSlNPTlN0cmluZycsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05TdHJpbmcKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzk5CgkvLyBhc3NlcnQoanNvblJlZignSlNPTlVpbnQ2NCcsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05VaW50NjQKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRsZW5PcCgpdm9pZAoqYWJpX3JvdXRlX2JpdGxlbk9wOgoJLy8gZXhlY3V0ZSBiaXRsZW5PcCgpdm9pZAoJY2FsbHN1YiBiaXRsZW5PcAoJaW50IDEKCXJldHVybgoKLy8gYml0bGVuT3AoKTogdm9pZApiaXRsZW5PcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDAzCgkvLyBiaXRsZW4oMTIzKQoJaW50IDEyMwoJYml0bGVuCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDQKCS8vIGJpdGxlbignZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJpdGxlbgoJcmV0c3ViCgovLyBjb21wdXRlZENvbnN0KCl2b2lkCiphYmlfcm91dGVfY29tcHV0ZWRDb25zdDoKCS8vIGV4ZWN1dGUgY29tcHV0ZWRDb25zdCgpdm9pZAoJY2FsbHN1YiBjb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBjb21wdXRlZENvbnN0KCk6IHZvaWQKY29tcHV0ZWRDb25zdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDA4CgkvLyBhc3NlcnQoQ09NUFVURURfQ09OU1QpCglpbnQgMjQ2Cglhc3NlcnQKCXJldHN1YgoKLy8gbXVsdGlDb21wdXRlZENvbnN0KCl2b2lkCiphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBtdWx0aUNvbXB1dGVkQ29uc3QoKXZvaWQKCWNhbGxzdWIgbXVsdGlDb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUNvbXB1dGVkQ29uc3QoKTogdm9pZAptdWx0aUNvbXB1dGVkQ29uc3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxMgoJLy8gYXNzZXJ0KE1VVExJX0NPTVBVVEVEX0NPTlNUKQoJaW50IDMwMzgxCglhc3NlcnQKCXJldHN1YgoKLy8gcmVhZFNjaGVtYSgpdm9pZAoqYWJpX3JvdXRlX3JlYWRTY2hlbWE6CgkvLyBleGVjdXRlIHJlYWRTY2hlbWEoKXZvaWQKCWNhbGxzdWIgcmVhZFNjaGVtYQoJaW50IDEKCXJldHVybgoKLy8gcmVhZFNjaGVtYSgpOiB2b2lkCnJlYWRTY2hlbWE6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNgoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCA9PT0gMSkKCWludCAxCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNwoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlID09PSAyKQoJaW50IDIKCWR1cAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDE4CgkvLyBhc3NlcnQoU2NoZW1hQ29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQgPT09IDMpCglpbnQgMwoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MTkKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEubG9jYWwubnVtQnl0ZVNsaWNlID09PSA0KQoJaW50IDQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBjb21wYXJpc29uT3IoKWJvb2wKKmFiaV9yb3V0ZV9jb21wYXJpc29uT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29tcGFyaXNvbk9yKClib29sCgljYWxsc3ViIGNvbXBhcmlzb25PcgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb21wYXJpc29uT3IoKTogYm9vbGVhbgpjb21wYXJpc29uT3I6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMwoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcyB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuemVyb0FkZHJlc3M7Cgl0eG4gU2VuZGVyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCXx8Cgoqc2tpcF9vcjA6CglyZXRzdWIKCi8vIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKKmFiaV9yb3V0ZV90eG5BcmdzTWV0aG9kOgoJLy8gX3BheTE6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKF9wYXkxKSBmb3IgdHhuQXJnc01ldGhvZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKCWNhbGxzdWIgdHhuQXJnc01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gdHhuQXJnc01ldGhvZChfcGF5MTogUGF5VHhuKTogdm9pZAp0eG5BcmdzTWV0aG9kOgoJcHJvdG8gMSAwCglyZXRzdWIKCi8vIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCiphYmlfcm91dGVfY2FsbFR4bkFyZ3NNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCgljYWxsc3ViIGNhbGxUeG5BcmdzTWV0aG9kCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsVHhuQXJnc01ldGhvZCgpOiB2b2lkCmNhbGxUeG5BcmdzTWV0aG9kOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzAKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBHZW5lcmFsVGVzdC5wcm90b3R5cGUudHhuQXJnc01ldGhvZD4oewoJLy8gICAgICAgbWV0aG9kQXJnczogW3sgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMCB9XSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDMxCgkvLyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQzMQoJLy8gYW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAidHhuQXJnc01ldGhvZChwYXkpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzEKCS8vIG1ldGhvZEFyZ3M6IFt7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IDAgfV0KCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gc3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkCiphYmlfcm91dGVfc3RhdGljVmFsdWVMZW46CgkvLyB4OiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBzdGF0aWNWYWx1ZUxlbiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKCWNhbGxzdWIgc3RhdGljVmFsdWVMZW4KCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1ZhbHVlTGVuKHg6IHVpbnQyNTYpOiB2b2lkCnN0YXRpY1ZhbHVlTGVuOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzYKCS8vIGFzc2VydChsZW4oeCkpCglpbnQgMzIKCWFzc2VydAoJcmV0c3ViCgovLyBzdGF0aWNUeXBlTGVuKCl2b2lkCiphYmlfcm91dGVfc3RhdGljVHlwZUxlbjoKCS8vIGV4ZWN1dGUgc3RhdGljVHlwZUxlbigpdm9pZAoJY2FsbHN1YiBzdGF0aWNUeXBlTGVuCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNUeXBlTGVuKCk6IHZvaWQKc3RhdGljVHlwZUxlbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDQwCgkvLyBhc3NlcnQobGVuPHVpbnQyNTY+KCkpCglpbnQgMzIKCWFzc2VydAoJcmV0c3ViCgovLyBkeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQKKmFiaV9yb3V0ZV9keW5hbWljU2NyYXRjaFNsb3Q6CgkvLyBleGVjdXRlIGR5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBkeW5hbWljU2NyYXRjaFNsb3QKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNTY3JhdGNoU2xvdCgpOiB2b2lkCmR5bmFtaWNTY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDQ0CgkvLyB0aGlzLmR5bmFtaWNTY3JhdGNoKDEpLnZhbHVlID0gMTMzNwoJaW50IDEKCWludCAxMzM3CglzdG9yZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ0NQoJLy8gYXNzZXJ0KHRoaXMuZHluYW1pY1NjcmF0Y2goMSkudmFsdWUgPT09IDEzMzcpCglpbnQgMQoJbG9hZHMKCWludCAxMzM3Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkCiphYmlfcm91dGVfaW5jcmVtZW50U2NyYXRjaFNsb3Q6CgkvLyBleGVjdXRlIGluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGluY3JlbWVudFNjcmF0Y2hTbG90CglpbnQgMQoJcmV0dXJuCgovLyBpbmNyZW1lbnRTY3JhdGNoU2xvdCgpOiB2b2lkCmluY3JlbWVudFNjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NDkKCS8vIHRoaXMuc2NyYXRjaC52YWx1ZSA9IDEzMzcKCWludCAxMzM3CglzdG9yZSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTAKCS8vIHRoaXMuc2NyYXRjaC52YWx1ZSArPSAxCglsb2FkIDAKCWludCAxCgkrCglzdG9yZSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTEKCS8vIGFzc2VydCh0aGlzLnNjcmF0Y2gudmFsdWUgPT09IDEzMzgpCglsb2FkIDAKCWludCAxMzM4Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX2luY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCk6IHZvaWQKaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTUKCS8vIHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPSAxMzM3CglpbnQgMgoJaW50IDEzMzcKCXN0b3JlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDU2CgkvLyB0aGlzLmR5bmFtaWNTY3JhdGNoKDIpLnZhbHVlICs9IDEKCWludCAyCglsb2FkcwoJaW50IDEKCSsKCWludCAyCglzd2FwCglzdG9yZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1NwoJLy8gYXNzZXJ0KHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPT09IDEzMzgpCglpbnQgMgoJbG9hZHMKCWludCAxMzM4Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGZyb21BZGRyZXNzKCl2b2lkCiphYmlfcm91dGVfZnJvbUFkZHJlc3M6CgkvLyBleGVjdXRlIGZyb21BZGRyZXNzKCl2b2lkCgljYWxsc3ViIGZyb21BZGRyZXNzCglpbnQgMQoJcmV0dXJuCgovLyBmcm9tQWRkcmVzcygpOiB2b2lkCmZyb21BZGRyZXNzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ2MQoJLy8gYSA9IEFkZHJlc3MuZnJvbUFkZHJlc3MoJ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZNUhGS1EnKQoJYWRkciBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRCglmcmFtZV9idXJ5IDAgLy8gYTogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDYyCgkvLyBhc3NlcnQoYSA9PT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGE6IGFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlYXJseVJldHVybih1aW50NjQpdWludDY0CiphYmlfcm91dGVfZWFybHlSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZWFybHlSZXR1cm4odWludDY0KXVpbnQ2NAoJY2FsbHN1YiBlYXJseVJldHVybgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVhcmx5UmV0dXJuKGE6IHVpbnQ2NCk6IHVpbnQ2NAplYXJseVJldHVybjoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDY2CgkvLyBhID09PSAxCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglpbnQgMQoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ2NwoJLy8gcmV0dXJuIDI7CglpbnQgMgoJYiAqZWFybHlSZXR1cm4qcmV0dXJuCgoqaWYxX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDY5CgkvLyBiID0gYSArIDEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzAKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIDAgLy8gYjogdWludDY0CgoqZWFybHlSZXR1cm4qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGFzc2V0TWV0aG9kQXJncygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJnczoKCS8vIGV4ZWN1dGUgYXNzZXRNZXRob2RBcmdzKCl2b2lkCgljYWxsc3ViIGFzc2V0TWV0aG9kQXJncwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRNZXRob2RBcmdzKCk6IHZvaWQKYXNzZXRNZXRob2RBcmdzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzQKCS8vIHNlbmRNZXRob2RDYWxsPFtBc3NldFJlZmVyZW5jZV0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW0Fzc2V0SUQuZnJvbVVpbnQ2NCgxKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImZvbyhhc3NldCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ3NgoJLy8gbWV0aG9kQXJnczogW0Fzc2V0SUQuZnJvbVVpbnQ2NCgxKV0KCWludCAxCglpdHhuX2ZpZWxkIEFzc2V0cwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtdWx0aXBsZVByb2dyYW1QYWdlcygpdm9pZAoqYWJpX3JvdXRlX211bHRpcGxlUHJvZ3JhbVBhZ2VzOgoJLy8gZXhlY3V0ZSBtdWx0aXBsZVByb2dyYW1QYWdlcygpdm9pZAoJY2FsbHN1YiBtdWx0aXBsZVByb2dyYW1QYWdlcwoJaW50IDEKCXJldHVybgoKLy8gbXVsdGlwbGVQcm9ncmFtUGFnZXMoKTogdm9pZAptdWx0aXBsZVByb2dyYW1QYWdlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDg1CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogW3RoaXMucGFnZU9uZS52YWx1ZSwgdGhpcy5wYWdlVHdvLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4NgoJLy8gYXBwcm92YWxQcm9ncmFtOiBbdGhpcy5wYWdlT25lLnZhbHVlLCB0aGlzLnBhZ2VUd28udmFsdWVdCglieXRlIDB4NzA2MTY3NjU0ZjZlNjUgLy8gInBhZ2VPbmUiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBhZ2VPbmUudmFsdWUKCWFzc2VydAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZSAweDcwNjE2NzY1NTQ3NzZmIC8vICJwYWdlVHdvIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wYWdlVHdvLnZhbHVlCglhc3NlcnQKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4NwoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0KCWJ5dGUgMHg3MDYxNjc2NTRmNmU2NSAvLyAicGFnZU9uZSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZU9uZS52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCWJ5dGUgMHg3MDYxNjc2NTU0Nzc2ZiAvLyAicGFnZVR3byIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZVR3by52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2VydENvbW1lbnQoKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRDb21tZW50OgoJLy8gZXhlY3V0ZSBhc3NlcnRDb21tZW50KCl2b2lkCgljYWxsc3ViIGFzc2VydENvbW1lbnQKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydENvbW1lbnQoKTogdm9pZAphc3NlcnRDb21tZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0OTIKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKKmFiaV9yb3V0ZV90aHJvd0Vycm9yTWVzc2FnZToKCS8vIGV4ZWN1dGUgdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvck1lc3NhZ2UKCWludCAxCglyZXR1cm4KCi8vIHRocm93RXJyb3JNZXNzYWdlKCk6IHZvaWQKdGhyb3dFcnJvck1lc3NhZ2U6Cglwcm90byAwIDAKCgkvLyB0aGlzIGlzIGFuIGVycm9yCgllcnIKCXJldHN1YgoKLy8gb3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vckxpdGVyYWxUeXBlOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvckxpdGVyYWxUeXBlKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvckxpdGVyYWxUeXBlCglpbnQgMQoJcmV0dXJuCgovLyBvckxpdGVyYWxUeXBlKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApvckxpdGVyYWxUeXBlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTAwCgkvLyBmb28gPSBhICYmIGIgPT09IDEgPyAyIDogMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglpbnQgMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnQgMgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMCAvLyBmb286IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTAxCgkvLyBhc3NlcnQoZm9vKQoJZnJhbWVfZGlnIDAgLy8gZm9vOiB1aW50NjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTAzCgkvLyBiYXIgPSBhICYmIGIgPT09IDAgPyAnMicgOiAnMCcKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaW50IDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJYnl0ZSAweDMyIC8vICIyIgoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglieXRlIDB4MzAgLy8gIjAiCgoqdGVybmFyeTFfZW5kOgoJZnJhbWVfYnVyeSAxIC8vIGJhcjogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MDQKCS8vIGxvZyhiYXIpCglmcmFtZV9kaWcgMSAvLyBiYXI6IGJ5dGVbXQoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaSgpOiB2b2lkCm5vbkFiaToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MDkKCS8vIGFzc2VydCh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhLmxlbmd0aCkKCXR4biBOdW1BcHBBcmdzCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhLmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTExCgkvLyBpIDwgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMgoJLy8gbG9nKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbaV0pCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJbG9nCgoqZm9yXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCXJldHN1YgoKLy8gbXVsdGlsaW5lRnVuY3Rpb25DYWxsKCl2b2lkCiphYmlfcm91dGVfbXVsdGlsaW5lRnVuY3Rpb25DYWxsOgoJLy8gZXhlY3V0ZSBtdWx0aWxpbmVGdW5jdGlvbkNhbGwoKXZvaWQKCWNhbGxzdWIgbXVsdGlsaW5lRnVuY3Rpb25DYWxsCglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aWxpbmVGdW5jdGlvbkNhbGwoKTogdm9pZAptdWx0aWxpbmVGdW5jdGlvbkNhbGw6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MTcKCS8vIGFwcCA9IEFwcElELnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBhcHA6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE4CgkvLyBhZGRyID0gQWRkcmVzcy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglmcmFtZV9idXJ5IDEgLy8gYWRkcjogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTIwCgkvLyBhcHAubG9jYWxTdGF0ZSgKCS8vICAgICAgIGFkZHIsCgkvLyAgICAgICAna2V5JwoJLy8gICAgICkKCWZyYW1lX2RpZyAxIC8vIGFkZHI6IGFkZHJlc3MKCWludCAwIC8vIGFwcDogdWludDY0CglieXRlIDB4NmI2NTc5IC8vICJrZXkiCglhcHBfbG9jYWxfZ2V0X2V4CgoJLy8gbG9jYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IGFwcC5sb2NhbFN0YXRlKCBhZGRyLCAna2V5JyApCglhc3NlcnQKCXJldHN1YgoKLy8gYSgpdWludDY0CiphYmlfcm91dGVfYToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhKCl1aW50NjQKCWNhbGxzdWIgYQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdWludDY0CmE6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUyNwoJLy8gcmV0dXJuIDM7CglpbnQgMwoJcmV0c3ViCgovLyBiKCl1aW50NjQKKmFiaV9yb3V0ZV9iOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGIoKXVpbnQ2NAoJY2FsbHN1YiBiCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYigpOiB1aW50NjQKYjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTMxCgkvLyByZXR1cm4gNTsKCWludCA1CglyZXRzdWIKCi8vIHVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQKKmFiaV9yb3V0ZV91bnVzZWRNZXRob2RWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1bnVzZWRNZXRob2RWYWx1ZSgpdWludDY0CgljYWxsc3ViIHVudXNlZE1ldGhvZFZhbHVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdW51c2VkTWV0aG9kVmFsdWUoKTogdWludDY0CnVudXNlZE1ldGhvZFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MzUKCS8vIHRoaXMuYSgpCgljYWxsc3ViIGEKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTM2CgkvLyByZXR1cm4gdGhpcy5iKCk7CgljYWxsc3ViIGIKCXJldHN1YgoKLy8gcmVhc3NpZ25lZE5vbkZpcnN0VmFyKCl1aW50NjQKKmFiaV9yb3V0ZV9yZWFzc2lnbmVkTm9uRmlyc3RWYXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmVhc3NpZ25lZE5vbkZpcnN0VmFyKCl1aW50NjQKCWNhbGxzdWIgcmVhc3NpZ25lZE5vbkZpcnN0VmFyCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmVhc3NpZ25lZE5vbkZpcnN0VmFyKCk6IHVpbnQ2NApyZWFzc2lnbmVkTm9uRmlyc3RWYXI6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NDcKCS8vIGEgPSAxIGFzIHVpbnQ2NAoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU0OAoJLy8gYiA9IHRoaXMuYXBwLmlkCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglmcmFtZV9idXJ5IDEgLy8gYjogdWludDY0CgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTQ5CgkvLyBhCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjQKCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU1MAoJLy8gYiA9IDIKCWludCAyCglmcmFtZV9idXJ5IDEgLy8gYjogdWludDY0CgoqaWYyX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTUzCgkvLyByZXR1cm4gYjsKCWZyYW1lX2RpZyAxIC8vIGI6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZnZMdigpdm9pZAoqYWJpX3JvdXRlX2Z2THY6CgkvLyBleGVjdXRlIGZ2THYoKXZvaWQKCWNhbGxzdWIgZnZMdgoJaW50IDEKCXJldHVybgoKLy8gZnZMdigpOiB2b2lkCmZ2THY6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU1NwoJLy8gYXNzZXJ0KHRoaXMudHhuLmZpcnN0VmFsaWQpCgl0eG4gRmlyc3RWYWxpZAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NTgKCS8vIGFzc2VydCh0aGlzLnR4bi5sYXN0VmFsaWQpCgl0eG4gTGFzdFZhbGlkCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR4blR5cGVFbnVtKCl2b2lkIgoJbWV0aG9kICJ0eG5Hcm91cExlbmd0aCgpdm9pZCIKCW1ldGhvZCAiYXNzZXJ0cyhib29sLGJvb2wpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZCIKCW1ldGhvZCAibWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQiCgltZXRob2QgInNoaWZ0KCl2b2lkIgoJbWV0aG9kICJmcm9tQnl0ZXMoKXZvaWQiCgltZXRob2QgImZyb21VaW50NjQoKXZvaWQiCgltZXRob2QgImJ6ZXJvRnVuY3Rpb24oKXZvaWQiCgltZXRob2QgImV2ZW50cygpdm9pZCIKCW1ldGhvZCAibGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdIgoJbWV0aG9kICJzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKXZvaWQiCgltZXRob2QgIm51bWJlclRvU3RyaW5nKCl2b2lkIgoJbWV0aG9kICJtZXRob2RPblBhcmVucygpdm9pZCIKCW1ldGhvZCAic3RyaW5nU3Vic3RyaW5nKCl2b2lkIgoJbWV0aG9kICJpZFByb3BlcnR5KCl2b2lkIgoJbWV0aG9kICJzY3JhdGNoU2xvdCgpdm9pZCIKCW1ldGhvZCAiZWNkc2EoKXZvaWQiCgltZXRob2QgInZlcmlmeVR4blR5cGVzKCl2b2lkIgoJbWV0aG9kICJzdHJpbmdQbHVzRXF1YWxzKCl2b2lkIgoJbWV0aG9kICJpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXSIKCW1ldGhvZCAiY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIoKXZvaWQiCgltZXRob2QgImludGVyYWxQdWJsaWNNZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZCIKCW1ldGhvZCAiYXBwTG9hZFNjcmF0Y2goKXZvaWQiCgltZXRob2QgInVpbnROV2l0aFVuZGVyc2NvcmUoKXVpbnQyNTYiCgltZXRob2QgIm9wVXAoKXZvaWQiCgltZXRob2QgInJldHVyblZhbHVlT25Bc3NpZ25tZW50KClzdHJpbmciCgltZXRob2QgInJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NCIKCW1ldGhvZCAicmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQiCgltZXRob2QgInJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCl1aW50NjQiCgltZXRob2QgInJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0IgoJbWV0aG9kICJyZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NCIKCW1ldGhvZCAiY29uc3RzKCl2b2lkIgoJbWV0aG9kICJhc3NlcnRXaXRoTWVzc2FnZSgpdm9pZCIKCW1ldGhvZCAib3Bjb2RlQWxpYXNlcygpdm9pZCIKCW1ldGhvZCAidnJmVmVyaWZ5T3AoKXZvaWQiCgltZXRob2QgImVjTWF0aCgpdm9pZCIKCW1ldGhvZCAiZ2l0eG4oKXZvaWQiCgltZXRob2QgImdldFNldEJ5dGVzKCl2b2lkIgoJbWV0aG9kICJnZXRTZXRVaW50NjQoKXZvaWQiCgltZXRob2QgImJsb2NrT3AoKXZvaWQiCgltZXRob2QgImI2NCgpdm9pZCIKCW1ldGhvZCAianNvbigpdm9pZCIKCW1ldGhvZCAiYml0bGVuT3AoKXZvaWQiCgltZXRob2QgImNvbXB1dGVkQ29uc3QoKXZvaWQiCgltZXRob2QgIm11bHRpQ29tcHV0ZWRDb25zdCgpdm9pZCIKCW1ldGhvZCAicmVhZFNjaGVtYSgpdm9pZCIKCW1ldGhvZCAiY29tcGFyaXNvbk9yKClib29sIgoJbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJbWV0aG9kICJjYWxsVHhuQXJnc01ldGhvZCgpdm9pZCIKCW1ldGhvZCAic3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkIgoJbWV0aG9kICJzdGF0aWNUeXBlTGVuKCl2b2lkIgoJbWV0aG9kICJkeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCgltZXRob2QgImluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkIgoJbWV0aG9kICJpbmNyZW1lbnREeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCgltZXRob2QgImZyb21BZGRyZXNzKCl2b2lkIgoJbWV0aG9kICJlYXJseVJldHVybih1aW50NjQpdWludDY0IgoJbWV0aG9kICJhc3NldE1ldGhvZEFyZ3MoKXZvaWQiCgltZXRob2QgIm11bHRpcGxlUHJvZ3JhbVBhZ2VzKCl2b2lkIgoJbWV0aG9kICJhc3NlcnRDb21tZW50KCl2b2lkIgoJbWV0aG9kICJ0aHJvd0Vycm9yTWVzc2FnZSgpdm9pZCIKCW1ldGhvZCAib3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgIm11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpdm9pZCIKCW1ldGhvZCAiYSgpdWludDY0IgoJbWV0aG9kICJiKCl1aW50NjQiCgltZXRob2QgInVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQiCgltZXRob2QgInJlYXNzaWduZWROb25GaXJzdFZhcigpdWludDY0IgoJbWV0aG9kICJmdkx2KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlRW51bSAqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoICphYmlfcm91dGVfYXNzZXJ0cyAqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21BcmcgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Db25kaXRpb24gKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluICphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiAqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cCAqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzICphYmlfcm91dGVfc2hpZnQgKmFiaV9yb3V0ZV9mcm9tQnl0ZXMgKmFiaV9yb3V0ZV9mcm9tVWludDY0ICphYmlfcm91dGVfYnplcm9GdW5jdGlvbiAqYWJpX3JvdXRlX2V2ZW50cyAqYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbiAqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllcyAqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nICphYmlfcm91dGVfbWV0aG9kT25QYXJlbnMgKmFiaV9yb3V0ZV9zdHJpbmdTdWJzdHJpbmcgKmFiaV9yb3V0ZV9pZFByb3BlcnR5ICphYmlfcm91dGVfc2NyYXRjaFNsb3QgKmFiaV9yb3V0ZV9lY2RzYSAqYWJpX3JvdXRlX3ZlcmlmeVR4blR5cGVzICphYmlfcm91dGVfc3RyaW5nUGx1c0VxdWFscyAqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbSAqYWJpX3JvdXRlX2NhbGxQcml2YXRlRGVmaW5lZExhdGVyICphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2NhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2FwcExvYWRTY3JhdGNoICphYmlfcm91dGVfdWludE5XaXRoVW5kZXJzY29yZSAqYWJpX3JvdXRlX29wVXAgKmFiaV9yb3V0ZV9yZXR1cm5WYWx1ZU9uQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX2NvbnN0cyAqYWJpX3JvdXRlX2Fzc2VydFdpdGhNZXNzYWdlICphYmlfcm91dGVfb3Bjb2RlQWxpYXNlcyAqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wICphYmlfcm91dGVfZWNNYXRoICphYmlfcm91dGVfZ2l0eG4gKmFiaV9yb3V0ZV9nZXRTZXRCeXRlcyAqYWJpX3JvdXRlX2dldFNldFVpbnQ2NCAqYWJpX3JvdXRlX2Jsb2NrT3AgKmFiaV9yb3V0ZV9iNjQgKmFiaV9yb3V0ZV9qc29uICphYmlfcm91dGVfYml0bGVuT3AgKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0ICphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0ICphYmlfcm91dGVfcmVhZFNjaGVtYSAqYWJpX3JvdXRlX2NvbXBhcmlzb25PciAqYWJpX3JvdXRlX3R4bkFyZ3NNZXRob2QgKmFiaV9yb3V0ZV9jYWxsVHhuQXJnc01ldGhvZCAqYWJpX3JvdXRlX3N0YXRpY1ZhbHVlTGVuICphYmlfcm91dGVfc3RhdGljVHlwZUxlbiAqYWJpX3JvdXRlX2R5bmFtaWNTY3JhdGNoU2xvdCAqYWJpX3JvdXRlX2luY3JlbWVudFNjcmF0Y2hTbG90ICphYmlfcm91dGVfaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90ICphYmlfcm91dGVfZnJvbUFkZHJlc3MgKmFiaV9yb3V0ZV9lYXJseVJldHVybiAqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJncyAqYWJpX3JvdXRlX211bHRpcGxlUHJvZ3JhbVBhZ2VzICphYmlfcm91dGVfYXNzZXJ0Q29tbWVudCAqYWJpX3JvdXRlX3Rocm93RXJyb3JNZXNzYWdlICphYmlfcm91dGVfb3JMaXRlcmFsVHlwZSAqYWJpX3JvdXRlX211bHRpbGluZUZ1bmN0aW9uQ2FsbCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iICphYmlfcm91dGVfdW51c2VkTWV0aG9kVmFsdWUgKmFiaV9yb3V0ZV9yZWFzc2lnbmVkTm9uRmlyc3RWYXIgKmFiaV9yb3V0ZV9mdkx2CgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpCglpbnQgMQoJcmV0dXJuCgoqaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJYnl0ZSAweDMwMzEzMjMzMzQzNTM2MzczODM5IC8vICIwMTIzNDU2Nzg5IgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEKCWV4dHJhY3QzCglyZXRzdWIKCQoKKml0b2E6Cglwcm90byAxIDEKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAwCgk9PQoJYnogKml0b2FfaWZfZW5kCglieXRlIDB4MzAKCXJldHN1YgoKKml0b2FfaWZfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCglpbnQgMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCgljYWxsc3ViICppdG9hCgliICppdG9hX3Rlcm5hcnlfZW5kCgoqaXRvYV90ZXJuYXJ5X2ZhbHNlOgoJYnl0ZSAweCAvLyAiIgoKKml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCSUKCWNhbGxzdWIgKmludFRvQXNjaWkKCWNvbmNhdAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAgNiAxMzM3IDIgNSAxMjMgNApieXRlY2Jsb2NrIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzIDB4MTUxZjdjNzUgMHgwYTgxMDEgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgMHggMHg2NjZmNmYgMHgwMDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAxIDB4NzA2MTY3NjU0ZjZlNjUgMHg3MDYxNjc2NTU0Nzc2ZiAweDY3NGI2NTc5IDB4MmM2MzZlZWIgMHg2MjYxNzIgMHg2Mjc5NjUgMHgwMDAwIDB4MzAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyAhISEhIFdBUk5JTkc6IFRoaXMgY29udHJhY3QgaXMgKk5PVCogQVJDNCBjb21wbGlhbnQuIEl0IG1heSBjb250YWluIEFCSSBtZXRob2RzLCBidXQgaXQgYWxzbyBhbGxvd3MgYXBwIGNhbGxzIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIE5PVCBtYXRjaCBhbiBBQkkgc2VsZWN0b3IKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHR4blR5cGVFbnVtKCl2b2lkCiphYmlfcm91dGVfdHhuVHlwZUVudW06CgkvLyBleGVjdXRlIHR4blR5cGVFbnVtKCl2b2lkCgljYWxsc3ViIHR4blR5cGVFbnVtCglpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlRW51bSgpOiB2b2lkCnR4blR5cGVFbnVtOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2NQoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXBbMF0udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwpCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCA2IC8vIGFwcGwKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdHhuR3JvdXBMZW5ndGgoKXZvaWQKKmFiaV9yb3V0ZV90eG5Hcm91cExlbmd0aDoKCS8vIGV4ZWN1dGUgdHhuR3JvdXBMZW5ndGgoKXZvaWQKCWNhbGxzdWIgdHhuR3JvdXBMZW5ndGgKCWludCAxCglyZXR1cm4KCi8vIHR4bkdyb3VwTGVuZ3RoKCk6IHZvaWQKdHhuR3JvdXBMZW5ndGg6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjY5CgkvLyBhc3NlcnQodGhpcy50eG5Hcm91cC5sZW5ndGggPT09IDEpCglnbG9iYWwgR3JvdXBTaXplCglpbnQgMQoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhc3NlcnRzKGJvb2wsYm9vbCl2b2lkCiphYmlfcm91dGVfYXNzZXJ0czoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcyKSBmb3IgYXNzZXJ0cyBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFyZzEpIGZvciBhc3NlcnRzIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGFzc2VydHMoYm9vbCxib29sKXZvaWQKCWNhbGxzdWIgYXNzZXJ0cwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXJ0cyhhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogdm9pZAphc3NlcnRzOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo3MwoJLy8gYXNzZXJ0cyhhcmcxLCBhcmcyLCBhcmcxID09PSBhcmcyKQoJZnJhbWVfZGlnIC0xIC8vIGFyZzE6IGJvb2xlYW4KCgkvLyBhc3NlcnRzIGZhaWxlZDogYXNzZXJ0cyhhcmcxLCBhcmcyLCBhcmcxID09PSBhcmcyKQoJYXNzZXJ0CglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbGVhbgoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBhcmcxOiBib29sZWFuCglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbGVhbgoJPT0KCgkvLyBhc3NlcnRzIGZhaWxlZDogYXNzZXJ0cyhhcmcxLCBhcmcyLCBhcmcxID09PSBhcmcyKQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tQXJnOgoJLy8gc29tZVBheTogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCAxIC8vIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChzb21lUGF5KSBmb3IgdmVyaWZ5VHhuRnJvbUFyZyBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuRnJvbUFyZwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhzb21lUGF5OiBQYXlUeG4pOiB2b2lkCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjc3CgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNvbWVQYXkiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJcHVzaGludCAxMDBfMDAwCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic29tZVBheSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwIn0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAoKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXA6CgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpOiB2b2lkCnZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6ODEKCS8vIHZlcmlmeVR4bih0aGlzLnR4bkdyb3VwWzBdLCB7IHNlbmRlcjogdGhpcy50eG4uc2VuZGVyIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglpbnQgMAoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLnR4bi5zZW5kZXIifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkNvbmRpdGlvbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuQ29uZGl0aW9uKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkNvbmRpdGlvbgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuQ29uZGl0aW9uKCk6IHZvaWQKdmVyaWZ5VHhuQ29uZGl0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4NQoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBhcHBsaWNhdGlvbklECgl0eG4gQXBwbGljYXRpb25JRAoJaW50IDEKCT4KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJhcHBsaWNhdGlvbklEIiwiY29uZGl0aW9uIjoiZ3JlYXRlclRoYW4iLCJleHBlY3RlZCI6Ij4xIn0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5JbmNsdWRlZEluKCl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuSW5jbHVkZWRJbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuSW5jbHVkZWRJbigpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5JbmNsdWRlZEluCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5JbmNsdWRlZEluKCk6IHZvaWQKdmVyaWZ5VHhuSW5jbHVkZWRJbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTEKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IGluY2x1ZGVkSW46IFt0aGlzLnR4bi5zZW5kZXJdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCXR4biBTZW5kZXIKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOnsidHhuVGV4dCI6InRoaXMudHhuIn0sImZpZWxkIjoic2VuZGVyIiwiY29uZGl0aW9uIjoiaW5jbHVkZWRJbiIsImV4cGVjdGVkIjoiW3RoaXMudHhuLnNlbmRlcl0ifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5Ob3RJbmNsdWRlZEluOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKTogdm9pZAp2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5NwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgbm90SW5jbHVkZWRJbjogW2dsb2JhbHMuemVyb0FkZHJlc3NdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0IjoidGhpcy50eG4ifSwiZmllbGQiOiJzZW5kZXIiLCJjb25kaXRpb24iOiJub3RJbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbZ2xvYmFscy56ZXJvQWRkcmVzc10ifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZAoqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cDoKCS8vIGV4ZWN1dGUgc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCgljYWxsc3ViIHN1Ym1pdFBlbmRpbmdHcm91cAoJaW50IDEKCXJldHVybgoKLy8gc3VibWl0UGVuZGluZ0dyb3VwKCk6IHZvaWQKc3VibWl0UGVuZGluZ0dyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDMKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZFBheW1lbnQoeyBhbW91bnQ6IDAsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBpc0ZpcnN0VHhuOiB0cnVlIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwMwoJLy8gYW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwMwoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDQKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZFBheW1lbnQoeyBhbW91bnQ6IDAsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBub3RlOiAnZm9vJyB9KQoJaXR4bl9uZXh0CglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNAoJLy8gYW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDQKCS8vIG5vdGU6ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNQoJLy8gdGhpcy5wZW5kaW5nR3JvdXAuc3VibWl0KCkKCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG1ldGhvZFdpdGhUeG5BcmdzKCl2b2lkCiphYmlfcm91dGVfbWV0aG9kV2l0aFR4bkFyZ3M6CgkvLyBleGVjdXRlIG1ldGhvZFdpdGhUeG5BcmdzKCl2b2lkCgljYWxsc3ViIG1ldGhvZFdpdGhUeG5BcmdzCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RXaXRoVHhuQXJncygpOiB2b2lkCm1ldGhvZFdpdGhUeG5BcmdzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDkKCS8vIHNlbmRNZXRob2RDYWxsPFtQYXlUeG4sIE1ldGhvZENhbGw8W3VpbnQ2NF0sIHZvaWQ+XSwgdm9pZD4oewoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgYW1vdW50OiAxMDBfMDAwLCByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyIH0sCgkvLyAgICAgICAgIHsKCS8vICAgICAgICAgICBuYW1lOiAnYmFyJywKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KDEzMzcpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsxXSwKCS8vICAgICAgICAgfSwKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTEyCgkvLyBhbW91bnQ6IDEwMF8wMDAKCXB1c2hpbnQgMTAwXzAwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExMgoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHgwZThjYjlmNiAvLyBtZXRob2QgImJhcih1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTUKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMTMzNykKCWludCAxMzM3CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExNgoJLy8gbWV0aG9kQXJnczogWzFdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NmM2ZjdhMDggLy8gbWV0aG9kICJmb28ocGF5LGFwcGwpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTEKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXQoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBzaGlmdCgpdm9pZAoqYWJpX3JvdXRlX3NoaWZ0OgoJLy8gZXhlY3V0ZSBzaGlmdCgpdm9pZAoJY2FsbHN1YiBzaGlmdAoJaW50IDEKCXJldHVybgoKLy8gc2hpZnQoKTogdm9pZApzaGlmdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTIzCgkvLyBhc3NlcnQoMSA8PCAyID09PSA0KQoJaW50IDEKCWludCAyCglzaGwKCWludCA0Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjQKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCiphYmlfcm91dGVfZnJvbUJ5dGVzOgoJLy8gZXhlY3V0ZSBmcm9tQnl0ZXMoKXZvaWQKCWNhbGxzdWIgZnJvbUJ5dGVzCglpbnQgMQoJcmV0dXJuCgovLyBmcm9tQnl0ZXMoKTogdm9pZApmcm9tQnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyOAoJLy8gYXNzZXJ0KEFkZHJlc3MuZnJvbUJ5dGVzKCdhYmMnKS5taW5CYWxhbmNlKQoJcHVzaGJ5dGVzIDB4NjE2MjYzIC8vICJhYmMiCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGZyb21VaW50NjQoKXZvaWQKKmFiaV9yb3V0ZV9mcm9tVWludDY0OgoJLy8gZXhlY3V0ZSBmcm9tVWludDY0KCl2b2lkCgljYWxsc3ViIGZyb21VaW50NjQKCWludCAxCglyZXR1cm4KCi8vIGZyb21VaW50NjQoKTogdm9pZApmcm9tVWludDY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzIKCS8vIGxvZyhBcHBJRC5mcm9tVWludDY0KDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFwcF9wYXJhbXNfZ2V0IEFwcENyZWF0b3IKCXBvcAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzMKCS8vIGxvZyhBc3NldElELmZyb21VaW50NjQoMTIzKS5jcmVhdG9yKQoJaW50IDEyMwoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJbG9nCglyZXRzdWIKCi8vIGJ6ZXJvRnVuY3Rpb24oKXZvaWQKKmFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uOgoJLy8gZXhlY3V0ZSBiemVyb0Z1bmN0aW9uKCl2b2lkCgljYWxsc3ViIGJ6ZXJvRnVuY3Rpb24KCWludCAxCglyZXR1cm4KCi8vIGJ6ZXJvRnVuY3Rpb24oKTogdm9pZApiemVyb0Z1bmN0aW9uOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM4CgkvLyB4OiBieXRlcyA9IGJ6ZXJvKDIpCglieXRlIDB4MDAwMAoJZnJhbWVfYnVyeSAwIC8vIHg6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzkKCS8vIHk6IGJ5dGVzID0gYnplcm8obikKCWludCAxCgliemVybwoJZnJhbWVfYnVyeSAxIC8vIHk6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNDAKCS8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dID0gYnplcm88W3VpbnQ2NCwgdWludDw4Pl0+KCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgMiAvLyB6OiBbdWludDY0LCB1aW50PDg+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQxCgkvLyBhc3NlcnQobGVuKHggKyB5ICsgeikgPT09IDEyKQoJYnl0ZSAweDAwMDAgLy8geDogYnl0ZXMKCWZyYW1lX2RpZyAxIC8vIHk6IGJ5dGVzCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAgLy8gejogW3VpbnQ2NCwgdWludDw4Pl0KCWNvbmNhdAoJbGVuCglwdXNoaW50IDEyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGV2ZW50cygpdm9pZAoqYWJpX3JvdXRlX2V2ZW50czoKCS8vIGV4ZWN1dGUgZXZlbnRzKCl2b2lkCgljYWxsc3ViIGV2ZW50cwoJaW50IDEKCXJldHVybgoKLy8gZXZlbnRzKCk6IHZvaWQKZXZlbnRzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTYKCS8vIHRoaXMubXlFdmVudC5sb2coeyBhcHA6IHRoaXMuYXBwLCBudW06IDEgfSkKCXB1c2hieXRlcyAweDg3NTI4MTk2IC8vIG15RXZlbnQodWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljb25jYXQKCWNvbmNhdAoJbG9nCglyZXRzdWIKCi8vIGxldE9wdGltaXphdGlvbih1aW50NjRbXSl1aW50NjRbXQoqYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10KCWNhbGxzdWIgbGV0T3B0aW1pemF0aW9uCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbGV0T3B0aW1pemF0aW9uKGE6IHVpbnQ2NFtdKTogdWludDY0W10KbGV0T3B0aW1pemF0aW9uOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjAKCS8vIGFzc2VydChhWzBdKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTYyCgkvLyBiID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IC0xIC8vIGI6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjQKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglyZXRzdWIKCi8vIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCS8vIGV4ZWN1dGUgc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkCgljYWxsc3ViIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCk6IHZvaWQKc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCksCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogRHVtbXlDb250cmFjdC5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTY5CgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnQgMCAvLyBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTcwCgkvLyBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCkKCXB1c2hieXRlcyAweDBhMzExODE0ODEwNjBiMzExOTA4OGQwYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE3MQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IER1bW15Q29udHJhY3QuY2xlYXJQcm9ncmFtKCkKCXB1c2hieXRlcyAweDBhCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzIKCS8vIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UKCWludCAwCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzMKCS8vIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludAoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzQKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzUKCS8vIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBudW1iZXJUb1N0cmluZygpdm9pZAoqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nOgoJLy8gZXhlY3V0ZSBudW1iZXJUb1N0cmluZygpdm9pZAoJY2FsbHN1YiBudW1iZXJUb1N0cmluZwoJaW50IDEKCXJldHVybgoKLy8gbnVtYmVyVG9TdHJpbmcoKTogdm9pZApudW1iZXJUb1N0cmluZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTgyCgkvLyBhc3NlcnQobi50b1N0cmluZygpID09PSBzKQoJaW50IDEKCWNhbGxzdWIgKml0b2EKCXB1c2hieXRlcyAiMSIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbWV0aG9kT25QYXJlbnMoKXZvaWQKKmFiaV9yb3V0ZV9tZXRob2RPblBhcmVuczoKCS8vIGV4ZWN1dGUgbWV0aG9kT25QYXJlbnMoKXZvaWQKCWNhbGxzdWIgbWV0aG9kT25QYXJlbnMKCWludCAxCglyZXR1cm4KCi8vIG1ldGhvZE9uUGFyZW5zKCk6IHZvaWQKbWV0aG9kT25QYXJlbnM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE4NgoJLy8gYXNzZXJ0KCgxICsgMikudG9TdHJpbmcoKSA9PT0gJzMnKQoJcHVzaGludCAzCgljYWxsc3ViICppdG9hCglwdXNoYnl0ZXMgMHgzMyAvLyAiMyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gc3RyaW5nU3Vic3RyaW5nKCl2b2lkCiphYmlfcm91dGVfc3RyaW5nU3Vic3RyaW5nOgoJLy8gZXhlY3V0ZSBzdHJpbmdTdWJzdHJpbmcoKXZvaWQKCWNhbGxzdWIgc3RyaW5nU3Vic3RyaW5nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdTdWJzdHJpbmcoKTogdm9pZApzdHJpbmdTdWJzdHJpbmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE5MQoJLy8gYXNzZXJ0KHMuc3Vic3RyaW5nKDEsIDMpID09PSAnYmMnKQoJcHVzaGJ5dGVzICJhYmNkZWYiCglzdWJzdHJpbmcgMSAzCglwdXNoYnl0ZXMgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAoqYWJpX3JvdXRlX2lkUHJvcGVydHk6CgkvLyBleGVjdXRlIGlkUHJvcGVydHkoKXZvaWQKCWNhbGxzdWIgaWRQcm9wZXJ0eQoJaW50IDEKCXJldHVybgoKLy8gaWRQcm9wZXJ0eSgpOiB2b2lkCmlkUHJvcGVydHk6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTUKCS8vIGFwcCA9IEFwcElELnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBhcHA6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTk2CgkvLyBhc3NlcnQoQXBwSUQuZnJvbVVpbnQ2NChhcHAuaWQpID09PSBhcHApCglpbnQgMCAvLyBhcHA6IHVpbnQ2NAoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTgKCS8vIGFzYSA9IEFzc2V0SUQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGFzYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTkKCS8vIGFzc2VydChBc3NldElELmZyb21VaW50NjQoYXNhLmlkKSA9PT0gYXNhKQoJaW50IDAgLy8gYXNhOiB1aW50NjQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gc2NyYXRjaFNsb3QoKTogdm9pZApzY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjAzCgkvLyB0aGlzLnNjcmF0Y2gudmFsdWUgPSAxMzM3CglpbnQgMTMzNwoJc3RvcmUgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjA0CgkvLyBhc3NlcnQodGhpcy5zY3JhdGNoLnZhbHVlID09PSAxMzM3KQoJbG9hZCAwCglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlY2RzYSgpdm9pZAoqYWJpX3JvdXRlX2VjZHNhOgoJLy8gZXhlY3V0ZSBlY2RzYSgpdm9pZAoJY2FsbHN1YiBlY2RzYQoJaW50IDEKCXJldHVybgoKLy8gZWNkc2EoKTogdm9pZAplY2RzYToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwOAoJLy8gZWNkc2FWZXJpZnkoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZHVwbiA0CgllY2RzYV92ZXJpZnkgU2VjcDI1NmsxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDkKCS8vIGQgPSBlY2RzYVBrRGVjb21wcmVzcygnU2VjcDI1NmsxJywgJycgYXMgYnl0ZXM8MzM+KQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCgllY2RzYV9wa19kZWNvbXByZXNzIFNlY3AyNTZrMQoJZnJhbWVfYnVyeSAwIC8vIGQgeSBjb21wb25lbnQ6IGJ5dGVbXQoJZnJhbWVfYnVyeSAxIC8vIGQgeCBjb21wb25lbnQ6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjEwCgkvLyBsb2coZC55KQoJZnJhbWVfZGlnIDAgLy8gZCB5IGNvbXBvbmVudDogYnl0ZVtdCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIxMQoJLy8gbG9nKGQueCkKCWZyYW1lX2RpZyAxIC8vIGQgeCBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTMKCS8vIHIgPSBlY2RzYVBrUmVjb3ZlcignU2VjcDI1NmsxJywgJycgYXMgYnl0ZXMzMiwgMSwgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMikKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglpbnQgMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgLy8gIiIKCWR1cAoJZWNkc2FfcGtfcmVjb3ZlciBTZWNwMjU2azEKCWZyYW1lX2J1cnkgMiAvLyByIHkgY29tcG9uZW50OiBieXRlW10KCWZyYW1lX2J1cnkgMyAvLyByIHggY29tcG9uZW50OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIxNAoJLy8gbG9nKHIueSkKCWZyYW1lX2RpZyAyIC8vIHIgeSBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTUKCS8vIGxvZyhyLngpCglmcmFtZV9kaWcgMyAvLyByIHggY29tcG9uZW50OiBieXRlW10KCWxvZwoJcmV0c3ViCgovLyB2ZXJpZnlUeG5UeXBlcygpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4blR5cGVzOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5UeXBlcygpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5UeXBlcwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuVHlwZXMoKTogdm9pZAp2ZXJpZnlUeG5UeXBlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjE5CgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgYW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBwYXkKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoidHlwZUVudW0iLCJleHBlY3RlZCI6InBheSJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglpbnQgMAoJZ3R4bnMgQW1vdW50CglpbnQgMAoJPgoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYW1vdW50IiwiY29uZGl0aW9uIjoiZ3JlYXRlclRoYW4iLCJleHBlY3RlZCI6Ij4wIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjIzCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IHsKCS8vICAgICAgICAgMDogJ2ZvbycsCgkvLyAgICAgICAgIDE6IHsKCS8vICAgICAgICAgICBpbmNsdWRlZEluOiBbJ2JhcicsICdiYXonXSwKCS8vICAgICAgICAgfSwKCS8vICAgICAgIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBhcHBsCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCA2IC8vIGFwcGwKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoiYXBwbCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25JRAoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uSUQKCWludCAwCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYXBwbGljYXRpb25JRCIsImV4cGVjdGVkIjoiQXBwSUQuZnJvbVVpbnQ2NCgwKSJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzIDAKCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6ImFwcGxpY2F0aW9uQXJncyIsImluZGV4IjoiMCIsImV4cGVjdGVkIjoiJ2ZvbycifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uQXJncyAxCglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09CglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCXB1c2hieXRlcyAweDYyNjE3YSAvLyAiYmF6IgoJPT0KCXx8CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOnsidHhuVGV4dCI6InRoaXMudHhuR3JvdXBbMF0ifSwiZmllbGQiOiJhcHBsaWNhdGlvbkFyZ3MgMSIsImNvbmRpdGlvbiI6ImluY2x1ZGVkSW4iLCJleHBlY3RlZCI6IlsnYmFyJywgJ2JheiddIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjMzCgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBheGZlcgoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJheGZlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJaW50IDAKCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIzNwoJLy8gdmVyaWZ5QXNzZXRDb25maWdUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgY29uZmlnQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCgwKSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFjZmcKCWludCAwCglndHhucyBUeXBlRW51bQoJcHVzaGludCAzIC8vIGFjZmcKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoiYWNmZyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgY29uZmlnQXNzZXQKCWludCAwCglndHhucyBDb25maWdBc3NldAoJaW50IDAKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJjb25maWdBc3NldCIsImV4cGVjdGVkIjoiQXNzZXRJRC5mcm9tVWludDY0KDApIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjQxCgkvLyB2ZXJpZnlLZXlSZWdUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgdm90ZUZpcnN0OiAxMzM3LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkga2V5cmVnCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCAyIC8vIGtleXJlZwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJrZXlyZWcifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHZvdGVGaXJzdAoJaW50IDAKCWd0eG5zIFZvdGVGaXJzdAoJaW50IDEzMzcKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ2b3RlRmlyc3QiLCJleHBlY3RlZCI6IjEzMzcifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1BsdXNFcXVhbHMoKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzOgoJLy8gZXhlY3V0ZSBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCgljYWxsc3ViIHN0cmluZ1BsdXNFcXVhbHMKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1BsdXNFcXVhbHMoKTogdm9pZApzdHJpbmdQbHVzRXF1YWxzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI0NwoJLy8gcyA9ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDgKCS8vIHMgKz0gJ2JhcicKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDkKCS8vIGFzc2VydChzID09PSAnZm9vYmFyJykKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJcHVzaGJ5dGVzIDB4NjY2ZjZmNjI2MTcyIC8vICJmb29iYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdCiphYmlfcm91dGVfaW1wb3J0ZWRQcm9ncmFtOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdCgljYWxsc3ViIGltcG9ydGVkUHJvZ3JhbQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbXBvcnRlZFByb2dyYW0oKTogYnl0ZXMKaW1wb3J0ZWRQcm9ncmFtOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNTMKCS8vIHJldHVybiBJZlRlc3QuYXBwcm92YWxQcm9ncmFtKCk7CglwdXNoYnl0ZXMgMHgwYTIwMDIwMTAwMjYwOTA0MTUxZjdjNzUwNDY1NmM3MzY1MDI2OTY2MDk2NTZjNzM2NTIwNjk2NjIwMzEwOTY1NmM3MzY1MjA2OTY2MjAzMjA3NjU2YzczNjUyMDY5NjYwMzY1NmU2NDAzNjY2ZjZmMDAzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDQxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA0MTUxZjdjNzUzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDEwMThiZmY0MTAwMDU4MDAyNjk2Njg5ODAwMzY1NmU2NDg5ODAwNDE1MWY3Yzc1MzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAxMDE4YmZmNDEwMDA4ODAwMjY5NjY4OTQyMDAwNzgwMDQ2NTZjNzM2NTg5ODk4MDA0MTUxZjdjNzUzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDIwMThiZmY0MTAwMDg4MDAyNjk2Njg5NDIwMDBmOGJmZTQxMDAwYTgwMDc2NTZjNzM2NTIwNjk2Njg5ODAwMzY1NmU2NDg5ODAwNDE1MWY3Yzc1MzYxYTAyNDkxNTgxMDExMjQ0ODEwMDUzMzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDA4ODAwMjY5NjY4OTQyMDAxOThiZmU0MTAwMGQ4MDA3NjU2YzczNjUyMDY5NjY4OTQyMDAwNzgwMDQ2NTZjNzM2NTg5ODk4MDA0MTUxZjdjNzUzNjFhMDM0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDMwMThiZmY0MTAwMDg4MDAyNjk2Njg5NDIwMDI1OGJmZTQxMDAwZjgwMDk2NTZjNzM2NTIwNjk2NjIwMzE4OTQyMDAxMThiZmQ0MTAwMGM4MDA5NjU2YzczNjUyMDY5NjYyMDMyODk4MDAzNjU2ZTY0ODk4MDA0MTUxZjdjNzUzNjFhMDM0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDMwMThiZmY0MTAwMDg4MDAyNjk2Njg5NDIwMDJmOGJmZTQxMDAwZjgwMDk2NTZjNzM2NTIwNjk2NjIwMzE4OTQyMDAxYjhiZmQ0MTAwMGY4MDA5NjU2YzczNjUyMDY5NjYyMDMyODk0MjAwMDc4MDA0NjU2YzczNjU4OTg5ODAwNDE1MWY3Yzc1MzYxYTAyNDkxNTgxMDExMjQ0ODEwMDUzMzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDE5OGJmZTQxMDAwYzgwMDk2ZTY1NzM3NDY1NjQyMDY5NjY4OTgwMDI2OTY2ODk0MjAwMDc4MDA0NjU2YzczNjU4OTg5ODAwNDE1MWY3Yzc1MzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAxMDE4YmZmNDEwMDA4ODAwMjY5NjY4OTQyMDAwNzgwMDQ2NTZjNzM2NTg5ODk4MDA0MTUxZjdjNzUzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMDYxNjUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDA1ODEwMTQyMDAwYzhiZmU0MTAwMDU4MTAyNDIwMDAyODEwMzg5ODAwNDE1MWY3Yzc1MzYxYTAxNTcwMjAwODgwMDA2MTY1MGIwODEwMTQzOGEwMTAxOGJmZjgwMDBhOTQxMDAwMzgxMDE4OTgxMDI4OTgwMDQxNTFmN2M3NTM2MWEwMTU3MDIwMDg4MDAwNjE2NTBiMDgxMDE0MzhhMDEwMThiZmY4MDAwYTk0MTAwMDU4MTAxNDIwMDAyODEwMjg5MzYxYTAxNDkxNTgxMDIxMjQ0MTc4ODAwMDM4MTAxNDM4YTAxMDA4YmZmODAwMGE5NDEwMDA2ODAwMzY2NmY2ZmIwODkzNjFhMDI0OTE1ODEwMjEyNDQxNzM2MWEwMTQ5MTU4MTAyMTI0NDE3ODgwMDAzODEwMTQzOGEwMjAwOGJmZjhiZmUwZTQxMDAwNjgwMDM2NjZmNmZiMDg5MzYxYTAyNDkxNTgxMjAxMjQ0MzYxYTAxNDkxNTgxMjAxMjQ0ODgwMDAzODEwMTQzOGEwMjAwOGJmZjhiZmVhNjQxMDAwNjgwMDM2NjZmNmZiMDg5ODAwNDE1MWY3Yzc1MzYxYTAyNDkxNTgxMDExMjQ0ODEwMDUzMzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDE5OGJmZTQxMDAwZDgwMDc2MTIwNjE2ZTY0MjA2Mjg5NDIwMDA0ODAwMTYxODk0MjAwMTY4YmZlNDEwMDA3ODAwMTYyODk0MjAwMGE4MDA3NmU2NTY5NzQ2ODY1NzI4OTg5ODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMDgwMDQ0MzZlYzFjMjgwMDQxYzdhMGQ1ZTgwMDQ1ZTBmYjZjZjgwMDQ1ZTFjNmM1MDgwMDQ1OGQwYmE5MjgwMDQ1ZDJmNGYwMjgwMDQ4NDU3MjlkOTgwMDQ4ZmU3NmNhODgwMDQxYTNjNzg3ODgwMDQ3NGJjYzg2ODgwMDQ0MjEyZjkwNTgwMDQ5NWRkYWViZjgwMDQzMTQ3Yjg2NjgwMDQ0Mjg5N2Y2MTgwMDQ1MzRiZTJiNzM2MWEwMDhlMGZmYjZiZmJhMGZiZGFmYzJkZmM4NWZjZmFmZDc0ZmRjYmZlMDVmZTQ2ZmU2Y2ZlOTRmZWI2ZmVlMmZmMGMwMAoJcmV0c3ViCgovLyBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZAoqYWJpX3JvdXRlX2NhbGxQcml2YXRlRGVmaW5lZExhdGVyOgoJLy8gZXhlY3V0ZSBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZAoJY2FsbHN1YiBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcgoJaW50IDEKCXJldHVybgoKLy8gY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIoKTogdm9pZApjYWxsUHJpdmF0ZURlZmluZWRMYXRlcjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjU3CgkvLyBsb2codGhpcy5wcml2YXRlTWV0aG9kKCdoZWxsbycpKQoJcHVzaGJ5dGVzIDB4Njg2NTZjNmM2ZiAvLyAiaGVsbG8iCgljYWxsc3ViIHByaXZhdGVNZXRob2QKCWxvZwoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKG1zZzogc3RyaW5nKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2MQoJLy8gcmV0dXJuIG1zZzsKCWZyYW1lX2RpZyAtMSAvLyBtc2c6IHN0cmluZwoJcmV0c3ViCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmludGVyYWxQdWJsaWNNZXRob2Q6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2NQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QoKXZvaWQKKmFiaV9yb3V0ZV9jYWxsSW50ZXJuYWxQdWJsaWNNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZAoJY2FsbHN1YiBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QKCWludCAxCglyZXR1cm4KCi8vIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpOiB2b2lkCmNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjY5CgkvLyBhc3NlcnQodGhpcy5pbnRlcmFsUHVibGljTWV0aG9kKDEsIDIpID09PSAzKQoJaW50IDIKCWludCAxCgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCXB1c2hpbnQgMwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcHBMb2FkU2NyYXRjaCgpdm9pZAoqYWJpX3JvdXRlX2FwcExvYWRTY3JhdGNoOgoJLy8gZXhlY3V0ZSBhcHBMb2FkU2NyYXRjaCgpdm9pZAoJY2FsbHN1YiBhcHBMb2FkU2NyYXRjaAoJaW50IDEKCXJldHVybgoKLy8gYXBwTG9hZFNjcmF0Y2goKTogdm9pZAphcHBMb2FkU2NyYXRjaDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjczCgkvLyBsb2codGhpcy50eG5Hcm91cFsxXS5sb2FkU2NyYXRjaCgyKSBhcyBieXRlcykKCWdsb2FkIDEgMgoJbG9nCglyZXRzdWIKCi8vIHVpbnROV2l0aFVuZGVyc2NvcmUoKXVpbnQyNTYKKmFiaV9yb3V0ZV91aW50TldpdGhVbmRlcnNjb3JlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVpbnROV2l0aFVuZGVyc2NvcmUoKXVpbnQyNTYKCWNhbGxzdWIgdWludE5XaXRoVW5kZXJzY29yZQoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIHVpbnROV2l0aFVuZGVyc2NvcmUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50TldpdGhVbmRlcnNjb3JlKCk6IHVpbnQyNTYKdWludE5XaXRoVW5kZXJzY29yZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc3CgkvLyByZXR1cm4gPHVpbnQyNTY+MTIzXzQ1NjsKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWUyNDAKCXJldHN1YgoKLy8gb3BVcCgpdm9pZAoqYWJpX3JvdXRlX29wVXA6CgkvLyBleGVjdXRlIG9wVXAoKXZvaWQKCWNhbGxzdWIgb3BVcAoJaW50IDEKCXJldHVybgoKLy8gb3BVcCgpOiB2b2lkCm9wVXA6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgxCgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgMHgwYTgxMDEgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgyCgkvLyBmb3IgKGxldCBpID0gMTsgaSA8IDc1OyBpICs9IDEpCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyODIKCS8vIGkgPCA3NQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDc1Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyODMKCS8vIGFzc2VydChpKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cglhc3NlcnQKCipmb3JfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJcmV0c3ViCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCiphYmlfcm91dGVfcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZwoJY2FsbHN1YiByZXR1cm5WYWx1ZU9uQXNzaWdubWVudAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpOiBzdHJpbmcKcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjg4CgkvLyBtZXNzYWdlID0gJ2hpJwoJcHVzaGJ5dGVzIDB4Njg2OSAvLyAiaGkiCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjkwCgkvLyB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMuYXBwLmFkZHJlc3MKCXR4biBTZW5kZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjkxCgkvLyBtZXNzYWdlID0gJ2luIGJsb2NrJwoJcHVzaGJ5dGVzIDB4Njk2ZTIwNjI2YzZmNjM2YiAvLyAiaW4gYmxvY2siCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjk0CgkvLyByZXR1cm4gKG1lc3NhZ2UgPSAnYnllJyk7CglieXRlIDB4NjI3OTY1IC8vICJieWUiCglkdXAKCWZyYW1lX2J1cnkgMCAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjk4CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzAwCgkvLyByZXR1cm4gKGFbMF0gPSA0KTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWludCAwCglpbnQgNAoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CgljYWxsc3ViIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDQKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IDEKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWludCAxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzA2CgkvLyByZXR1cm4gKHRoaXMuZ0tleS52YWx1ZSA9IDIpOwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJaW50IDIKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWFwcF9nbG9iYWxfcHV0Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglyZXRzdWIKCi8vIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpdWludDY0CgljYWxsc3ViIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKTogdWludDY0CnJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMxMAoJLy8gYSA9IDEKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTIKCS8vIHJldHVybiAoYSArPSAyKTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NAoJaW50IDIKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE2CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE4CgkvLyByZXR1cm4gKGFbMF0gKz0gNCk7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglpbnQgMAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWludCA0CgkrCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyMgoJLy8gdGhpcy5zdG9yYWdlQXJyYXkudmFsdWUgPSBbMSwgMiwgM10KCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjQKCS8vIHJldHVybiAodGhpcy5zdG9yYWdlQXJyYXkudmFsdWVbMF0gKz0gNCk7CglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDAgOAoJYnRvaQoJaW50IDQKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWl0b2IKCXJlcGxhY2UzCglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJcmV0c3ViCgovLyBjb25zdHMoKXZvaWQKKmFiaV9yb3V0ZV9jb25zdHM6CgkvLyBleGVjdXRlIGNvbnN0cygpdm9pZAoJY2FsbHN1YiBjb25zdHMKCWludCAxCglyZXR1cm4KCi8vIGNvbnN0cygpOiB2b2lkCmNvbnN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI4CgkvLyBhc3NlcnQoU1RSSU5HX0NPTlNUID09PSAnZm9vJykKCXB1c2hieXRlcyAiZm9vIgoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI5CgkvLyBhc3NlcnQoTlVNX0NPTlNUID09PSAxMjMpCglpbnQgMTIzCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzMAoJLy8gYXNzZXJ0KE5FU1RFRF9DT05TVCA9PT0gMTIzKQoJaW50IDEyMwoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCiphYmlfcm91dGVfYXNzZXJ0V2l0aE1lc3NhZ2U6CgkvLyBleGVjdXRlIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCgljYWxsc3ViIGFzc2VydFdpdGhNZXNzYWdlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRXaXRoTWVzc2FnZSgpOiB2b2lkCmFzc2VydFdpdGhNZXNzYWdlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzQKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gb3Bjb2RlQWxpYXNlcygpdm9pZAoqYWJpX3JvdXRlX29wY29kZUFsaWFzZXM6CgkvLyBleGVjdXRlIG9wY29kZUFsaWFzZXMoKXZvaWQKCWNhbGxzdWIgb3Bjb2RlQWxpYXNlcwoJaW50IDEKCXJldHVybgoKLy8gb3Bjb2RlQWxpYXNlcygpOiB2b2lkCm9wY29kZUFsaWFzZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzOAoJLy8gZXh0cmFjdFVpbnQxNihiemVybyg2NCksIDApCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWludCAwCglleHRyYWN0X3VpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM5CgkvLyBleHRyYWN0VWludDMyKGJ6ZXJvKDY0KSwgMCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJaW50IDAKCWV4dHJhY3RfdWludDMyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDAKCS8vIGV4dHJhY3RVaW50NjQoYnplcm8oNjQpLCAwKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglpbnQgMAoJZXh0cmFjdF91aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0MQoJLy8gZWQyNTUxOVZlcmlmeUJhcmUoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeV9iYXJlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDIKCS8vIGVkMjU1MTlWZXJpZnkoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeQoJcmV0c3ViCgovLyB2cmZWZXJpZnlPcCgpdm9pZAoqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wOgoJLy8gZXhlY3V0ZSB2cmZWZXJpZnlPcCgpdm9pZAoJY2FsbHN1YiB2cmZWZXJpZnlPcAoJaW50IDEKCXJldHVybgoKLy8gdnJmVmVyaWZ5T3AoKTogdm9pZAp2cmZWZXJpZnlPcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0OQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NgoJLy8gciA9IHZyZlZlZmlyeSgnVnJmQWxnb3JhbmQnLCBiemVybygzMikgYXMgYnl0ZXMsIGJ6ZXJvKDgwKSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgl2cmZfdmVyaWZ5IFZyZkFsZ29yYW5kCglmcmFtZV9idXJ5IDAgLy8gciB2ZXJpZmllZDogYm9vbAoJZnJhbWVfYnVyeSAxIC8vIHIgb3V0cHV0OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NwoJLy8gYXNzZXJ0KCFyLnZlcmlmaWVkKQoJZnJhbWVfZGlnIDAgLy8gciB2ZXJpZmllZDogYm9vbAoJIQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTgKCS8vIGxvZyhyLm91dHB1dCkKCWZyYW1lX2RpZyAxIC8vIHIgb3V0cHV0OiBieXRlW10KCWxvZwoJcmV0c3ViCgovLyBlY01hdGgoKXZvaWQKKmFiaV9yb3V0ZV9lY01hdGg6CgkvLyBleGVjdXRlIGVjTWF0aCgpdm9pZAoJY2FsbHN1YiBlY01hdGgKCWludCAxCglyZXR1cm4KCi8vIGVjTWF0aCgpOiB2b2lkCmVjTWF0aDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjIKCS8vIGVjU2NhbGFyTXVsKCdCTjI1NGcxJywgJycsICcnKQoJYnl0ZSAweCAvLyAiIgoJZHVwCgllY19zY2FsYXJfbXVsIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2MwoJLy8gZWNQYWlyaW5nQ2hlY2soJ0JOMjU0ZzEnLCAnJywgJycpCglieXRlIDB4IC8vICIiCglkdXAKCWVjX3BhaXJpbmdfY2hlY2sgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY0CgkvLyBzY2FsYXJzOiBieXRlczMyW10gPSBbYnplcm8oMzIpLCBiemVybygzMildCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBzY2FsYXJzOiBieXRlczMyW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2NQoJLy8gZWNNdWx0aVNjYWxhck11bCgnQk4yNTRnMScsICcnLCBzY2FsYXJzKQoJYnl0ZSAweCAvLyAiIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vIHNjYWxhcnM6IGJ5dGVzMzJbXQoJZWNfbXVsdGlfc2NhbGFyX211bCBCTjI1NGcxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjYKCS8vIGVjU3ViZ3JvdXBDaGVjaygnQk4yNTRnMScsICcnKQoJYnl0ZSAweCAvLyAiIgoJZWNfc3ViZ3JvdXBfY2hlY2sgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY3CgkvLyBlY01hcFRvKCdCTjI1NGcxJywgJycpCglieXRlIDB4IC8vICIiCgllY19tYXBfdG8gQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY4CgkvLyBlY0FkZCgnQk4yNTRnMScsICcnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWR1cAoJZWNfYWRkIEJOMjU0ZzEKCXJldHN1YgoKLy8gZ2l0eG4oKXZvaWQKKmFiaV9yb3V0ZV9naXR4bjoKCS8vIGV4ZWN1dGUgZ2l0eG4oKXZvaWQKCWNhbGxzdWIgZ2l0eG4KCWludCAxCglyZXR1cm4KCi8vIGdpdHhuKCk6IHZvaWQKZ2l0eG46Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcyCgkvLyBsb2codGhpcy5sYXN0SW5uZXJHcm91cFswXS5zZW5kZXIpCglnaXR4biAwIFNlbmRlcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzQKCS8vIGFub3RoZXJUeG4gPSB0aGlzLmxhc3RJbm5lckdyb3VwWzFdCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGFub3RoZXJUeG46IGdpdHhuCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzYKCS8vIGxvZyhhbm90aGVyVHhuLnNlbmRlcikKCWdpdHhuIDEgU2VuZGVyCglsb2cKCXJldHN1YgoKLy8gZ2V0U2V0Qnl0ZXMoKXZvaWQKKmFiaV9yb3V0ZV9nZXRTZXRCeXRlczoKCS8vIGV4ZWN1dGUgZ2V0U2V0Qnl0ZXMoKXZvaWQKCWNhbGxzdWIgZ2V0U2V0Qnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIGdldFNldEJ5dGVzKCk6IHZvaWQKZ2V0U2V0Qnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4MAoJLy8gbG9nKHNldGJpdCgnZm9vJywgMCwgdHJ1ZSkpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCXNldGJpdAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODEKCS8vIGdldGJpdCgnZm9vJywgMCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglnZXRiaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4MgoJLy8gZ2V0Ynl0ZSgnZm9vJywgMCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglnZXRieXRlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODMKCS8vIHNldGJ5dGUoJ2ZvbycsIDAsIDEpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCXNldGJ5dGUKCXJldHN1YgoKLy8gZ2V0U2V0VWludDY0KCl2b2lkCiphYmlfcm91dGVfZ2V0U2V0VWludDY0OgoJLy8gZXhlY3V0ZSBnZXRTZXRVaW50NjQoKXZvaWQKCWNhbGxzdWIgZ2V0U2V0VWludDY0CglpbnQgMQoJcmV0dXJuCgovLyBnZXRTZXRVaW50NjQoKTogdm9pZApnZXRTZXRVaW50NjQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4NwoJLy8gYXNzZXJ0KHNldGJpdCgxMjMsIDAsIHRydWUpKQoJaW50IDEyMwoJaW50IDAKCWludCAxCglzZXRiaXQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzg4CgkvLyBnZXRiaXQoMTIzLCAwKQoJaW50IDEyMwoJaW50IDAKCWdldGJpdAoJcmV0c3ViCgovLyBibG9ja09wKCl2b2lkCiphYmlfcm91dGVfYmxvY2tPcDoKCS8vIGV4ZWN1dGUgYmxvY2tPcCgpdm9pZAoJY2FsbHN1YiBibG9ja09wCglpbnQgMQoJcmV0dXJuCgovLyBibG9ja09wKCk6IHZvaWQKYmxvY2tPcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkyCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5zZWVkKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrU2VlZAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTMKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnRpbWVzdGFtcCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1RpbWVzdGFtcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGI2NCgpdm9pZAoqYWJpX3JvdXRlX2I2NDoKCS8vIGV4ZWN1dGUgYjY0KCl2b2lkCgljYWxsc3ViIGI2NAoJaW50IDEKCXJldHVybgoKLy8gYjY0KCk6IHZvaWQKYjY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTcKCS8vIGxvZyhiYXNlNjREZWNvZGUoJ1N0ZEVuY29kaW5nJywgJycpKQoJYnl0ZSAweCAvLyAiIgoJYmFzZTY0X2RlY29kZSBTdGRFbmNvZGluZwoJbG9nCglyZXRzdWIKCi8vIGpzb24oKXZvaWQKKmFiaV9yb3V0ZV9qc29uOgoJLy8gZXhlY3V0ZSBqc29uKCl2b2lkCgljYWxsc3ViIGpzb24KCWludCAxCglyZXR1cm4KCi8vIGpzb24oKTogdm9pZApqc29uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDEKCS8vIGxvZyhqc29uUmVmKCdKU09OT2JqZWN0JywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTk9iamVjdAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDIKCS8vIGxvZyhqc29uUmVmKCdKU09OU3RyaW5nJywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTlN0cmluZwoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDMKCS8vIGFzc2VydChqc29uUmVmKCdKU09OVWludDY0JywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTlVpbnQ2NAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdGxlbk9wKCl2b2lkCiphYmlfcm91dGVfYml0bGVuT3A6CgkvLyBleGVjdXRlIGJpdGxlbk9wKCl2b2lkCgljYWxsc3ViIGJpdGxlbk9wCglpbnQgMQoJcmV0dXJuCgovLyBiaXRsZW5PcCgpOiB2b2lkCmJpdGxlbk9wOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDcKCS8vIGJpdGxlbigxMjMpCglpbnQgMTIzCgliaXRsZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQwOAoJLy8gYml0bGVuKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYml0bGVuCglyZXRzdWIKCi8vIGNvbXB1dGVkQ29uc3QoKXZvaWQKKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBjb21wdXRlZENvbnN0KCl2b2lkCgljYWxsc3ViIGNvbXB1dGVkQ29uc3QKCWludCAxCglyZXR1cm4KCi8vIGNvbXB1dGVkQ29uc3QoKTogdm9pZApjb21wdXRlZENvbnN0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MTIKCS8vIGFzc2VydChDT01QVVRFRF9DT05TVCkKCXB1c2hpbnQgMjQ2Cglhc3NlcnQKCXJldHN1YgoKLy8gbXVsdGlDb21wdXRlZENvbnN0KCl2b2lkCiphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBtdWx0aUNvbXB1dGVkQ29uc3QoKXZvaWQKCWNhbGxzdWIgbXVsdGlDb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUNvbXB1dGVkQ29uc3QoKTogdm9pZAptdWx0aUNvbXB1dGVkQ29uc3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNgoJLy8gYXNzZXJ0KE1VVExJX0NPTVBVVEVEX0NPTlNUKQoJcHVzaGludCAzMDM4MQoJYXNzZXJ0CglyZXRzdWIKCi8vIHJlYWRTY2hlbWEoKXZvaWQKKmFiaV9yb3V0ZV9yZWFkU2NoZW1hOgoJLy8gZXhlY3V0ZSByZWFkU2NoZW1hKCl2b2lkCgljYWxsc3ViIHJlYWRTY2hlbWEKCWludCAxCglyZXR1cm4KCi8vIHJlYWRTY2hlbWEoKTogdm9pZApyZWFkU2NoZW1hOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjAKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQgPT09IDEpCglpbnQgMQoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjEKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSA9PT0gMikKCWludCAyCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMgoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1VaW50ID09PSAzKQoJcHVzaGludCAzCglwdXNoaW50IDMKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMwoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UgPT09IDQpCglpbnQgNAoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGNvbXBhcmlzb25PcigpYm9vbAoqYWJpX3JvdXRlX2NvbXBhcmlzb25PcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb21wYXJpc29uT3IoKWJvb2wKCWNhbGxzdWIgY29tcGFyaXNvbk9yCglwdXNoYnl0ZXMgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29tcGFyaXNvbk9yKCk6IGJvb2xlYW4KY29tcGFyaXNvbk9yOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjcKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MgfHwgdGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLnplcm9BZGRyZXNzOwoJdHhuIFNlbmRlcgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJZHVwCglibnogKnNraXBfb3IwCgl0eG4gU2VuZGVyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cgl8fAoKKnNraXBfb3IwOgoJcmV0c3ViCgovLyB0eG5BcmdzTWV0aG9kKHBheSl2b2lkCiphYmlfcm91dGVfdHhuQXJnc01ldGhvZDoKCS8vIF9wYXkxOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKF9wYXkxKSBmb3IgdHhuQXJnc01ldGhvZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKCWNhbGxzdWIgdHhuQXJnc01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gdHhuQXJnc01ldGhvZChfcGF5MTogUGF5VHhuKTogdm9pZAp0eG5BcmdzTWV0aG9kOgoJcHJvdG8gMSAwCglyZXRzdWIKCi8vIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCiphYmlfcm91dGVfY2FsbFR4bkFyZ3NNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCgljYWxsc3ViIGNhbGxUeG5BcmdzTWV0aG9kCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsVHhuQXJnc01ldGhvZCgpOiB2b2lkCmNhbGxUeG5BcmdzTWV0aG9kOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzQKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBHZW5lcmFsVGVzdC5wcm90b3R5cGUudHhuQXJnc01ldGhvZD4oewoJLy8gICAgICAgbWV0aG9kQXJnczogW3sgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMCB9XSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzUKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDM1CgkvLyBhbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4MmM2MzZlZWIgLy8gbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQzNQoJLy8gbWV0aG9kQXJnczogW3sgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMCB9XQoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKKmFiaV9yb3V0ZV9zdGF0aWNWYWx1ZUxlbjoKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBzdGF0aWNWYWx1ZUxlbiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKCWNhbGxzdWIgc3RhdGljVmFsdWVMZW4KCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1ZhbHVlTGVuKHg6IHVpbnQyNTYpOiB2b2lkCnN0YXRpY1ZhbHVlTGVuOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NDAKCS8vIGFzc2VydChsZW4oeCkpCglwdXNoaW50IDMyCglhc3NlcnQKCXJldHN1YgoKLy8gc3RhdGljVHlwZUxlbigpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY1R5cGVMZW46CgkvLyBleGVjdXRlIHN0YXRpY1R5cGVMZW4oKXZvaWQKCWNhbGxzdWIgc3RhdGljVHlwZUxlbgoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljVHlwZUxlbigpOiB2b2lkCnN0YXRpY1R5cGVMZW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ0NAoJLy8gYXNzZXJ0KGxlbjx1aW50MjU2PigpKQoJcHVzaGludCAzMgoJYXNzZXJ0CglyZXRzdWIKCi8vIGR5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX2R5bmFtaWNTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgZHluYW1pY1NjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGR5bmFtaWNTY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY1NjcmF0Y2hTbG90KCk6IHZvaWQKZHluYW1pY1NjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NDgKCS8vIHRoaXMuZHluYW1pY1NjcmF0Y2goMSkudmFsdWUgPSAxMzM3CglpbnQgMQoJaW50IDEzMzcKCXN0b3JlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDQ5CgkvLyBhc3NlcnQodGhpcy5keW5hbWljU2NyYXRjaCgxKS52YWx1ZSA9PT0gMTMzNykKCWludCAxCglsb2FkcwoJaW50IDEzMzcKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaW5jcmVtZW50U2NyYXRjaFNsb3QoKXZvaWQKKmFiaV9yb3V0ZV9pbmNyZW1lbnRTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgaW5jcmVtZW50U2NyYXRjaFNsb3QoKXZvaWQKCWNhbGxzdWIgaW5jcmVtZW50U2NyYXRjaFNsb3QKCWludCAxCglyZXR1cm4KCi8vIGluY3JlbWVudFNjcmF0Y2hTbG90KCk6IHZvaWQKaW5jcmVtZW50U2NyYXRjaFNsb3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1MwoJLy8gdGhpcy5zY3JhdGNoLnZhbHVlID0gMTMzNwoJaW50IDEzMzcKCXN0b3JlIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1NAoJLy8gdGhpcy5zY3JhdGNoLnZhbHVlICs9IDEKCWxvYWQgMAoJaW50IDEKCSsKCXN0b3JlIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KHRoaXMuc2NyYXRjaC52YWx1ZSA9PT0gMTMzOCkKCWxvYWQgMAoJcHVzaGludCAxMzM4Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX2luY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCk6IHZvaWQKaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTkKCS8vIHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPSAxMzM3CglpbnQgMgoJaW50IDEzMzcKCXN0b3JlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDYwCgkvLyB0aGlzLmR5bmFtaWNTY3JhdGNoKDIpLnZhbHVlICs9IDEKCWludCAyCglsb2FkcwoJaW50IDEKCSsKCWludCAyCglzd2FwCglzdG9yZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ2MQoJLy8gYXNzZXJ0KHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPT09IDEzMzgpCglpbnQgMgoJbG9hZHMKCXB1c2hpbnQgMTMzOAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBmcm9tQWRkcmVzcygpdm9pZAoqYWJpX3JvdXRlX2Zyb21BZGRyZXNzOgoJLy8gZXhlY3V0ZSBmcm9tQWRkcmVzcygpdm9pZAoJY2FsbHN1YiBmcm9tQWRkcmVzcwoJaW50IDEKCXJldHVybgoKLy8gZnJvbUFkZHJlc3MoKTogdm9pZApmcm9tQWRkcmVzczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NjUKCS8vIGEgPSBBZGRyZXNzLmZyb21BZGRyZXNzKCdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRJykKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vIGFkZHIgIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZNUhGS1EiCglmcmFtZV9idXJ5IDAgLy8gYTogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDY2CgkvLyBhc3NlcnQoYSA9PT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGE6IGFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlYXJseVJldHVybih1aW50NjQpdWludDY0CiphYmlfcm91dGVfZWFybHlSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZWFybHlSZXR1cm4odWludDY0KXVpbnQ2NAoJY2FsbHN1YiBlYXJseVJldHVybgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVhcmx5UmV0dXJuKGE6IHVpbnQ2NCk6IHVpbnQ2NAplYXJseVJldHVybjoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDcwCgkvLyBhID09PSAxCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglpbnQgMQoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ3MQoJLy8gcmV0dXJuIDI7CglpbnQgMgoJYiAqZWFybHlSZXR1cm4qcmV0dXJuCgoqaWYxX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDczCgkvLyBiID0gYSArIDEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzQKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIDAgLy8gYjogdWludDY0CgoqZWFybHlSZXR1cm4qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGFzc2V0TWV0aG9kQXJncygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJnczoKCS8vIGV4ZWN1dGUgYXNzZXRNZXRob2RBcmdzKCl2b2lkCgljYWxsc3ViIGFzc2V0TWV0aG9kQXJncwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRNZXRob2RBcmdzKCk6IHZvaWQKYXNzZXRNZXRob2RBcmdzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzgKCS8vIHNlbmRNZXRob2RDYWxsPFtBc3NldFJlZmVyZW5jZV0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW0Fzc2V0SUQuZnJvbVVpbnQ2NCgxKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGExNTMxNmRlIC8vIG1ldGhvZCAiZm9vKGFzc2V0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDgwCgkvLyBtZXRob2RBcmdzOiBbQXNzZXRJRC5mcm9tVWludDY0KDEpXQoJaW50IDEKCWl0eG5fZmllbGQgQXNzZXRzCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbXVsdGlwbGVQcm9ncmFtUGFnZXMoKXZvaWQKKmFiaV9yb3V0ZV9tdWx0aXBsZVByb2dyYW1QYWdlczoKCS8vIGV4ZWN1dGUgbXVsdGlwbGVQcm9ncmFtUGFnZXMoKXZvaWQKCWNhbGxzdWIgbXVsdGlwbGVQcm9ncmFtUGFnZXMKCWludCAxCglyZXR1cm4KCi8vIG11bHRpcGxlUHJvZ3JhbVBhZ2VzKCk6IHZvaWQKbXVsdGlwbGVQcm9ncmFtUGFnZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiBbdGhpcy5wYWdlT25lLnZhbHVlLCB0aGlzLnBhZ2VUd28udmFsdWVdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ5MAoJLy8gYXBwcm92YWxQcm9ncmFtOiBbdGhpcy5wYWdlT25lLnZhbHVlLCB0aGlzLnBhZ2VUd28udmFsdWVdCglieXRlIDB4NzA2MTY3NjU0ZjZlNjUgLy8gInBhZ2VPbmUiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBhZ2VPbmUudmFsdWUKCWFzc2VydAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZSAweDcwNjE2NzY1NTQ3NzZmIC8vICJwYWdlVHdvIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wYWdlVHdvLnZhbHVlCglhc3NlcnQKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ5MQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0KCWJ5dGUgMHg3MDYxNjc2NTRmNmU2NSAvLyAicGFnZU9uZSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZU9uZS52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCWJ5dGUgMHg3MDYxNjc2NTU0Nzc2ZiAvLyAicGFnZVR3byIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZVR3by52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2VydENvbW1lbnQoKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRDb21tZW50OgoJLy8gZXhlY3V0ZSBhc3NlcnRDb21tZW50KCl2b2lkCgljYWxsc3ViIGFzc2VydENvbW1lbnQKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydENvbW1lbnQoKTogdm9pZAphc3NlcnRDb21tZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0OTYKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKKmFiaV9yb3V0ZV90aHJvd0Vycm9yTWVzc2FnZToKCS8vIGV4ZWN1dGUgdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvck1lc3NhZ2UKCWludCAxCglyZXR1cm4KCi8vIHRocm93RXJyb3JNZXNzYWdlKCk6IHZvaWQKdGhyb3dFcnJvck1lc3NhZ2U6Cglwcm90byAwIDAKCgkvLyB0aGlzIGlzIGFuIGVycm9yCgllcnIKCXJldHN1YgoKLy8gb3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vckxpdGVyYWxUeXBlOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvckxpdGVyYWxUeXBlKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvckxpdGVyYWxUeXBlCglpbnQgMQoJcmV0dXJuCgovLyBvckxpdGVyYWxUeXBlKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApvckxpdGVyYWxUeXBlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTA0CgkvLyBmb28gPSBhICYmIGIgPT09IDEgPyAyIDogMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglpbnQgMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnQgMgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMCAvLyBmb286IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTA1CgkvLyBhc3NlcnQoZm9vKQoJZnJhbWVfZGlnIDAgLy8gZm9vOiB1aW50NjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTA3CgkvLyBiYXIgPSBhICYmIGIgPT09IDAgPyAnMicgOiAnMCcKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaW50IDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJcHVzaGJ5dGVzIDB4MzIgLy8gIjIiCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWJ5dGUgMHgzMCAvLyAiMCIKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDEgLy8gYmFyOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUwOAoJLy8gbG9nKGJhcikKCWZyYW1lX2RpZyAxIC8vIGJhcjogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gbm9uQWJpKCk6IHZvaWQKbm9uQWJpOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMwoJLy8gYXNzZXJ0KHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyEubGVuZ3RoKQoJdHhuIE51bUFwcEFyZ3MKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyEubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MTUKCS8vIGkgPCB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cgl0eG4gTnVtQXBwQXJncwoJPAoJYnogKmZvcl8xX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE2CgkvLyBsb2codGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVtpXSkKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJdHhuYXMgQXBwbGljYXRpb25BcmdzCglsb2cKCipmb3JfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJcmV0c3ViCgovLyBtdWx0aWxpbmVGdW5jdGlvbkNhbGwoKXZvaWQKKmFiaV9yb3V0ZV9tdWx0aWxpbmVGdW5jdGlvbkNhbGw6CgkvLyBleGVjdXRlIG11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpdm9pZAoJY2FsbHN1YiBtdWx0aWxpbmVGdW5jdGlvbkNhbGwKCWludCAxCglyZXR1cm4KCi8vIG11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpOiB2b2lkCm11bHRpbGluZUZ1bmN0aW9uQ2FsbDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUyMQoJLy8gYXBwID0gQXBwSUQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGFwcDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MjIKCS8vIGFkZHIgPSBBZGRyZXNzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBhZGRyOiBhZGRyZXNzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MjQKCS8vIGFwcC5sb2NhbFN0YXRlKAoJLy8gICAgICAgYWRkciwKCS8vICAgICAgICdrZXknCgkvLyAgICAgKQoJZnJhbWVfZGlnIDEgLy8gYWRkcjogYWRkcmVzcwoJaW50IDAgLy8gYXBwOiB1aW50NjQKCXB1c2hieXRlcyAweDZiNjU3OSAvLyAia2V5IgoJYXBwX2xvY2FsX2dldF9leAoKCS8vIGxvY2FsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBhcHAubG9jYWxTdGF0ZSggYWRkciwgJ2tleScgKQoJYXNzZXJ0CglyZXRzdWIKCi8vIGEoKXVpbnQ2NAoqYWJpX3JvdXRlX2E6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYSgpdWludDY0CgljYWxsc3ViIGEKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHVpbnQ2NAphOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MzEKCS8vIHJldHVybiAzOwoJcHVzaGludCAzCglyZXRzdWIKCi8vIGIoKXVpbnQ2NAoqYWJpX3JvdXRlX2I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYigpdWludDY0CgljYWxsc3ViIGIKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiKCk6IHVpbnQ2NApiOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MzUKCS8vIHJldHVybiA1OwoJaW50IDUKCXJldHN1YgoKLy8gdW51c2VkTWV0aG9kVmFsdWUoKXVpbnQ2NAoqYWJpX3JvdXRlX3VudXNlZE1ldGhvZFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQKCWNhbGxzdWIgdW51c2VkTWV0aG9kVmFsdWUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1bnVzZWRNZXRob2RWYWx1ZSgpOiB1aW50NjQKdW51c2VkTWV0aG9kVmFsdWU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUzOQoJLy8gdGhpcy5hKCkKCWNhbGxzdWIgYQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NDAKCS8vIHJldHVybiB0aGlzLmIoKTsKCWNhbGxzdWIgYgoJcmV0c3ViCgovLyByZWFzc2lnbmVkTm9uRmlyc3RWYXIoKXVpbnQ2NAoqYWJpX3JvdXRlX3JlYXNzaWduZWROb25GaXJzdFZhcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZWFzc2lnbmVkTm9uRmlyc3RWYXIoKXVpbnQ2NAoJY2FsbHN1YiByZWFzc2lnbmVkTm9uRmlyc3RWYXIKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZWFzc2lnbmVkTm9uRmlyc3RWYXIoKTogdWludDY0CnJlYXNzaWduZWROb25GaXJzdFZhcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU1MQoJLy8gYSA9IDEgYXMgdWludDY0CglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTUyCgkvLyBiID0gdGhpcy5hcHAuaWQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2J1cnkgMSAvLyBiOiB1aW50NjQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NTMKCS8vIGEKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTU0CgkvLyBiID0gMgoJaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBiOiB1aW50NjQKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NTcKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIDEgLy8gYjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBmdkx2KCl2b2lkCiphYmlfcm91dGVfZnZMdjoKCS8vIGV4ZWN1dGUgZnZMdigpdm9pZAoJY2FsbHN1YiBmdkx2CglpbnQgMQoJcmV0dXJuCgovLyBmdkx2KCk6IHZvaWQKZnZMdjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTYxCgkvLyBhc3NlcnQodGhpcy50eG4uZmlyc3RWYWxpZCkKCXR4biBGaXJzdFZhbGlkCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU2MgoJLy8gYXNzZXJ0KHRoaXMudHhuLmxhc3RWYWxpZCkKCXR4biBMYXN0VmFsaWQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDYyNDI2NGEzIC8vIG1ldGhvZCAidHhuVHlwZUVudW0oKXZvaWQiCglwdXNoYnl0ZXMgMHhiMjA1ZWRjOSAvLyBtZXRob2QgInR4bkdyb3VwTGVuZ3RoKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTZlOTdkNWIgLy8gbWV0aG9kICJhc3NlcnRzKGJvb2wsYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGQ2ZmE3YzggLy8gbWV0aG9kICJ2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkIgoJcHVzaGJ5dGVzIDB4MGVhNjQ0ZmIgLy8gbWV0aG9kICJ2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAoKXZvaWQiCglwdXNoYnl0ZXMgMHhlYzBkOTA5NCAvLyBtZXRob2QgInZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZCIKCXB1c2hieXRlcyAweDY4ODQ4ZDk3IC8vIG1ldGhvZCAidmVyaWZ5VHhuSW5jbHVkZWRJbigpdm9pZCIKCXB1c2hieXRlcyAweDE4YmQyM2RjIC8vIG1ldGhvZCAidmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZCIKCXB1c2hieXRlcyAweDgwNmJmYjkzIC8vIG1ldGhvZCAic3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2JlNWY4MmUgLy8gbWV0aG9kICJtZXRob2RXaXRoVHhuQXJncygpdm9pZCIKCXB1c2hieXRlcyAweDEyOTVkNjgzIC8vIG1ldGhvZCAic2hpZnQoKXZvaWQiCglwdXNoYnl0ZXMgMHhiM2I4YzQ3MiAvLyBtZXRob2QgImZyb21CeXRlcygpdm9pZCIKCXB1c2hieXRlcyAweDUzZTBiNmYwIC8vIG1ldGhvZCAiZnJvbVVpbnQ2NCgpdm9pZCIKCXB1c2hieXRlcyAweDRiM2ViODc3IC8vIG1ldGhvZCAiYnplcm9GdW5jdGlvbigpdm9pZCIKCXB1c2hieXRlcyAweGRhYzJlN2E1IC8vIG1ldGhvZCAiZXZlbnRzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTNkYjY3MDQgLy8gbWV0aG9kICJsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10iCglwdXNoYnl0ZXMgMHhhZTIxYzE3MiAvLyBtZXRob2QgInN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZCIKCXB1c2hieXRlcyAweGRhYjRkMWM0IC8vIG1ldGhvZCAibnVtYmVyVG9TdHJpbmcoKXZvaWQiCglwdXNoYnl0ZXMgMHhhN2I0YWU5YSAvLyBtZXRob2QgIm1ldGhvZE9uUGFyZW5zKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NmQ0NDg1YmEgLy8gbWV0aG9kICJzdHJpbmdTdWJzdHJpbmcoKXZvaWQiCglwdXNoYnl0ZXMgMHhlZjYyNjJlOSAvLyBtZXRob2QgImlkUHJvcGVydHkoKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZDJiNjY4YiAvLyBtZXRob2QgInNjcmF0Y2hTbG90KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTZjMTU0ZmMgLy8gbWV0aG9kICJlY2RzYSgpdm9pZCIKCXB1c2hieXRlcyAweGE5NzY0MTk3IC8vIG1ldGhvZCAidmVyaWZ5VHhuVHlwZXMoKXZvaWQiCglwdXNoYnl0ZXMgMHg5ZGJiYzQyYyAvLyBtZXRob2QgInN0cmluZ1BsdXNFcXVhbHMoKXZvaWQiCglwdXNoYnl0ZXMgMHg0YzBkZGVjMSAvLyBtZXRob2QgImltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdIgoJcHVzaGJ5dGVzIDB4MzBlY2ZiNDEgLy8gbWV0aG9kICJjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZCIKCXB1c2hieXRlcyAweDE0YTQ5OTE5IC8vIG1ldGhvZCAiaW50ZXJhbFB1YmxpY01ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGI3MWMxNzlhIC8vIG1ldGhvZCAiY2FsbEludGVybmFsUHVibGljTWV0aG9kKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OTg0ODEwOTMgLy8gbWV0aG9kICJhcHBMb2FkU2NyYXRjaCgpdm9pZCIKCXB1c2hieXRlcyAweGY1NzJkMWMxIC8vIG1ldGhvZCAidWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NiIKCXB1c2hieXRlcyAweDg1NGRlZGUwIC8vIG1ldGhvZCAib3BVcCgpdm9pZCIKCXB1c2hieXRlcyAweDY4MTU5OWZhIC8vIG1ldGhvZCAicmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZyIKCXB1c2hieXRlcyAweDVlMTQ3N2U4IC8vIG1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZTA3YjNiZTkgLy8gbWV0aG9kICJyZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDE2ZTQ2NjU3IC8vIG1ldGhvZCAicmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDJjODM2ZjQ2IC8vIG1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQiCglwdXNoYnl0ZXMgMHhhOTNjNTZmOSAvLyBtZXRob2QgInJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZjkzNjk1MmQgLy8gbWV0aG9kICJjb25zdHMoKXZvaWQiCglwdXNoYnl0ZXMgMHg4OGYzOWM5OSAvLyBtZXRob2QgImFzc2VydFdpdGhNZXNzYWdlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NTg3OTRjZjQgLy8gbWV0aG9kICJvcGNvZGVBbGlhc2VzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4MzUwNDRhZDggLy8gbWV0aG9kICJ2cmZWZXJpZnlPcCgpdm9pZCIKCXB1c2hieXRlcyAweDdkMjc5ZThlIC8vIG1ldGhvZCAiZWNNYXRoKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2RmYTE4YzggLy8gbWV0aG9kICJnaXR4bigpdm9pZCIKCXB1c2hieXRlcyAweDc4Y2E1YzRlIC8vIG1ldGhvZCAiZ2V0U2V0Qnl0ZXMoKXZvaWQiCglwdXNoYnl0ZXMgMHgwZTY3ZTk1NyAvLyBtZXRob2QgImdldFNldFVpbnQ2NCgpdm9pZCIKCXB1c2hieXRlcyAweDNiNDQ2ZWVmIC8vIG1ldGhvZCAiYmxvY2tPcCgpdm9pZCIKCXB1c2hieXRlcyAweGFlODJlODc1IC8vIG1ldGhvZCAiYjY0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDY5YWY1MzAgLy8gbWV0aG9kICJqc29uKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NGQ1MmYzM2QgLy8gbWV0aG9kICJiaXRsZW5PcCgpdm9pZCIKCXB1c2hieXRlcyAweDJjMGNkMjAxIC8vIG1ldGhvZCAiY29tcHV0ZWRDb25zdCgpdm9pZCIKCXB1c2hieXRlcyAweDcwZTBhZmU1IC8vIG1ldGhvZCAibXVsdGlDb21wdXRlZENvbnN0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4MzBhMmZlZjQgLy8gbWV0aG9kICJyZWFkU2NoZW1hKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjM5NzFkY2EgLy8gbWV0aG9kICJjb21wYXJpc29uT3IoKWJvb2wiCglieXRlIDB4MmM2MzZlZWIgLy8gbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJcHVzaGJ5dGVzIDB4OWU0MGQzNGIgLy8gbWV0aG9kICJjYWxsVHhuQXJnc01ldGhvZCgpdm9pZCIKCXB1c2hieXRlcyAweDkxY2YyYjU4IC8vIG1ldGhvZCAic3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkIgoJcHVzaGJ5dGVzIDB4YjFjOGI0NWMgLy8gbWV0aG9kICJzdGF0aWNUeXBlTGVuKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OWMwZTFiZGIgLy8gbWV0aG9kICJkeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCglwdXNoYnl0ZXMgMHgwYTMxOTUwNCAvLyBtZXRob2QgImluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODRiMjYwZmEgLy8gbWV0aG9kICJpbmNyZW1lbnREeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCglwdXNoYnl0ZXMgMHg0YTkwODg1NiAvLyBtZXRob2QgImZyb21BZGRyZXNzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OGRlYjMyZDMgLy8gbWV0aG9kICJlYXJseVJldHVybih1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4NjdkZTE1NmYgLy8gbWV0aG9kICJhc3NldE1ldGhvZEFyZ3MoKXZvaWQiCglwdXNoYnl0ZXMgMHgxZTQyODQxMiAvLyBtZXRob2QgIm11bHRpcGxlUHJvZ3JhbVBhZ2VzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4Mjc4ZmQ4YjggLy8gbWV0aG9kICJhc3NlcnRDb21tZW50KCl2b2lkIgoJcHVzaGJ5dGVzIDB4YmZjMzYyMDggLy8gbWV0aG9kICJ0aHJvd0Vycm9yTWVzc2FnZSgpdm9pZCIKCXB1c2hieXRlcyAweDA0ZWVkZjc5IC8vIG1ldGhvZCAib3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgzNWQ1ZmJjNyAvLyBtZXRob2QgIm11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpdm9pZCIKCXB1c2hieXRlcyAweGY5NTIyZTJmIC8vIG1ldGhvZCAiYSgpdWludDY0IgoJcHVzaGJ5dGVzIDB4OGM5Mzc5ZTYgLy8gbWV0aG9kICJiKCl1aW50NjQiCglwdXNoYnl0ZXMgMHhmOWExMzU1MiAvLyBtZXRob2QgInVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5NGYyMDQ5YSAvLyBtZXRob2QgInJlYXNzaWduZWROb25GaXJzdFZhcigpdWludDY0IgoJcHVzaGJ5dGVzIDB4NTYyNjQyMTUgLy8gbWV0aG9kICJmdkx2KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlRW51bSAqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoICphYmlfcm91dGVfYXNzZXJ0cyAqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21BcmcgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Db25kaXRpb24gKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluICphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiAqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cCAqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzICphYmlfcm91dGVfc2hpZnQgKmFiaV9yb3V0ZV9mcm9tQnl0ZXMgKmFiaV9yb3V0ZV9mcm9tVWludDY0ICphYmlfcm91dGVfYnplcm9GdW5jdGlvbiAqYWJpX3JvdXRlX2V2ZW50cyAqYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbiAqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllcyAqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nICphYmlfcm91dGVfbWV0aG9kT25QYXJlbnMgKmFiaV9yb3V0ZV9zdHJpbmdTdWJzdHJpbmcgKmFiaV9yb3V0ZV9pZFByb3BlcnR5ICphYmlfcm91dGVfc2NyYXRjaFNsb3QgKmFiaV9yb3V0ZV9lY2RzYSAqYWJpX3JvdXRlX3ZlcmlmeVR4blR5cGVzICphYmlfcm91dGVfc3RyaW5nUGx1c0VxdWFscyAqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbSAqYWJpX3JvdXRlX2NhbGxQcml2YXRlRGVmaW5lZExhdGVyICphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2NhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2FwcExvYWRTY3JhdGNoICphYmlfcm91dGVfdWludE5XaXRoVW5kZXJzY29yZSAqYWJpX3JvdXRlX29wVXAgKmFiaV9yb3V0ZV9yZXR1cm5WYWx1ZU9uQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX2NvbnN0cyAqYWJpX3JvdXRlX2Fzc2VydFdpdGhNZXNzYWdlICphYmlfcm91dGVfb3Bjb2RlQWxpYXNlcyAqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wICphYmlfcm91dGVfZWNNYXRoICphYmlfcm91dGVfZ2l0eG4gKmFiaV9yb3V0ZV9nZXRTZXRCeXRlcyAqYWJpX3JvdXRlX2dldFNldFVpbnQ2NCAqYWJpX3JvdXRlX2Jsb2NrT3AgKmFiaV9yb3V0ZV9iNjQgKmFiaV9yb3V0ZV9qc29uICphYmlfcm91dGVfYml0bGVuT3AgKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0ICphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0ICphYmlfcm91dGVfcmVhZFNjaGVtYSAqYWJpX3JvdXRlX2NvbXBhcmlzb25PciAqYWJpX3JvdXRlX3R4bkFyZ3NNZXRob2QgKmFiaV9yb3V0ZV9jYWxsVHhuQXJnc01ldGhvZCAqYWJpX3JvdXRlX3N0YXRpY1ZhbHVlTGVuICphYmlfcm91dGVfc3RhdGljVHlwZUxlbiAqYWJpX3JvdXRlX2R5bmFtaWNTY3JhdGNoU2xvdCAqYWJpX3JvdXRlX2luY3JlbWVudFNjcmF0Y2hTbG90ICphYmlfcm91dGVfaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90ICphYmlfcm91dGVfZnJvbUFkZHJlc3MgKmFiaV9yb3V0ZV9lYXJseVJldHVybiAqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJncyAqYWJpX3JvdXRlX211bHRpcGxlUHJvZ3JhbVBhZ2VzICphYmlfcm91dGVfYXNzZXJ0Q29tbWVudCAqYWJpX3JvdXRlX3Rocm93RXJyb3JNZXNzYWdlICphYmlfcm91dGVfb3JMaXRlcmFsVHlwZSAqYWJpX3JvdXRlX211bHRpbGluZUZ1bmN0aW9uQ2FsbCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iICphYmlfcm91dGVfdW51c2VkTWV0aG9kVmFsdWUgKmFiaV9yb3V0ZV9yZWFzc2lnbmVkTm9uRmlyc3RWYXIgKmFiaV9yb3V0ZV9mdkx2CgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpCglpbnQgMQoJcmV0dXJuCgoqaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJcHVzaGJ5dGVzIDB4MzAzMTMyMzMzNDM1MzYzNzM4MzkgLy8gIjAxMjM0NTY3ODkiCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMQoJZXh0cmFjdDMKCXJldHN1YgoJCgoqaXRvYToKCXByb3RvIDEgMQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaXRvYV9pZl9lbmQKCWJ5dGUgMHgzMAoJcmV0c3ViCgoqaXRvYV9pZl9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglwdXNoaW50IDEwCgkvCglpbnQgMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJcHVzaGludCAxMAoJLwoJY2FsbHN1YiAqaXRvYQoJYiAqaXRvYV90ZXJuYXJ5X2VuZAoKKml0b2FfdGVybmFyeV9mYWxzZToKCWJ5dGUgMHggLy8gIiIKCippdG9hX3Rlcm5hcnlfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJcHVzaGludCAxMAoJJQoJY2FsbHN1YiAqaW50VG9Bc2NpaQoJY29uY2F0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/GeneralTest.arc56_draft.json b/tests/contracts/artifacts/GeneralTest.arc56_draft.json index 600c065aa..58895a7db 100644 --- a/tests/contracts/artifacts/GeneralTest.arc56_draft.json +++ b/tests/contracts/artifacts/GeneralTest.arc56_draft.json @@ -1120,13676 +1120,240 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 49, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225 - ] - }, - { - "teal": 13, - "source": 49, - "pc": [ - 226, - 227 - ] - }, - { - "teal": 14, - "source": 49, - "pc": [ - 228 - ] - }, - { - "teal": 15, - "source": 49, - "pc": [ - 229 - ] - }, - { - "teal": 16, - "source": 49, - "pc": [ - 230 - ] - }, - { - "teal": 17, - "source": 49, - "pc": [ - 231, - 232 - ] - }, - { - "teal": 18, - "source": 49, - "pc": [ - 233 - ] - }, - { - "teal": 19, - "source": 49, - "pc": [ - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259 - ] - }, - { - "teal": 23, - "source": 49, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 260 - ] - }, - { - "teal": 28, - "source": 60, - "pc": [ - 261, - 262, - 263 - ] - }, - { - "teal": 29, - "source": 60, - "pc": [ - 264 - ] - }, - { - "teal": 30, - "source": 60, - "pc": [ - 265 - ] - }, - { - "teal": 34, - "source": 60, - "pc": [ - 266, - 267, - 268 - ] - }, - { - "teal": 38, - "source": 61, - "pc": [ - 269 - ] - }, - { - "teal": 39, - "source": 61, - "pc": [ - 270, - 271 - ] - }, - { - "teal": 40, - "source": 61, - "pc": [ - 272 - ] - }, - { - "teal": 41, - "source": 61, - "pc": [ - 273 - ] - }, - { - "teal": 42, - "source": 61, - "pc": [ - 274 - ] - }, - { - "teal": 43, - "source": 60, - "pc": [ - 275 - ] - }, - { - "teal": 48, - "source": 64, - "pc": [ - 276, - 277, - 278 - ] - }, - { - "teal": 49, - "source": 64, - "pc": [ - 279 - ] - }, - { - "teal": 50, - "source": 64, - "pc": [ - 280 - ] - }, - { - "teal": 54, - "source": 64, - "pc": [ - 281, - 282, - 283 - ] - }, - { - "teal": 58, - "source": 65, - "pc": [ - 284, - 285 - ] - }, - { - "teal": 59, - "source": 65, - "pc": [ - 286 - ] - }, - { - "teal": 60, - "source": 65, - "pc": [ - 287 - ] - }, - { - "teal": 61, - "source": 65, - "pc": [ - 288 - ] - }, - { - "teal": 62, - "source": 64, - "pc": [ - 289 - ] - }, - { - "teal": 67, - "source": 68, - "pc": [ - 290, - 291, - 292 - ] - }, - { - "teal": 68, - "source": 68, - "pc": [ - 293 - ] - }, - { - "teal": 69, - "source": 68, - "pc": [ - 294 - ] - }, - { - "teal": 70, - "source": 68, - "pc": [ - 295 - ] - }, - { - "teal": 71, - "source": 68, - "pc": [ - 296 - ] - }, - { - "teal": 74, - "source": 68, - "errorMessage": "argument 0 (arg2) for asserts must be a bool", - "pc": [ - 297 - ] - }, - { - "teal": 75, - "source": 68, - "pc": [ - 298 - ] - }, - { - "teal": 76, - "source": 68, - "pc": [ - 299 - ] - }, - { - "teal": 79, - "source": 68, - "pc": [ - 300, - 301, - 302 - ] - }, - { - "teal": 80, - "source": 68, - "pc": [ - 303 - ] - }, - { - "teal": 81, - "source": 68, - "pc": [ - 304 - ] - }, - { - "teal": 82, - "source": 68, - "pc": [ - 305 - ] - }, - { - "teal": 83, - "source": 68, - "pc": [ - 306 - ] - }, - { - "teal": 86, - "source": 68, - "errorMessage": "argument 1 (arg1) for asserts must be a bool", - "pc": [ - 307 - ] - }, - { - "teal": 87, - "source": 68, - "pc": [ - 308 - ] - }, - { - "teal": 88, - "source": 68, - "pc": [ - 309 - ] - }, - { - "teal": 91, - "source": 68, - "pc": [ - 310, - 311, - 312 - ] - }, - { - "teal": 92, - "source": 68, - "pc": [ - 313 - ] - }, - { - "teal": 93, - "source": 68, - "pc": [ - 314 - ] - }, - { - "teal": 97, - "source": 68, - "pc": [ - 315, - 316, - 317 - ] - }, - { - "teal": 101, - "source": 69, - "pc": [ - 318, - 319 - ] - }, - { - "teal": 104, - "source": 69, - "errorMessage": "asserts failed: asserts(arg1, arg2, arg1 === arg2)", - "pc": [ - 320 - ] - }, - { - "teal": 105, - "source": 69, - "pc": [ - 321, - 322 - ] - }, - { - "teal": 108, - "source": 69, - "errorMessage": "asserts failed: asserts(arg1, arg2, arg1 === arg2)", - "pc": [ - 323 - ] - }, - { - "teal": 109, - "source": 69, - "pc": [ - 324, - 325 - ] - }, - { - "teal": 110, - "source": 69, - "pc": [ - 326, - 327 - ] - }, - { - "teal": 111, - "source": 69, - "pc": [ - 328 - ] - }, - { - "teal": 114, - "source": 69, - "errorMessage": "asserts failed: asserts(arg1, arg2, arg1 === arg2)", - "pc": [ - 329 - ] - }, - { - "teal": 115, - "source": 68, - "pc": [ - 330 - ] - }, - { - "teal": 120, - "source": 72, - "pc": [ - 331, - 332 - ] - }, - { - "teal": 121, - "source": 72, - "pc": [ - 333 - ] - }, - { - "teal": 122, - "source": 72, - "pc": [ - 334 - ] - }, - { - "teal": 123, - "source": 72, - "pc": [ - 335 - ] - }, - { - "teal": 124, - "source": 72, - "pc": [ - 336, - 337 - ] - }, - { - "teal": 125, - "source": 72, - "pc": [ - 338 - ] - }, - { - "teal": 126, - "source": 72, - "pc": [ - 339 - ] - }, - { - "teal": 129, - "source": 72, - "errorMessage": "argument 0 (somePay) for verifyTxnFromArg must be a pay transaction", - "pc": [ - 340 - ] - }, - { - "teal": 132, - "source": 72, - "pc": [ - 341, - 342, - 343 - ] - }, - { - "teal": 133, - "source": 72, - "pc": [ - 344 - ] - }, - { - "teal": 134, - "source": 72, - "pc": [ - 345 - ] - }, - { - "teal": 138, - "source": 72, - "pc": [ - 346, - 347, - 348 - ] - }, - { - "teal": 143, - "source": 73, - "pc": [ - 349, - 350 - ] - }, - { - "teal": 144, - "source": 73, - "pc": [ - 351, - 352 - ] - }, - { - "teal": 145, - "source": 73, - "pc": [ - 353, - 354 - ] - }, - { - "teal": 146, - "source": 73, - "pc": [ - 355 - ] - }, - { - "teal": 149, - "source": 73, - "errorMessage": "transaction verification failed: {\"txn\":\"somePay\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 356 - ] - }, - { - "teal": 152, - "source": 73, - "pc": [ - 357, - 358 - ] - }, - { - "teal": 153, - "source": 73, - "pc": [ - 359, - 360 - ] - }, - { - "teal": 154, - "source": 73, - "pc": [ - 361, - 362 - ] - }, - { - "teal": 155, - "source": 73, - "pc": [ - 363 - ] - }, - { - "teal": 158, - "source": 73, - "errorMessage": "transaction verification failed: {\"txn\":\"somePay\",\"field\":\"amount\",\"expected\":\"100_000\"}", - "pc": [ - 364 - ] - }, - { - "teal": 159, - "source": 72, - "pc": [ - 365 - ] - }, - { - "teal": 164, - "source": 76, - "pc": [ - 366, - 367, - 368 - ] - }, - { - "teal": 165, - "source": 76, - "pc": [ - 369 - ] - }, - { - "teal": 166, - "source": 76, - "pc": [ - 370 - ] - }, - { - "teal": 170, - "source": 76, - "pc": [ - 371, - 372, - 373 - ] - }, - { - "teal": 175, - "source": 77, - "pc": [ - 374 - ] - }, - { - "teal": 176, - "source": 77, - "pc": [ - 375, - 376 - ] - }, - { - "teal": 177, - "source": 77, - "pc": [ - 377, - 378 - ] - }, - { - "teal": 178, - "source": 77, - "pc": [ - 379 - ] - }, - { - "teal": 181, - "source": 77, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}", - "pc": [ - 380 - ] - }, - { - "teal": 182, - "source": 76, - "pc": [ - 381 - ] - }, - { - "teal": 187, - "source": 80, - "pc": [ - 382, - 383, - 384 - ] - }, - { - "teal": 188, - "source": 80, - "pc": [ - 385 - ] - }, - { - "teal": 189, - "source": 80, - "pc": [ - 386 - ] - }, - { - "teal": 193, - "source": 80, - "pc": [ - 387, - 388, - 389 - ] - }, - { - "teal": 200, - "source": 82, - "pc": [ - 390, - 391 - ] - }, - { - "teal": 201, - "source": 82, - "pc": [ - 392 - ] - }, - { - "teal": 202, - "source": 82, - "pc": [ - 393 - ] - }, - { - "teal": 205, - "source": 82, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"applicationID\",\"condition\":\"greaterThan\",\"expected\":\">1\"}", - "pc": [ - 394 - ] - }, - { - "teal": 206, - "source": 80, - "pc": [ - 395 - ] - }, - { - "teal": 211, - "source": 86, - "pc": [ - 396, - 397, - 398 - ] - }, - { - "teal": 212, - "source": 86, - "pc": [ - 399 - ] - }, - { - "teal": 213, - "source": 86, - "pc": [ - 400 - ] - }, - { - "teal": 217, - "source": 86, - "pc": [ - 401, - 402, - 403 - ] - }, - { - "teal": 224, - "source": 88, - "pc": [ - 404, - 405 - ] - }, - { - "teal": 225, - "source": 88, - "pc": [ - 406, - 407 - ] - }, - { - "teal": 226, - "source": 88, - "pc": [ - 408 - ] - }, - { - "teal": 229, - "source": 88, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"includedIn\",\"expected\":\"[this.txn.sender]\"}", - "pc": [ - 409 - ] - }, - { - "teal": 230, - "source": 86, - "pc": [ - 410 - ] - }, - { - "teal": 235, - "source": 92, - "pc": [ - 411, - 412, - 413 - ] - }, - { - "teal": 236, - "source": 92, - "pc": [ - 414 - ] - }, - { - "teal": 237, - "source": 92, - "pc": [ - 415 - ] - }, - { - "teal": 241, - "source": 92, - "pc": [ - 416, - 417, - 418 - ] - }, - { - "teal": 248, - "source": 94, - "pc": [ - 419, - 420 - ] - }, - { - "teal": 249, - "source": 94, - "pc": [ - 421, - 422 - ] - }, - { - "teal": 250, - "source": 94, - "pc": [ - 423 - ] - }, - { - "teal": 253, - "source": 94, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"notIncludedIn\",\"expected\":\"[globals.zeroAddress]\"}", - "pc": [ - 424 - ] - }, - { - "teal": 254, - "source": 92, - "pc": [ - 425 - ] - }, - { - "teal": 259, - "source": 98, - "pc": [ - 426, - 427, - 428 - ] - }, - { - "teal": 260, - "source": 98, - "pc": [ - 429 - ] - }, - { - "teal": 261, - "source": 98, - "pc": [ - 430 - ] - }, - { - "teal": 265, - "source": 98, - "pc": [ - 431, - 432, - 433 - ] - }, - { - "teal": 269, - "source": 99, - "pc": [ - 434 - ] - }, - { - "teal": 270, - "source": 99, - "pc": [ - 435 - ] - }, - { - "teal": 271, - "source": 99, - "pc": [ - 436, - 437 - ] - }, - { - "teal": 275, - "source": 99, - "pc": [ - 438 - ] - }, - { - "teal": 276, - "source": 99, - "pc": [ - 439, - 440 - ] - }, - { - "teal": 280, - "source": 99, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 281, - "source": 99, - "pc": [ - 443, - 444 - ] - }, - { - "teal": 284, - "source": 99, - "pc": [ - 445 - ] - }, - { - "teal": 285, - "source": 99, - "pc": [ - 446, - 447 - ] - }, - { - "teal": 289, - "source": 100, - "pc": [ - 448 - ] - }, - { - "teal": 290, - "source": 100, - "pc": [ - 449 - ] - }, - { - "teal": 291, - "source": 100, - "pc": [ - 450, - 451 - ] - }, - { - "teal": 295, - "source": 100, - "pc": [ - 452 - ] - }, - { - "teal": 296, - "source": 100, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 300, - "source": 100, - "pc": [ - 455, - 456 - ] - }, - { - "teal": 301, - "source": 100, - "pc": [ - 457, - 458 - ] - }, - { - "teal": 305, - "source": 100, - "pc": [ - 459 - ] - }, - { - "teal": 306, - "source": 100, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 309, - "source": 100, - "pc": [ - 462 - ] - }, - { - "teal": 310, - "source": 100, - "pc": [ - 463, - 464 - ] - }, - { - "teal": 314, - "source": 101, - "pc": [ - 465 - ] - }, - { - "teal": 315, - "source": 98, - "pc": [ - 466 - ] - }, - { - "teal": 320, - "source": 104, - "pc": [ - 467, - 468, - 469 - ] - }, - { - "teal": 321, - "source": 104, - "pc": [ - 470 - ] - }, - { - "teal": 322, - "source": 104, - "pc": [ - 471 - ] - }, - { - "teal": 326, - "source": 104, - "pc": [ - 472, - 473, - 474 - ] - }, - { - "teal": 340, - "source": 108, - "pc": [ - 475 - ] - }, - { - "teal": 341, - "source": 108, - "pc": [ - 476 - ] - }, - { - "teal": 342, - "source": 108, - "pc": [ - 477, - 478 - ] - }, - { - "teal": 346, - "source": 108, - "pc": [ - 479, - 480 - ] - }, - { - "teal": 347, - "source": 108, - "pc": [ - 481, - 482 - ] - }, - { - "teal": 351, - "source": 108, - "pc": [ - 483, - 484 - ] - }, - { - "teal": 352, - "source": 108, - "pc": [ - 485, - 486 - ] - }, - { - "teal": 355, - "source": 108, - "pc": [ - 487 - ] - }, - { - "teal": 356, - "source": 108, - "pc": [ - 488, - 489 - ] - }, - { - "teal": 357, - "source": 109, - "pc": [ - 490 - ] - }, - { - "teal": 358, - "source": 109, - "pc": [ - 491 - ] - }, - { - "teal": 359, - "source": 109, - "pc": [ - 492, - 493 - ] - }, - { - "teal": 360, - "source": 110, - "pc": [ - 494, - 495, - 496, - 497, - 498, - 499 - ] - }, - { - "teal": 361, - "source": 110, - "pc": [ - 500, - 501 - ] - }, - { - "teal": 365, - "source": 111, - "pc": [ - 502, - 503 - ] - }, - { - "teal": 366, - "source": 111, - "pc": [ - 504, - 505 - ] - }, - { - "teal": 370, - "source": 112, - "pc": [ - 506, - 507 - ] - }, - { - "teal": 371, - "source": 112, - "pc": [ - 508, - 509 - ] - }, - { - "teal": 374, - "source": 109, - "pc": [ - 510 - ] - }, - { - "teal": 375, - "source": 109, - "pc": [ - 511, - 512 - ] - }, - { - "teal": 376, - "source": 105, - "pc": [ - 513 - ] - }, - { - "teal": 377, - "source": 105, - "pc": [ - 514 - ] - }, - { - "teal": 378, - "source": 105, - "pc": [ - 515, - 516 - ] - }, - { - "teal": 379, - "source": 106, - "pc": [ - 517, - 518, - 519, - 520, - 521, - 522 - ] - }, - { - "teal": 380, - "source": 106, - "pc": [ - 523, - 524 - ] - }, - { - "teal": 392, - "source": 105, - "pc": [ - 525 - ] - }, - { - "teal": 393, - "source": 105, - "pc": [ - 526, - 527 - ] - }, - { - "teal": 396, - "source": 105, - "pc": [ - 528 - ] - }, - { - "teal": 397, - "source": 104, - "pc": [ - 529 - ] - }, - { - "teal": 402, - "source": 118, - "pc": [ - 530, - 531, - 532 - ] - }, - { - "teal": 403, - "source": 118, - "pc": [ - 533 - ] - }, - { - "teal": 404, - "source": 118, - "pc": [ - 534 - ] - }, - { - "teal": 408, - "source": 118, - "pc": [ - 535, - 536, - 537 - ] - }, - { - "teal": 412, - "source": 119, - "pc": [ - 538 - ] - }, - { - "teal": 413, - "source": 119, - "pc": [ - 539 - ] - }, - { - "teal": 414, - "source": 119, - "pc": [ - 540 - ] - }, - { - "teal": 415, - "source": 119, - "pc": [ - 541, - 542 - ] - }, - { - "teal": 416, - "source": 119, - "pc": [ - 543 - ] - }, - { - "teal": 417, - "source": 119, - "pc": [ - 544 - ] - }, - { - "teal": 421, - "source": 120, - "pc": [ - 545, - 546 - ] - }, - { - "teal": 422, - "source": 120, - "pc": [ - 547 - ] - }, - { - "teal": 423, - "source": 120, - "pc": [ - 548 - ] - }, - { - "teal": 424, - "source": 120, - "pc": [ - 549 - ] - }, - { - "teal": 425, - "source": 120, - "pc": [ - 550 - ] - }, - { - "teal": 426, - "source": 120, - "pc": [ - 551 - ] - }, - { - "teal": 427, - "source": 118, - "pc": [ - 552 - ] - }, - { - "teal": 432, - "source": 123, - "pc": [ - 553, - 554, - 555 - ] - }, - { - "teal": 433, - "source": 123, - "pc": [ - 556 - ] - }, - { - "teal": 434, - "source": 123, - "pc": [ - 557 - ] - }, - { - "teal": 438, - "source": 123, - "pc": [ - 558, - 559, - 560 - ] - }, - { - "teal": 442, - "source": 124, - "pc": [ - 561, - 562, - 563, - 564, - 565 - ] - }, - { - "teal": 443, - "source": 124, - "pc": [ - 566, - 567 - ] - }, - { - "teal": 444, - "source": 124, - "pc": [ - 568 - ] - }, - { - "teal": 445, - "source": 124, - "pc": [ - 569 - ] - }, - { - "teal": 446, - "source": 123, - "pc": [ - 570 - ] - }, - { - "teal": 451, - "source": 127, - "pc": [ - 571, - 572, - 573 - ] - }, - { - "teal": 452, - "source": 127, - "pc": [ - 574 - ] - }, - { - "teal": 453, - "source": 127, - "pc": [ - 575 - ] - }, - { - "teal": 457, - "source": 127, - "pc": [ - 576, - 577, - 578 - ] - }, - { - "teal": 461, - "source": 128, - "pc": [ - 579, - 580 - ] - }, - { - "teal": 462, - "source": 128, - "pc": [ - 581, - 582 - ] - }, - { - "teal": 463, - "source": 128, - "pc": [ - 583 - ] - }, - { - "teal": 464, - "source": 128, - "pc": [ - 584 - ] - }, - { - "teal": 468, - "source": 129, - "pc": [ - 585, - 586 - ] - }, - { - "teal": 469, - "source": 129, - "pc": [ - 587, - 588 - ] - }, - { - "teal": 470, - "source": 129, - "pc": [ - 589 - ] - }, - { - "teal": 471, - "source": 129, - "pc": [ - 590 - ] - }, - { - "teal": 472, - "source": 127, - "pc": [ - 591 - ] - }, - { - "teal": 477, - "source": 132, - "pc": [ - 592, - 593, - 594 - ] - }, - { - "teal": 478, - "source": 132, - "pc": [ - 595 - ] - }, - { - "teal": 479, - "source": 132, - "pc": [ - 596 - ] - }, - { - "teal": 483, - "source": 132, - "pc": [ - 597, - 598, - 599 - ] - }, - { - "teal": 486, - "source": 132, - "pc": [ - 600 - ] - }, - { - "teal": 487, - "source": 132, - "pc": [ - 601, - 602 - ] - }, - { - "teal": 491, - "source": 134, - "pc": [ - 603, - 604 - ] - }, - { - "teal": 492, - "source": 134, - "pc": [ - 605, - 606 - ] - }, - { - "teal": 496, - "source": 135, - "pc": [ - 607 - ] - }, - { - "teal": 497, - "source": 135, - "pc": [ - 608 - ] - }, - { - "teal": 498, - "source": 135, - "pc": [ - 609, - 610 - ] - }, - { - "teal": 502, - "source": 136, - "pc": [ - 611, - 612 - ] - }, - { - "teal": 503, - "source": 136, - "pc": [ - 613, - 614 - ] - }, - { - "teal": 507, - "source": 137, - "pc": [ - 615, - 616 - ] - }, - { - "teal": 508, - "source": 137, - "pc": [ - 617, - 618 - ] - }, - { - "teal": 509, - "source": 137, - "pc": [ - 619 - ] - }, - { - "teal": 510, - "source": 137, - "pc": [ - 620, - 621 - ] - }, - { - "teal": 511, - "source": 137, - "pc": [ - 622 - ] - }, - { - "teal": 512, - "source": 137, - "pc": [ - 623 - ] - }, - { - "teal": 513, - "source": 137, - "pc": [ - 624, - 625 - ] - }, - { - "teal": 514, - "source": 137, - "pc": [ - 626 - ] - }, - { - "teal": 515, - "source": 137, - "pc": [ - 627 - ] - }, - { - "teal": 516, - "source": 132, - "pc": [ - 628 - ] - }, - { - "teal": 521, - "source": 151, - "pc": [ - 629, - 630, - 631 - ] - }, - { - "teal": 522, - "source": 151, - "pc": [ - 632 - ] - }, - { - "teal": 523, - "source": 151, - "pc": [ - 633 - ] - }, - { - "teal": 527, - "source": 151, - "pc": [ - 634, - 635, - 636 - ] - }, - { - "teal": 531, - "source": 152, - "pc": [ - 637, - 638, - 639, - 640, - 641, - 642 - ] - }, - { - "teal": 532, - "source": 152, - "pc": [ - 643, - 644, - 645 - ] - }, - { - "teal": 533, - "source": 152, - "pc": [ - 646 - ] - }, - { - "teal": 534, - "source": 152, - "pc": [ - 647, - 648 - ] - }, - { - "teal": 535, - "source": 152, - "pc": [ - 649 - ] - }, - { - "teal": 536, - "source": 152, - "pc": [ - 650 - ] - }, - { - "teal": 537, - "source": 152, - "pc": [ - 651 - ] - }, - { - "teal": 538, - "source": 151, - "pc": [ - 652 - ] - }, - { - "teal": 543, - "source": 155, - "pc": [ - 653 - ] - }, - { - "teal": 546, - "source": 155, - "pc": [ - 654, - 655, - 656 - ] - }, - { - "teal": 547, - "source": 155, - "pc": [ - 657, - 658, - 659 - ] - }, - { - "teal": 550, - "source": 155, - "pc": [ - 660, - 661, - 662 - ] - }, - { - "teal": 551, - "source": 155, - "pc": [ - 663 - ] - }, - { - "teal": 552, - "source": 155, - "pc": [ - 664 - ] - }, - { - "teal": 553, - "source": 155, - "pc": [ - 665, - 666 - ] - }, - { - "teal": 554, - "source": 155, - "pc": [ - 667 - ] - }, - { - "teal": 555, - "source": 155, - "pc": [ - 668 - ] - }, - { - "teal": 556, - "source": 155, - "pc": [ - 669, - 670, - 671 - ] - }, - { - "teal": 557, - "source": 155, - "pc": [ - 672 - ] - }, - { - "teal": 558, - "source": 155, - "pc": [ - 673 - ] - }, - { - "teal": 559, - "source": 155, - "pc": [ - 674 - ] - }, - { - "teal": 560, - "source": 155, - "pc": [ - 675 - ] - }, - { - "teal": 561, - "source": 155, - "pc": [ - 676 - ] - }, - { - "teal": 562, - "source": 155, - "pc": [ - 677 - ] - }, - { - "teal": 566, - "source": 155, - "pc": [ - 678, - 679, - 680 - ] - }, - { - "teal": 570, - "source": 156, - "pc": [ - 681, - 682 - ] - }, - { - "teal": 571, - "source": 156, - "pc": [ - 683, - 684 - ] - }, - { - "teal": 572, - "source": 156, - "pc": [ - 685, - 686 - ] - }, - { - "teal": 573, - "source": 156, - "pc": [ - 687, - 688, - 689 - ] - }, - { - "teal": 574, - "source": 156, - "pc": [ - 690 - ] - }, - { - "teal": 575, - "source": 156, - "pc": [ - 691 - ] - }, - { - "teal": 579, - "source": 158, - "pc": [ - 692, - 693 - ] - }, - { - "teal": 580, - "source": 158, - "pc": [ - 694, - 695 - ] - }, - { - "teal": 584, - "source": 160, - "pc": [ - 696, - 697 - ] - }, - { - "teal": 585, - "source": 155, - "pc": [ - 698 - ] - }, - { - "teal": 590, - "source": 163, - "pc": [ - 699, - 700, - 701 - ] - }, - { - "teal": 591, - "source": 163, - "pc": [ - 702 - ] - }, - { - "teal": 592, - "source": 163, - "pc": [ - 703 - ] - }, - { - "teal": 596, - "source": 163, - "pc": [ - 704, - 705, - 706 - ] - }, - { - "teal": 608, - "source": 164, - "pc": [ - 707 - ] - }, - { - "teal": 609, - "source": 164, - "pc": [ - 708 - ] - }, - { - "teal": 610, - "source": 164, - "pc": [ - 709, - 710 - ] - }, - { - "teal": 614, - "source": 165, - "pc": [ - 711 - ] - }, - { - "teal": 615, - "source": 165, - "pc": [ - 712, - 713 - ] - }, - { - "teal": 619, - "source": 166, - "pc": [ - 714, - 715, - 716, - 717, - 718, - 719, - 720, - 721, - 722, - 723, - 724, - 725, - 726, - 727, - 728, - 729, - 730, - 731, - 732, - 733, - 734, - 735, - 736, - 737, - 738, - 739, - 740, - 741, - 742, - 743, - 744, - 745, - 746, - 747, - 748, - 749, - 750, - 751, - 752, - 753, - 754, - 755, - 756, - 757, - 758, - 759, - 760, - 761, - 762, - 763, - 764, - 765, - 766, - 767, - 768, - 769 - ] - }, - { - "teal": 620, - "source": 166, - "pc": [ - 770, - 771 - ] - }, - { - "teal": 624, - "source": 167, - "pc": [ - 772, - 773, - 774 - ] - }, - { - "teal": 625, - "source": 167, - "pc": [ - 775, - 776 - ] - }, - { - "teal": 629, - "source": 168, - "pc": [ - 777 - ] - }, - { - "teal": 630, - "source": 168, - "pc": [ - 778, - 779 - ] - }, - { - "teal": 634, - "source": 169, - "pc": [ - 780 - ] - }, - { - "teal": 635, - "source": 169, - "pc": [ - 781, - 782 - ] - }, - { - "teal": 639, - "source": 170, - "pc": [ - 783 - ] - }, - { - "teal": 640, - "source": 170, - "pc": [ - 784, - 785 - ] - }, - { - "teal": 644, - "source": 171, - "pc": [ - 786 - ] - }, - { - "teal": 645, - "source": 171, - "pc": [ - 787, - 788 - ] - }, - { - "teal": 648, - "source": 164, - "pc": [ - 789 - ] - }, - { - "teal": 649, - "source": 164, - "pc": [ - 790, - 791 - ] - }, - { - "teal": 652, - "source": 164, - "pc": [ - 792 - ] - }, - { - "teal": 653, - "source": 163, - "pc": [ - 793 - ] - }, - { - "teal": 658, - "source": 175, - "pc": [ - 794, - 795, - 796 - ] - }, - { - "teal": 659, - "source": 175, - "pc": [ - 797 - ] - }, - { - "teal": 660, - "source": 175, - "pc": [ - 798 - ] - }, - { - "teal": 664, - "source": 175, - "pc": [ - 799, - 800, - 801 - ] - }, - { - "teal": 668, - "source": 178, - "pc": [ - 802 - ] - }, - { - "teal": 669, - "source": 178, - "pc": [ - 803, - 804, - 805 - ] - }, - { - "teal": 670, - "source": 178, - "pc": [ - 806, - 807, - 808 - ] - }, - { - "teal": 671, - "source": 178, - "pc": [ - 809 - ] - }, - { - "teal": 672, - "source": 178, - "pc": [ - 810 - ] - }, - { - "teal": 673, - "source": 175, - "pc": [ - 811 - ] - }, - { - "teal": 678, - "source": 181, - "pc": [ - 812, - 813, - 814 - ] - }, - { - "teal": 679, - "source": 181, - "pc": [ - 815 - ] - }, - { - "teal": 680, - "source": 181, - "pc": [ - 816 - ] - }, - { - "teal": 684, - "source": 181, - "pc": [ - 817, - 818, - 819 - ] - }, - { - "teal": 688, - "source": 182, - "pc": [ - 820, - 821 - ] - }, - { - "teal": 689, - "source": 182, - "pc": [ - 822, - 823, - 824 - ] - }, - { - "teal": 690, - "source": 182, - "pc": [ - 825, - 826, - 827 - ] - }, - { - "teal": 691, - "source": 182, - "pc": [ - 828 - ] - }, - { - "teal": 692, - "source": 182, - "pc": [ - 829 - ] - }, - { - "teal": 693, - "source": 181, - "pc": [ - 830 - ] - }, - { - "teal": 698, - "source": 185, - "pc": [ - 831, - 832, - 833 - ] - }, - { - "teal": 699, - "source": 185, - "pc": [ - 834 - ] - }, - { - "teal": 700, - "source": 185, - "pc": [ - 835 - ] - }, - { - "teal": 704, - "source": 185, - "pc": [ - 836, - 837, - 838 - ] - }, - { - "teal": 708, - "source": 187, - "pc": [ - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846 - ] - }, - { - "teal": 709, - "source": 187, - "pc": [ - 847, - 848, - 849 - ] - }, - { - "teal": 710, - "source": 187, - "pc": [ - 850, - 851, - 852, - 853 - ] - }, - { - "teal": 711, - "source": 187, - "pc": [ - 854 - ] - }, - { - "teal": 712, - "source": 187, - "pc": [ - 855 - ] - }, - { - "teal": 713, - "source": 185, - "pc": [ - 856 - ] - }, - { - "teal": 718, - "source": 190, - "pc": [ - 857, - 858, - 859 - ] - }, - { - "teal": 719, - "source": 190, - "pc": [ - 860 - ] - }, - { - "teal": 720, - "source": 190, - "pc": [ - 861 - ] - }, - { - "teal": 724, - "source": 190, - "pc": [ - 862, - 863, - 864 - ] - }, - { - "teal": 727, - "source": 190, - "pc": [ - 865 - ] - }, - { - "teal": 728, - "source": 190, - "pc": [ - 866 - ] - }, - { - "teal": 732, - "source": 191, - "pc": [ - 867 - ] - }, - { - "teal": 733, - "source": 191, - "pc": [ - 868, - 869 - ] - }, - { - "teal": 737, - "source": 192, - "pc": [ - 870 - ] - }, - { - "teal": 738, - "source": 192, - "pc": [ - 871 - ] - }, - { - "teal": 739, - "source": 192, - "pc": [ - 872 - ] - }, - { - "teal": 740, - "source": 192, - "pc": [ - 873 - ] - }, - { - "teal": 744, - "source": 194, - "pc": [ - 874 - ] - }, - { - "teal": 745, - "source": 194, - "pc": [ - 875, - 876 - ] - }, - { - "teal": 749, - "source": 195, - "pc": [ - 877 - ] - }, - { - "teal": 750, - "source": 195, - "pc": [ - 878 - ] - }, - { - "teal": 751, - "source": 195, - "pc": [ - 879 - ] - }, - { - "teal": 752, - "source": 195, - "pc": [ - 880 - ] - }, - { - "teal": 753, - "source": 190, - "pc": [ - 881 - ] - }, - { - "teal": 758, - "source": 198, - "pc": [ - 882, - 883, - 884 - ] - }, - { - "teal": 759, - "source": 198, - "pc": [ - 885 - ] - }, - { - "teal": 760, - "source": 198, - "pc": [ - 886 - ] - }, - { - "teal": 764, - "source": 198, - "pc": [ - 887, - 888, - 889 - ] - }, - { - "teal": 768, - "source": 199, - "pc": [ - 890, - 891 - ] - }, - { - "teal": 769, - "source": 199, - "pc": [ - 892, - 893 - ] - }, - { - "teal": 773, - "source": 200, - "pc": [ - 894, - 895 - ] - }, - { - "teal": 774, - "source": 200, - "pc": [ - 896, - 897 - ] - }, - { - "teal": 775, - "source": 200, - "pc": [ - 898 - ] - }, - { - "teal": 776, - "source": 200, - "pc": [ - 899 - ] - }, - { - "teal": 777, - "source": 198, - "pc": [ - 900 - ] - }, - { - "teal": 782, - "source": 203, - "pc": [ - 901, - 902, - 903 - ] - }, - { - "teal": 783, - "source": 203, - "pc": [ - 904 - ] - }, - { - "teal": 784, - "source": 203, - "pc": [ - 905 - ] - }, - { - "teal": 788, - "source": 203, - "pc": [ - 906, - 907, - 908 - ] - }, - { - "teal": 791, - "source": 203, - "pc": [ - 909 - ] - }, - { - "teal": 792, - "source": 203, - "pc": [ - 910, - 911 - ] - }, - { - "teal": 796, - "source": 204, - "pc": [ - 912, - 913 - ] - }, - { - "teal": 797, - "source": 204, - "pc": [ - 914, - 915 - ] - }, - { - "teal": 798, - "source": 204, - "pc": [ - 916, - 917 - ] - }, - { - "teal": 802, - "source": 205, - "pc": [ - 918, - 919, - 920, - 921, - 922, - 923, - 924, - 925, - 926, - 927, - 928, - 929, - 930, - 931, - 932, - 933, - 934, - 935, - 936, - 937, - 938, - 939, - 940, - 941, - 942, - 943, - 944, - 945, - 946, - 947, - 948, - 949, - 950, - 951, - 952 - ] - }, - { - "teal": 803, - "source": 205, - "pc": [ - 953, - 954 - ] - }, - { - "teal": 804, - "source": 205, - "pc": [ - 955, - 956 - ] - }, - { - "teal": 805, - "source": 205, - "pc": [ - 957, - 958 - ] - }, - { - "teal": 809, - "source": 206, - "pc": [ - 959, - 960 - ] - }, - { - "teal": 810, - "source": 206, - "pc": [ - 961 - ] - }, - { - "teal": 814, - "source": 207, - "pc": [ - 962, - 963 - ] - }, - { - "teal": 815, - "source": 207, - "pc": [ - 964 - ] - }, - { - "teal": 819, - "source": 209, - "pc": [ - 965, - 966 - ] - }, - { - "teal": 820, - "source": 209, - "pc": [ - 967 - ] - }, - { - "teal": 821, - "source": 209, - "pc": [ - 968, - 969 - ] - }, - { - "teal": 822, - "source": 209, - "pc": [ - 970 - ] - }, - { - "teal": 823, - "source": 209, - "pc": [ - 971, - 972 - ] - }, - { - "teal": 824, - "source": 209, - "pc": [ - 973, - 974 - ] - }, - { - "teal": 825, - "source": 209, - "pc": [ - 975, - 976 - ] - }, - { - "teal": 829, - "source": 210, - "pc": [ - 977, - 978 - ] - }, - { - "teal": 830, - "source": 210, - "pc": [ - 979 - ] - }, - { - "teal": 834, - "source": 211, - "pc": [ - 980, - 981 - ] - }, - { - "teal": 835, - "source": 211, - "pc": [ - 982 - ] - }, - { - "teal": 836, - "source": 203, - "pc": [ - 983 - ] - }, - { - "teal": 841, - "source": 214, - "pc": [ - 984, - 985, - 986 - ] - }, - { - "teal": 842, - "source": 214, - "pc": [ - 987 - ] - }, - { - "teal": 843, - "source": 214, - "pc": [ - 988 - ] - }, - { - "teal": 847, - "source": 214, - "pc": [ - 989, - 990, - 991 - ] - }, - { - "teal": 854, - "source": 215, - "pc": [ - 992 - ] - }, - { - "teal": 855, - "source": 215, - "pc": [ - 993, - 994 - ] - }, - { - "teal": 856, - "source": 215, - "pc": [ - 995 - ] - }, - { - "teal": 857, - "source": 215, - "pc": [ - 996 - ] - }, - { - "teal": 860, - "source": 215, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}", - "pc": [ - 997 - ] - }, - { - "teal": 863, - "source": 215, - "pc": [ - 998 - ] - }, - { - "teal": 864, - "source": 216, - "pc": [ - 999, - 1000 - ] - }, - { - "teal": 865, - "source": 216, - "pc": [ - 1001 - ] - }, - { - "teal": 866, - "source": 216, - "pc": [ - 1002 - ] - }, - { - "teal": 869, - "source": 216, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"amount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}", - "pc": [ - 1003 - ] - }, - { - "teal": 882, - "source": 219, - "pc": [ - 1004 - ] - }, - { - "teal": 883, - "source": 219, - "pc": [ - 1005, - 1006 - ] - }, - { - "teal": 884, - "source": 219, - "pc": [ - 1007 - ] - }, - { - "teal": 885, - "source": 219, - "pc": [ - 1008 - ] - }, - { - "teal": 888, - "source": 219, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"appl\"}", - "pc": [ - 1009 - ] - }, - { - "teal": 891, - "source": 219, - "pc": [ - 1010 - ] - }, - { - "teal": 892, - "source": 220, - "pc": [ - 1011, - 1012 - ] - }, - { - "teal": 893, - "source": 220, - "pc": [ - 1013 - ] - }, - { - "teal": 894, - "source": 220, - "pc": [ - 1014 - ] - }, - { - "teal": 897, - "source": 220, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"applicationID\",\"expected\":\"AppID.fromUint64(0)\"}", - "pc": [ - 1015 - ] - }, - { - "teal": 901, - "source": 219, - "pc": [ - 1016 - ] - }, - { - "teal": 902, - "source": 222, - "pc": [ - 1017, - 1018, - 1019 - ] - }, - { - "teal": 903, - "source": 222, - "pc": [ - 1020 - ] - }, - { - "teal": 904, - "source": 222, - "pc": [ - 1021 - ] - }, - { - "teal": 907, - "source": 222, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"applicationArgs\",\"index\":\"0\",\"expected\":\"'foo'\"}", - "pc": [ - 1022 - ] - }, - { - "teal": 910, - "source": 219, - "pc": [ - 1023 - ] - }, - { - "teal": 911, - "source": 221, - "pc": [ - 1024, - 1025, - 1026 - ] - }, - { - "teal": 912, - "source": 224, - "pc": [ - 1027, - 1028 - ] - }, - { - "teal": 913, - "source": 224, - "pc": [ - 1029 - ] - }, - { - "teal": 914, - "source": 219, - "pc": [ - 1030 - ] - }, - { - "teal": 915, - "source": 221, - "pc": [ - 1031, - 1032, - 1033 - ] - }, - { - "teal": 916, - "source": 224, - "pc": [ - 1034, - 1035, - 1036, - 1037, - 1038 - ] - }, - { - "teal": 917, - "source": 224, - "pc": [ - 1039 - ] - }, - { - "teal": 918, - "source": 224, - "pc": [ - 1040 - ] - }, - { - "teal": 921, - "source": 224, - "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txnGroup[0]\"},\"field\":\"applicationArgs 1\",\"condition\":\"includedIn\",\"expected\":\"['bar', 'baz']\"}", - "pc": [ - 1041 - ] - }, - { - "teal": 928, - "source": 229, - "pc": [ - 1042 - ] - }, - { - "teal": 929, - "source": 229, - "pc": [ - 1043, - 1044 - ] - }, - { - "teal": 930, - "source": 229, - "pc": [ - 1045, - 1046 - ] - }, - { - "teal": 931, - "source": 229, - "pc": [ - 1047 - ] - }, - { - "teal": 934, - "source": 229, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}", - "pc": [ - 1048 - ] - }, - { - "teal": 937, - "source": 229, - "pc": [ - 1049 - ] - }, - { - "teal": 938, - "source": 230, - "pc": [ - 1050, - 1051 - ] - }, - { - "teal": 939, - "source": 230, - "pc": [ - 1052, - 1053 - ] - }, - { - "teal": 940, - "source": 230, - "pc": [ - 1054 - ] - }, - { - "teal": 943, - "source": 230, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}", - "pc": [ - 1055 - ] - }, - { - "teal": 950, - "source": 233, - "pc": [ - 1056 - ] - }, - { - "teal": 951, - "source": 233, - "pc": [ - 1057, - 1058 - ] - }, - { - "teal": 952, - "source": 233, - "pc": [ - 1059, - 1060 - ] - }, - { - "teal": 953, - "source": 233, - "pc": [ - 1061 - ] - }, - { - "teal": 956, - "source": 233, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"acfg\"}", - "pc": [ - 1062 - ] - }, - { - "teal": 959, - "source": 233, - "pc": [ - 1063 - ] - }, - { - "teal": 960, - "source": 234, - "pc": [ - 1064, - 1065 - ] - }, - { - "teal": 961, - "source": 234, - "pc": [ - 1066 - ] - }, - { - "teal": 962, - "source": 234, - "pc": [ - 1067 - ] - }, - { - "teal": 965, - "source": 234, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"configAsset\",\"expected\":\"AssetID.fromUint64(0)\"}", - "pc": [ - 1068 - ] - }, - { - "teal": 972, - "source": 237, - "pc": [ - 1069 - ] - }, - { - "teal": 973, - "source": 237, - "pc": [ - 1070, - 1071 - ] - }, - { - "teal": 974, - "source": 237, - "pc": [ - 1072 - ] - }, - { - "teal": 975, - "source": 237, - "pc": [ - 1073 - ] - }, - { - "teal": 978, - "source": 237, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"keyreg\"}", - "pc": [ - 1074 - ] - }, - { - "teal": 981, - "source": 237, - "pc": [ - 1075 - ] - }, - { - "teal": 982, - "source": 238, - "pc": [ - 1076, - 1077 - ] - }, - { - "teal": 983, - "source": 238, - "pc": [ - 1078, - 1079 - ] - }, - { - "teal": 984, - "source": 238, - "pc": [ - 1080 - ] - }, - { - "teal": 987, - "source": 238, - "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"voteFirst\",\"expected\":\"1337\"}", - "pc": [ - 1081 - ] - }, - { - "teal": 988, - "source": 214, - "pc": [ - 1082 - ] - }, - { - "teal": 993, - "source": 242, - "pc": [ - 1083, - 1084, - 1085 - ] - }, - { - "teal": 994, - "source": 242, - "pc": [ - 1086 - ] - }, - { - "teal": 995, - "source": 242, - "pc": [ - 1087 - ] - }, - { - "teal": 999, - "source": 242, - "pc": [ - 1088, - 1089, - 1090 - ] - }, - { - "teal": 1002, - "source": 242, - "pc": [ - 1091 - ] - }, - { - "teal": 1006, - "source": 243, - "pc": [ - 1092 - ] - }, - { - "teal": 1007, - "source": 243, - "pc": [ - 1093, - 1094 - ] - }, - { - "teal": 1011, - "source": 244, - "pc": [ - 1095, - 1096 - ] - }, - { - "teal": 1012, - "source": 244, - "pc": [ - 1097, - 1098 - ] - }, - { - "teal": 1013, - "source": 244, - "pc": [ - 1099 - ] - }, - { - "teal": 1014, - "source": 244, - "pc": [ - 1100, - 1101 - ] - }, - { - "teal": 1018, - "source": 245, - "pc": [ - 1102, - 1103 - ] - }, - { - "teal": 1019, - "source": 245, - "pc": [ - 1104, - 1105, - 1106, - 1107, - 1108, - 1109, - 1110, - 1111 - ] - }, - { - "teal": 1020, - "source": 245, - "pc": [ - 1112 - ] - }, - { - "teal": 1021, - "source": 245, - "pc": [ - 1113 - ] - }, - { - "teal": 1022, - "source": 242, - "pc": [ - 1114 - ] - }, - { - "teal": 1027, - "source": 248, - "pc": [ - 1115 - ] - }, - { - "teal": 1030, - "source": 248, - "pc": [ - 1116, - 1117, - 1118 - ] - }, - { - "teal": 1031, - "source": 248, - "pc": [ - 1119 - ] - }, - { - "teal": 1032, - "source": 248, - "pc": [ - 1120 - ] - }, - { - "teal": 1033, - "source": 248, - "pc": [ - 1121 - ] - }, - { - "teal": 1034, - "source": 248, - "pc": [ - 1122, - 1123, - 1124 - ] - }, - { - "teal": 1035, - "source": 248, - "pc": [ - 1125 - ] - }, - { - "teal": 1036, - "source": 248, - "pc": [ - 1126 - ] - }, - { - "teal": 1037, - "source": 248, - "pc": [ - 1127 - ] - }, - { - "teal": 1038, - "source": 248, - "pc": [ - 1128 - ] - }, - { - "teal": 1039, - "source": 248, - "pc": [ - 1129 - ] - }, - { - "teal": 1040, - "source": 248, - "pc": [ - 1130 - ] - }, - { - "teal": 1044, - "source": 248, - "pc": [ - 1131, - 1132, - 1133 - ] - }, - { - "teal": 1048, - "source": 249, - "pc": [ - 1134, - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218, - 1219, - 1220, - 1221, - 1222, - 1223, - 1224, - 1225, - 1226, - 1227, - 1228, - 1229, - 1230, - 1231, - 1232, - 1233, - 1234, - 1235, - 1236, - 1237, - 1238, - 1239, - 1240, - 1241, - 1242, - 1243, - 1244, - 1245, - 1246, - 1247, - 1248, - 1249, - 1250, - 1251, - 1252, - 1253, - 1254, - 1255, - 1256, - 1257, - 1258, - 1259, - 1260, - 1261, - 1262, - 1263, - 1264, - 1265, - 1266, - 1267, - 1268, - 1269, - 1270, - 1271, - 1272, - 1273, - 1274, - 1275, - 1276, - 1277, - 1278, - 1279, - 1280, - 1281, - 1282, - 1283, - 1284, - 1285, - 1286, - 1287, - 1288, - 1289, - 1290, - 1291, - 1292, - 1293, - 1294, - 1295, - 1296, - 1297, - 1298, - 1299, - 1300, - 1301, - 1302, - 1303, - 1304, - 1305, - 1306, - 1307, - 1308, - 1309, - 1310, - 1311, - 1312, - 1313, - 1314, - 1315, - 1316, - 1317, - 1318, - 1319, - 1320, - 1321, - 1322, - 1323, - 1324, - 1325, - 1326, - 1327, - 1328, - 1329, - 1330, - 1331, - 1332, - 1333, - 1334, - 1335, - 1336, - 1337, - 1338, - 1339, - 1340, - 1341, - 1342, - 1343, - 1344, - 1345, - 1346, - 1347, - 1348, - 1349, - 1350, - 1351, - 1352, - 1353, - 1354, - 1355, - 1356, - 1357, - 1358, - 1359, - 1360, - 1361, - 1362, - 1363, - 1364, - 1365, - 1366, - 1367, - 1368, - 1369, - 1370, - 1371, - 1372, - 1373, - 1374, - 1375, - 1376, - 1377, - 1378, - 1379, - 1380, - 1381, - 1382, - 1383, - 1384, - 1385, - 1386, - 1387, - 1388, - 1389, - 1390, - 1391, - 1392, - 1393, - 1394, - 1395, - 1396, - 1397, - 1398, - 1399, - 1400, - 1401, - 1402, - 1403, - 1404, - 1405, - 1406, - 1407, - 1408, - 1409, - 1410, - 1411, - 1412, - 1413, - 1414, - 1415, - 1416, - 1417, - 1418, - 1419, - 1420, - 1421, - 1422, - 1423, - 1424, - 1425, - 1426, - 1427, - 1428, - 1429, - 1430, - 1431, - 1432, - 1433, - 1434, - 1435, - 1436, - 1437, - 1438, - 1439, - 1440, - 1441, - 1442, - 1443, - 1444, - 1445, - 1446, - 1447, - 1448, - 1449, - 1450, - 1451, - 1452, - 1453, - 1454, - 1455, - 1456, - 1457, - 1458, - 1459, - 1460, - 1461, - 1462, - 1463, - 1464, - 1465, - 1466, - 1467, - 1468, - 1469, - 1470, - 1471, - 1472, - 1473, - 1474, - 1475, - 1476, - 1477, - 1478, - 1479, - 1480, - 1481, - 1482, - 1483, - 1484, - 1485, - 1486, - 1487, - 1488, - 1489, - 1490, - 1491, - 1492, - 1493, - 1494, - 1495, - 1496, - 1497, - 1498, - 1499, - 1500, - 1501, - 1502, - 1503, - 1504, - 1505, - 1506, - 1507, - 1508, - 1509, - 1510, - 1511, - 1512, - 1513, - 1514, - 1515, - 1516, - 1517, - 1518, - 1519, - 1520, - 1521, - 1522, - 1523, - 1524, - 1525, - 1526, - 1527, - 1528, - 1529, - 1530, - 1531, - 1532, - 1533, - 1534, - 1535, - 1536, - 1537, - 1538, - 1539, - 1540, - 1541, - 1542, - 1543, - 1544, - 1545, - 1546, - 1547, - 1548, - 1549, - 1550, - 1551, - 1552, - 1553, - 1554, - 1555, - 1556, - 1557, - 1558, - 1559, - 1560, - 1561, - 1562, - 1563, - 1564, - 1565, - 1566, - 1567, - 1568, - 1569, - 1570, - 1571, - 1572, - 1573, - 1574, - 1575, - 1576, - 1577, - 1578, - 1579, - 1580, - 1581, - 1582, - 1583, - 1584, - 1585, - 1586, - 1587, - 1588, - 1589, - 1590, - 1591, - 1592, - 1593, - 1594, - 1595, - 1596, - 1597, - 1598, - 1599, - 1600, - 1601, - 1602, - 1603, - 1604, - 1605, - 1606, - 1607, - 1608, - 1609, - 1610, - 1611, - 1612, - 1613, - 1614, - 1615, - 1616, - 1617, - 1618, - 1619, - 1620, - 1621, - 1622, - 1623, - 1624, - 1625, - 1626, - 1627, - 1628, - 1629, - 1630, - 1631, - 1632, - 1633, - 1634, - 1635, - 1636, - 1637, - 1638, - 1639, - 1640, - 1641, - 1642, - 1643, - 1644, - 1645, - 1646, - 1647, - 1648, - 1649, - 1650, - 1651, - 1652, - 1653, - 1654, - 1655, - 1656, - 1657, - 1658, - 1659, - 1660, - 1661, - 1662, - 1663, - 1664, - 1665, - 1666, - 1667, - 1668, - 1669, - 1670, - 1671, - 1672, - 1673, - 1674, - 1675, - 1676, - 1677, - 1678, - 1679, - 1680, - 1681, - 1682, - 1683, - 1684, - 1685, - 1686, - 1687, - 1688, - 1689, - 1690, - 1691, - 1692, - 1693, - 1694, - 1695, - 1696, - 1697, - 1698, - 1699, - 1700, - 1701, - 1702, - 1703, - 1704, - 1705, - 1706, - 1707, - 1708, - 1709, - 1710, - 1711, - 1712, - 1713, - 1714, - 1715, - 1716, - 1717, - 1718, - 1719, - 1720, - 1721, - 1722, - 1723, - 1724, - 1725, - 1726, - 1727, - 1728, - 1729, - 1730, - 1731, - 1732, - 1733, - 1734, - 1735, - 1736, - 1737, - 1738, - 1739, - 1740, - 1741, - 1742, - 1743, - 1744, - 1745, - 1746, - 1747, - 1748, - 1749, - 1750, - 1751, - 1752, - 1753, - 1754, - 1755, - 1756, - 1757, - 1758, - 1759, - 1760, - 1761, - 1762, - 1763, - 1764, - 1765, - 1766, - 1767, - 1768, - 1769, - 1770, - 1771, - 1772, - 1773, - 1774, - 1775, - 1776, - 1777, - 1778, - 1779, - 1780, - 1781, - 1782, - 1783, - 1784, - 1785, - 1786, - 1787, - 1788, - 1789, - 1790, - 1791, - 1792, - 1793, - 1794, - 1795, - 1796, - 1797, - 1798, - 1799, - 1800, - 1801, - 1802, - 1803, - 1804, - 1805, - 1806, - 1807, - 1808, - 1809, - 1810, - 1811, - 1812, - 1813, - 1814, - 1815, - 1816, - 1817, - 1818, - 1819, - 1820, - 1821, - 1822, - 1823, - 1824, - 1825, - 1826, - 1827, - 1828, - 1829, - 1830, - 1831, - 1832, - 1833, - 1834, - 1835, - 1836, - 1837, - 1838, - 1839, - 1840, - 1841, - 1842, - 1843, - 1844, - 1845, - 1846, - 1847, - 1848, - 1849, - 1850, - 1851, - 1852, - 1853, - 1854, - 1855, - 1856, - 1857, - 1858, - 1859, - 1860, - 1861, - 1862, - 1863, - 1864, - 1865, - 1866, - 1867, - 1868, - 1869, - 1870, - 1871, - 1872, - 1873, - 1874, - 1875, - 1876, - 1877, - 1878, - 1879, - 1880, - 1881, - 1882, - 1883, - 1884, - 1885, - 1886, - 1887, - 1888, - 1889, - 1890, - 1891, - 1892, - 1893, - 1894, - 1895, - 1896, - 1897, - 1898, - 1899, - 1900, - 1901, - 1902, - 1903, - 1904, - 1905, - 1906, - 1907, - 1908, - 1909, - 1910, - 1911, - 1912, - 1913, - 1914, - 1915, - 1916, - 1917, - 1918, - 1919, - 1920, - 1921, - 1922, - 1923, - 1924, - 1925, - 1926, - 1927, - 1928, - 1929, - 1930, - 1931, - 1932, - 1933, - 1934, - 1935, - 1936, - 1937, - 1938, - 1939, - 1940, - 1941, - 1942, - 1943, - 1944, - 1945, - 1946, - 1947, - 1948, - 1949, - 1950, - 1951, - 1952, - 1953, - 1954, - 1955, - 1956, - 1957, - 1958, - 1959, - 1960, - 1961, - 1962, - 1963, - 1964, - 1965, - 1966, - 1967, - 1968, - 1969, - 1970, - 1971, - 1972, - 1973, - 1974, - 1975, - 1976, - 1977, - 1978, - 1979, - 1980, - 1981, - 1982, - 1983, - 1984, - 1985, - 1986, - 1987, - 1988, - 1989, - 1990, - 1991, - 1992, - 1993, - 1994, - 1995, - 1996, - 1997, - 1998, - 1999, - 2000, - 2001, - 2002, - 2003, - 2004, - 2005, - 2006, - 2007, - 2008, - 2009, - 2010, - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021, - 2022, - 2023, - 2024, - 2025, - 2026, - 2027, - 2028, - 2029, - 2030, - 2031, - 2032, - 2033, - 2034, - 2035, - 2036, - 2037, - 2038, - 2039, - 2040, - 2041, - 2042, - 2043, - 2044, - 2045, - 2046, - 2047, - 2048, - 2049, - 2050, - 2051, - 2052, - 2053, - 2054, - 2055, - 2056, - 2057, - 2058, - 2059, - 2060, - 2061, - 2062, - 2063, - 2064, - 2065, - 2066, - 2067, - 2068, - 2069, - 2070, - 2071, - 2072, - 2073, - 2074, - 2075, - 2076, - 2077, - 2078, - 2079, - 2080, - 2081, - 2082, - 2083, - 2084, - 2085, - 2086, - 2087, - 2088, - 2089, - 2090, - 2091, - 2092, - 2093, - 2094, - 2095, - 2096, - 2097, - 2098, - 2099, - 2100, - 2101, - 2102, - 2103, - 2104, - 2105, - 2106, - 2107, - 2108, - 2109, - 2110, - 2111, - 2112, - 2113, - 2114, - 2115, - 2116, - 2117, - 2118, - 2119, - 2120, - 2121, - 2122, - 2123, - 2124, - 2125, - 2126, - 2127, - 2128, - 2129, - 2130, - 2131, - 2132, - 2133, - 2134, - 2135, - 2136, - 2137, - 2138, - 2139, - 2140, - 2141, - 2142, - 2143, - 2144, - 2145, - 2146, - 2147, - 2148, - 2149, - 2150, - 2151, - 2152, - 2153, - 2154, - 2155, - 2156, - 2157, - 2158, - 2159, - 2160 - ] - }, - { - "teal": 1049, - "source": 248, - "pc": [ - 2161 - ] - }, - { - "teal": 1054, - "source": 252, - "pc": [ - 2162, - 2163, - 2164 - ] - }, - { - "teal": 1055, - "source": 252, - "pc": [ - 2165 - ] - }, - { - "teal": 1056, - "source": 252, - "pc": [ - 2166 - ] - }, - { - "teal": 1060, - "source": 252, - "pc": [ - 2167, - 2168, - 2169 - ] - }, - { - "teal": 1064, - "source": 253, - "pc": [ - 2170, - 2171, - 2172, - 2173, - 2174, - 2175, - 2176 - ] - }, - { - "teal": 1065, - "source": 253, - "pc": [ - 2177, - 2178, - 2179 - ] - }, - { - "teal": 1066, - "source": 253, - "pc": [ - 2180 - ] - }, - { - "teal": 1067, - "source": 252, - "pc": [ - 2181 - ] - }, - { - "teal": 1071, - "source": 256, - "pc": [ - 2182, - 2183, - 2184 - ] - }, - { - "teal": 1075, - "source": 257, - "pc": [ - 2185, - 2186 - ] - }, - { - "teal": 1076, - "source": 256, - "pc": [ - 2187 - ] - }, - { - "teal": 1081, - "source": 260, - "pc": [ - 2188 - ] - }, - { - "teal": 1084, - "source": 260, - "pc": [ - 2189, - 2190, - 2191 - ] - }, - { - "teal": 1085, - "source": 260, - "pc": [ - 2192 - ] - }, - { - "teal": 1088, - "source": 260, - "pc": [ - 2193, - 2194, - 2195 - ] - }, - { - "teal": 1089, - "source": 260, - "pc": [ - 2196 - ] - }, - { - "teal": 1092, - "source": 260, - "pc": [ - 2197, - 2198, - 2199 - ] - }, - { - "teal": 1093, - "source": 260, - "pc": [ - 2200 - ] - }, - { - "teal": 1094, - "source": 260, - "pc": [ - 2201 - ] - }, - { - "teal": 1095, - "source": 260, - "pc": [ - 2202 - ] - }, - { - "teal": 1096, - "source": 260, - "pc": [ - 2203 - ] - }, - { - "teal": 1097, - "source": 260, - "pc": [ - 2204 - ] - }, - { - "teal": 1101, - "source": 260, - "pc": [ - 2205, - 2206, - 2207 - ] - }, - { - "teal": 1105, - "source": 261, - "pc": [ - 2208, - 2209 - ] - }, - { - "teal": 1106, - "source": 261, - "pc": [ - 2210, - 2211 - ] - }, - { - "teal": 1107, - "source": 261, - "pc": [ - 2212 - ] - }, - { - "teal": 1108, - "source": 260, - "pc": [ - 2213 - ] - }, - { - "teal": 1113, - "source": 264, - "pc": [ - 2214, - 2215, - 2216 - ] - }, - { - "teal": 1114, - "source": 264, - "pc": [ - 2217 - ] - }, - { - "teal": 1115, - "source": 264, - "pc": [ - 2218 - ] - }, - { - "teal": 1119, - "source": 264, - "pc": [ - 2219, - 2220, - 2221 - ] - }, - { - "teal": 1123, - "source": 265, - "pc": [ - 2222 - ] - }, - { - "teal": 1124, - "source": 265, - "pc": [ - 2223 - ] - }, - { - "teal": 1125, - "source": 265, - "pc": [ - 2224, - 2225, - 2226 - ] - }, - { - "teal": 1126, - "source": 265, - "pc": [ - 2227, - 2228 - ] - }, - { - "teal": 1127, - "source": 265, - "pc": [ - 2229 - ] - }, - { - "teal": 1128, - "source": 265, - "pc": [ - 2230 - ] - }, - { - "teal": 1129, - "source": 264, - "pc": [ - 2231 - ] - }, - { - "teal": 1134, - "source": 268, - "pc": [ - 2232, - 2233, - 2234 - ] - }, - { - "teal": 1135, - "source": 268, - "pc": [ - 2235 - ] - }, - { - "teal": 1136, - "source": 268, - "pc": [ - 2236 - ] - }, - { - "teal": 1140, - "source": 268, - "pc": [ - 2237, - 2238, - 2239 - ] - }, - { - "teal": 1144, - "source": 269, - "pc": [ - 2240, - 2241, - 2242 - ] - }, - { - "teal": 1145, - "source": 269, - "pc": [ - 2243 - ] - }, - { - "teal": 1146, - "source": 268, - "pc": [ - 2244 - ] - }, - { - "teal": 1151, - "source": 272, - "pc": [ - 2245 - ] - }, - { - "teal": 1154, - "source": 272, - "pc": [ - 2246, - 2247, - 2248 - ] - }, - { - "teal": 1155, - "source": 272, - "pc": [ - 2249 - ] - }, - { - "teal": 1156, - "source": 272, - "pc": [ - 2250 - ] - }, - { - "teal": 1157, - "source": 272, - "pc": [ - 2251, - 2252, - 2253 - ] - }, - { - "teal": 1158, - "source": 272, - "pc": [ - 2254 - ] - }, - { - "teal": 1161, - "source": 272, - "errorMessage": "uintNWithUnderscore return value overflowed 256 bits", - "pc": [ - 2255 - ] - }, - { - "teal": 1162, - "source": 272, - "pc": [ - 2256, - 2257, - 2258, - 2259, - 2260, - 2261, - 2262, - 2263, - 2264, - 2265, - 2266, - 2267, - 2268, - 2269, - 2270, - 2271, - 2272, - 2273, - 2274, - 2275, - 2276, - 2277, - 2278, - 2279, - 2280, - 2281, - 2282, - 2283, - 2284, - 2285, - 2286, - 2287, - 2288, - 2289 - ] - }, - { - "teal": 1163, - "source": 272, - "pc": [ - 2290 - ] - }, - { - "teal": 1164, - "source": 272, - "pc": [ - 2291 - ] - }, - { - "teal": 1165, - "source": 272, - "pc": [ - 2292 - ] - }, - { - "teal": 1166, - "source": 272, - "pc": [ - 2293 - ] - }, - { - "teal": 1167, - "source": 272, - "pc": [ - 2294, - 2295 - ] - }, - { - "teal": 1168, - "source": 272, - "pc": [ - 2296 - ] - }, - { - "teal": 1169, - "source": 272, - "pc": [ - 2297 - ] - }, - { - "teal": 1170, - "source": 272, - "pc": [ - 2298 - ] - }, - { - "teal": 1171, - "source": 272, - "pc": [ - 2299 - ] - }, - { - "teal": 1172, - "source": 272, - "pc": [ - 2300 - ] - }, - { - "teal": 1173, - "source": 272, - "pc": [ - 2301 - ] - }, - { - "teal": 1174, - "source": 272, - "pc": [ - 2302 - ] - }, - { - "teal": 1178, - "source": 272, - "pc": [ - 2303, - 2304, - 2305 - ] - }, - { - "teal": 1182, - "source": 273, - "pc": [ - 2306, - 2307, - 2308, - 2309, - 2310, - 2311, - 2312, - 2313, - 2314, - 2315, - 2316, - 2317, - 2318, - 2319, - 2320, - 2321, - 2322, - 2323, - 2324, - 2325, - 2326, - 2327, - 2328, - 2329, - 2330, - 2331, - 2332, - 2333, - 2334, - 2335, - 2336, - 2337, - 2338, - 2339 - ] - }, - { - "teal": 1183, - "source": 272, - "pc": [ - 2340 - ] - }, - { - "teal": 1188, - "source": 276, - "pc": [ - 2341, - 2342, - 2343 - ] - }, - { - "teal": 1189, - "source": 276, - "pc": [ - 2344 - ] - }, - { - "teal": 1190, - "source": 276, - "pc": [ - 2345 - ] - }, - { - "teal": 1194, - "source": 276, - "pc": [ - 2346, - 2347, - 2348 - ] - }, - { - "teal": 1197, - "source": 276, - "pc": [ - 2349 - ] - }, - { - "teal": 1201, - "source": 277, - "pc": [ - 2350 - ] - }, - { - "teal": 1202, - "source": 277, - "pc": [ - 2351 - ] - }, - { - "teal": 1203, - "source": 277, - "pc": [ - 2352, - 2353 - ] - }, - { - "teal": 1204, - "source": 277, - "pc": [ - 2354 - ] - }, - { - "teal": 1205, - "source": 277, - "pc": [ - 2355, - 2356 - ] - }, - { - "teal": 1206, - "source": 277, - "pc": [ - 2357 - ] - }, - { - "teal": 1207, - "source": 277, - "pc": [ - 2358 - ] - }, - { - "teal": 1208, - "source": 277, - "pc": [ - 2359, - 2360 - ] - }, - { - "teal": 1209, - "source": 277, - "pc": [ - 2361, - 2362 - ] - }, - { - "teal": 1210, - "source": 277, - "pc": [ - 2363, - 2364 - ] - }, - { - "teal": 1211, - "source": 277, - "pc": [ - 2365, - 2366 - ] - }, - { - "teal": 1212, - "source": 277, - "pc": [ - 2367 - ] - }, - { - "teal": 1216, - "source": 278, - "pc": [ - 2368 - ] - }, - { - "teal": 1217, - "source": 278, - "pc": [ - 2369, - 2370 - ] - }, - { - "teal": 1222, - "source": 278, - "pc": [ - 2371, - 2372 - ] - }, - { - "teal": 1223, - "source": 278, - "pc": [ - 2373, - 2374 - ] - }, - { - "teal": 1224, - "source": 278, - "pc": [ - 2375 - ] - }, - { - "teal": 1225, - "source": 278, - "pc": [ - 2376, - 2377, - 2378 - ] - }, - { - "teal": 1229, - "source": 279, - "pc": [ - 2379, - 2380 - ] - }, - { - "teal": 1230, - "source": 279, - "pc": [ - 2381 - ] - }, - { - "teal": 1235, - "source": 278, - "pc": [ - 2382, - 2383 - ] - }, - { - "teal": 1236, - "source": 278, - "pc": [ - 2384 - ] - }, - { - "teal": 1237, - "source": 278, - "pc": [ - 2385 - ] - }, - { - "teal": 1238, - "source": 278, - "pc": [ - 2386, - 2387 - ] - }, - { - "teal": 1239, - "source": 278, - "pc": [ - 2388, - 2389, - 2390 - ] - }, - { - "teal": 1242, - "source": 276, - "pc": [ - 2391 - ] - }, - { - "teal": 1247, - "source": 283, - "pc": [ - 2392 - ] - }, - { - "teal": 1250, - "source": 283, - "pc": [ - 2393, - 2394, - 2395 - ] - }, - { - "teal": 1251, - "source": 283, - "pc": [ - 2396 - ] - }, - { - "teal": 1252, - "source": 283, - "pc": [ - 2397 - ] - }, - { - "teal": 1253, - "source": 283, - "pc": [ - 2398 - ] - }, - { - "teal": 1254, - "source": 283, - "pc": [ - 2399, - 2400, - 2401 - ] - }, - { - "teal": 1255, - "source": 283, - "pc": [ - 2402 - ] - }, - { - "teal": 1256, - "source": 283, - "pc": [ - 2403 - ] - }, - { - "teal": 1257, - "source": 283, - "pc": [ - 2404 - ] - }, - { - "teal": 1258, - "source": 283, - "pc": [ - 2405 - ] - }, - { - "teal": 1259, - "source": 283, - "pc": [ - 2406 - ] - }, - { - "teal": 1260, - "source": 283, - "pc": [ - 2407 - ] - }, - { - "teal": 1264, - "source": 283, - "pc": [ - 2408, - 2409, - 2410 - ] - }, - { - "teal": 1267, - "source": 283, - "pc": [ - 2411 - ] - }, - { - "teal": 1271, - "source": 284, - "pc": [ - 2412, - 2413, - 2414, - 2415 - ] - }, - { - "teal": 1272, - "source": 284, - "pc": [ - 2416, - 2417 - ] - }, - { - "teal": 1277, - "source": 286, - "pc": [ - 2418, - 2419 - ] - }, - { - "teal": 1278, - "source": 286, - "pc": [ - 2420, - 2421 - ] - }, - { - "teal": 1279, - "source": 286, - "pc": [ - 2422 - ] - }, - { - "teal": 1280, - "source": 286, - "pc": [ - 2423, - 2424, - 2425 - ] - }, - { - "teal": 1285, - "source": 287, - "pc": [ - 2426, - 2427, - 2428, - 2429, - 2430, - 2431, - 2432, - 2433, - 2434, - 2435 - ] - }, - { - "teal": 1286, - "source": 287, - "pc": [ - 2436, - 2437 - ] - }, - { - "teal": 1291, - "source": 290, - "pc": [ - 2438, - 2439, - 2440, - 2441, - 2442 - ] - }, - { - "teal": 1292, - "source": 290, - "pc": [ - 2443 - ] - }, - { - "teal": 1293, - "source": 290, - "pc": [ - 2444, - 2445 - ] - }, - { - "teal": 1296, - "source": 283, - "pc": [ - 2446, - 2447 - ] - }, - { - "teal": 1297, - "source": 283, - "pc": [ - 2448 - ] - }, - { - "teal": 1302, - "source": 293, - "pc": [ - 2449 - ] - }, - { - "teal": 1305, - "source": 293, - "pc": [ - 2450, - 2451, - 2452 - ] - }, - { - "teal": 1306, - "source": 293, - "pc": [ - 2453 - ] - }, - { - "teal": 1307, - "source": 293, - "pc": [ - 2454 - ] - }, - { - "teal": 1308, - "source": 293, - "pc": [ - 2455 - ] - }, - { - "teal": 1309, - "source": 293, - "pc": [ - 2456 - ] - }, - { - "teal": 1310, - "source": 293, - "pc": [ - 2457 - ] - }, - { - "teal": 1314, - "source": 293, - "pc": [ - 2458, - 2459, - 2460 - ] - }, - { - "teal": 1317, - "source": 293, - "pc": [ - 2461 - ] - }, - { - "teal": 1321, - "source": 294, - "pc": [ - 2462, - 2463 - ] - }, - { - "teal": 1322, - "source": 294, - "pc": [ - 2464, - 2465 - ] - }, - { - "teal": 1326, - "source": 296, - "pc": [ - 2466, - 2467 - ] - }, - { - "teal": 1327, - "source": 296, - "pc": [ - 2468 - ] - }, - { - "teal": 1328, - "source": 296, - "pc": [ - 2469, - 2470 - ] - }, - { - "teal": 1329, - "source": 296, - "pc": [ - 2471 - ] - }, - { - "teal": 1330, - "source": 296, - "pc": [ - 2472, - 2473 - ] - }, - { - "teal": 1331, - "source": 296, - "pc": [ - 2474 - ] - }, - { - "teal": 1332, - "source": 296, - "pc": [ - 2475 - ] - }, - { - "teal": 1333, - "source": 296, - "pc": [ - 2476, - 2477 - ] - }, - { - "teal": 1334, - "source": 296, - "pc": [ - 2478, - 2479 - ] - }, - { - "teal": 1337, - "source": 293, - "pc": [ - 2480, - 2481 - ] - }, - { - "teal": 1338, - "source": 293, - "pc": [ - 2482 - ] - }, - { - "teal": 1343, - "source": 299, - "pc": [ - 2483 - ] - }, - { - "teal": 1346, - "source": 299, - "pc": [ - 2484, - 2485, - 2486 - ] - }, - { - "teal": 1347, - "source": 299, - "pc": [ - 2487 - ] - }, - { - "teal": 1348, - "source": 299, - "pc": [ - 2488 - ] - }, - { - "teal": 1349, - "source": 299, - "pc": [ - 2489 - ] - }, - { - "teal": 1350, - "source": 299, - "pc": [ - 2490 - ] - }, - { - "teal": 1351, - "source": 299, - "pc": [ - 2491 - ] - }, - { - "teal": 1355, - "source": 299, - "pc": [ - 2492, - 2493, - 2494 - ] - }, - { - "teal": 1359, - "source": 300, - "pc": [ - 2495, - 2496 - ] - }, - { - "teal": 1360, - "source": 300, - "pc": [ - 2497 - ] - }, - { - "teal": 1361, - "source": 300, - "pc": [ - 2498 - ] - }, - { - "teal": 1365, - "source": 302, - "pc": [ - 2499, - 2500 - ] - }, - { - "teal": 1366, - "source": 302, - "pc": [ - 2501 - ] - }, - { - "teal": 1367, - "source": 302, - "pc": [ - 2502 - ] - }, - { - "teal": 1368, - "source": 302, - "pc": [ - 2503, - 2504 - ] - }, - { - "teal": 1369, - "source": 302, - "pc": [ - 2505 - ] - }, - { - "teal": 1370, - "source": 302, - "pc": [ - 2506, - 2507 - ] - }, - { - "teal": 1371, - "source": 299, - "pc": [ - 2508 - ] - }, - { - "teal": 1376, - "source": 305, - "pc": [ - 2509 - ] - }, - { - "teal": 1379, - "source": 305, - "pc": [ - 2510, - 2511, - 2512 - ] - }, - { - "teal": 1380, - "source": 305, - "pc": [ - 2513 - ] - }, - { - "teal": 1381, - "source": 305, - "pc": [ - 2514 - ] - }, - { - "teal": 1382, - "source": 305, - "pc": [ - 2515 - ] - }, - { - "teal": 1383, - "source": 305, - "pc": [ - 2516 - ] - }, - { - "teal": 1384, - "source": 305, - "pc": [ - 2517 - ] - }, - { - "teal": 1388, - "source": 305, - "pc": [ - 2518, - 2519, - 2520 - ] - }, - { - "teal": 1391, - "source": 305, - "pc": [ - 2521 - ] - }, - { - "teal": 1395, - "source": 306, - "pc": [ - 2522 - ] - }, - { - "teal": 1396, - "source": 306, - "pc": [ - 2523, - 2524 - ] - }, - { - "teal": 1400, - "source": 308, - "pc": [ - 2525, - 2526 - ] - }, - { - "teal": 1401, - "source": 308, - "pc": [ - 2527 - ] - }, - { - "teal": 1402, - "source": 308, - "pc": [ - 2528 - ] - }, - { - "teal": 1403, - "source": 308, - "pc": [ - 2529 - ] - }, - { - "teal": 1404, - "source": 308, - "pc": [ - 2530, - 2531 - ] - }, - { - "teal": 1405, - "source": 308, - "pc": [ - 2532, - 2533 - ] - }, - { - "teal": 1406, - "source": 308, - "pc": [ - 2534, - 2535 - ] - }, - { - "teal": 1409, - "source": 305, - "pc": [ - 2536, - 2537 - ] - }, - { - "teal": 1410, - "source": 305, - "pc": [ - 2538 - ] - }, - { - "teal": 1415, - "source": 311, - "pc": [ - 2539 - ] - }, - { - "teal": 1418, - "source": 311, - "pc": [ - 2540, - 2541, - 2542 - ] - }, - { - "teal": 1419, - "source": 311, - "pc": [ - 2543 - ] - }, - { - "teal": 1420, - "source": 311, - "pc": [ - 2544 - ] - }, - { - "teal": 1421, - "source": 311, - "pc": [ - 2545 - ] - }, - { - "teal": 1422, - "source": 311, - "pc": [ - 2546 - ] - }, - { - "teal": 1423, - "source": 311, - "pc": [ - 2547 - ] - }, - { - "teal": 1427, - "source": 311, - "pc": [ - 2548, - 2549, - 2550 - ] - }, - { - "teal": 1430, - "source": 311, - "pc": [ - 2551 - ] - }, - { - "teal": 1434, - "source": 312, - "pc": [ - 2552, - 2553 - ] - }, - { - "teal": 1435, - "source": 312, - "pc": [ - 2554, - 2555 - ] - }, - { - "teal": 1439, - "source": 314, - "pc": [ - 2556, - 2557 - ] - }, - { - "teal": 1440, - "source": 314, - "pc": [ - 2558 - ] - }, - { - "teal": 1441, - "source": 314, - "pc": [ - 2559, - 2560 - ] - }, - { - "teal": 1442, - "source": 314, - "pc": [ - 2561, - 2562, - 2563 - ] - }, - { - "teal": 1443, - "source": 314, - "pc": [ - 2564 - ] - }, - { - "teal": 1444, - "source": 314, - "pc": [ - 2565, - 2566 - ] - }, - { - "teal": 1445, - "source": 314, - "pc": [ - 2567 - ] - }, - { - "teal": 1446, - "source": 314, - "pc": [ - 2568 - ] - }, - { - "teal": 1447, - "source": 314, - "pc": [ - 2569, - 2570 - ] - }, - { - "teal": 1448, - "source": 314, - "pc": [ - 2571 - ] - }, - { - "teal": 1449, - "source": 314, - "pc": [ - 2572 - ] - }, - { - "teal": 1450, - "source": 314, - "pc": [ - 2573, - 2574 - ] - }, - { - "teal": 1451, - "source": 314, - "pc": [ - 2575, - 2576 - ] - }, - { - "teal": 1454, - "source": 311, - "pc": [ - 2577, - 2578 - ] - }, - { - "teal": 1455, - "source": 311, - "pc": [ - 2579 - ] - }, - { - "teal": 1460, - "source": 317, - "pc": [ - 2580 - ] - }, - { - "teal": 1463, - "source": 317, - "pc": [ - 2581, - 2582, - 2583 - ] - }, - { - "teal": 1464, - "source": 317, - "pc": [ - 2584 - ] - }, - { - "teal": 1465, - "source": 317, - "pc": [ - 2585 - ] - }, - { - "teal": 1466, - "source": 317, - "pc": [ - 2586 - ] - }, - { - "teal": 1467, - "source": 317, - "pc": [ - 2587 - ] - }, - { - "teal": 1468, - "source": 317, - "pc": [ - 2588 - ] - }, - { - "teal": 1472, - "source": 317, - "pc": [ - 2589, - 2590, - 2591 - ] - }, - { - "teal": 1476, - "source": 318, - "pc": [ - 2592, - 2593 - ] - }, - { - "teal": 1477, - "source": 318, - "pc": [ - 2594, - 2595 - ] - }, - { - "teal": 1478, - "source": 318, - "pc": [ - 2596 - ] - }, - { - "teal": 1482, - "source": 320, - "pc": [ - 2597, - 2598 - ] - }, - { - "teal": 1483, - "source": 320, - "pc": [ - 2599 - ] - }, - { - "teal": 1484, - "source": 320, - "pc": [ - 2600 - ] - }, - { - "teal": 1485, - "source": 320, - "pc": [ - 2601, - 2602 - ] - }, - { - "teal": 1486, - "source": 320, - "pc": [ - 2603 - ] - }, - { - "teal": 1487, - "source": 320, - "pc": [ - 2604, - 2605, - 2606 - ] - }, - { - "teal": 1488, - "source": 320, - "pc": [ - 2607 - ] - }, - { - "teal": 1489, - "source": 320, - "pc": [ - 2608, - 2609 - ] - }, - { - "teal": 1490, - "source": 320, - "pc": [ - 2610 - ] - }, - { - "teal": 1491, - "source": 320, - "pc": [ - 2611 - ] - }, - { - "teal": 1492, - "source": 320, - "pc": [ - 2612, - 2613 - ] - }, - { - "teal": 1493, - "source": 320, - "pc": [ - 2614 - ] - }, - { - "teal": 1494, - "source": 320, - "pc": [ - 2615 - ] - }, - { - "teal": 1495, - "source": 320, - "pc": [ - 2616, - 2617 - ] - }, - { - "teal": 1496, - "source": 320, - "pc": [ - 2618 - ] - }, - { - "teal": 1497, - "source": 320, - "pc": [ - 2619 - ] - }, - { - "teal": 1498, - "source": 320, - "pc": [ - 2620, - 2621 - ] - }, - { - "teal": 1499, - "source": 317, - "pc": [ - 2622 - ] - }, - { - "teal": 1504, - "source": 323, - "pc": [ - 2623, - 2624, - 2625 - ] - }, - { - "teal": 1505, - "source": 323, - "pc": [ - 2626 - ] - }, - { - "teal": 1506, - "source": 323, - "pc": [ - 2627 - ] - }, - { - "teal": 1510, - "source": 323, - "pc": [ - 2628, - 2629, - 2630 - ] - }, - { - "teal": 1514, - "source": 324, - "pc": [ - 2631 - ] - }, - { - "teal": 1515, - "source": 324, - "pc": [ - 2632 - ] - }, - { - "teal": 1516, - "source": 324, - "pc": [ - 2633 - ] - }, - { - "teal": 1517, - "source": 324, - "pc": [ - 2634 - ] - }, - { - "teal": 1521, - "source": 325, - "pc": [ - 2635, - 2636 - ] - }, - { - "teal": 1522, - "source": 325, - "pc": [ - 2637 - ] - }, - { - "teal": 1523, - "source": 325, - "pc": [ - 2638 - ] - }, - { - "teal": 1524, - "source": 325, - "pc": [ - 2639 - ] - }, - { - "teal": 1528, - "source": 326, - "pc": [ - 2640, - 2641 - ] - }, - { - "teal": 1529, - "source": 326, - "pc": [ - 2642 - ] - }, - { - "teal": 1530, - "source": 326, - "pc": [ - 2643 - ] - }, - { - "teal": 1531, - "source": 326, - "pc": [ - 2644 - ] - }, - { - "teal": 1532, - "source": 323, - "pc": [ - 2645 - ] - }, - { - "teal": 1537, - "source": 329, - "pc": [ - 2646, - 2647, - 2648 - ] - }, - { - "teal": 1538, - "source": 329, - "pc": [ - 2649 - ] - }, - { - "teal": 1539, - "source": 329, - "pc": [ - 2650 - ] - }, - { - "teal": 1543, - "source": 329, - "pc": [ - 2651, - 2652, - 2653 - ] - }, - { - "teal": 1547, - "source": 330, - "pc": [ - 2654 - ] - }, - { - "teal": 1550, - "source": 330, - "errorMessage": "this is false", - "pc": [ - 2655 - ] - }, - { - "teal": 1551, - "source": 329, - "pc": [ - 2656 - ] - }, - { - "teal": 1556, - "source": 333, - "pc": [ - 2657, - 2658, - 2659 - ] - }, - { - "teal": 1557, - "source": 333, - "pc": [ - 2660 - ] - }, - { - "teal": 1558, - "source": 333, - "pc": [ - 2661 - ] - }, - { - "teal": 1562, - "source": 333, - "pc": [ - 2662, - 2663, - 2664 - ] - }, - { - "teal": 1566, - "source": 334, - "pc": [ - 2665, - 2666 - ] - }, - { - "teal": 1567, - "source": 334, - "pc": [ - 2667 - ] - }, - { - "teal": 1568, - "source": 334, - "pc": [ - 2668 - ] - }, - { - "teal": 1572, - "source": 335, - "pc": [ - 2669, - 2670 - ] - }, - { - "teal": 1573, - "source": 335, - "pc": [ - 2671 - ] - }, - { - "teal": 1574, - "source": 335, - "pc": [ - 2672 - ] - }, - { - "teal": 1578, - "source": 336, - "pc": [ - 2673, - 2674 - ] - }, - { - "teal": 1579, - "source": 336, - "pc": [ - 2675 - ] - }, - { - "teal": 1580, - "source": 336, - "pc": [ - 2676 - ] - }, - { - "teal": 1584, - "source": 337, - "pc": [ - 2677, - 2678 - ] - }, - { - "teal": 1585, - "source": 337, - "pc": [ - 2679 - ] - }, - { - "teal": 1586, - "source": 337, - "pc": [ - 2680, - 2681 - ] - }, - { - "teal": 1587, - "source": 337, - "pc": [ - 2682 - ] - }, - { - "teal": 1591, - "source": 338, - "pc": [ - 2683, - 2684 - ] - }, - { - "teal": 1592, - "source": 338, - "pc": [ - 2685 - ] - }, - { - "teal": 1593, - "source": 338, - "pc": [ - 2686, - 2687 - ] - }, - { - "teal": 1594, - "source": 338, - "pc": [ - 2688 - ] - }, - { - "teal": 1595, - "source": 333, - "pc": [ - 2689 - ] - }, - { - "teal": 1600, - "source": 341, - "pc": [ - 2690, - 2691, - 2692 - ] - }, - { - "teal": 1601, - "source": 341, - "pc": [ - 2693 - ] - }, - { - "teal": 1602, - "source": 341, - "pc": [ - 2694 - ] - }, - { - "teal": 1606, - "source": 341, - "pc": [ - 2695, - 2696, - 2697 - ] - }, - { - "teal": 1609, - "source": 341, - "pc": [ - 2698 - ] - }, - { - "teal": 1610, - "source": 341, - "pc": [ - 2699 - ] - }, - { - "teal": 1614, - "source": 342, - "pc": [ - 2700 - ] - }, - { - "teal": 1615, - "source": 342, - "pc": [ - 2701 - ] - }, - { - "teal": 1616, - "source": 342, - "pc": [ - 2702, - 2703 - ] - }, - { - "teal": 1617, - "source": 342, - "pc": [ - 2704 - ] - }, - { - "teal": 1618, - "source": 342, - "pc": [ - 2705, - 2706 - ] - }, - { - "teal": 1619, - "source": 342, - "pc": [ - 2707 - ] - }, - { - "teal": 1620, - "source": 342, - "pc": [ - 2708 - ] - }, - { - "teal": 1621, - "source": 342, - "pc": [ - 2709, - 2710 - ] - }, - { - "teal": 1622, - "source": 342, - "pc": [ - 2711, - 2712 - ] - }, - { - "teal": 1623, - "source": 342, - "pc": [ - 2713, - 2714 - ] - }, - { - "teal": 1624, - "source": 342, - "pc": [ - 2715, - 2716 - ] - }, - { - "teal": 1625, - "source": 342, - "pc": [ - 2717 - ] - }, - { - "teal": 1629, - "source": 343, - "pc": [ - 2718 - ] - }, - { - "teal": 1630, - "source": 343, - "pc": [ - 2719 - ] - }, - { - "teal": 1631, - "source": 343, - "pc": [ - 2720, - 2721 - ] - }, - { - "teal": 1632, - "source": 343, - "pc": [ - 2722 - ] - }, - { - "teal": 1633, - "source": 343, - "pc": [ - 2723, - 2724 - ] - }, - { - "teal": 1634, - "source": 343, - "pc": [ - 2725 - ] - }, - { - "teal": 1635, - "source": 343, - "pc": [ - 2726 - ] - }, - { - "teal": 1636, - "source": 343, - "pc": [ - 2727, - 2728 - ] - }, - { - "teal": 1637, - "source": 343, - "pc": [ - 2729, - 2730 - ] - }, - { - "teal": 1638, - "source": 343, - "pc": [ - 2731, - 2732 - ] - }, - { - "teal": 1639, - "source": 343, - "pc": [ - 2733, - 2734 - ] - }, - { - "teal": 1640, - "source": 343, - "pc": [ - 2735 - ] - }, - { - "teal": 1644, - "source": 344, - "pc": [ - 2736 - ] - }, - { - "teal": 1645, - "source": 344, - "pc": [ - 2737 - ] - }, - { - "teal": 1646, - "source": 344, - "pc": [ - 2738, - 2739 - ] - }, - { - "teal": 1647, - "source": 344, - "pc": [ - 2740 - ] - }, - { - "teal": 1648, - "source": 344, - "pc": [ - 2741, - 2742 - ] - }, - { - "teal": 1649, - "source": 344, - "pc": [ - 2743 - ] - }, - { - "teal": 1650, - "source": 344, - "pc": [ - 2744 - ] - }, - { - "teal": 1651, - "source": 344, - "pc": [ - 2745, - 2746 - ] - }, - { - "teal": 1652, - "source": 344, - "pc": [ - 2747, - 2748 - ] - }, - { - "teal": 1653, - "source": 344, - "pc": [ - 2749, - 2750 - ] - }, - { - "teal": 1654, - "source": 344, - "pc": [ - 2751, - 2752 - ] - }, - { - "teal": 1655, - "source": 344, - "pc": [ - 2753 - ] - }, - { - "teal": 1659, - "source": 345, - "pc": [ - 2754 - ] - }, - { - "teal": 1660, - "source": 345, - "pc": [ - 2755 - ] - }, - { - "teal": 1661, - "source": 345, - "pc": [ - 2756, - 2757 - ] - }, - { - "teal": 1662, - "source": 345, - "pc": [ - 2758 - ] - }, - { - "teal": 1663, - "source": 345, - "pc": [ - 2759, - 2760 - ] - }, - { - "teal": 1664, - "source": 345, - "pc": [ - 2761 - ] - }, - { - "teal": 1665, - "source": 345, - "pc": [ - 2762 - ] - }, - { - "teal": 1666, - "source": 345, - "pc": [ - 2763, - 2764 - ] - }, - { - "teal": 1667, - "source": 345, - "pc": [ - 2765, - 2766 - ] - }, - { - "teal": 1668, - "source": 345, - "pc": [ - 2767, - 2768 - ] - }, - { - "teal": 1669, - "source": 345, - "pc": [ - 2769, - 2770 - ] - }, - { - "teal": 1670, - "source": 345, - "pc": [ - 2771 - ] - }, - { - "teal": 1674, - "source": 346, - "pc": [ - 2772 - ] - }, - { - "teal": 1675, - "source": 346, - "pc": [ - 2773 - ] - }, - { - "teal": 1676, - "source": 346, - "pc": [ - 2774, - 2775 - ] - }, - { - "teal": 1677, - "source": 346, - "pc": [ - 2776 - ] - }, - { - "teal": 1678, - "source": 346, - "pc": [ - 2777, - 2778 - ] - }, - { - "teal": 1679, - "source": 346, - "pc": [ - 2779 - ] - }, - { - "teal": 1680, - "source": 346, - "pc": [ - 2780 - ] - }, - { - "teal": 1681, - "source": 346, - "pc": [ - 2781, - 2782 - ] - }, - { - "teal": 1682, - "source": 346, - "pc": [ - 2783, - 2784 - ] - }, - { - "teal": 1683, - "source": 346, - "pc": [ - 2785, - 2786 - ] - }, - { - "teal": 1684, - "source": 346, - "pc": [ - 2787, - 2788 - ] - }, - { - "teal": 1685, - "source": 346, - "pc": [ - 2789 - ] - }, - { - "teal": 1689, - "source": 347, - "pc": [ - 2790 - ] - }, - { - "teal": 1690, - "source": 347, - "pc": [ - 2791 - ] - }, - { - "teal": 1691, - "source": 347, - "pc": [ - 2792, - 2793 - ] - }, - { - "teal": 1692, - "source": 347, - "pc": [ - 2794 - ] - }, - { - "teal": 1693, - "source": 347, - "pc": [ - 2795, - 2796 - ] - }, - { - "teal": 1694, - "source": 347, - "pc": [ - 2797 - ] - }, - { - "teal": 1695, - "source": 347, - "pc": [ - 2798 - ] - }, - { - "teal": 1696, - "source": 347, - "pc": [ - 2799, - 2800 - ] - }, - { - "teal": 1697, - "source": 347, - "pc": [ - 2801, - 2802 - ] - }, - { - "teal": 1698, - "source": 347, - "pc": [ - 2803, - 2804 - ] - }, - { - "teal": 1699, - "source": 347, - "pc": [ - 2805, - 2806 - ] - }, - { - "teal": 1700, - "source": 347, - "pc": [ - 2807 - ] - }, - { - "teal": 1704, - "source": 348, - "pc": [ - 2808 - ] - }, - { - "teal": 1705, - "source": 348, - "pc": [ - 2809 - ] - }, - { - "teal": 1706, - "source": 348, - "pc": [ - 2810, - 2811 - ] - }, - { - "teal": 1707, - "source": 348, - "pc": [ - 2812 - ] - }, - { - "teal": 1708, - "source": 348, - "pc": [ - 2813, - 2814 - ] - }, - { - "teal": 1709, - "source": 348, - "pc": [ - 2815 - ] - }, - { - "teal": 1710, - "source": 348, - "pc": [ - 2816 - ] - }, - { - "teal": 1711, - "source": 348, - "pc": [ - 2817, - 2818 - ] - }, - { - "teal": 1712, - "source": 348, - "pc": [ - 2819, - 2820 - ] - }, - { - "teal": 1713, - "source": 348, - "pc": [ - 2821, - 2822 - ] - }, - { - "teal": 1714, - "source": 348, - "pc": [ - 2823, - 2824 - ] - }, - { - "teal": 1715, - "source": 348, - "pc": [ - 2825 - ] - }, - { - "teal": 1719, - "source": 349, - "pc": [ - 2826 - ] - }, - { - "teal": 1720, - "source": 349, - "pc": [ - 2827 - ] - }, - { - "teal": 1721, - "source": 349, - "pc": [ - 2828, - 2829 - ] - }, - { - "teal": 1722, - "source": 349, - "pc": [ - 2830 - ] - }, - { - "teal": 1723, - "source": 349, - "pc": [ - 2831, - 2832 - ] - }, - { - "teal": 1724, - "source": 349, - "pc": [ - 2833 - ] - }, - { - "teal": 1725, - "source": 349, - "pc": [ - 2834 - ] - }, - { - "teal": 1726, - "source": 349, - "pc": [ - 2835, - 2836 - ] - }, - { - "teal": 1727, - "source": 349, - "pc": [ - 2837, - 2838 - ] - }, - { - "teal": 1728, - "source": 349, - "pc": [ - 2839, - 2840 - ] - }, - { - "teal": 1729, - "source": 349, - "pc": [ - 2841, - 2842 - ] - }, - { - "teal": 1730, - "source": 349, - "pc": [ - 2843 - ] - }, - { - "teal": 1734, - "source": 350, - "pc": [ - 2844 - ] - }, - { - "teal": 1735, - "source": 350, - "pc": [ - 2845 - ] - }, - { - "teal": 1736, - "source": 350, - "pc": [ - 2846, - 2847 - ] - }, - { - "teal": 1737, - "source": 350, - "pc": [ - 2848 - ] - }, - { - "teal": 1738, - "source": 350, - "pc": [ - 2849, - 2850 - ] - }, - { - "teal": 1739, - "source": 350, - "pc": [ - 2851 - ] - }, - { - "teal": 1740, - "source": 350, - "pc": [ - 2852 - ] - }, - { - "teal": 1741, - "source": 350, - "pc": [ - 2853, - 2854 - ] - }, - { - "teal": 1742, - "source": 350, - "pc": [ - 2855, - 2856 - ] - }, - { - "teal": 1743, - "source": 350, - "pc": [ - 2857, - 2858 - ] - }, - { - "teal": 1744, - "source": 350, - "pc": [ - 2859, - 2860 - ] - }, - { - "teal": 1745, - "source": 350, - "pc": [ - 2861 - ] - }, - { - "teal": 1749, - "source": 352, - "pc": [ - 2862, - 2863 - ] - }, - { - "teal": 1750, - "source": 352, - "pc": [ - 2864, - 2865, - 2866, - 2867, - 2868, - 2869, - 2870, - 2871, - 2872, - 2873, - 2874, - 2875, - 2876, - 2877, - 2878, - 2879, - 2880, - 2881, - 2882, - 2883, - 2884, - 2885, - 2886, - 2887, - 2888, - 2889, - 2890, - 2891, - 2892, - 2893, - 2894, - 2895, - 2896, - 2897, - 2898, - 2899, - 2900, - 2901, - 2902, - 2903, - 2904, - 2905, - 2906, - 2907, - 2908, - 2909, - 2910, - 2911, - 2912, - 2913, - 2914, - 2915, - 2916, - 2917, - 2918, - 2919, - 2920, - 2921, - 2922, - 2923, - 2924, - 2925, - 2926, - 2927, - 2928, - 2929, - 2930, - 2931, - 2932, - 2933, - 2934, - 2935, - 2936, - 2937, - 2938, - 2939, - 2940, - 2941, - 2942, - 2943, - 2944, - 2945 - ] - }, - { - "teal": 1751, - "source": 352, - "pc": [ - 2946, - 2947 - ] - }, - { - "teal": 1752, - "source": 352, - "pc": [ - 2948, - 2949 - ] - }, - { - "teal": 1753, - "source": 352, - "pc": [ - 2950, - 2951 - ] - }, - { - "teal": 1754, - "source": 352, - "pc": [ - 2952, - 2953 - ] - }, - { - "teal": 1758, - "source": 353, - "pc": [ - 2954, - 2955 - ] - }, - { - "teal": 1759, - "source": 353, - "pc": [ - 2956 - ] - }, - { - "teal": 1760, - "source": 353, - "pc": [ - 2957 - ] - }, - { - "teal": 1764, - "source": 354, - "pc": [ - 2958, - 2959 - ] - }, - { - "teal": 1765, - "source": 354, - "pc": [ - 2960 - ] - }, - { - "teal": 1766, - "source": 341, - "pc": [ - 2961 - ] - }, - { - "teal": 1771, - "source": 357, - "pc": [ - 2962, - 2963, - 2964 - ] - }, - { - "teal": 1772, - "source": 357, - "pc": [ - 2965 - ] - }, - { - "teal": 1773, - "source": 357, - "pc": [ - 2966 - ] - }, - { - "teal": 1777, - "source": 357, - "pc": [ - 2967, - 2968, - 2969 - ] - }, - { - "teal": 1780, - "source": 357, - "pc": [ - 2970 - ] - }, - { - "teal": 1784, - "source": 358, - "pc": [ - 2971 - ] - }, - { - "teal": 1785, - "source": 358, - "pc": [ - 2972 - ] - }, - { - "teal": 1786, - "source": 358, - "pc": [ - 2973, - 2974 - ] - }, - { - "teal": 1790, - "source": 359, - "pc": [ - 2975 - ] - }, - { - "teal": 1791, - "source": 359, - "pc": [ - 2976 - ] - }, - { - "teal": 1792, - "source": 359, - "pc": [ - 2977, - 2978 - ] - }, - { - "teal": 1796, - "source": 360, - "pc": [ - 2979, - 2980 - ] - }, - { - "teal": 1797, - "source": 360, - "pc": [ - 2981, - 2982 - ] - }, - { - "teal": 1801, - "source": 361, - "pc": [ - 2983 - ] - }, - { - "teal": 1802, - "source": 361, - "pc": [ - 2984, - 2985 - ] - }, - { - "teal": 1803, - "source": 361, - "pc": [ - 2986, - 2987 - ] - }, - { - "teal": 1807, - "source": 362, - "pc": [ - 2988 - ] - }, - { - "teal": 1808, - "source": 362, - "pc": [ - 2989, - 2990 - ] - }, - { - "teal": 1812, - "source": 363, - "pc": [ - 2991 - ] - }, - { - "teal": 1813, - "source": 363, - "pc": [ - 2992, - 2993 - ] - }, - { - "teal": 1817, - "source": 364, - "pc": [ - 2994 - ] - }, - { - "teal": 1818, - "source": 364, - "pc": [ - 2995 - ] - }, - { - "teal": 1819, - "source": 364, - "pc": [ - 2996, - 2997 - ] - }, - { - "teal": 1820, - "source": 357, - "pc": [ - 2998 - ] - }, - { - "teal": 1825, - "source": 367, - "pc": [ - 2999, - 3000, - 3001 - ] - }, - { - "teal": 1826, - "source": 367, - "pc": [ - 3002 - ] - }, - { - "teal": 1827, - "source": 367, - "pc": [ - 3003 - ] - }, - { - "teal": 1831, - "source": 367, - "pc": [ - 3004, - 3005, - 3006 - ] - }, - { - "teal": 1834, - "source": 367, - "pc": [ - 3007 - ] - }, - { - "teal": 1838, - "source": 368, - "pc": [ - 3008, - 3009, - 3010 - ] - }, - { - "teal": 1839, - "source": 368, - "pc": [ - 3011 - ] - }, - { - "teal": 1843, - "source": 370, - "pc": [ - 3012 - ] - }, - { - "teal": 1844, - "source": 370, - "pc": [ - 3013, - 3014 - ] - }, - { - "teal": 1848, - "source": 372, - "pc": [ - 3015, - 3016, - 3017 - ] - }, - { - "teal": 1849, - "source": 372, - "pc": [ - 3018 - ] - }, - { - "teal": 1850, - "source": 367, - "pc": [ - 3019 - ] - }, - { - "teal": 1855, - "source": 375, - "pc": [ - 3020, - 3021, - 3022 - ] - }, - { - "teal": 1856, - "source": 375, - "pc": [ - 3023 - ] - }, - { - "teal": 1857, - "source": 375, - "pc": [ - 3024 - ] - }, - { - "teal": 1861, - "source": 375, - "pc": [ - 3025, - 3026, - 3027 - ] - }, - { - "teal": 1865, - "source": 376, - "pc": [ - 3028 - ] - }, - { - "teal": 1866, - "source": 376, - "pc": [ - 3029 - ] - }, - { - "teal": 1867, - "source": 376, - "pc": [ - 3030 - ] - }, - { - "teal": 1868, - "source": 376, - "pc": [ - 3031 - ] - }, - { - "teal": 1869, - "source": 376, - "pc": [ - 3032 - ] - }, - { - "teal": 1873, - "source": 377, - "pc": [ - 3033 - ] - }, - { - "teal": 1874, - "source": 377, - "pc": [ - 3034 - ] - }, - { - "teal": 1875, - "source": 377, - "pc": [ - 3035 - ] - }, - { - "teal": 1879, - "source": 378, - "pc": [ - 3036 - ] - }, - { - "teal": 1880, - "source": 378, - "pc": [ - 3037 - ] - }, - { - "teal": 1881, - "source": 378, - "pc": [ - 3038 - ] - }, - { - "teal": 1885, - "source": 379, - "pc": [ - 3039 - ] - }, - { - "teal": 1886, - "source": 379, - "pc": [ - 3040 - ] - }, - { - "teal": 1887, - "source": 379, - "pc": [ - 3041 - ] - }, - { - "teal": 1888, - "source": 379, - "pc": [ - 3042 - ] - }, - { - "teal": 1889, - "source": 375, - "pc": [ - 3043 - ] - }, - { - "teal": 1894, - "source": 382, - "pc": [ - 3044, - 3045, - 3046 - ] - }, - { - "teal": 1895, - "source": 382, - "pc": [ - 3047 - ] - }, - { - "teal": 1896, - "source": 382, - "pc": [ - 3048 - ] - }, - { - "teal": 1900, - "source": 382, - "pc": [ - 3049, - 3050, - 3051 - ] - }, - { - "teal": 1904, - "source": 383, - "pc": [ - 3052, - 3053 - ] - }, - { - "teal": 1905, - "source": 383, - "pc": [ - 3054 - ] - }, - { - "teal": 1906, - "source": 383, - "pc": [ - 3055 - ] - }, - { - "teal": 1907, - "source": 383, - "pc": [ - 3056 - ] - }, - { - "teal": 1908, - "source": 383, - "pc": [ - 3057 - ] - }, - { - "teal": 1912, - "source": 384, - "pc": [ - 3058, - 3059 - ] - }, - { - "teal": 1913, - "source": 384, - "pc": [ - 3060 - ] - }, - { - "teal": 1914, - "source": 384, - "pc": [ - 3061 - ] - }, - { - "teal": 1915, - "source": 382, - "pc": [ - 3062 - ] - }, - { - "teal": 1920, - "source": 387, - "pc": [ - 3063, - 3064, - 3065 - ] - }, - { - "teal": 1921, - "source": 387, - "pc": [ - 3066 - ] - }, - { - "teal": 1922, - "source": 387, - "pc": [ - 3067 - ] - }, - { - "teal": 1926, - "source": 387, - "pc": [ - 3068, - 3069, - 3070 - ] - }, - { - "teal": 1930, - "source": 388, - "pc": [ - 3071, - 3072 - ] - }, - { - "teal": 1931, - "source": 388, - "pc": [ - 3073 - ] - }, - { - "teal": 1932, - "source": 388, - "pc": [ - 3074 - ] - }, - { - "teal": 1933, - "source": 388, - "pc": [ - 3075, - 3076 - ] - }, - { - "teal": 1934, - "source": 388, - "pc": [ - 3077 - ] - }, - { - "teal": 1938, - "source": 389, - "pc": [ - 3078, - 3079 - ] - }, - { - "teal": 1939, - "source": 389, - "pc": [ - 3080 - ] - }, - { - "teal": 1940, - "source": 389, - "pc": [ - 3081 - ] - }, - { - "teal": 1941, - "source": 389, - "pc": [ - 3082, - 3083 - ] - }, - { - "teal": 1942, - "source": 389, - "pc": [ - 3084 - ] - }, - { - "teal": 1943, - "source": 387, - "pc": [ - 3085 - ] - }, - { - "teal": 1948, - "source": 392, - "pc": [ - 3086, - 3087, - 3088 - ] - }, - { - "teal": 1949, - "source": 392, - "pc": [ - 3089 - ] - }, - { - "teal": 1950, - "source": 392, - "pc": [ - 3090 - ] - }, - { - "teal": 1954, - "source": 392, - "pc": [ - 3091, - 3092, - 3093 - ] - }, - { - "teal": 1958, - "source": 393, - "pc": [ - 3094 - ] - }, - { - "teal": 1959, - "source": 393, - "pc": [ - 3095, - 3096 - ] - }, - { - "teal": 1960, - "source": 393, - "pc": [ - 3097 - ] - }, - { - "teal": 1961, - "source": 392, - "pc": [ - 3098 - ] - }, - { - "teal": 1966, - "source": 396, - "pc": [ - 3099, - 3100, - 3101 - ] - }, - { - "teal": 1967, - "source": 396, - "pc": [ - 3102 - ] - }, - { - "teal": 1968, - "source": 396, - "pc": [ - 3103 - ] - }, - { - "teal": 1972, - "source": 396, - "pc": [ - 3104, - 3105, - 3106 - ] - }, - { - "teal": 1976, - "source": 397, - "pc": [ - 3107 - ] - }, - { - "teal": 1977, - "source": 397, - "pc": [ - 3108 - ] - }, - { - "teal": 1978, - "source": 397, - "pc": [ - 3109, - 3110 - ] - }, - { - "teal": 1979, - "source": 397, - "pc": [ - 3111 - ] - }, - { - "teal": 1983, - "source": 398, - "pc": [ - 3112 - ] - }, - { - "teal": 1984, - "source": 398, - "pc": [ - 3113 - ] - }, - { - "teal": 1985, - "source": 398, - "pc": [ - 3114, - 3115 - ] - }, - { - "teal": 1986, - "source": 398, - "pc": [ - 3116 - ] - }, - { - "teal": 1990, - "source": 399, - "pc": [ - 3117 - ] - }, - { - "teal": 1991, - "source": 399, - "pc": [ - 3118 - ] - }, - { - "teal": 1992, - "source": 399, - "pc": [ - 3119, - 3120 - ] - }, - { - "teal": 1993, - "source": 399, - "pc": [ - 3121 - ] - }, - { - "teal": 1994, - "source": 396, - "pc": [ - 3122 - ] - }, - { - "teal": 1999, - "source": 402, - "pc": [ - 3123, - 3124, - 3125 - ] - }, - { - "teal": 2000, - "source": 402, - "pc": [ - 3126 - ] - }, - { - "teal": 2001, - "source": 402, - "pc": [ - 3127 - ] - }, - { - "teal": 2005, - "source": 402, - "pc": [ - 3128, - 3129, - 3130 - ] - }, - { - "teal": 2009, - "source": 403, - "pc": [ - 3131, - 3132 - ] - }, - { - "teal": 2010, - "source": 403, - "pc": [ - 3133 - ] - }, - { - "teal": 2014, - "source": 404, - "pc": [ - 3134 - ] - }, - { - "teal": 2015, - "source": 404, - "pc": [ - 3135 - ] - }, - { - "teal": 2016, - "source": 402, - "pc": [ - 3136 - ] - }, - { - "teal": 2021, - "source": 407, - "pc": [ - 3137, - 3138, - 3139 - ] - }, - { - "teal": 2022, - "source": 407, - "pc": [ - 3140 - ] - }, - { - "teal": 2023, - "source": 407, - "pc": [ - 3141 - ] - }, - { - "teal": 2027, - "source": 407, - "pc": [ - 3142, - 3143, - 3144 - ] - }, - { - "teal": 2031, - "source": 10, - "pc": [ - 3145, - 3146, - 3147 - ] - }, - { - "teal": 2032, - "source": 408, - "pc": [ - 3148 - ] - }, - { - "teal": 2033, - "source": 407, - "pc": [ - 3149 - ] - }, - { - "teal": 2038, - "source": 411, - "pc": [ - 3150, - 3151, - 3152 - ] - }, - { - "teal": 2039, - "source": 411, - "pc": [ - 3153 - ] - }, - { - "teal": 2040, - "source": 411, - "pc": [ - 3154 - ] - }, - { - "teal": 2044, - "source": 411, - "pc": [ - 3155, - 3156, - 3157 - ] - }, - { - "teal": 2048, - "source": 11, - "pc": [ - 3158, - 3159, - 3160, - 3161 - ] - }, - { - "teal": 2049, - "source": 412, - "pc": [ - 3162 - ] - }, - { - "teal": 2050, - "source": 411, - "pc": [ - 3163 - ] - }, - { - "teal": 2055, - "source": 415, - "pc": [ - 3164, - 3165, - 3166 - ] - }, - { - "teal": 2056, - "source": 415, - "pc": [ - 3167 - ] - }, - { - "teal": 2057, - "source": 415, - "pc": [ - 3168 - ] - }, - { - "teal": 2061, - "source": 415, - "pc": [ - 3169, - 3170, - 3171 - ] - }, - { - "teal": 2065, - "source": 416, - "pc": [ - 3172 - ] - }, - { - "teal": 2066, - "source": 416, - "pc": [ - 3173 - ] - }, - { - "teal": 2067, - "source": 416, - "pc": [ - 3174 - ] - }, - { - "teal": 2068, - "source": 416, - "pc": [ - 3175 - ] - }, - { - "teal": 2072, - "source": 417, - "pc": [ - 3176 - ] - }, - { - "teal": 2073, - "source": 417, - "pc": [ - 3177 - ] - }, - { - "teal": 2074, - "source": 417, - "pc": [ - 3178 - ] - }, - { - "teal": 2075, - "source": 417, - "pc": [ - 3179 - ] - }, - { - "teal": 2079, - "source": 418, - "pc": [ - 3180, - 3181 - ] - }, - { - "teal": 2080, - "source": 418, - "pc": [ - 3182 - ] - }, - { - "teal": 2081, - "source": 418, - "pc": [ - 3183 - ] - }, - { - "teal": 2082, - "source": 418, - "pc": [ - 3184 - ] - }, - { - "teal": 2086, - "source": 419, - "pc": [ - 3185, - 3186 - ] - }, - { - "teal": 2087, - "source": 419, - "pc": [ - 3187 - ] - }, - { - "teal": 2088, - "source": 419, - "pc": [ - 3188 - ] - }, - { - "teal": 2089, - "source": 419, - "pc": [ - 3189 - ] - }, - { - "teal": 2090, - "source": 415, - "pc": [ - 3190 - ] - }, - { - "teal": 2095, - "source": 422, - "pc": [ - 3191 - ] - }, - { - "teal": 2098, - "source": 422, - "pc": [ - 3192, - 3193, - 3194 - ] - }, - { - "teal": 2099, - "source": 422, - "pc": [ - 3195, - 3196, - 3197 - ] - }, - { - "teal": 2100, - "source": 422, - "pc": [ - 3198 - ] - }, - { - "teal": 2101, - "source": 422, - "pc": [ - 3199, - 3200 - ] - }, - { - "teal": 2102, - "source": 422, - "pc": [ - 3201 - ] - }, - { - "teal": 2103, - "source": 422, - "pc": [ - 3202 - ] - }, - { - "teal": 2104, - "source": 422, - "pc": [ - 3203 - ] - }, - { - "teal": 2105, - "source": 422, - "pc": [ - 3204 - ] - }, - { - "teal": 2106, - "source": 422, - "pc": [ - 3205 - ] - }, - { - "teal": 2110, - "source": 422, - "pc": [ - 3206, - 3207, - 3208 - ] - }, - { - "teal": 2114, - "source": 423, - "pc": [ - 3209, - 3210 - ] - }, - { - "teal": 2115, - "source": 423, - "pc": [ - 3211, - 3212 - ] - }, - { - "teal": 2116, - "source": 423, - "pc": [ - 3213 - ] - }, - { - "teal": 2117, - "source": 423, - "pc": [ - 3214 - ] - }, - { - "teal": 2118, - "source": 423, - "pc": [ - 3215, - 3216, - 3217 - ] - }, - { - "teal": 2119, - "source": 423, - "pc": [ - 3218, - 3219 - ] - }, - { - "teal": 2120, - "source": 423, - "pc": [ - 3220, - 3221 - ] - }, - { - "teal": 2121, - "source": 423, - "pc": [ - 3222 - ] - }, - { - "teal": 2122, - "source": 423, - "pc": [ - 3223 - ] - }, - { - "teal": 2125, - "source": 422, - "pc": [ - 3224 - ] - }, - { - "teal": 2130, - "source": 427, - "pc": [ - 3225, - 3226 - ] - }, - { - "teal": 2131, - "source": 427, - "pc": [ - 3227 - ] - }, - { - "teal": 2132, - "source": 427, - "pc": [ - 3228 - ] - }, - { - "teal": 2133, - "source": 427, - "pc": [ - 3229 - ] - }, - { - "teal": 2134, - "source": 427, - "pc": [ - 3230, - 3231 - ] - }, - { - "teal": 2135, - "source": 427, - "pc": [ - 3232 - ] - }, - { - "teal": 2136, - "source": 427, - "pc": [ - 3233 - ] - }, - { - "teal": 2139, - "source": 427, - "errorMessage": "argument 0 (_pay1) for txnArgsMethod must be a pay transaction", - "pc": [ - 3234 - ] - }, - { - "teal": 2142, - "source": 427, - "pc": [ - 3235, - 3236, - 3237 - ] - }, - { - "teal": 2143, - "source": 427, - "pc": [ - 3238 - ] - }, - { - "teal": 2144, - "source": 427, - "pc": [ - 3239 - ] - }, - { - "teal": 2148, - "source": 427, - "pc": [ - 3240, - 3241, - 3242 - ] - }, - { - "teal": 2149, - "source": 427, - "pc": [ - 3243 - ] - }, - { - "teal": 2154, - "source": 429, - "pc": [ - 3244, - 3245, - 3246 - ] - }, - { - "teal": 2155, - "source": 429, - "pc": [ - 3247 - ] - }, - { - "teal": 2156, - "source": 429, - "pc": [ - 3248 - ] - }, - { - "teal": 2160, - "source": 429, - "pc": [ - 3249, - 3250, - 3251 - ] - }, - { - "teal": 2166, - "source": 431, - "pc": [ - 3252 - ] - }, - { - "teal": 2167, - "source": 431, - "pc": [ - 3253 - ] - }, - { - "teal": 2168, - "source": 431, - "pc": [ - 3254, - 3255 - ] - }, - { - "teal": 2172, - "source": 431, - "pc": [ - 3256, - 3257 - ] - }, - { - "teal": 2173, - "source": 431, - "pc": [ - 3258, - 3259 - ] - }, - { - "teal": 2177, - "source": 431, - "pc": [ - 3260 - ] - }, - { - "teal": 2178, - "source": 431, - "pc": [ - 3261, - 3262 - ] - }, - { - "teal": 2181, - "source": 431, - "pc": [ - 3263 - ] - }, - { - "teal": 2182, - "source": 431, - "pc": [ - 3264, - 3265 - ] - }, - { - "teal": 2183, - "source": 430, - "pc": [ - 3266 - ] - }, - { - "teal": 2184, - "source": 430, - "pc": [ - 3267 - ] - }, - { - "teal": 2185, - "source": 430, - "pc": [ - 3268, - 3269 - ] - }, - { - "teal": 2186, - "source": 430, - "pc": [ - 3270, - 3271 - ] - }, - { - "teal": 2187, - "source": 430, - "pc": [ - 3272, - 3273 - ] - }, - { - "teal": 2192, - "source": 430, - "pc": [ - 3274 - ] - }, - { - "teal": 2193, - "source": 430, - "pc": [ - 3275, - 3276 - ] - }, - { - "teal": 2196, - "source": 430, - "pc": [ - 3277 - ] - }, - { - "teal": 2197, - "source": 429, - "pc": [ - 3278 - ] - }, - { - "teal": 2202, - "source": 435, - "pc": [ - 3279, - 3280, - 3281 - ] - }, - { - "teal": 2203, - "source": 435, - "pc": [ - 3282 - ] - }, - { - "teal": 2204, - "source": 435, - "pc": [ - 3283 - ] - }, - { - "teal": 2205, - "source": 435, - "pc": [ - 3284, - 3285 - ] - }, - { - "teal": 2206, - "source": 435, - "pc": [ - 3286 - ] - }, - { - "teal": 2209, - "source": 435, - "errorMessage": "argument 0 (x) for staticValueLen must be a uint256", - "pc": [ - 3287 - ] - }, - { - "teal": 2212, - "source": 435, - "pc": [ - 3288, - 3289, - 3290 - ] - }, - { - "teal": 2213, - "source": 435, - "pc": [ - 3291 - ] - }, - { - "teal": 2214, - "source": 435, - "pc": [ - 3292 - ] - }, - { - "teal": 2218, - "source": 435, - "pc": [ - 3293, - 3294, - 3295 - ] - }, - { - "teal": 2222, - "source": 436, - "pc": [ - 3296, - 3297 - ] - }, - { - "teal": 2223, - "source": 436, - "pc": [ - 3298 - ] - }, - { - "teal": 2224, - "source": 435, - "pc": [ - 3299 - ] - }, - { - "teal": 2229, - "source": 439, - "pc": [ - 3300, - 3301, - 3302 - ] - }, - { - "teal": 2230, - "source": 439, - "pc": [ - 3303 - ] - }, - { - "teal": 2231, - "source": 439, - "pc": [ - 3304 - ] - }, - { - "teal": 2235, - "source": 439, - "pc": [ - 3305, - 3306, - 3307 - ] - }, - { - "teal": 2239, - "source": 440, - "pc": [ - 3308, - 3309 - ] - }, - { - "teal": 2240, - "source": 440, - "pc": [ - 3310 - ] - }, - { - "teal": 2241, - "source": 439, - "pc": [ - 3311 - ] - }, - { - "teal": 2246, - "source": 443, - "pc": [ - 3312, - 3313, - 3314 - ] - }, - { - "teal": 2247, - "source": 443, - "pc": [ - 3315 - ] - }, - { - "teal": 2248, - "source": 443, - "pc": [ - 3316 - ] - }, - { - "teal": 2252, - "source": 443, - "pc": [ - 3317, - 3318, - 3319 - ] - }, - { - "teal": 2256, - "source": 444, - "pc": [ - 3320 - ] - }, - { - "teal": 2257, - "source": 444, - "pc": [ - 3321, - 3322 - ] - }, - { - "teal": 2258, - "source": 444, - "pc": [ - 3323 - ] - }, - { - "teal": 2262, - "source": 445, - "pc": [ - 3324 - ] - }, - { - "teal": 2263, - "source": 445, - "pc": [ - 3325 - ] - }, - { - "teal": 2264, - "source": 445, - "pc": [ - 3326, - 3327 - ] - }, - { - "teal": 2265, - "source": 445, - "pc": [ - 3328 - ] - }, - { - "teal": 2266, - "source": 445, - "pc": [ - 3329 - ] - }, - { - "teal": 2267, - "source": 443, - "pc": [ - 3330 - ] - }, - { - "teal": 2272, - "source": 448, - "pc": [ - 3331, - 3332, - 3333 - ] - }, - { - "teal": 2273, - "source": 448, - "pc": [ - 3334 - ] - }, - { - "teal": 2274, - "source": 448, - "pc": [ - 3335 - ] - }, - { - "teal": 2278, - "source": 448, - "pc": [ - 3336, - 3337, - 3338 - ] - }, - { - "teal": 2282, - "source": 449, - "pc": [ - 3339, - 3340 - ] - }, - { - "teal": 2283, - "source": 449, - "pc": [ - 3341, - 3342 - ] - }, - { - "teal": 2287, - "source": 450, - "pc": [ - 3343, - 3344 - ] - }, - { - "teal": 2288, - "source": 450, - "pc": [ - 3345 - ] - }, - { - "teal": 2289, - "source": 450, - "pc": [ - 3346 - ] - }, - { - "teal": 2290, - "source": 450, - "pc": [ - 3347, - 3348 - ] - }, - { - "teal": 2294, - "source": 451, - "pc": [ - 3349, - 3350 - ] - }, - { - "teal": 2295, - "source": 451, - "pc": [ - 3351, - 3352 - ] - }, - { - "teal": 2296, - "source": 451, - "pc": [ - 3353 - ] - }, - { - "teal": 2297, - "source": 451, - "pc": [ - 3354 - ] - }, - { - "teal": 2298, - "source": 448, - "pc": [ - 3355 - ] - }, - { - "teal": 2303, - "source": 454, - "pc": [ - 3356, - 3357, - 3358 - ] - }, - { - "teal": 2304, - "source": 454, - "pc": [ - 3359 - ] - }, - { - "teal": 2305, - "source": 454, - "pc": [ - 3360 - ] - }, - { - "teal": 2309, - "source": 454, - "pc": [ - 3361, - 3362, - 3363 - ] - }, - { - "teal": 2313, - "source": 455, - "pc": [ - 3364 - ] - }, - { - "teal": 2314, - "source": 455, - "pc": [ - 3365, - 3366 - ] - }, - { - "teal": 2315, - "source": 455, - "pc": [ - 3367 - ] - }, - { - "teal": 2319, - "source": 456, - "pc": [ - 3368 - ] - }, - { - "teal": 2320, - "source": 456, - "pc": [ - 3369 - ] - }, - { - "teal": 2321, - "source": 456, - "pc": [ - 3370 - ] - }, - { - "teal": 2322, - "source": 456, - "pc": [ - 3371 - ] - }, - { - "teal": 2323, - "source": 456, - "pc": [ - 3372 - ] - }, - { - "teal": 2324, - "source": 456, - "pc": [ - 3373 - ] - }, - { - "teal": 2325, - "source": 456, - "pc": [ - 3374 - ] - }, - { - "teal": 2329, - "source": 457, - "pc": [ - 3375 - ] - }, - { - "teal": 2330, - "source": 457, - "pc": [ - 3376 - ] - }, - { - "teal": 2331, - "source": 457, - "pc": [ - 3377, - 3378 - ] - }, - { - "teal": 2332, - "source": 457, - "pc": [ - 3379 - ] - }, - { - "teal": 2333, - "source": 457, - "pc": [ - 3380 - ] - }, - { - "teal": 2334, - "source": 454, - "pc": [ - 3381 - ] - }, - { - "teal": 2339, - "source": 460, - "pc": [ - 3382, - 3383, - 3384 - ] - }, - { - "teal": 2340, - "source": 460, - "pc": [ - 3385 - ] - }, - { - "teal": 2341, - "source": 460, - "pc": [ - 3386 - ] - }, - { - "teal": 2345, - "source": 460, - "pc": [ - 3387, - 3388, - 3389 - ] - }, - { - "teal": 2348, - "source": 460, - "pc": [ - 3390 - ] - }, - { - "teal": 2352, - "source": 461, - "pc": [ - 3391, - 3392 - ] - }, - { - "teal": 2353, - "source": 461, - "pc": [ - 3393, - 3394 - ] - }, - { - "teal": 2357, - "source": 462, - "pc": [ - 3395, - 3396 - ] - }, - { - "teal": 2358, - "source": 462, - "pc": [ - 3397, - 3398 - ] - }, - { - "teal": 2359, - "source": 462, - "pc": [ - 3399 - ] - }, - { - "teal": 2360, - "source": 462, - "pc": [ - 3400 - ] - }, - { - "teal": 2361, - "source": 460, - "pc": [ - 3401 - ] - }, - { - "teal": 2366, - "source": 465, - "pc": [ - 3402 - ] - }, - { - "teal": 2369, - "source": 465, - "pc": [ - 3403, - 3404, - 3405 - ] - }, - { - "teal": 2370, - "source": 465, - "pc": [ - 3406 - ] - }, - { - "teal": 2373, - "source": 465, - "pc": [ - 3407, - 3408, - 3409 - ] - }, - { - "teal": 2374, - "source": 465, - "pc": [ - 3410 - ] - }, - { - "teal": 2375, - "source": 465, - "pc": [ - 3411 - ] - }, - { - "teal": 2376, - "source": 465, - "pc": [ - 3412 - ] - }, - { - "teal": 2377, - "source": 465, - "pc": [ - 3413 - ] - }, - { - "teal": 2378, - "source": 465, - "pc": [ - 3414 - ] - }, - { - "teal": 2382, - "source": 465, - "pc": [ - 3415, - 3416, - 3417 - ] - }, - { - "teal": 2385, - "source": 465, - "pc": [ - 3418 - ] - }, - { - "teal": 2390, - "source": 466, - "pc": [ - 3419, - 3420 - ] - }, - { - "teal": 2391, - "source": 466, - "pc": [ - 3421 - ] - }, - { - "teal": 2392, - "source": 466, - "pc": [ - 3422 - ] - }, - { - "teal": 2393, - "source": 466, - "pc": [ - 3423, - 3424, - 3425 - ] - }, - { - "teal": 2398, - "source": 467, - "pc": [ - 3426 - ] - }, - { - "teal": 2399, - "source": 467, - "pc": [ - 3427, - 3428, - 3429 - ] - }, - { - "teal": 2404, - "source": 469, - "pc": [ - 3430, - 3431 - ] - }, - { - "teal": 2405, - "source": 469, - "pc": [ - 3432 - ] - }, - { - "teal": 2406, - "source": 469, - "pc": [ - 3433 - ] - }, - { - "teal": 2407, - "source": 469, - "pc": [ - 3434, - 3435 - ] - }, - { - "teal": 2411, - "source": 470, - "pc": [ - 3436, - 3437 - ] - }, - { - "teal": 2415, - "source": 465, - "pc": [ - 3438, - 3439 - ] - }, - { - "teal": 2416, - "source": 465, - "pc": [ - 3440 - ] - }, - { - "teal": 2421, - "source": 473, - "pc": [ - 3441, - 3442, - 3443 - ] - }, - { - "teal": 2422, - "source": 473, - "pc": [ - 3444 - ] - }, - { - "teal": 2423, - "source": 473, - "pc": [ - 3445 - ] - }, - { - "teal": 2427, - "source": 473, - "pc": [ - 3446, - 3447, - 3448 - ] - }, - { - "teal": 2434, - "source": 474, - "pc": [ - 3449 - ] - }, - { - "teal": 2435, - "source": 474, - "pc": [ - 3450 - ] - }, - { - "teal": 2436, - "source": 474, - "pc": [ - 3451, - 3452 - ] - }, - { - "teal": 2437, - "source": 475, - "pc": [ - 3453, - 3454, - 3455, - 3456, - 3457, - 3458 - ] - }, - { - "teal": 2438, - "source": 475, - "pc": [ - 3459, - 3460 - ] - }, - { - "teal": 2442, - "source": 476, - "pc": [ - 3461 - ] - }, - { - "teal": 2443, - "source": 476, - "pc": [ - 3462, - 3463 - ] - }, - { - "teal": 2444, - "source": 476, - "pc": [ - 3464, - 3465, - 3466, - 3467, - 3468, - 3469, - 3470, - 3471, - 3472, - 3473 - ] - }, - { - "teal": 2445, - "source": 476, - "pc": [ - 3474, - 3475 - ] - }, - { - "teal": 2448, - "source": 474, - "pc": [ - 3476 - ] - }, - { - "teal": 2449, - "source": 474, - "pc": [ - 3477, - 3478 - ] - }, - { - "teal": 2452, - "source": 474, - "pc": [ - 3479 - ] - }, - { - "teal": 2453, - "source": 473, - "pc": [ - 3480 - ] - }, - { - "teal": 2458, - "source": 484, - "pc": [ - 3481, - 3482, - 3483 - ] - }, - { - "teal": 2459, - "source": 484, - "pc": [ - 3484 - ] - }, - { - "teal": 2460, - "source": 484, - "pc": [ - 3485 - ] - }, - { - "teal": 2464, - "source": 484, - "pc": [ - 3486, - 3487, - 3488 - ] - }, - { - "teal": 2471, - "source": 485, - "pc": [ - 3489 - ] - }, - { - "teal": 2472, - "source": 485, - "pc": [ - 3490 - ] - }, - { - "teal": 2473, - "source": 485, - "pc": [ - 3491, - 3492 - ] - }, - { - "teal": 2477, - "source": 486, - "pc": [ - 3493, - 3494 - ] - }, - { - "teal": 2478, - "source": 486, - "pc": [ - 3495 - ] - }, - { - "teal": 2481, - "source": 486, - "errorMessage": "box value does not exist: this.pageOne.value", - "pc": [ - 3496 - ] - }, - { - "teal": 2482, - "source": 486, - "pc": [ - 3497, - 3498 - ] - }, - { - "teal": 2483, - "source": 486, - "pc": [ - 3499, - 3500 - ] - }, - { - "teal": 2484, - "source": 486, - "pc": [ - 3501 - ] - }, - { - "teal": 2487, - "source": 486, - "errorMessage": "box value does not exist: this.pageTwo.value", - "pc": [ - 3502 - ] - }, - { - "teal": 2488, - "source": 486, - "pc": [ - 3503, - 3504 - ] - }, - { - "teal": 2492, - "source": 487, - "pc": [ - 3505, - 3506 - ] - }, - { - "teal": 2493, - "source": 487, - "pc": [ - 3507 - ] - }, - { - "teal": 2496, - "source": 487, - "errorMessage": "box value does not exist: this.pageOne.value", - "pc": [ - 3508 - ] - }, - { - "teal": 2497, - "source": 487, - "pc": [ - 3509, - 3510 - ] - }, - { - "teal": 2498, - "source": 487, - "pc": [ - 3511, - 3512 - ] - }, - { - "teal": 2499, - "source": 487, - "pc": [ - 3513 - ] - }, - { - "teal": 2502, - "source": 487, - "errorMessage": "box value does not exist: this.pageTwo.value", - "pc": [ - 3514 - ] - }, - { - "teal": 2503, - "source": 487, - "pc": [ - 3515, - 3516 - ] - }, - { - "teal": 2506, - "source": 485, - "pc": [ - 3517 - ] - }, - { - "teal": 2507, - "source": 485, - "pc": [ - 3518, - 3519 - ] - }, - { - "teal": 2510, - "source": 485, - "pc": [ - 3520 - ] - }, - { - "teal": 2511, - "source": 484, - "pc": [ - 3521 - ] - }, - { - "teal": 2516, - "source": 491, - "pc": [ - 3522, - 3523, - 3524 - ] - }, - { - "teal": 2517, - "source": 491, - "pc": [ - 3525 - ] - }, - { - "teal": 2518, - "source": 491, - "pc": [ - 3526 - ] - }, - { - "teal": 2522, - "source": 491, - "pc": [ - 3527, - 3528, - 3529 - ] - }, - { - "teal": 2526, - "source": 492, - "pc": [ - 3530 - ] - }, - { - "teal": 2529, - "source": 492, - "errorMessage": "this is false", - "pc": [ - 3531 - ] - }, - { - "teal": 2530, - "source": 491, - "pc": [ - 3532 - ] - }, - { - "teal": 2535, - "source": 495, - "pc": [ - 3533, - 3534, - 3535 - ] - }, - { - "teal": 2536, - "source": 495, - "pc": [ - 3536 - ] - }, - { - "teal": 2537, - "source": 495, - "pc": [ - 3537 - ] - }, - { - "teal": 2541, - "source": 495, - "pc": [ - 3538, - 3539, - 3540 - ] - }, - { - "teal": 2544, - "source": 496, - "errorMessage": "this is an error", - "pc": [ - 3541 - ] - }, - { - "teal": 2545, - "source": 495, - "pc": [ - 3542 - ] - }, - { - "teal": 2550, - "source": 499, - "pc": [ - 3543, - 3544, - 3545 - ] - }, - { - "teal": 2551, - "source": 499, - "pc": [ - 3546 - ] - }, - { - "teal": 2554, - "source": 499, - "pc": [ - 3547, - 3548, - 3549 - ] - }, - { - "teal": 2555, - "source": 499, - "pc": [ - 3550 - ] - }, - { - "teal": 2558, - "source": 499, - "pc": [ - 3551, - 3552, - 3553 - ] - }, - { - "teal": 2559, - "source": 499, - "pc": [ - 3554 - ] - }, - { - "teal": 2560, - "source": 499, - "pc": [ - 3555 - ] - }, - { - "teal": 2564, - "source": 499, - "pc": [ - 3556, - 3557, - 3558 - ] - }, - { - "teal": 2567, - "source": 499, - "pc": [ - 3559 - ] - }, - { - "teal": 2568, - "source": 499, - "pc": [ - 3560 - ] - }, - { - "teal": 2572, - "source": 500, - "pc": [ - 3561, - 3562 - ] - }, - { - "teal": 2573, - "source": 500, - "pc": [ - 3563 - ] - }, - { - "teal": 2574, - "source": 500, - "pc": [ - 3564, - 3565, - 3566 - ] - }, - { - "teal": 2575, - "source": 500, - "pc": [ - 3567, - 3568 - ] - }, - { - "teal": 2576, - "source": 500, - "pc": [ - 3569 - ] - }, - { - "teal": 2577, - "source": 500, - "pc": [ - 3570 - ] - }, - { - "teal": 2578, - "source": 500, - "pc": [ - 3571 - ] - }, - { - "teal": 2581, - "source": 500, - "pc": [ - 3572, - 3573, - 3574 - ] - }, - { - "teal": 2582, - "source": 500, - "pc": [ - 3575 - ] - }, - { - "teal": 2583, - "source": 500, - "pc": [ - 3576, - 3577, - 3578 - ] - }, - { - "teal": 2586, - "source": 500, - "pc": [ - 3579 - ] - }, - { - "teal": 2589, - "source": 500, - "pc": [ - 3580, - 3581 - ] - }, - { - "teal": 2593, - "source": 501, - "pc": [ - 3582, - 3583 - ] - }, - { - "teal": 2594, - "source": 501, - "pc": [ - 3584 - ] - }, - { - "teal": 2598, - "source": 503, - "pc": [ - 3585, - 3586 - ] - }, - { - "teal": 2599, - "source": 503, - "pc": [ - 3587 - ] - }, - { - "teal": 2600, - "source": 503, - "pc": [ - 3588, - 3589, - 3590 - ] - }, - { - "teal": 2601, - "source": 503, - "pc": [ - 3591, - 3592 - ] - }, - { - "teal": 2602, - "source": 503, - "pc": [ - 3593 - ] - }, - { - "teal": 2603, - "source": 503, - "pc": [ - 3594 - ] - }, - { - "teal": 2604, - "source": 503, - "pc": [ - 3595 - ] - }, - { - "teal": 2607, - "source": 503, - "pc": [ - 3596, - 3597, - 3598 - ] - }, - { - "teal": 2608, - "source": 503, - "pc": [ - 3599, - 3600, - 3601 - ] - }, - { - "teal": 2609, - "source": 503, - "pc": [ - 3602, - 3603, - 3604 - ] - }, - { - "teal": 2612, - "source": 503, - "pc": [ - 3605, - 3606 - ] - }, - { - "teal": 2615, - "source": 503, - "pc": [ - 3607, - 3608 - ] - }, - { - "teal": 2619, - "source": 504, - "pc": [ - 3609, - 3610 - ] - }, - { - "teal": 2620, - "source": 504, - "pc": [ - 3611 - ] - }, - { - "teal": 2621, - "source": 499, - "pc": [ - 3612 - ] - }, - { - "teal": 2625, - "source": 507, - "pc": [ - 3613, - 3614, - 3615 - ] - }, - { - "teal": 2628, - "source": 507, - "pc": [ - 3616 - ] - }, - { - "teal": 2632, - "source": 509, - "pc": [ - 3617, - 3618 - ] - }, - { - "teal": 2633, - "source": 509, - "pc": [ - 3619 - ] - }, - { - "teal": 2637, - "source": 511, - "pc": [ - 3620 - ] - }, - { - "teal": 2638, - "source": 511, - "pc": [ - 3621, - 3622 - ] - }, - { - "teal": 2643, - "source": 511, - "pc": [ - 3623, - 3624 - ] - }, - { - "teal": 2644, - "source": 511, - "pc": [ - 3625, - 3626 - ] - }, - { - "teal": 2645, - "source": 511, - "pc": [ - 3627 - ] - }, - { - "teal": 2646, - "source": 511, - "pc": [ - 3628, - 3629, - 3630 - ] - }, - { - "teal": 2650, - "source": 512, - "pc": [ - 3631, - 3632 - ] - }, - { - "teal": 2651, - "source": 512, - "pc": [ - 3633, - 3634 - ] - }, - { - "teal": 2652, - "source": 512, - "pc": [ - 3635 - ] - }, - { - "teal": 2657, - "source": 511, - "pc": [ - 3636, - 3637 - ] - }, - { - "teal": 2658, - "source": 511, - "pc": [ - 3638 - ] - }, - { - "teal": 2659, - "source": 511, - "pc": [ - 3639 - ] - }, - { - "teal": 2660, - "source": 511, - "pc": [ - 3640, - 3641 - ] - }, - { - "teal": 2661, - "source": 511, - "pc": [ - 3642, - 3643, - 3644 - ] - }, - { - "teal": 2664, - "source": 507, - "pc": [ - 3645 - ] - }, - { - "teal": 2669, - "source": 516, - "pc": [ - 3646, - 3647, - 3648 - ] - }, - { - "teal": 2670, - "source": 516, - "pc": [ - 3649 - ] - }, - { - "teal": 2671, - "source": 516, - "pc": [ - 3650 - ] - }, - { - "teal": 2675, - "source": 516, - "pc": [ - 3651, - 3652, - 3653 - ] - }, - { - "teal": 2678, - "source": 516, - "pc": [ - 3654 - ] - }, - { - "teal": 2679, - "source": 516, - "pc": [ - 3655 - ] - }, - { - "teal": 2683, - "source": 517, - "pc": [ - 3656 - ] - }, - { - "teal": 2684, - "source": 517, - "pc": [ - 3657, - 3658 - ] - }, - { - "teal": 2688, - "source": 518, - "pc": [ - 3659, - 3660 - ] - }, - { - "teal": 2689, - "source": 518, - "pc": [ - 3661, - 3662 - ] - }, - { - "teal": 2696, - "source": 520, - "pc": [ - 3663, - 3664 - ] - }, - { - "teal": 2697, - "source": 520, - "pc": [ - 3665 - ] - }, - { - "teal": 2698, - "source": 520, - "pc": [ - 3666, - 3667, - 3668, - 3669, - 3670 - ] - }, - { - "teal": 2699, - "source": 520, - "pc": [ - 3671 - ] - }, - { - "teal": 2702, - "source": 520, - "errorMessage": "local state value does not exist: app.localState( addr, 'key' )", - "pc": [ - 3672 - ] - }, - { - "teal": 2703, - "source": 516, - "pc": [ - 3673 - ] - }, - { - "teal": 2708, - "source": 526, - "pc": [ - 3674 - ] - }, - { - "teal": 2711, - "source": 526, - "pc": [ - 3675, - 3676, - 3677 - ] - }, - { - "teal": 2712, - "source": 526, - "pc": [ - 3678 - ] - }, - { - "teal": 2713, - "source": 526, - "pc": [ - 3679 - ] - }, - { - "teal": 2714, - "source": 526, - "pc": [ - 3680 - ] - }, - { - "teal": 2715, - "source": 526, - "pc": [ - 3681 - ] - }, - { - "teal": 2716, - "source": 526, - "pc": [ - 3682 - ] - }, - { - "teal": 2720, - "source": 526, - "pc": [ - 3683, - 3684, - 3685 - ] - }, - { - "teal": 2724, - "source": 527, - "pc": [ - 3686, - 3687 - ] - }, - { - "teal": 2725, - "source": 526, - "pc": [ - 3688 - ] - }, - { - "teal": 2730, - "source": 530, - "pc": [ - 3689 - ] - }, - { - "teal": 2733, - "source": 530, - "pc": [ - 3690, - 3691, - 3692 - ] - }, - { - "teal": 2734, - "source": 530, - "pc": [ - 3693 - ] - }, - { - "teal": 2735, - "source": 530, - "pc": [ - 3694 - ] - }, - { - "teal": 2736, - "source": 530, - "pc": [ - 3695 - ] - }, - { - "teal": 2737, - "source": 530, - "pc": [ - 3696 - ] - }, - { - "teal": 2738, - "source": 530, - "pc": [ - 3697 - ] - }, - { - "teal": 2742, - "source": 530, - "pc": [ - 3698, - 3699, - 3700 - ] - }, - { - "teal": 2746, - "source": 531, - "pc": [ - 3701, - 3702 - ] - }, - { - "teal": 2747, - "source": 530, - "pc": [ - 3703 - ] - }, - { - "teal": 2752, - "source": 534, - "pc": [ - 3704 - ] - }, - { - "teal": 2755, - "source": 534, - "pc": [ - 3705, - 3706, - 3707 - ] - }, - { - "teal": 2756, - "source": 534, - "pc": [ - 3708 - ] - }, - { - "teal": 2757, - "source": 534, - "pc": [ - 3709 - ] - }, - { - "teal": 2758, - "source": 534, - "pc": [ - 3710 - ] - }, - { - "teal": 2759, - "source": 534, - "pc": [ - 3711 - ] - }, - { - "teal": 2760, - "source": 534, - "pc": [ - 3712 - ] - }, - { - "teal": 2764, - "source": 534, - "pc": [ - 3713, - 3714, - 3715 - ] - }, - { - "teal": 2768, - "source": 535, - "pc": [ - 3716, - 3717, - 3718 - ] - }, - { - "teal": 2769, - "source": 535, - "pc": [ - 3719 - ] - }, - { - "teal": 2773, - "source": 536, - "pc": [ - 3720, - 3721, - 3722 - ] - }, - { - "teal": 2774, - "source": 534, - "pc": [ - 3723 - ] - }, - { - "teal": 2779, - "source": 546, - "pc": [ - 3724 - ] - }, - { - "teal": 2782, - "source": 546, - "pc": [ - 3725, - 3726, - 3727 - ] - }, - { - "teal": 2783, - "source": 546, - "pc": [ - 3728 - ] - }, - { - "teal": 2784, - "source": 546, - "pc": [ - 3729 - ] - }, - { - "teal": 2785, - "source": 546, - "pc": [ - 3730 - ] - }, - { - "teal": 2786, - "source": 546, - "pc": [ - 3731 - ] - }, - { - "teal": 2787, - "source": 546, - "pc": [ - 3732 - ] - }, - { - "teal": 2791, - "source": 546, - "pc": [ - 3733, - 3734, - 3735 - ] - }, - { - "teal": 2794, - "source": 546, - "pc": [ - 3736 - ] - }, - { - "teal": 2795, - "source": 546, - "pc": [ - 3737 - ] - }, - { - "teal": 2799, - "source": 547, - "pc": [ - 3738 - ] - }, - { - "teal": 2800, - "source": 547, - "pc": [ - 3739, - 3740 - ] - }, - { - "teal": 2804, - "source": 548, - "pc": [ - 3741, - 3742, - 3743 - ] - }, - { - "teal": 2805, - "source": 548, - "pc": [ - 3744, - 3745 - ] - }, - { - "teal": 2810, - "source": 549, - "pc": [ - 3746, - 3747 - ] - }, - { - "teal": 2811, - "source": 549, - "pc": [ - 3748, - 3749, - 3750 - ] - }, - { - "teal": 2816, - "source": 550, - "pc": [ - 3751 - ] - }, - { - "teal": 2817, - "source": 550, - "pc": [ - 3752, - 3753 - ] - }, - { - "teal": 2822, - "source": 553, - "pc": [ - 3754, - 3755 - ] - }, - { - "teal": 2825, - "source": 546, - "pc": [ - 3756, - 3757 - ] - }, - { - "teal": 2828, - "source": 546, - "pc": [ - 3758, - 3759 - ] - }, - { - "teal": 2829, - "source": 546, - "pc": [ - 3760 - ] - }, - { - "teal": 2834, - "source": 556, - "pc": [ - 3761, - 3762, - 3763 - ] - }, - { - "teal": 2835, - "source": 556, - "pc": [ - 3764 - ] - }, - { - "teal": 2836, - "source": 556, - "pc": [ - 3765 - ] - }, - { - "teal": 2840, - "source": 556, - "pc": [ - 3766, - 3767, - 3768 - ] - }, - { - "teal": 2844, - "source": 557, - "pc": [ - 3769, - 3770 - ] - }, - { - "teal": 2845, - "source": 557, - "pc": [ - 3771 - ] - }, - { - "teal": 2849, - "source": 558, - "pc": [ - 3772, - 3773 - ] - }, - { - "teal": 2850, - "source": 558, - "pc": [ - 3774 - ] - }, - { - "teal": 2851, - "source": 556, - "pc": [ - 3775 - ] - }, - { - "teal": 2854, - "source": 49, - "pc": [ - 3776 - ] - }, - { - "teal": 2855, - "source": 49, - "pc": [ - 3777 - ] - }, - { - "teal": 2858, - "source": 49, - "pc": [ - 3778, - 3779, - 3780, - 3781, - 3782, - 3783 - ] - }, - { - "teal": 2859, - "source": 49, - "pc": [ - 3784, - 3785, - 3786 - ] - }, - { - "teal": 2860, - "source": 49, - "pc": [ - 3787, - 3788, - 3789, - 3790 - ] - }, - { - "teal": 2863, - "source": 49, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 3791 - ] - }, - { - "teal": 2866, - "source": 49, - "pc": [ - 3792, - 3793, - 3794, - 3795, - 3796, - 3797 - ] - }, - { - "teal": 2867, - "source": 49, - "pc": [ - 3798, - 3799, - 3800, - 3801, - 3802, - 3803 - ] - }, - { - "teal": 2868, - "source": 49, - "pc": [ - 3804, - 3805, - 3806, - 3807, - 3808, - 3809 - ] - }, - { - "teal": 2869, - "source": 49, - "pc": [ - 3810, - 3811, - 3812, - 3813, - 3814, - 3815 - ] - }, - { - "teal": 2870, - "source": 49, - "pc": [ - 3816, - 3817, - 3818, - 3819, - 3820, - 3821 - ] - }, - { - "teal": 2871, - "source": 49, - "pc": [ - 3822, - 3823, - 3824, - 3825, - 3826, - 3827 - ] - }, - { - "teal": 2872, - "source": 49, - "pc": [ - 3828, - 3829, - 3830, - 3831, - 3832, - 3833 - ] - }, - { - "teal": 2873, - "source": 49, - "pc": [ - 3834, - 3835, - 3836, - 3837, - 3838, - 3839 - ] - }, - { - "teal": 2874, - "source": 49, - "pc": [ - 3840, - 3841, - 3842, - 3843, - 3844, - 3845 - ] - }, - { - "teal": 2875, - "source": 49, - "pc": [ - 3846, - 3847, - 3848, - 3849, - 3850, - 3851 - ] - }, - { - "teal": 2876, - "source": 49, - "pc": [ - 3852, - 3853, - 3854, - 3855, - 3856, - 3857 - ] - }, - { - "teal": 2877, - "source": 49, - "pc": [ - 3858, - 3859, - 3860, - 3861, - 3862, - 3863 - ] - }, - { - "teal": 2878, - "source": 49, - "pc": [ - 3864, - 3865, - 3866, - 3867, - 3868, - 3869 - ] - }, - { - "teal": 2879, - "source": 49, - "pc": [ - 3870, - 3871, - 3872, - 3873, - 3874, - 3875 - ] - }, - { - "teal": 2880, - "source": 49, - "pc": [ - 3876, - 3877, - 3878, - 3879, - 3880, - 3881 - ] - }, - { - "teal": 2881, - "source": 49, - "pc": [ - 3882, - 3883, - 3884, - 3885, - 3886, - 3887 - ] - }, - { - "teal": 2882, - "source": 49, - "pc": [ - 3888, - 3889, - 3890, - 3891, - 3892, - 3893 - ] - }, - { - "teal": 2883, - "source": 49, - "pc": [ - 3894, - 3895, - 3896, - 3897, - 3898, - 3899 - ] - }, - { - "teal": 2884, - "source": 49, - "pc": [ - 3900, - 3901, - 3902, - 3903, - 3904, - 3905 - ] - }, - { - "teal": 2885, - "source": 49, - "pc": [ - 3906, - 3907, - 3908, - 3909, - 3910, - 3911 - ] - }, - { - "teal": 2886, - "source": 49, - "pc": [ - 3912, - 3913, - 3914, - 3915, - 3916, - 3917 - ] - }, - { - "teal": 2887, - "source": 49, - "pc": [ - 3918, - 3919, - 3920, - 3921, - 3922, - 3923 - ] - }, - { - "teal": 2888, - "source": 49, - "pc": [ - 3924, - 3925, - 3926, - 3927, - 3928, - 3929 - ] - }, - { - "teal": 2889, - "source": 49, - "pc": [ - 3930, - 3931, - 3932, - 3933, - 3934, - 3935 - ] - }, - { - "teal": 2890, - "source": 49, - "pc": [ - 3936, - 3937, - 3938, - 3939, - 3940, - 3941 - ] - }, - { - "teal": 2891, - "source": 49, - "pc": [ - 3942, - 3943, - 3944, - 3945, - 3946, - 3947 - ] - }, - { - "teal": 2892, - "source": 49, - "pc": [ - 3948, - 3949, - 3950, - 3951, - 3952, - 3953 - ] - }, - { - "teal": 2893, - "source": 49, - "pc": [ - 3954, - 3955, - 3956, - 3957, - 3958, - 3959 - ] - }, - { - "teal": 2894, - "source": 49, - "pc": [ - 3960, - 3961, - 3962, - 3963, - 3964, - 3965 - ] - }, - { - "teal": 2895, - "source": 49, - "pc": [ - 3966, - 3967, - 3968, - 3969, - 3970, - 3971 - ] - }, - { - "teal": 2896, - "source": 49, - "pc": [ - 3972, - 3973, - 3974, - 3975, - 3976, - 3977 - ] - }, - { - "teal": 2897, - "source": 49, - "pc": [ - 3978, - 3979, - 3980, - 3981, - 3982, - 3983 - ] - }, - { - "teal": 2898, - "source": 49, - "pc": [ - 3984, - 3985, - 3986, - 3987, - 3988, - 3989 - ] - }, - { - "teal": 2899, - "source": 49, - "pc": [ - 3990, - 3991, - 3992, - 3993, - 3994, - 3995 - ] - }, - { - "teal": 2900, - "source": 49, - "pc": [ - 3996, - 3997, - 3998, - 3999, - 4000, - 4001 - ] - }, - { - "teal": 2901, - "source": 49, - "pc": [ - 4002, - 4003, - 4004, - 4005, - 4006, - 4007 - ] - }, - { - "teal": 2902, - "source": 49, - "pc": [ - 4008, - 4009, - 4010, - 4011, - 4012, - 4013 - ] - }, - { - "teal": 2903, - "source": 49, - "pc": [ - 4014, - 4015, - 4016, - 4017, - 4018, - 4019 - ] - }, - { - "teal": 2904, - "source": 49, - "pc": [ - 4020, - 4021, - 4022, - 4023, - 4024, - 4025 - ] - }, - { - "teal": 2905, - "source": 49, - "pc": [ - 4026, - 4027, - 4028, - 4029, - 4030, - 4031 - ] - }, - { - "teal": 2906, - "source": 49, - "pc": [ - 4032, - 4033, - 4034, - 4035, - 4036, - 4037 - ] - }, - { - "teal": 2907, - "source": 49, - "pc": [ - 4038, - 4039, - 4040, - 4041, - 4042, - 4043 - ] - }, - { - "teal": 2908, - "source": 49, - "pc": [ - 4044, - 4045, - 4046, - 4047, - 4048, - 4049 - ] - }, - { - "teal": 2909, - "source": 49, - "pc": [ - 4050, - 4051, - 4052, - 4053, - 4054, - 4055 - ] - }, - { - "teal": 2910, - "source": 49, - "pc": [ - 4056, - 4057, - 4058, - 4059, - 4060, - 4061 - ] - }, - { - "teal": 2911, - "source": 49, - "pc": [ - 4062, - 4063, - 4064, - 4065, - 4066, - 4067 - ] - }, - { - "teal": 2912, - "source": 49, - "pc": [ - 4068, - 4069, - 4070, - 4071, - 4072, - 4073 - ] - }, - { - "teal": 2913, - "source": 49, - "pc": [ - 4074, - 4075, - 4076, - 4077, - 4078, - 4079 - ] - }, - { - "teal": 2914, - "source": 49, - "pc": [ - 4080, - 4081, - 4082, - 4083, - 4084, - 4085 - ] - }, - { - "teal": 2915, - "source": 49, - "pc": [ - 4086, - 4087, - 4088, - 4089, - 4090, - 4091 - ] - }, - { - "teal": 2916, - "source": 49, - "pc": [ - 4092, - 4093, - 4094, - 4095, - 4096, - 4097 - ] - }, - { - "teal": 2917, - "source": 49, - "pc": [ - 4098, - 4099, - 4100, - 4101, - 4102, - 4103 - ] - }, - { - "teal": 2918, - "source": 49, - "pc": [ - 4104, - 4105, - 4106, - 4107, - 4108, - 4109 - ] - }, - { - "teal": 2919, - "source": 49, - "pc": [ - 4110, - 4111, - 4112, - 4113, - 4114, - 4115 - ] - }, - { - "teal": 2920, - "source": 49, - "pc": [ - 4116, - 4117 - ] - }, - { - "teal": 2921, - "source": 49, - "pc": [ - 4118, - 4119, - 4120, - 4121, - 4122, - 4123 - ] - }, - { - "teal": 2922, - "source": 49, - "pc": [ - 4124, - 4125, - 4126, - 4127, - 4128, - 4129 - ] - }, - { - "teal": 2923, - "source": 49, - "pc": [ - 4130, - 4131, - 4132, - 4133, - 4134, - 4135 - ] - }, - { - "teal": 2924, - "source": 49, - "pc": [ - 4136, - 4137, - 4138, - 4139, - 4140, - 4141 - ] - }, - { - "teal": 2925, - "source": 49, - "pc": [ - 4142, - 4143, - 4144, - 4145, - 4146, - 4147 - ] - }, - { - "teal": 2926, - "source": 49, - "pc": [ - 4148, - 4149, - 4150, - 4151, - 4152, - 4153 - ] - }, - { - "teal": 2927, - "source": 49, - "pc": [ - 4154, - 4155, - 4156, - 4157, - 4158, - 4159 - ] - }, - { - "teal": 2928, - "source": 49, - "pc": [ - 4160, - 4161, - 4162, - 4163, - 4164, - 4165 - ] - }, - { - "teal": 2929, - "source": 49, - "pc": [ - 4166, - 4167, - 4168, - 4169, - 4170, - 4171 - ] - }, - { - "teal": 2930, - "source": 49, - "pc": [ - 4172, - 4173, - 4174, - 4175, - 4176, - 4177 - ] - }, - { - "teal": 2931, - "source": 49, - "pc": [ - 4178, - 4179, - 4180, - 4181, - 4182, - 4183 - ] - }, - { - "teal": 2932, - "source": 49, - "pc": [ - 4184, - 4185, - 4186, - 4187, - 4188, - 4189 - ] - }, - { - "teal": 2933, - "source": 49, - "pc": [ - 4190, - 4191, - 4192, - 4193, - 4194, - 4195 - ] - }, - { - "teal": 2934, - "source": 49, - "pc": [ - 4196, - 4197, - 4198, - 4199, - 4200, - 4201 - ] - }, - { - "teal": 2935, - "source": 49, - "pc": [ - 4202, - 4203, - 4204, - 4205, - 4206, - 4207 - ] - }, - { - "teal": 2936, - "source": 49, - "pc": [ - 4208, - 4209, - 4210, - 4211, - 4212, - 4213 - ] - }, - { - "teal": 2937, - "source": 49, - "pc": [ - 4214, - 4215, - 4216, - 4217, - 4218, - 4219 - ] - }, - { - "teal": 2938, - "source": 49, - "pc": [ - 4220, - 4221, - 4222, - 4223, - 4224, - 4225 - ] - }, - { - "teal": 2939, - "source": 49, - "pc": [ - 4226, - 4227, - 4228, - 4229, - 4230, - 4231 - ] - }, - { - "teal": 2940, - "source": 49, - "pc": [ - 4232, - 4233, - 4234 - ] - }, - { - "teal": 2941, - "source": 49, - "pc": [ - 4235, - 4236, - 4237, - 4238, - 4239, - 4240, - 4241, - 4242, - 4243, - 4244, - 4245, - 4246, - 4247, - 4248, - 4249, - 4250, - 4251, - 4252, - 4253, - 4254, - 4255, - 4256, - 4257, - 4258, - 4259, - 4260, - 4261, - 4262, - 4263, - 4264, - 4265, - 4266, - 4267, - 4268, - 4269, - 4270, - 4271, - 4272, - 4273, - 4274, - 4275, - 4276, - 4277, - 4278, - 4279, - 4280, - 4281, - 4282, - 4283, - 4284, - 4285, - 4286, - 4287, - 4288, - 4289, - 4290, - 4291, - 4292, - 4293, - 4294, - 4295, - 4296, - 4297, - 4298, - 4299, - 4300, - 4301, - 4302, - 4303, - 4304, - 4305, - 4306, - 4307, - 4308, - 4309, - 4310, - 4311, - 4312, - 4313, - 4314, - 4315, - 4316, - 4317, - 4318, - 4319, - 4320, - 4321, - 4322, - 4323, - 4324, - 4325, - 4326, - 4327, - 4328, - 4329, - 4330, - 4331, - 4332, - 4333, - 4334, - 4335, - 4336, - 4337, - 4338, - 4339, - 4340, - 4341, - 4342, - 4343, - 4344, - 4345, - 4346, - 4347, - 4348, - 4349, - 4350, - 4351, - 4352, - 4353, - 4354, - 4355, - 4356, - 4357, - 4358, - 4359, - 4360, - 4361, - 4362, - 4363, - 4364, - 4365, - 4366, - 4367, - 4368, - 4369, - 4370, - 4371, - 4372, - 4373, - 4374, - 4375, - 4376, - 4377, - 4378, - 4379, - 4380, - 4381, - 4382, - 4383, - 4384 - ] - }, - { - "teal": 2944, - "source": 49, - "pc": [ - 4385, - 4386, - 4387 - ] - }, - { - "teal": 2945, - "source": 49, - "pc": [ - 4388 - ] - }, - { - "teal": 2946, - "source": 49, - "pc": [ - 4389 - ] - }, - { - "teal": 2949, - "source": 49, - "pc": [ - 4390, - 4391, - 4392 - ] - }, - { - "teal": 2950, - "source": 49, - "pc": [ - 4393, - 4394, - 4395, - 4396, - 4397, - 4398, - 4399, - 4400, - 4401, - 4402, - 4403, - 4404 - ] - }, - { - "teal": 2951, - "source": 49, - "pc": [ - 4405, - 4406 - ] - }, - { - "teal": 2952, - "source": 49, - "pc": [ - 4407 - ] - }, - { - "teal": 2953, - "source": 49, - "pc": [ - 4408 - ] - }, - { - "teal": 2954, - "source": 49, - "pc": [ - 4409 - ] - }, - { - "teal": 2955, - "source": 49 - }, - { - "teal": 2958, - "source": 49, - "pc": [ - 4410, - 4411, - 4412 - ] - }, - { - "teal": 2959, - "source": 49, - "pc": [ - 4413, - 4414 - ] - }, - { - "teal": 2960, - "source": 49, - "pc": [ - 4415 - ] - }, - { - "teal": 2961, - "source": 49, - "pc": [ - 4416 - ] - }, - { - "teal": 2962, - "source": 49, - "pc": [ - 4417, - 4418, - 4419 - ] - }, - { - "teal": 2963, - "source": 49, - "pc": [ - 4420, - 4421 - ] - }, - { - "teal": 2964, - "source": 49, - "pc": [ - 4422 - ] - }, - { - "teal": 2967, - "source": 49, - "pc": [ - 4423, - 4424 - ] - }, - { - "teal": 2968, - "source": 49, - "pc": [ - 4425, - 4426 - ] - }, - { - "teal": 2969, - "source": 49, - "pc": [ - 4427 - ] - }, - { - "teal": 2970, - "source": 49, - "pc": [ - 4428 - ] - }, - { - "teal": 2971, - "source": 49, - "pc": [ - 4429 - ] - }, - { - "teal": 2972, - "source": 49, - "pc": [ - 4430, - 4431, - 4432 - ] - }, - { - "teal": 2973, - "source": 49, - "pc": [ - 4433, - 4434 - ] - }, - { - "teal": 2974, - "source": 49, - "pc": [ - 4435, - 4436 - ] - }, - { - "teal": 2975, - "source": 49, - "pc": [ - 4437 - ] - }, - { - "teal": 2976, - "source": 49, - "pc": [ - 4438, - 4439, - 4440 - ] - }, - { - "teal": 2977, - "source": 49, - "pc": [ - 4441, - 4442, - 4443 - ] - }, - { - "teal": 2980, - "source": 49, - "pc": [ - 4444 - ] - }, - { - "teal": 2983, - "source": 49, - "pc": [ - 4445, - 4446 - ] - }, - { - "teal": 2984, - "source": 49, - "pc": [ - 4447, - 4448 - ] - }, - { - "teal": 2985, - "source": 49, - "pc": [ - 4449 - ] - }, - { - "teal": 2986, - "source": 49, - "pc": [ - 4450, - 4451, - 4452 - ] - }, - { - "teal": 2987, - "source": 49, - "pc": [ - 4453 - ] - }, - { - "teal": 2988, - "source": 49, - "pc": [ - 4454 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 257 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 300 + ], + "errorMessage": "argument 0 (arg2) for asserts must be a bool" + }, + { + "pc": [ + 312 + ], + "errorMessage": "argument 1 (arg1) for asserts must be a bool" + }, + { + "pc": [ + 327 + ], + "errorMessage": "asserts failed: asserts(arg1, arg2, arg1 === arg2)" + }, + { + "pc": [ + 330 + ], + "errorMessage": "asserts failed: asserts(arg1, arg2, arg1 === arg2)" + }, + { + "pc": [ + 336 + ], + "errorMessage": "asserts failed: asserts(arg1, arg2, arg1 === arg2)" + }, + { + "pc": [ + 349 + ], + "errorMessage": "argument 0 (somePay) for verifyTxnFromArg must be a pay transaction" + }, + { + "pc": [ + 366 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"somePay\",\"field\":\"receiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 376 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"somePay\",\"field\":\"amount\",\"expected\":\"100_000\"}" + }, + { + "pc": [ + 394 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"sender\",\"expected\":\"this.txn.sender\"}" + }, + { + "pc": [ + 410 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txn\",\"field\":\"applicationID\",\"condition\":\"greaterThan\",\"expected\":\">1\"}" + }, + { + "pc": [ + 426 + ], + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"includedIn\",\"expected\":\"[this.txn.sender]\"}" + }, + { + "pc": [ + 442 + ], + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txn\"},\"field\":\"sender\",\"condition\":\"notIncludedIn\",\"expected\":\"[globals.zeroAddress]\"}" + }, + { + "pc": [ + 1238 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"pay\"}" + }, + { + "pc": [ + 1246 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"amount\",\"condition\":\"greaterThan\",\"expected\":\">0\"}" + }, + { + "pc": [ + 1254 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"appl\"}" + }, + { + "pc": [ + 1262 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"applicationID\",\"expected\":\"AppID.fromUint64(0)\"}" + }, + { + "pc": [ + 1274 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"applicationArgs\",\"index\":\"0\",\"expected\":\"'foo'\"}" + }, + { + "pc": [ + 1298 + ], + "errorMessage": "transaction verification failed: {\"txn\":{\"txnText\":\"this.txnGroup[0]\"},\"field\":\"applicationArgs 1\",\"condition\":\"includedIn\",\"expected\":\"['bar', 'baz']\"}" + }, + { + "pc": [ + 1306 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"axfer\"}" + }, + { + "pc": [ + 1314 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"assetReceiver\",\"expected\":\"this.app.address\"}" + }, + { + "pc": [ + 1322 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"acfg\"}" + }, + { + "pc": [ + 1330 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"configAsset\",\"expected\":\"AssetID.fromUint64(0)\"}" + }, + { + "pc": [ + 1338 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"typeEnum\",\"expected\":\"keyreg\"}" + }, + { + "pc": [ + 1347 + ], + "errorMessage": "transaction verification failed: {\"txn\":\"this.txnGroup[0]\",\"field\":\"voteFirst\",\"expected\":\"1337\"}" + }, + { + "pc": [ + 2795 + ], + "errorMessage": "uintNWithUnderscore return value overflowed 256 bits" + }, + { + "pc": [ + 3392 + ], + "errorMessage": "this is false" + }, + { + "pc": [ + 4674 + ], + "errorMessage": "argument 0 (_pay1) for txnArgsMethod must be a pay transaction" + }, + { + "pc": [ + 4738 + ], + "errorMessage": "argument 0 (x) for staticValueLen must be a uint256" + }, + { + "pc": [ + 5023 + ], + "errorMessage": "box value does not exist: this.pageOne.value" + }, + { + "pc": [ + 5036 + ], + "errorMessage": "box value does not exist: this.pageTwo.value" + }, + { + "pc": [ + 5049 + ], + "errorMessage": "box value does not exist: this.pageOne.value" + }, + { + "pc": [ + 5062 + ], + "errorMessage": "box value does not exist: this.pageTwo.value" + }, + { + "pc": [ + 5082 + ], + "errorMessage": "this is false" + }, + { + "pc": [ + 5093 + ], + "errorMessage": "this is an error" + }, + { + "pc": [ + 5238 + ], + "errorMessage": "local state value does not exist: app.localState( addr, 'key' )" + }, + { + "pc": [ + 5386 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gISEhISBXQVJOSU5HOiBUaGlzIGNvbnRyYWN0IGlzICpOT1QqIEFSQzQgY29tcGxpYW50LiBJdCBtYXkgY29udGFpbiBBQkkgbWV0aG9kcywgYnV0IGl0IGFsc28gYWxsb3dzIGFwcCBjYWxscyB3aGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgZG9lcyBOT1QgbWF0Y2ggYW4gQUJJIHNlbGVjdG9yCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB0eG5UeXBlRW51bSgpdm9pZAoqYWJpX3JvdXRlX3R4blR5cGVFbnVtOgoJLy8gZXhlY3V0ZSB0eG5UeXBlRW51bSgpdm9pZAoJY2FsbHN1YiB0eG5UeXBlRW51bQoJaW50IDEKCXJldHVybgoKLy8gdHhuVHlwZUVudW0oKTogdm9pZAp0eG5UeXBlRW51bToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjEKCS8vIGFzc2VydCh0aGlzLnR4bkdyb3VwWzBdLnR5cGVFbnVtID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsKQoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXBwbAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB0eG5Hcm91cExlbmd0aCgpdm9pZAoqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoOgoJLy8gZXhlY3V0ZSB0eG5Hcm91cExlbmd0aCgpdm9pZAoJY2FsbHN1YiB0eG5Hcm91cExlbmd0aAoJaW50IDEKCXJldHVybgoKLy8gdHhuR3JvdXBMZW5ndGgoKTogdm9pZAp0eG5Hcm91cExlbmd0aDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjUKCS8vIGFzc2VydCh0aGlzLnR4bkdyb3VwLmxlbmd0aCA9PT0gMSkKCWdsb2JhbCBHcm91cFNpemUKCWludCAxCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydHMoYm9vbCxib29sKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRzOgoJLy8gYXJnMjogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFyZzIpIGZvciBhc3NlcnRzIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMSkgZm9yIGFzc2VydHMgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgYXNzZXJ0cyhib29sLGJvb2wpdm9pZAoJY2FsbHN1YiBhc3NlcnRzCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRzKGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiB2b2lkCmFzc2VydHM6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjY5CgkvLyBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglmcmFtZV9kaWcgLTEgLy8gYXJnMTogYm9vbGVhbgoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBhcmcyOiBib29sZWFuCgoJLy8gYXNzZXJ0cyBmYWlsZWQ6IGFzc2VydHMoYXJnMSwgYXJnMiwgYXJnMSA9PT0gYXJnMikKCWFzc2VydAoJZnJhbWVfZGlnIC0xIC8vIGFyZzE6IGJvb2xlYW4KCWZyYW1lX2RpZyAtMiAvLyBhcmcyOiBib29sZWFuCgk9PQoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21Bcmc6CgkvLyBzb21lUGF5OiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChzb21lUGF5KSBmb3IgdmVyaWZ5VHhuRnJvbUFyZyBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuRnJvbUFyZwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhzb21lUGF5OiBQYXlUeG4pOiB2b2lkCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjczCgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNvbWVQYXkiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJaW50IDEwMF8wMDAKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJzb21lUGF5IiwiZmllbGQiOiJhbW91bnQiLCJleHBlY3RlZCI6IjEwMF8wMDAifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkZyb21UeG5Hcm91cAoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCk6IHZvaWQKdmVyaWZ5VHhuRnJvbVR4bkdyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo3NwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuR3JvdXBbMF0sIHsgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCWludCAwCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJzZW5kZXIiLCJleHBlY3RlZCI6InRoaXMudHhuLnNlbmRlciJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuQ29uZGl0aW9uKCl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuQ29uZGl0aW9uOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuQ29uZGl0aW9uCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5Db25kaXRpb24oKTogdm9pZAp2ZXJpZnlUeG5Db25kaXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjgxCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uSUQKCXR4biBBcHBsaWNhdGlvbklECglpbnQgMQoJPgoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG4iLCJmaWVsZCI6ImFwcGxpY2F0aW9uSUQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjEifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5JbmNsdWRlZEluKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkluY2x1ZGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKTogdm9pZAp2ZXJpZnlUeG5JbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4NwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgaW5jbHVkZWRJbjogW3RoaXMudHhuLnNlbmRlcl0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0IjoidGhpcy50eG4ifSwiZmllbGQiOiJzZW5kZXIiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbdGhpcy50eG4uc2VuZGVyXSJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bk5vdEluY2x1ZGVkSW46CgkvLyBleGVjdXRlIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuTm90SW5jbHVkZWRJbgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpOiB2b2lkCnZlcmlmeVR4bk5vdEluY2x1ZGVkSW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkzCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIHNlbmRlcjogeyBub3RJbmNsdWRlZEluOiBbZ2xvYmFscy56ZXJvQWRkcmVzc10gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJZ2xvYmFsIFplcm9BZGRyZXNzCgkhPQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjp7InR4blRleHQiOiJ0aGlzLnR4biJ9LCJmaWVsZCI6InNlbmRlciIsImNvbmRpdGlvbiI6Im5vdEluY2x1ZGVkSW4iLCJleHBlY3RlZCI6IltnbG9iYWxzLnplcm9BZGRyZXNzXSJ9Cglhc3NlcnQKCXJldHN1YgoKLy8gc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCiphYmlfcm91dGVfc3VibWl0UGVuZGluZ0dyb3VwOgoJLy8gZXhlY3V0ZSBzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQKCWNhbGxzdWIgc3VibWl0UGVuZGluZ0dyb3VwCglpbnQgMQoJcmV0dXJuCgovLyBzdWJtaXRQZW5kaW5nR3JvdXAoKTogdm9pZApzdWJtaXRQZW5kaW5nR3JvdXA6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjk5CgkvLyB0aGlzLnBlbmRpbmdHcm91cC5hZGRQYXltZW50KHsgYW1vdW50OiAwLCByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgaXNGaXJzdFR4bjogdHJ1ZSB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTkKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5OQoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZFBheW1lbnQoeyBhbW91bnQ6IDAsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBub3RlOiAnZm9vJyB9KQoJaXR4bl9uZXh0CglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIGFtb3VudDogMAoJaW50IDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTAwCgkvLyBub3RlOiAnZm9vJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDEKCS8vIHRoaXMucGVuZGluZ0dyb3VwLnN1Ym1pdCgpCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzOgoJLy8gZXhlY3V0ZSBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoJY2FsbHN1YiBtZXRob2RXaXRoVHhuQXJncwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKTogdm9pZAptZXRob2RXaXRoVHhuQXJnczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTA1CgkvLyBzZW5kTWV0aG9kQ2FsbDxbUGF5VHhuLCBNZXRob2RDYWxsPFt1aW50NjRdLCB2b2lkPl0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogWwoJLy8gICAgICAgICB7IGFtb3VudDogMTAwXzAwMCwgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciB9LAoJLy8gICAgICAgICB7CgkvLyAgICAgICAgICAgbmFtZTogJ2JhcicsCgkvLyAgICAgICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgxMzM3KSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbMV0sCgkvLyAgICAgICAgIH0sCgkvLyAgICAgICBdLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDgKCS8vIGFtb3VudDogMTAwXzAwMAoJaW50IDEwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDgKCS8vIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIKCXR4biBTZW5kZXIKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiYmFyKHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExMQoJLy8gYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgxMzM3KQoJaW50IDEzMzcKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTEyCgkvLyBtZXRob2RBcmdzOiBbMV0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJmb28ocGF5LGFwcGwpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDcKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXQoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBzaGlmdCgpdm9pZAoqYWJpX3JvdXRlX3NoaWZ0OgoJLy8gZXhlY3V0ZSBzaGlmdCgpdm9pZAoJY2FsbHN1YiBzaGlmdAoJaW50IDEKCXJldHVybgoKLy8gc2hpZnQoKTogdm9pZApzaGlmdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTE5CgkvLyBhc3NlcnQoMSA8PCAyID09PSA0KQoJaW50IDEKCWludCAyCglzaGwKCWludCA0Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjAKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCiphYmlfcm91dGVfZnJvbUJ5dGVzOgoJLy8gZXhlY3V0ZSBmcm9tQnl0ZXMoKXZvaWQKCWNhbGxzdWIgZnJvbUJ5dGVzCglpbnQgMQoJcmV0dXJuCgovLyBmcm9tQnl0ZXMoKTogdm9pZApmcm9tQnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyNAoJLy8gYXNzZXJ0KEFkZHJlc3MuZnJvbUJ5dGVzKCdhYmMnKS5taW5CYWxhbmNlKQoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBmcm9tVWludDY0KCl2b2lkCiphYmlfcm91dGVfZnJvbVVpbnQ2NDoKCS8vIGV4ZWN1dGUgZnJvbVVpbnQ2NCgpdm9pZAoJY2FsbHN1YiBmcm9tVWludDY0CglpbnQgMQoJcmV0dXJuCgovLyBmcm9tVWludDY0KCk6IHZvaWQKZnJvbVVpbnQ2NDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI4CgkvLyBsb2coQXBwSUQuZnJvbVVpbnQ2NCgxMjMpLmNyZWF0b3IpCglpbnQgMTIzCglhcHBfcGFyYW1zX2dldCBBcHBDcmVhdG9yCglwb3AKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI5CgkvLyBsb2coQXNzZXRJRC5mcm9tVWludDY0KDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglwb3AKCWxvZwoJcmV0c3ViCgovLyBiemVyb0Z1bmN0aW9uKCl2b2lkCiphYmlfcm91dGVfYnplcm9GdW5jdGlvbjoKCS8vIGV4ZWN1dGUgYnplcm9GdW5jdGlvbigpdm9pZAoJY2FsbHN1YiBiemVyb0Z1bmN0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBiemVyb0Z1bmN0aW9uKCk6IHZvaWQKYnplcm9GdW5jdGlvbjoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzNAoJLy8geDogYnl0ZXMgPSBiemVybygyKQoJYnl0ZSAweDAwMDAKCWZyYW1lX2J1cnkgMCAvLyB4OiBieXRlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM1CgkvLyB5OiBieXRlcyA9IGJ6ZXJvKG4pCglpbnQgMQoJYnplcm8KCWZyYW1lX2J1cnkgMSAvLyB5OiBieXRlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM2CgkvLyB6OiBbdWludDY0LCB1aW50PDg+XSA9IGJ6ZXJvPFt1aW50NjQsIHVpbnQ8OD5dPigpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDIgLy8gejogW3VpbnQ2NCwgdWludDw4Pl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzNwoJLy8gYXNzZXJ0KGxlbih4ICsgeSArIHopID09PSAxMikKCWJ5dGUgMHgwMDAwIC8vIHg6IGJ5dGVzCglmcmFtZV9kaWcgMSAvLyB5OiBieXRlcwoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwIC8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dCgljb25jYXQKCWxlbgoJaW50IDEyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGV2ZW50cygpdm9pZAoqYWJpX3JvdXRlX2V2ZW50czoKCS8vIGV4ZWN1dGUgZXZlbnRzKCl2b2lkCgljYWxsc3ViIGV2ZW50cwoJaW50IDEKCXJldHVybgoKLy8gZXZlbnRzKCk6IHZvaWQKZXZlbnRzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTIKCS8vIHRoaXMubXlFdmVudC5sb2coeyBhcHA6IHRoaXMuYXBwLCBudW06IDEgfSkKCWJ5dGUgMHg4NzUyODE5NiAvLyBteUV2ZW50KHVpbnQ2NCx1aW50NjQpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJY29uY2F0Cgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10KKmFiaV9yb3V0ZV9sZXRPcHRpbWl6YXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NFtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgbGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdCgljYWxsc3ViIGxldE9wdGltaXphdGlvbgoJZHVwCglsZW4KCWludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbGV0T3B0aW1pemF0aW9uKGE6IHVpbnQ2NFtdKTogdWludDY0W10KbGV0T3B0aW1pemF0aW9uOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTYKCS8vIGFzc2VydChhWzBdKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTU4CgkvLyBiID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IC0xIC8vIGI6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjAKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglyZXRzdWIKCi8vIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCS8vIGV4ZWN1dGUgc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkCgljYWxsc3ViIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCk6IHZvaWQKc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjQKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCksCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogRHVtbXlDb250cmFjdC5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2NQoJLy8gb25Db21wbGV0aW9uOiBPbkNvbXBsZXRpb24uTm9PcAoJaW50IDAgLy8gTm9PcAoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2NgoJLy8gYXBwcm92YWxQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmFwcHJvdmFsUHJvZ3JhbSgpCglieXRlIGI2NCBDakVZRklFR0N6RVpDSTBNQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBSUVCUTRBRXVFUjdOallhQUk0Qi8vQUEKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjcKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDZz09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjgKCS8vIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UKCWludCAwCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjkKCS8vIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludAoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzEKCS8vIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBudW1iZXJUb1N0cmluZygpdm9pZAoqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nOgoJLy8gZXhlY3V0ZSBudW1iZXJUb1N0cmluZygpdm9pZAoJY2FsbHN1YiBudW1iZXJUb1N0cmluZwoJaW50IDEKCXJldHVybgoKLy8gbnVtYmVyVG9TdHJpbmcoKTogdm9pZApudW1iZXJUb1N0cmluZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTc4CgkvLyBhc3NlcnQobi50b1N0cmluZygpID09PSBzKQoJaW50IDEKCWNhbGxzdWIgKml0b2EKCWJ5dGUgIjEiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIG1ldGhvZE9uUGFyZW5zKCl2b2lkCiphYmlfcm91dGVfbWV0aG9kT25QYXJlbnM6CgkvLyBleGVjdXRlIG1ldGhvZE9uUGFyZW5zKCl2b2lkCgljYWxsc3ViIG1ldGhvZE9uUGFyZW5zCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RPblBhcmVucygpOiB2b2lkCm1ldGhvZE9uUGFyZW5zOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxODIKCS8vIGFzc2VydCgoMSArIDIpLnRvU3RyaW5nKCkgPT09ICczJykKCWludCAzCgljYWxsc3ViICppdG9hCglieXRlIDB4MzMgLy8gIjMiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1N1YnN0cmluZygpdm9pZAoqYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZzoKCS8vIGV4ZWN1dGUgc3RyaW5nU3Vic3RyaW5nKCl2b2lkCgljYWxsc3ViIHN0cmluZ1N1YnN0cmluZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nU3Vic3RyaW5nKCk6IHZvaWQKc3RyaW5nU3Vic3RyaW5nOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxODcKCS8vIGFzc2VydChzLnN1YnN0cmluZygxLCAzKSA9PT0gJ2JjJykKCWJ5dGUgImFiY2RlZiIKCXN1YnN0cmluZyAxIDMKCWJ5dGUgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAoqYWJpX3JvdXRlX2lkUHJvcGVydHk6CgkvLyBleGVjdXRlIGlkUHJvcGVydHkoKXZvaWQKCWNhbGxzdWIgaWRQcm9wZXJ0eQoJaW50IDEKCXJldHVybgoKLy8gaWRQcm9wZXJ0eSgpOiB2b2lkCmlkUHJvcGVydHk6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTEKCS8vIGFwcCA9IEFwcElELnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBhcHA6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQoQXBwSUQuZnJvbVVpbnQ2NChhcHAuaWQpID09PSBhcHApCglpbnQgMCAvLyBhcHA6IHVpbnQ2NAoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTQKCS8vIGFzYSA9IEFzc2V0SUQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGFzYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTUKCS8vIGFzc2VydChBc3NldElELmZyb21VaW50NjQoYXNhLmlkKSA9PT0gYXNhKQoJaW50IDAgLy8gYXNhOiB1aW50NjQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gc2NyYXRjaFNsb3QoKTogdm9pZApzY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTk5CgkvLyB0aGlzLnNjcmF0Y2gudmFsdWUgPSAxMzM3CglpbnQgMTMzNwoJc3RvcmUgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjAwCgkvLyBhc3NlcnQodGhpcy5zY3JhdGNoLnZhbHVlID09PSAxMzM3KQoJbG9hZCAwCglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlY2RzYSgpdm9pZAoqYWJpX3JvdXRlX2VjZHNhOgoJLy8gZXhlY3V0ZSBlY2RzYSgpdm9pZAoJY2FsbHN1YiBlY2RzYQoJaW50IDEKCXJldHVybgoKLy8gZWNkc2EoKTogdm9pZAplY2RzYToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwNAoJLy8gZWNkc2FWZXJpZnkoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZHVwbiA0CgllY2RzYV92ZXJpZnkgU2VjcDI1NmsxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDUKCS8vIGQgPSBlY2RzYVBrRGVjb21wcmVzcygnU2VjcDI1NmsxJywgJycgYXMgYnl0ZXM8MzM+KQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZWNkc2FfcGtfZGVjb21wcmVzcyBTZWNwMjU2azEKCWZyYW1lX2J1cnkgMCAvLyBkIHkgY29tcG9uZW50OiBieXRlW10KCWZyYW1lX2J1cnkgMSAvLyBkIHggY29tcG9uZW50OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwNgoJLy8gbG9nKGQueSkKCWZyYW1lX2RpZyAwIC8vIGQgeSBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDcKCS8vIGxvZyhkLngpCglmcmFtZV9kaWcgMSAvLyBkIHggY29tcG9uZW50OiBieXRlW10KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjA5CgkvLyByID0gZWNkc2FQa1JlY292ZXIoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsIDEsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJaW50IDEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglkdXAKCWVjZHNhX3BrX3JlY292ZXIgU2VjcDI1NmsxCglmcmFtZV9idXJ5IDIgLy8gciB5IGNvbXBvbmVudDogYnl0ZVtdCglmcmFtZV9idXJ5IDMgLy8gciB4IGNvbXBvbmVudDogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTAKCS8vIGxvZyhyLnkpCglmcmFtZV9kaWcgMiAvLyByIHkgY29tcG9uZW50OiBieXRlW10KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjExCgkvLyBsb2coci54KQoJZnJhbWVfZGlnIDMgLy8gciB4IGNvbXBvbmVudDogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gdmVyaWZ5VHhuVHlwZXMoKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5UeXBlczoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuVHlwZXMoKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuVHlwZXMKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4blR5cGVzKCk6IHZvaWQKdmVyaWZ5VHhuVHlwZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIxNQoJLy8gdmVyaWZ5UGF5VHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgcGF5CglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoicGF5In0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWludCAwCglndHhucyBBbW91bnQKCWludCAwCgk+CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJhbW91bnQiLCJjb25kaXRpb24iOiJncmVhdGVyVGhhbiIsImV4cGVjdGVkIjoiPjAifQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTkKCS8vIHZlcmlmeUFwcENhbGxUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgYXBwbGljYXRpb25JRDogQXBwSUQuZnJvbVVpbnQ2NCgwKSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogewoJLy8gICAgICAgICAwOiAnZm9vJywKCS8vICAgICAgICAgMTogewoJLy8gICAgICAgICAgIGluY2x1ZGVkSW46IFsnYmFyJywgJ2JheiddLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGwKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGFwcGwKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoiYXBwbCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25JRAoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uSUQKCWludCAwCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYXBwbGljYXRpb25JRCIsImV4cGVjdGVkIjoiQXBwSUQuZnJvbVVpbnQ2NCgwKSJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzIDAKCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6ImFwcGxpY2F0aW9uQXJncyIsImluZGV4IjoiMCIsImV4cGVjdGVkIjoiJ2ZvbycifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uQXJncyAxCglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09CglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCWJ5dGUgMHg2MjYxN2EgLy8gImJheiIKCT09Cgl8fAoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjp7InR4blRleHQiOiJ0aGlzLnR4bkdyb3VwWzBdIn0sImZpZWxkIjoiYXBwbGljYXRpb25BcmdzIDEiLCJjb25kaXRpb24iOiJpbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbJ2JhcicsICdiYXonXSJ9Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIyOQoJLy8gdmVyaWZ5QXNzZXRUcmFuc2ZlclR4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYXhmZXIKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoidHlwZUVudW0iLCJleHBlY3RlZCI6ImF4ZmVyIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglpbnQgMAoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJhc3NldFJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjMzCgkvLyB2ZXJpZnlBc3NldENvbmZpZ1R4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC5mcm9tVWludDY0KDApLAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgYWNmZwoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYWNmZwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJhY2ZnIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBjb25maWdBc3NldAoJaW50IDAKCWd0eG5zIENvbmZpZ0Fzc2V0CglpbnQgMAoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6ImNvbmZpZ0Fzc2V0IiwiZXhwZWN0ZWQiOiJBc3NldElELmZyb21VaW50NjQoMCkifQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMzcKCS8vIHZlcmlmeUtleVJlZ1R4bih0aGlzLnR4bkdyb3VwWzBdLCB7CgkvLyAgICAgICB2b3RlRmlyc3Q6IDEzMzcsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBrZXlyZWcKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IGtleXJlZwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJrZXlyZWcifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHZvdGVGaXJzdAoJaW50IDAKCWd0eG5zIFZvdGVGaXJzdAoJaW50IDEzMzcKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ2b3RlRmlyc3QiLCJleHBlY3RlZCI6IjEzMzcifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1BsdXNFcXVhbHMoKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzOgoJLy8gZXhlY3V0ZSBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCgljYWxsc3ViIHN0cmluZ1BsdXNFcXVhbHMKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1BsdXNFcXVhbHMoKTogdm9pZApzdHJpbmdQbHVzRXF1YWxzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI0MwoJLy8gcyA9ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDQKCS8vIHMgKz0gJ2JhcicKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDUKCS8vIGFzc2VydChzID09PSAnZm9vYmFyJykKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDY2NmY2ZjYyNjE3MiAvLyAiZm9vYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQoqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXQoJY2FsbHN1YiBpbXBvcnRlZFByb2dyYW0KCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaW1wb3J0ZWRQcm9ncmFtKCk6IGJ5dGVzCmltcG9ydGVkUHJvZ3JhbToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjQ5CgkvLyByZXR1cm4gSWZUZXN0LmFwcHJvdmFsUHJvZ3JhbSgpOwoJYnl0ZSBiNjQgQ2lBRUFRQUNJQ1lKQkJVZmZIVUNhV1lFWld4elpRTmxibVFBQTJadmJ3ZGxiSE5sSUdsbUNXVnNjMlVnYVdZZ01RbGxiSE5sSUdsbUlESXhHQlNCQmdzeEdRaU5EQU1rQUFBQUFBQUFBQUFBQUFNV0FBQUFBQUFBQUFBQUFBQW9OaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0JBWXYvUVFBQ0tZa3JpU2cyR2dGSkZTSVNSQ05UaUFBTVNSVVdWd1lDVEZCUXNDSkRpZ0VCaS85QkFBVXBpVUlBQWlxSmlTZzJHZ0pKRlNJU1JDTlROaG9CU1JVaUVrUWpVNGdBREVrVkZsY0dBa3hRVUxBaVE0b0NBWXYvUVFBRktZbENBQWlML2tFQUF5Y0dpU3VKS0RZYUFra1ZJaEpFSTFNMkdnRkpGU0lTUkNOVGlBQU1TUlVXVndZQ1RGQlFzQ0pEaWdJQmkvOUJBQVVwaVVJQURZditRUUFHSndhSlFnQUNLb21KS0RZYUEwa1ZJaEpFSTFNMkdnSkpGU0lTUkNOVE5ob0JTUlVpRWtRalU0Z0FERWtWRmxjR0FreFFVTEFpUTRvREFZdi9RUUFGS1lsQ0FCT0wva0VBQmljSGlVSUFDSXY5UVFBREp3aUpLNGtvTmhvRFNSVWlFa1FqVXpZYUFra1ZJaEpFSTFNMkdnRkpGU0lTUkNOVGlBQU1TUlVXVndZQ1RGQlFzQ0pEaWdNQmkvOUJBQVVwaVVJQUdJditRUUFHSndlSlFnQU5pLzFCQUFZbkNJbENBQUlxaVlrb05ob0NTUlVpRWtRalV6WWFBVWtWSWhKRUkxT0lBQXhKRlJaWEJnSk1VRkN3SWtPS0FnR0wvMEVBRm92K1FRQU1nQWx1WlhOMFpXUWdhV2FKS1lsQ0FBSXFpWWtvTmhvQlNSVWlFa1FqVTRnQURFa1ZGbGNHQWt4UVVMQWlRNG9CQVl2L1FRQUZLWWxDQUFJcWlZa29OaG9DU1JVaUVrUWpVellhQVVrVkloSkVJMU9JQUFVV1VMQWlRNG9DQVl2L1FRQUVJa0lBQzR2K1FRQUVKRUlBQW9FRGlTZzJHZ0ZYQWdDSUFBVVdVTEFpUTRvQkFZdi9Kd1NwUVFBQ0lva2tpU2cyR2dGWEFnQ0lBQVVXVUxBaVE0b0JBWXYvSndTcFFRQUVJa0lBQVNTSk5ob0JTUlVrRWtRWGlBQUNJa09LQVFDTC95Y0VxVUVBQXljRnNJazJHZ0pKRlNRU1JCYzJHZ0ZKRlNRU1JCZUlBQUlpUTRvQ0FJdi9pLzRPUVFBREp3V3dpVFlhQWtrVkpSSkVOaG9CU1JVbEVrU0lBQUlpUTRvQ0FJdi9pLzZtUVFBREp3V3dpU2cyR2dKSkZTSVNSQ05UTmhvQlNSVWlFa1FqVTRnQURFa1ZGbGNHQWt4UVVMQWlRNG9DQVl2L1FRQVppLzVCQUEyQUIyRWdZVzVrSUdLSlFnQUVnQUZoaVVJQUZvditRUUFIZ0FGaWlVSUFDb0FIYm1WcGRHaGxjb21KSWtPQUJMaEVlelkyR2dDT0FmL3hBSUFFUTI3QndvQUVISG9OWG9BRVhnKzJ6NEFFWGh4c1VJQUVXTkM2a29BRVhTOVBBb0FFaEZjcDJZQUVqK2RzcUlBRUdqeDRlSUFFZEx6SWFJQUVRaEw1QllBRWxkMnV2NEFFTVVlNFpvQUVRb2wvWVlBRVUwdml0ellhQUk0UC9HRDhodnl3L092OUt2MTYvYzcrRS80OS9uTCtrUDZ3L3MzKzgvOFhBQT09CglyZXRzdWIKCi8vIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyKCl2b2lkCiphYmlfcm91dGVfY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXI6CgkvLyBleGVjdXRlIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyKCl2b2lkCgljYWxsc3ViIGNhbGxQcml2YXRlRGVmaW5lZExhdGVyCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpOiB2b2lkCmNhbGxQcml2YXRlRGVmaW5lZExhdGVyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNTMKCS8vIGxvZyh0aGlzLnByaXZhdGVNZXRob2QoJ2hlbGxvJykpCglieXRlIDB4Njg2NTZjNmM2ZiAvLyAiaGVsbG8iCgljYWxsc3ViIHByaXZhdGVNZXRob2QKCWxvZwoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKG1zZzogc3RyaW5nKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI1NwoJLy8gcmV0dXJuIG1zZzsKCWZyYW1lX2RpZyAtMSAvLyBtc2c6IHN0cmluZwoJcmV0c3ViCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmludGVyYWxQdWJsaWNNZXRob2Q6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2MQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QoKXZvaWQKKmFiaV9yb3V0ZV9jYWxsSW50ZXJuYWxQdWJsaWNNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZAoJY2FsbHN1YiBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QKCWludCAxCglyZXR1cm4KCi8vIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpOiB2b2lkCmNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjY1CgkvLyBhc3NlcnQodGhpcy5pbnRlcmFsUHVibGljTWV0aG9kKDEsIDIpID09PSAzKQoJaW50IDIKCWludCAxCgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCWludCAzCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFwcExvYWRTY3JhdGNoKCl2b2lkCiphYmlfcm91dGVfYXBwTG9hZFNjcmF0Y2g6CgkvLyBleGVjdXRlIGFwcExvYWRTY3JhdGNoKCl2b2lkCgljYWxsc3ViIGFwcExvYWRTY3JhdGNoCglpbnQgMQoJcmV0dXJuCgovLyBhcHBMb2FkU2NyYXRjaCgpOiB2b2lkCmFwcExvYWRTY3JhdGNoOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNjkKCS8vIGxvZyh0aGlzLnR4bkdyb3VwWzFdLmxvYWRTY3JhdGNoKDIpIGFzIGJ5dGVzKQoJZ2xvYWQgMSAyCglsb2cKCXJldHN1YgoKLy8gdWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NgoqYWJpX3JvdXRlX3VpbnROV2l0aFVuZGVyc2NvcmU6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NgoJY2FsbHN1YiB1aW50TldpdGhVbmRlcnNjb3JlCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1aW50TldpdGhVbmRlcnNjb3JlIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludE5XaXRoVW5kZXJzY29yZSgpOiB1aW50MjU2CnVpbnROV2l0aFVuZGVyc2NvcmU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI3MwoJLy8gcmV0dXJuIDx1aW50MjU2PjEyM180NTY7CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZTI0MAoJcmV0c3ViCgovLyBvcFVwKCl2b2lkCiphYmlfcm91dGVfb3BVcDoKCS8vIGV4ZWN1dGUgb3BVcCgpdm9pZAoJY2FsbHN1YiBvcFVwCglpbnQgMQoJcmV0dXJuCgovLyBvcFVwKCk6IHZvaWQKb3BVcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI3OAoJLy8gZm9yIChsZXQgaSA9IDE7IGkgPCA3NTsgaSArPSAxKQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc4CgkvLyBpIDwgNzUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDc1Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNzkKCS8vIGFzc2VydChpKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cglhc3NlcnQKCipmb3JfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc4CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJcmV0c3ViCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCiphYmlfcm91dGVfcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZwoJY2FsbHN1YiByZXR1cm5WYWx1ZU9uQXNzaWdubWVudAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpOiBzdHJpbmcKcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjg0CgkvLyBtZXNzYWdlID0gJ2hpJwoJYnl0ZSAweDY4NjkgLy8gImhpIgoJZnJhbWVfYnVyeSAwIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4NgoJLy8gdGhpcy50eG4uc2VuZGVyID09PSB0aGlzLmFwcC5hZGRyZXNzCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI4NwoJLy8gbWVzc2FnZSA9ICdpbiBibG9jaycKCWJ5dGUgMHg2OTZlMjA2MjZjNmY2MzZiIC8vICJpbiBibG9jayIKCWZyYW1lX2J1cnkgMCAvLyBtZXNzYWdlOiBieXRlW10KCippZjBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTAKCS8vIHJldHVybiAobWVzc2FnZSA9ICdieWUnKTsKCWJ5dGUgMHg2Mjc5NjUgLy8gImJ5ZSIKCWR1cAoJZnJhbWVfYnVyeSAwIC8vIG1lc3NhZ2U6IGJ5dGVbXQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyOTYKCS8vIHJldHVybiAoYVswXSA9IDQpOwoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJaW50IDAKCWludCA0CglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwMAoJLy8gdGhpcy5nS2V5LnZhbHVlID0gMQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJaW50IDEKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDIKCS8vIHJldHVybiAodGhpcy5nS2V5LnZhbHVlID0gMik7CglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglpbnQgMgoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJYXBwX2dsb2JhbF9wdXQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCXJldHN1YgoKLy8gcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpOiB1aW50NjQKcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWU6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzA2CgkvLyBhID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwOAoJLy8gcmV0dXJuIChhICs9IDIpOwoJZnJhbWVfZGlnIDAgLy8gYTogdWludDY0CglpbnQgMgoJKwoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NAoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTIKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTQKCS8vIHJldHVybiAoYVswXSArPSA0KTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWludCAwCglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglleHRyYWN0IDAgOAoJYnRvaQoJaW50IDQKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWl0b2IKCXJlcGxhY2UzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoqYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NAoJY2FsbHN1YiByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE4CgkvLyB0aGlzLnN0b3JhZ2VBcnJheS52YWx1ZSA9IFsxLCAyLCAzXQoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyMAoJLy8gcmV0dXJuICh0aGlzLnN0b3JhZ2VBcnJheS52YWx1ZVswXSArPSA0KTsKCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMAoJYnl0ZSAweDczNzQ2ZjcyNjE2NzY1NDE3MjcyNjE3OSAvLyAic3RvcmFnZUFycmF5IgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgMCA4CglidG9pCglpbnQgNAoJKwoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJaXRvYgoJcmVwbGFjZTMKCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglyZXRzdWIKCi8vIGNvbnN0cygpdm9pZAoqYWJpX3JvdXRlX2NvbnN0czoKCS8vIGV4ZWN1dGUgY29uc3RzKCl2b2lkCgljYWxsc3ViIGNvbnN0cwoJaW50IDEKCXJldHVybgoKLy8gY29uc3RzKCk6IHZvaWQKY29uc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjQKCS8vIGFzc2VydChTVFJJTkdfQ09OU1QgPT09ICdmb28nKQoJYnl0ZSAiZm9vIgoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI1CgkvLyBhc3NlcnQoTlVNX0NPTlNUID09PSAxMjMpCglpbnQgMTIzCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyNgoJLy8gYXNzZXJ0KE5FU1RFRF9DT05TVCA9PT0gMTIzKQoJaW50IDEyMwoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCiphYmlfcm91dGVfYXNzZXJ0V2l0aE1lc3NhZ2U6CgkvLyBleGVjdXRlIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCgljYWxsc3ViIGFzc2VydFdpdGhNZXNzYWdlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRXaXRoTWVzc2FnZSgpOiB2b2lkCmFzc2VydFdpdGhNZXNzYWdlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzAKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gb3Bjb2RlQWxpYXNlcygpdm9pZAoqYWJpX3JvdXRlX29wY29kZUFsaWFzZXM6CgkvLyBleGVjdXRlIG9wY29kZUFsaWFzZXMoKXZvaWQKCWNhbGxzdWIgb3Bjb2RlQWxpYXNlcwoJaW50IDEKCXJldHVybgoKLy8gb3Bjb2RlQWxpYXNlcygpOiB2b2lkCm9wY29kZUFsaWFzZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzNAoJLy8gZXh0cmFjdFVpbnQxNihiemVybyg2NCksIDApCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWludCAwCglleHRyYWN0X3VpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM1CgkvLyBleHRyYWN0VWludDMyKGJ6ZXJvKDY0KSwgMCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJaW50IDAKCWV4dHJhY3RfdWludDMyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzYKCS8vIGV4dHJhY3RVaW50NjQoYnplcm8oNjQpLCAwKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglpbnQgMAoJZXh0cmFjdF91aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzNwoJLy8gZWQyNTUxOVZlcmlmeUJhcmUoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeV9iYXJlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzgKCS8vIGVkMjU1MTlWZXJpZnkoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeQoJcmV0c3ViCgovLyB2cmZWZXJpZnlPcCgpdm9pZAoqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wOgoJLy8gZXhlY3V0ZSB2cmZWZXJpZnlPcCgpdm9pZAoJY2FsbHN1YiB2cmZWZXJpZnlPcAoJaW50IDEKCXJldHVybgoKLy8gdnJmVmVyaWZ5T3AoKTogdm9pZAp2cmZWZXJpZnlPcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0MgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQzCgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDQKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQ2CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDcKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJYnl0ZSBiNjQgQ29FQiAvLyAjcHJhZ21hIHZlcnNpb24gMTA7IGludCAxCglkdXAKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCglpbnQgRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzQ5CgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIGI2NCBDb0VCIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCBEZWxldGVBcHBsaWNhdGlvbgoJaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KCWl0eG5fc3VibWl0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTAKCS8vIGluY3JlYXNlT3Bjb2RlQnVkZ2V0KCkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgYjY0IENvRUIgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MgoJLy8gciA9IHZyZlZlZmlyeSgnVnJmQWxnb3JhbmQnLCBiemVybygzMikgYXMgYnl0ZXMsIGJ6ZXJvKDgwKSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJdnJmX3ZlcmlmeSBWcmZBbGdvcmFuZAoJZnJhbWVfYnVyeSAwIC8vIHIgdmVyaWZpZWQ6IGJvb2wKCWZyYW1lX2J1cnkgMSAvLyByIG91dHB1dDogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTMKCS8vIGFzc2VydCghci52ZXJpZmllZCkKCWZyYW1lX2RpZyAwIC8vIHIgdmVyaWZpZWQ6IGJvb2wKCSEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU0CgkvLyBsb2coci5vdXRwdXQpCglmcmFtZV9kaWcgMSAvLyByIG91dHB1dDogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gZWNNYXRoKCl2b2lkCiphYmlfcm91dGVfZWNNYXRoOgoJLy8gZXhlY3V0ZSBlY01hdGgoKXZvaWQKCWNhbGxzdWIgZWNNYXRoCglpbnQgMQoJcmV0dXJuCgovLyBlY01hdGgoKTogdm9pZAplY01hdGg6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzU4CgkvLyBlY1NjYWxhck11bCgnQk4yNTRnMScsICcnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWR1cAoJZWNfc2NhbGFyX211bCBCTjI1NGcxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTkKCS8vIGVjUGFpcmluZ0NoZWNrKCdCTjI1NGcxJywgJycsICcnKQoJYnl0ZSAweCAvLyAiIgoJZHVwCgllY19wYWlyaW5nX2NoZWNrIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2MAoJLy8gc2NhbGFyczogYnl0ZXMzMltdID0gW2J6ZXJvKDMyKSwgYnplcm8oMzIpXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IDAgLy8gc2NhbGFyczogYnl0ZXMzMltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjEKCS8vIGVjTXVsdGlTY2FsYXJNdWwoJ0JOMjU0ZzEnLCAnJywgc2NhbGFycykKCWJ5dGUgMHggLy8gIiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyBzY2FsYXJzOiBieXRlczMyW10KCWVjX211bHRpX3NjYWxhcl9tdWwgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzYyCgkvLyBlY1N1Ymdyb3VwQ2hlY2soJ0JOMjU0ZzEnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWVjX3N1Ymdyb3VwX2NoZWNrIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2MwoJLy8gZWNNYXBUbygnQk4yNTRnMScsICcnKQoJYnl0ZSAweCAvLyAiIgoJZWNfbWFwX3RvIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2NAoJLy8gZWNBZGQoJ0JOMjU0ZzEnLCAnJywgJycpCglieXRlIDB4IC8vICIiCglkdXAKCWVjX2FkZCBCTjI1NGcxCglyZXRzdWIKCi8vIGdpdHhuKCl2b2lkCiphYmlfcm91dGVfZ2l0eG46CgkvLyBleGVjdXRlIGdpdHhuKCl2b2lkCgljYWxsc3ViIGdpdHhuCglpbnQgMQoJcmV0dXJuCgovLyBnaXR4bigpOiB2b2lkCmdpdHhuOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2OAoJLy8gbG9nKHRoaXMubGFzdElubmVyR3JvdXBbMF0uc2VuZGVyKQoJZ2l0eG4gMCBTZW5kZXIKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcwCgkvLyBhbm90aGVyVHhuID0gdGhpcy5sYXN0SW5uZXJHcm91cFsxXQoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBhbm90aGVyVHhuOiBnaXR4bgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcyCgkvLyBsb2coYW5vdGhlclR4bi5zZW5kZXIpCglnaXR4biAxIFNlbmRlcgoJbG9nCglyZXRzdWIKCi8vIGdldFNldEJ5dGVzKCl2b2lkCiphYmlfcm91dGVfZ2V0U2V0Qnl0ZXM6CgkvLyBleGVjdXRlIGdldFNldEJ5dGVzKCl2b2lkCgljYWxsc3ViIGdldFNldEJ5dGVzCglpbnQgMQoJcmV0dXJuCgovLyBnZXRTZXRCeXRlcygpOiB2b2lkCmdldFNldEJ5dGVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzYKCS8vIGxvZyhzZXRiaXQoJ2ZvbycsIDAsIHRydWUpKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAxCglzZXRiaXQKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzc3CgkvLyBnZXRiaXQoJ2ZvbycsIDApCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJZ2V0Yml0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzgKCS8vIGdldGJ5dGUoJ2ZvbycsIDApCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJZ2V0Ynl0ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzc5CgkvLyBzZXRieXRlKCdmb28nLCAwLCAxKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAxCglzZXRieXRlCglyZXRzdWIKCi8vIGdldFNldFVpbnQ2NCgpdm9pZAoqYWJpX3JvdXRlX2dldFNldFVpbnQ2NDoKCS8vIGV4ZWN1dGUgZ2V0U2V0VWludDY0KCl2b2lkCgljYWxsc3ViIGdldFNldFVpbnQ2NAoJaW50IDEKCXJldHVybgoKLy8gZ2V0U2V0VWludDY0KCk6IHZvaWQKZ2V0U2V0VWludDY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODMKCS8vIGFzc2VydChzZXRiaXQoMTIzLCAwLCB0cnVlKSkKCWludCAxMjMKCWludCAwCglpbnQgMQoJc2V0Yml0Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4NAoJLy8gZ2V0Yml0KDEyMywgMCkKCWludCAxMjMKCWludCAwCglnZXRiaXQKCXJldHN1YgoKLy8gYmxvY2tPcCgpdm9pZAoqYWJpX3JvdXRlX2Jsb2NrT3A6CgkvLyBleGVjdXRlIGJsb2NrT3AoKXZvaWQKCWNhbGxzdWIgYmxvY2tPcAoJaW50IDEKCXJldHVybgoKLy8gYmxvY2tPcCgpOiB2b2lkCmJsb2NrT3A6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4OAoJLy8gbG9nKGJsb2Nrc1tnbG9iYWxzLnJvdW5kIC0gMV0uc2VlZCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1NlZWQKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzg5CgkvLyBhc3NlcnQoYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS50aW1lc3RhbXApCglnbG9iYWwgUm91bmQKCWludCAxCgktCglibG9jayBCbGtUaW1lc3RhbXAKCWFzc2VydAoJcmV0c3ViCgovLyBiNjQoKXZvaWQKKmFiaV9yb3V0ZV9iNjQ6CgkvLyBleGVjdXRlIGI2NCgpdm9pZAoJY2FsbHN1YiBiNjQKCWludCAxCglyZXR1cm4KCi8vIGI2NCgpOiB2b2lkCmI2NDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkzCgkvLyBsb2coYmFzZTY0RGVjb2RlKCdTdGRFbmNvZGluZycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWJhc2U2NF9kZWNvZGUgU3RkRW5jb2RpbmcKCWxvZwoJcmV0c3ViCgovLyBqc29uKCl2b2lkCiphYmlfcm91dGVfanNvbjoKCS8vIGV4ZWN1dGUganNvbigpdm9pZAoJY2FsbHN1YiBqc29uCglpbnQgMQoJcmV0dXJuCgovLyBqc29uKCk6IHZvaWQKanNvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzk3CgkvLyBsb2coanNvblJlZignSlNPTk9iamVjdCcsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05PYmplY3QKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzk4CgkvLyBsb2coanNvblJlZignSlNPTlN0cmluZycsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05TdHJpbmcKCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzk5CgkvLyBhc3NlcnQoanNvblJlZignSlNPTlVpbnQ2NCcsICcnLCAnJykpCglieXRlIDB4IC8vICIiCglkdXAKCWpzb25fcmVmIEpTT05VaW50NjQKCWFzc2VydAoJcmV0c3ViCgovLyBiaXRsZW5PcCgpdm9pZAoqYWJpX3JvdXRlX2JpdGxlbk9wOgoJLy8gZXhlY3V0ZSBiaXRsZW5PcCgpdm9pZAoJY2FsbHN1YiBiaXRsZW5PcAoJaW50IDEKCXJldHVybgoKLy8gYml0bGVuT3AoKTogdm9pZApiaXRsZW5PcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDAzCgkvLyBiaXRsZW4oMTIzKQoJaW50IDEyMwoJYml0bGVuCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDQKCS8vIGJpdGxlbignZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJpdGxlbgoJcmV0c3ViCgovLyBjb21wdXRlZENvbnN0KCl2b2lkCiphYmlfcm91dGVfY29tcHV0ZWRDb25zdDoKCS8vIGV4ZWN1dGUgY29tcHV0ZWRDb25zdCgpdm9pZAoJY2FsbHN1YiBjb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBjb21wdXRlZENvbnN0KCk6IHZvaWQKY29tcHV0ZWRDb25zdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDA4CgkvLyBhc3NlcnQoQ09NUFVURURfQ09OU1QpCglpbnQgMjQ2Cglhc3NlcnQKCXJldHN1YgoKLy8gbXVsdGlDb21wdXRlZENvbnN0KCl2b2lkCiphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBtdWx0aUNvbXB1dGVkQ29uc3QoKXZvaWQKCWNhbGxzdWIgbXVsdGlDb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUNvbXB1dGVkQ29uc3QoKTogdm9pZAptdWx0aUNvbXB1dGVkQ29uc3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxMgoJLy8gYXNzZXJ0KE1VVExJX0NPTVBVVEVEX0NPTlNUKQoJaW50IDMwMzgxCglhc3NlcnQKCXJldHN1YgoKLy8gcmVhZFNjaGVtYSgpdm9pZAoqYWJpX3JvdXRlX3JlYWRTY2hlbWE6CgkvLyBleGVjdXRlIHJlYWRTY2hlbWEoKXZvaWQKCWNhbGxzdWIgcmVhZFNjaGVtYQoJaW50IDEKCXJldHVybgoKLy8gcmVhZFNjaGVtYSgpOiB2b2lkCnJlYWRTY2hlbWE6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNgoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCA9PT0gMSkKCWludCAxCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNwoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlID09PSAyKQoJaW50IDIKCWR1cAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDE4CgkvLyBhc3NlcnQoU2NoZW1hQ29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQgPT09IDMpCglpbnQgMwoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MTkKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEubG9jYWwubnVtQnl0ZVNsaWNlID09PSA0KQoJaW50IDQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBjb21wYXJpc29uT3IoKWJvb2wKKmFiaV9yb3V0ZV9jb21wYXJpc29uT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29tcGFyaXNvbk9yKClib29sCgljYWxsc3ViIGNvbXBhcmlzb25PcgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb21wYXJpc29uT3IoKTogYm9vbGVhbgpjb21wYXJpc29uT3I6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMwoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy56ZXJvQWRkcmVzcyB8fCB0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuemVyb0FkZHJlc3M7Cgl0eG4gU2VuZGVyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09CglkdXAKCWJueiAqc2tpcF9vcjAKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCXx8Cgoqc2tpcF9vcjA6CglyZXRzdWIKCi8vIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKKmFiaV9yb3V0ZV90eG5BcmdzTWV0aG9kOgoJLy8gX3BheTE6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKF9wYXkxKSBmb3IgdHhuQXJnc01ldGhvZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKCWNhbGxzdWIgdHhuQXJnc01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gdHhuQXJnc01ldGhvZChfcGF5MTogUGF5VHhuKTogdm9pZAp0eG5BcmdzTWV0aG9kOgoJcHJvdG8gMSAwCglyZXRzdWIKCi8vIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCiphYmlfcm91dGVfY2FsbFR4bkFyZ3NNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCgljYWxsc3ViIGNhbGxUeG5BcmdzTWV0aG9kCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsVHhuQXJnc01ldGhvZCgpOiB2b2lkCmNhbGxUeG5BcmdzTWV0aG9kOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzAKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBHZW5lcmFsVGVzdC5wcm90b3R5cGUudHhuQXJnc01ldGhvZD4oewoJLy8gICAgICAgbWV0aG9kQXJnczogW3sgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMCB9XSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDMxCgkvLyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQzMQoJLy8gYW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAidHhuQXJnc01ldGhvZChwYXkpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzEKCS8vIG1ldGhvZEFyZ3M6IFt7IHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBhbW91bnQ6IDAgfV0KCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gc3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkCiphYmlfcm91dGVfc3RhdGljVmFsdWVMZW46CgkvLyB4OiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBzdGF0aWNWYWx1ZUxlbiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKCWNhbGxzdWIgc3RhdGljVmFsdWVMZW4KCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1ZhbHVlTGVuKHg6IHVpbnQyNTYpOiB2b2lkCnN0YXRpY1ZhbHVlTGVuOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzYKCS8vIGFzc2VydChsZW4oeCkpCglpbnQgMzIKCWFzc2VydAoJcmV0c3ViCgovLyBzdGF0aWNUeXBlTGVuKCl2b2lkCiphYmlfcm91dGVfc3RhdGljVHlwZUxlbjoKCS8vIGV4ZWN1dGUgc3RhdGljVHlwZUxlbigpdm9pZAoJY2FsbHN1YiBzdGF0aWNUeXBlTGVuCglpbnQgMQoJcmV0dXJuCgovLyBzdGF0aWNUeXBlTGVuKCk6IHZvaWQKc3RhdGljVHlwZUxlbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDQwCgkvLyBhc3NlcnQobGVuPHVpbnQyNTY+KCkpCglpbnQgMzIKCWFzc2VydAoJcmV0c3ViCgovLyBkeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQKKmFiaV9yb3V0ZV9keW5hbWljU2NyYXRjaFNsb3Q6CgkvLyBleGVjdXRlIGR5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBkeW5hbWljU2NyYXRjaFNsb3QKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNTY3JhdGNoU2xvdCgpOiB2b2lkCmR5bmFtaWNTY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDQ0CgkvLyB0aGlzLmR5bmFtaWNTY3JhdGNoKDEpLnZhbHVlID0gMTMzNwoJaW50IDEKCWludCAxMzM3CglzdG9yZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ0NQoJLy8gYXNzZXJ0KHRoaXMuZHluYW1pY1NjcmF0Y2goMSkudmFsdWUgPT09IDEzMzcpCglpbnQgMQoJbG9hZHMKCWludCAxMzM3Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkCiphYmlfcm91dGVfaW5jcmVtZW50U2NyYXRjaFNsb3Q6CgkvLyBleGVjdXRlIGluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGluY3JlbWVudFNjcmF0Y2hTbG90CglpbnQgMQoJcmV0dXJuCgovLyBpbmNyZW1lbnRTY3JhdGNoU2xvdCgpOiB2b2lkCmluY3JlbWVudFNjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NDkKCS8vIHRoaXMuc2NyYXRjaC52YWx1ZSA9IDEzMzcKCWludCAxMzM3CglzdG9yZSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTAKCS8vIHRoaXMuc2NyYXRjaC52YWx1ZSArPSAxCglsb2FkIDAKCWludCAxCgkrCglzdG9yZSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTEKCS8vIGFzc2VydCh0aGlzLnNjcmF0Y2gudmFsdWUgPT09IDEzMzgpCglsb2FkIDAKCWludCAxMzM4Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX2luY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCk6IHZvaWQKaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTUKCS8vIHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPSAxMzM3CglpbnQgMgoJaW50IDEzMzcKCXN0b3JlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDU2CgkvLyB0aGlzLmR5bmFtaWNTY3JhdGNoKDIpLnZhbHVlICs9IDEKCWludCAyCglsb2FkcwoJaW50IDEKCSsKCWludCAyCglzd2FwCglzdG9yZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1NwoJLy8gYXNzZXJ0KHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPT09IDEzMzgpCglpbnQgMgoJbG9hZHMKCWludCAxMzM4Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGZyb21BZGRyZXNzKCl2b2lkCiphYmlfcm91dGVfZnJvbUFkZHJlc3M6CgkvLyBleGVjdXRlIGZyb21BZGRyZXNzKCl2b2lkCgljYWxsc3ViIGZyb21BZGRyZXNzCglpbnQgMQoJcmV0dXJuCgovLyBmcm9tQWRkcmVzcygpOiB2b2lkCmZyb21BZGRyZXNzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ2MQoJLy8gYSA9IEFkZHJlc3MuZnJvbUFkZHJlc3MoJ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZNUhGS1EnKQoJYWRkciBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRCglmcmFtZV9idXJ5IDAgLy8gYTogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDYyCgkvLyBhc3NlcnQoYSA9PT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGE6IGFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlYXJseVJldHVybih1aW50NjQpdWludDY0CiphYmlfcm91dGVfZWFybHlSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZWFybHlSZXR1cm4odWludDY0KXVpbnQ2NAoJY2FsbHN1YiBlYXJseVJldHVybgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVhcmx5UmV0dXJuKGE6IHVpbnQ2NCk6IHVpbnQ2NAplYXJseVJldHVybjoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDY2CgkvLyBhID09PSAxCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglpbnQgMQoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ2NwoJLy8gcmV0dXJuIDI7CglpbnQgMgoJYiAqZWFybHlSZXR1cm4qcmV0dXJuCgoqaWYxX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDY5CgkvLyBiID0gYSArIDEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzAKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIDAgLy8gYjogdWludDY0CgoqZWFybHlSZXR1cm4qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGFzc2V0TWV0aG9kQXJncygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJnczoKCS8vIGV4ZWN1dGUgYXNzZXRNZXRob2RBcmdzKCl2b2lkCgljYWxsc3ViIGFzc2V0TWV0aG9kQXJncwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRNZXRob2RBcmdzKCk6IHZvaWQKYXNzZXRNZXRob2RBcmdzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzQKCS8vIHNlbmRNZXRob2RDYWxsPFtBc3NldFJlZmVyZW5jZV0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW0Fzc2V0SUQuZnJvbVVpbnQ2NCgxKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgltZXRob2QgImZvbyhhc3NldCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ3NgoJLy8gbWV0aG9kQXJnczogW0Fzc2V0SUQuZnJvbVVpbnQ2NCgxKV0KCWludCAxCglpdHhuX2ZpZWxkIEFzc2V0cwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtdWx0aXBsZVByb2dyYW1QYWdlcygpdm9pZAoqYWJpX3JvdXRlX211bHRpcGxlUHJvZ3JhbVBhZ2VzOgoJLy8gZXhlY3V0ZSBtdWx0aXBsZVByb2dyYW1QYWdlcygpdm9pZAoJY2FsbHN1YiBtdWx0aXBsZVByb2dyYW1QYWdlcwoJaW50IDEKCXJldHVybgoKLy8gbXVsdGlwbGVQcm9ncmFtUGFnZXMoKTogdm9pZAptdWx0aXBsZVByb2dyYW1QYWdlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDg1CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0sCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogW3RoaXMucGFnZU9uZS52YWx1ZSwgdGhpcy5wYWdlVHdvLnZhbHVlXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4NgoJLy8gYXBwcm92YWxQcm9ncmFtOiBbdGhpcy5wYWdlT25lLnZhbHVlLCB0aGlzLnBhZ2VUd28udmFsdWVdCglieXRlIDB4NzA2MTY3NjU0ZjZlNjUgLy8gInBhZ2VPbmUiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBhZ2VPbmUudmFsdWUKCWFzc2VydAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZSAweDcwNjE2NzY1NTQ3NzZmIC8vICJwYWdlVHdvIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wYWdlVHdvLnZhbHVlCglhc3NlcnQKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4NwoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0KCWJ5dGUgMHg3MDYxNjc2NTRmNmU2NSAvLyAicGFnZU9uZSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZU9uZS52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCWJ5dGUgMHg3MDYxNjc2NTU0Nzc2ZiAvLyAicGFnZVR3byIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZVR3by52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2VydENvbW1lbnQoKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRDb21tZW50OgoJLy8gZXhlY3V0ZSBhc3NlcnRDb21tZW50KCl2b2lkCgljYWxsc3ViIGFzc2VydENvbW1lbnQKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydENvbW1lbnQoKTogdm9pZAphc3NlcnRDb21tZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0OTIKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKKmFiaV9yb3V0ZV90aHJvd0Vycm9yTWVzc2FnZToKCS8vIGV4ZWN1dGUgdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvck1lc3NhZ2UKCWludCAxCglyZXR1cm4KCi8vIHRocm93RXJyb3JNZXNzYWdlKCk6IHZvaWQKdGhyb3dFcnJvck1lc3NhZ2U6Cglwcm90byAwIDAKCgkvLyB0aGlzIGlzIGFuIGVycm9yCgllcnIKCXJldHN1YgoKLy8gb3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vckxpdGVyYWxUeXBlOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvckxpdGVyYWxUeXBlKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvckxpdGVyYWxUeXBlCglpbnQgMQoJcmV0dXJuCgovLyBvckxpdGVyYWxUeXBlKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApvckxpdGVyYWxUeXBlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTAwCgkvLyBmb28gPSBhICYmIGIgPT09IDEgPyAyIDogMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglpbnQgMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnQgMgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMCAvLyBmb286IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTAxCgkvLyBhc3NlcnQoZm9vKQoJZnJhbWVfZGlnIDAgLy8gZm9vOiB1aW50NjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTAzCgkvLyBiYXIgPSBhICYmIGIgPT09IDAgPyAnMicgOiAnMCcKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaW50IDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJYnl0ZSAweDMyIC8vICIyIgoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglieXRlIDB4MzAgLy8gIjAiCgoqdGVybmFyeTFfZW5kOgoJZnJhbWVfYnVyeSAxIC8vIGJhcjogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MDQKCS8vIGxvZyhiYXIpCglmcmFtZV9kaWcgMSAvLyBiYXI6IGJ5dGVbXQoJbG9nCglyZXRzdWIKCi8vIG5vbkFiaSgpOiB2b2lkCm5vbkFiaToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MDkKCS8vIGFzc2VydCh0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhLmxlbmd0aCkKCXR4biBOdW1BcHBBcmdzCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMQoJLy8gZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhLmxlbmd0aDsgaSArPSAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTExCgkvLyBpIDwgdGhpcy50eG4uYXBwbGljYXRpb25BcmdzIS5sZW5ndGgKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJdHhuIE51bUFwcEFyZ3MKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMgoJLy8gbG9nKHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyFbaV0pCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCXR4bmFzIEFwcGxpY2F0aW9uQXJncwoJbG9nCgoqZm9yXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMQoJLy8gaSArPSAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCXJldHN1YgoKLy8gbXVsdGlsaW5lRnVuY3Rpb25DYWxsKCl2b2lkCiphYmlfcm91dGVfbXVsdGlsaW5lRnVuY3Rpb25DYWxsOgoJLy8gZXhlY3V0ZSBtdWx0aWxpbmVGdW5jdGlvbkNhbGwoKXZvaWQKCWNhbGxzdWIgbXVsdGlsaW5lRnVuY3Rpb25DYWxsCglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aWxpbmVGdW5jdGlvbkNhbGwoKTogdm9pZAptdWx0aWxpbmVGdW5jdGlvbkNhbGw6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MTcKCS8vIGFwcCA9IEFwcElELnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBhcHA6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE4CgkvLyBhZGRyID0gQWRkcmVzcy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglmcmFtZV9idXJ5IDEgLy8gYWRkcjogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTIwCgkvLyBhcHAubG9jYWxTdGF0ZSgKCS8vICAgICAgIGFkZHIsCgkvLyAgICAgICAna2V5JwoJLy8gICAgICkKCWZyYW1lX2RpZyAxIC8vIGFkZHI6IGFkZHJlc3MKCWludCAwIC8vIGFwcDogdWludDY0CglieXRlIDB4NmI2NTc5IC8vICJrZXkiCglhcHBfbG9jYWxfZ2V0X2V4CgoJLy8gbG9jYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IGFwcC5sb2NhbFN0YXRlKCBhZGRyLCAna2V5JyApCglhc3NlcnQKCXJldHN1YgoKLy8gYSgpdWludDY0CiphYmlfcm91dGVfYToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhKCl1aW50NjQKCWNhbGxzdWIgYQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGEoKTogdWludDY0CmE6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUyNwoJLy8gcmV0dXJuIDM7CglpbnQgMwoJcmV0c3ViCgovLyBiKCl1aW50NjQKKmFiaV9yb3V0ZV9iOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGIoKXVpbnQ2NAoJY2FsbHN1YiBiCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYigpOiB1aW50NjQKYjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTMxCgkvLyByZXR1cm4gNTsKCWludCA1CglyZXRzdWIKCi8vIHVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQKKmFiaV9yb3V0ZV91bnVzZWRNZXRob2RWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1bnVzZWRNZXRob2RWYWx1ZSgpdWludDY0CgljYWxsc3ViIHVudXNlZE1ldGhvZFZhbHVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdW51c2VkTWV0aG9kVmFsdWUoKTogdWludDY0CnVudXNlZE1ldGhvZFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MzUKCS8vIHRoaXMuYSgpCgljYWxsc3ViIGEKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTM2CgkvLyByZXR1cm4gdGhpcy5iKCk7CgljYWxsc3ViIGIKCXJldHN1YgoKLy8gcmVhc3NpZ25lZE5vbkZpcnN0VmFyKCl1aW50NjQKKmFiaV9yb3V0ZV9yZWFzc2lnbmVkTm9uRmlyc3RWYXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmVhc3NpZ25lZE5vbkZpcnN0VmFyKCl1aW50NjQKCWNhbGxzdWIgcmVhc3NpZ25lZE5vbkZpcnN0VmFyCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmVhc3NpZ25lZE5vbkZpcnN0VmFyKCk6IHVpbnQ2NApyZWFzc2lnbmVkTm9uRmlyc3RWYXI6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NDcKCS8vIGEgPSAxIGFzIHVpbnQ2NAoJaW50IDEKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU0OAoJLy8gYiA9IHRoaXMuYXBwLmlkCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglmcmFtZV9idXJ5IDEgLy8gYjogdWludDY0CgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTQ5CgkvLyBhCglmcmFtZV9kaWcgMCAvLyBhOiB1aW50NjQKCWJ6ICppZjJfZW5kCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU1MAoJLy8gYiA9IDIKCWludCAyCglmcmFtZV9idXJ5IDEgLy8gYjogdWludDY0CgoqaWYyX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTUzCgkvLyByZXR1cm4gYjsKCWZyYW1lX2RpZyAxIC8vIGI6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZnZMdigpdm9pZAoqYWJpX3JvdXRlX2Z2THY6CgkvLyBleGVjdXRlIGZ2THYoKXZvaWQKCWNhbGxzdWIgZnZMdgoJaW50IDEKCXJldHVybgoKLy8gZnZMdigpOiB2b2lkCmZ2THY6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU1NwoJLy8gYXNzZXJ0KHRoaXMudHhuLmZpcnN0VmFsaWQpCgl0eG4gRmlyc3RWYWxpZAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NTgKCS8vIGFzc2VydCh0aGlzLnR4bi5sYXN0VmFsaWQpCgl0eG4gTGFzdFZhbGlkCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInR4blR5cGVFbnVtKCl2b2lkIgoJbWV0aG9kICJ0eG5Hcm91cExlbmd0aCgpdm9pZCIKCW1ldGhvZCAiYXNzZXJ0cyhib29sLGJvb2wpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQiCgltZXRob2QgInN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZCIKCW1ldGhvZCAibWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQiCgltZXRob2QgInNoaWZ0KCl2b2lkIgoJbWV0aG9kICJmcm9tQnl0ZXMoKXZvaWQiCgltZXRob2QgImZyb21VaW50NjQoKXZvaWQiCgltZXRob2QgImJ6ZXJvRnVuY3Rpb24oKXZvaWQiCgltZXRob2QgImV2ZW50cygpdm9pZCIKCW1ldGhvZCAibGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdIgoJbWV0aG9kICJzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKXZvaWQiCgltZXRob2QgIm51bWJlclRvU3RyaW5nKCl2b2lkIgoJbWV0aG9kICJtZXRob2RPblBhcmVucygpdm9pZCIKCW1ldGhvZCAic3RyaW5nU3Vic3RyaW5nKCl2b2lkIgoJbWV0aG9kICJpZFByb3BlcnR5KCl2b2lkIgoJbWV0aG9kICJzY3JhdGNoU2xvdCgpdm9pZCIKCW1ldGhvZCAiZWNkc2EoKXZvaWQiCgltZXRob2QgInZlcmlmeVR4blR5cGVzKCl2b2lkIgoJbWV0aG9kICJzdHJpbmdQbHVzRXF1YWxzKCl2b2lkIgoJbWV0aG9kICJpbXBvcnRlZFByb2dyYW0oKWJ5dGVbXSIKCW1ldGhvZCAiY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIoKXZvaWQiCgltZXRob2QgImludGVyYWxQdWJsaWNNZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZCIKCW1ldGhvZCAiYXBwTG9hZFNjcmF0Y2goKXZvaWQiCgltZXRob2QgInVpbnROV2l0aFVuZGVyc2NvcmUoKXVpbnQyNTYiCgltZXRob2QgIm9wVXAoKXZvaWQiCgltZXRob2QgInJldHVyblZhbHVlT25Bc3NpZ25tZW50KClzdHJpbmciCgltZXRob2QgInJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NCIKCW1ldGhvZCAicmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQiCgltZXRob2QgInJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCl1aW50NjQiCgltZXRob2QgInJldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0IgoJbWV0aG9kICJyZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQoKXVpbnQ2NCIKCW1ldGhvZCAiY29uc3RzKCl2b2lkIgoJbWV0aG9kICJhc3NlcnRXaXRoTWVzc2FnZSgpdm9pZCIKCW1ldGhvZCAib3Bjb2RlQWxpYXNlcygpdm9pZCIKCW1ldGhvZCAidnJmVmVyaWZ5T3AoKXZvaWQiCgltZXRob2QgImVjTWF0aCgpdm9pZCIKCW1ldGhvZCAiZ2l0eG4oKXZvaWQiCgltZXRob2QgImdldFNldEJ5dGVzKCl2b2lkIgoJbWV0aG9kICJnZXRTZXRVaW50NjQoKXZvaWQiCgltZXRob2QgImJsb2NrT3AoKXZvaWQiCgltZXRob2QgImI2NCgpdm9pZCIKCW1ldGhvZCAianNvbigpdm9pZCIKCW1ldGhvZCAiYml0bGVuT3AoKXZvaWQiCgltZXRob2QgImNvbXB1dGVkQ29uc3QoKXZvaWQiCgltZXRob2QgIm11bHRpQ29tcHV0ZWRDb25zdCgpdm9pZCIKCW1ldGhvZCAicmVhZFNjaGVtYSgpdm9pZCIKCW1ldGhvZCAiY29tcGFyaXNvbk9yKClib29sIgoJbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJbWV0aG9kICJjYWxsVHhuQXJnc01ldGhvZCgpdm9pZCIKCW1ldGhvZCAic3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkIgoJbWV0aG9kICJzdGF0aWNUeXBlTGVuKCl2b2lkIgoJbWV0aG9kICJkeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCgltZXRob2QgImluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkIgoJbWV0aG9kICJpbmNyZW1lbnREeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCgltZXRob2QgImZyb21BZGRyZXNzKCl2b2lkIgoJbWV0aG9kICJlYXJseVJldHVybih1aW50NjQpdWludDY0IgoJbWV0aG9kICJhc3NldE1ldGhvZEFyZ3MoKXZvaWQiCgltZXRob2QgIm11bHRpcGxlUHJvZ3JhbVBhZ2VzKCl2b2lkIgoJbWV0aG9kICJhc3NlcnRDb21tZW50KCl2b2lkIgoJbWV0aG9kICJ0aHJvd0Vycm9yTWVzc2FnZSgpdm9pZCIKCW1ldGhvZCAib3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQiCgltZXRob2QgIm11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpdm9pZCIKCW1ldGhvZCAiYSgpdWludDY0IgoJbWV0aG9kICJiKCl1aW50NjQiCgltZXRob2QgInVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQiCgltZXRob2QgInJlYXNzaWduZWROb25GaXJzdFZhcigpdWludDY0IgoJbWV0aG9kICJmdkx2KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlRW51bSAqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoICphYmlfcm91dGVfYXNzZXJ0cyAqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21BcmcgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Db25kaXRpb24gKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluICphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiAqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cCAqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzICphYmlfcm91dGVfc2hpZnQgKmFiaV9yb3V0ZV9mcm9tQnl0ZXMgKmFiaV9yb3V0ZV9mcm9tVWludDY0ICphYmlfcm91dGVfYnplcm9GdW5jdGlvbiAqYWJpX3JvdXRlX2V2ZW50cyAqYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbiAqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllcyAqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nICphYmlfcm91dGVfbWV0aG9kT25QYXJlbnMgKmFiaV9yb3V0ZV9zdHJpbmdTdWJzdHJpbmcgKmFiaV9yb3V0ZV9pZFByb3BlcnR5ICphYmlfcm91dGVfc2NyYXRjaFNsb3QgKmFiaV9yb3V0ZV9lY2RzYSAqYWJpX3JvdXRlX3ZlcmlmeVR4blR5cGVzICphYmlfcm91dGVfc3RyaW5nUGx1c0VxdWFscyAqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbSAqYWJpX3JvdXRlX2NhbGxQcml2YXRlRGVmaW5lZExhdGVyICphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2NhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2FwcExvYWRTY3JhdGNoICphYmlfcm91dGVfdWludE5XaXRoVW5kZXJzY29yZSAqYWJpX3JvdXRlX29wVXAgKmFiaV9yb3V0ZV9yZXR1cm5WYWx1ZU9uQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX2NvbnN0cyAqYWJpX3JvdXRlX2Fzc2VydFdpdGhNZXNzYWdlICphYmlfcm91dGVfb3Bjb2RlQWxpYXNlcyAqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wICphYmlfcm91dGVfZWNNYXRoICphYmlfcm91dGVfZ2l0eG4gKmFiaV9yb3V0ZV9nZXRTZXRCeXRlcyAqYWJpX3JvdXRlX2dldFNldFVpbnQ2NCAqYWJpX3JvdXRlX2Jsb2NrT3AgKmFiaV9yb3V0ZV9iNjQgKmFiaV9yb3V0ZV9qc29uICphYmlfcm91dGVfYml0bGVuT3AgKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0ICphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0ICphYmlfcm91dGVfcmVhZFNjaGVtYSAqYWJpX3JvdXRlX2NvbXBhcmlzb25PciAqYWJpX3JvdXRlX3R4bkFyZ3NNZXRob2QgKmFiaV9yb3V0ZV9jYWxsVHhuQXJnc01ldGhvZCAqYWJpX3JvdXRlX3N0YXRpY1ZhbHVlTGVuICphYmlfcm91dGVfc3RhdGljVHlwZUxlbiAqYWJpX3JvdXRlX2R5bmFtaWNTY3JhdGNoU2xvdCAqYWJpX3JvdXRlX2luY3JlbWVudFNjcmF0Y2hTbG90ICphYmlfcm91dGVfaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90ICphYmlfcm91dGVfZnJvbUFkZHJlc3MgKmFiaV9yb3V0ZV9lYXJseVJldHVybiAqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJncyAqYWJpX3JvdXRlX211bHRpcGxlUHJvZ3JhbVBhZ2VzICphYmlfcm91dGVfYXNzZXJ0Q29tbWVudCAqYWJpX3JvdXRlX3Rocm93RXJyb3JNZXNzYWdlICphYmlfcm91dGVfb3JMaXRlcmFsVHlwZSAqYWJpX3JvdXRlX211bHRpbGluZUZ1bmN0aW9uQ2FsbCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iICphYmlfcm91dGVfdW51c2VkTWV0aG9kVmFsdWUgKmFiaV9yb3V0ZV9yZWFzc2lnbmVkTm9uRmlyc3RWYXIgKmFiaV9yb3V0ZV9mdkx2CgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpCglpbnQgMQoJcmV0dXJuCgoqaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJYnl0ZSAweDMwMzEzMjMzMzQzNTM2MzczODM5IC8vICIwMTIzNDU2Nzg5IgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEKCWV4dHJhY3QzCglyZXRzdWIKCQoKKml0b2E6Cglwcm90byAxIDEKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAwCgk9PQoJYnogKml0b2FfaWZfZW5kCglieXRlIDB4MzAKCXJldHN1YgoKKml0b2FfaWZfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCglpbnQgMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgkvCgljYWxsc3ViICppdG9hCgliICppdG9hX3Rlcm5hcnlfZW5kCgoqaXRvYV90ZXJuYXJ5X2ZhbHNlOgoJYnl0ZSAweCAvLyAiIgoKKml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCSUKCWNhbGxzdWIgKmludFRvQXNjaWkKCWNvbmNhdAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAgNiAxMzM3IDIgNSAxMjMgNApieXRlY2Jsb2NrIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzIDB4MTUxZjdjNzUgMHgwYTgxMDEgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgMHggMHg2NjZmNmYgMHgwMDAwMDAwMDAwMDAwMDAwMDAgMHgwMDAwMDAwMDAwMDAwMDAxIDB4NzA2MTY3NjU0ZjZlNjUgMHg3MDYxNjc2NTU0Nzc2ZiAweDY3NGI2NTc5IDB4MmM2MzZlZWIgMHg2MjYxNzIgMHg2Mjc5NjUgMHgwMDAwIDB4MzAKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyAhISEhIFdBUk5JTkc6IFRoaXMgY29udHJhY3QgaXMgKk5PVCogQVJDNCBjb21wbGlhbnQuIEl0IG1heSBjb250YWluIEFCSSBtZXRob2RzLCBidXQgaXQgYWxzbyBhbGxvd3MgYXBwIGNhbGxzIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIE5PVCBtYXRjaCBhbiBBQkkgc2VsZWN0b3IKCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHR4blR5cGVFbnVtKCl2b2lkCiphYmlfcm91dGVfdHhuVHlwZUVudW06CgkvLyBleGVjdXRlIHR4blR5cGVFbnVtKCl2b2lkCgljYWxsc3ViIHR4blR5cGVFbnVtCglpbnQgMQoJcmV0dXJuCgovLyB0eG5UeXBlRW51bSgpOiB2b2lkCnR4blR5cGVFbnVtOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2NQoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXBbMF0udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwpCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCA2IC8vIGFwcGwKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdHhuR3JvdXBMZW5ndGgoKXZvaWQKKmFiaV9yb3V0ZV90eG5Hcm91cExlbmd0aDoKCS8vIGV4ZWN1dGUgdHhuR3JvdXBMZW5ndGgoKXZvaWQKCWNhbGxzdWIgdHhuR3JvdXBMZW5ndGgKCWludCAxCglyZXR1cm4KCi8vIHR4bkdyb3VwTGVuZ3RoKCk6IHZvaWQKdHhuR3JvdXBMZW5ndGg6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjY5CgkvLyBhc3NlcnQodGhpcy50eG5Hcm91cC5sZW5ndGggPT09IDEpCglnbG9iYWwgR3JvdXBTaXplCglpbnQgMQoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhc3NlcnRzKGJvb2wsYm9vbCl2b2lkCiphYmlfcm91dGVfYXNzZXJ0czoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcyKSBmb3IgYXNzZXJ0cyBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFyZzEpIGZvciBhc3NlcnRzIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGFzc2VydHMoYm9vbCxib29sKXZvaWQKCWNhbGxzdWIgYXNzZXJ0cwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXJ0cyhhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogdm9pZAphc3NlcnRzOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo3MwoJLy8gYXNzZXJ0cyhhcmcxLCBhcmcyLCBhcmcxID09PSBhcmcyKQoJZnJhbWVfZGlnIC0xIC8vIGFyZzE6IGJvb2xlYW4KCgkvLyBhc3NlcnRzIGZhaWxlZDogYXNzZXJ0cyhhcmcxLCBhcmcyLCBhcmcxID09PSBhcmcyKQoJYXNzZXJ0CglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbGVhbgoKCS8vIGFzc2VydHMgZmFpbGVkOiBhc3NlcnRzKGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBhcmcxOiBib29sZWFuCglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbGVhbgoJPT0KCgkvLyBhc3NlcnRzIGZhaWxlZDogYXNzZXJ0cyhhcmcxLCBhcmcyLCBhcmcxID09PSBhcmcyKQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tQXJnOgoJLy8gc29tZVBheTogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCAxIC8vIHBheQoJPT0KCgkvLyBhcmd1bWVudCAwIChzb21lUGF5KSBmb3IgdmVyaWZ5VHhuRnJvbUFyZyBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuRnJvbUFyZwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhzb21lUGF5OiBQYXlUeG4pOiB2b2lkCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjc3CgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InNvbWVQYXkiLCJmaWVsZCI6InJlY2VpdmVyIiwiZXhwZWN0ZWQiOiJ0aGlzLmFwcC5hZGRyZXNzIn0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJcHVzaGludCAxMDBfMDAwCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoic29tZVBheSIsImZpZWxkIjoiYW1vdW50IiwiZXhwZWN0ZWQiOiIxMDBfMDAwIn0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAoKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXA6CgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAKCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpOiB2b2lkCnZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6ODEKCS8vIHZlcmlmeVR4bih0aGlzLnR4bkdyb3VwWzBdLCB7IHNlbmRlcjogdGhpcy50eG4uc2VuZGVyIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglpbnQgMAoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoic2VuZGVyIiwiZXhwZWN0ZWQiOiJ0aGlzLnR4bi5zZW5kZXIifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4bkNvbmRpdGlvbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuQ29uZGl0aW9uKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkNvbmRpdGlvbgoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuQ29uZGl0aW9uKCk6IHZvaWQKdmVyaWZ5VHhuQ29uZGl0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4NQoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiB7IGdyZWF0ZXJUaGFuOiAxIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBhcHBsaWNhdGlvbklECgl0eG4gQXBwbGljYXRpb25JRAoJaW50IDEKCT4KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuIiwiZmllbGQiOiJhcHBsaWNhdGlvbklEIiwiY29uZGl0aW9uIjoiZ3JlYXRlclRoYW4iLCJleHBlY3RlZCI6Ij4xIn0KCWFzc2VydAoJcmV0c3ViCgovLyB2ZXJpZnlUeG5JbmNsdWRlZEluKCl2b2lkCiphYmlfcm91dGVfdmVyaWZ5VHhuSW5jbHVkZWRJbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuSW5jbHVkZWRJbigpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5JbmNsdWRlZEluCglpbnQgMQoJcmV0dXJuCgovLyB2ZXJpZnlUeG5JbmNsdWRlZEluKCk6IHZvaWQKdmVyaWZ5VHhuSW5jbHVkZWRJbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTEKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IGluY2x1ZGVkSW46IFt0aGlzLnR4bi5zZW5kZXJdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCXR4biBTZW5kZXIKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOnsidHhuVGV4dCI6InRoaXMudHhuIn0sImZpZWxkIjoic2VuZGVyIiwiY29uZGl0aW9uIjoiaW5jbHVkZWRJbiIsImV4cGVjdGVkIjoiW3RoaXMudHhuLnNlbmRlcl0ifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKXZvaWQKKmFiaV9yb3V0ZV92ZXJpZnlUeG5Ob3RJbmNsdWRlZEluOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluKCl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4KCWludCAxCglyZXR1cm4KCi8vIHZlcmlmeVR4bk5vdEluY2x1ZGVkSW4oKTogdm9pZAp2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo5NwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgbm90SW5jbHVkZWRJbjogW2dsb2JhbHMuemVyb0FkZHJlc3NdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6eyJ0eG5UZXh0IjoidGhpcy50eG4ifSwiZmllbGQiOiJzZW5kZXIiLCJjb25kaXRpb24iOiJub3RJbmNsdWRlZEluIiwiZXhwZWN0ZWQiOiJbZ2xvYmFscy56ZXJvQWRkcmVzc10ifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN1Ym1pdFBlbmRpbmdHcm91cCgpdm9pZAoqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cDoKCS8vIGV4ZWN1dGUgc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCgljYWxsc3ViIHN1Ym1pdFBlbmRpbmdHcm91cAoJaW50IDEKCXJldHVybgoKLy8gc3VibWl0UGVuZGluZ0dyb3VwKCk6IHZvaWQKc3VibWl0UGVuZGluZ0dyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDMKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZFBheW1lbnQoeyBhbW91bnQ6IDAsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBpc0ZpcnN0VHhuOiB0cnVlIH0pCglpdHhuX2JlZ2luCglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwMwoJLy8gYW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwMwoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDQKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZFBheW1lbnQoeyBhbW91bnQ6IDAsIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzLCBub3RlOiAnZm9vJyB9KQoJaXR4bl9uZXh0CglpbnQgMSAvLyBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNAoJLy8gYW1vdW50OiAwCglpbnQgMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDQKCS8vIG5vdGU6ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNQoJLy8gdGhpcy5wZW5kaW5nR3JvdXAuc3VibWl0KCkKCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG1ldGhvZFdpdGhUeG5BcmdzKCl2b2lkCiphYmlfcm91dGVfbWV0aG9kV2l0aFR4bkFyZ3M6CgkvLyBleGVjdXRlIG1ldGhvZFdpdGhUeG5BcmdzKCl2b2lkCgljYWxsc3ViIG1ldGhvZFdpdGhUeG5BcmdzCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RXaXRoVHhuQXJncygpOiB2b2lkCm1ldGhvZFdpdGhUeG5BcmdzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDkKCS8vIHNlbmRNZXRob2RDYWxsPFtQYXlUeG4sIE1ldGhvZENhbGw8W3VpbnQ2NF0sIHZvaWQ+XSwgdm9pZD4oewoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgYW1vdW50OiAxMDBfMDAwLCByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyIH0sCgkvLyAgICAgICAgIHsKCS8vICAgICAgICAgICBuYW1lOiAnYmFyJywKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBJRC5mcm9tVWludDY0KDEzMzcpLAoJLy8gICAgICAgICAgIG1ldGhvZEFyZ3M6IFsxXSwKCS8vICAgICAgICAgfSwKCS8vICAgICAgIF0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTEyCgkvLyBhbW91bnQ6IDEwMF8wMDAKCXB1c2hpbnQgMTAwXzAwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExMgoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHgwZThjYjlmNiAvLyBtZXRob2QgImJhcih1aW50NjQpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTUKCS8vIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMTMzNykKCWludCAxMzM3CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExNgoJLy8gbWV0aG9kQXJnczogWzFdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMQoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJcHVzaGJ5dGVzIDB4NmM2ZjdhMDggLy8gbWV0aG9kICJmb28ocGF5LGFwcGwpdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTEKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXQoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBzaGlmdCgpdm9pZAoqYWJpX3JvdXRlX3NoaWZ0OgoJLy8gZXhlY3V0ZSBzaGlmdCgpdm9pZAoJY2FsbHN1YiBzaGlmdAoJaW50IDEKCXJldHVybgoKLy8gc2hpZnQoKTogdm9pZApzaGlmdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTIzCgkvLyBhc3NlcnQoMSA8PCAyID09PSA0KQoJaW50IDEKCWludCAyCglzaGwKCWludCA0Cgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjQKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCiphYmlfcm91dGVfZnJvbUJ5dGVzOgoJLy8gZXhlY3V0ZSBmcm9tQnl0ZXMoKXZvaWQKCWNhbGxzdWIgZnJvbUJ5dGVzCglpbnQgMQoJcmV0dXJuCgovLyBmcm9tQnl0ZXMoKTogdm9pZApmcm9tQnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyOAoJLy8gYXNzZXJ0KEFkZHJlc3MuZnJvbUJ5dGVzKCdhYmMnKS5taW5CYWxhbmNlKQoJcHVzaGJ5dGVzIDB4NjE2MjYzIC8vICJhYmMiCglhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGZyb21VaW50NjQoKXZvaWQKKmFiaV9yb3V0ZV9mcm9tVWludDY0OgoJLy8gZXhlY3V0ZSBmcm9tVWludDY0KCl2b2lkCgljYWxsc3ViIGZyb21VaW50NjQKCWludCAxCglyZXR1cm4KCi8vIGZyb21VaW50NjQoKTogdm9pZApmcm9tVWludDY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzIKCS8vIGxvZyhBcHBJRC5mcm9tVWludDY0KDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFwcF9wYXJhbXNfZ2V0IEFwcENyZWF0b3IKCXBvcAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzMKCS8vIGxvZyhBc3NldElELmZyb21VaW50NjQoMTIzKS5jcmVhdG9yKQoJaW50IDEyMwoJYXNzZXRfcGFyYW1zX2dldCBBc3NldENyZWF0b3IKCXBvcAoJbG9nCglyZXRzdWIKCi8vIGJ6ZXJvRnVuY3Rpb24oKXZvaWQKKmFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uOgoJLy8gZXhlY3V0ZSBiemVyb0Z1bmN0aW9uKCl2b2lkCgljYWxsc3ViIGJ6ZXJvRnVuY3Rpb24KCWludCAxCglyZXR1cm4KCi8vIGJ6ZXJvRnVuY3Rpb24oKTogdm9pZApiemVyb0Z1bmN0aW9uOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM4CgkvLyB4OiBieXRlcyA9IGJ6ZXJvKDIpCglieXRlIDB4MDAwMAoJZnJhbWVfYnVyeSAwIC8vIHg6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzkKCS8vIHk6IGJ5dGVzID0gYnplcm8obikKCWludCAxCgliemVybwoJZnJhbWVfYnVyeSAxIC8vIHk6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNDAKCS8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dID0gYnplcm88W3VpbnQ2NCwgdWludDw4Pl0+KCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgMiAvLyB6OiBbdWludDY0LCB1aW50PDg+XQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQxCgkvLyBhc3NlcnQobGVuKHggKyB5ICsgeikgPT09IDEyKQoJYnl0ZSAweDAwMDAgLy8geDogYnl0ZXMKCWZyYW1lX2RpZyAxIC8vIHk6IGJ5dGVzCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAgLy8gejogW3VpbnQ2NCwgdWludDw4Pl0KCWNvbmNhdAoJbGVuCglwdXNoaW50IDEyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGV2ZW50cygpdm9pZAoqYWJpX3JvdXRlX2V2ZW50czoKCS8vIGV4ZWN1dGUgZXZlbnRzKCl2b2lkCgljYWxsc3ViIGV2ZW50cwoJaW50IDEKCXJldHVybgoKLy8gZXZlbnRzKCk6IHZvaWQKZXZlbnRzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTYKCS8vIHRoaXMubXlFdmVudC5sb2coeyBhcHA6IHRoaXMuYXBwLCBudW06IDEgfSkKCXB1c2hieXRlcyAweDg3NTI4MTk2IC8vIG15RXZlbnQodWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljb25jYXQKCWNvbmNhdAoJbG9nCglyZXRzdWIKCi8vIGxldE9wdGltaXphdGlvbih1aW50NjRbXSl1aW50NjRbXQoqYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYTogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10KCWNhbGxzdWIgbGV0T3B0aW1pemF0aW9uCglkdXAKCWxlbgoJcHVzaGludCA4CgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbGV0T3B0aW1pemF0aW9uKGE6IHVpbnQ2NFtdKTogdWludDY0W10KbGV0T3B0aW1pemF0aW9uOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjAKCS8vIGFzc2VydChhWzBdKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAwIDgKCWJ0b2kKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTYyCgkvLyBiID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IC0xIC8vIGI6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjQKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglyZXRzdWIKCi8vIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCS8vIGV4ZWN1dGUgc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkCgljYWxsc3ViIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcwoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCk6IHZvaWQKc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjgKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIG9uQ29tcGxldGlvbjogT25Db21wbGV0aW9uLk5vT3AsCgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCksCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogRHVtbXlDb250cmFjdC5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTY5CgkvLyBvbkNvbXBsZXRpb246IE9uQ29tcGxldGlvbi5Ob09wCglpbnQgMCAvLyBOb09wCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTcwCgkvLyBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCkKCXB1c2hieXRlcyAweDBhMzExODE0ODEwNjBiMzExOTA4OGQwYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE3MQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IER1bW15Q29udHJhY3QuY2xlYXJQcm9ncmFtKCkKCXB1c2hieXRlcyAweDBhCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzIKCS8vIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UKCWludCAwCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzMKCS8vIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludAoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzQKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNzUKCS8vIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBudW1iZXJUb1N0cmluZygpdm9pZAoqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nOgoJLy8gZXhlY3V0ZSBudW1iZXJUb1N0cmluZygpdm9pZAoJY2FsbHN1YiBudW1iZXJUb1N0cmluZwoJaW50IDEKCXJldHVybgoKLy8gbnVtYmVyVG9TdHJpbmcoKTogdm9pZApudW1iZXJUb1N0cmluZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTgyCgkvLyBhc3NlcnQobi50b1N0cmluZygpID09PSBzKQoJaW50IDEKCWNhbGxzdWIgKml0b2EKCXB1c2hieXRlcyAiMSIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbWV0aG9kT25QYXJlbnMoKXZvaWQKKmFiaV9yb3V0ZV9tZXRob2RPblBhcmVuczoKCS8vIGV4ZWN1dGUgbWV0aG9kT25QYXJlbnMoKXZvaWQKCWNhbGxzdWIgbWV0aG9kT25QYXJlbnMKCWludCAxCglyZXR1cm4KCi8vIG1ldGhvZE9uUGFyZW5zKCk6IHZvaWQKbWV0aG9kT25QYXJlbnM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE4NgoJLy8gYXNzZXJ0KCgxICsgMikudG9TdHJpbmcoKSA9PT0gJzMnKQoJcHVzaGludCAzCgljYWxsc3ViICppdG9hCglwdXNoYnl0ZXMgMHgzMyAvLyAiMyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gc3RyaW5nU3Vic3RyaW5nKCl2b2lkCiphYmlfcm91dGVfc3RyaW5nU3Vic3RyaW5nOgoJLy8gZXhlY3V0ZSBzdHJpbmdTdWJzdHJpbmcoKXZvaWQKCWNhbGxzdWIgc3RyaW5nU3Vic3RyaW5nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdTdWJzdHJpbmcoKTogdm9pZApzdHJpbmdTdWJzdHJpbmc6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE5MQoJLy8gYXNzZXJ0KHMuc3Vic3RyaW5nKDEsIDMpID09PSAnYmMnKQoJcHVzaGJ5dGVzICJhYmNkZWYiCglzdWJzdHJpbmcgMSAzCglwdXNoYnl0ZXMgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAoqYWJpX3JvdXRlX2lkUHJvcGVydHk6CgkvLyBleGVjdXRlIGlkUHJvcGVydHkoKXZvaWQKCWNhbGxzdWIgaWRQcm9wZXJ0eQoJaW50IDEKCXJldHVybgoKLy8gaWRQcm9wZXJ0eSgpOiB2b2lkCmlkUHJvcGVydHk6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTUKCS8vIGFwcCA9IEFwcElELnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBhcHA6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTk2CgkvLyBhc3NlcnQoQXBwSUQuZnJvbVVpbnQ2NChhcHAuaWQpID09PSBhcHApCglpbnQgMCAvLyBhcHA6IHVpbnQ2NAoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTgKCS8vIGFzYSA9IEFzc2V0SUQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGFzYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOTkKCS8vIGFzc2VydChBc3NldElELmZyb21VaW50NjQoYXNhLmlkKSA9PT0gYXNhKQoJaW50IDAgLy8gYXNhOiB1aW50NjQKCWR1cAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gc2NyYXRjaFNsb3QoKTogdm9pZApzY3JhdGNoU2xvdDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjAzCgkvLyB0aGlzLnNjcmF0Y2gudmFsdWUgPSAxMzM3CglpbnQgMTMzNwoJc3RvcmUgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjA0CgkvLyBhc3NlcnQodGhpcy5zY3JhdGNoLnZhbHVlID09PSAxMzM3KQoJbG9hZCAwCglpbnQgMTMzNwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlY2RzYSgpdm9pZAoqYWJpX3JvdXRlX2VjZHNhOgoJLy8gZXhlY3V0ZSBlY2RzYSgpdm9pZAoJY2FsbHN1YiBlY2RzYQoJaW50IDEKCXJldHVybgoKLy8gZWNkc2EoKTogdm9pZAplY2RzYToKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwOAoJLy8gZWNkc2FWZXJpZnkoJ1NlY3AyNTZrMScsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIsICcnIGFzIGJ5dGVzMzIpCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAiIgoJZHVwbiA0CgllY2RzYV92ZXJpZnkgU2VjcDI1NmsxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMDkKCS8vIGQgPSBlY2RzYVBrRGVjb21wcmVzcygnU2VjcDI1NmsxJywgJycgYXMgYnl0ZXM8MzM+KQoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCgllY2RzYV9wa19kZWNvbXByZXNzIFNlY3AyNTZrMQoJZnJhbWVfYnVyeSAwIC8vIGQgeSBjb21wb25lbnQ6IGJ5dGVbXQoJZnJhbWVfYnVyeSAxIC8vIGQgeCBjb21wb25lbnQ6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjEwCgkvLyBsb2coZC55KQoJZnJhbWVfZGlnIDAgLy8gZCB5IGNvbXBvbmVudDogYnl0ZVtdCglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIxMQoJLy8gbG9nKGQueCkKCWZyYW1lX2RpZyAxIC8vIGQgeCBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTMKCS8vIHIgPSBlY2RzYVBrUmVjb3ZlcignU2VjcDI1NmsxJywgJycgYXMgYnl0ZXMzMiwgMSwgJycgYXMgYnl0ZXMzMiwgJycgYXMgYnl0ZXMzMikKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vICIiCglpbnQgMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgLy8gIiIKCWR1cAoJZWNkc2FfcGtfcmVjb3ZlciBTZWNwMjU2azEKCWZyYW1lX2J1cnkgMiAvLyByIHkgY29tcG9uZW50OiBieXRlW10KCWZyYW1lX2J1cnkgMyAvLyByIHggY29tcG9uZW50OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIxNAoJLy8gbG9nKHIueSkKCWZyYW1lX2RpZyAyIC8vIHIgeSBjb21wb25lbnQ6IGJ5dGVbXQoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyMTUKCS8vIGxvZyhyLngpCglmcmFtZV9kaWcgMyAvLyByIHggY29tcG9uZW50OiBieXRlW10KCWxvZwoJcmV0c3ViCgovLyB2ZXJpZnlUeG5UeXBlcygpdm9pZAoqYWJpX3JvdXRlX3ZlcmlmeVR4blR5cGVzOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5UeXBlcygpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5UeXBlcwoJaW50IDEKCXJldHVybgoKLy8gdmVyaWZ5VHhuVHlwZXMoKTogdm9pZAp2ZXJpZnlUeG5UeXBlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjE5CgkvLyB2ZXJpZnlQYXlUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgYW1vdW50OiB7IGdyZWF0ZXJUaGFuOiAwIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBwYXkKCWludCAwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoidHlwZUVudW0iLCJleHBlY3RlZCI6InBheSJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglpbnQgMAoJZ3R4bnMgQW1vdW50CglpbnQgMAoJPgoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYW1vdW50IiwiY29uZGl0aW9uIjoiZ3JlYXRlclRoYW4iLCJleHBlY3RlZCI6Ij4wIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjIzCgkvLyB2ZXJpZnlBcHBDYWxsVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcElELmZyb21VaW50NjQoMCksCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IHsKCS8vICAgICAgICAgMDogJ2ZvbycsCgkvLyAgICAgICAgIDE6IHsKCS8vICAgICAgICAgICBpbmNsdWRlZEluOiBbJ2JhcicsICdiYXonXSwKCS8vICAgICAgICAgfSwKCS8vICAgICAgIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBhcHBsCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCA2IC8vIGFwcGwKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoiYXBwbCJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25JRAoJaW50IDAKCWd0eG5zIEFwcGxpY2F0aW9uSUQKCWludCAwCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYXBwbGljYXRpb25JRCIsImV4cGVjdGVkIjoiQXBwSUQuZnJvbVVpbnQ2NCgwKSJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzCgkvLyB2ZXJpZnkgYXBwbGljYXRpb25BcmdzIDAKCWludCAwCglndHhucyBBcHBsaWNhdGlvbkFyZ3MgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6ImFwcGxpY2F0aW9uQXJncyIsImluZGV4IjoiMCIsImV4cGVjdGVkIjoiJ2ZvbycifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uQXJncyAxCglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09CglpbnQgMAoJZ3R4bnMgQXBwbGljYXRpb25BcmdzIDEKCXB1c2hieXRlcyAweDYyNjE3YSAvLyAiYmF6IgoJPT0KCXx8CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOnsidHhuVGV4dCI6InRoaXMudHhuR3JvdXBbMF0ifSwiZmllbGQiOiJhcHBsaWNhdGlvbkFyZ3MgMSIsImNvbmRpdGlvbiI6ImluY2x1ZGVkSW4iLCJleHBlY3RlZCI6IlsnYmFyJywgJ2JheiddIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjMzCgkvLyB2ZXJpZnlBc3NldFRyYW5zZmVyVHhuKHRoaXMudHhuR3JvdXBbMF0sIHsKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBheGZlcgoJaW50IDAKCWd0eG5zIFR5cGVFbnVtCglpbnQgNCAvLyBheGZlcgoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJheGZlciJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJaW50IDAKCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoKCS8vIHRyYW5zYWN0aW9uIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IHsidHhuIjoidGhpcy50eG5Hcm91cFswXSIsImZpZWxkIjoiYXNzZXRSZWNlaXZlciIsImV4cGVjdGVkIjoidGhpcy5hcHAuYWRkcmVzcyJ9Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIzNwoJLy8gdmVyaWZ5QXNzZXRDb25maWdUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgY29uZmlnQXNzZXQ6IEFzc2V0SUQuZnJvbVVpbnQ2NCgwKSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFjZmcKCWludCAwCglndHhucyBUeXBlRW51bQoJcHVzaGludCAzIC8vIGFjZmcKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ0eXBlRW51bSIsImV4cGVjdGVkIjoiYWNmZyJ9Cglhc3NlcnQKCgkvLyB2ZXJpZnkgY29uZmlnQXNzZXQKCWludCAwCglndHhucyBDb25maWdBc3NldAoJaW50IDAKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJjb25maWdBc3NldCIsImV4cGVjdGVkIjoiQXNzZXRJRC5mcm9tVWludDY0KDApIn0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjQxCgkvLyB2ZXJpZnlLZXlSZWdUeG4odGhpcy50eG5Hcm91cFswXSwgewoJLy8gICAgICAgdm90ZUZpcnN0OiAxMzM3LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkga2V5cmVnCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCAyIC8vIGtleXJlZwoJPT0KCgkvLyB0cmFuc2FjdGlvbiB2ZXJpZmljYXRpb24gZmFpbGVkOiB7InR4biI6InRoaXMudHhuR3JvdXBbMF0iLCJmaWVsZCI6InR5cGVFbnVtIiwiZXhwZWN0ZWQiOiJrZXlyZWcifQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHZvdGVGaXJzdAoJaW50IDAKCWd0eG5zIFZvdGVGaXJzdAoJaW50IDEzMzcKCT09CgoJLy8gdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZhaWxlZDogeyJ0eG4iOiJ0aGlzLnR4bkdyb3VwWzBdIiwiZmllbGQiOiJ2b3RlRmlyc3QiLCJleHBlY3RlZCI6IjEzMzcifQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1BsdXNFcXVhbHMoKXZvaWQKKmFiaV9yb3V0ZV9zdHJpbmdQbHVzRXF1YWxzOgoJLy8gZXhlY3V0ZSBzdHJpbmdQbHVzRXF1YWxzKCl2b2lkCgljYWxsc3ViIHN0cmluZ1BsdXNFcXVhbHMKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1BsdXNFcXVhbHMoKTogdm9pZApzdHJpbmdQbHVzRXF1YWxzOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI0NwoJLy8gcyA9ICdmb28nCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDgKCS8vIHMgKz0gJ2JhcicKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJY29uY2F0CglmcmFtZV9idXJ5IDAgLy8gczogYnl0ZVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNDkKCS8vIGFzc2VydChzID09PSAnZm9vYmFyJykKCWZyYW1lX2RpZyAwIC8vIHM6IGJ5dGVbXQoJcHVzaGJ5dGVzIDB4NjY2ZjZmNjI2MTcyIC8vICJmb29iYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdCiphYmlfcm91dGVfaW1wb3J0ZWRQcm9ncmFtOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdCgljYWxsc3ViIGltcG9ydGVkUHJvZ3JhbQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbXBvcnRlZFByb2dyYW0oKTogYnl0ZXMKaW1wb3J0ZWRQcm9ncmFtOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNTMKCS8vIHJldHVybiBJZlRlc3QuYXBwcm92YWxQcm9ncmFtKCk7CglwdXNoYnl0ZXMgMHgwYTIwMDIwMTAwMjYwOTA0MTUxZjdjNzUwNDY1NmM3MzY1MDI2OTY2MDk2NTZjNzM2NTIwNjk2NjIwMzEwOTY1NmM3MzY1MjA2OTY2MjAzMjA3NjU2YzczNjUyMDY5NjYwMzY1NmU2NDAzNjY2ZjZmMDAzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDQxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA0MTUxZjdjNzUzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDEwMThiZmY0MTAwMDU4MDAyNjk2Njg5ODAwMzY1NmU2NDg5ODAwNDE1MWY3Yzc1MzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAxMDE4YmZmNDEwMDA4ODAwMjY5NjY4OTQyMDAwNzgwMDQ2NTZjNzM2NTg5ODk4MDA0MTUxZjdjNzUzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDIwMThiZmY0MTAwMDg4MDAyNjk2Njg5NDIwMDBmOGJmZTQxMDAwYTgwMDc2NTZjNzM2NTIwNjk2Njg5ODAwMzY1NmU2NDg5ODAwNDE1MWY3Yzc1MzYxYTAyNDkxNTgxMDExMjQ0ODEwMDUzMzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDA4ODAwMjY5NjY4OTQyMDAxOThiZmU0MTAwMGQ4MDA3NjU2YzczNjUyMDY5NjY4OTQyMDAwNzgwMDQ2NTZjNzM2NTg5ODk4MDA0MTUxZjdjNzUzNjFhMDM0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDMwMThiZmY0MTAwMDg4MDAyNjk2Njg5NDIwMDI1OGJmZTQxMDAwZjgwMDk2NTZjNzM2NTIwNjk2NjIwMzE4OTQyMDAxMThiZmQ0MTAwMGM4MDA5NjU2YzczNjUyMDY5NjYyMDMyODk4MDAzNjU2ZTY0ODk4MDA0MTUxZjdjNzUzNjFhMDM0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMGQ0OTE1MTY1NzA2MDI0YzUwNTBiMDgxMDE0MzhhMDMwMThiZmY0MTAwMDg4MDAyNjk2Njg5NDIwMDJmOGJmZTQxMDAwZjgwMDk2NTZjNzM2NTIwNjk2NjIwMzE4OTQyMDAxYjhiZmQ0MTAwMGY4MDA5NjU2YzczNjUyMDY5NjYyMDMyODk0MjAwMDc4MDA0NjU2YzczNjU4OTg5ODAwNDE1MWY3Yzc1MzYxYTAyNDkxNTgxMDExMjQ0ODEwMDUzMzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDE5OGJmZTQxMDAwYzgwMDk2ZTY1NzM3NDY1NjQyMDY5NjY4OTgwMDI2OTY2ODk0MjAwMDc4MDA0NjU2YzczNjU4OTg5ODAwNDE1MWY3Yzc1MzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAxMDE4YmZmNDEwMDA4ODAwMjY5NjY4OTQyMDAwNzgwMDQ2NTZjNzM2NTg5ODk4MDA0MTUxZjdjNzUzNjFhMDI0OTE1ODEwMTEyNDQ4MTAwNTMzNjFhMDE0OTE1ODEwMTEyNDQ4MTAwNTM4ODAwMDYxNjUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDA1ODEwMTQyMDAwYzhiZmU0MTAwMDU4MTAyNDIwMDAyODEwMzg5ODAwNDE1MWY3Yzc1MzYxYTAxNTcwMjAwODgwMDA2MTY1MGIwODEwMTQzOGEwMTAxOGJmZjgwMDBhOTQxMDAwMzgxMDE4OTgxMDI4OTgwMDQxNTFmN2M3NTM2MWEwMTU3MDIwMDg4MDAwNjE2NTBiMDgxMDE0MzhhMDEwMThiZmY4MDAwYTk0MTAwMDU4MTAxNDIwMDAyODEwMjg5MzYxYTAxNDkxNTgxMDIxMjQ0MTc4ODAwMDM4MTAxNDM4YTAxMDA4YmZmODAwMGE5NDEwMDA2ODAwMzY2NmY2ZmIwODkzNjFhMDI0OTE1ODEwMjEyNDQxNzM2MWEwMTQ5MTU4MTAyMTI0NDE3ODgwMDAzODEwMTQzOGEwMjAwOGJmZjhiZmUwZTQxMDAwNjgwMDM2NjZmNmZiMDg5MzYxYTAyNDkxNTgxMjAxMjQ0MzYxYTAxNDkxNTgxMjAxMjQ0ODgwMDAzODEwMTQzOGEwMjAwOGJmZjhiZmVhNjQxMDAwNjgwMDM2NjZmNmZiMDg5ODAwNDE1MWY3Yzc1MzYxYTAyNDkxNTgxMDExMjQ0ODEwMDUzMzYxYTAxNDkxNTgxMDExMjQ0ODEwMDUzODgwMDBkNDkxNTE2NTcwNjAyNGM1MDUwYjA4MTAxNDM4YTAyMDE4YmZmNDEwMDE5OGJmZTQxMDAwZDgwMDc2MTIwNjE2ZTY0MjA2Mjg5NDIwMDA0ODAwMTYxODk0MjAwMTY4YmZlNDEwMDA3ODAwMTYyODk0MjAwMGE4MDA3NmU2NTY5NzQ2ODY1NzI4OTg5ODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMDgwMDQ0MzZlYzFjMjgwMDQxYzdhMGQ1ZTgwMDQ1ZTBmYjZjZjgwMDQ1ZTFjNmM1MDgwMDQ1OGQwYmE5MjgwMDQ1ZDJmNGYwMjgwMDQ4NDU3MjlkOTgwMDQ4ZmU3NmNhODgwMDQxYTNjNzg3ODgwMDQ3NGJjYzg2ODgwMDQ0MjEyZjkwNTgwMDQ5NWRkYWViZjgwMDQzMTQ3Yjg2NjgwMDQ0Mjg5N2Y2MTgwMDQ1MzRiZTJiNzM2MWEwMDhlMGZmYjZiZmJhMGZiZGFmYzJkZmM4NWZjZmFmZDc0ZmRjYmZlMDVmZTQ2ZmU2Y2ZlOTRmZWI2ZmVlMmZmMGMwMAoJcmV0c3ViCgovLyBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZAoqYWJpX3JvdXRlX2NhbGxQcml2YXRlRGVmaW5lZExhdGVyOgoJLy8gZXhlY3V0ZSBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZAoJY2FsbHN1YiBjYWxsUHJpdmF0ZURlZmluZWRMYXRlcgoJaW50IDEKCXJldHVybgoKLy8gY2FsbFByaXZhdGVEZWZpbmVkTGF0ZXIoKTogdm9pZApjYWxsUHJpdmF0ZURlZmluZWRMYXRlcjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjU3CgkvLyBsb2codGhpcy5wcml2YXRlTWV0aG9kKCdoZWxsbycpKQoJcHVzaGJ5dGVzIDB4Njg2NTZjNmM2ZiAvLyAiaGVsbG8iCgljYWxsc3ViIHByaXZhdGVNZXRob2QKCWxvZwoJcmV0c3ViCgovLyBwcml2YXRlTWV0aG9kKG1zZzogc3RyaW5nKTogc3RyaW5nCnByaXZhdGVNZXRob2Q6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2MQoJLy8gcmV0dXJuIG1zZzsKCWZyYW1lX2RpZyAtMSAvLyBtc2c6IHN0cmluZwoJcmV0c3ViCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBpbnRlcmFsUHVibGljTWV0aG9kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpbnRlcmFsUHVibGljTWV0aG9kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmludGVyYWxQdWJsaWNNZXRob2Q6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjI2NQoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QoKXZvaWQKKmFiaV9yb3V0ZV9jYWxsSW50ZXJuYWxQdWJsaWNNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpdm9pZAoJY2FsbHN1YiBjYWxsSW50ZXJuYWxQdWJsaWNNZXRob2QKCWludCAxCglyZXR1cm4KCi8vIGNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCgpOiB2b2lkCmNhbGxJbnRlcm5hbFB1YmxpY01ldGhvZDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjY5CgkvLyBhc3NlcnQodGhpcy5pbnRlcmFsUHVibGljTWV0aG9kKDEsIDIpID09PSAzKQoJaW50IDIKCWludCAxCgljYWxsc3ViIGludGVyYWxQdWJsaWNNZXRob2QKCXB1c2hpbnQgMwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBhcHBMb2FkU2NyYXRjaCgpdm9pZAoqYWJpX3JvdXRlX2FwcExvYWRTY3JhdGNoOgoJLy8gZXhlY3V0ZSBhcHBMb2FkU2NyYXRjaCgpdm9pZAoJY2FsbHN1YiBhcHBMb2FkU2NyYXRjaAoJaW50IDEKCXJldHVybgoKLy8gYXBwTG9hZFNjcmF0Y2goKTogdm9pZAphcHBMb2FkU2NyYXRjaDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjczCgkvLyBsb2codGhpcy50eG5Hcm91cFsxXS5sb2FkU2NyYXRjaCgyKSBhcyBieXRlcykKCWdsb2FkIDEgMgoJbG9nCglyZXRzdWIKCi8vIHVpbnROV2l0aFVuZGVyc2NvcmUoKXVpbnQyNTYKKmFiaV9yb3V0ZV91aW50TldpdGhVbmRlcnNjb3JlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVpbnROV2l0aFVuZGVyc2NvcmUoKXVpbnQyNTYKCWNhbGxzdWIgdWludE5XaXRoVW5kZXJzY29yZQoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMjU2Cgk8PQoKCS8vIHVpbnROV2l0aFVuZGVyc2NvcmUgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJcHVzaGJ5dGVzIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCXB1c2hpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50TldpdGhVbmRlcnNjb3JlKCk6IHVpbnQyNTYKdWludE5XaXRoVW5kZXJzY29yZToKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjc3CgkvLyByZXR1cm4gPHVpbnQyNTY+MTIzXzQ1NjsKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWUyNDAKCXJldHN1YgoKLy8gb3BVcCgpdm9pZAoqYWJpX3JvdXRlX29wVXA6CgkvLyBleGVjdXRlIG9wVXAoKXZvaWQKCWNhbGxzdWIgb3BVcAoJaW50IDEKCXJldHVybgoKLy8gb3BVcCgpOiB2b2lkCm9wVXA6Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgxCgkvLyBpbmNyZWFzZU9wY29kZUJ1ZGdldCgpCglpdHhuX2JlZ2luCglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWJ5dGUgMHgwYTgxMDEgLy8gI3ByYWdtYSB2ZXJzaW9uIDEwOyBpbnQgMQoJZHVwCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoJaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQoJaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KCWl0eG5fZmllbGQgT25Db21wbGV0aW9uCglpdHhuX3N1Ym1pdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgyCgkvLyBmb3IgKGxldCBpID0gMTsgaSA8IDc1OyBpICs9IDEpCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8wOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyODIKCS8vIGkgPCA3NQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDc1Cgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyODMKCS8vIGFzc2VydChpKQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cglhc3NlcnQKCipmb3JfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjgyCgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJcmV0c3ViCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpc3RyaW5nCiphYmlfcm91dGVfcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZwoJY2FsbHN1YiByZXR1cm5WYWx1ZU9uQXNzaWdubWVudAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZXR1cm5WYWx1ZU9uQXNzaWdubWVudCgpOiBzdHJpbmcKcmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjg4CgkvLyBtZXNzYWdlID0gJ2hpJwoJcHVzaGJ5dGVzIDB4Njg2OSAvLyAiaGkiCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjkwCgkvLyB0aGlzLnR4bi5zZW5kZXIgPT09IHRoaXMuYXBwLmFkZHJlc3MKCXR4biBTZW5kZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjkxCgkvLyBtZXNzYWdlID0gJ2luIGJsb2NrJwoJcHVzaGJ5dGVzIDB4Njk2ZTIwNjI2YzZmNjM2YiAvLyAiaW4gYmxvY2siCglmcmFtZV9idXJ5IDAgLy8gbWVzc2FnZTogYnl0ZVtdCgoqaWYwX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjk0CgkvLyByZXR1cm4gKG1lc3NhZ2UgPSAnYnllJyk7CglieXRlIDB4NjI3OTY1IC8vICJieWUiCglkdXAKCWZyYW1lX2J1cnkgMCAvLyBtZXNzYWdlOiBieXRlW10KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5BcnJheVZhbHVlT25Bc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQoKTogdWludDY0CnJldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mjk4CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzAwCgkvLyByZXR1cm4gKGFbMF0gPSA0KTsKCWZyYW1lX2RpZyAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWludCAwCglpbnQgNAoJZHVwCglzdG9yZSAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJaXRvYgoJcmVwbGFjZTMKCWZyYW1lX2J1cnkgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CiphYmlfcm91dGVfcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0CgljYWxsc3ViIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHJldHVyblN0b3JhZ2VWYWx1ZU9uQXNzaWdubWVudCgpOiB1aW50NjQKcmV0dXJuU3RvcmFnZVZhbHVlT25Bc3NpZ25tZW50OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMDQKCS8vIHRoaXMuZ0tleS52YWx1ZSA9IDEKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWludCAxCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzA2CgkvLyByZXR1cm4gKHRoaXMuZ0tleS52YWx1ZSA9IDIpOwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJaW50IDIKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWFwcF9nbG9iYWxfcHV0Cglsb2FkIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglyZXRzdWIKCi8vIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlKCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSgpdWludDY0CgljYWxsc3ViIHJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKTogdWludDY0CnJldHVybk9wZXJhdG9yQXNzaWdubWVudFZhbHVlOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMxMAoJLy8gYSA9IDEKCWludCAxCglmcmFtZV9idXJ5IDAgLy8gYTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMTIKCS8vIHJldHVybiAoYSArPSAyKTsKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NAoJaW50IDIKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWZyYW1lX2J1cnkgMCAvLyBhOiB1aW50NjQKCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5BcnJheVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE2CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzE4CgkvLyByZXR1cm4gKGFbMF0gKz0gNCk7CglmcmFtZV9kaWcgMCAvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+CglpbnQgMAoJZnJhbWVfZGlnIDAgLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPgoJZXh0cmFjdCAwIDgKCWJ0b2kKCWludCA0CgkrCglkdXAKCXN0b3JlIDI0NSAvLyBhc3NpZ25tZW50IHZhbHVlCglpdG9iCglyZXBsYWNlMwoJZnJhbWVfYnVyeSAwIC8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4KCWxvYWQgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKKmFiaV9yb3V0ZV9yZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQKCWNhbGxzdWIgcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcmV0dXJuQXJyYXlJblN0b3JhZ2VWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCk6IHVpbnQ2NApyZXR1cm5BcnJheUluU3RvcmFnZVZhbHVlT25PcGVyYXRvckFzc2lnbm1lbnQ6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMyMgoJLy8gdGhpcy5zdG9yYWdlQXJyYXkudmFsdWUgPSBbMSwgMiwgM10KCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMjQKCS8vIHJldHVybiAodGhpcy5zdG9yYWdlQXJyYXkudmFsdWVbMF0gKz0gNCk7CglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglhcHBfZ2xvYmFsX2dldAoJaW50IDAKCWJ5dGUgMHg3Mzc0NmY3MjYxNjc2NTQxNzI3MjYxNzkgLy8gInN0b3JhZ2VBcnJheSIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDAgOAoJYnRvaQoJaW50IDQKCSsKCWR1cAoJc3RvcmUgMjQ1IC8vIGFzc2lnbm1lbnQgdmFsdWUKCWl0b2IKCXJlcGxhY2UzCglieXRlIDB4NzM3NDZmNzI2MTY3NjU0MTcyNzI2MTc5IC8vICJzdG9yYWdlQXJyYXkiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoJbG9hZCAyNDUgLy8gYXNzaWdubWVudCB2YWx1ZQoJcmV0c3ViCgovLyBjb25zdHMoKXZvaWQKKmFiaV9yb3V0ZV9jb25zdHM6CgkvLyBleGVjdXRlIGNvbnN0cygpdm9pZAoJY2FsbHN1YiBjb25zdHMKCWludCAxCglyZXR1cm4KCi8vIGNvbnN0cygpOiB2b2lkCmNvbnN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI4CgkvLyBhc3NlcnQoU1RSSU5HX0NPTlNUID09PSAnZm9vJykKCXB1c2hieXRlcyAiZm9vIgoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzI5CgkvLyBhc3NlcnQoTlVNX0NPTlNUID09PSAxMjMpCglpbnQgMTIzCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzMAoJLy8gYXNzZXJ0KE5FU1RFRF9DT05TVCA9PT0gMTIzKQoJaW50IDEyMwoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCiphYmlfcm91dGVfYXNzZXJ0V2l0aE1lc3NhZ2U6CgkvLyBleGVjdXRlIGFzc2VydFdpdGhNZXNzYWdlKCl2b2lkCgljYWxsc3ViIGFzc2VydFdpdGhNZXNzYWdlCglpbnQgMQoJcmV0dXJuCgovLyBhc3NlcnRXaXRoTWVzc2FnZSgpOiB2b2lkCmFzc2VydFdpdGhNZXNzYWdlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMzQKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gb3Bjb2RlQWxpYXNlcygpdm9pZAoqYWJpX3JvdXRlX29wY29kZUFsaWFzZXM6CgkvLyBleGVjdXRlIG9wY29kZUFsaWFzZXMoKXZvaWQKCWNhbGxzdWIgb3Bjb2RlQWxpYXNlcwoJaW50IDEKCXJldHVybgoKLy8gb3Bjb2RlQWxpYXNlcygpOiB2b2lkCm9wY29kZUFsaWFzZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMzOAoJLy8gZXh0cmFjdFVpbnQxNihiemVybyg2NCksIDApCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWludCAwCglleHRyYWN0X3VpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzM5CgkvLyBleHRyYWN0VWludDMyKGJ6ZXJvKDY0KSwgMCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJaW50IDAKCWV4dHJhY3RfdWludDMyCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDAKCS8vIGV4dHJhY3RVaW50NjQoYnplcm8oNjQpLCAwKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCglpbnQgMAoJZXh0cmFjdF91aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0MQoJLy8gZWQyNTUxOVZlcmlmeUJhcmUoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeV9iYXJlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNDIKCS8vIGVkMjU1MTlWZXJpZnkoYnplcm8oNjQpLCBiemVybyg2NCksIGJ6ZXJvKDMyKSkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZHVwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJZWQyNTUxOXZlcmlmeQoJcmV0c3ViCgovLyB2cmZWZXJpZnlPcCgpdm9pZAoqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wOgoJLy8gZXhlY3V0ZSB2cmZWZXJpZnlPcCgpdm9pZAoJY2FsbHN1YiB2cmZWZXJpZnlPcAoJaW50IDEKCXJldHVybgoKLy8gdnJmVmVyaWZ5T3AoKTogdm9pZAp2cmZWZXJpZnlPcDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0NwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0OAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0OQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MQoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MgoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1MwoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NAoJLy8gaW5jcmVhc2VPcGNvZGVCdWRnZXQoKQoJaXR4bl9iZWdpbgoJaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglieXRlIDB4MGE4MTAxIC8vICNwcmFnbWEgdmVyc2lvbiAxMDsgaW50IDEKCWR1cAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCWludCA1IC8vIERlbGV0ZUFwcGxpY2F0aW9uCglpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgoJaXR4bl9zdWJtaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NgoJLy8gciA9IHZyZlZlZmlyeSgnVnJmQWxnb3JhbmQnLCBiemVybygzMikgYXMgYnl0ZXMsIGJ6ZXJvKDgwKSwgYnplcm8oMzIpKQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCXB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgl2cmZfdmVyaWZ5IFZyZkFsZ29yYW5kCglmcmFtZV9idXJ5IDAgLy8gciB2ZXJpZmllZDogYm9vbAoJZnJhbWVfYnVyeSAxIC8vIHIgb3V0cHV0OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM1NwoJLy8gYXNzZXJ0KCFyLnZlcmlmaWVkKQoJZnJhbWVfZGlnIDAgLy8gciB2ZXJpZmllZDogYm9vbAoJIQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNTgKCS8vIGxvZyhyLm91dHB1dCkKCWZyYW1lX2RpZyAxIC8vIHIgb3V0cHV0OiBieXRlW10KCWxvZwoJcmV0c3ViCgovLyBlY01hdGgoKXZvaWQKKmFiaV9yb3V0ZV9lY01hdGg6CgkvLyBleGVjdXRlIGVjTWF0aCgpdm9pZAoJY2FsbHN1YiBlY01hdGgKCWludCAxCglyZXR1cm4KCi8vIGVjTWF0aCgpOiB2b2lkCmVjTWF0aDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjIKCS8vIGVjU2NhbGFyTXVsKCdCTjI1NGcxJywgJycsICcnKQoJYnl0ZSAweCAvLyAiIgoJZHVwCgllY19zY2FsYXJfbXVsIEJOMjU0ZzEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2MwoJLy8gZWNQYWlyaW5nQ2hlY2soJ0JOMjU0ZzEnLCAnJywgJycpCglieXRlIDB4IC8vICIiCglkdXAKCWVjX3BhaXJpbmdfY2hlY2sgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY0CgkvLyBzY2FsYXJzOiBieXRlczMyW10gPSBbYnplcm8oMzIpLCBiemVybygzMildCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgMCAvLyBzY2FsYXJzOiBieXRlczMyW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM2NQoJLy8gZWNNdWx0aVNjYWxhck11bCgnQk4yNTRnMScsICcnLCBzY2FsYXJzKQoJYnl0ZSAweCAvLyAiIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vIHNjYWxhcnM6IGJ5dGVzMzJbXQoJZWNfbXVsdGlfc2NhbGFyX211bCBCTjI1NGcxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNjYKCS8vIGVjU3ViZ3JvdXBDaGVjaygnQk4yNTRnMScsICcnKQoJYnl0ZSAweCAvLyAiIgoJZWNfc3ViZ3JvdXBfY2hlY2sgQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY3CgkvLyBlY01hcFRvKCdCTjI1NGcxJywgJycpCglieXRlIDB4IC8vICIiCgllY19tYXBfdG8gQk4yNTRnMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzY4CgkvLyBlY0FkZCgnQk4yNTRnMScsICcnLCAnJykKCWJ5dGUgMHggLy8gIiIKCWR1cAoJZWNfYWRkIEJOMjU0ZzEKCXJldHN1YgoKLy8gZ2l0eG4oKXZvaWQKKmFiaV9yb3V0ZV9naXR4bjoKCS8vIGV4ZWN1dGUgZ2l0eG4oKXZvaWQKCWNhbGxzdWIgZ2l0eG4KCWludCAxCglyZXR1cm4KCi8vIGdpdHhuKCk6IHZvaWQKZ2l0eG46Cglwcm90byAwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzcyCgkvLyBsb2codGhpcy5sYXN0SW5uZXJHcm91cFswXS5zZW5kZXIpCglnaXR4biAwIFNlbmRlcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzQKCS8vIGFub3RoZXJUeG4gPSB0aGlzLmxhc3RJbm5lckdyb3VwWzFdCglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGFub3RoZXJUeG46IGdpdHhuCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNzYKCS8vIGxvZyhhbm90aGVyVHhuLnNlbmRlcikKCWdpdHhuIDEgU2VuZGVyCglsb2cKCXJldHN1YgoKLy8gZ2V0U2V0Qnl0ZXMoKXZvaWQKKmFiaV9yb3V0ZV9nZXRTZXRCeXRlczoKCS8vIGV4ZWN1dGUgZ2V0U2V0Qnl0ZXMoKXZvaWQKCWNhbGxzdWIgZ2V0U2V0Qnl0ZXMKCWludCAxCglyZXR1cm4KCi8vIGdldFNldEJ5dGVzKCk6IHZvaWQKZ2V0U2V0Qnl0ZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4MAoJLy8gbG9nKHNldGJpdCgnZm9vJywgMCwgdHJ1ZSkpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCXNldGJpdAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODEKCS8vIGdldGJpdCgnZm9vJywgMCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglnZXRiaXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4MgoJLy8gZ2V0Ynl0ZSgnZm9vJywgMCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAwCglnZXRieXRlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozODMKCS8vIHNldGJ5dGUoJ2ZvbycsIDAsIDEpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCXNldGJ5dGUKCXJldHN1YgoKLy8gZ2V0U2V0VWludDY0KCl2b2lkCiphYmlfcm91dGVfZ2V0U2V0VWludDY0OgoJLy8gZXhlY3V0ZSBnZXRTZXRVaW50NjQoKXZvaWQKCWNhbGxzdWIgZ2V0U2V0VWludDY0CglpbnQgMQoJcmV0dXJuCgovLyBnZXRTZXRVaW50NjQoKTogdm9pZApnZXRTZXRVaW50NjQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM4NwoJLy8gYXNzZXJ0KHNldGJpdCgxMjMsIDAsIHRydWUpKQoJaW50IDEyMwoJaW50IDAKCWludCAxCglzZXRiaXQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6Mzg4CgkvLyBnZXRiaXQoMTIzLCAwKQoJaW50IDEyMwoJaW50IDAKCWdldGJpdAoJcmV0c3ViCgovLyBibG9ja09wKCl2b2lkCiphYmlfcm91dGVfYmxvY2tPcDoKCS8vIGV4ZWN1dGUgYmxvY2tPcCgpdm9pZAoJY2FsbHN1YiBibG9ja09wCglpbnQgMQoJcmV0dXJuCgovLyBibG9ja09wKCk6IHZvaWQKYmxvY2tPcDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzkyCgkvLyBsb2coYmxvY2tzW2dsb2JhbHMucm91bmQgLSAxXS5zZWVkKQoJZ2xvYmFsIFJvdW5kCglpbnQgMQoJLQoJYmxvY2sgQmxrU2VlZAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTMKCS8vIGFzc2VydChibG9ja3NbZ2xvYmFscy5yb3VuZCAtIDFdLnRpbWVzdGFtcCkKCWdsb2JhbCBSb3VuZAoJaW50IDEKCS0KCWJsb2NrIEJsa1RpbWVzdGFtcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGI2NCgpdm9pZAoqYWJpX3JvdXRlX2I2NDoKCS8vIGV4ZWN1dGUgYjY0KCl2b2lkCgljYWxsc3ViIGI2NAoJaW50IDEKCXJldHVybgoKLy8gYjY0KCk6IHZvaWQKYjY0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOTcKCS8vIGxvZyhiYXNlNjREZWNvZGUoJ1N0ZEVuY29kaW5nJywgJycpKQoJYnl0ZSAweCAvLyAiIgoJYmFzZTY0X2RlY29kZSBTdGRFbmNvZGluZwoJbG9nCglyZXRzdWIKCi8vIGpzb24oKXZvaWQKKmFiaV9yb3V0ZV9qc29uOgoJLy8gZXhlY3V0ZSBqc29uKCl2b2lkCgljYWxsc3ViIGpzb24KCWludCAxCglyZXR1cm4KCi8vIGpzb24oKTogdm9pZApqc29uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDEKCS8vIGxvZyhqc29uUmVmKCdKU09OT2JqZWN0JywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTk9iamVjdAoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDIKCS8vIGxvZyhqc29uUmVmKCdKU09OU3RyaW5nJywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTlN0cmluZwoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDMKCS8vIGFzc2VydChqc29uUmVmKCdKU09OVWludDY0JywgJycsICcnKSkKCWJ5dGUgMHggLy8gIiIKCWR1cAoJanNvbl9yZWYgSlNPTlVpbnQ2NAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJpdGxlbk9wKCl2b2lkCiphYmlfcm91dGVfYml0bGVuT3A6CgkvLyBleGVjdXRlIGJpdGxlbk9wKCl2b2lkCgljYWxsc3ViIGJpdGxlbk9wCglpbnQgMQoJcmV0dXJuCgovLyBiaXRsZW5PcCgpOiB2b2lkCmJpdGxlbk9wOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MDcKCS8vIGJpdGxlbigxMjMpCglpbnQgMTIzCgliaXRsZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQwOAoJLy8gYml0bGVuKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYml0bGVuCglyZXRzdWIKCi8vIGNvbXB1dGVkQ29uc3QoKXZvaWQKKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBjb21wdXRlZENvbnN0KCl2b2lkCgljYWxsc3ViIGNvbXB1dGVkQ29uc3QKCWludCAxCglyZXR1cm4KCi8vIGNvbXB1dGVkQ29uc3QoKTogdm9pZApjb21wdXRlZENvbnN0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MTIKCS8vIGFzc2VydChDT01QVVRFRF9DT05TVCkKCXB1c2hpbnQgMjQ2Cglhc3NlcnQKCXJldHN1YgoKLy8gbXVsdGlDb21wdXRlZENvbnN0KCl2b2lkCiphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0OgoJLy8gZXhlY3V0ZSBtdWx0aUNvbXB1dGVkQ29uc3QoKXZvaWQKCWNhbGxzdWIgbXVsdGlDb21wdXRlZENvbnN0CglpbnQgMQoJcmV0dXJuCgovLyBtdWx0aUNvbXB1dGVkQ29uc3QoKTogdm9pZAptdWx0aUNvbXB1dGVkQ29uc3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQxNgoJLy8gYXNzZXJ0KE1VVExJX0NPTVBVVEVEX0NPTlNUKQoJcHVzaGludCAzMDM4MQoJYXNzZXJ0CglyZXRzdWIKCi8vIHJlYWRTY2hlbWEoKXZvaWQKKmFiaV9yb3V0ZV9yZWFkU2NoZW1hOgoJLy8gZXhlY3V0ZSByZWFkU2NoZW1hKCl2b2lkCgljYWxsc3ViIHJlYWRTY2hlbWEKCWludCAxCglyZXR1cm4KCi8vIHJlYWRTY2hlbWEoKTogdm9pZApyZWFkU2NoZW1hOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjAKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQgPT09IDEpCglpbnQgMQoJZHVwCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjEKCS8vIGFzc2VydChTY2hlbWFDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSA9PT0gMikKCWludCAyCglkdXAKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMgoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1VaW50ID09PSAzKQoJcHVzaGludCAzCglwdXNoaW50IDMKCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQyMwoJLy8gYXNzZXJ0KFNjaGVtYUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UgPT09IDQpCglpbnQgNAoJZHVwCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGNvbXBhcmlzb25PcigpYm9vbAoqYWJpX3JvdXRlX2NvbXBhcmlzb25PcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb21wYXJpc29uT3IoKWJvb2wKCWNhbGxzdWIgY29tcGFyaXNvbk9yCglwdXNoYnl0ZXMgMHgwMAoJaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29tcGFyaXNvbk9yKCk6IGJvb2xlYW4KY29tcGFyaXNvbk9yOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MjcKCS8vIHJldHVybiB0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuemVyb0FkZHJlc3MgfHwgdGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLnplcm9BZGRyZXNzOwoJdHhuIFNlbmRlcgoJZ2xvYmFsIFplcm9BZGRyZXNzCgk9PQoJZHVwCglibnogKnNraXBfb3IwCgl0eG4gU2VuZGVyCglnbG9iYWwgWmVyb0FkZHJlc3MKCT09Cgl8fAoKKnNraXBfb3IwOgoJcmV0c3ViCgovLyB0eG5BcmdzTWV0aG9kKHBheSl2b2lkCiphYmlfcm91dGVfdHhuQXJnc01ldGhvZDoKCS8vIF9wYXkxOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IDEgLy8gcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKF9wYXkxKSBmb3IgdHhuQXJnc01ldGhvZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBleGVjdXRlIHR4bkFyZ3NNZXRob2QocGF5KXZvaWQKCWNhbGxzdWIgdHhuQXJnc01ldGhvZAoJaW50IDEKCXJldHVybgoKLy8gdHhuQXJnc01ldGhvZChfcGF5MTogUGF5VHhuKTogdm9pZAp0eG5BcmdzTWV0aG9kOgoJcHJvdG8gMSAwCglyZXRzdWIKCi8vIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCiphYmlfcm91dGVfY2FsbFR4bkFyZ3NNZXRob2Q6CgkvLyBleGVjdXRlIGNhbGxUeG5BcmdzTWV0aG9kKCl2b2lkCgljYWxsc3ViIGNhbGxUeG5BcmdzTWV0aG9kCglpbnQgMQoJcmV0dXJuCgovLyBjYWxsVHhuQXJnc01ldGhvZCgpOiB2b2lkCmNhbGxUeG5BcmdzTWV0aG9kOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzQKCS8vIHNlbmRNZXRob2RDYWxsPHR5cGVvZiBHZW5lcmFsVGVzdC5wcm90b3R5cGUudHhuQXJnc01ldGhvZD4oewoJLy8gICAgICAgbWV0aG9kQXJnczogW3sgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMCB9XSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IDEgLy8gcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MzUKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDM1CgkvLyBhbW91bnQ6IDAKCWludCAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9uZXh0CglpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglieXRlIDB4MmM2MzZlZWIgLy8gbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQzNQoJLy8gbWV0aG9kQXJnczogW3sgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogMCB9XQoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKKmFiaV9yb3V0ZV9zdGF0aWNWYWx1ZUxlbjoKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBzdGF0aWNWYWx1ZUxlbiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGF0aWNWYWx1ZUxlbih1aW50MjU2KXZvaWQKCWNhbGxzdWIgc3RhdGljVmFsdWVMZW4KCWludCAxCglyZXR1cm4KCi8vIHN0YXRpY1ZhbHVlTGVuKHg6IHVpbnQyNTYpOiB2b2lkCnN0YXRpY1ZhbHVlTGVuOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NDAKCS8vIGFzc2VydChsZW4oeCkpCglwdXNoaW50IDMyCglhc3NlcnQKCXJldHN1YgoKLy8gc3RhdGljVHlwZUxlbigpdm9pZAoqYWJpX3JvdXRlX3N0YXRpY1R5cGVMZW46CgkvLyBleGVjdXRlIHN0YXRpY1R5cGVMZW4oKXZvaWQKCWNhbGxzdWIgc3RhdGljVHlwZUxlbgoJaW50IDEKCXJldHVybgoKLy8gc3RhdGljVHlwZUxlbigpOiB2b2lkCnN0YXRpY1R5cGVMZW46Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ0NAoJLy8gYXNzZXJ0KGxlbjx1aW50MjU2PigpKQoJcHVzaGludCAzMgoJYXNzZXJ0CglyZXRzdWIKCi8vIGR5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX2R5bmFtaWNTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgZHluYW1pY1NjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGR5bmFtaWNTY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gZHluYW1pY1NjcmF0Y2hTbG90KCk6IHZvaWQKZHluYW1pY1NjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NDgKCS8vIHRoaXMuZHluYW1pY1NjcmF0Y2goMSkudmFsdWUgPSAxMzM3CglpbnQgMQoJaW50IDEzMzcKCXN0b3JlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDQ5CgkvLyBhc3NlcnQodGhpcy5keW5hbWljU2NyYXRjaCgxKS52YWx1ZSA9PT0gMTMzNykKCWludCAxCglsb2FkcwoJaW50IDEzMzcKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaW5jcmVtZW50U2NyYXRjaFNsb3QoKXZvaWQKKmFiaV9yb3V0ZV9pbmNyZW1lbnRTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgaW5jcmVtZW50U2NyYXRjaFNsb3QoKXZvaWQKCWNhbGxzdWIgaW5jcmVtZW50U2NyYXRjaFNsb3QKCWludCAxCglyZXR1cm4KCi8vIGluY3JlbWVudFNjcmF0Y2hTbG90KCk6IHZvaWQKaW5jcmVtZW50U2NyYXRjaFNsb3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1MwoJLy8gdGhpcy5zY3JhdGNoLnZhbHVlID0gMTMzNwoJaW50IDEzMzcKCXN0b3JlIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1NAoJLy8gdGhpcy5zY3JhdGNoLnZhbHVlICs9IDEKCWxvYWQgMAoJaW50IDEKCSsKCXN0b3JlIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ1NQoJLy8gYXNzZXJ0KHRoaXMuc2NyYXRjaC52YWx1ZSA9PT0gMTMzOCkKCWxvYWQgMAoJcHVzaGludCAxMzM4Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdCgpdm9pZAoqYWJpX3JvdXRlX2luY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCl2b2lkCgljYWxsc3ViIGluY3JlbWVudER5bmFtaWNTY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKLy8gaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90KCk6IHZvaWQKaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NTkKCS8vIHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPSAxMzM3CglpbnQgMgoJaW50IDEzMzcKCXN0b3JlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDYwCgkvLyB0aGlzLmR5bmFtaWNTY3JhdGNoKDIpLnZhbHVlICs9IDEKCWludCAyCglsb2FkcwoJaW50IDEKCSsKCWludCAyCglzd2FwCglzdG9yZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ2MQoJLy8gYXNzZXJ0KHRoaXMuZHluYW1pY1NjcmF0Y2goMikudmFsdWUgPT09IDEzMzgpCglpbnQgMgoJbG9hZHMKCXB1c2hpbnQgMTMzOAoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBmcm9tQWRkcmVzcygpdm9pZAoqYWJpX3JvdXRlX2Zyb21BZGRyZXNzOgoJLy8gZXhlY3V0ZSBmcm9tQWRkcmVzcygpdm9pZAoJY2FsbHN1YiBmcm9tQWRkcmVzcwoJaW50IDEKCXJldHVybgoKLy8gZnJvbUFkZHJlc3MoKTogdm9pZApmcm9tQWRkcmVzczoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NjUKCS8vIGEgPSBBZGRyZXNzLmZyb21BZGRyZXNzKCdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRJykKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIC8vIGFkZHIgIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZNUhGS1EiCglmcmFtZV9idXJ5IDAgLy8gYTogYWRkcmVzcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDY2CgkvLyBhc3NlcnQoYSA9PT0gQWRkcmVzcy56ZXJvQWRkcmVzcykKCWZyYW1lX2RpZyAwIC8vIGE6IGFkZHJlc3MKCWdsb2JhbCBaZXJvQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBlYXJseVJldHVybih1aW50NjQpdWludDY0CiphYmlfcm91dGVfZWFybHlSZXR1cm46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZWFybHlSZXR1cm4odWludDY0KXVpbnQ2NAoJY2FsbHN1YiBlYXJseVJldHVybgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGVhcmx5UmV0dXJuKGE6IHVpbnQ2NCk6IHVpbnQ2NAplYXJseVJldHVybjoKCXByb3RvIDEgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDcwCgkvLyBhID09PSAxCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglpbnQgMQoJPT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ3MQoJLy8gcmV0dXJuIDI7CglpbnQgMgoJYiAqZWFybHlSZXR1cm4qcmV0dXJuCgoqaWYxX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDczCgkvLyBiID0gYSArIDEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gYjogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzQKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIDAgLy8gYjogdWludDY0CgoqZWFybHlSZXR1cm4qcmV0dXJuOgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGFzc2V0TWV0aG9kQXJncygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJnczoKCS8vIGV4ZWN1dGUgYXNzZXRNZXRob2RBcmdzKCl2b2lkCgljYWxsc3ViIGFzc2V0TWV0aG9kQXJncwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRNZXRob2RBcmdzKCk6IHZvaWQKYXNzZXRNZXRob2RBcmdzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0NzgKCS8vIHNlbmRNZXRob2RDYWxsPFtBc3NldFJlZmVyZW5jZV0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW0Fzc2V0SUQuZnJvbVVpbnQ2NCgxKV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCXB1c2hieXRlcyAweGExNTMxNmRlIC8vIG1ldGhvZCAiZm9vKGFzc2V0KXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDgwCgkvLyBtZXRob2RBcmdzOiBbQXNzZXRJRC5mcm9tVWludDY0KDEpXQoJaW50IDEKCWl0eG5fZmllbGQgQXNzZXRzCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbXVsdGlwbGVQcm9ncmFtUGFnZXMoKXZvaWQKKmFiaV9yb3V0ZV9tdWx0aXBsZVByb2dyYW1QYWdlczoKCS8vIGV4ZWN1dGUgbXVsdGlwbGVQcm9ncmFtUGFnZXMoKXZvaWQKCWNhbGxzdWIgbXVsdGlwbGVQcm9ncmFtUGFnZXMKCWludCAxCglyZXR1cm4KCi8vIG11bHRpcGxlUHJvZ3JhbVBhZ2VzKCk6IHZvaWQKbXVsdGlwbGVQcm9ncmFtUGFnZXM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4OQoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiBbdGhpcy5wYWdlT25lLnZhbHVlLCB0aGlzLnBhZ2VUd28udmFsdWVdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCA2IC8vIGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ5MAoJLy8gYXBwcm92YWxQcm9ncmFtOiBbdGhpcy5wYWdlT25lLnZhbHVlLCB0aGlzLnBhZ2VUd28udmFsdWVdCglieXRlIDB4NzA2MTY3NjU0ZjZlNjUgLy8gInBhZ2VPbmUiCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLnBhZ2VPbmUudmFsdWUKCWFzc2VydAoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW1QYWdlcwoJYnl0ZSAweDcwNjE2NzY1NTQ3NzZmIC8vICJwYWdlVHdvIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5wYWdlVHdvLnZhbHVlCglhc3NlcnQKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtUGFnZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ5MQoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IFt0aGlzLnBhZ2VPbmUudmFsdWUsIHRoaXMucGFnZVR3by52YWx1ZV0KCWJ5dGUgMHg3MDYxNjc2NTRmNmU2NSAvLyAicGFnZU9uZSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZU9uZS52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCWJ5dGUgMHg3MDYxNjc2NTU0Nzc2ZiAvLyAicGFnZVR3byIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMucGFnZVR3by52YWx1ZQoJYXNzZXJ0CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2VydENvbW1lbnQoKXZvaWQKKmFiaV9yb3V0ZV9hc3NlcnRDb21tZW50OgoJLy8gZXhlY3V0ZSBhc3NlcnRDb21tZW50KCl2b2lkCgljYWxsc3ViIGFzc2VydENvbW1lbnQKCWludCAxCglyZXR1cm4KCi8vIGFzc2VydENvbW1lbnQoKTogdm9pZAphc3NlcnRDb21tZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0OTYKCS8vIGFzc2VydChmYWxzZSwgJ3RoaXMgaXMgZmFsc2UnKQoJaW50IDAKCgkvLyB0aGlzIGlzIGZhbHNlCglhc3NlcnQKCXJldHN1YgoKLy8gdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKKmFiaV9yb3V0ZV90aHJvd0Vycm9yTWVzc2FnZToKCS8vIGV4ZWN1dGUgdGhyb3dFcnJvck1lc3NhZ2UoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvck1lc3NhZ2UKCWludCAxCglyZXR1cm4KCi8vIHRocm93RXJyb3JNZXNzYWdlKCk6IHZvaWQKdGhyb3dFcnJvck1lc3NhZ2U6Cglwcm90byAwIDAKCgkvLyB0aGlzIGlzIGFuIGVycm9yCgllcnIKCXJldHN1YgoKLy8gb3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9vckxpdGVyYWxUeXBlOgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBvckxpdGVyYWxUeXBlKHVpbnQ2NCx1aW50NjQpdm9pZAoJY2FsbHN1YiBvckxpdGVyYWxUeXBlCglpbnQgMQoJcmV0dXJuCgovLyBvckxpdGVyYWxUeXBlKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdm9pZApvckxpdGVyYWxUeXBlOgoJcHJvdG8gMiAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTA0CgkvLyBmb28gPSBhICYmIGIgPT09IDEgPyAyIDogMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglpbnQgMQoJPT0KCSYmCgoqc2tpcF9hbmQwOgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnQgMgoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglpbnQgMAoKKnRlcm5hcnkwX2VuZDoKCWZyYW1lX2J1cnkgMCAvLyBmb286IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTA1CgkvLyBhc3NlcnQoZm9vKQoJZnJhbWVfZGlnIDAgLy8gZm9vOiB1aW50NjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTA3CgkvLyBiYXIgPSBhICYmIGIgPT09IDAgPyAnMicgOiAnMCcKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWR1cAoJYnogKnNraXBfYW5kMQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaW50IDAKCT09CgkmJgoKKnNraXBfYW5kMToKCWJ6ICp0ZXJuYXJ5MV9mYWxzZQoJcHVzaGJ5dGVzIDB4MzIgLy8gIjIiCgliICp0ZXJuYXJ5MV9lbmQKCip0ZXJuYXJ5MV9mYWxzZToKCWJ5dGUgMHgzMCAvLyAiMCIKCip0ZXJuYXJ5MV9lbmQ6CglmcmFtZV9idXJ5IDEgLy8gYmFyOiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUwOAoJLy8gbG9nKGJhcikKCWZyYW1lX2RpZyAxIC8vIGJhcjogYnl0ZVtdCglsb2cKCXJldHN1YgoKLy8gbm9uQWJpKCk6IHZvaWQKbm9uQWJpOgoJcHJvdG8gMCAwCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxMwoJLy8gYXNzZXJ0KHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyEubGVuZ3RoKQoJdHhuIE51bUFwcEFyZ3MKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE1CgkvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHhuLmFwcGxpY2F0aW9uQXJncyEubGVuZ3RoOyBpICs9IDEpCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MTUKCS8vIGkgPCB0aGlzLnR4bi5hcHBsaWNhdGlvbkFyZ3MhLmxlbmd0aAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0Cgl0eG4gTnVtQXBwQXJncwoJPAoJYnogKmZvcl8xX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE2CgkvLyBsb2codGhpcy50eG4uYXBwbGljYXRpb25BcmdzIVtpXSkKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJdHhuYXMgQXBwbGljYXRpb25BcmdzCglsb2cKCipmb3JfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTE1CgkvLyBpICs9IDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJcmV0c3ViCgovLyBtdWx0aWxpbmVGdW5jdGlvbkNhbGwoKXZvaWQKKmFiaV9yb3V0ZV9tdWx0aWxpbmVGdW5jdGlvbkNhbGw6CgkvLyBleGVjdXRlIG11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpdm9pZAoJY2FsbHN1YiBtdWx0aWxpbmVGdW5jdGlvbkNhbGwKCWludCAxCglyZXR1cm4KCi8vIG11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpOiB2b2lkCm11bHRpbGluZUZ1bmN0aW9uQ2FsbDoKCXByb3RvIDAgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUyMQoJLy8gYXBwID0gQXBwSUQuemVyb0luZGV4CglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGFwcDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MjIKCS8vIGFkZHIgPSBBZGRyZXNzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWZyYW1lX2J1cnkgMSAvLyBhZGRyOiBhZGRyZXNzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MjQKCS8vIGFwcC5sb2NhbFN0YXRlKAoJLy8gICAgICAgYWRkciwKCS8vICAgICAgICdrZXknCgkvLyAgICAgKQoJZnJhbWVfZGlnIDEgLy8gYWRkcjogYWRkcmVzcwoJaW50IDAgLy8gYXBwOiB1aW50NjQKCXB1c2hieXRlcyAweDZiNjU3OSAvLyAia2V5IgoJYXBwX2xvY2FsX2dldF9leAoKCS8vIGxvY2FsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiBhcHAubG9jYWxTdGF0ZSggYWRkciwgJ2tleScgKQoJYXNzZXJ0CglyZXRzdWIKCi8vIGEoKXVpbnQ2NAoqYWJpX3JvdXRlX2E6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYSgpdWludDY0CgljYWxsc3ViIGEKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHVpbnQ2NAphOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MzEKCS8vIHJldHVybiAzOwoJcHVzaGludCAzCglyZXRzdWIKCi8vIGIoKXVpbnQ2NAoqYWJpX3JvdXRlX2I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYigpdWludDY0CgljYWxsc3ViIGIKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiKCk6IHVpbnQ2NApiOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1MzUKCS8vIHJldHVybiA1OwoJaW50IDUKCXJldHN1YgoKLy8gdW51c2VkTWV0aG9kVmFsdWUoKXVpbnQ2NAoqYWJpX3JvdXRlX3VudXNlZE1ldGhvZFZhbHVlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQKCWNhbGxzdWIgdW51c2VkTWV0aG9kVmFsdWUKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1bnVzZWRNZXRob2RWYWx1ZSgpOiB1aW50NjQKdW51c2VkTWV0aG9kVmFsdWU6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUzOQoJLy8gdGhpcy5hKCkKCWNhbGxzdWIgYQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NDAKCS8vIHJldHVybiB0aGlzLmIoKTsKCWNhbGxzdWIgYgoJcmV0c3ViCgovLyByZWFzc2lnbmVkTm9uRmlyc3RWYXIoKXVpbnQ2NAoqYWJpX3JvdXRlX3JlYXNzaWduZWROb25GaXJzdFZhcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSByZWFzc2lnbmVkTm9uRmlyc3RWYXIoKXVpbnQ2NAoJY2FsbHN1YiByZWFzc2lnbmVkTm9uRmlyc3RWYXIKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyByZWFzc2lnbmVkTm9uRmlyc3RWYXIoKTogdWludDY0CnJlYXNzaWduZWROb25GaXJzdFZhcjoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU1MQoJLy8gYSA9IDEgYXMgdWludDY0CglpbnQgMQoJZnJhbWVfYnVyeSAwIC8vIGE6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTUyCgkvLyBiID0gdGhpcy5hcHAuaWQKCXR4bmEgQXBwbGljYXRpb25zIDAKCWZyYW1lX2J1cnkgMSAvLyBiOiB1aW50NjQKCgkvLyAqaWYyX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NTMKCS8vIGEKCWZyYW1lX2RpZyAwIC8vIGE6IHVpbnQ2NAoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTU0CgkvLyBiID0gMgoJaW50IDIKCWZyYW1lX2J1cnkgMSAvLyBiOiB1aW50NjQKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NTcKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIDEgLy8gYjogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBmdkx2KCl2b2lkCiphYmlfcm91dGVfZnZMdjoKCS8vIGV4ZWN1dGUgZnZMdigpdm9pZAoJY2FsbHN1YiBmdkx2CglpbnQgMQoJcmV0dXJuCgovLyBmdkx2KCk6IHZvaWQKZnZMdjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTYxCgkvLyBhc3NlcnQodGhpcy50eG4uZmlyc3RWYWxpZCkKCXR4biBGaXJzdFZhbGlkCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU2MgoJLy8gYXNzZXJ0KHRoaXMudHhuLmxhc3RWYWxpZCkKCXR4biBMYXN0VmFsaWQKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDYyNDI2NGEzIC8vIG1ldGhvZCAidHhuVHlwZUVudW0oKXZvaWQiCglwdXNoYnl0ZXMgMHhiMjA1ZWRjOSAvLyBtZXRob2QgInR4bkdyb3VwTGVuZ3RoKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTZlOTdkNWIgLy8gbWV0aG9kICJhc3NlcnRzKGJvb2wsYm9vbCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGQ2ZmE3YzggLy8gbWV0aG9kICJ2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkIgoJcHVzaGJ5dGVzIDB4MGVhNjQ0ZmIgLy8gbWV0aG9kICJ2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAoKXZvaWQiCglwdXNoYnl0ZXMgMHhlYzBkOTA5NCAvLyBtZXRob2QgInZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZCIKCXB1c2hieXRlcyAweDY4ODQ4ZDk3IC8vIG1ldGhvZCAidmVyaWZ5VHhuSW5jbHVkZWRJbigpdm9pZCIKCXB1c2hieXRlcyAweDE4YmQyM2RjIC8vIG1ldGhvZCAidmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZCIKCXB1c2hieXRlcyAweDgwNmJmYjkzIC8vIG1ldGhvZCAic3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2JlNWY4MmUgLy8gbWV0aG9kICJtZXRob2RXaXRoVHhuQXJncygpdm9pZCIKCXB1c2hieXRlcyAweDEyOTVkNjgzIC8vIG1ldGhvZCAic2hpZnQoKXZvaWQiCglwdXNoYnl0ZXMgMHhiM2I4YzQ3MiAvLyBtZXRob2QgImZyb21CeXRlcygpdm9pZCIKCXB1c2hieXRlcyAweDUzZTBiNmYwIC8vIG1ldGhvZCAiZnJvbVVpbnQ2NCgpdm9pZCIKCXB1c2hieXRlcyAweDRiM2ViODc3IC8vIG1ldGhvZCAiYnplcm9GdW5jdGlvbigpdm9pZCIKCXB1c2hieXRlcyAweGRhYzJlN2E1IC8vIG1ldGhvZCAiZXZlbnRzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4YTNkYjY3MDQgLy8gbWV0aG9kICJsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10iCglwdXNoYnl0ZXMgMHhhZTIxYzE3MiAvLyBtZXRob2QgInN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZCIKCXB1c2hieXRlcyAweGRhYjRkMWM0IC8vIG1ldGhvZCAibnVtYmVyVG9TdHJpbmcoKXZvaWQiCglwdXNoYnl0ZXMgMHhhN2I0YWU5YSAvLyBtZXRob2QgIm1ldGhvZE9uUGFyZW5zKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NmQ0NDg1YmEgLy8gbWV0aG9kICJzdHJpbmdTdWJzdHJpbmcoKXZvaWQiCglwdXNoYnl0ZXMgMHhlZjYyNjJlOSAvLyBtZXRob2QgImlkUHJvcGVydHkoKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZDJiNjY4YiAvLyBtZXRob2QgInNjcmF0Y2hTbG90KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTZjMTU0ZmMgLy8gbWV0aG9kICJlY2RzYSgpdm9pZCIKCXB1c2hieXRlcyAweGE5NzY0MTk3IC8vIG1ldGhvZCAidmVyaWZ5VHhuVHlwZXMoKXZvaWQiCglwdXNoYnl0ZXMgMHg5ZGJiYzQyYyAvLyBtZXRob2QgInN0cmluZ1BsdXNFcXVhbHMoKXZvaWQiCglwdXNoYnl0ZXMgMHg0YzBkZGVjMSAvLyBtZXRob2QgImltcG9ydGVkUHJvZ3JhbSgpYnl0ZVtdIgoJcHVzaGJ5dGVzIDB4MzBlY2ZiNDEgLy8gbWV0aG9kICJjYWxsUHJpdmF0ZURlZmluZWRMYXRlcigpdm9pZCIKCXB1c2hieXRlcyAweDE0YTQ5OTE5IC8vIG1ldGhvZCAiaW50ZXJhbFB1YmxpY01ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGI3MWMxNzlhIC8vIG1ldGhvZCAiY2FsbEludGVybmFsUHVibGljTWV0aG9kKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OTg0ODEwOTMgLy8gbWV0aG9kICJhcHBMb2FkU2NyYXRjaCgpdm9pZCIKCXB1c2hieXRlcyAweGY1NzJkMWMxIC8vIG1ldGhvZCAidWludE5XaXRoVW5kZXJzY29yZSgpdWludDI1NiIKCXB1c2hieXRlcyAweDg1NGRlZGUwIC8vIG1ldGhvZCAib3BVcCgpdm9pZCIKCXB1c2hieXRlcyAweDY4MTU5OWZhIC8vIG1ldGhvZCAicmV0dXJuVmFsdWVPbkFzc2lnbm1lbnQoKXN0cmluZyIKCXB1c2hieXRlcyAweDVlMTQ3N2U4IC8vIG1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uQXNzaWdubWVudCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZTA3YjNiZTkgLy8gbWV0aG9kICJyZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDE2ZTQ2NjU3IC8vIG1ldGhvZCAicmV0dXJuT3BlcmF0b3JBc3NpZ25tZW50VmFsdWUoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDJjODM2ZjQ2IC8vIG1ldGhvZCAicmV0dXJuQXJyYXlWYWx1ZU9uT3BlcmF0b3JBc3NpZ25tZW50KCl1aW50NjQiCglwdXNoYnl0ZXMgMHhhOTNjNTZmOSAvLyBtZXRob2QgInJldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZjkzNjk1MmQgLy8gbWV0aG9kICJjb25zdHMoKXZvaWQiCglwdXNoYnl0ZXMgMHg4OGYzOWM5OSAvLyBtZXRob2QgImFzc2VydFdpdGhNZXNzYWdlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NTg3OTRjZjQgLy8gbWV0aG9kICJvcGNvZGVBbGlhc2VzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4MzUwNDRhZDggLy8gbWV0aG9kICJ2cmZWZXJpZnlPcCgpdm9pZCIKCXB1c2hieXRlcyAweDdkMjc5ZThlIC8vIG1ldGhvZCAiZWNNYXRoKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2RmYTE4YzggLy8gbWV0aG9kICJnaXR4bigpdm9pZCIKCXB1c2hieXRlcyAweDc4Y2E1YzRlIC8vIG1ldGhvZCAiZ2V0U2V0Qnl0ZXMoKXZvaWQiCglwdXNoYnl0ZXMgMHgwZTY3ZTk1NyAvLyBtZXRob2QgImdldFNldFVpbnQ2NCgpdm9pZCIKCXB1c2hieXRlcyAweDNiNDQ2ZWVmIC8vIG1ldGhvZCAiYmxvY2tPcCgpdm9pZCIKCXB1c2hieXRlcyAweGFlODJlODc1IC8vIG1ldGhvZCAiYjY0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDY5YWY1MzAgLy8gbWV0aG9kICJqc29uKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NGQ1MmYzM2QgLy8gbWV0aG9kICJiaXRsZW5PcCgpdm9pZCIKCXB1c2hieXRlcyAweDJjMGNkMjAxIC8vIG1ldGhvZCAiY29tcHV0ZWRDb25zdCgpdm9pZCIKCXB1c2hieXRlcyAweDcwZTBhZmU1IC8vIG1ldGhvZCAibXVsdGlDb21wdXRlZENvbnN0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4MzBhMmZlZjQgLy8gbWV0aG9kICJyZWFkU2NoZW1hKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjM5NzFkY2EgLy8gbWV0aG9kICJjb21wYXJpc29uT3IoKWJvb2wiCglieXRlIDB4MmM2MzZlZWIgLy8gbWV0aG9kICJ0eG5BcmdzTWV0aG9kKHBheSl2b2lkIgoJcHVzaGJ5dGVzIDB4OWU0MGQzNGIgLy8gbWV0aG9kICJjYWxsVHhuQXJnc01ldGhvZCgpdm9pZCIKCXB1c2hieXRlcyAweDkxY2YyYjU4IC8vIG1ldGhvZCAic3RhdGljVmFsdWVMZW4odWludDI1Nil2b2lkIgoJcHVzaGJ5dGVzIDB4YjFjOGI0NWMgLy8gbWV0aG9kICJzdGF0aWNUeXBlTGVuKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OWMwZTFiZGIgLy8gbWV0aG9kICJkeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCglwdXNoYnl0ZXMgMHgwYTMxOTUwNCAvLyBtZXRob2QgImluY3JlbWVudFNjcmF0Y2hTbG90KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODRiMjYwZmEgLy8gbWV0aG9kICJpbmNyZW1lbnREeW5hbWljU2NyYXRjaFNsb3QoKXZvaWQiCglwdXNoYnl0ZXMgMHg0YTkwODg1NiAvLyBtZXRob2QgImZyb21BZGRyZXNzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4OGRlYjMyZDMgLy8gbWV0aG9kICJlYXJseVJldHVybih1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4NjdkZTE1NmYgLy8gbWV0aG9kICJhc3NldE1ldGhvZEFyZ3MoKXZvaWQiCglwdXNoYnl0ZXMgMHgxZTQyODQxMiAvLyBtZXRob2QgIm11bHRpcGxlUHJvZ3JhbVBhZ2VzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4Mjc4ZmQ4YjggLy8gbWV0aG9kICJhc3NlcnRDb21tZW50KCl2b2lkIgoJcHVzaGJ5dGVzIDB4YmZjMzYyMDggLy8gbWV0aG9kICJ0aHJvd0Vycm9yTWVzc2FnZSgpdm9pZCIKCXB1c2hieXRlcyAweDA0ZWVkZjc5IC8vIG1ldGhvZCAib3JMaXRlcmFsVHlwZSh1aW50NjQsdWludDY0KXZvaWQiCglwdXNoYnl0ZXMgMHgzNWQ1ZmJjNyAvLyBtZXRob2QgIm11bHRpbGluZUZ1bmN0aW9uQ2FsbCgpdm9pZCIKCXB1c2hieXRlcyAweGY5NTIyZTJmIC8vIG1ldGhvZCAiYSgpdWludDY0IgoJcHVzaGJ5dGVzIDB4OGM5Mzc5ZTYgLy8gbWV0aG9kICJiKCl1aW50NjQiCglwdXNoYnl0ZXMgMHhmOWExMzU1MiAvLyBtZXRob2QgInVudXNlZE1ldGhvZFZhbHVlKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5NGYyMDQ5YSAvLyBtZXRob2QgInJlYXNzaWduZWROb25GaXJzdFZhcigpdWludDY0IgoJcHVzaGJ5dGVzIDB4NTYyNjQyMTUgLy8gbWV0aG9kICJmdkx2KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90eG5UeXBlRW51bSAqYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoICphYmlfcm91dGVfYXNzZXJ0cyAqYWJpX3JvdXRlX3ZlcmlmeVR4bkZyb21BcmcgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgKmFiaV9yb3V0ZV92ZXJpZnlUeG5Db25kaXRpb24gKmFiaV9yb3V0ZV92ZXJpZnlUeG5JbmNsdWRlZEluICphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiAqYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cCAqYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzICphYmlfcm91dGVfc2hpZnQgKmFiaV9yb3V0ZV9mcm9tQnl0ZXMgKmFiaV9yb3V0ZV9mcm9tVWludDY0ICphYmlfcm91dGVfYnplcm9GdW5jdGlvbiAqYWJpX3JvdXRlX2V2ZW50cyAqYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbiAqYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllcyAqYWJpX3JvdXRlX251bWJlclRvU3RyaW5nICphYmlfcm91dGVfbWV0aG9kT25QYXJlbnMgKmFiaV9yb3V0ZV9zdHJpbmdTdWJzdHJpbmcgKmFiaV9yb3V0ZV9pZFByb3BlcnR5ICphYmlfcm91dGVfc2NyYXRjaFNsb3QgKmFiaV9yb3V0ZV9lY2RzYSAqYWJpX3JvdXRlX3ZlcmlmeVR4blR5cGVzICphYmlfcm91dGVfc3RyaW5nUGx1c0VxdWFscyAqYWJpX3JvdXRlX2ltcG9ydGVkUHJvZ3JhbSAqYWJpX3JvdXRlX2NhbGxQcml2YXRlRGVmaW5lZExhdGVyICphYmlfcm91dGVfaW50ZXJhbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2NhbGxJbnRlcm5hbFB1YmxpY01ldGhvZCAqYWJpX3JvdXRlX2FwcExvYWRTY3JhdGNoICphYmlfcm91dGVfdWludE5XaXRoVW5kZXJzY29yZSAqYWJpX3JvdXRlX29wVXAgKmFiaV9yb3V0ZV9yZXR1cm5WYWx1ZU9uQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5TdG9yYWdlVmFsdWVPbkFzc2lnbm1lbnQgKmFiaV9yb3V0ZV9yZXR1cm5PcGVyYXRvckFzc2lnbm1lbnRWYWx1ZSAqYWJpX3JvdXRlX3JldHVybkFycmF5VmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX3JldHVybkFycmF5SW5TdG9yYWdlVmFsdWVPbk9wZXJhdG9yQXNzaWdubWVudCAqYWJpX3JvdXRlX2NvbnN0cyAqYWJpX3JvdXRlX2Fzc2VydFdpdGhNZXNzYWdlICphYmlfcm91dGVfb3Bjb2RlQWxpYXNlcyAqYWJpX3JvdXRlX3ZyZlZlcmlmeU9wICphYmlfcm91dGVfZWNNYXRoICphYmlfcm91dGVfZ2l0eG4gKmFiaV9yb3V0ZV9nZXRTZXRCeXRlcyAqYWJpX3JvdXRlX2dldFNldFVpbnQ2NCAqYWJpX3JvdXRlX2Jsb2NrT3AgKmFiaV9yb3V0ZV9iNjQgKmFiaV9yb3V0ZV9qc29uICphYmlfcm91dGVfYml0bGVuT3AgKmFiaV9yb3V0ZV9jb21wdXRlZENvbnN0ICphYmlfcm91dGVfbXVsdGlDb21wdXRlZENvbnN0ICphYmlfcm91dGVfcmVhZFNjaGVtYSAqYWJpX3JvdXRlX2NvbXBhcmlzb25PciAqYWJpX3JvdXRlX3R4bkFyZ3NNZXRob2QgKmFiaV9yb3V0ZV9jYWxsVHhuQXJnc01ldGhvZCAqYWJpX3JvdXRlX3N0YXRpY1ZhbHVlTGVuICphYmlfcm91dGVfc3RhdGljVHlwZUxlbiAqYWJpX3JvdXRlX2R5bmFtaWNTY3JhdGNoU2xvdCAqYWJpX3JvdXRlX2luY3JlbWVudFNjcmF0Y2hTbG90ICphYmlfcm91dGVfaW5jcmVtZW50RHluYW1pY1NjcmF0Y2hTbG90ICphYmlfcm91dGVfZnJvbUFkZHJlc3MgKmFiaV9yb3V0ZV9lYXJseVJldHVybiAqYWJpX3JvdXRlX2Fzc2V0TWV0aG9kQXJncyAqYWJpX3JvdXRlX211bHRpcGxlUHJvZ3JhbVBhZ2VzICphYmlfcm91dGVfYXNzZXJ0Q29tbWVudCAqYWJpX3JvdXRlX3Rocm93RXJyb3JNZXNzYWdlICphYmlfcm91dGVfb3JMaXRlcmFsVHlwZSAqYWJpX3JvdXRlX211bHRpbGluZUZ1bmN0aW9uQ2FsbCAqYWJpX3JvdXRlX2EgKmFiaV9yb3V0ZV9iICphYmlfcm91dGVfdW51c2VkTWV0aG9kVmFsdWUgKmFiaV9yb3V0ZV9yZWFzc2lnbmVkTm9uRmlyc3RWYXIgKmFiaV9yb3V0ZV9mdkx2CgoJLy8gISEhISBXQVJOSU5HOiBub24tQUJJIHJvdXRpbmcKCWNhbGxzdWIgbm9uQWJpCglpbnQgMQoJcmV0dXJuCgoqaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJcHVzaGJ5dGVzIDB4MzAzMTMyMzMzNDM1MzYzNzM4MzkgLy8gIjAxMjM0NTY3ODkiCglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMQoJZXh0cmFjdDMKCXJldHN1YgoJCgoqaXRvYToKCXByb3RvIDEgMQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDAKCT09CglieiAqaXRvYV9pZl9lbmQKCWJ5dGUgMHgzMAoJcmV0c3ViCgoqaXRvYV9pZl9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglwdXNoaW50IDEwCgkvCglpbnQgMAoJPgoJYnogKml0b2FfdGVybmFyeV9mYWxzZQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJcHVzaGludCAxMAoJLwoJY2FsbHN1YiAqaXRvYQoJYiAqaXRvYV90ZXJuYXJ5X2VuZAoKKml0b2FfdGVybmFyeV9mYWxzZToKCWJ5dGUgMHggLy8gIiIKCippdG9hX3Rlcm5hcnlfZW5kOgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJcHVzaGludCAxMAoJJQoJY2FsbHN1YiAqaW50VG9Bc2NpaQoJY29uY2F0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "scratchVariables": { @@ -14799,7 +1363,7 @@ } }, "byteCode": { - "approval": "CiANAQAGAgW5CgR7AyAKoI0GugomEQAEFR98dQNmb28DCoEBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADDHN0b3JhZ2VBcnJheQgAAAAAAAAAAQIAAAkAAAAAAAAAAAADYmFyBGdLZXkELGNu6wdwYWdlT25lB3BhZ2VUd28BMDEYFCQLMRkIjQwNzAAAAAAAAAAAAAANvgAAAAAAAAAAAAAAiAACIkOKAAAjOBAkEkSJiAACIkOKAAAyBCISRIk2GgJJFSISRCNTNhoBSRUiEkQjU4gAAiJDigIAi/9Ei/5Ei/+L/hJEiTEWIglJOBAiEkSIAAIiQ4oBAIv/OAcyChJEi/84CCELEkSJiAACIkOKAAAjOAAxABJEiYgAAiJDigAAMRgiDUSJiAACIkOKAAAxADEAEkSJiAACIkOKAAAxADIDE0SJiAACIkOKAACxIrIQI7IIMgqyByOyAbYishAjsggyCrIHKrIFI7IBs4mIAAIiQ4oAALEishAhC7IIMQCyByOyAbYkshCABA6MufayGiEFshgnCLIaI7IBtiSyEIAEbG96CLIaI7IBs4mIAAIiQ4oAACIlkCEGEkQhBiKRJRJEiYgAAiJDigAAgANhYmNzAUhEiYgAAiJDigAAIQdyB0iwIQdxC0iwiYgAAiJDigAAKEcCJwmMACKvjAEnCowCJwmLAVAnClAVgQwSRImIAAIiQ4oAAIAEh1KBljYyABYnCFBQsIkpNhoBVwIAiAAPSRWBCAoWVwYCTFBQsCJDigEBi/81/zT/VwAIF0QnBoz/i/+JiAACIkOKAACxJLIQI7IZgDYKMRgUgQYLMRkIjQwAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAgQFDgAS4RHs2NhoAjgH/8ACyHoABCrIfI7I3I7I2I7I1I7I0I7IBs4mIAAIiQ4oAACKIDhSAATESRImIAAIiQ4oAACEIiA4BgAEzEkSJiAACIkOKAACABmFiY2RlZlEBA4ACYmMSRImIAAIiQ4oAAChJI4wAI0kSRCOMASNJEkSJiAACIkOKAAAhBTUANAAhBRJEiYgAAiJDigAAKEcDJwRHBAUAgCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAIwAjAGLALCLAbAnBCInBEkHAIwCjAOLArCLA7CJiAACIkOKAAAjOBAiEkQjOAgjDUQjOBAkEkQjOBgjEkQjORoAKhJEIzkaAScLEiM5GgGAA2JhehIRRCM4ECEGEkQjOBQyChJEIzgQIQgSRCM4ISMSRCM4ECUSRCM4DCEFEkSJiAACIkOKAAAoKowAiwAnC1CMAIsAgAZmb29iYXISRIkpiAAMSRUWVwYCTFBQsCJDigABgIAICiAEAQACICYJBBUffHUCaWYEZWxzZQNlbmQAA2ZvbwdlbHNlIGlmCWVsc2UgaWYgMQllbHNlIGlmIDIxGBSBBgsxGQiNDAMkAAAAAAAAAAAAAAMWAAAAAAAAAAAAAAAoNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oBAYv/QQACKYkriSg2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigEBi/9BAAUpiUIAAiqJiSg2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oCAYv/QQAFKYlCAAiL/kEAAycGiSuJKDYaAkkVIhJEI1M2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigIBi/9BAAUpiUIADYv+QQAGJwaJQgACKomJKDYaA0kVIhJEI1M2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oDAYv/QQAFKYlCABOL/kEABicHiUIACIv9QQADJwiJK4koNhoDSRUiEkQjUzYaAkkVIhJEI1M2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigMBi/9BAAUpiUIAGIv+QQAGJweJQgANi/1BAAYnCIlCAAIqiYkoNhoCSRUiEkQjUzYaAUkVIhJEI1OIAAxJFRZXBgJMUFCwIkOKAgGL/0EAFov+QQAMgAluZXN0ZWQgaWaJKYlCAAIqiYkoNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oBAYv/QQAFKYlCAAIqiYkoNhoCSRUiEkQjUzYaAUkVIhJEI1OIAAUWULAiQ4oCAYv/QQAEIkIAC4v+QQAEJEIAAoEDiSg2GgFXAgCIAAUWULAiQ4oBAYv/JwSpQQACIokkiSg2GgFXAgCIAAUWULAiQ4oBAYv/JwSpQQAEIkIAASSJNhoBSRUkEkQXiAACIkOKAQCL/ycEqUEAAycFsIk2GgJJFSQSRBc2GgFJFSQSRBeIAAIiQ4oCAIv/i/4OQQADJwWwiTYaAkkVJRJENhoBSRUlEkSIAAIiQ4oCAIv/i/6mQQADJwWwiSg2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oCAYv/QQAZi/5BAA2AB2EgYW5kIGKJQgAEgAFhiUIAFov+QQAHgAFiiUIACoAHbmVpdGhlcomJIkOABLhEezY2GgCOAf/xAIAEQ27BwoAEHHoNXoAEXg+2z4AEXhxsUIAEWNC6koAEXS9PAoAEhFcp2YAEj+dsqIAEGjx4eIAEdLzIaIAEQhL5BYAEld2uv4AEMUe4ZoAEQol/YYAEU0vitzYaAI4P/GD8hvyw/Ov9Kv16/c7+E/49/nL+kP6w/s3+8/8XAImIAAIiQ4oAAIAFaGVsbG+IAAKwiYoBAYv/iSk2GgIXNhoBF4gABRZQsCJDigIBi/+L/giJiAACIkOKAAAlIoj/6iEIEkSJiAACIkOKAAA6AQKwiSmIADZJk4GAAg5EgCD//////////////////////////////////////////6xJFUkhCQlMUlCwIkOKAAGAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeJAiYgAAiJDigAAKLEkshAjsgErSbIesh8hBLIZsyKMAIsAgUsMQQAMiwBEiwAiCIwAQv/siSmIAAxJFRZXBgJMUFCwIkOKAAEogAJoaYwAMQAyChJBAAyACGluIGJsb2NrjACAA2J5ZUmMAIwAiSmIAAUWULAiQ4oAASgnBowAiwAjIQZJNfUWXYwANPWMAIkpiAAFFlCwIkOKAAEnDCJnJwwlSTX1ZzT1iSmIAAUWULAiQ4oAASgijACLACUISTX1jAA09YwAiSmIAAUWULAiQ4oAASgnBowAiwAjiwBXAAgXIQYISTX1Fl2MADT1jACJKYgABRZQsCJDigABJwcnBmcnB2QjJwdkVwAIFyEGCEk19RZdJwdMZzT1iYgAAiJDigAAKioSRCEHSRJEIQdJEkSJiAACIkOKAAAjRImIAAIiQ4oAACcFI1knBSNaJwUjWycFSScEhCcFSScEBImIAAIiQ4oAAChJsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzsSSyECOyAStJsh6yHyEEshmzJwSAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJwTQAIwAjAGLABREiwGwiYgAAiJDigAAKChJ4QAoSeIAJwWMACgnBeMAKOQAKOUAKEngAImIAAIiQ4oAACi3AACwIowAtwEAsImIAAIiQ4oAACojIlSwKiNTKiNVKiMiVomIAAIiQ4oAACEHIyJURCEHI1OJiAACIkOKAAAyBiIJ0QCwMgYiCdEBRImIAAIiQ4oAACheAbCJiAACIkOKAAAoSV8CsChJXwCwKElfAUSJiAACIkOKAAAhB5Mqk4mIAAIiQ4oAAIH2AUSJiAACIkOKAACBre0BRImIAAIiQ4oAACJJEkQlSRJEIQhJEkQhBkkSRIkpiAALgAEAI08CVFCwIkOKAAExADIDEklAAAYxADIDEhGJMRYiCUk4ECISRIgAAiJDigEAiYgAAiJDigAAsSKyEDIKsgcjsggjsgG2JLIQJw2yGiOyAbOJNhoBSRUhCRJEiAACIkOKAQAhCUSJiAACIkOKAAAhCUSJiAACIkOKAAAiIQU/Ij4hBRJEiYgAAiJDigAAIQU1ADQAIgg1ADQAIQwSRImIAAIiQ4oAACUhBT8lPiIIJUw/JT4hDBJEiYgAAiJDigAAKCcEjACLADIDEkSJKTYaAReIAAUWULAiQ4oBASiL/yISQQAEJUIACIv/IgiMAIsAjACJiAACIkOKAACxJLIQgAShUxbeshoisjCACAAAAAAAAAAAshojsgGziYgAAiJDigAAsSSyECcOvkSyQCcPvkSyQCcOvkSyQicPvkSyQiOyAbOJiAACIkOKAAAjRImIAAIiQ4oAAACJNhoCFzYaAReIAAIiQ4oCAChJi/9JQQAFi/4iEhBBAAQlQgABI4wAiwBEi/9JQQAFi/4jEhBBAAaAATJCAAInEIwBiwGwiYoAACgxG0QjjACLADEbDEEADosAwBqwiwAiCIwAQv/qiYgAAiJDigAAKEkjjAAyA4wBiwEjgANrZXljRIkpiAAFFlCwIkOKAAEhCIkpiAAFFlCwIkOKAAEhBIkpiAAFFlCwIkOKAAGI/9xIiP/niSmIAAUWULAiQ4oAAShJIowANjIAjAGLAEEAAyWMAYsBjABGAYmIAAIiQ4oAADECRDEERIkiQ4AEuER7NjYaAI4B//EAgARiQmSjgASyBe3JgATm6X1bgATdb6fIgAQOpkT7gATsDZCUgARohI2XgAQYvSPcgASAa/uTgAQ75fgugAQSldaDgASzuMRygART4LbwgARLPrh3gATawuelgASj22cEgASuIcFygATatNHEgASntK6agARtRIW6gATvYmLpgASNK2aLgATmwVT8gASpdkGXgASdu8QsgARMDd7BgAQw7PtBgAQUpJkZgAS3HBeagASYSBCTgAT1ctHBgASFTe3ggARoFZn6gAReFHfogATgezvpgAQW5GZXgAQsg29GgASpPFb5gAT5NpUtgASI85yZgARYeUz0gAQ1BErYgAR9J56OgAQ9+hjIgAR4ylxOgAQOZ+lXgAQ7RG7vgASuguh1gATWmvUwgARNUvM9gAQsDNIBgARw4K/lgAQwov70gATzlx3KJw2ABJ5A00uABJHPK1iABLHItFyABJwOG9uABAoxlQSABISyYPqABEqQiFaABI3rMtOABGfeFW+ABB5ChBKABCeP2LiABL/DYgiABATu33mABDXV+8eABPlSLi+ABIyTeeaABPmhNVKABJTyBJqABFYmQhU2GgCOSu/k7/PwAfAq8E3wXfBr8HrwifCy8PHxCPEa8S/xVPFs8Zrx+fIL8h7yOPJR8mTyt/Ma8zr3Ufdr94X3l/ek+AT4N/hw+JL4rPjK+PP5Hvk1+UD5Yfpx+pb6q/rD+tb67fr6+xL7IPst+zv7Vvt4+4v7rvvD+8/74vv7/BX8KfxQ/Hj8ofys/Lb9Hf05/Uj9V/1r/ZCI/PkiQ4oBAYAKMDEyMzQ1Njc4OYv/IliJigEBi/8jEkEAAycQiYv/IQoKIw1BAAuL/yEKCoj/4UIAASiL/yEKGIj/wVCJ", + "approval": "CiAIAQAGuQoCBXsEJhJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAMEFR98dQMKgQEMc3RvcmFnZUFycmF5AANmb28JAAAAAAAAAAAACAAAAAAAAAABB3BhZ2VPbmUHcGFnZVR3bwRnS2V5BCxjbusDYmFyA2J5ZQIAAAEwMRgUgQYLMRkIjQwUCgAAAAAAAAAAAAAT/AAAAAAAAAAAAAAAiAADgQFDigAAgQA4EIEGEkSJiAADgQFDigAAMgSBARJEiTYaAkkVgQESRIEAUzYaAUkVgQESRIEAU4gAA4EBQ4oCAIv/RIv+RIv/i/4SRIkxFoEBCUk4EIEBEkSIAAOBAUOKAQCL/zgHMgoSRIv/OAiBoI0GEkSJiAADgQFDigAAgQA4ADEAEkSJiAADgQFDigAAMRiBAQ1EiYgAA4EBQ4oAADEAMQASRImIAAOBAUOKAAAxADIDE0SJiAADgQFDigAAsYEBshCBALIIMgqyB4EAsgG2gQGyEIEAsggyCrIHgANmb2+yBYEAsgGziYgAA4EBQ4oAALGBAbIQgaCNBrIIMQCyB4EAsgG2gQayEIAEDoy59rIagbkKshiACAAAAAAAAAABshqBALIBtoEGshCABGxvegiyGoEAsgGziYgAA4EBQ4oAAIEBgQKQgQQSRIEEgQGRgQISRImIAAOBAUOKAACAA2FiY3MBSESJiAADgQFDigAAgXtyB0iwgXtxC0iwiYgAA4EBQ4oAAIAARwKAAgAAjACBAa+MAYAJAAAAAAAAAAAAjAKAAgAAiwFQgAkAAAAAAAAAAABQFYEMEkSJiAADgQFDigAAgASHUoGWNjIAFoAIAAAAAAAAAAFQULCJgAQVH3x1NhoBVwIAiAAQSRWBCAoWVwYCTFBQsIEBQ4oBAYv/Nf80/1cACBdEgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOM/4v/iYgAA4EBQ4oAALGBBrIQgQCyGYA2CjEYFIEGCzEZCI0MAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAIEBQ4AEuER7NjYaAI4B//AAsh6AAQqyH4EAsjeBALI2gQCyNYEAsjSBALIBs4mIAAOBAUOKAACBAYgT1YABMRJEiYgAA4EBQ4oAAIEDiBPBgAEzEkSJiAADgQFDigAAgAZhYmNkZWZRAQOAAmJjEkSJiAADgQFDigAAgABJgQCMAIEASRJEgQCMAYEASRJEiYgAA4EBQ4oAAIG5CjUANACBuQoSRImIAAOBAUOKAACAAEcDgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcEBQCAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAjACMAYsAsIsBsIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAYAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJBwCMAowDiwKwiwOwiYgAA4EBQ4oAAIEAOBCBARJEgQA4CIEADUSBADgQgQYSRIEAOBiBABJEgQA5GgCAA2ZvbxJEgQA5GgGAA2JhchKBADkaAYADYmF6EhFEgQA4EIEEEkSBADgUMgoSRIEAOBCBAxJEgQA4IYEAEkSBADgQgQISRIEAOAyBuQoSRImIAAOBAUOKAACAAIADZm9vjACLAIADYmFyUIwAiwCABmZvb2JhchJEiYAEFR98dYgADUkVFlcGAkxQULCBAUOKAAGA8wkKIAIBACYJBBUffHUEZWxzZQJpZgllbHNlIGlmIDEJZWxzZSBpZiAyB2Vsc2UgaWYDZW5kA2ZvbwAxGBSBBgsxGQiNDAQZAAAAAAAAAAAAAAQLAAAAAAAAAAAAAACABBUffHU2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigEBi/9BAAWAAmlmiYADZW5kiYAEFR98dTYaAUkVgQESRIEAU4gADUkVFlcGAkxQULCBAUOKAQGL/0EACIACaWaJQgAHgARlbHNliYmABBUffHU2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigIBi/9BAAiAAmlmiUIAD4v+QQAKgAdlbHNlIGlmiYADZW5kiYAEFR98dTYaAkkVgQESRIEAUzYaAUkVgQESRIEAU4gADUkVFlcGAkxQULCBAUOKAgGL/0EACIACaWaJQgAZi/5BAA2AB2Vsc2UgaWaJQgAHgARlbHNliYmABBUffHU2GgNJFYEBEkSBAFM2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigMBi/9BAAiAAmlmiUIAJYv+QQAPgAllbHNlIGlmIDGJQgARi/1BAAyACWVsc2UgaWYgMomAA2VuZImABBUffHU2GgNJFYEBEkSBAFM2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigMBi/9BAAiAAmlmiUIAL4v+QQAPgAllbHNlIGlmIDGJQgAbi/1BAA+ACWVsc2UgaWYgMolCAAeABGVsc2WJiYAEFR98dTYaAkkVgQESRIEAUzYaAUkVgQESRIEAU4gADUkVFlcGAkxQULCBAUOKAgGL/0EAGYv+QQAMgAluZXN0ZWQgaWaJgAJpZolCAAeABGVsc2WJiYAEFR98dTYaAUkVgQESRIEAU4gADUkVFlcGAkxQULCBAUOKAQGL/0EACIACaWaJQgAHgARlbHNliYmABBUffHU2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAAYWULCBAUOKAgGL/0EABYEBQgAMi/5BAAWBAkIAAoEDiYAEFR98dTYaAVcCAIgABhZQsIEBQ4oBAYv/gACpQQADgQGJgQKJgAQVH3x1NhoBVwIAiAAGFlCwgQFDigEBi/+AAKlBAAWBAUIAAoECiTYaAUkVgQISRBeIAAOBAUOKAQCL/4AAqUEABoADZm9vsIk2GgJJFYECEkQXNhoBSRWBAhJEF4gAA4EBQ4oCAIv/i/4OQQAGgANmb2+wiTYaAkkVgSASRDYaAUkVgSASRIgAA4EBQ4oCAIv/i/6mQQAGgANmb2+wiYAEFR98dTYaAkkVgQESRIEAUzYaAUkVgQESRIEAU4gADUkVFlcGAkxQULCBAUOKAgGL/0EAGYv+QQANgAdhIGFuZCBiiUIABIABYYlCABaL/kEAB4ABYolCAAqAB25laXRoZXKJiYEBQ4AEuER7NjYaAI4B//AAgARDbsHCgAQceg1egAReD7bPgAReHGxQgARY0LqSgARdL08CgASEVynZgASP52yogAQaPHh4gAR0vMhogARCEvkFgASV3a6/gAQxR7hmgARCiX9hgARTS+K3NhoAjg/7a/ug+9r8LfyF/Pr9dP3L/gX+Rv5s/pT+tv7i/wwAiYgAA4EBQ4oAAIAFaGVsbG+IAAKwiYoBAYv/iYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBi/+L/giJiAADgQFDigAAgQKBAYj/54EDEkSJiAADgQFDigAAOgECsImABBUffHWIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigABgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHiQImIAAOBAUOKAACAALGBBrIQgQCyAYADCoEBSbIesh+BBbIZs4EBjACLAIFLDEEADYsARIsAgQEIjABC/+uJgAQVH3x1iAANSRUWVwYCTFBQsIEBQ4oAAYAAgAJoaYwAMQAyChJBAAyACGluIGJsb2NrjACAA2J5ZUmMAIwAiYAEFR98dYgABhZQsIEBQ4oAAYAAgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMAIsAgQCBBEk19RZdjAA09YwAiYAEFR98dYgABhZQsIEBQ4oAAYAEZ0tleYEBZ4AEZ0tleYECSTX1ZzT1iYAEFR98dYgABhZQsIEBQ4oAAYAAgQGMAIsAgQIISTX1jAA09YwAiYAEFR98dYgABhZQsIEBQ4oAAYAAgBgAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAOMAIsAgQCLAFcACBeBBAhJNfUWXYwANPWMAImABBUffHWIAAYWULCBAUOKAAGADHN0b3JhZ2VBcnJheYAYAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADZ4AMc3RvcmFnZUFycmF5ZIEAgAxzdG9yYWdlQXJyYXlkVwAIF4EECEk19RZdgAxzdG9yYWdlQXJyYXlMZzT1iYgAA4EBQ4oAAIADZm9vgANmb28SRIF7SRJEgXtJEkSJiAADgQFDigAAgQBEiYgAA4EBQ4oAAIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAWYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAWoBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAW4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABImIAAOBAUOKAACAAEmxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOxgQayEIEAsgGAAwqBAUmyHrIfgQWyGbOAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAIwAjAGLABREiwGwiYgAA4EBQ4oAAIAAgABJ4QCAAEniAIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAgACAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjAIAA5ACAAOUAgABJ4ACJiAADgQFDigAAgAC3AACwgQGMALcBALCJiAADgQFDigAAgANmb2+BAIEBVLCAA2Zvb4EAU4ADZm9vgQBVgANmb2+BAIEBVomIAAOBAUOKAACBe4EAgQFURIF7gQBTiYgAA4EBQ4oAADIGgQEJ0QCwMgaBAQnRAUSJiAADgQFDigAAgABeAbCJiAADgQFDigAAgABJXwKwgABJXwCwgABJXwFEiYgAA4EBQ4oAAIF7k4ADZm9vk4mIAAOBAUOKAACB9gFEiYgAA4EBQ4oAAIGt7QFEiYgAA4EBQ4oAAIEBSRJEgQJJEkSBA4EDEkSBBEkSRImABBUffHWIAA2AAQCBAE8CVFCwgQFDigABMQAyAxJJQAAGMQAyAxIRiTEWgQEJSTgQgQESRIgAA4EBQ4oBAImIAAOBAUOKAACxgQGyEDIKsgeBALIIgQCyAbaBBrIQgAQsY27rshqBALIBs4k2GgFJFYEgEkSIAAOBAUOKAQCBIESJiAADgQFDigAAgSBEiYgAA4EBQ4oAAIEBgbkKP4EBPoG5ChJEiYgAA4EBQ4oAAIG5CjUANACBAQg1ADQAgboKEkSJiAADgQFDigAAgQKBuQo/gQI+gQEIgQJMP4ECPoG6ChJEiYgAA4EBQ4oAAIAAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAiwAyAxJEiYAEFR98dTYaAReIAAYWULCBAUOKAQGAAIv/gQESQQAFgQJCAAmL/4EBCIwAiwCMAImIAAOBAUOKAACxgQayEIAEoVMW3rIagQGyMIAIAAAAAAAAAACyGoEAsgGziYgAA4EBQ4oAALGBBrIQgAdwYWdlT25lvkSyQIAHcGFnZVR3b75EskCAB3BhZ2VPbmW+RLJCgAdwYWdlVHdvvkSyQoEAsgGziYgAA4EBQ4oAAIEARImIAAOBAUOKAAAAiTYaAhc2GgEXiAADgQFDigIAgABJi/9JQQAGi/6BARIQQQAFgQJCAAKBAIwAiwBEi/9JQQAGi/6BABIQQQAGgAEyQgADgAEwjAGLAbCJigAAgAAxG0SBAIwAiwAxGwxBAA+LAMAasIsAgQEIjABC/+mJiAADgQFDigAAgABJgQCMADIDjAGLAYEAgANrZXljRImABBUffHWIAAYWULCBAUOKAAGBA4mABBUffHWIAAYWULCBAUOKAAGBBYmABBUffHWIAAYWULCBAUOKAAGI/9BIiP/hiYAEFR98dYgABhZQsIEBQ4oAAYAASYEBjAA2MgCMAYsAQQAEgQKMAYsBjABGAYmIAAOBAUOKAAAxAkQxBESJgQFDgAS4RHs2NhoAjgH/8ACABGJCZKOABLIF7cmABObpfVuABN1vp8iABA6mRPuABOwNkJSABGiEjZeABBi9I9yABIBr+5OABDvl+C6ABBKV1oOABLO4xHKABFPgtvCABEs+uHeABNrC56WABKPbZwSABK4hwXKABNq00cSABKe0rpqABG1EhbqABO9iYumABI0rZouABObBVPyABKl2QZeABJ27xCyABEwN3sGABDDs+0GABBSkmRmABLccF5qABJhIEJOABPVy0cGABIVN7eCABGgVmfqABF4Ud+iABOB7O+mABBbkZleABCyDb0aABKk8VvmABPk2lS2ABIjznJmABFh5TPSABDUEStiABH0nno6ABD36GMiABHjKXE6ABA5n6VeABDtEbu+ABK6C6HWABNaa9TCABE1S8z2ABCwM0gGABHDgr+WABDCi/vSABPOXHcqABCxjbuuABJ5A00uABJHPK1iABLHItFyABJwOG9uABAoxlQSABISyYPqABEqQiFaABI3rMtOABGfeFW+ABB5ChBKABCeP2LiABL/DYgiABATu33mABDXV+8eABPlSLi+ABIyTeeaABPmhNVKABJTyBJqABFYmQhU2GgCOSumi6bTpxOny6hrqLOo86kzqXOqQ6uHq/esQ6ybrZOuF69HsOOxM7GDse+ya7LDtZu3l7g7zHvM581nzbvN88+L0H/Rf9KH0y/Ty9Tv1tfXV9eL3h/kP+bz51PoD+hr6NPpD+l/6cvqA+o/6rvrX+u37Gvsw+z37Vfty+5T7yvv7/Cf8b/x8/If8+P0Y/S39Qv1c/YqI/NGBAUOKAQGACjAxMjM0NTY3ODmL/4EBWImKAQGL/4EAEkEABIABMImL/4EKCoEADUEAC4v/gQoKiP/eQgACgACL/4EKGIj/vFCJ", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/IfTest.approval.teal b/tests/contracts/artifacts/IfTest.approval.teal index 59d7845e5..c3d0c00e3 100644 --- a/tests/contracts/artifacts/IfTest.approval.teal +++ b/tests/contracts/artifacts/IfTest.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 0 +bytecblock 0x151f7c75 0x656c7365 0x6966 0x656c73652069662031 0x656c73652069662032 0x656c7365206966 0x656e64 0x666f6f 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -558,7 +560,7 @@ nestedIf: // *if7_consequent // tests/contracts/if.algo.ts:69 // return 'nested if'; - byte 0x6e6573746564206966 // "nested if" + pushbytes 0x6e6573746564206966 // "nested if" retsub *if7_end: @@ -684,11 +686,11 @@ nestedTernary: *ternary0_false: frame_dig -2 // arg1: boolean bz *ternary1_false - int 2 + pushint 2 b *ternary1_end *ternary1_false: - int 3 + pushint 3 *ternary1_end: @@ -733,7 +735,7 @@ stringIf: *if9_end: // tests/contracts/if.algo.ts:92 // return 2; - int 2 + pushint 2 retsub // stringTernary(string)uint64 @@ -767,7 +769,7 @@ stringTernary: b *ternary2_end *ternary2_false: - int 2 + pushint 2 *ternary2_end: retsub @@ -778,7 +780,7 @@ stringTernary: txna ApplicationArgs 1 dup len - int 2 + pushint 2 == // argument 0 (a) for smallUintConditional must be a uint16 @@ -817,7 +819,7 @@ smallUintConditional: txna ApplicationArgs 2 dup len - int 2 + pushint 2 == // argument 0 (b) for smallUintComparisonConditional must be a uint16 @@ -828,7 +830,7 @@ smallUintConditional: txna ApplicationArgs 1 dup len - int 2 + pushint 2 == // argument 1 (a) for smallUintComparisonConditional must be a uint16 @@ -867,7 +869,7 @@ smallUintComparisonConditional: txna ApplicationArgs 2 dup len - int 32 + pushint 32 == // argument 0 (b) for uint256ComparsionConditional must be a uint256 @@ -877,7 +879,7 @@ smallUintComparisonConditional: txna ApplicationArgs 1 dup len - int 32 + pushint 32 == // argument 1 (a) for uint256ComparsionConditional must be a uint256 @@ -971,14 +973,14 @@ nestedIfInElseIf: // *if14_consequent // tests/contracts/if.algo.ts:120 // return 'a and b'; - byte 0x6120616e642062 // "a and b" + pushbytes 0x6120616e642062 // "a and b" retsub b *if14_end *if14_else: // tests/contracts/if.algo.ts:122 // return 'a'; - byte 0x61 // "a" + pushbytes 0x61 // "a" retsub *if14_end: @@ -993,14 +995,14 @@ nestedIfInElseIf: // *if13_elseif1_consequent // tests/contracts/if.algo.ts:125 // return 'b'; - byte 0x62 // "b" + pushbytes 0x62 // "b" retsub b *if13_end *if13_else: // tests/contracts/if.algo.ts:127 // return 'neither'; - byte 0x6e656974686572 // "neither" + pushbytes 0x6e656974686572 // "neither" retsub *if13_end: @@ -1011,7 +1013,7 @@ nestedIfInElseIf: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -1019,21 +1021,21 @@ nestedIfInElseIf: err *call_NoOp: - method "singleIf(bool)string" - method "ifElse(bool)string" - method "ifElseIf(bool,bool)string" - method "ifElseIfElse(bool,bool)string" - method "ifElseIfElseIf(bool,bool,bool)string" - method "ifElseIfElseIfElse(bool,bool,bool)string" - method "nestedIf(bool,bool)string" - method "bracketlessIfElse(bool)string" - method "nestedTernary(bool,bool)uint64" - method "stringIf(string)uint64" - method "stringTernary(string)uint64" - method "smallUintConditional(uint16)void" - method "smallUintComparisonConditional(uint16,uint16)void" - method "uint256ComparsionConditional(uint256,uint256)void" - method "nestedIfInElseIf(bool,bool)string" + pushbytes 0x436ec1c2 // method "singleIf(bool)string" + pushbytes 0x1c7a0d5e // method "ifElse(bool)string" + pushbytes 0x5e0fb6cf // method "ifElseIf(bool,bool)string" + pushbytes 0x5e1c6c50 // method "ifElseIfElse(bool,bool)string" + pushbytes 0x58d0ba92 // method "ifElseIfElseIf(bool,bool,bool)string" + pushbytes 0x5d2f4f02 // method "ifElseIfElseIfElse(bool,bool,bool)string" + pushbytes 0x845729d9 // method "nestedIf(bool,bool)string" + pushbytes 0x8fe76ca8 // method "bracketlessIfElse(bool)string" + pushbytes 0x1a3c7878 // method "nestedTernary(bool,bool)uint64" + pushbytes 0x74bcc868 // method "stringIf(string)uint64" + pushbytes 0x4212f905 // method "stringTernary(string)uint64" + pushbytes 0x95ddaebf // method "smallUintConditional(uint16)void" + pushbytes 0x3147b866 // method "smallUintComparisonConditional(uint16,uint16)void" + pushbytes 0x42897f61 // method "uint256ComparsionConditional(uint256,uint256)void" + pushbytes 0x534be2b7 // method "nestedIfInElseIf(bool,bool)string" txna ApplicationArgs 0 match *abi_route_singleIf *abi_route_ifElse *abi_route_ifElseIf *abi_route_ifElseIfElse *abi_route_ifElseIfElseIf *abi_route_ifElseIfElseIfElse *abi_route_nestedIf *abi_route_bracketlessIfElse *abi_route_nestedTernary *abi_route_stringIf *abi_route_stringTernary *abi_route_smallUintConditional *abi_route_smallUintComparisonConditional *abi_route_uint256ComparsionConditional *abi_route_nestedIfInElseIf diff --git a/tests/contracts/artifacts/IfTest.arc32.json b/tests/contracts/artifacts/IfTest.arc32.json index 10d4908b4..1f57bbac9 100644 --- a/tests/contracts/artifacts/IfTest.arc32.json +++ b/tests/contracts/artifacts/IfTest.arc32.json @@ -109,7 +109,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaW5nbGVJZihib29sKXN0cmluZwoqYWJpX3JvdXRlX3NpbmdsZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMCkgZm9yIHNpbmdsZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIHNpbmdsZUlmKGJvb2wpc3RyaW5nCgljYWxsc3ViIHNpbmdsZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNpbmdsZUlmKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKc2luZ2xlSWY6Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcwKSBmb3IgaWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE1CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmMV9lbHNlCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxNgoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmMV9lbmQKCippZjFfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZwoqYWJpX3JvdXRlX2lmRWxzZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMSkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWYoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHN0cmluZwppZkVsc2VJZjoKCXByb3RvIDIgMQoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyMwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjJfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI0CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWYyX2VuZAoKKmlmMl9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI1CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjkKCS8vIHJldHVybiAnZW5kJzsKCWJ5dGUgMHg2NTZlNjQgLy8gImVuZCIKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWZFbHNlKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlOgoJcHJvdG8gMiAxCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjMzCgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmM19lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzQKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliICppZjNfZW5kCgoqaWYzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWYzX2Vsc2UKCgkvLyAqaWYzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCWIgKmlmM19lbmQKCippZjNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjM4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYzX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcyKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWY6Cglwcm90byAzIDEKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDMKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY0X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNF9lbmQKCippZjRfZWxzZWlmMV9jb25kaXRpb246CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NQoJLy8gYXJnMQoJZnJhbWVfZGlnIC0yIC8vIGFyZzE6IGJvb2xlYW4KCWJ6ICppZjRfZWxzZWlmMl9jb25kaXRpb24KCgkvLyAqaWY0X2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDYKCS8vIHJldHVybiAnZWxzZSBpZiAxJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzEgLy8gImVsc2UgaWYgMSIKCXJldHN1YgoJYiAqaWY0X2VuZAoKKmlmNF9lbHNlaWYyX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ3CgkvLyBhcmcyCglmcmFtZV9kaWcgLTMgLy8gYXJnMjogYm9vbGVhbgoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDgKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoKKmlmNF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1MQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2VJZkVsc2UoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcyOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMikgZm9yIGlmRWxzZUlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFyZzEpIGZvciBpZkVsc2VJZkVsc2VJZkVsc2UgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWZFbHNlSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmRWxzZShhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogc3RyaW5nCmlmRWxzZUlmRWxzZUlmRWxzZToKCXByb3RvIDMgMQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1NQoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjVfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU3CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmNV9lbHNlaWYyX2NvbmRpdGlvbgoKCS8vICppZjVfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1OAoJLy8gcmV0dXJuICdlbHNlIGlmIDEnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2MjAzMSAvLyAiZWxzZSBpZiAxIgoJcmV0c3ViCgliICppZjVfZW5kCgoqaWY1X2Vsc2VpZjJfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTkKCS8vIGFyZzIKCWZyYW1lX2RpZyAtMyAvLyBhcmcyOiBib29sZWFuCglieiAqaWY1X2Vsc2UKCgkvLyAqaWY1X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjAKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjIKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjVfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcwKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWYoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBuZXN0ZWRJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZihhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmOgoJcHJvdG8gMiAxCgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjY3CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmNl9lbHNlCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjgKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjkKCS8vIHJldHVybiAnbmVzdGVkIGlmJzsKCWJ5dGUgMHg2ZTY1NzM3NDY1NjQyMDY5NjYgLy8gIm5lc3RlZCBpZiIKCXJldHN1YgoKKmlmN19lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3MQoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNl9lbmQKCippZjZfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjczCgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWY2X2VuZDoKCXJldHN1YgoKLy8gYnJhY2tldGxlc3NJZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFyZzApIGZvciBicmFja2V0bGVzc0lmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBicmFja2V0bGVzc0lmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBicmFja2V0bGVzc0lmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmFja2V0bGVzc0lmRWxzZShhcmcwOiBib29sZWFuKTogc3RyaW5nCmJyYWNrZXRsZXNzSWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc4CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmOF9lbHNlCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3OAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmOF9lbmQKCippZjhfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc5CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWY4X2VuZDoKCXJldHN1YgoKLy8gbmVzdGVkVGVybmFyeShib29sLGJvb2wpdWludDY0CiphYmlfcm91dGVfbmVzdGVkVGVybmFyeToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFyZzEpIGZvciBuZXN0ZWRUZXJuYXJ5IG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIG5lc3RlZFRlcm5hcnkgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkVGVybmFyeShib29sLGJvb2wpdWludDY0CgljYWxsc3ViIG5lc3RlZFRlcm5hcnkKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRUZXJuYXJ5KGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiB1aW50NjQKbmVzdGVkVGVybmFyeToKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjg0CgkvLyByZXR1cm4gYXJnMCA/IDEgOiBhcmcxID8gMiA6IDM7CglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnQgMQoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKnRlcm5hcnkxX2ZhbHNlCglpbnQgMgoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglpbnQgMwoKKnRlcm5hcnkxX2VuZDoKCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIHN0cmluZ0lmKHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9zdHJpbmdJZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMDogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RyaW5nSWYoc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdJZgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ0lmKGFyZzA6IHN0cmluZyk6IHVpbnQ2NApzdHJpbmdJZjoKCXByb3RvIDEgMQoKCS8vICppZjlfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4OAoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODkKCS8vIHJldHVybiAxOwoJaW50IDEKCXJldHN1YgoKKmlmOV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo5MgoJLy8gcmV0dXJuIDI7CglpbnQgMgoJcmV0c3ViCgovLyBzdHJpbmdUZXJuYXJ5KHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9zdHJpbmdUZXJuYXJ5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdHJpbmdUZXJuYXJ5KHN0cmluZyl1aW50NjQKCWNhbGxzdWIgc3RyaW5nVGVybmFyeQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1Rlcm5hcnkoYXJnMDogc3RyaW5nKTogdWludDY0CnN0cmluZ1Rlcm5hcnk6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo5NgoJLy8gcmV0dXJuIGFyZzAgPyAxIDogMjsKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBzdHJpbmcKCWJ5dGUgMHgKCWIhPQoJYnogKnRlcm5hcnkyX2ZhbHNlCglpbnQgMQoJYiAqdGVybmFyeTJfZW5kCgoqdGVybmFyeTJfZmFsc2U6CglpbnQgMgoKKnRlcm5hcnkyX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQKKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbDoKCS8vIGE6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBzbWFsbFVpbnRDb25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbmRpdGlvbmFsKHVpbnQxNil2b2lkCgljYWxsc3ViIHNtYWxsVWludENvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb25kaXRpb25hbChhOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbmRpdGlvbmFsOgoJcHJvdG8gMSAwCgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDAKCS8vIGEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWJ5dGUgMHgKCWIhPQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTAxCgkvLyBsb2coJ2ZvbycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglsb2cKCippZjEwX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZAoqYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQxNgoJYXNzZXJ0CglidG9pCgoJLy8gYTogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKCWNhbGxzdWIgc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwoYTogdWludDE2LCBiOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTA2CgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MTYKCTw9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDcKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTFfZW5kOgoJcmV0c3ViCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCh1aW50MjU2LHVpbnQyNTYpdm9pZAoJY2FsbHN1YiB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB2b2lkCnVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWw6Cglwcm90byAyIDAKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjExMgoJLy8gYSA8PSBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWI8PQoJYnogKmlmMTJfZW5kCgoJLy8gKmlmMTJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTEzCgkvLyBsb2coJ2ZvbycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglsb2cKCippZjEyX2VuZDoKCXJldHN1YgoKLy8gbmVzdGVkSWZJbkVsc2VJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWZJbkVsc2VJZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBuZXN0ZWRJZkluRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIG5lc3RlZElmSW5FbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWZJbkVsc2VJZihib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIG5lc3RlZElmSW5FbHNlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkSWZJbkVsc2VJZihhOiBib29sZWFuLCBiOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmSW5FbHNlSWY6Cglwcm90byAyIDEKCgkvLyAqaWYxM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjExOAoJLy8gYQoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCWJ6ICppZjEzX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMTNfY29uc2VxdWVudAoJLy8gKmlmMTRfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTkKCS8vIGIKCWZyYW1lX2RpZyAtMiAvLyBiOiBib29sZWFuCglieiAqaWYxNF9lbHNlCgoJLy8gKmlmMTRfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTIwCgkvLyByZXR1cm4gJ2EgYW5kIGInOwoJYnl0ZSAweDYxMjA2MTZlNjQyMDYyIC8vICJhIGFuZCBiIgoJcmV0c3ViCgliICppZjE0X2VuZAoKKmlmMTRfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEyMgoJLy8gcmV0dXJuICdhJzsKCWJ5dGUgMHg2MSAvLyAiYSIKCXJldHN1YgoKKmlmMTRfZW5kOgoJYiAqaWYxM19lbmQKCippZjEzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI0CgkvLyBiCglmcmFtZV9kaWcgLTIgLy8gYjogYm9vbGVhbgoJYnogKmlmMTNfZWxzZQoKCS8vICppZjEzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI1CgkvLyByZXR1cm4gJ2InOwoJYnl0ZSAweDYyIC8vICJiIgoJcmV0c3ViCgliICppZjEzX2VuZAoKKmlmMTNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEyNwoJLy8gcmV0dXJuICduZWl0aGVyJzsKCWJ5dGUgMHg2ZTY1Njk3NDY4NjU3MiAvLyAibmVpdGhlciIKCXJldHN1YgoKKmlmMTNfZW5kOgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2luZ2xlSWYoYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZShib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZUlmRWxzZUlmKGJvb2wsYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWZFbHNlSWZFbHNlKGJvb2wsYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAibmVzdGVkSWYoYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiYnJhY2tldGxlc3NJZkVsc2UoYm9vbClzdHJpbmciCgltZXRob2QgIm5lc3RlZFRlcm5hcnkoYm9vbCxib29sKXVpbnQ2NCIKCW1ldGhvZCAic3RyaW5nSWYoc3RyaW5nKXVpbnQ2NCIKCW1ldGhvZCAic3RyaW5nVGVybmFyeShzdHJpbmcpdWludDY0IgoJbWV0aG9kICJzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZCIKCW1ldGhvZCAic21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZCIKCW1ldGhvZCAidWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCh1aW50MjU2LHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAibmVzdGVkSWZJbkVsc2VJZihib29sLGJvb2wpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zaW5nbGVJZiAqYWJpX3JvdXRlX2lmRWxzZSAqYWJpX3JvdXRlX2lmRWxzZUlmICphYmlfcm91dGVfaWZFbHNlSWZFbHNlICphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWYgKmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2VJZkVsc2UgKmFiaV9yb3V0ZV9uZXN0ZWRJZiAqYWJpX3JvdXRlX2JyYWNrZXRsZXNzSWZFbHNlICphYmlfcm91dGVfbmVzdGVkVGVybmFyeSAqYWJpX3JvdXRlX3N0cmluZ0lmICphYmlfcm91dGVfc3RyaW5nVGVybmFyeSAqYWJpX3JvdXRlX3NtYWxsVWludENvbmRpdGlvbmFsICphYmlfcm91dGVfc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsICphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCAqYWJpX3JvdXRlX25lc3RlZElmSW5FbHNlSWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAKYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4NjU2YzczNjUgMHg2OTY2IDB4NjU2YzczNjUyMDY5NjYyMDMxIDB4NjU2YzczNjUyMDY5NjYyMDMyIDB4NjU2YzczNjUyMDY5NjYgMHg2NTZlNjQgMHg2NjZmNmYgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaW5nbGVJZihib29sKXN0cmluZwoqYWJpX3JvdXRlX3NpbmdsZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMCkgZm9yIHNpbmdsZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIHNpbmdsZUlmKGJvb2wpc3RyaW5nCgljYWxsc3ViIHNpbmdsZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNpbmdsZUlmKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKc2luZ2xlSWY6Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcwKSBmb3IgaWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE1CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmMV9lbHNlCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxNgoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmMV9lbmQKCippZjFfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZwoqYWJpX3JvdXRlX2lmRWxzZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMSkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWYoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHN0cmluZwppZkVsc2VJZjoKCXByb3RvIDIgMQoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyMwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjJfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI0CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWYyX2VuZAoKKmlmMl9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI1CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjkKCS8vIHJldHVybiAnZW5kJzsKCWJ5dGUgMHg2NTZlNjQgLy8gImVuZCIKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWZFbHNlKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlOgoJcHJvdG8gMiAxCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjMzCgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmM19lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzQKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliICppZjNfZW5kCgoqaWYzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWYzX2Vsc2UKCgkvLyAqaWYzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCWIgKmlmM19lbmQKCippZjNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjM4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYzX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcyKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWY6Cglwcm90byAzIDEKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDMKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY0X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNF9lbmQKCippZjRfZWxzZWlmMV9jb25kaXRpb246CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NQoJLy8gYXJnMQoJZnJhbWVfZGlnIC0yIC8vIGFyZzE6IGJvb2xlYW4KCWJ6ICppZjRfZWxzZWlmMl9jb25kaXRpb24KCgkvLyAqaWY0X2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDYKCS8vIHJldHVybiAnZWxzZSBpZiAxJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzEgLy8gImVsc2UgaWYgMSIKCXJldHN1YgoJYiAqaWY0X2VuZAoKKmlmNF9lbHNlaWYyX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ3CgkvLyBhcmcyCglmcmFtZV9kaWcgLTMgLy8gYXJnMjogYm9vbGVhbgoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDgKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoKKmlmNF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1MQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2VJZkVsc2UoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcyOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMikgZm9yIGlmRWxzZUlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFyZzEpIGZvciBpZkVsc2VJZkVsc2VJZkVsc2UgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWZFbHNlSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmRWxzZShhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogc3RyaW5nCmlmRWxzZUlmRWxzZUlmRWxzZToKCXByb3RvIDMgMQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1NQoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjVfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU3CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmNV9lbHNlaWYyX2NvbmRpdGlvbgoKCS8vICppZjVfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1OAoJLy8gcmV0dXJuICdlbHNlIGlmIDEnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2MjAzMSAvLyAiZWxzZSBpZiAxIgoJcmV0c3ViCgliICppZjVfZW5kCgoqaWY1X2Vsc2VpZjJfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTkKCS8vIGFyZzIKCWZyYW1lX2RpZyAtMyAvLyBhcmcyOiBib29sZWFuCglieiAqaWY1X2Vsc2UKCgkvLyAqaWY1X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjAKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjIKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjVfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcwKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWYoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBuZXN0ZWRJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZihhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmOgoJcHJvdG8gMiAxCgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjY3CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmNl9lbHNlCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjgKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjkKCS8vIHJldHVybiAnbmVzdGVkIGlmJzsKCXB1c2hieXRlcyAweDZlNjU3Mzc0NjU2NDIwNjk2NiAvLyAibmVzdGVkIGlmIgoJcmV0c3ViCgoqaWY3X2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjcxCgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY2X2VuZAoKKmlmNl9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzMKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjZfZW5kOgoJcmV0c3ViCgovLyBicmFja2V0bGVzc0lmRWxzZShib29sKXN0cmluZwoqYWJpX3JvdXRlX2JyYWNrZXRsZXNzSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMCkgZm9yIGJyYWNrZXRsZXNzSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGJyYWNrZXRsZXNzSWZFbHNlKGJvb2wpc3RyaW5nCgljYWxsc3ViIGJyYWNrZXRsZXNzSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyYWNrZXRsZXNzSWZFbHNlKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKYnJhY2tldGxlc3NJZkVsc2U6Cglwcm90byAxIDEKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzgKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY4X2Vsc2UKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY4X2VuZAoKKmlmOF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzkKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjhfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRUZXJuYXJ5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMSkgZm9yIG5lc3RlZFRlcm5hcnkgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcwKSBmb3IgbmVzdGVkVGVybmFyeSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkVGVybmFyeQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFRlcm5hcnkoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHVpbnQ2NApuZXN0ZWRUZXJuYXJ5OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODQKCS8vIHJldHVybiBhcmcwID8gMSA6IGFyZzEgPyAyIDogMzsKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqdGVybmFyeTBfZmFsc2UKCWludCAxCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqdGVybmFyeTFfZmFsc2UKCXB1c2hpbnQgMgoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglwdXNoaW50IDMKCip0ZXJuYXJ5MV9lbmQ6CgoqdGVybmFyeTBfZW5kOgoJcmV0c3ViCgovLyBzdHJpbmdJZihzdHJpbmcpdWludDY0CiphYmlfcm91dGVfc3RyaW5nSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ0lmKHN0cmluZyl1aW50NjQKCWNhbGxzdWIgc3RyaW5nSWYKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJZihhcmcwOiBzdHJpbmcpOiB1aW50NjQKc3RyaW5nSWY6Cglwcm90byAxIDEKCgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODgKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBzdHJpbmcKCWJ5dGUgMHgKCWIhPQoJYnogKmlmOV9lbmQKCgkvLyAqaWY5X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjg5CgkvLyByZXR1cm4gMTsKCWludCAxCglyZXRzdWIKCippZjlfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6OTIKCS8vIHJldHVybiAyOwoJcHVzaGludCAyCglyZXRzdWIKCi8vIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdUZXJuYXJ5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nVGVybmFyeShhcmcwOiBzdHJpbmcpOiB1aW50NjQKc3RyaW5nVGVybmFyeToKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjk2CgkvLyByZXR1cm4gYXJnMCA/IDEgOiAyOwoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiAqdGVybmFyeTJfZmFsc2UKCWludCAxCgliICp0ZXJuYXJ5Ml9lbmQKCip0ZXJuYXJ5Ml9mYWxzZToKCXB1c2hpbnQgMgoKKnRlcm5hcnkyX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQKKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbDoKCS8vIGE6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3Igc21hbGxVaW50Q29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQxNgoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSBzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZAoJY2FsbHN1YiBzbWFsbFVpbnRDb25kaXRpb25hbAoJaW50IDEKCXJldHVybgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwoYTogdWludDE2KTogdm9pZApzbWFsbFVpbnRDb25kaXRpb25hbDoKCXByb3RvIDEgMAoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTAwCgkvLyBhCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2CglieXRlIDB4CgliIT0KCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEwMQoJLy8gbG9nKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJbG9nCgoqaWYxMF9lbmQ6CglyZXRzdWIKCi8vIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWw6CgkvLyBiOiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKCWNhbGxzdWIgc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwoYTogdWludDE2LCBiOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTA2CgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MTYKCTw9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDcKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTFfZW5kOgoJcmV0c3ViCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwKCWludCAxCglyZXR1cm4KCi8vIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHZvaWQKdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTEyCgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYjw9CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTMKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTJfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZkluRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9uZXN0ZWRJZkluRWxzZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIG5lc3RlZElmSW5FbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgbmVzdGVkSWZJbkVsc2VJZiBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBuZXN0ZWRJZkluRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgbmVzdGVkSWZJbkVsc2VJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZkluRWxzZUlmKGE6IGJvb2xlYW4sIGI6IGJvb2xlYW4pOiBzdHJpbmcKbmVzdGVkSWZJbkVsc2VJZjoKCXByb3RvIDIgMQoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTE4CgkvLyBhCglmcmFtZV9kaWcgLTEgLy8gYTogYm9vbGVhbgoJYnogKmlmMTNfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYxM19jb25zZXF1ZW50CgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjExOQoJLy8gYgoJZnJhbWVfZGlnIC0yIC8vIGI6IGJvb2xlYW4KCWJ6ICppZjE0X2Vsc2UKCgkvLyAqaWYxNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMjAKCS8vIHJldHVybiAnYSBhbmQgYic7CglwdXNoYnl0ZXMgMHg2MTIwNjE2ZTY0MjA2MiAvLyAiYSBhbmQgYiIKCXJldHN1YgoJYiAqaWYxNF9lbmQKCippZjE0X2Vsc2U6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMjIKCS8vIHJldHVybiAnYSc7CglwdXNoYnl0ZXMgMHg2MSAvLyAiYSIKCXJldHN1YgoKKmlmMTRfZW5kOgoJYiAqaWYxM19lbmQKCippZjEzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI0CgkvLyBiCglmcmFtZV9kaWcgLTIgLy8gYjogYm9vbGVhbgoJYnogKmlmMTNfZWxzZQoKCS8vICppZjEzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI1CgkvLyByZXR1cm4gJ2InOwoJcHVzaGJ5dGVzIDB4NjIgLy8gImIiCglyZXRzdWIKCWIgKmlmMTNfZW5kCgoqaWYxM19lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI3CgkvLyByZXR1cm4gJ25laXRoZXInOwoJcHVzaGJ5dGVzIDB4NmU2NTY5NzQ2ODY1NzIgLy8gIm5laXRoZXIiCglyZXRzdWIKCippZjEzX2VuZDoKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0MzZlYzFjMiAvLyBtZXRob2QgInNpbmdsZUlmKGJvb2wpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4MWM3YTBkNWUgLy8gbWV0aG9kICJpZkVsc2UoYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg1ZTBmYjZjZiAvLyBtZXRob2QgImlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg1ZTFjNmM1MCAvLyBtZXRob2QgImlmRWxzZUlmRWxzZShib29sLGJvb2wpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4NThkMGJhOTIgLy8gbWV0aG9kICJpZkVsc2VJZkVsc2VJZihib29sLGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg1ZDJmNGYwMiAvLyBtZXRob2QgImlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg4NDU3MjlkOSAvLyBtZXRob2QgIm5lc3RlZElmKGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg4ZmU3NmNhOCAvLyBtZXRob2QgImJyYWNrZXRsZXNzSWZFbHNlKGJvb2wpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4MWEzYzc4NzggLy8gbWV0aG9kICJuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQiCglwdXNoYnl0ZXMgMHg3NGJjYzg2OCAvLyBtZXRob2QgInN0cmluZ0lmKHN0cmluZyl1aW50NjQiCglwdXNoYnl0ZXMgMHg0MjEyZjkwNSAvLyBtZXRob2QgInN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NCIKCXB1c2hieXRlcyAweDk1ZGRhZWJmIC8vIG1ldGhvZCAic21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQiCglwdXNoYnl0ZXMgMHgzMTQ3Yjg2NiAvLyBtZXRob2QgInNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQiCglwdXNoYnl0ZXMgMHg0Mjg5N2Y2MSAvLyBtZXRob2QgInVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwodWludDI1Nix1aW50MjU2KXZvaWQiCglwdXNoYnl0ZXMgMHg1MzRiZTJiNyAvLyBtZXRob2QgIm5lc3RlZElmSW5FbHNlSWYoYm9vbCxib29sKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2luZ2xlSWYgKmFiaV9yb3V0ZV9pZkVsc2UgKmFiaV9yb3V0ZV9pZkVsc2VJZiAqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZSAqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZUlmICphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlICphYmlfcm91dGVfbmVzdGVkSWYgKmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZSAqYWJpX3JvdXRlX25lc3RlZFRlcm5hcnkgKmFiaV9yb3V0ZV9zdHJpbmdJZiAqYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnkgKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbCAqYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCAqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwgKmFiaV9yb3V0ZV9uZXN0ZWRJZkluRWxzZUlmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/IfTest.arc56_draft.json b/tests/contracts/artifacts/IfTest.arc56_draft.json index 237288686..ff809b985 100644 --- a/tests/contracts/artifacts/IfTest.arc56_draft.json +++ b/tests/contracts/artifacts/IfTest.arc56_draft.json @@ -362,4259 +362,184 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 5, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ] - }, - { - "teal": 13, - "source": 5, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 14, - "source": 5, - "pc": [ - 61 - ] - }, - { - "teal": 15, - "source": 5, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 16, - "source": 5, - "pc": [ - 64 - ] - }, - { - "teal": 17, - "source": 5, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 18, - "source": 5, - "pc": [ - 67 - ] - }, - { - "teal": 19, - "source": 5, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 23, - "source": 5, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 94 - ] - }, - { - "teal": 28, - "source": 6, - "pc": [ - 95 - ] - }, - { - "teal": 31, - "source": 6, - "pc": [ - 96, - 97, - 98 - ] - }, - { - "teal": 32, - "source": 6, - "pc": [ - 99 - ] - }, - { - "teal": 33, - "source": 6, - "pc": [ - 100 - ] - }, - { - "teal": 34, - "source": 6, - "pc": [ - 101 - ] - }, - { - "teal": 35, - "source": 6, - "pc": [ - 102 - ] - }, - { - "teal": 38, - "source": 6, - "errorMessage": "argument 0 (arg0) for singleIf must be a bool", - "pc": [ - 103 - ] - }, - { - "teal": 39, - "source": 6, - "pc": [ - 104 - ] - }, - { - "teal": 40, - "source": 6, - "pc": [ - 105 - ] - }, - { - "teal": 43, - "source": 6, - "pc": [ - 106, - 107, - 108 - ] - }, - { - "teal": 44, - "source": 6, - "pc": [ - 109 - ] - }, - { - "teal": 45, - "source": 6, - "pc": [ - 110 - ] - }, - { - "teal": 46, - "source": 6, - "pc": [ - 111 - ] - }, - { - "teal": 47, - "source": 6, - "pc": [ - 112, - 113, - 114 - ] - }, - { - "teal": 48, - "source": 6, - "pc": [ - 115 - ] - }, - { - "teal": 49, - "source": 6, - "pc": [ - 116 - ] - }, - { - "teal": 50, - "source": 6, - "pc": [ - 117 - ] - }, - { - "teal": 51, - "source": 6, - "pc": [ - 118 - ] - }, - { - "teal": 52, - "source": 6, - "pc": [ - 119 - ] - }, - { - "teal": 53, - "source": 6, - "pc": [ - 120 - ] - }, - { - "teal": 57, - "source": 6, - "pc": [ - 121, - 122, - 123 - ] - }, - { - "teal": 62, - "source": 7, - "pc": [ - 124, - 125 - ] - }, - { - "teal": 63, - "source": 7, - "pc": [ - 126, - 127, - 128 - ] - }, - { - "teal": 68, - "source": 8, - "pc": [ - 129 - ] - }, - { - "teal": 69, - "source": 8, - "pc": [ - 130 - ] - }, - { - "teal": 74, - "source": 11, - "pc": [ - 131 - ] - }, - { - "teal": 75, - "source": 6, - "pc": [ - 132 - ] - }, - { - "teal": 80, - "source": 14, - "pc": [ - 133 - ] - }, - { - "teal": 83, - "source": 14, - "pc": [ - 134, - 135, - 136 - ] - }, - { - "teal": 84, - "source": 14, - "pc": [ - 137 - ] - }, - { - "teal": 85, - "source": 14, - "pc": [ - 138 - ] - }, - { - "teal": 86, - "source": 14, - "pc": [ - 139 - ] - }, - { - "teal": 87, - "source": 14, - "pc": [ - 140 - ] - }, - { - "teal": 90, - "source": 14, - "errorMessage": "argument 0 (arg0) for ifElse must be a bool", - "pc": [ - 141 - ] - }, - { - "teal": 91, - "source": 14, - "pc": [ - 142 - ] - }, - { - "teal": 92, - "source": 14, - "pc": [ - 143 - ] - }, - { - "teal": 95, - "source": 14, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 96, - "source": 14, - "pc": [ - 147 - ] - }, - { - "teal": 97, - "source": 14, - "pc": [ - 148 - ] - }, - { - "teal": 98, - "source": 14, - "pc": [ - 149 - ] - }, - { - "teal": 99, - "source": 14, - "pc": [ - 150, - 151, - 152 - ] - }, - { - "teal": 100, - "source": 14, - "pc": [ - 153 - ] - }, - { - "teal": 101, - "source": 14, - "pc": [ - 154 - ] - }, - { - "teal": 102, - "source": 14, - "pc": [ - 155 - ] - }, - { - "teal": 103, - "source": 14, - "pc": [ - 156 - ] - }, - { - "teal": 104, - "source": 14, - "pc": [ - 157 - ] - }, - { - "teal": 105, - "source": 14, - "pc": [ - 158 - ] - }, - { - "teal": 109, - "source": 14, - "pc": [ - 159, - 160, - 161 - ] - }, - { - "teal": 114, - "source": 15, - "pc": [ - 162, - 163 - ] - }, - { - "teal": 115, - "source": 15, - "pc": [ - 164, - 165, - 166 - ] - }, - { - "teal": 120, - "source": 16, - "pc": [ - 167 - ] - }, - { - "teal": 121, - "source": 16, - "pc": [ - 168 - ] - }, - { - "teal": 122, - "source": 15, - "pc": [ - 169, - 170, - 171 - ] - }, - { - "teal": 127, - "source": 18, - "pc": [ - 172 - ] - }, - { - "teal": 128, - "source": 18, - "pc": [ - 173 - ] - }, - { - "teal": 131, - "source": 14, - "pc": [ - 174 - ] - }, - { - "teal": 136, - "source": 22, - "pc": [ - 175 - ] - }, - { - "teal": 139, - "source": 22, - "pc": [ - 176, - 177, - 178 - ] - }, - { - "teal": 140, - "source": 22, - "pc": [ - 179 - ] - }, - { - "teal": 141, - "source": 22, - "pc": [ - 180 - ] - }, - { - "teal": 142, - "source": 22, - "pc": [ - 181 - ] - }, - { - "teal": 143, - "source": 22, - "pc": [ - 182 - ] - }, - { - "teal": 146, - "source": 22, - "errorMessage": "argument 0 (arg1) for ifElseIf must be a bool", - "pc": [ - 183 - ] - }, - { - "teal": 147, - "source": 22, - "pc": [ - 184 - ] - }, - { - "teal": 148, - "source": 22, - "pc": [ - 185 - ] - }, - { - "teal": 151, - "source": 22, - "pc": [ - 186, - 187, - 188 - ] - }, - { - "teal": 152, - "source": 22, - "pc": [ - 189 - ] - }, - { - "teal": 153, - "source": 22, - "pc": [ - 190 - ] - }, - { - "teal": 154, - "source": 22, - "pc": [ - 191 - ] - }, - { - "teal": 155, - "source": 22, - "pc": [ - 192 - ] - }, - { - "teal": 158, - "source": 22, - "errorMessage": "argument 1 (arg0) for ifElseIf must be a bool", - "pc": [ - 193 - ] - }, - { - "teal": 159, - "source": 22, - "pc": [ - 194 - ] - }, - { - "teal": 160, - "source": 22, - "pc": [ - 195 - ] - }, - { - "teal": 163, - "source": 22, - "pc": [ - 196, - 197, - 198 - ] - }, - { - "teal": 164, - "source": 22, - "pc": [ - 199 - ] - }, - { - "teal": 165, - "source": 22, - "pc": [ - 200 - ] - }, - { - "teal": 166, - "source": 22, - "pc": [ - 201 - ] - }, - { - "teal": 167, - "source": 22, - "pc": [ - 202, - 203, - 204 - ] - }, - { - "teal": 168, - "source": 22, - "pc": [ - 205 - ] - }, - { - "teal": 169, - "source": 22, - "pc": [ - 206 - ] - }, - { - "teal": 170, - "source": 22, - "pc": [ - 207 - ] - }, - { - "teal": 171, - "source": 22, - "pc": [ - 208 - ] - }, - { - "teal": 172, - "source": 22, - "pc": [ - 209 - ] - }, - { - "teal": 173, - "source": 22, - "pc": [ - 210 - ] - }, - { - "teal": 177, - "source": 22, - "pc": [ - 211, - 212, - 213 - ] - }, - { - "teal": 182, - "source": 23, - "pc": [ - 214, - 215 - ] - }, - { - "teal": 183, - "source": 23, - "pc": [ - 216, - 217, - 218 - ] - }, - { - "teal": 188, - "source": 24, - "pc": [ - 219 - ] - }, - { - "teal": 189, - "source": 24, - "pc": [ - 220 - ] - }, - { - "teal": 190, - "source": 23, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 195, - "source": 25, - "pc": [ - 224, - 225 - ] - }, - { - "teal": 196, - "source": 25, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 201, - "source": 26, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 202, - "source": 26, - "pc": [ - 231 - ] - }, - { - "teal": 207, - "source": 29, - "pc": [ - 232 - ] - }, - { - "teal": 208, - "source": 22, - "pc": [ - 233 - ] - }, - { - "teal": 213, - "source": 32, - "pc": [ - 234 - ] - }, - { - "teal": 216, - "source": 32, - "pc": [ - 235, - 236, - 237 - ] - }, - { - "teal": 217, - "source": 32, - "pc": [ - 238 - ] - }, - { - "teal": 218, - "source": 32, - "pc": [ - 239 - ] - }, - { - "teal": 219, - "source": 32, - "pc": [ - 240 - ] - }, - { - "teal": 220, - "source": 32, - "pc": [ - 241 - ] - }, - { - "teal": 223, - "source": 32, - "errorMessage": "argument 0 (arg1) for ifElseIfElse must be a bool", - "pc": [ - 242 - ] - }, - { - "teal": 224, - "source": 32, - "pc": [ - 243 - ] - }, - { - "teal": 225, - "source": 32, - "pc": [ - 244 - ] - }, - { - "teal": 228, - "source": 32, - "pc": [ - 245, - 246, - 247 - ] - }, - { - "teal": 229, - "source": 32, - "pc": [ - 248 - ] - }, - { - "teal": 230, - "source": 32, - "pc": [ - 249 - ] - }, - { - "teal": 231, - "source": 32, - "pc": [ - 250 - ] - }, - { - "teal": 232, - "source": 32, - "pc": [ - 251 - ] - }, - { - "teal": 235, - "source": 32, - "errorMessage": "argument 1 (arg0) for ifElseIfElse must be a bool", - "pc": [ - 252 - ] - }, - { - "teal": 236, - "source": 32, - "pc": [ - 253 - ] - }, - { - "teal": 237, - "source": 32, - "pc": [ - 254 - ] - }, - { - "teal": 240, - "source": 32, - "pc": [ - 255, - 256, - 257 - ] - }, - { - "teal": 241, - "source": 32, - "pc": [ - 258 - ] - }, - { - "teal": 242, - "source": 32, - "pc": [ - 259 - ] - }, - { - "teal": 243, - "source": 32, - "pc": [ - 260 - ] - }, - { - "teal": 244, - "source": 32, - "pc": [ - 261, - 262, - 263 - ] - }, - { - "teal": 245, - "source": 32, - "pc": [ - 264 - ] - }, - { - "teal": 246, - "source": 32, - "pc": [ - 265 - ] - }, - { - "teal": 247, - "source": 32, - "pc": [ - 266 - ] - }, - { - "teal": 248, - "source": 32, - "pc": [ - 267 - ] - }, - { - "teal": 249, - "source": 32, - "pc": [ - 268 - ] - }, - { - "teal": 250, - "source": 32, - "pc": [ - 269 - ] - }, - { - "teal": 254, - "source": 32, - "pc": [ - 270, - 271, - 272 - ] - }, - { - "teal": 259, - "source": 33, - "pc": [ - 273, - 274 - ] - }, - { - "teal": 260, - "source": 33, - "pc": [ - 275, - 276, - 277 - ] - }, - { - "teal": 265, - "source": 34, - "pc": [ - 278 - ] - }, - { - "teal": 266, - "source": 34, - "pc": [ - 279 - ] - }, - { - "teal": 267, - "source": 33, - "pc": [ - 280, - 281, - 282 - ] - }, - { - "teal": 272, - "source": 35, - "pc": [ - 283, - 284 - ] - }, - { - "teal": 273, - "source": 35, - "pc": [ - 285, - 286, - 287 - ] - }, - { - "teal": 278, - "source": 36, - "pc": [ - 288, - 289 - ] - }, - { - "teal": 279, - "source": 36, - "pc": [ - 290 - ] - }, - { - "teal": 280, - "source": 35, - "pc": [ - 291, - 292, - 293 - ] - }, - { - "teal": 285, - "source": 38, - "pc": [ - 294 - ] - }, - { - "teal": 286, - "source": 38, - "pc": [ - 295 - ] - }, - { - "teal": 289, - "source": 32, - "pc": [ - 296 - ] - }, - { - "teal": 294, - "source": 42, - "pc": [ - 297 - ] - }, - { - "teal": 297, - "source": 42, - "pc": [ - 298, - 299, - 300 - ] - }, - { - "teal": 298, - "source": 42, - "pc": [ - 301 - ] - }, - { - "teal": 299, - "source": 42, - "pc": [ - 302 - ] - }, - { - "teal": 300, - "source": 42, - "pc": [ - 303 - ] - }, - { - "teal": 301, - "source": 42, - "pc": [ - 304 - ] - }, - { - "teal": 304, - "source": 42, - "errorMessage": "argument 0 (arg2) for ifElseIfElseIf must be a bool", - "pc": [ - 305 - ] - }, - { - "teal": 305, - "source": 42, - "pc": [ - 306 - ] - }, - { - "teal": 306, - "source": 42, - "pc": [ - 307 - ] - }, - { - "teal": 309, - "source": 42, - "pc": [ - 308, - 309, - 310 - ] - }, - { - "teal": 310, - "source": 42, - "pc": [ - 311 - ] - }, - { - "teal": 311, - "source": 42, - "pc": [ - 312 - ] - }, - { - "teal": 312, - "source": 42, - "pc": [ - 313 - ] - }, - { - "teal": 313, - "source": 42, - "pc": [ - 314 - ] - }, - { - "teal": 316, - "source": 42, - "errorMessage": "argument 1 (arg1) for ifElseIfElseIf must be a bool", - "pc": [ - 315 - ] - }, - { - "teal": 317, - "source": 42, - "pc": [ - 316 - ] - }, - { - "teal": 318, - "source": 42, - "pc": [ - 317 - ] - }, - { - "teal": 321, - "source": 42, - "pc": [ - 318, - 319, - 320 - ] - }, - { - "teal": 322, - "source": 42, - "pc": [ - 321 - ] - }, - { - "teal": 323, - "source": 42, - "pc": [ - 322 - ] - }, - { - "teal": 324, - "source": 42, - "pc": [ - 323 - ] - }, - { - "teal": 325, - "source": 42, - "pc": [ - 324 - ] - }, - { - "teal": 328, - "source": 42, - "errorMessage": "argument 2 (arg0) for ifElseIfElseIf must be a bool", - "pc": [ - 325 - ] - }, - { - "teal": 329, - "source": 42, - "pc": [ - 326 - ] - }, - { - "teal": 330, - "source": 42, - "pc": [ - 327 - ] - }, - { - "teal": 333, - "source": 42, - "pc": [ - 328, - 329, - 330 - ] - }, - { - "teal": 334, - "source": 42, - "pc": [ - 331 - ] - }, - { - "teal": 335, - "source": 42, - "pc": [ - 332 - ] - }, - { - "teal": 336, - "source": 42, - "pc": [ - 333 - ] - }, - { - "teal": 337, - "source": 42, - "pc": [ - 334, - 335, - 336 - ] - }, - { - "teal": 338, - "source": 42, - "pc": [ - 337 - ] - }, - { - "teal": 339, - "source": 42, - "pc": [ - 338 - ] - }, - { - "teal": 340, - "source": 42, - "pc": [ - 339 - ] - }, - { - "teal": 341, - "source": 42, - "pc": [ - 340 - ] - }, - { - "teal": 342, - "source": 42, - "pc": [ - 341 - ] - }, - { - "teal": 343, - "source": 42, - "pc": [ - 342 - ] - }, - { - "teal": 347, - "source": 42, - "pc": [ - 343, - 344, - 345 - ] - }, - { - "teal": 352, - "source": 43, - "pc": [ - 346, - 347 - ] - }, - { - "teal": 353, - "source": 43, - "pc": [ - 348, - 349, - 350 - ] - }, - { - "teal": 358, - "source": 44, - "pc": [ - 351 - ] - }, - { - "teal": 359, - "source": 44, - "pc": [ - 352 - ] - }, - { - "teal": 360, - "source": 43, - "pc": [ - 353, - 354, - 355 - ] - }, - { - "teal": 365, - "source": 45, - "pc": [ - 356, - 357 - ] - }, - { - "teal": 366, - "source": 45, - "pc": [ - 358, - 359, - 360 - ] - }, - { - "teal": 371, - "source": 46, - "pc": [ - 361, - 362 - ] - }, - { - "teal": 372, - "source": 46, - "pc": [ - 363 - ] - }, - { - "teal": 373, - "source": 45, - "pc": [ - 364, - 365, - 366 - ] - }, - { - "teal": 378, - "source": 47, - "pc": [ - 367, - 368 - ] - }, - { - "teal": 379, - "source": 47, - "pc": [ - 369, - 370, - 371 - ] - }, - { - "teal": 384, - "source": 48, - "pc": [ - 372, - 373 - ] - }, - { - "teal": 385, - "source": 48, - "pc": [ - 374 - ] - }, - { - "teal": 390, - "source": 51, - "pc": [ - 375 - ] - }, - { - "teal": 391, - "source": 42, - "pc": [ - 376 - ] - }, - { - "teal": 396, - "source": 54, - "pc": [ - 377 - ] - }, - { - "teal": 399, - "source": 54, - "pc": [ - 378, - 379, - 380 - ] - }, - { - "teal": 400, - "source": 54, - "pc": [ - 381 - ] - }, - { - "teal": 401, - "source": 54, - "pc": [ - 382 - ] - }, - { - "teal": 402, - "source": 54, - "pc": [ - 383 - ] - }, - { - "teal": 403, - "source": 54, - "pc": [ - 384 - ] - }, - { - "teal": 406, - "source": 54, - "errorMessage": "argument 0 (arg2) for ifElseIfElseIfElse must be a bool", - "pc": [ - 385 - ] - }, - { - "teal": 407, - "source": 54, - "pc": [ - 386 - ] - }, - { - "teal": 408, - "source": 54, - "pc": [ - 387 - ] - }, - { - "teal": 411, - "source": 54, - "pc": [ - 388, - 389, - 390 - ] - }, - { - "teal": 412, - "source": 54, - "pc": [ - 391 - ] - }, - { - "teal": 413, - "source": 54, - "pc": [ - 392 - ] - }, - { - "teal": 414, - "source": 54, - "pc": [ - 393 - ] - }, - { - "teal": 415, - "source": 54, - "pc": [ - 394 - ] - }, - { - "teal": 418, - "source": 54, - "errorMessage": "argument 1 (arg1) for ifElseIfElseIfElse must be a bool", - "pc": [ - 395 - ] - }, - { - "teal": 419, - "source": 54, - "pc": [ - 396 - ] - }, - { - "teal": 420, - "source": 54, - "pc": [ - 397 - ] - }, - { - "teal": 423, - "source": 54, - "pc": [ - 398, - 399, - 400 - ] - }, - { - "teal": 424, - "source": 54, - "pc": [ - 401 - ] - }, - { - "teal": 425, - "source": 54, - "pc": [ - 402 - ] - }, - { - "teal": 426, - "source": 54, - "pc": [ - 403 - ] - }, - { - "teal": 427, - "source": 54, - "pc": [ - 404 - ] - }, - { - "teal": 430, - "source": 54, - "errorMessage": "argument 2 (arg0) for ifElseIfElseIfElse must be a bool", - "pc": [ - 405 - ] - }, - { - "teal": 431, - "source": 54, - "pc": [ - 406 - ] - }, - { - "teal": 432, - "source": 54, - "pc": [ - 407 - ] - }, - { - "teal": 435, - "source": 54, - "pc": [ - 408, - 409, - 410 - ] - }, - { - "teal": 436, - "source": 54, - "pc": [ - 411 - ] - }, - { - "teal": 437, - "source": 54, - "pc": [ - 412 - ] - }, - { - "teal": 438, - "source": 54, - "pc": [ - 413 - ] - }, - { - "teal": 439, - "source": 54, - "pc": [ - 414, - 415, - 416 - ] - }, - { - "teal": 440, - "source": 54, - "pc": [ - 417 - ] - }, - { - "teal": 441, - "source": 54, - "pc": [ - 418 - ] - }, - { - "teal": 442, - "source": 54, - "pc": [ - 419 - ] - }, - { - "teal": 443, - "source": 54, - "pc": [ - 420 - ] - }, - { - "teal": 444, - "source": 54, - "pc": [ - 421 - ] - }, - { - "teal": 445, - "source": 54, - "pc": [ - 422 - ] - }, - { - "teal": 449, - "source": 54, - "pc": [ - 423, - 424, - 425 - ] - }, - { - "teal": 454, - "source": 55, - "pc": [ - 426, - 427 - ] - }, - { - "teal": 455, - "source": 55, - "pc": [ - 428, - 429, - 430 - ] - }, - { - "teal": 460, - "source": 56, - "pc": [ - 431 - ] - }, - { - "teal": 461, - "source": 56, - "pc": [ - 432 - ] - }, - { - "teal": 462, - "source": 55, - "pc": [ - 433, - 434, - 435 - ] - }, - { - "teal": 467, - "source": 57, - "pc": [ - 436, - 437 - ] - }, - { - "teal": 468, - "source": 57, - "pc": [ - 438, - 439, - 440 - ] - }, - { - "teal": 473, - "source": 58, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 474, - "source": 58, - "pc": [ - 443 - ] - }, - { - "teal": 475, - "source": 57, - "pc": [ - 444, - 445, - 446 - ] - }, - { - "teal": 480, - "source": 59, - "pc": [ - 447, - 448 - ] - }, - { - "teal": 481, - "source": 59, - "pc": [ - 449, - 450, - 451 - ] - }, - { - "teal": 486, - "source": 60, - "pc": [ - 452, - 453 - ] - }, - { - "teal": 487, - "source": 60, - "pc": [ - 454 - ] - }, - { - "teal": 488, - "source": 59, - "pc": [ - 455, - 456, - 457 - ] - }, - { - "teal": 493, - "source": 62, - "pc": [ - 458 - ] - }, - { - "teal": 494, - "source": 62, - "pc": [ - 459 - ] - }, - { - "teal": 497, - "source": 54, - "pc": [ - 460 - ] - }, - { - "teal": 502, - "source": 66, - "pc": [ - 461 - ] - }, - { - "teal": 505, - "source": 66, - "pc": [ - 462, - 463, - 464 - ] - }, - { - "teal": 506, - "source": 66, - "pc": [ - 465 - ] - }, - { - "teal": 507, - "source": 66, - "pc": [ - 466 - ] - }, - { - "teal": 508, - "source": 66, - "pc": [ - 467 - ] - }, - { - "teal": 509, - "source": 66, - "pc": [ - 468 - ] - }, - { - "teal": 512, - "source": 66, - "errorMessage": "argument 0 (arg1) for nestedIf must be a bool", - "pc": [ - 469 - ] - }, - { - "teal": 513, - "source": 66, - "pc": [ - 470 - ] - }, - { - "teal": 514, - "source": 66, - "pc": [ - 471 - ] - }, - { - "teal": 517, - "source": 66, - "pc": [ - 472, - 473, - 474 - ] - }, - { - "teal": 518, - "source": 66, - "pc": [ - 475 - ] - }, - { - "teal": 519, - "source": 66, - "pc": [ - 476 - ] - }, - { - "teal": 520, - "source": 66, - "pc": [ - 477 - ] - }, - { - "teal": 521, - "source": 66, - "pc": [ - 478 - ] - }, - { - "teal": 524, - "source": 66, - "errorMessage": "argument 1 (arg0) for nestedIf must be a bool", - "pc": [ - 479 - ] - }, - { - "teal": 525, - "source": 66, - "pc": [ - 480 - ] - }, - { - "teal": 526, - "source": 66, - "pc": [ - 481 - ] - }, - { - "teal": 529, - "source": 66, - "pc": [ - 482, - 483, - 484 - ] - }, - { - "teal": 530, - "source": 66, - "pc": [ - 485 - ] - }, - { - "teal": 531, - "source": 66, - "pc": [ - 486 - ] - }, - { - "teal": 532, - "source": 66, - "pc": [ - 487 - ] - }, - { - "teal": 533, - "source": 66, - "pc": [ - 488, - 489, - 490 - ] - }, - { - "teal": 534, - "source": 66, - "pc": [ - 491 - ] - }, - { - "teal": 535, - "source": 66, - "pc": [ - 492 - ] - }, - { - "teal": 536, - "source": 66, - "pc": [ - 493 - ] - }, - { - "teal": 537, - "source": 66, - "pc": [ - 494 - ] - }, - { - "teal": 538, - "source": 66, - "pc": [ - 495 - ] - }, - { - "teal": 539, - "source": 66, - "pc": [ - 496 - ] - }, - { - "teal": 543, - "source": 66, - "pc": [ - 497, - 498, - 499 - ] - }, - { - "teal": 548, - "source": 67, - "pc": [ - 500, - 501 - ] - }, - { - "teal": 549, - "source": 67, - "pc": [ - 502, - 503, - 504 - ] - }, - { - "teal": 555, - "source": 68, - "pc": [ - 505, - 506 - ] - }, - { - "teal": 556, - "source": 68, - "pc": [ - 507, - 508, - 509 - ] - }, - { - "teal": 561, - "source": 69, - "pc": [ - 510, - 511, - 512, - 513, - 514, - 515, - 516, - 517, - 518, - 519, - 520 - ] - }, - { - "teal": 562, - "source": 69, - "pc": [ - 521 - ] - }, - { - "teal": 567, - "source": 71, - "pc": [ - 522 - ] - }, - { - "teal": 568, - "source": 71, - "pc": [ - 523 - ] - }, - { - "teal": 569, - "source": 67, - "pc": [ - 524, - 525, - 526 - ] - }, - { - "teal": 574, - "source": 73, - "pc": [ - 527 - ] - }, - { - "teal": 575, - "source": 73, - "pc": [ - 528 - ] - }, - { - "teal": 578, - "source": 66, - "pc": [ - 529 - ] - }, - { - "teal": 583, - "source": 77, - "pc": [ - 530 - ] - }, - { - "teal": 586, - "source": 77, - "pc": [ - 531, - 532, - 533 - ] - }, - { - "teal": 587, - "source": 77, - "pc": [ - 534 - ] - }, - { - "teal": 588, - "source": 77, - "pc": [ - 535 - ] - }, - { - "teal": 589, - "source": 77, - "pc": [ - 536 - ] - }, - { - "teal": 590, - "source": 77, - "pc": [ - 537 - ] - }, - { - "teal": 593, - "source": 77, - "errorMessage": "argument 0 (arg0) for bracketlessIfElse must be a bool", - "pc": [ - 538 - ] - }, - { - "teal": 594, - "source": 77, - "pc": [ - 539 - ] - }, - { - "teal": 595, - "source": 77, - "pc": [ - 540 - ] - }, - { - "teal": 598, - "source": 77, - "pc": [ - 541, - 542, - 543 - ] - }, - { - "teal": 599, - "source": 77, - "pc": [ - 544 - ] - }, - { - "teal": 600, - "source": 77, - "pc": [ - 545 - ] - }, - { - "teal": 601, - "source": 77, - "pc": [ - 546 - ] - }, - { - "teal": 602, - "source": 77, - "pc": [ - 547, - 548, - 549 - ] - }, - { - "teal": 603, - "source": 77, - "pc": [ - 550 - ] - }, - { - "teal": 604, - "source": 77, - "pc": [ - 551 - ] - }, - { - "teal": 605, - "source": 77, - "pc": [ - 552 - ] - }, - { - "teal": 606, - "source": 77, - "pc": [ - 553 - ] - }, - { - "teal": 607, - "source": 77, - "pc": [ - 554 - ] - }, - { - "teal": 608, - "source": 77, - "pc": [ - 555 - ] - }, - { - "teal": 612, - "source": 77, - "pc": [ - 556, - 557, - 558 - ] - }, - { - "teal": 617, - "source": 78, - "pc": [ - 559, - 560 - ] - }, - { - "teal": 618, - "source": 78, - "pc": [ - 561, - 562, - 563 - ] - }, - { - "teal": 623, - "source": 78, - "pc": [ - 564 - ] - }, - { - "teal": 624, - "source": 78, - "pc": [ - 565 - ] - }, - { - "teal": 625, - "source": 78, - "pc": [ - 566, - 567, - 568 - ] - }, - { - "teal": 630, - "source": 79, - "pc": [ - 569 - ] - }, - { - "teal": 631, - "source": 79, - "pc": [ - 570 - ] - }, - { - "teal": 634, - "source": 77, - "pc": [ - 571 - ] - }, - { - "teal": 639, - "source": 82, - "pc": [ - 572 - ] - }, - { - "teal": 642, - "source": 82, - "pc": [ - 573, - 574, - 575 - ] - }, - { - "teal": 643, - "source": 82, - "pc": [ - 576 - ] - }, - { - "teal": 644, - "source": 82, - "pc": [ - 577 - ] - }, - { - "teal": 645, - "source": 82, - "pc": [ - 578 - ] - }, - { - "teal": 646, - "source": 82, - "pc": [ - 579 - ] - }, - { - "teal": 649, - "source": 82, - "errorMessage": "argument 0 (arg1) for nestedTernary must be a bool", - "pc": [ - 580 - ] - }, - { - "teal": 650, - "source": 82, - "pc": [ - 581 - ] - }, - { - "teal": 651, - "source": 82, - "pc": [ - 582 - ] - }, - { - "teal": 654, - "source": 82, - "pc": [ - 583, - 584, - 585 - ] - }, - { - "teal": 655, - "source": 82, - "pc": [ - 586 - ] - }, - { - "teal": 656, - "source": 82, - "pc": [ - 587 - ] - }, - { - "teal": 657, - "source": 82, - "pc": [ - 588 - ] - }, - { - "teal": 658, - "source": 82, - "pc": [ - 589 - ] - }, - { - "teal": 661, - "source": 82, - "errorMessage": "argument 1 (arg0) for nestedTernary must be a bool", - "pc": [ - 590 - ] - }, - { - "teal": 662, - "source": 82, - "pc": [ - 591 - ] - }, - { - "teal": 663, - "source": 82, - "pc": [ - 592 - ] - }, - { - "teal": 666, - "source": 82, - "pc": [ - 593, - 594, - 595 - ] - }, - { - "teal": 667, - "source": 82, - "pc": [ - 596 - ] - }, - { - "teal": 668, - "source": 82, - "pc": [ - 597 - ] - }, - { - "teal": 669, - "source": 82, - "pc": [ - 598 - ] - }, - { - "teal": 670, - "source": 82, - "pc": [ - 599 - ] - }, - { - "teal": 671, - "source": 82, - "pc": [ - 600 - ] - }, - { - "teal": 675, - "source": 82, - "pc": [ - 601, - 602, - 603 - ] - }, - { - "teal": 679, - "source": 84, - "pc": [ - 604, - 605 - ] - }, - { - "teal": 680, - "source": 84, - "pc": [ - 606, - 607, - 608 - ] - }, - { - "teal": 681, - "source": 84, - "pc": [ - 609 - ] - }, - { - "teal": 682, - "source": 84, - "pc": [ - 610, - 611, - 612 - ] - }, - { - "teal": 685, - "source": 84, - "pc": [ - 613, - 614 - ] - }, - { - "teal": 686, - "source": 84, - "pc": [ - 615, - 616, - 617 - ] - }, - { - "teal": 687, - "source": 84, - "pc": [ - 618 - ] - }, - { - "teal": 688, - "source": 84, - "pc": [ - 619, - 620, - 621 - ] - }, - { - "teal": 691, - "source": 84, - "pc": [ - 622, - 623 - ] - }, - { - "teal": 696, - "source": 82, - "pc": [ - 624 - ] - }, - { - "teal": 701, - "source": 87, - "pc": [ - 625 - ] - }, - { - "teal": 704, - "source": 87, - "pc": [ - 626, - 627, - 628 - ] - }, - { - "teal": 705, - "source": 87, - "pc": [ - 629, - 630, - 631 - ] - }, - { - "teal": 708, - "source": 87, - "pc": [ - 632, - 633, - 634 - ] - }, - { - "teal": 709, - "source": 87, - "pc": [ - 635 - ] - }, - { - "teal": 710, - "source": 87, - "pc": [ - 636 - ] - }, - { - "teal": 711, - "source": 87, - "pc": [ - 637 - ] - }, - { - "teal": 712, - "source": 87, - "pc": [ - 638 - ] - }, - { - "teal": 713, - "source": 87, - "pc": [ - 639 - ] - }, - { - "teal": 717, - "source": 87, - "pc": [ - 640, - 641, - 642 - ] - }, - { - "teal": 722, - "source": 88, - "pc": [ - 643, - 644 - ] - }, - { - "teal": 723, - "source": 88, - "pc": [ - 645, - 646 - ] - }, - { - "teal": 724, - "source": 88, - "pc": [ - 647 - ] - }, - { - "teal": 725, - "source": 88, - "pc": [ - 648, - 649, - 650 - ] - }, - { - "teal": 730, - "source": 89, - "pc": [ - 651 - ] - }, - { - "teal": 731, - "source": 89, - "pc": [ - 652 - ] - }, - { - "teal": 736, - "source": 92, - "pc": [ - 653 - ] - }, - { - "teal": 737, - "source": 87, - "pc": [ - 654 - ] - }, - { - "teal": 742, - "source": 95, - "pc": [ - 655 - ] - }, - { - "teal": 745, - "source": 95, - "pc": [ - 656, - 657, - 658 - ] - }, - { - "teal": 746, - "source": 95, - "pc": [ - 659, - 660, - 661 - ] - }, - { - "teal": 749, - "source": 95, - "pc": [ - 662, - 663, - 664 - ] - }, - { - "teal": 750, - "source": 95, - "pc": [ - 665 - ] - }, - { - "teal": 751, - "source": 95, - "pc": [ - 666 - ] - }, - { - "teal": 752, - "source": 95, - "pc": [ - 667 - ] - }, - { - "teal": 753, - "source": 95, - "pc": [ - 668 - ] - }, - { - "teal": 754, - "source": 95, - "pc": [ - 669 - ] - }, - { - "teal": 758, - "source": 95, - "pc": [ - 670, - 671, - 672 - ] - }, - { - "teal": 762, - "source": 96, - "pc": [ - 673, - 674 - ] - }, - { - "teal": 763, - "source": 96, - "pc": [ - 675, - 676 - ] - }, - { - "teal": 764, - "source": 96, - "pc": [ - 677 - ] - }, - { - "teal": 765, - "source": 96, - "pc": [ - 678, - 679, - 680 - ] - }, - { - "teal": 766, - "source": 96, - "pc": [ - 681 - ] - }, - { - "teal": 767, - "source": 96, - "pc": [ - 682, - 683, - 684 - ] - }, - { - "teal": 770, - "source": 96, - "pc": [ - 685 - ] - }, - { - "teal": 773, - "source": 95, - "pc": [ - 686 - ] - }, - { - "teal": 778, - "source": 99, - "pc": [ - 687, - 688, - 689 - ] - }, - { - "teal": 779, - "source": 99, - "pc": [ - 690 - ] - }, - { - "teal": 780, - "source": 99, - "pc": [ - 691 - ] - }, - { - "teal": 781, - "source": 99, - "pc": [ - 692 - ] - }, - { - "teal": 782, - "source": 99, - "pc": [ - 693 - ] - }, - { - "teal": 785, - "source": 99, - "errorMessage": "argument 0 (a) for smallUintConditional must be a uint16", - "pc": [ - 694 - ] - }, - { - "teal": 786, - "source": 99, - "pc": [ - 695 - ] - }, - { - "teal": 789, - "source": 99, - "pc": [ - 696, - 697, - 698 - ] - }, - { - "teal": 790, - "source": 99, - "pc": [ - 699 - ] - }, - { - "teal": 791, - "source": 99, - "pc": [ - 700 - ] - }, - { - "teal": 795, - "source": 99, - "pc": [ - 701, - 702, - 703 - ] - }, - { - "teal": 800, - "source": 100, - "pc": [ - 704, - 705 - ] - }, - { - "teal": 801, - "source": 100, - "pc": [ - 706, - 707 - ] - }, - { - "teal": 802, - "source": 100, - "pc": [ - 708 - ] - }, - { - "teal": 803, - "source": 100, - "pc": [ - 709, - 710, - 711 - ] - }, - { - "teal": 808, - "source": 101, - "pc": [ - 712, - 713 - ] - }, - { - "teal": 809, - "source": 101, - "pc": [ - 714 - ] - }, - { - "teal": 812, - "source": 99, - "pc": [ - 715 - ] - }, - { - "teal": 817, - "source": 105, - "pc": [ - 716, - 717, - 718 - ] - }, - { - "teal": 818, - "source": 105, - "pc": [ - 719 - ] - }, - { - "teal": 819, - "source": 105, - "pc": [ - 720 - ] - }, - { - "teal": 820, - "source": 105, - "pc": [ - 721 - ] - }, - { - "teal": 821, - "source": 105, - "pc": [ - 722 - ] - }, - { - "teal": 824, - "source": 105, - "errorMessage": "argument 0 (b) for smallUintComparisonConditional must be a uint16", - "pc": [ - 723 - ] - }, - { - "teal": 825, - "source": 105, - "pc": [ - 724 - ] - }, - { - "teal": 828, - "source": 105, - "pc": [ - 725, - 726, - 727 - ] - }, - { - "teal": 829, - "source": 105, - "pc": [ - 728 - ] - }, - { - "teal": 830, - "source": 105, - "pc": [ - 729 - ] - }, - { - "teal": 831, - "source": 105, - "pc": [ - 730 - ] - }, - { - "teal": 832, - "source": 105, - "pc": [ - 731 - ] - }, - { - "teal": 835, - "source": 105, - "errorMessage": "argument 1 (a) for smallUintComparisonConditional must be a uint16", - "pc": [ - 732 - ] - }, - { - "teal": 836, - "source": 105, - "pc": [ - 733 - ] - }, - { - "teal": 839, - "source": 105, - "pc": [ - 734, - 735, - 736 - ] - }, - { - "teal": 840, - "source": 105, - "pc": [ - 737 - ] - }, - { - "teal": 841, - "source": 105, - "pc": [ - 738 - ] - }, - { - "teal": 845, - "source": 105, - "pc": [ - 739, - 740, - 741 - ] - }, - { - "teal": 850, - "source": 106, - "pc": [ - 742, - 743 - ] - }, - { - "teal": 851, - "source": 106, - "pc": [ - 744, - 745 - ] - }, - { - "teal": 852, - "source": 106, - "pc": [ - 746 - ] - }, - { - "teal": 853, - "source": 106, - "pc": [ - 747, - 748, - 749 - ] - }, - { - "teal": 858, - "source": 107, - "pc": [ - 750, - 751 - ] - }, - { - "teal": 859, - "source": 107, - "pc": [ - 752 - ] - }, - { - "teal": 862, - "source": 105, - "pc": [ - 753 - ] - }, - { - "teal": 867, - "source": 111, - "pc": [ - 754, - 755, - 756 - ] - }, - { - "teal": 868, - "source": 111, - "pc": [ - 757 - ] - }, - { - "teal": 869, - "source": 111, - "pc": [ - 758 - ] - }, - { - "teal": 870, - "source": 111, - "pc": [ - 759 - ] - }, - { - "teal": 871, - "source": 111, - "pc": [ - 760 - ] - }, - { - "teal": 874, - "source": 111, - "errorMessage": "argument 0 (b) for uint256ComparsionConditional must be a uint256", - "pc": [ - 761 - ] - }, - { - "teal": 877, - "source": 111, - "pc": [ - 762, - 763, - 764 - ] - }, - { - "teal": 878, - "source": 111, - "pc": [ - 765 - ] - }, - { - "teal": 879, - "source": 111, - "pc": [ - 766 - ] - }, - { - "teal": 880, - "source": 111, - "pc": [ - 767 - ] - }, - { - "teal": 881, - "source": 111, - "pc": [ - 768 - ] - }, - { - "teal": 884, - "source": 111, - "errorMessage": "argument 1 (a) for uint256ComparsionConditional must be a uint256", - "pc": [ - 769 - ] - }, - { - "teal": 887, - "source": 111, - "pc": [ - 770, - 771, - 772 - ] - }, - { - "teal": 888, - "source": 111, - "pc": [ - 773 - ] - }, - { - "teal": 889, - "source": 111, - "pc": [ - 774 - ] - }, - { - "teal": 893, - "source": 111, - "pc": [ - 775, - 776, - 777 - ] - }, - { - "teal": 898, - "source": 112, - "pc": [ - 778, - 779 - ] - }, - { - "teal": 899, - "source": 112, - "pc": [ - 780, - 781 - ] - }, - { - "teal": 900, - "source": 112, - "pc": [ - 782 - ] - }, - { - "teal": 901, - "source": 112, - "pc": [ - 783, - 784, - 785 - ] - }, - { - "teal": 906, - "source": 113, - "pc": [ - 786, - 787 - ] - }, - { - "teal": 907, - "source": 113, - "pc": [ - 788 - ] - }, - { - "teal": 910, - "source": 111, - "pc": [ - 789 - ] - }, - { - "teal": 915, - "source": 117, - "pc": [ - 790 - ] - }, - { - "teal": 918, - "source": 117, - "pc": [ - 791, - 792, - 793 - ] - }, - { - "teal": 919, - "source": 117, - "pc": [ - 794 - ] - }, - { - "teal": 920, - "source": 117, - "pc": [ - 795 - ] - }, - { - "teal": 921, - "source": 117, - "pc": [ - 796 - ] - }, - { - "teal": 922, - "source": 117, - "pc": [ - 797 - ] - }, - { - "teal": 925, - "source": 117, - "errorMessage": "argument 0 (b) for nestedIfInElseIf must be a bool", - "pc": [ - 798 - ] - }, - { - "teal": 926, - "source": 117, - "pc": [ - 799 - ] - }, - { - "teal": 927, - "source": 117, - "pc": [ - 800 - ] - }, - { - "teal": 930, - "source": 117, - "pc": [ - 801, - 802, - 803 - ] - }, - { - "teal": 931, - "source": 117, - "pc": [ - 804 - ] - }, - { - "teal": 932, - "source": 117, - "pc": [ - 805 - ] - }, - { - "teal": 933, - "source": 117, - "pc": [ - 806 - ] - }, - { - "teal": 934, - "source": 117, - "pc": [ - 807 - ] - }, - { - "teal": 937, - "source": 117, - "errorMessage": "argument 1 (a) for nestedIfInElseIf must be a bool", - "pc": [ - 808 - ] - }, - { - "teal": 938, - "source": 117, - "pc": [ - 809 - ] - }, - { - "teal": 939, - "source": 117, - "pc": [ - 810 - ] - }, - { - "teal": 942, - "source": 117, - "pc": [ - 811, - 812, - 813 - ] - }, - { - "teal": 943, - "source": 117, - "pc": [ - 814 - ] - }, - { - "teal": 944, - "source": 117, - "pc": [ - 815 - ] - }, - { - "teal": 945, - "source": 117, - "pc": [ - 816 - ] - }, - { - "teal": 946, - "source": 117, - "pc": [ - 817, - 818, - 819 - ] - }, - { - "teal": 947, - "source": 117, - "pc": [ - 820 - ] - }, - { - "teal": 948, - "source": 117, - "pc": [ - 821 - ] - }, - { - "teal": 949, - "source": 117, - "pc": [ - 822 - ] - }, - { - "teal": 950, - "source": 117, - "pc": [ - 823 - ] - }, - { - "teal": 951, - "source": 117, - "pc": [ - 824 - ] - }, - { - "teal": 952, - "source": 117, - "pc": [ - 825 - ] - }, - { - "teal": 956, - "source": 117, - "pc": [ - 826, - 827, - 828 - ] - }, - { - "teal": 961, - "source": 118, - "pc": [ - 829, - 830 - ] - }, - { - "teal": 962, - "source": 118, - "pc": [ - 831, - 832, - 833 - ] - }, - { - "teal": 968, - "source": 119, - "pc": [ - 834, - 835 - ] - }, - { - "teal": 969, - "source": 119, - "pc": [ - 836, - 837, - 838 - ] - }, - { - "teal": 974, - "source": 120, - "pc": [ - 839, - 840, - 841, - 842, - 843, - 844, - 845, - 846, - 847 - ] - }, - { - "teal": 975, - "source": 120, - "pc": [ - 848 - ] - }, - { - "teal": 976, - "source": 119, - "pc": [ - 849, - 850, - 851 - ] - }, - { - "teal": 981, - "source": 122, - "pc": [ - 852, - 853, - 854 - ] - }, - { - "teal": 982, - "source": 122, - "pc": [ - 855 - ] - }, - { - "teal": 985, - "source": 118, - "pc": [ - 856, - 857, - 858 - ] - }, - { - "teal": 990, - "source": 124, - "pc": [ - 859, - 860 - ] - }, - { - "teal": 991, - "source": 124, - "pc": [ - 861, - 862, - 863 - ] - }, - { - "teal": 996, - "source": 125, - "pc": [ - 864, - 865, - 866 - ] - }, - { - "teal": 997, - "source": 125, - "pc": [ - 867 - ] - }, - { - "teal": 998, - "source": 124, - "pc": [ - 868, - 869, - 870 - ] - }, - { - "teal": 1003, - "source": 127, - "pc": [ - 871, - 872, - 873, - 874, - 875, - 876, - 877, - 878, - 879 - ] - }, - { - "teal": 1004, - "source": 127, - "pc": [ - 880 - ] - }, - { - "teal": 1007, - "source": 117, - "pc": [ - 881 - ] - }, - { - "teal": 1010, - "source": 5, - "pc": [ - 882 - ] - }, - { - "teal": 1011, - "source": 5, - "pc": [ - 883 - ] - }, - { - "teal": 1014, - "source": 5, - "pc": [ - 884, - 885, - 886, - 887, - 888, - 889 - ] - }, - { - "teal": 1015, - "source": 5, - "pc": [ - 890, - 891, - 892 - ] - }, - { - "teal": 1016, - "source": 5, - "pc": [ - 893, - 894, - 895, - 896 - ] - }, - { - "teal": 1019, - "source": 5, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 897 - ] - }, - { - "teal": 1022, - "source": 5, - "pc": [ - 898, - 899, - 900, - 901, - 902, - 903 - ] - }, - { - "teal": 1023, - "source": 5, - "pc": [ - 904, - 905, - 906, - 907, - 908, - 909 - ] - }, - { - "teal": 1024, - "source": 5, - "pc": [ - 910, - 911, - 912, - 913, - 914, - 915 - ] - }, - { - "teal": 1025, - "source": 5, - "pc": [ - 916, - 917, - 918, - 919, - 920, - 921 - ] - }, - { - "teal": 1026, - "source": 5, - "pc": [ - 922, - 923, - 924, - 925, - 926, - 927 - ] - }, - { - "teal": 1027, - "source": 5, - "pc": [ - 928, - 929, - 930, - 931, - 932, - 933 - ] - }, - { - "teal": 1028, - "source": 5, - "pc": [ - 934, - 935, - 936, - 937, - 938, - 939 - ] - }, - { - "teal": 1029, - "source": 5, - "pc": [ - 940, - 941, - 942, - 943, - 944, - 945 - ] - }, - { - "teal": 1030, - "source": 5, - "pc": [ - 946, - 947, - 948, - 949, - 950, - 951 - ] - }, - { - "teal": 1031, - "source": 5, - "pc": [ - 952, - 953, - 954, - 955, - 956, - 957 - ] - }, - { - "teal": 1032, - "source": 5, - "pc": [ - 958, - 959, - 960, - 961, - 962, - 963 - ] - }, - { - "teal": 1033, - "source": 5, - "pc": [ - 964, - 965, - 966, - 967, - 968, - 969 - ] - }, - { - "teal": 1034, - "source": 5, - "pc": [ - 970, - 971, - 972, - 973, - 974, - 975 - ] - }, - { - "teal": 1035, - "source": 5, - "pc": [ - 976, - 977, - 978, - 979, - 980, - 981 - ] - }, - { - "teal": 1036, - "source": 5, - "pc": [ - 982, - 983, - 984, - 985, - 986, - 987 - ] - }, - { - "teal": 1037, - "source": 5, - "pc": [ - 988, - 989, - 990 - ] - }, - { - "teal": 1038, - "source": 5, - "pc": [ - 991, - 992, - 993, - 994, - 995, - 996, - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005, - 1006, - 1007, - 1008, - 1009, - 1010, - 1011, - 1012, - 1013, - 1014, - 1015, - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022 - ] - }, - { - "teal": 1041, - "source": 5, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 1023 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 92 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 107 + ], + "errorMessage": "argument 0 (arg0) for singleIf must be a bool" + }, + { + "pc": [ + 160 + ], + "errorMessage": "argument 0 (arg0) for ifElse must be a bool" + }, + { + "pc": [ + 218 + ], + "errorMessage": "argument 0 (arg1) for ifElseIf must be a bool" + }, + { + "pc": [ + 230 + ], + "errorMessage": "argument 1 (arg0) for ifElseIf must be a bool" + }, + { + "pc": [ + 301 + ], + "errorMessage": "argument 0 (arg1) for ifElseIfElse must be a bool" + }, + { + "pc": [ + 313 + ], + "errorMessage": "argument 1 (arg0) for ifElseIfElse must be a bool" + }, + { + "pc": [ + 389 + ], + "errorMessage": "argument 0 (arg2) for ifElseIfElseIf must be a bool" + }, + { + "pc": [ + 401 + ], + "errorMessage": "argument 1 (arg1) for ifElseIfElseIf must be a bool" + }, + { + "pc": [ + 413 + ], + "errorMessage": "argument 2 (arg0) for ifElseIfElseIf must be a bool" + }, + { + "pc": [ + 506 + ], + "errorMessage": "argument 0 (arg2) for ifElseIfElseIfElse must be a bool" + }, + { + "pc": [ + 518 + ], + "errorMessage": "argument 1 (arg1) for ifElseIfElseIfElse must be a bool" + }, + { + "pc": [ + 530 + ], + "errorMessage": "argument 2 (arg0) for ifElseIfElseIfElse must be a bool" + }, + { + "pc": [ + 628 + ], + "errorMessage": "argument 0 (arg1) for nestedIf must be a bool" + }, + { + "pc": [ + 640 + ], + "errorMessage": "argument 1 (arg0) for nestedIf must be a bool" + }, + { + "pc": [ + 715 + ], + "errorMessage": "argument 0 (arg0) for bracketlessIfElse must be a bool" + }, + { + "pc": [ + 773 + ], + "errorMessage": "argument 0 (arg1) for nestedTernary must be a bool" + }, + { + "pc": [ + 785 + ], + "errorMessage": "argument 1 (arg0) for nestedTernary must be a bool" + }, + { + "pc": [ + 910 + ], + "errorMessage": "argument 0 (a) for smallUintConditional must be a uint16" + }, + { + "pc": [ + 944 + ], + "errorMessage": "argument 0 (b) for smallUintComparisonConditional must be a uint16" + }, + { + "pc": [ + 954 + ], + "errorMessage": "argument 1 (a) for smallUintComparisonConditional must be a uint16" + }, + { + "pc": [ + 988 + ], + "errorMessage": "argument 0 (b) for uint256ComparsionConditional must be a uint256" + }, + { + "pc": [ + 997 + ], + "errorMessage": "argument 1 (a) for uint256ComparsionConditional must be a uint256" + }, + { + "pc": [ + 1036 + ], + "errorMessage": "argument 0 (b) for nestedIfInElseIf must be a bool" + }, + { + "pc": [ + 1048 + ], + "errorMessage": "argument 1 (a) for nestedIfInElseIf must be a bool" + }, + { + "pc": [ + 1140 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 1266 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaW5nbGVJZihib29sKXN0cmluZwoqYWJpX3JvdXRlX3NpbmdsZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMCkgZm9yIHNpbmdsZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIHNpbmdsZUlmKGJvb2wpc3RyaW5nCgljYWxsc3ViIHNpbmdsZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNpbmdsZUlmKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKc2luZ2xlSWY6Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcwKSBmb3IgaWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE1CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmMV9lbHNlCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxNgoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmMV9lbmQKCippZjFfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZwoqYWJpX3JvdXRlX2lmRWxzZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMSkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWYoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHN0cmluZwppZkVsc2VJZjoKCXByb3RvIDIgMQoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyMwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjJfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI0CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWYyX2VuZAoKKmlmMl9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI1CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjkKCS8vIHJldHVybiAnZW5kJzsKCWJ5dGUgMHg2NTZlNjQgLy8gImVuZCIKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWZFbHNlKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlOgoJcHJvdG8gMiAxCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjMzCgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmM19lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzQKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliICppZjNfZW5kCgoqaWYzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWYzX2Vsc2UKCgkvLyAqaWYzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCWIgKmlmM19lbmQKCippZjNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjM4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYzX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcyKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWY6Cglwcm90byAzIDEKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDMKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY0X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNF9lbmQKCippZjRfZWxzZWlmMV9jb25kaXRpb246CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NQoJLy8gYXJnMQoJZnJhbWVfZGlnIC0yIC8vIGFyZzE6IGJvb2xlYW4KCWJ6ICppZjRfZWxzZWlmMl9jb25kaXRpb24KCgkvLyAqaWY0X2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDYKCS8vIHJldHVybiAnZWxzZSBpZiAxJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzEgLy8gImVsc2UgaWYgMSIKCXJldHN1YgoJYiAqaWY0X2VuZAoKKmlmNF9lbHNlaWYyX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ3CgkvLyBhcmcyCglmcmFtZV9kaWcgLTMgLy8gYXJnMjogYm9vbGVhbgoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDgKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoKKmlmNF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1MQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2VJZkVsc2UoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcyOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMikgZm9yIGlmRWxzZUlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFyZzEpIGZvciBpZkVsc2VJZkVsc2VJZkVsc2UgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWZFbHNlSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmRWxzZShhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogc3RyaW5nCmlmRWxzZUlmRWxzZUlmRWxzZToKCXByb3RvIDMgMQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1NQoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjVfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU3CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmNV9lbHNlaWYyX2NvbmRpdGlvbgoKCS8vICppZjVfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1OAoJLy8gcmV0dXJuICdlbHNlIGlmIDEnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2MjAzMSAvLyAiZWxzZSBpZiAxIgoJcmV0c3ViCgliICppZjVfZW5kCgoqaWY1X2Vsc2VpZjJfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTkKCS8vIGFyZzIKCWZyYW1lX2RpZyAtMyAvLyBhcmcyOiBib29sZWFuCglieiAqaWY1X2Vsc2UKCgkvLyAqaWY1X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjAKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjIKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjVfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcwKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWYoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBuZXN0ZWRJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZihhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmOgoJcHJvdG8gMiAxCgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjY3CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmNl9lbHNlCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjgKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjkKCS8vIHJldHVybiAnbmVzdGVkIGlmJzsKCWJ5dGUgMHg2ZTY1NzM3NDY1NjQyMDY5NjYgLy8gIm5lc3RlZCBpZiIKCXJldHN1YgoKKmlmN19lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3MQoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNl9lbmQKCippZjZfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjczCgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWY2X2VuZDoKCXJldHN1YgoKLy8gYnJhY2tldGxlc3NJZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMDogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFyZzApIGZvciBicmFja2V0bGVzc0lmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBicmFja2V0bGVzc0lmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBicmFja2V0bGVzc0lmRWxzZQoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmFja2V0bGVzc0lmRWxzZShhcmcwOiBib29sZWFuKTogc3RyaW5nCmJyYWNrZXRsZXNzSWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmOF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc4CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmOF9lbHNlCgoJLy8gKmlmOF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo3OAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmOF9lbmQKCippZjhfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc5CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWY4X2VuZDoKCXJldHN1YgoKLy8gbmVzdGVkVGVybmFyeShib29sLGJvb2wpdWludDY0CiphYmlfcm91dGVfbmVzdGVkVGVybmFyeToKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFyZzEpIGZvciBuZXN0ZWRUZXJuYXJ5IG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIG5lc3RlZFRlcm5hcnkgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkVGVybmFyeShib29sLGJvb2wpdWludDY0CgljYWxsc3ViIG5lc3RlZFRlcm5hcnkKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRUZXJuYXJ5KGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiB1aW50NjQKbmVzdGVkVGVybmFyeToKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjg0CgkvLyByZXR1cm4gYXJnMCA/IDEgOiBhcmcxID8gMiA6IDM7CglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKnRlcm5hcnkwX2ZhbHNlCglpbnQgMQoJYiAqdGVybmFyeTBfZW5kCgoqdGVybmFyeTBfZmFsc2U6CglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKnRlcm5hcnkxX2ZhbHNlCglpbnQgMgoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglpbnQgMwoKKnRlcm5hcnkxX2VuZDoKCip0ZXJuYXJ5MF9lbmQ6CglyZXRzdWIKCi8vIHN0cmluZ0lmKHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9zdHJpbmdJZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYXJnMDogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglleHRyYWN0IDIgMAoKCS8vIGV4ZWN1dGUgc3RyaW5nSWYoc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdJZgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ0lmKGFyZzA6IHN0cmluZyk6IHVpbnQ2NApzdHJpbmdJZjoKCXByb3RvIDEgMQoKCS8vICppZjlfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4OAoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiAqaWY5X2VuZAoKCS8vICppZjlfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODkKCS8vIHJldHVybiAxOwoJaW50IDEKCXJldHN1YgoKKmlmOV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo5MgoJLy8gcmV0dXJuIDI7CglpbnQgMgoJcmV0c3ViCgovLyBzdHJpbmdUZXJuYXJ5KHN0cmluZyl1aW50NjQKKmFiaV9yb3V0ZV9zdHJpbmdUZXJuYXJ5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBzdHJpbmdUZXJuYXJ5KHN0cmluZyl1aW50NjQKCWNhbGxzdWIgc3RyaW5nVGVybmFyeQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHN0cmluZ1Rlcm5hcnkoYXJnMDogc3RyaW5nKTogdWludDY0CnN0cmluZ1Rlcm5hcnk6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo5NgoJLy8gcmV0dXJuIGFyZzAgPyAxIDogMjsKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBzdHJpbmcKCWJ5dGUgMHgKCWIhPQoJYnogKnRlcm5hcnkyX2ZhbHNlCglpbnQgMQoJYiAqdGVybmFyeTJfZW5kCgoqdGVybmFyeTJfZmFsc2U6CglpbnQgMgoKKnRlcm5hcnkyX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQKKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbDoKCS8vIGE6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBzbWFsbFVpbnRDb25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbmRpdGlvbmFsKHVpbnQxNil2b2lkCgljYWxsc3ViIHNtYWxsVWludENvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb25kaXRpb25hbChhOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbmRpdGlvbmFsOgoJcHJvdG8gMSAwCgoJLy8gKmlmMTBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDAKCS8vIGEKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWJ5dGUgMHgKCWIhPQoJYnogKmlmMTBfZW5kCgoJLy8gKmlmMTBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTAxCgkvLyBsb2coJ2ZvbycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglsb2cKCippZjEwX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZAoqYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQxNgoJYXNzZXJ0CglidG9pCgoJLy8gYTogdWludDE2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKCWNhbGxzdWIgc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwoYTogdWludDE2LCBiOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTA2CgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MTYKCTw9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDcKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTFfZW5kOgoJcmV0c3ViCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCh1aW50MjU2LHVpbnQyNTYpdm9pZAoJY2FsbHN1YiB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB2b2lkCnVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWw6Cglwcm90byAyIDAKCgkvLyAqaWYxMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjExMgoJLy8gYSA8PSBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWI8PQoJYnogKmlmMTJfZW5kCgoJLy8gKmlmMTJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTEzCgkvLyBsb2coJ2ZvbycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglsb2cKCippZjEyX2VuZDoKCXJldHN1YgoKLy8gbmVzdGVkSWZJbkVsc2VJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWZJbkVsc2VJZjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBuZXN0ZWRJZkluRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIG5lc3RlZElmSW5FbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWZJbkVsc2VJZihib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIG5lc3RlZElmSW5FbHNlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbmVzdGVkSWZJbkVsc2VJZihhOiBib29sZWFuLCBiOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmSW5FbHNlSWY6Cglwcm90byAyIDEKCgkvLyAqaWYxM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjExOAoJLy8gYQoJZnJhbWVfZGlnIC0xIC8vIGE6IGJvb2xlYW4KCWJ6ICppZjEzX2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmMTNfY29uc2VxdWVudAoJLy8gKmlmMTRfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTkKCS8vIGIKCWZyYW1lX2RpZyAtMiAvLyBiOiBib29sZWFuCglieiAqaWYxNF9lbHNlCgoJLy8gKmlmMTRfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTIwCgkvLyByZXR1cm4gJ2EgYW5kIGInOwoJYnl0ZSAweDYxMjA2MTZlNjQyMDYyIC8vICJhIGFuZCBiIgoJcmV0c3ViCgliICppZjE0X2VuZAoKKmlmMTRfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEyMgoJLy8gcmV0dXJuICdhJzsKCWJ5dGUgMHg2MSAvLyAiYSIKCXJldHN1YgoKKmlmMTRfZW5kOgoJYiAqaWYxM19lbmQKCippZjEzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI0CgkvLyBiCglmcmFtZV9kaWcgLTIgLy8gYjogYm9vbGVhbgoJYnogKmlmMTNfZWxzZQoKCS8vICppZjEzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI1CgkvLyByZXR1cm4gJ2InOwoJYnl0ZSAweDYyIC8vICJiIgoJcmV0c3ViCgliICppZjEzX2VuZAoKKmlmMTNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEyNwoJLy8gcmV0dXJuICduZWl0aGVyJzsKCWJ5dGUgMHg2ZTY1Njk3NDY4NjU3MiAvLyAibmVpdGhlciIKCXJldHN1YgoKKmlmMTNfZW5kOgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAic2luZ2xlSWYoYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZShib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmciCgltZXRob2QgImlmRWxzZUlmRWxzZUlmKGJvb2wsYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiaWZFbHNlSWZFbHNlSWZFbHNlKGJvb2wsYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAibmVzdGVkSWYoYm9vbCxib29sKXN0cmluZyIKCW1ldGhvZCAiYnJhY2tldGxlc3NJZkVsc2UoYm9vbClzdHJpbmciCgltZXRob2QgIm5lc3RlZFRlcm5hcnkoYm9vbCxib29sKXVpbnQ2NCIKCW1ldGhvZCAic3RyaW5nSWYoc3RyaW5nKXVpbnQ2NCIKCW1ldGhvZCAic3RyaW5nVGVybmFyeShzdHJpbmcpdWludDY0IgoJbWV0aG9kICJzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZCIKCW1ldGhvZCAic21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsKHVpbnQxNix1aW50MTYpdm9pZCIKCW1ldGhvZCAidWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCh1aW50MjU2LHVpbnQyNTYpdm9pZCIKCW1ldGhvZCAibmVzdGVkSWZJbkVsc2VJZihib29sLGJvb2wpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zaW5nbGVJZiAqYWJpX3JvdXRlX2lmRWxzZSAqYWJpX3JvdXRlX2lmRWxzZUlmICphYmlfcm91dGVfaWZFbHNlSWZFbHNlICphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWYgKmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2VJZkVsc2UgKmFiaV9yb3V0ZV9uZXN0ZWRJZiAqYWJpX3JvdXRlX2JyYWNrZXRsZXNzSWZFbHNlICphYmlfcm91dGVfbmVzdGVkVGVybmFyeSAqYWJpX3JvdXRlX3N0cmluZ0lmICphYmlfcm91dGVfc3RyaW5nVGVybmFyeSAqYWJpX3JvdXRlX3NtYWxsVWludENvbmRpdGlvbmFsICphYmlfcm91dGVfc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsICphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCAqYWJpX3JvdXRlX25lc3RlZElmSW5FbHNlSWYKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAKYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4NjU2YzczNjUgMHg2OTY2IDB4NjU2YzczNjUyMDY5NjYyMDMxIDB4NjU2YzczNjUyMDY5NjYyMDMyIDB4NjU2YzczNjUyMDY5NjYgMHg2NTZlNjQgMHg2NjZmNmYgMHgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzaW5nbGVJZihib29sKXN0cmluZwoqYWJpX3JvdXRlX3NpbmdsZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMCkgZm9yIHNpbmdsZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIHNpbmdsZUlmKGJvb2wpc3RyaW5nCgljYWxsc3ViIHNpbmdsZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNpbmdsZUlmKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKc2luZ2xlSWY6Cglwcm90byAxIDEKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoKKmlmMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2UoYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcwKSBmb3IgaWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZShib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlOgoJcHJvdG8gMSAxCgoJLy8gKmlmMV9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE1CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmMV9lbHNlCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxNgoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmMV9lbmQKCippZjFfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjE4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYxX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWYoYm9vbCxib29sKXN0cmluZwoqYWJpX3JvdXRlX2lmRWxzZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMSkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWYKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWYoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHN0cmluZwppZkVsc2VJZjoKCXByb3RvIDIgMQoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoyMwoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjJfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYyX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI0CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWYyX2VuZAoKKmlmMl9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjI1CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCippZjJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MjkKCS8vIHJldHVybiAnZW5kJzsKCWJ5dGUgMHg2NTZlNjQgLy8gImVuZCIKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlKGJvb2wsYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9pZkVsc2VJZkVsc2U6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYXJnMCkgZm9yIGlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBpZkVsc2VJZkVsc2UoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBpZkVsc2VJZkVsc2UKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gaWZFbHNlSWZFbHNlKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlOgoJcHJvdG8gMiAxCgoJLy8gKmlmM19jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjMzCgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmM19lbHNlaWYxX2NvbmRpdGlvbgoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzQKCS8vIHJldHVybiAnaWYnOwoJYnl0ZSAweDY5NjYgLy8gImlmIgoJcmV0c3ViCgliICppZjNfZW5kCgoqaWYzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzUKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWYzX2Vsc2UKCgkvLyAqaWYzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MzYKCS8vIHJldHVybiAnZWxzZSBpZic7CglieXRlIDB4NjU2YzczNjUyMDY5NjYgLy8gImVsc2UgaWYiCglyZXRzdWIKCWIgKmlmM19lbmQKCippZjNfZWxzZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjM4CgkvLyByZXR1cm4gJ2Vsc2UnOwoJYnl0ZSAweDY1NmM3MzY1IC8vICJlbHNlIgoJcmV0c3ViCgoqaWYzX2VuZDoKCXJldHN1YgoKLy8gaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcyKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcxKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgaWZFbHNlSWZFbHNlSWYoYm9vbCxib29sLGJvb2wpc3RyaW5nCgljYWxsc3ViIGlmRWxzZUlmRWxzZUlmCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmKGFyZzA6IGJvb2xlYW4sIGFyZzE6IGJvb2xlYW4sIGFyZzI6IGJvb2xlYW4pOiBzdHJpbmcKaWZFbHNlSWZFbHNlSWY6Cglwcm90byAzIDEKCgkvLyAqaWY0X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDMKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY0X2Vsc2VpZjFfY29uZGl0aW9uCgoJLy8gKmlmNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NAoJLy8gcmV0dXJuICdpZic7CglieXRlIDB4Njk2NiAvLyAiaWYiCglyZXRzdWIKCWIgKmlmNF9lbmQKCippZjRfZWxzZWlmMV9jb25kaXRpb246CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo0NQoJLy8gYXJnMQoJZnJhbWVfZGlnIC0yIC8vIGFyZzE6IGJvb2xlYW4KCWJ6ICppZjRfZWxzZWlmMl9jb25kaXRpb24KCgkvLyAqaWY0X2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDYKCS8vIHJldHVybiAnZWxzZSBpZiAxJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzEgLy8gImVsc2UgaWYgMSIKCXJldHN1YgoJYiAqaWY0X2VuZAoKKmlmNF9lbHNlaWYyX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjQ3CgkvLyBhcmcyCglmcmFtZV9kaWcgLTMgLy8gYXJnMjogYm9vbGVhbgoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NDgKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoKKmlmNF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1MQoJLy8gcmV0dXJuICdlbmQnOwoJYnl0ZSAweDY1NmU2NCAvLyAiZW5kIgoJcmV0c3ViCgovLyBpZkVsc2VJZkVsc2VJZkVsc2UoYm9vbCxib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcyOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMikgZm9yIGlmRWxzZUlmRWxzZUlmRWxzZSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gYXJnMTogYm9vbAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGFyZzEpIGZvciBpZkVsc2VJZkVsc2VJZkVsc2UgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAyIChhcmcwKSBmb3IgaWZFbHNlSWZFbHNlSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgaWZFbHNlSWZFbHNlSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlmRWxzZUlmRWxzZUlmRWxzZShhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuLCBhcmcyOiBib29sZWFuKTogc3RyaW5nCmlmRWxzZUlmRWxzZUlmRWxzZToKCXByb3RvIDMgMQoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1NQoJLy8gYXJnMAoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IGJvb2xlYW4KCWJ6ICppZjVfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU2CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlaWYxX2NvbmRpdGlvbjoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjU3CgkvLyBhcmcxCglmcmFtZV9kaWcgLTIgLy8gYXJnMTogYm9vbGVhbgoJYnogKmlmNV9lbHNlaWYyX2NvbmRpdGlvbgoKCS8vICppZjVfZWxzZWlmMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czo1OAoJLy8gcmV0dXJuICdlbHNlIGlmIDEnOwoJYnl0ZSAweDY1NmM3MzY1MjA2OTY2MjAzMSAvLyAiZWxzZSBpZiAxIgoJcmV0c3ViCgliICppZjVfZW5kCgoqaWY1X2Vsc2VpZjJfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NTkKCS8vIGFyZzIKCWZyYW1lX2RpZyAtMyAvLyBhcmcyOiBib29sZWFuCglieiAqaWY1X2Vsc2UKCgkvLyAqaWY1X2Vsc2VpZjJfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjAKCS8vIHJldHVybiAnZWxzZSBpZiAyJzsKCWJ5dGUgMHg2NTZjNzM2NTIwNjk2NjIwMzIgLy8gImVsc2UgaWYgMiIKCXJldHN1YgoJYiAqaWY1X2VuZAoKKmlmNV9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjIKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjVfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZihib29sLGJvb2wpc3RyaW5nCiphYmlfcm91dGVfbmVzdGVkSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAwIChhcmcxKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcwKSBmb3IgbmVzdGVkSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgbmVzdGVkSWYoYm9vbCxib29sKXN0cmluZwoJY2FsbHN1YiBuZXN0ZWRJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZihhcmcwOiBib29sZWFuLCBhcmcxOiBib29sZWFuKTogc3RyaW5nCm5lc3RlZElmOgoJcHJvdG8gMiAxCgoJLy8gKmlmNl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjY3CgkvLyBhcmcwCglmcmFtZV9kaWcgLTEgLy8gYXJnMDogYm9vbGVhbgoJYnogKmlmNl9lbHNlCgoJLy8gKmlmNl9jb25zZXF1ZW50CgkvLyAqaWY3X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjgKCS8vIGFyZzEKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqaWY3X2VuZAoKCS8vICppZjdfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NjkKCS8vIHJldHVybiAnbmVzdGVkIGlmJzsKCXB1c2hieXRlcyAweDZlNjU3Mzc0NjU2NDIwNjk2NiAvLyAibmVzdGVkIGlmIgoJcmV0c3ViCgoqaWY3X2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjcxCgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY2X2VuZAoKKmlmNl9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzMKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjZfZW5kOgoJcmV0c3ViCgovLyBicmFja2V0bGVzc0lmRWxzZShib29sKXN0cmluZwoqYWJpX3JvdXRlX2JyYWNrZXRsZXNzSWZFbHNlOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcwOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMCkgZm9yIGJyYWNrZXRsZXNzSWZFbHNlIG11c3QgYmUgYSBib29sCglhc3NlcnQKCWludCAwCglnZXRiaXQKCgkvLyBleGVjdXRlIGJyYWNrZXRsZXNzSWZFbHNlKGJvb2wpc3RyaW5nCgljYWxsc3ViIGJyYWNrZXRsZXNzSWZFbHNlCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyYWNrZXRsZXNzSWZFbHNlKGFyZzA6IGJvb2xlYW4pOiBzdHJpbmcKYnJhY2tldGxlc3NJZkVsc2U6Cglwcm90byAxIDEKCgkvLyAqaWY4X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzgKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqaWY4X2Vsc2UKCgkvLyAqaWY4X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjc4CgkvLyByZXR1cm4gJ2lmJzsKCWJ5dGUgMHg2OTY2IC8vICJpZiIKCXJldHN1YgoJYiAqaWY4X2VuZAoKKmlmOF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6NzkKCS8vIHJldHVybiAnZWxzZSc7CglieXRlIDB4NjU2YzczNjUgLy8gImVsc2UiCglyZXRzdWIKCippZjhfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQKKmFiaV9yb3V0ZV9uZXN0ZWRUZXJuYXJ5OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhcmcxOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYXJnMSkgZm9yIG5lc3RlZFRlcm5hcnkgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzA6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhcmcwKSBmb3IgbmVzdGVkVGVybmFyeSBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkVGVybmFyeQoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG5lc3RlZFRlcm5hcnkoYXJnMDogYm9vbGVhbiwgYXJnMTogYm9vbGVhbik6IHVpbnQ2NApuZXN0ZWRUZXJuYXJ5OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODQKCS8vIHJldHVybiBhcmcwID8gMSA6IGFyZzEgPyAyIDogMzsKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBib29sZWFuCglieiAqdGVybmFyeTBfZmFsc2UKCWludCAxCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWZyYW1lX2RpZyAtMiAvLyBhcmcxOiBib29sZWFuCglieiAqdGVybmFyeTFfZmFsc2UKCXB1c2hpbnQgMgoJYiAqdGVybmFyeTFfZW5kCgoqdGVybmFyeTFfZmFsc2U6CglwdXNoaW50IDMKCip0ZXJuYXJ5MV9lbmQ6CgoqdGVybmFyeTBfZW5kOgoJcmV0c3ViCgovLyBzdHJpbmdJZihzdHJpbmcpdWludDY0CiphYmlfcm91dGVfc3RyaW5nSWY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ0lmKHN0cmluZyl1aW50NjQKCWNhbGxzdWIgc3RyaW5nSWYKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzdHJpbmdJZihhcmcwOiBzdHJpbmcpOiB1aW50NjQKc3RyaW5nSWY6Cglwcm90byAxIDEKCgkvLyAqaWY5X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6ODgKCS8vIGFyZzAKCWZyYW1lX2RpZyAtMSAvLyBhcmcwOiBzdHJpbmcKCWJ5dGUgMHgKCWIhPQoJYnogKmlmOV9lbmQKCgkvLyAqaWY5X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjg5CgkvLyByZXR1cm4gMTsKCWludCAxCglyZXRzdWIKCippZjlfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6OTIKCS8vIHJldHVybiAyOwoJcHVzaGludCAyCglyZXRzdWIKCi8vIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoqYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnk6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGFyZzA6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZXh0cmFjdCAyIDAKCgkvLyBleGVjdXRlIHN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NAoJY2FsbHN1YiBzdHJpbmdUZXJuYXJ5CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gc3RyaW5nVGVybmFyeShhcmcwOiBzdHJpbmcpOiB1aW50NjQKc3RyaW5nVGVybmFyeToKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjk2CgkvLyByZXR1cm4gYXJnMCA/IDEgOiAyOwoJZnJhbWVfZGlnIC0xIC8vIGFyZzA6IHN0cmluZwoJYnl0ZSAweAoJYiE9CglieiAqdGVybmFyeTJfZmFsc2UKCWludCAxCgliICp0ZXJuYXJ5Ml9lbmQKCip0ZXJuYXJ5Ml9mYWxzZToKCXB1c2hpbnQgMgoKKnRlcm5hcnkyX2VuZDoKCXJldHN1YgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQKKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbDoKCS8vIGE6IHVpbnQxNgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCXB1c2hpbnQgMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3Igc21hbGxVaW50Q29uZGl0aW9uYWwgbXVzdCBiZSBhIHVpbnQxNgoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSBzbWFsbFVpbnRDb25kaXRpb25hbCh1aW50MTYpdm9pZAoJY2FsbHN1YiBzbWFsbFVpbnRDb25kaXRpb25hbAoJaW50IDEKCXJldHVybgoKLy8gc21hbGxVaW50Q29uZGl0aW9uYWwoYTogdWludDE2KTogdm9pZApzbWFsbFVpbnRDb25kaXRpb25hbDoKCXByb3RvIDEgMAoKCS8vICppZjEwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTAwCgkvLyBhCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2CglieXRlIDB4CgliIT0KCWJ6ICppZjEwX2VuZAoKCS8vICppZjEwX2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjEwMQoJLy8gbG9nKCdmb28nKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJbG9nCgoqaWYxMF9lbmQ6CglyZXRzdWIKCi8vIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWw6CgkvLyBiOiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBhOiB1aW50MTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDE2Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQKCWNhbGxzdWIgc21hbGxVaW50Q29tcGFyaXNvbkNvbmRpdGlvbmFsCglpbnQgMQoJcmV0dXJuCgovLyBzbWFsbFVpbnRDb21wYXJpc29uQ29uZGl0aW9uYWwoYTogdWludDE2LCBiOiB1aW50MTYpOiB2b2lkCnNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjExX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTA2CgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MTYKCTw9CglieiAqaWYxMV9lbmQKCgkvLyAqaWYxMV9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMDcKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTFfZW5kOgoJcmV0c3ViCgovLyB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglwdXNoaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJcHVzaGludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1aW50MjU2Q29tcGFyc2lvbkNvbmRpdGlvbmFsKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwKCWludCAxCglyZXR1cm4KCi8vIHVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHZvaWQKdWludDI1NkNvbXBhcnNpb25Db25kaXRpb25hbDoKCXByb3RvIDIgMAoKCS8vICppZjEyX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTEyCgkvLyBhIDw9IGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYjw9CglieiAqaWYxMl9lbmQKCgkvLyAqaWYxMl9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMTMKCS8vIGxvZygnZm9vJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWxvZwoKKmlmMTJfZW5kOgoJcmV0c3ViCgovLyBuZXN0ZWRJZkluRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKKmFiaV9yb3V0ZV9uZXN0ZWRJZkluRWxzZUlmOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiBib29sCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIG5lc3RlZElmSW5FbHNlSWYgbXVzdCBiZSBhIGJvb2wKCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgbmVzdGVkSWZJbkVsc2VJZiBtdXN0IGJlIGEgYm9vbAoJYXNzZXJ0CglpbnQgMAoJZ2V0Yml0CgoJLy8gZXhlY3V0ZSBuZXN0ZWRJZkluRWxzZUlmKGJvb2wsYm9vbClzdHJpbmcKCWNhbGxzdWIgbmVzdGVkSWZJbkVsc2VJZgoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBuZXN0ZWRJZkluRWxzZUlmKGE6IGJvb2xlYW4sIGI6IGJvb2xlYW4pOiBzdHJpbmcKbmVzdGVkSWZJbkVsc2VJZjoKCXByb3RvIDIgMQoKCS8vICppZjEzX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTE4CgkvLyBhCglmcmFtZV9kaWcgLTEgLy8gYTogYm9vbGVhbgoJYnogKmlmMTNfZWxzZWlmMV9jb25kaXRpb24KCgkvLyAqaWYxM19jb25zZXF1ZW50CgkvLyAqaWYxNF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9pZi5hbGdvLnRzOjExOQoJLy8gYgoJZnJhbWVfZGlnIC0yIC8vIGI6IGJvb2xlYW4KCWJ6ICppZjE0X2Vsc2UKCgkvLyAqaWYxNF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMjAKCS8vIHJldHVybiAnYSBhbmQgYic7CglwdXNoYnl0ZXMgMHg2MTIwNjE2ZTY0MjA2MiAvLyAiYSBhbmQgYiIKCXJldHN1YgoJYiAqaWYxNF9lbmQKCippZjE0X2Vsc2U6CgkvLyB0ZXN0cy9jb250cmFjdHMvaWYuYWxnby50czoxMjIKCS8vIHJldHVybiAnYSc7CglwdXNoYnl0ZXMgMHg2MSAvLyAiYSIKCXJldHN1YgoKKmlmMTRfZW5kOgoJYiAqaWYxM19lbmQKCippZjEzX2Vsc2VpZjFfY29uZGl0aW9uOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI0CgkvLyBiCglmcmFtZV9kaWcgLTIgLy8gYjogYm9vbGVhbgoJYnogKmlmMTNfZWxzZQoKCS8vICppZjEzX2Vsc2VpZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI1CgkvLyByZXR1cm4gJ2InOwoJcHVzaGJ5dGVzIDB4NjIgLy8gImIiCglyZXRzdWIKCWIgKmlmMTNfZW5kCgoqaWYxM19lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL2lmLmFsZ28udHM6MTI3CgkvLyByZXR1cm4gJ25laXRoZXInOwoJcHVzaGJ5dGVzIDB4NmU2NTY5NzQ2ODY1NzIgLy8gIm5laXRoZXIiCglyZXRzdWIKCippZjEzX2VuZDoKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHg0MzZlYzFjMiAvLyBtZXRob2QgInNpbmdsZUlmKGJvb2wpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4MWM3YTBkNWUgLy8gbWV0aG9kICJpZkVsc2UoYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg1ZTBmYjZjZiAvLyBtZXRob2QgImlmRWxzZUlmKGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg1ZTFjNmM1MCAvLyBtZXRob2QgImlmRWxzZUlmRWxzZShib29sLGJvb2wpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4NThkMGJhOTIgLy8gbWV0aG9kICJpZkVsc2VJZkVsc2VJZihib29sLGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg1ZDJmNGYwMiAvLyBtZXRob2QgImlmRWxzZUlmRWxzZUlmRWxzZShib29sLGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg4NDU3MjlkOSAvLyBtZXRob2QgIm5lc3RlZElmKGJvb2wsYm9vbClzdHJpbmciCglwdXNoYnl0ZXMgMHg4ZmU3NmNhOCAvLyBtZXRob2QgImJyYWNrZXRsZXNzSWZFbHNlKGJvb2wpc3RyaW5nIgoJcHVzaGJ5dGVzIDB4MWEzYzc4NzggLy8gbWV0aG9kICJuZXN0ZWRUZXJuYXJ5KGJvb2wsYm9vbCl1aW50NjQiCglwdXNoYnl0ZXMgMHg3NGJjYzg2OCAvLyBtZXRob2QgInN0cmluZ0lmKHN0cmluZyl1aW50NjQiCglwdXNoYnl0ZXMgMHg0MjEyZjkwNSAvLyBtZXRob2QgInN0cmluZ1Rlcm5hcnkoc3RyaW5nKXVpbnQ2NCIKCXB1c2hieXRlcyAweDk1ZGRhZWJmIC8vIG1ldGhvZCAic21hbGxVaW50Q29uZGl0aW9uYWwodWludDE2KXZvaWQiCglwdXNoYnl0ZXMgMHgzMTQ3Yjg2NiAvLyBtZXRob2QgInNtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCh1aW50MTYsdWludDE2KXZvaWQiCglwdXNoYnl0ZXMgMHg0Mjg5N2Y2MSAvLyBtZXRob2QgInVpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwodWludDI1Nix1aW50MjU2KXZvaWQiCglwdXNoYnl0ZXMgMHg1MzRiZTJiNyAvLyBtZXRob2QgIm5lc3RlZElmSW5FbHNlSWYoYm9vbCxib29sKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfc2luZ2xlSWYgKmFiaV9yb3V0ZV9pZkVsc2UgKmFiaV9yb3V0ZV9pZkVsc2VJZiAqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZSAqYWJpX3JvdXRlX2lmRWxzZUlmRWxzZUlmICphYmlfcm91dGVfaWZFbHNlSWZFbHNlSWZFbHNlICphYmlfcm91dGVfbmVzdGVkSWYgKmFiaV9yb3V0ZV9icmFja2V0bGVzc0lmRWxzZSAqYWJpX3JvdXRlX25lc3RlZFRlcm5hcnkgKmFiaV9yb3V0ZV9zdHJpbmdJZiAqYWJpX3JvdXRlX3N0cmluZ1Rlcm5hcnkgKmFiaV9yb3V0ZV9zbWFsbFVpbnRDb25kaXRpb25hbCAqYWJpX3JvdXRlX3NtYWxsVWludENvbXBhcmlzb25Db25kaXRpb25hbCAqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJzaW9uQ29uZGl0aW9uYWwgKmFiaV9yb3V0ZV9uZXN0ZWRJZkluRWxzZUlmCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAEAQACICYJBBUffHUCaWYEZWxzZQNlbmQAA2ZvbwdlbHNlIGlmCWVsc2UgaWYgMQllbHNlIGlmIDIxGBSBBgsxGQiNDAMkAAAAAAAAAAAAAAMWAAAAAAAAAAAAAAAoNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oBAYv/QQACKYkriSg2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigEBi/9BAAUpiUIAAiqJiSg2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oCAYv/QQAFKYlCAAiL/kEAAycGiSuJKDYaAkkVIhJEI1M2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigIBi/9BAAUpiUIADYv+QQAGJwaJQgACKomJKDYaA0kVIhJEI1M2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oDAYv/QQAFKYlCABOL/kEABicHiUIACIv9QQADJwiJK4koNhoDSRUiEkQjUzYaAkkVIhJEI1M2GgFJFSISRCNTiAAMSRUWVwYCTFBQsCJDigMBi/9BAAUpiUIAGIv+QQAGJweJQgANi/1BAAYnCIlCAAIqiYkoNhoCSRUiEkQjUzYaAUkVIhJEI1OIAAxJFRZXBgJMUFCwIkOKAgGL/0EAFov+QQAMgAluZXN0ZWQgaWaJKYlCAAIqiYkoNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oBAYv/QQAFKYlCAAIqiYkoNhoCSRUiEkQjUzYaAUkVIhJEI1OIAAUWULAiQ4oCAYv/QQAEIkIAC4v+QQAEJEIAAoEDiSg2GgFXAgCIAAUWULAiQ4oBAYv/JwSpQQACIokkiSg2GgFXAgCIAAUWULAiQ4oBAYv/JwSpQQAEIkIAASSJNhoBSRUkEkQXiAACIkOKAQCL/ycEqUEAAycFsIk2GgJJFSQSRBc2GgFJFSQSRBeIAAIiQ4oCAIv/i/4OQQADJwWwiTYaAkkVJRJENhoBSRUlEkSIAAIiQ4oCAIv/i/6mQQADJwWwiSg2GgJJFSISRCNTNhoBSRUiEkQjU4gADEkVFlcGAkxQULAiQ4oCAYv/QQAZi/5BAA2AB2EgYW5kIGKJQgAEgAFhiUIAFov+QQAHgAFiiUIACoAHbmVpdGhlcomJIkOABLhEezY2GgCOAf/xAIAEQ27BwoAEHHoNXoAEXg+2z4AEXhxsUIAEWNC6koAEXS9PAoAEhFcp2YAEj+dsqIAEGjx4eIAEdLzIaIAEQhL5BYAEld2uv4AEMUe4ZoAEQol/YYAEU0vitzYaAI4P/GD8hvyw/Ov9Kv16/c7+E/49/nL+kP6w/s3+8/8XAA==", + "approval": "CiACAQAmCQQVH3x1BGVsc2UCaWYJZWxzZSBpZiAxCWVsc2UgaWYgMgdlbHNlIGlmA2VuZANmb28AMRgUgQYLMRkIjQwEGQAAAAAAAAAAAAAECwAAAAAAAAAAAAAAgAQVH3x1NhoBSRWBARJEgQBTiAANSRUWVwYCTFBQsIEBQ4oBAYv/QQAFgAJpZomAA2VuZImABBUffHU2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigEBi/9BAAiAAmlmiUIAB4AEZWxzZYmJgAQVH3x1NhoCSRWBARJEgQBTNhoBSRWBARJEgQBTiAANSRUWVwYCTFBQsIEBQ4oCAYv/QQAIgAJpZolCAA+L/kEACoAHZWxzZSBpZomAA2VuZImABBUffHU2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigIBi/9BAAiAAmlmiUIAGYv+QQANgAdlbHNlIGlmiUIAB4AEZWxzZYmJgAQVH3x1NhoDSRWBARJEgQBTNhoCSRWBARJEgQBTNhoBSRWBARJEgQBTiAANSRUWVwYCTFBQsIEBQ4oDAYv/QQAIgAJpZolCACWL/kEAD4AJZWxzZSBpZiAxiUIAEYv9QQAMgAllbHNlIGlmIDKJgANlbmSJgAQVH3x1NhoDSRWBARJEgQBTNhoCSRWBARJEgQBTNhoBSRWBARJEgQBTiAANSRUWVwYCTFBQsIEBQ4oDAYv/QQAIgAJpZolCAC+L/kEAD4AJZWxzZSBpZiAxiUIAG4v9QQAPgAllbHNlIGlmIDKJQgAHgARlbHNliYmABBUffHU2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigIBi/9BABmL/kEADIAJbmVzdGVkIGlmiYACaWaJQgAHgARlbHNliYmABBUffHU2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigEBi/9BAAiAAmlmiUIAB4AEZWxzZYmJgAQVH3x1NhoCSRWBARJEgQBTNhoBSRWBARJEgQBTiAAGFlCwgQFDigIBi/9BAAWBAUIADIv+QQAFgQJCAAKBA4mABBUffHU2GgFXAgCIAAYWULCBAUOKAQGL/4AAqUEAA4EBiYECiYAEFR98dTYaAVcCAIgABhZQsIEBQ4oBAYv/gACpQQAFgQFCAAKBAok2GgFJFYECEkQXiAADgQFDigEAi/+AAKlBAAaAA2Zvb7CJNhoCSRWBAhJEFzYaAUkVgQISRBeIAAOBAUOKAgCL/4v+DkEABoADZm9vsIk2GgJJFYEgEkQ2GgFJFYEgEkSIAAOBAUOKAgCL/4v+pkEABoADZm9vsImABBUffHU2GgJJFYEBEkSBAFM2GgFJFYEBEkSBAFOIAA1JFRZXBgJMUFCwgQFDigIBi/9BABmL/kEADYAHYSBhbmQgYolCAASAAWGJQgAWi/5BAAeAAWKJQgAKgAduZWl0aGVyiYmBAUOABLhEezY2GgCOAf/wAIAEQ27BwoAEHHoNXoAEXg+2z4AEXhxsUIAEWNC6koAEXS9PAoAEhFcp2YAEj+dsqIAEGjx4eIAEdLzIaIAEQhL5BYAEld2uv4AEMUe4ZoAEQol/YYAEU0vitzYaAI4P+2v7oPva/C38hfz6/XT9y/4F/kb+bP6U/rb+4v8MAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/IntcblockTest.approval.teal b/tests/contracts/artifacts/IntcblockTest.approval.teal new file mode 100644 index 000000000..a2da5d999 --- /dev/null +++ b/tests/contracts/artifacts/IntcblockTest.approval.teal @@ -0,0 +1,1340 @@ +#pragma version 10 + +// This TEAL was generated by TEALScript v0.104.0 +// https://github.com/algorandfoundation/TEALScript + +// This contract is compliant with and/or implements the following ARCs: [ ARC4 ] + +// The following ten lines of TEAL handle initial program flow +// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed +// Here, action refers to the OnComplete in combination with whether the app is being created or called +// Every possible action for this contract is represented in the switch statement +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" +txn ApplicationID +! +pushint 6 +* +txn OnCompletion ++ +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED + +*NOT_IMPLEMENTED: + // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? + err + +// largeIntcblock()uint64 +*abi_route_largeIntcblock: + // The ABI return prefix + pushbytes 0x151f7c75 + + // execute largeIntcblock()uint64 + callsub largeIntcblock + itob + concat + log + pushint 1 + return + +// largeIntcblock(): uint64 +largeIntcblock: + proto 0 1 + + // tests/contracts/cblocks.algo.ts:9 + // assert(2) + pushint 2 + assert + + // tests/contracts/cblocks.algo.ts:10 + // assert(3) + pushint 3 + assert + + // tests/contracts/cblocks.algo.ts:11 + // assert(4) + pushint 4 + assert + + // tests/contracts/cblocks.algo.ts:12 + // assert(5) + pushint 5 + assert + + // tests/contracts/cblocks.algo.ts:13 + // assert(6) + pushint 6 + assert + + // tests/contracts/cblocks.algo.ts:14 + // assert(7) + pushint 7 + assert + + // tests/contracts/cblocks.algo.ts:15 + // assert(8) + pushint 8 + assert + + // tests/contracts/cblocks.algo.ts:16 + // assert(9) + pushint 9 + assert + + // tests/contracts/cblocks.algo.ts:17 + // assert(10) + pushint 10 + assert + + // tests/contracts/cblocks.algo.ts:18 + // assert(11) + pushint 11 + assert + + // tests/contracts/cblocks.algo.ts:19 + // assert(12) + pushint 12 + assert + + // tests/contracts/cblocks.algo.ts:20 + // assert(13) + pushint 13 + assert + + // tests/contracts/cblocks.algo.ts:21 + // assert(14) + pushint 14 + assert + + // tests/contracts/cblocks.algo.ts:22 + // assert(15) + pushint 15 + assert + + // tests/contracts/cblocks.algo.ts:23 + // assert(16) + pushint 16 + assert + + // tests/contracts/cblocks.algo.ts:24 + // assert(17) + pushint 17 + assert + + // tests/contracts/cblocks.algo.ts:25 + // assert(18) + pushint 18 + assert + + // tests/contracts/cblocks.algo.ts:26 + // assert(19) + pushint 19 + assert + + // tests/contracts/cblocks.algo.ts:27 + // assert(20) + pushint 20 + assert + + // tests/contracts/cblocks.algo.ts:28 + // assert(21) + pushint 21 + assert + + // tests/contracts/cblocks.algo.ts:29 + // assert(22) + pushint 22 + assert + + // tests/contracts/cblocks.algo.ts:30 + // assert(23) + pushint 23 + assert + + // tests/contracts/cblocks.algo.ts:31 + // assert(24) + pushint 24 + assert + + // tests/contracts/cblocks.algo.ts:32 + // assert(25) + pushint 25 + assert + + // tests/contracts/cblocks.algo.ts:33 + // assert(26) + pushint 26 + assert + + // tests/contracts/cblocks.algo.ts:34 + // assert(27) + pushint 27 + assert + + // tests/contracts/cblocks.algo.ts:35 + // assert(28) + pushint 28 + assert + + // tests/contracts/cblocks.algo.ts:36 + // assert(29) + pushint 29 + assert + + // tests/contracts/cblocks.algo.ts:37 + // assert(30) + pushint 30 + assert + + // tests/contracts/cblocks.algo.ts:38 + // assert(31) + pushint 31 + assert + + // tests/contracts/cblocks.algo.ts:39 + // assert(32) + pushint 32 + assert + + // tests/contracts/cblocks.algo.ts:40 + // assert(33) + pushint 33 + assert + + // tests/contracts/cblocks.algo.ts:41 + // assert(34) + pushint 34 + assert + + // tests/contracts/cblocks.algo.ts:42 + // assert(35) + pushint 35 + assert + + // tests/contracts/cblocks.algo.ts:43 + // assert(36) + pushint 36 + assert + + // tests/contracts/cblocks.algo.ts:44 + // assert(37) + pushint 37 + assert + + // tests/contracts/cblocks.algo.ts:45 + // assert(38) + pushint 38 + assert + + // tests/contracts/cblocks.algo.ts:46 + // assert(39) + pushint 39 + assert + + // tests/contracts/cblocks.algo.ts:47 + // assert(40) + pushint 40 + assert + + // tests/contracts/cblocks.algo.ts:48 + // assert(41) + pushint 41 + assert + + // tests/contracts/cblocks.algo.ts:49 + // assert(42) + pushint 42 + assert + + // tests/contracts/cblocks.algo.ts:50 + // assert(43) + pushint 43 + assert + + // tests/contracts/cblocks.algo.ts:51 + // assert(44) + pushint 44 + assert + + // tests/contracts/cblocks.algo.ts:52 + // assert(45) + pushint 45 + assert + + // tests/contracts/cblocks.algo.ts:53 + // assert(46) + pushint 46 + assert + + // tests/contracts/cblocks.algo.ts:54 + // assert(47) + pushint 47 + assert + + // tests/contracts/cblocks.algo.ts:55 + // assert(48) + pushint 48 + assert + + // tests/contracts/cblocks.algo.ts:56 + // assert(49) + pushint 49 + assert + + // tests/contracts/cblocks.algo.ts:57 + // assert(50) + pushint 50 + assert + + // tests/contracts/cblocks.algo.ts:58 + // assert(51) + pushint 51 + assert + + // tests/contracts/cblocks.algo.ts:59 + // assert(52) + pushint 52 + assert + + // tests/contracts/cblocks.algo.ts:60 + // assert(53) + pushint 53 + assert + + // tests/contracts/cblocks.algo.ts:61 + // assert(54) + pushint 54 + assert + + // tests/contracts/cblocks.algo.ts:62 + // assert(55) + pushint 55 + assert + + // tests/contracts/cblocks.algo.ts:63 + // assert(56) + pushint 56 + assert + + // tests/contracts/cblocks.algo.ts:64 + // assert(57) + pushint 57 + assert + + // tests/contracts/cblocks.algo.ts:65 + // assert(58) + pushint 58 + assert + + // tests/contracts/cblocks.algo.ts:66 + // assert(59) + pushint 59 + assert + + // tests/contracts/cblocks.algo.ts:67 + // assert(60) + pushint 60 + assert + + // tests/contracts/cblocks.algo.ts:68 + // assert(61) + pushint 61 + assert + + // tests/contracts/cblocks.algo.ts:69 + // assert(62) + pushint 62 + assert + + // tests/contracts/cblocks.algo.ts:70 + // assert(63) + pushint 63 + assert + + // tests/contracts/cblocks.algo.ts:71 + // assert(64) + pushint 64 + assert + + // tests/contracts/cblocks.algo.ts:72 + // assert(65) + pushint 65 + assert + + // tests/contracts/cblocks.algo.ts:73 + // assert(66) + pushint 66 + assert + + // tests/contracts/cblocks.algo.ts:74 + // assert(67) + pushint 67 + assert + + // tests/contracts/cblocks.algo.ts:75 + // assert(68) + pushint 68 + assert + + // tests/contracts/cblocks.algo.ts:76 + // assert(69) + pushint 69 + assert + + // tests/contracts/cblocks.algo.ts:77 + // assert(70) + pushint 70 + assert + + // tests/contracts/cblocks.algo.ts:78 + // assert(71) + pushint 71 + assert + + // tests/contracts/cblocks.algo.ts:79 + // assert(72) + pushint 72 + assert + + // tests/contracts/cblocks.algo.ts:80 + // assert(73) + pushint 73 + assert + + // tests/contracts/cblocks.algo.ts:81 + // assert(74) + pushint 74 + assert + + // tests/contracts/cblocks.algo.ts:82 + // assert(75) + pushint 75 + assert + + // tests/contracts/cblocks.algo.ts:83 + // assert(76) + pushint 76 + assert + + // tests/contracts/cblocks.algo.ts:84 + // assert(77) + pushint 77 + assert + + // tests/contracts/cblocks.algo.ts:85 + // assert(78) + pushint 78 + assert + + // tests/contracts/cblocks.algo.ts:86 + // assert(79) + pushint 79 + assert + + // tests/contracts/cblocks.algo.ts:87 + // assert(80) + pushint 80 + assert + + // tests/contracts/cblocks.algo.ts:88 + // assert(81) + pushint 81 + assert + + // tests/contracts/cblocks.algo.ts:89 + // assert(82) + pushint 82 + assert + + // tests/contracts/cblocks.algo.ts:90 + // assert(83) + pushint 83 + assert + + // tests/contracts/cblocks.algo.ts:91 + // assert(84) + pushint 84 + assert + + // tests/contracts/cblocks.algo.ts:92 + // assert(85) + pushint 85 + assert + + // tests/contracts/cblocks.algo.ts:93 + // assert(86) + pushint 86 + assert + + // tests/contracts/cblocks.algo.ts:94 + // assert(87) + pushint 87 + assert + + // tests/contracts/cblocks.algo.ts:95 + // assert(88) + pushint 88 + assert + + // tests/contracts/cblocks.algo.ts:96 + // assert(89) + pushint 89 + assert + + // tests/contracts/cblocks.algo.ts:97 + // assert(90) + pushint 90 + assert + + // tests/contracts/cblocks.algo.ts:98 + // assert(91) + pushint 91 + assert + + // tests/contracts/cblocks.algo.ts:99 + // assert(92) + pushint 92 + assert + + // tests/contracts/cblocks.algo.ts:100 + // assert(93) + pushint 93 + assert + + // tests/contracts/cblocks.algo.ts:101 + // assert(94) + pushint 94 + assert + + // tests/contracts/cblocks.algo.ts:102 + // assert(95) + pushint 95 + assert + + // tests/contracts/cblocks.algo.ts:103 + // assert(96) + pushint 96 + assert + + // tests/contracts/cblocks.algo.ts:104 + // assert(97) + pushint 97 + assert + + // tests/contracts/cblocks.algo.ts:105 + // assert(98) + pushint 98 + assert + + // tests/contracts/cblocks.algo.ts:106 + // assert(99) + pushint 99 + assert + + // tests/contracts/cblocks.algo.ts:107 + // assert(100) + pushint 100 + assert + + // tests/contracts/cblocks.algo.ts:108 + // assert(101) + pushint 101 + assert + + // tests/contracts/cblocks.algo.ts:109 + // assert(102) + pushint 102 + assert + + // tests/contracts/cblocks.algo.ts:110 + // assert(103) + pushint 103 + assert + + // tests/contracts/cblocks.algo.ts:111 + // assert(104) + pushint 104 + assert + + // tests/contracts/cblocks.algo.ts:112 + // assert(105) + pushint 105 + assert + + // tests/contracts/cblocks.algo.ts:113 + // assert(106) + pushint 106 + assert + + // tests/contracts/cblocks.algo.ts:114 + // assert(107) + pushint 107 + assert + + // tests/contracts/cblocks.algo.ts:115 + // assert(108) + pushint 108 + assert + + // tests/contracts/cblocks.algo.ts:116 + // assert(109) + pushint 109 + assert + + // tests/contracts/cblocks.algo.ts:117 + // assert(110) + pushint 110 + assert + + // tests/contracts/cblocks.algo.ts:118 + // assert(111) + pushint 111 + assert + + // tests/contracts/cblocks.algo.ts:119 + // assert(112) + pushint 112 + assert + + // tests/contracts/cblocks.algo.ts:120 + // assert(113) + pushint 113 + assert + + // tests/contracts/cblocks.algo.ts:121 + // assert(114) + pushint 114 + assert + + // tests/contracts/cblocks.algo.ts:122 + // assert(115) + pushint 115 + assert + + // tests/contracts/cblocks.algo.ts:123 + // assert(116) + pushint 116 + assert + + // tests/contracts/cblocks.algo.ts:124 + // assert(117) + pushint 117 + assert + + // tests/contracts/cblocks.algo.ts:125 + // assert(118) + pushint 118 + assert + + // tests/contracts/cblocks.algo.ts:126 + // assert(119) + pushint 119 + assert + + // tests/contracts/cblocks.algo.ts:127 + // assert(120) + pushint 120 + assert + + // tests/contracts/cblocks.algo.ts:128 + // assert(121) + pushint 121 + assert + + // tests/contracts/cblocks.algo.ts:129 + // assert(122) + pushint 122 + assert + + // tests/contracts/cblocks.algo.ts:130 + // assert(123) + pushint 123 + assert + + // tests/contracts/cblocks.algo.ts:131 + // assert(124) + pushint 124 + assert + + // tests/contracts/cblocks.algo.ts:132 + // assert(125) + pushint 125 + assert + + // tests/contracts/cblocks.algo.ts:133 + // assert(126) + pushint 126 + assert + + // tests/contracts/cblocks.algo.ts:134 + // assert(127) + pushint 127 + assert + + // tests/contracts/cblocks.algo.ts:135 + // assert(128) + pushint 128 + assert + + // tests/contracts/cblocks.algo.ts:136 + // assert(129) + pushint 129 + assert + + // tests/contracts/cblocks.algo.ts:137 + // assert(130) + pushint 130 + assert + + // tests/contracts/cblocks.algo.ts:138 + // assert(131) + pushint 131 + assert + + // tests/contracts/cblocks.algo.ts:139 + // assert(132) + pushint 132 + assert + + // tests/contracts/cblocks.algo.ts:140 + // assert(133) + pushint 133 + assert + + // tests/contracts/cblocks.algo.ts:141 + // assert(134) + pushint 134 + assert + + // tests/contracts/cblocks.algo.ts:142 + // assert(135) + pushint 135 + assert + + // tests/contracts/cblocks.algo.ts:143 + // assert(136) + pushint 136 + assert + + // tests/contracts/cblocks.algo.ts:144 + // assert(137) + pushint 137 + assert + + // tests/contracts/cblocks.algo.ts:145 + // assert(138) + pushint 138 + assert + + // tests/contracts/cblocks.algo.ts:146 + // assert(139) + pushint 139 + assert + + // tests/contracts/cblocks.algo.ts:147 + // assert(140) + pushint 140 + assert + + // tests/contracts/cblocks.algo.ts:148 + // assert(141) + pushint 141 + assert + + // tests/contracts/cblocks.algo.ts:149 + // assert(142) + pushint 142 + assert + + // tests/contracts/cblocks.algo.ts:150 + // assert(143) + pushint 143 + assert + + // tests/contracts/cblocks.algo.ts:151 + // assert(144) + pushint 144 + assert + + // tests/contracts/cblocks.algo.ts:152 + // assert(145) + pushint 145 + assert + + // tests/contracts/cblocks.algo.ts:153 + // assert(146) + pushint 146 + assert + + // tests/contracts/cblocks.algo.ts:154 + // assert(147) + pushint 147 + assert + + // tests/contracts/cblocks.algo.ts:155 + // assert(148) + pushint 148 + assert + + // tests/contracts/cblocks.algo.ts:156 + // assert(149) + pushint 149 + assert + + // tests/contracts/cblocks.algo.ts:157 + // assert(150) + pushint 150 + assert + + // tests/contracts/cblocks.algo.ts:158 + // assert(151) + pushint 151 + assert + + // tests/contracts/cblocks.algo.ts:159 + // assert(152) + pushint 152 + assert + + // tests/contracts/cblocks.algo.ts:160 + // assert(153) + pushint 153 + assert + + // tests/contracts/cblocks.algo.ts:161 + // assert(154) + pushint 154 + assert + + // tests/contracts/cblocks.algo.ts:162 + // assert(155) + pushint 155 + assert + + // tests/contracts/cblocks.algo.ts:163 + // assert(156) + pushint 156 + assert + + // tests/contracts/cblocks.algo.ts:164 + // assert(157) + pushint 157 + assert + + // tests/contracts/cblocks.algo.ts:165 + // assert(158) + pushint 158 + assert + + // tests/contracts/cblocks.algo.ts:166 + // assert(159) + pushint 159 + assert + + // tests/contracts/cblocks.algo.ts:167 + // assert(160) + pushint 160 + assert + + // tests/contracts/cblocks.algo.ts:168 + // assert(161) + pushint 161 + assert + + // tests/contracts/cblocks.algo.ts:169 + // assert(162) + pushint 162 + assert + + // tests/contracts/cblocks.algo.ts:170 + // assert(163) + pushint 163 + assert + + // tests/contracts/cblocks.algo.ts:171 + // assert(164) + pushint 164 + assert + + // tests/contracts/cblocks.algo.ts:172 + // assert(165) + pushint 165 + assert + + // tests/contracts/cblocks.algo.ts:173 + // assert(166) + pushint 166 + assert + + // tests/contracts/cblocks.algo.ts:174 + // assert(167) + pushint 167 + assert + + // tests/contracts/cblocks.algo.ts:175 + // assert(168) + pushint 168 + assert + + // tests/contracts/cblocks.algo.ts:176 + // assert(169) + pushint 169 + assert + + // tests/contracts/cblocks.algo.ts:177 + // assert(170) + pushint 170 + assert + + // tests/contracts/cblocks.algo.ts:178 + // assert(171) + pushint 171 + assert + + // tests/contracts/cblocks.algo.ts:179 + // assert(172) + pushint 172 + assert + + // tests/contracts/cblocks.algo.ts:180 + // assert(173) + pushint 173 + assert + + // tests/contracts/cblocks.algo.ts:181 + // assert(174) + pushint 174 + assert + + // tests/contracts/cblocks.algo.ts:182 + // assert(175) + pushint 175 + assert + + // tests/contracts/cblocks.algo.ts:183 + // assert(176) + pushint 176 + assert + + // tests/contracts/cblocks.algo.ts:184 + // assert(177) + pushint 177 + assert + + // tests/contracts/cblocks.algo.ts:185 + // assert(178) + pushint 178 + assert + + // tests/contracts/cblocks.algo.ts:186 + // assert(179) + pushint 179 + assert + + // tests/contracts/cblocks.algo.ts:187 + // assert(180) + pushint 180 + assert + + // tests/contracts/cblocks.algo.ts:188 + // assert(181) + pushint 181 + assert + + // tests/contracts/cblocks.algo.ts:189 + // assert(182) + pushint 182 + assert + + // tests/contracts/cblocks.algo.ts:190 + // assert(183) + pushint 183 + assert + + // tests/contracts/cblocks.algo.ts:191 + // assert(184) + pushint 184 + assert + + // tests/contracts/cblocks.algo.ts:192 + // assert(185) + pushint 185 + assert + + // tests/contracts/cblocks.algo.ts:193 + // assert(186) + pushint 186 + assert + + // tests/contracts/cblocks.algo.ts:194 + // assert(187) + pushint 187 + assert + + // tests/contracts/cblocks.algo.ts:195 + // assert(188) + pushint 188 + assert + + // tests/contracts/cblocks.algo.ts:196 + // assert(189) + pushint 189 + assert + + // tests/contracts/cblocks.algo.ts:197 + // assert(190) + pushint 190 + assert + + // tests/contracts/cblocks.algo.ts:198 + // assert(191) + pushint 191 + assert + + // tests/contracts/cblocks.algo.ts:199 + // assert(192) + pushint 192 + assert + + // tests/contracts/cblocks.algo.ts:200 + // assert(193) + pushint 193 + assert + + // tests/contracts/cblocks.algo.ts:201 + // assert(194) + pushint 194 + assert + + // tests/contracts/cblocks.algo.ts:202 + // assert(195) + pushint 195 + assert + + // tests/contracts/cblocks.algo.ts:203 + // assert(196) + pushint 196 + assert + + // tests/contracts/cblocks.algo.ts:204 + // assert(197) + pushint 197 + assert + + // tests/contracts/cblocks.algo.ts:205 + // assert(198) + pushint 198 + assert + + // tests/contracts/cblocks.algo.ts:206 + // assert(199) + pushint 199 + assert + + // tests/contracts/cblocks.algo.ts:207 + // assert(200) + pushint 200 + assert + + // tests/contracts/cblocks.algo.ts:208 + // assert(201) + pushint 201 + assert + + // tests/contracts/cblocks.algo.ts:209 + // assert(202) + pushint 202 + assert + + // tests/contracts/cblocks.algo.ts:210 + // assert(203) + pushint 203 + assert + + // tests/contracts/cblocks.algo.ts:211 + // assert(204) + pushint 204 + assert + + // tests/contracts/cblocks.algo.ts:212 + // assert(205) + pushint 205 + assert + + // tests/contracts/cblocks.algo.ts:213 + // assert(206) + pushint 206 + assert + + // tests/contracts/cblocks.algo.ts:214 + // assert(207) + pushint 207 + assert + + // tests/contracts/cblocks.algo.ts:215 + // assert(208) + pushint 208 + assert + + // tests/contracts/cblocks.algo.ts:216 + // assert(209) + pushint 209 + assert + + // tests/contracts/cblocks.algo.ts:217 + // assert(210) + pushint 210 + assert + + // tests/contracts/cblocks.algo.ts:218 + // assert(211) + pushint 211 + assert + + // tests/contracts/cblocks.algo.ts:219 + // assert(212) + pushint 212 + assert + + // tests/contracts/cblocks.algo.ts:220 + // assert(213) + pushint 213 + assert + + // tests/contracts/cblocks.algo.ts:221 + // assert(214) + pushint 214 + assert + + // tests/contracts/cblocks.algo.ts:222 + // assert(215) + pushint 215 + assert + + // tests/contracts/cblocks.algo.ts:223 + // assert(216) + pushint 216 + assert + + // tests/contracts/cblocks.algo.ts:224 + // assert(217) + pushint 217 + assert + + // tests/contracts/cblocks.algo.ts:225 + // assert(218) + pushint 218 + assert + + // tests/contracts/cblocks.algo.ts:226 + // assert(219) + pushint 219 + assert + + // tests/contracts/cblocks.algo.ts:227 + // assert(220) + pushint 220 + assert + + // tests/contracts/cblocks.algo.ts:228 + // assert(221) + pushint 221 + assert + + // tests/contracts/cblocks.algo.ts:229 + // assert(222) + pushint 222 + assert + + // tests/contracts/cblocks.algo.ts:230 + // assert(223) + pushint 223 + assert + + // tests/contracts/cblocks.algo.ts:231 + // assert(224) + pushint 224 + assert + + // tests/contracts/cblocks.algo.ts:232 + // assert(225) + pushint 225 + assert + + // tests/contracts/cblocks.algo.ts:233 + // assert(226) + pushint 226 + assert + + // tests/contracts/cblocks.algo.ts:234 + // assert(227) + pushint 227 + assert + + // tests/contracts/cblocks.algo.ts:235 + // assert(228) + pushint 228 + assert + + // tests/contracts/cblocks.algo.ts:236 + // assert(229) + pushint 229 + assert + + // tests/contracts/cblocks.algo.ts:237 + // assert(230) + pushint 230 + assert + + // tests/contracts/cblocks.algo.ts:238 + // assert(231) + pushint 231 + assert + + // tests/contracts/cblocks.algo.ts:239 + // assert(232) + pushint 232 + assert + + // tests/contracts/cblocks.algo.ts:240 + // assert(233) + pushint 233 + assert + + // tests/contracts/cblocks.algo.ts:241 + // assert(234) + pushint 234 + assert + + // tests/contracts/cblocks.algo.ts:242 + // assert(235) + pushint 235 + assert + + // tests/contracts/cblocks.algo.ts:243 + // assert(236) + pushint 236 + assert + + // tests/contracts/cblocks.algo.ts:244 + // assert(237) + pushint 237 + assert + + // tests/contracts/cblocks.algo.ts:245 + // assert(238) + pushint 238 + assert + + // tests/contracts/cblocks.algo.ts:246 + // assert(239) + pushint 239 + assert + + // tests/contracts/cblocks.algo.ts:247 + // assert(240) + pushint 240 + assert + + // tests/contracts/cblocks.algo.ts:248 + // assert(241) + pushint 241 + assert + + // tests/contracts/cblocks.algo.ts:249 + // assert(242) + pushint 242 + assert + + // tests/contracts/cblocks.algo.ts:250 + // assert(243) + pushint 243 + assert + + // tests/contracts/cblocks.algo.ts:251 + // assert(244) + pushint 244 + assert + + // tests/contracts/cblocks.algo.ts:252 + // assert(245) + pushint 245 + assert + + // tests/contracts/cblocks.algo.ts:253 + // assert(246) + pushint 246 + assert + + // tests/contracts/cblocks.algo.ts:254 + // assert(247) + pushint 247 + assert + + // tests/contracts/cblocks.algo.ts:255 + // assert(248) + pushint 248 + assert + + // tests/contracts/cblocks.algo.ts:256 + // assert(249) + pushint 249 + assert + + // tests/contracts/cblocks.algo.ts:257 + // assert(250) + pushint 250 + assert + + // tests/contracts/cblocks.algo.ts:258 + // assert(251) + pushint 251 + assert + + // tests/contracts/cblocks.algo.ts:259 + // assert(252) + pushint 252 + assert + + // tests/contracts/cblocks.algo.ts:260 + // assert(253) + pushint 253 + assert + + // tests/contracts/cblocks.algo.ts:261 + // assert(254) + pushint 254 + assert + + // tests/contracts/cblocks.algo.ts:262 + // assert(255) + pushint 255 + assert + + // tests/contracts/cblocks.algo.ts:263 + // assert(256) + pushint 256 + assert + + // tests/contracts/cblocks.algo.ts:266 + // return a + b; + pushint 258 + retsub + +*abi_route_createApplication: + pushint 1 + return + +*create_NoOp: + pushbytes 0xb8447b36 // method "createApplication()void" + txna ApplicationArgs 0 + match *abi_route_createApplication + + // this contract does not implement the given ABI method for create NoOp + err + +*call_NoOp: + pushbytes 0xd14e61db // method "largeIntcblock()uint64" + txna ApplicationArgs 0 + match *abi_route_largeIntcblock + + // this contract does not implement the given ABI method for call NoOp + err \ No newline at end of file diff --git a/tests/contracts/artifacts/IntcblockTest.arc32.json b/tests/contracts/artifacts/IntcblockTest.arc32.json new file mode 100644 index 000000000..50825eb45 --- /dev/null +++ b/tests/contracts/artifacts/IntcblockTest.arc32.json @@ -0,0 +1,70 @@ +{ + "hints": { + "largeIntcblock()uint64": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": { + "intValue": { + "type": "uint64", + "key": "intValue" + } + }, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 0, + "num_uints": 1 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbGFyZ2VJbnRjYmxvY2soKXVpbnQ2NAoqYWJpX3JvdXRlX2xhcmdlSW50Y2Jsb2NrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VJbnRjYmxvY2soKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZUludGNibG9jawoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBsYXJnZUludGNibG9jaygpOiB1aW50NjQKbGFyZ2VJbnRjYmxvY2s6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjkKCS8vIGFzc2VydCgyKQoJcHVzaGludCAyCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwCgkvLyBhc3NlcnQoMykKCXB1c2hpbnQgMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMQoJLy8gYXNzZXJ0KDQpCglwdXNoaW50IDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIKCS8vIGFzc2VydCg1KQoJcHVzaGludCA1Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEzCgkvLyBhc3NlcnQoNikKCXB1c2hpbnQgNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxNAoJLy8gYXNzZXJ0KDcpCglwdXNoaW50IDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUKCS8vIGFzc2VydCg4KQoJcHVzaGludCA4Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjE2CgkvLyBhc3NlcnQoOSkKCXB1c2hpbnQgOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxNwoJLy8gYXNzZXJ0KDEwKQoJcHVzaGludCAxMAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxOAoJLy8gYXNzZXJ0KDExKQoJcHVzaGludCAxMQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxOQoJLy8gYXNzZXJ0KDEyKQoJcHVzaGludCAxMgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMAoJLy8gYXNzZXJ0KDEzKQoJcHVzaGludCAxMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMQoJLy8gYXNzZXJ0KDE0KQoJcHVzaGludCAxNAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMgoJLy8gYXNzZXJ0KDE1KQoJcHVzaGludCAxNQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMwoJLy8gYXNzZXJ0KDE2KQoJcHVzaGludCAxNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNAoJLy8gYXNzZXJ0KDE3KQoJcHVzaGludCAxNwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNQoJLy8gYXNzZXJ0KDE4KQoJcHVzaGludCAxOAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNgoJLy8gYXNzZXJ0KDE5KQoJcHVzaGludCAxOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNwoJLy8gYXNzZXJ0KDIwKQoJcHVzaGludCAyMAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOAoJLy8gYXNzZXJ0KDIxKQoJcHVzaGludCAyMQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOQoJLy8gYXNzZXJ0KDIyKQoJcHVzaGludCAyMgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMAoJLy8gYXNzZXJ0KDIzKQoJcHVzaGludCAyMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMQoJLy8gYXNzZXJ0KDI0KQoJcHVzaGludCAyNAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMgoJLy8gYXNzZXJ0KDI1KQoJcHVzaGludCAyNQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMwoJLy8gYXNzZXJ0KDI2KQoJcHVzaGludCAyNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNAoJLy8gYXNzZXJ0KDI3KQoJcHVzaGludCAyNwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNQoJLy8gYXNzZXJ0KDI4KQoJcHVzaGludCAyOAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNgoJLy8gYXNzZXJ0KDI5KQoJcHVzaGludCAyOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNwoJLy8gYXNzZXJ0KDMwKQoJcHVzaGludCAzMAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOAoJLy8gYXNzZXJ0KDMxKQoJcHVzaGludCAzMQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOQoJLy8gYXNzZXJ0KDMyKQoJcHVzaGludCAzMgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MAoJLy8gYXNzZXJ0KDMzKQoJcHVzaGludCAzMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MQoJLy8gYXNzZXJ0KDM0KQoJcHVzaGludCAzNAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MgoJLy8gYXNzZXJ0KDM1KQoJcHVzaGludCAzNQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MwoJLy8gYXNzZXJ0KDM2KQoJcHVzaGludCAzNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NAoJLy8gYXNzZXJ0KDM3KQoJcHVzaGludCAzNwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NQoJLy8gYXNzZXJ0KDM4KQoJcHVzaGludCAzOAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NgoJLy8gYXNzZXJ0KDM5KQoJcHVzaGludCAzOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NwoJLy8gYXNzZXJ0KDQwKQoJcHVzaGludCA0MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OAoJLy8gYXNzZXJ0KDQxKQoJcHVzaGludCA0MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OQoJLy8gYXNzZXJ0KDQyKQoJcHVzaGludCA0MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MAoJLy8gYXNzZXJ0KDQzKQoJcHVzaGludCA0MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MQoJLy8gYXNzZXJ0KDQ0KQoJcHVzaGludCA0NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MgoJLy8gYXNzZXJ0KDQ1KQoJcHVzaGludCA0NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MwoJLy8gYXNzZXJ0KDQ2KQoJcHVzaGludCA0NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NAoJLy8gYXNzZXJ0KDQ3KQoJcHVzaGludCA0NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NQoJLy8gYXNzZXJ0KDQ4KQoJcHVzaGludCA0OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NgoJLy8gYXNzZXJ0KDQ5KQoJcHVzaGludCA0OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NwoJLy8gYXNzZXJ0KDUwKQoJcHVzaGludCA1MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1OAoJLy8gYXNzZXJ0KDUxKQoJcHVzaGludCA1MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1OQoJLy8gYXNzZXJ0KDUyKQoJcHVzaGludCA1MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MAoJLy8gYXNzZXJ0KDUzKQoJcHVzaGludCA1MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MQoJLy8gYXNzZXJ0KDU0KQoJcHVzaGludCA1NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MgoJLy8gYXNzZXJ0KDU1KQoJcHVzaGludCA1NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MwoJLy8gYXNzZXJ0KDU2KQoJcHVzaGludCA1NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NAoJLy8gYXNzZXJ0KDU3KQoJcHVzaGludCA1NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NQoJLy8gYXNzZXJ0KDU4KQoJcHVzaGludCA1OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NgoJLy8gYXNzZXJ0KDU5KQoJcHVzaGludCA1OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NwoJLy8gYXNzZXJ0KDYwKQoJcHVzaGludCA2MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2OAoJLy8gYXNzZXJ0KDYxKQoJcHVzaGludCA2MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2OQoJLy8gYXNzZXJ0KDYyKQoJcHVzaGludCA2MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MAoJLy8gYXNzZXJ0KDYzKQoJcHVzaGludCA2MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MQoJLy8gYXNzZXJ0KDY0KQoJcHVzaGludCA2NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MgoJLy8gYXNzZXJ0KDY1KQoJcHVzaGludCA2NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MwoJLy8gYXNzZXJ0KDY2KQoJcHVzaGludCA2NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NAoJLy8gYXNzZXJ0KDY3KQoJcHVzaGludCA2NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NQoJLy8gYXNzZXJ0KDY4KQoJcHVzaGludCA2OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NgoJLy8gYXNzZXJ0KDY5KQoJcHVzaGludCA2OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NwoJLy8gYXNzZXJ0KDcwKQoJcHVzaGludCA3MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3OAoJLy8gYXNzZXJ0KDcxKQoJcHVzaGludCA3MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3OQoJLy8gYXNzZXJ0KDcyKQoJcHVzaGludCA3MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MAoJLy8gYXNzZXJ0KDczKQoJcHVzaGludCA3MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MQoJLy8gYXNzZXJ0KDc0KQoJcHVzaGludCA3NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MgoJLy8gYXNzZXJ0KDc1KQoJcHVzaGludCA3NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MwoJLy8gYXNzZXJ0KDc2KQoJcHVzaGludCA3NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NAoJLy8gYXNzZXJ0KDc3KQoJcHVzaGludCA3NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NQoJLy8gYXNzZXJ0KDc4KQoJcHVzaGludCA3OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NgoJLy8gYXNzZXJ0KDc5KQoJcHVzaGludCA3OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NwoJLy8gYXNzZXJ0KDgwKQoJcHVzaGludCA4MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4OAoJLy8gYXNzZXJ0KDgxKQoJcHVzaGludCA4MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4OQoJLy8gYXNzZXJ0KDgyKQoJcHVzaGludCA4MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MAoJLy8gYXNzZXJ0KDgzKQoJcHVzaGludCA4MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MQoJLy8gYXNzZXJ0KDg0KQoJcHVzaGludCA4NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MgoJLy8gYXNzZXJ0KDg1KQoJcHVzaGludCA4NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MwoJLy8gYXNzZXJ0KDg2KQoJcHVzaGludCA4NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NAoJLy8gYXNzZXJ0KDg3KQoJcHVzaGludCA4NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NQoJLy8gYXNzZXJ0KDg4KQoJcHVzaGludCA4OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NgoJLy8gYXNzZXJ0KDg5KQoJcHVzaGludCA4OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NwoJLy8gYXNzZXJ0KDkwKQoJcHVzaGludCA5MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5OAoJLy8gYXNzZXJ0KDkxKQoJcHVzaGludCA5MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5OQoJLy8gYXNzZXJ0KDkyKQoJcHVzaGludCA5MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDAKCS8vIGFzc2VydCg5MykKCXB1c2hpbnQgOTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTAxCgkvLyBhc3NlcnQoOTQpCglwdXNoaW50IDk0Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KDk1KQoJcHVzaGludCA5NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDMKCS8vIGFzc2VydCg5NikKCXB1c2hpbnQgOTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQoOTcpCglwdXNoaW50IDk3Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwNQoJLy8gYXNzZXJ0KDk4KQoJcHVzaGludCA5OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDYKCS8vIGFzc2VydCg5OSkKCXB1c2hpbnQgOTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA3CgkvLyBhc3NlcnQoMTAwKQoJcHVzaGludCAxMDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA4CgkvLyBhc3NlcnQoMTAxKQoJcHVzaGludCAxMDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA5CgkvLyBhc3NlcnQoMTAyKQoJcHVzaGludCAxMDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEwCgkvLyBhc3NlcnQoMTAzKQoJcHVzaGludCAxMDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTExCgkvLyBhc3NlcnQoMTA0KQoJcHVzaGludCAxMDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEyCgkvLyBhc3NlcnQoMTA1KQoJcHVzaGludCAxMDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQoMTA2KQoJcHVzaGludCAxMDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQoMTA3KQoJcHVzaGludCAxMDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE1CgkvLyBhc3NlcnQoMTA4KQoJcHVzaGludCAxMDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQoMTA5KQoJcHVzaGludCAxMDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE3CgkvLyBhc3NlcnQoMTEwKQoJcHVzaGludCAxMTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE4CgkvLyBhc3NlcnQoMTExKQoJcHVzaGludCAxMTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE5CgkvLyBhc3NlcnQoMTEyKQoJcHVzaGludCAxMTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIwCgkvLyBhc3NlcnQoMTEzKQoJcHVzaGludCAxMTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIxCgkvLyBhc3NlcnQoMTE0KQoJcHVzaGludCAxMTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIyCgkvLyBhc3NlcnQoMTE1KQoJcHVzaGludCAxMTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIzCgkvLyBhc3NlcnQoMTE2KQoJcHVzaGludCAxMTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI0CgkvLyBhc3NlcnQoMTE3KQoJcHVzaGludCAxMTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI1CgkvLyBhc3NlcnQoMTE4KQoJcHVzaGludCAxMTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI2CgkvLyBhc3NlcnQoMTE5KQoJcHVzaGludCAxMTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI3CgkvLyBhc3NlcnQoMTIwKQoJcHVzaGludCAxMjAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI4CgkvLyBhc3NlcnQoMTIxKQoJcHVzaGludCAxMjEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI5CgkvLyBhc3NlcnQoMTIyKQoJcHVzaGludCAxMjIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMwCgkvLyBhc3NlcnQoMTIzKQoJcHVzaGludCAxMjMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMxCgkvLyBhc3NlcnQoMTI0KQoJcHVzaGludCAxMjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMyCgkvLyBhc3NlcnQoMTI1KQoJcHVzaGludCAxMjUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMzCgkvLyBhc3NlcnQoMTI2KQoJcHVzaGludCAxMjYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM0CgkvLyBhc3NlcnQoMTI3KQoJcHVzaGludCAxMjcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM1CgkvLyBhc3NlcnQoMTI4KQoJcHVzaGludCAxMjgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM2CgkvLyBhc3NlcnQoMTI5KQoJcHVzaGludCAxMjkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM3CgkvLyBhc3NlcnQoMTMwKQoJcHVzaGludCAxMzAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM4CgkvLyBhc3NlcnQoMTMxKQoJcHVzaGludCAxMzEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM5CgkvLyBhc3NlcnQoMTMyKQoJcHVzaGludCAxMzIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQwCgkvLyBhc3NlcnQoMTMzKQoJcHVzaGludCAxMzMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQxCgkvLyBhc3NlcnQoMTM0KQoJcHVzaGludCAxMzQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQyCgkvLyBhc3NlcnQoMTM1KQoJcHVzaGludCAxMzUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQzCgkvLyBhc3NlcnQoMTM2KQoJcHVzaGludCAxMzYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ0CgkvLyBhc3NlcnQoMTM3KQoJcHVzaGludCAxMzcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ1CgkvLyBhc3NlcnQoMTM4KQoJcHVzaGludCAxMzgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoMTM5KQoJcHVzaGludCAxMzkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ3CgkvLyBhc3NlcnQoMTQwKQoJcHVzaGludCAxNDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQoMTQxKQoJcHVzaGludCAxNDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ5CgkvLyBhc3NlcnQoMTQyKQoJcHVzaGludCAxNDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUwCgkvLyBhc3NlcnQoMTQzKQoJcHVzaGludCAxNDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUxCgkvLyBhc3NlcnQoMTQ0KQoJcHVzaGludCAxNDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUyCgkvLyBhc3NlcnQoMTQ1KQoJcHVzaGludCAxNDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUzCgkvLyBhc3NlcnQoMTQ2KQoJcHVzaGludCAxNDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU0CgkvLyBhc3NlcnQoMTQ3KQoJcHVzaGludCAxNDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU1CgkvLyBhc3NlcnQoMTQ4KQoJcHVzaGludCAxNDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU2CgkvLyBhc3NlcnQoMTQ5KQoJcHVzaGludCAxNDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU3CgkvLyBhc3NlcnQoMTUwKQoJcHVzaGludCAxNTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU4CgkvLyBhc3NlcnQoMTUxKQoJcHVzaGludCAxNTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU5CgkvLyBhc3NlcnQoMTUyKQoJcHVzaGludCAxNTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYwCgkvLyBhc3NlcnQoMTUzKQoJcHVzaGludCAxNTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYxCgkvLyBhc3NlcnQoMTU0KQoJcHVzaGludCAxNTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYyCgkvLyBhc3NlcnQoMTU1KQoJcHVzaGludCAxNTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYzCgkvLyBhc3NlcnQoMTU2KQoJcHVzaGludCAxNTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY0CgkvLyBhc3NlcnQoMTU3KQoJcHVzaGludCAxNTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY1CgkvLyBhc3NlcnQoMTU4KQoJcHVzaGludCAxNTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY2CgkvLyBhc3NlcnQoMTU5KQoJcHVzaGludCAxNTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY3CgkvLyBhc3NlcnQoMTYwKQoJcHVzaGludCAxNjAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY4CgkvLyBhc3NlcnQoMTYxKQoJcHVzaGludCAxNjEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY5CgkvLyBhc3NlcnQoMTYyKQoJcHVzaGludCAxNjIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoMTYzKQoJcHVzaGludCAxNjMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcxCgkvLyBhc3NlcnQoMTY0KQoJcHVzaGludCAxNjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcyCgkvLyBhc3NlcnQoMTY1KQoJcHVzaGludCAxNjUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTczCgkvLyBhc3NlcnQoMTY2KQoJcHVzaGludCAxNjYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc0CgkvLyBhc3NlcnQoMTY3KQoJcHVzaGludCAxNjcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc1CgkvLyBhc3NlcnQoMTY4KQoJcHVzaGludCAxNjgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc2CgkvLyBhc3NlcnQoMTY5KQoJcHVzaGludCAxNjkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc3CgkvLyBhc3NlcnQoMTcwKQoJcHVzaGludCAxNzAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc4CgkvLyBhc3NlcnQoMTcxKQoJcHVzaGludCAxNzEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc5CgkvLyBhc3NlcnQoMTcyKQoJcHVzaGludCAxNzIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgwCgkvLyBhc3NlcnQoMTczKQoJcHVzaGludCAxNzMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgxCgkvLyBhc3NlcnQoMTc0KQoJcHVzaGludCAxNzQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgyCgkvLyBhc3NlcnQoMTc1KQoJcHVzaGludCAxNzUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgzCgkvLyBhc3NlcnQoMTc2KQoJcHVzaGludCAxNzYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg0CgkvLyBhc3NlcnQoMTc3KQoJcHVzaGludCAxNzcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg1CgkvLyBhc3NlcnQoMTc4KQoJcHVzaGludCAxNzgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg2CgkvLyBhc3NlcnQoMTc5KQoJcHVzaGludCAxNzkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg3CgkvLyBhc3NlcnQoMTgwKQoJcHVzaGludCAxODAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg4CgkvLyBhc3NlcnQoMTgxKQoJcHVzaGludCAxODEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg5CgkvLyBhc3NlcnQoMTgyKQoJcHVzaGludCAxODIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkwCgkvLyBhc3NlcnQoMTgzKQoJcHVzaGludCAxODMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkxCgkvLyBhc3NlcnQoMTg0KQoJcHVzaGludCAxODQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQoMTg1KQoJcHVzaGludCAxODUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkzCgkvLyBhc3NlcnQoMTg2KQoJcHVzaGludCAxODYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk0CgkvLyBhc3NlcnQoMTg3KQoJcHVzaGludCAxODcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk1CgkvLyBhc3NlcnQoMTg4KQoJcHVzaGludCAxODgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk2CgkvLyBhc3NlcnQoMTg5KQoJcHVzaGludCAxODkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk3CgkvLyBhc3NlcnQoMTkwKQoJcHVzaGludCAxOTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk4CgkvLyBhc3NlcnQoMTkxKQoJcHVzaGludCAxOTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk5CgkvLyBhc3NlcnQoMTkyKQoJcHVzaGludCAxOTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAwCgkvLyBhc3NlcnQoMTkzKQoJcHVzaGludCAxOTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAxCgkvLyBhc3NlcnQoMTk0KQoJcHVzaGludCAxOTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAyCgkvLyBhc3NlcnQoMTk1KQoJcHVzaGludCAxOTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAzCgkvLyBhc3NlcnQoMTk2KQoJcHVzaGludCAxOTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA0CgkvLyBhc3NlcnQoMTk3KQoJcHVzaGludCAxOTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA1CgkvLyBhc3NlcnQoMTk4KQoJcHVzaGludCAxOTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA2CgkvLyBhc3NlcnQoMTk5KQoJcHVzaGludCAxOTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA3CgkvLyBhc3NlcnQoMjAwKQoJcHVzaGludCAyMDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA4CgkvLyBhc3NlcnQoMjAxKQoJcHVzaGludCAyMDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA5CgkvLyBhc3NlcnQoMjAyKQoJcHVzaGludCAyMDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEwCgkvLyBhc3NlcnQoMjAzKQoJcHVzaGludCAyMDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjExCgkvLyBhc3NlcnQoMjA0KQoJcHVzaGludCAyMDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEyCgkvLyBhc3NlcnQoMjA1KQoJcHVzaGludCAyMDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEzCgkvLyBhc3NlcnQoMjA2KQoJcHVzaGludCAyMDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE0CgkvLyBhc3NlcnQoMjA3KQoJcHVzaGludCAyMDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE1CgkvLyBhc3NlcnQoMjA4KQoJcHVzaGludCAyMDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE2CgkvLyBhc3NlcnQoMjA5KQoJcHVzaGludCAyMDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE3CgkvLyBhc3NlcnQoMjEwKQoJcHVzaGludCAyMTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE4CgkvLyBhc3NlcnQoMjExKQoJcHVzaGludCAyMTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE5CgkvLyBhc3NlcnQoMjEyKQoJcHVzaGludCAyMTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIwCgkvLyBhc3NlcnQoMjEzKQoJcHVzaGludCAyMTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIxCgkvLyBhc3NlcnQoMjE0KQoJcHVzaGludCAyMTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIyCgkvLyBhc3NlcnQoMjE1KQoJcHVzaGludCAyMTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIzCgkvLyBhc3NlcnQoMjE2KQoJcHVzaGludCAyMTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI0CgkvLyBhc3NlcnQoMjE3KQoJcHVzaGludCAyMTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI1CgkvLyBhc3NlcnQoMjE4KQoJcHVzaGludCAyMTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI2CgkvLyBhc3NlcnQoMjE5KQoJcHVzaGludCAyMTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI3CgkvLyBhc3NlcnQoMjIwKQoJcHVzaGludCAyMjAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI4CgkvLyBhc3NlcnQoMjIxKQoJcHVzaGludCAyMjEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI5CgkvLyBhc3NlcnQoMjIyKQoJcHVzaGludCAyMjIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMwCgkvLyBhc3NlcnQoMjIzKQoJcHVzaGludCAyMjMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMxCgkvLyBhc3NlcnQoMjI0KQoJcHVzaGludCAyMjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMyCgkvLyBhc3NlcnQoMjI1KQoJcHVzaGludCAyMjUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMzCgkvLyBhc3NlcnQoMjI2KQoJcHVzaGludCAyMjYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM0CgkvLyBhc3NlcnQoMjI3KQoJcHVzaGludCAyMjcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM1CgkvLyBhc3NlcnQoMjI4KQoJcHVzaGludCAyMjgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM2CgkvLyBhc3NlcnQoMjI5KQoJcHVzaGludCAyMjkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM3CgkvLyBhc3NlcnQoMjMwKQoJcHVzaGludCAyMzAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM4CgkvLyBhc3NlcnQoMjMxKQoJcHVzaGludCAyMzEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM5CgkvLyBhc3NlcnQoMjMyKQoJcHVzaGludCAyMzIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQwCgkvLyBhc3NlcnQoMjMzKQoJcHVzaGludCAyMzMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQxCgkvLyBhc3NlcnQoMjM0KQoJcHVzaGludCAyMzQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQyCgkvLyBhc3NlcnQoMjM1KQoJcHVzaGludCAyMzUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQzCgkvLyBhc3NlcnQoMjM2KQoJcHVzaGludCAyMzYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ0CgkvLyBhc3NlcnQoMjM3KQoJcHVzaGludCAyMzcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ1CgkvLyBhc3NlcnQoMjM4KQoJcHVzaGludCAyMzgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ2CgkvLyBhc3NlcnQoMjM5KQoJcHVzaGludCAyMzkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ3CgkvLyBhc3NlcnQoMjQwKQoJcHVzaGludCAyNDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ4CgkvLyBhc3NlcnQoMjQxKQoJcHVzaGludCAyNDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ5CgkvLyBhc3NlcnQoMjQyKQoJcHVzaGludCAyNDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUwCgkvLyBhc3NlcnQoMjQzKQoJcHVzaGludCAyNDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUxCgkvLyBhc3NlcnQoMjQ0KQoJcHVzaGludCAyNDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUyCgkvLyBhc3NlcnQoMjQ1KQoJcHVzaGludCAyNDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUzCgkvLyBhc3NlcnQoMjQ2KQoJcHVzaGludCAyNDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU0CgkvLyBhc3NlcnQoMjQ3KQoJcHVzaGludCAyNDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU1CgkvLyBhc3NlcnQoMjQ4KQoJcHVzaGludCAyNDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU2CgkvLyBhc3NlcnQoMjQ5KQoJcHVzaGludCAyNDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU3CgkvLyBhc3NlcnQoMjUwKQoJcHVzaGludCAyNTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU4CgkvLyBhc3NlcnQoMjUxKQoJcHVzaGludCAyNTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU5CgkvLyBhc3NlcnQoMjUyKQoJcHVzaGludCAyNTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYwCgkvLyBhc3NlcnQoMjUzKQoJcHVzaGludCAyNTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYxCgkvLyBhc3NlcnQoMjU0KQoJcHVzaGludCAyNTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYyCgkvLyBhc3NlcnQoMjU1KQoJcHVzaGludCAyNTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYzCgkvLyBhc3NlcnQoMjU2KQoJcHVzaGludCAyNTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY2CgkvLyByZXR1cm4gYSArIGI7CglwdXNoaW50IDI1OAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkMTRlNjFkYiAvLyBtZXRob2QgImxhcmdlSW50Y2Jsb2NrKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2xhcmdlSW50Y2Jsb2NrCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "IntcblockTest", + "desc": "", + "methods": [ + { + "name": "largeIntcblock", + "args": [], + "returns": { + "type": "uint64" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/IntcblockTest.arc4.json b/tests/contracts/artifacts/IntcblockTest.arc4.json new file mode 100644 index 000000000..b7e8bd5a2 --- /dev/null +++ b/tests/contracts/artifacts/IntcblockTest.arc4.json @@ -0,0 +1,20 @@ +{ + "name": "IntcblockTest", + "desc": "", + "methods": [ + { + "name": "largeIntcblock", + "args": [], + "returns": { + "type": "uint64" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] +} \ No newline at end of file diff --git a/tests/contracts/artifacts/IntcblockTest.arc56_draft.json b/tests/contracts/artifacts/IntcblockTest.arc56_draft.json new file mode 100644 index 000000000..e30767278 --- /dev/null +++ b/tests/contracts/artifacts/IntcblockTest.arc56_draft.json @@ -0,0 +1,115 @@ +{ + "name": "IntcblockTest", + "desc": "", + "methods": [ + { + "name": "largeIntcblock", + "args": [], + "returns": { + "type": "uint64" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "arcs": [ + 4, + 56 + ], + "structs": {}, + "state": { + "schema": { + "global": { + "bytes": 0, + "ints": 1 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": { + "intValue": { + "key": "aW50VmFsdWU=", + "keyType": "AVMBytes", + "valueType": "uint64" + } + }, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": {}, + "box": {} + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 969 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 983 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gbGFyZ2VJbnRjYmxvY2soKXVpbnQ2NAoqYWJpX3JvdXRlX2xhcmdlSW50Y2Jsb2NrOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglwdXNoYnl0ZXMgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbGFyZ2VJbnRjYmxvY2soKXVpbnQ2NAoJY2FsbHN1YiBsYXJnZUludGNibG9jawoJaXRvYgoJY29uY2F0Cglsb2cKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBsYXJnZUludGNibG9jaygpOiB1aW50NjQKbGFyZ2VJbnRjYmxvY2s6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjkKCS8vIGFzc2VydCgyKQoJcHVzaGludCAyCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwCgkvLyBhc3NlcnQoMykKCXB1c2hpbnQgMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMQoJLy8gYXNzZXJ0KDQpCglwdXNoaW50IDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIKCS8vIGFzc2VydCg1KQoJcHVzaGludCA1Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEzCgkvLyBhc3NlcnQoNikKCXB1c2hpbnQgNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxNAoJLy8gYXNzZXJ0KDcpCglwdXNoaW50IDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUKCS8vIGFzc2VydCg4KQoJcHVzaGludCA4Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjE2CgkvLyBhc3NlcnQoOSkKCXB1c2hpbnQgOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxNwoJLy8gYXNzZXJ0KDEwKQoJcHVzaGludCAxMAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxOAoJLy8gYXNzZXJ0KDExKQoJcHVzaGludCAxMQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxOQoJLy8gYXNzZXJ0KDEyKQoJcHVzaGludCAxMgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMAoJLy8gYXNzZXJ0KDEzKQoJcHVzaGludCAxMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMQoJLy8gYXNzZXJ0KDE0KQoJcHVzaGludCAxNAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMgoJLy8gYXNzZXJ0KDE1KQoJcHVzaGludCAxNQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyMwoJLy8gYXNzZXJ0KDE2KQoJcHVzaGludCAxNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNAoJLy8gYXNzZXJ0KDE3KQoJcHVzaGludCAxNwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNQoJLy8gYXNzZXJ0KDE4KQoJcHVzaGludCAxOAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNgoJLy8gYXNzZXJ0KDE5KQoJcHVzaGludCAxOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyNwoJLy8gYXNzZXJ0KDIwKQoJcHVzaGludCAyMAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOAoJLy8gYXNzZXJ0KDIxKQoJcHVzaGludCAyMQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoyOQoJLy8gYXNzZXJ0KDIyKQoJcHVzaGludCAyMgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMAoJLy8gYXNzZXJ0KDIzKQoJcHVzaGludCAyMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMQoJLy8gYXNzZXJ0KDI0KQoJcHVzaGludCAyNAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMgoJLy8gYXNzZXJ0KDI1KQoJcHVzaGludCAyNQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozMwoJLy8gYXNzZXJ0KDI2KQoJcHVzaGludCAyNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNAoJLy8gYXNzZXJ0KDI3KQoJcHVzaGludCAyNwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNQoJLy8gYXNzZXJ0KDI4KQoJcHVzaGludCAyOAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNgoJLy8gYXNzZXJ0KDI5KQoJcHVzaGludCAyOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozNwoJLy8gYXNzZXJ0KDMwKQoJcHVzaGludCAzMAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOAoJLy8gYXNzZXJ0KDMxKQoJcHVzaGludCAzMQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czozOQoJLy8gYXNzZXJ0KDMyKQoJcHVzaGludCAzMgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MAoJLy8gYXNzZXJ0KDMzKQoJcHVzaGludCAzMwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MQoJLy8gYXNzZXJ0KDM0KQoJcHVzaGludCAzNAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MgoJLy8gYXNzZXJ0KDM1KQoJcHVzaGludCAzNQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0MwoJLy8gYXNzZXJ0KDM2KQoJcHVzaGludCAzNgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NAoJLy8gYXNzZXJ0KDM3KQoJcHVzaGludCAzNwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NQoJLy8gYXNzZXJ0KDM4KQoJcHVzaGludCAzOAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NgoJLy8gYXNzZXJ0KDM5KQoJcHVzaGludCAzOQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0NwoJLy8gYXNzZXJ0KDQwKQoJcHVzaGludCA0MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OAoJLy8gYXNzZXJ0KDQxKQoJcHVzaGludCA0MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo0OQoJLy8gYXNzZXJ0KDQyKQoJcHVzaGludCA0MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MAoJLy8gYXNzZXJ0KDQzKQoJcHVzaGludCA0MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MQoJLy8gYXNzZXJ0KDQ0KQoJcHVzaGludCA0NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MgoJLy8gYXNzZXJ0KDQ1KQoJcHVzaGludCA0NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1MwoJLy8gYXNzZXJ0KDQ2KQoJcHVzaGludCA0NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NAoJLy8gYXNzZXJ0KDQ3KQoJcHVzaGludCA0NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NQoJLy8gYXNzZXJ0KDQ4KQoJcHVzaGludCA0OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NgoJLy8gYXNzZXJ0KDQ5KQoJcHVzaGludCA0OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1NwoJLy8gYXNzZXJ0KDUwKQoJcHVzaGludCA1MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1OAoJLy8gYXNzZXJ0KDUxKQoJcHVzaGludCA1MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo1OQoJLy8gYXNzZXJ0KDUyKQoJcHVzaGludCA1MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MAoJLy8gYXNzZXJ0KDUzKQoJcHVzaGludCA1MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MQoJLy8gYXNzZXJ0KDU0KQoJcHVzaGludCA1NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MgoJLy8gYXNzZXJ0KDU1KQoJcHVzaGludCA1NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2MwoJLy8gYXNzZXJ0KDU2KQoJcHVzaGludCA1NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NAoJLy8gYXNzZXJ0KDU3KQoJcHVzaGludCA1NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NQoJLy8gYXNzZXJ0KDU4KQoJcHVzaGludCA1OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NgoJLy8gYXNzZXJ0KDU5KQoJcHVzaGludCA1OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2NwoJLy8gYXNzZXJ0KDYwKQoJcHVzaGludCA2MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2OAoJLy8gYXNzZXJ0KDYxKQoJcHVzaGludCA2MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo2OQoJLy8gYXNzZXJ0KDYyKQoJcHVzaGludCA2MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MAoJLy8gYXNzZXJ0KDYzKQoJcHVzaGludCA2MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MQoJLy8gYXNzZXJ0KDY0KQoJcHVzaGludCA2NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MgoJLy8gYXNzZXJ0KDY1KQoJcHVzaGludCA2NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3MwoJLy8gYXNzZXJ0KDY2KQoJcHVzaGludCA2NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NAoJLy8gYXNzZXJ0KDY3KQoJcHVzaGludCA2NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NQoJLy8gYXNzZXJ0KDY4KQoJcHVzaGludCA2OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NgoJLy8gYXNzZXJ0KDY5KQoJcHVzaGludCA2OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3NwoJLy8gYXNzZXJ0KDcwKQoJcHVzaGludCA3MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3OAoJLy8gYXNzZXJ0KDcxKQoJcHVzaGludCA3MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo3OQoJLy8gYXNzZXJ0KDcyKQoJcHVzaGludCA3MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MAoJLy8gYXNzZXJ0KDczKQoJcHVzaGludCA3MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MQoJLy8gYXNzZXJ0KDc0KQoJcHVzaGludCA3NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MgoJLy8gYXNzZXJ0KDc1KQoJcHVzaGludCA3NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4MwoJLy8gYXNzZXJ0KDc2KQoJcHVzaGludCA3NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NAoJLy8gYXNzZXJ0KDc3KQoJcHVzaGludCA3NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NQoJLy8gYXNzZXJ0KDc4KQoJcHVzaGludCA3OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NgoJLy8gYXNzZXJ0KDc5KQoJcHVzaGludCA3OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4NwoJLy8gYXNzZXJ0KDgwKQoJcHVzaGludCA4MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4OAoJLy8gYXNzZXJ0KDgxKQoJcHVzaGludCA4MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo4OQoJLy8gYXNzZXJ0KDgyKQoJcHVzaGludCA4MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MAoJLy8gYXNzZXJ0KDgzKQoJcHVzaGludCA4MwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MQoJLy8gYXNzZXJ0KDg0KQoJcHVzaGludCA4NAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MgoJLy8gYXNzZXJ0KDg1KQoJcHVzaGludCA4NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5MwoJLy8gYXNzZXJ0KDg2KQoJcHVzaGludCA4NgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NAoJLy8gYXNzZXJ0KDg3KQoJcHVzaGludCA4NwoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NQoJLy8gYXNzZXJ0KDg4KQoJcHVzaGludCA4OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NgoJLy8gYXNzZXJ0KDg5KQoJcHVzaGludCA4OQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5NwoJLy8gYXNzZXJ0KDkwKQoJcHVzaGludCA5MAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5OAoJLy8gYXNzZXJ0KDkxKQoJcHVzaGludCA5MQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czo5OQoJLy8gYXNzZXJ0KDkyKQoJcHVzaGludCA5MgoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDAKCS8vIGFzc2VydCg5MykKCXB1c2hpbnQgOTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTAxCgkvLyBhc3NlcnQoOTQpCglwdXNoaW50IDk0Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KDk1KQoJcHVzaGludCA5NQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDMKCS8vIGFzc2VydCg5NikKCXB1c2hpbnQgOTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQoOTcpCglwdXNoaW50IDk3Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvY2Jsb2Nrcy5hbGdvLnRzOjEwNQoJLy8gYXNzZXJ0KDk4KQoJcHVzaGludCA5OAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2NibG9ja3MuYWxnby50czoxMDYKCS8vIGFzc2VydCg5OSkKCXB1c2hpbnQgOTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA3CgkvLyBhc3NlcnQoMTAwKQoJcHVzaGludCAxMDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA4CgkvLyBhc3NlcnQoMTAxKQoJcHVzaGludCAxMDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTA5CgkvLyBhc3NlcnQoMTAyKQoJcHVzaGludCAxMDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEwCgkvLyBhc3NlcnQoMTAzKQoJcHVzaGludCAxMDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTExCgkvLyBhc3NlcnQoMTA0KQoJcHVzaGludCAxMDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEyCgkvLyBhc3NlcnQoMTA1KQoJcHVzaGludCAxMDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTEzCgkvLyBhc3NlcnQoMTA2KQoJcHVzaGludCAxMDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE0CgkvLyBhc3NlcnQoMTA3KQoJcHVzaGludCAxMDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE1CgkvLyBhc3NlcnQoMTA4KQoJcHVzaGludCAxMDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQoMTA5KQoJcHVzaGludCAxMDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE3CgkvLyBhc3NlcnQoMTEwKQoJcHVzaGludCAxMTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE4CgkvLyBhc3NlcnQoMTExKQoJcHVzaGludCAxMTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTE5CgkvLyBhc3NlcnQoMTEyKQoJcHVzaGludCAxMTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIwCgkvLyBhc3NlcnQoMTEzKQoJcHVzaGludCAxMTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIxCgkvLyBhc3NlcnQoMTE0KQoJcHVzaGludCAxMTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIyCgkvLyBhc3NlcnQoMTE1KQoJcHVzaGludCAxMTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTIzCgkvLyBhc3NlcnQoMTE2KQoJcHVzaGludCAxMTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI0CgkvLyBhc3NlcnQoMTE3KQoJcHVzaGludCAxMTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI1CgkvLyBhc3NlcnQoMTE4KQoJcHVzaGludCAxMTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI2CgkvLyBhc3NlcnQoMTE5KQoJcHVzaGludCAxMTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI3CgkvLyBhc3NlcnQoMTIwKQoJcHVzaGludCAxMjAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI4CgkvLyBhc3NlcnQoMTIxKQoJcHVzaGludCAxMjEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTI5CgkvLyBhc3NlcnQoMTIyKQoJcHVzaGludCAxMjIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMwCgkvLyBhc3NlcnQoMTIzKQoJcHVzaGludCAxMjMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMxCgkvLyBhc3NlcnQoMTI0KQoJcHVzaGludCAxMjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMyCgkvLyBhc3NlcnQoMTI1KQoJcHVzaGludCAxMjUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTMzCgkvLyBhc3NlcnQoMTI2KQoJcHVzaGludCAxMjYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM0CgkvLyBhc3NlcnQoMTI3KQoJcHVzaGludCAxMjcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM1CgkvLyBhc3NlcnQoMTI4KQoJcHVzaGludCAxMjgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM2CgkvLyBhc3NlcnQoMTI5KQoJcHVzaGludCAxMjkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM3CgkvLyBhc3NlcnQoMTMwKQoJcHVzaGludCAxMzAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM4CgkvLyBhc3NlcnQoMTMxKQoJcHVzaGludCAxMzEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTM5CgkvLyBhc3NlcnQoMTMyKQoJcHVzaGludCAxMzIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQwCgkvLyBhc3NlcnQoMTMzKQoJcHVzaGludCAxMzMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQxCgkvLyBhc3NlcnQoMTM0KQoJcHVzaGludCAxMzQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQyCgkvLyBhc3NlcnQoMTM1KQoJcHVzaGludCAxMzUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQzCgkvLyBhc3NlcnQoMTM2KQoJcHVzaGludCAxMzYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ0CgkvLyBhc3NlcnQoMTM3KQoJcHVzaGludCAxMzcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ1CgkvLyBhc3NlcnQoMTM4KQoJcHVzaGludCAxMzgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoMTM5KQoJcHVzaGludCAxMzkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ3CgkvLyBhc3NlcnQoMTQwKQoJcHVzaGludCAxNDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQoMTQxKQoJcHVzaGludCAxNDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTQ5CgkvLyBhc3NlcnQoMTQyKQoJcHVzaGludCAxNDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUwCgkvLyBhc3NlcnQoMTQzKQoJcHVzaGludCAxNDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUxCgkvLyBhc3NlcnQoMTQ0KQoJcHVzaGludCAxNDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUyCgkvLyBhc3NlcnQoMTQ1KQoJcHVzaGludCAxNDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTUzCgkvLyBhc3NlcnQoMTQ2KQoJcHVzaGludCAxNDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU0CgkvLyBhc3NlcnQoMTQ3KQoJcHVzaGludCAxNDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU1CgkvLyBhc3NlcnQoMTQ4KQoJcHVzaGludCAxNDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU2CgkvLyBhc3NlcnQoMTQ5KQoJcHVzaGludCAxNDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU3CgkvLyBhc3NlcnQoMTUwKQoJcHVzaGludCAxNTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU4CgkvLyBhc3NlcnQoMTUxKQoJcHVzaGludCAxNTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTU5CgkvLyBhc3NlcnQoMTUyKQoJcHVzaGludCAxNTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYwCgkvLyBhc3NlcnQoMTUzKQoJcHVzaGludCAxNTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYxCgkvLyBhc3NlcnQoMTU0KQoJcHVzaGludCAxNTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYyCgkvLyBhc3NlcnQoMTU1KQoJcHVzaGludCAxNTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTYzCgkvLyBhc3NlcnQoMTU2KQoJcHVzaGludCAxNTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY0CgkvLyBhc3NlcnQoMTU3KQoJcHVzaGludCAxNTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY1CgkvLyBhc3NlcnQoMTU4KQoJcHVzaGludCAxNTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY2CgkvLyBhc3NlcnQoMTU5KQoJcHVzaGludCAxNTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY3CgkvLyBhc3NlcnQoMTYwKQoJcHVzaGludCAxNjAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY4CgkvLyBhc3NlcnQoMTYxKQoJcHVzaGludCAxNjEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTY5CgkvLyBhc3NlcnQoMTYyKQoJcHVzaGludCAxNjIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoMTYzKQoJcHVzaGludCAxNjMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcxCgkvLyBhc3NlcnQoMTY0KQoJcHVzaGludCAxNjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTcyCgkvLyBhc3NlcnQoMTY1KQoJcHVzaGludCAxNjUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTczCgkvLyBhc3NlcnQoMTY2KQoJcHVzaGludCAxNjYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc0CgkvLyBhc3NlcnQoMTY3KQoJcHVzaGludCAxNjcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc1CgkvLyBhc3NlcnQoMTY4KQoJcHVzaGludCAxNjgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc2CgkvLyBhc3NlcnQoMTY5KQoJcHVzaGludCAxNjkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc3CgkvLyBhc3NlcnQoMTcwKQoJcHVzaGludCAxNzAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc4CgkvLyBhc3NlcnQoMTcxKQoJcHVzaGludCAxNzEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTc5CgkvLyBhc3NlcnQoMTcyKQoJcHVzaGludCAxNzIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgwCgkvLyBhc3NlcnQoMTczKQoJcHVzaGludCAxNzMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgxCgkvLyBhc3NlcnQoMTc0KQoJcHVzaGludCAxNzQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgyCgkvLyBhc3NlcnQoMTc1KQoJcHVzaGludCAxNzUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTgzCgkvLyBhc3NlcnQoMTc2KQoJcHVzaGludCAxNzYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg0CgkvLyBhc3NlcnQoMTc3KQoJcHVzaGludCAxNzcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg1CgkvLyBhc3NlcnQoMTc4KQoJcHVzaGludCAxNzgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg2CgkvLyBhc3NlcnQoMTc5KQoJcHVzaGludCAxNzkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg3CgkvLyBhc3NlcnQoMTgwKQoJcHVzaGludCAxODAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg4CgkvLyBhc3NlcnQoMTgxKQoJcHVzaGludCAxODEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTg5CgkvLyBhc3NlcnQoMTgyKQoJcHVzaGludCAxODIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkwCgkvLyBhc3NlcnQoMTgzKQoJcHVzaGludCAxODMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkxCgkvLyBhc3NlcnQoMTg0KQoJcHVzaGludCAxODQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkyCgkvLyBhc3NlcnQoMTg1KQoJcHVzaGludCAxODUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTkzCgkvLyBhc3NlcnQoMTg2KQoJcHVzaGludCAxODYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk0CgkvLyBhc3NlcnQoMTg3KQoJcHVzaGludCAxODcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk1CgkvLyBhc3NlcnQoMTg4KQoJcHVzaGludCAxODgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk2CgkvLyBhc3NlcnQoMTg5KQoJcHVzaGludCAxODkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk3CgkvLyBhc3NlcnQoMTkwKQoJcHVzaGludCAxOTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk4CgkvLyBhc3NlcnQoMTkxKQoJcHVzaGludCAxOTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MTk5CgkvLyBhc3NlcnQoMTkyKQoJcHVzaGludCAxOTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAwCgkvLyBhc3NlcnQoMTkzKQoJcHVzaGludCAxOTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAxCgkvLyBhc3NlcnQoMTk0KQoJcHVzaGludCAxOTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAyCgkvLyBhc3NlcnQoMTk1KQoJcHVzaGludCAxOTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjAzCgkvLyBhc3NlcnQoMTk2KQoJcHVzaGludCAxOTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA0CgkvLyBhc3NlcnQoMTk3KQoJcHVzaGludCAxOTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA1CgkvLyBhc3NlcnQoMTk4KQoJcHVzaGludCAxOTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA2CgkvLyBhc3NlcnQoMTk5KQoJcHVzaGludCAxOTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA3CgkvLyBhc3NlcnQoMjAwKQoJcHVzaGludCAyMDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA4CgkvLyBhc3NlcnQoMjAxKQoJcHVzaGludCAyMDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjA5CgkvLyBhc3NlcnQoMjAyKQoJcHVzaGludCAyMDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEwCgkvLyBhc3NlcnQoMjAzKQoJcHVzaGludCAyMDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjExCgkvLyBhc3NlcnQoMjA0KQoJcHVzaGludCAyMDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEyCgkvLyBhc3NlcnQoMjA1KQoJcHVzaGludCAyMDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjEzCgkvLyBhc3NlcnQoMjA2KQoJcHVzaGludCAyMDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE0CgkvLyBhc3NlcnQoMjA3KQoJcHVzaGludCAyMDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE1CgkvLyBhc3NlcnQoMjA4KQoJcHVzaGludCAyMDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE2CgkvLyBhc3NlcnQoMjA5KQoJcHVzaGludCAyMDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE3CgkvLyBhc3NlcnQoMjEwKQoJcHVzaGludCAyMTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE4CgkvLyBhc3NlcnQoMjExKQoJcHVzaGludCAyMTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjE5CgkvLyBhc3NlcnQoMjEyKQoJcHVzaGludCAyMTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIwCgkvLyBhc3NlcnQoMjEzKQoJcHVzaGludCAyMTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIxCgkvLyBhc3NlcnQoMjE0KQoJcHVzaGludCAyMTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIyCgkvLyBhc3NlcnQoMjE1KQoJcHVzaGludCAyMTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjIzCgkvLyBhc3NlcnQoMjE2KQoJcHVzaGludCAyMTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI0CgkvLyBhc3NlcnQoMjE3KQoJcHVzaGludCAyMTcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI1CgkvLyBhc3NlcnQoMjE4KQoJcHVzaGludCAyMTgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI2CgkvLyBhc3NlcnQoMjE5KQoJcHVzaGludCAyMTkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI3CgkvLyBhc3NlcnQoMjIwKQoJcHVzaGludCAyMjAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI4CgkvLyBhc3NlcnQoMjIxKQoJcHVzaGludCAyMjEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjI5CgkvLyBhc3NlcnQoMjIyKQoJcHVzaGludCAyMjIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMwCgkvLyBhc3NlcnQoMjIzKQoJcHVzaGludCAyMjMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMxCgkvLyBhc3NlcnQoMjI0KQoJcHVzaGludCAyMjQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMyCgkvLyBhc3NlcnQoMjI1KQoJcHVzaGludCAyMjUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjMzCgkvLyBhc3NlcnQoMjI2KQoJcHVzaGludCAyMjYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM0CgkvLyBhc3NlcnQoMjI3KQoJcHVzaGludCAyMjcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM1CgkvLyBhc3NlcnQoMjI4KQoJcHVzaGludCAyMjgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM2CgkvLyBhc3NlcnQoMjI5KQoJcHVzaGludCAyMjkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM3CgkvLyBhc3NlcnQoMjMwKQoJcHVzaGludCAyMzAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM4CgkvLyBhc3NlcnQoMjMxKQoJcHVzaGludCAyMzEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjM5CgkvLyBhc3NlcnQoMjMyKQoJcHVzaGludCAyMzIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQwCgkvLyBhc3NlcnQoMjMzKQoJcHVzaGludCAyMzMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQxCgkvLyBhc3NlcnQoMjM0KQoJcHVzaGludCAyMzQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQyCgkvLyBhc3NlcnQoMjM1KQoJcHVzaGludCAyMzUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQzCgkvLyBhc3NlcnQoMjM2KQoJcHVzaGludCAyMzYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ0CgkvLyBhc3NlcnQoMjM3KQoJcHVzaGludCAyMzcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ1CgkvLyBhc3NlcnQoMjM4KQoJcHVzaGludCAyMzgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ2CgkvLyBhc3NlcnQoMjM5KQoJcHVzaGludCAyMzkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ3CgkvLyBhc3NlcnQoMjQwKQoJcHVzaGludCAyNDAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ4CgkvLyBhc3NlcnQoMjQxKQoJcHVzaGludCAyNDEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjQ5CgkvLyBhc3NlcnQoMjQyKQoJcHVzaGludCAyNDIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUwCgkvLyBhc3NlcnQoMjQzKQoJcHVzaGludCAyNDMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUxCgkvLyBhc3NlcnQoMjQ0KQoJcHVzaGludCAyNDQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUyCgkvLyBhc3NlcnQoMjQ1KQoJcHVzaGludCAyNDUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjUzCgkvLyBhc3NlcnQoMjQ2KQoJcHVzaGludCAyNDYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU0CgkvLyBhc3NlcnQoMjQ3KQoJcHVzaGludCAyNDcKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU1CgkvLyBhc3NlcnQoMjQ4KQoJcHVzaGludCAyNDgKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU2CgkvLyBhc3NlcnQoMjQ5KQoJcHVzaGludCAyNDkKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU3CgkvLyBhc3NlcnQoMjUwKQoJcHVzaGludCAyNTAKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU4CgkvLyBhc3NlcnQoMjUxKQoJcHVzaGludCAyNTEKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjU5CgkvLyBhc3NlcnQoMjUyKQoJcHVzaGludCAyNTIKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYwCgkvLyBhc3NlcnQoMjUzKQoJcHVzaGludCAyNTMKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYxCgkvLyBhc3NlcnQoMjU0KQoJcHVzaGludCAyNTQKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYyCgkvLyBhc3NlcnQoMjU1KQoJcHVzaGludCAyNTUKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjYzCgkvLyBhc3NlcnQoMjU2KQoJcHVzaGludCAyNTYKCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9jYmxvY2tzLmFsZ28udHM6MjY2CgkvLyByZXR1cm4gYSArIGI7CglwdXNoaW50IDI1OAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CglwdXNoYnl0ZXMgMHhkMTRlNjFkYiAvLyBtZXRob2QgImxhcmdlSW50Y2Jsb2NrKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2xhcmdlSW50Y2Jsb2NrCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "byteCode": { + "approval": "CjEYFIEGCzEZCI0MA6YAAAAAAAAAAAAAA5gAAAAAAAAAAAAAAIAEFR98dYgABhZQsIEBQ4oAAYECRIEDRIEERIEFRIEGRIEHRIEIRIEJRIEKRIELRIEMRIENRIEORIEPRIEQRIERRIESRIETRIEURIEVRIEWRIEXRIEYRIEZRIEaRIEbRIEcRIEdRIEeRIEfRIEgRIEhRIEiRIEjRIEkRIElRIEmRIEnRIEoRIEpRIEqRIErRIEsRIEtRIEuRIEvRIEwRIExRIEyRIEzRIE0RIE1RIE2RIE3RIE4RIE5RIE6RIE7RIE8RIE9RIE+RIE/RIFARIFBRIFCRIFDRIFERIFFRIFGRIFHRIFIRIFJRIFKRIFLRIFMRIFNRIFORIFPRIFQRIFRRIFSRIFTRIFURIFVRIFWRIFXRIFYRIFZRIFaRIFbRIFcRIFdRIFeRIFfRIFgRIFhRIFiRIFjRIFkRIFlRIFmRIFnRIFoRIFpRIFqRIFrRIFsRIFtRIFuRIFvRIFwRIFxRIFyRIFzRIF0RIF1RIF2RIF3RIF4RIF5RIF6RIF7RIF8RIF9RIF+RIF/RIGAAUSBgQFEgYIBRIGDAUSBhAFEgYUBRIGGAUSBhwFEgYgBRIGJAUSBigFEgYsBRIGMAUSBjQFEgY4BRIGPAUSBkAFEgZEBRIGSAUSBkwFEgZQBRIGVAUSBlgFEgZcBRIGYAUSBmQFEgZoBRIGbAUSBnAFEgZ0BRIGeAUSBnwFEgaABRIGhAUSBogFEgaMBRIGkAUSBpQFEgaYBRIGnAUSBqAFEgakBRIGqAUSBqwFEgawBRIGtAUSBrgFEga8BRIGwAUSBsQFEgbIBRIGzAUSBtAFEgbUBRIG2AUSBtwFEgbgBRIG5AUSBugFEgbsBRIG8AUSBvQFEgb4BRIG/AUSBwAFEgcEBRIHCAUSBwwFEgcQBRIHFAUSBxgFEgccBRIHIAUSByQFEgcoBRIHLAUSBzAFEgc0BRIHOAUSBzwFEgdABRIHRAUSB0gFEgdMBRIHUAUSB1QFEgdYBRIHXAUSB2AFEgdkBRIHaAUSB2wFEgdwBRIHdAUSB3gFEgd8BRIHgAUSB4QFEgeIBRIHjAUSB5AFEgeUBRIHmAUSB5wFEgegBRIHpAUSB6gFEgesBRIHsAUSB7QFEge4BRIHvAUSB8AFEgfEBRIHyAUSB8wFEgfQBRIH1AUSB9gFEgfcBRIH4AUSB+QFEgfoBRIH7AUSB/AFEgf0BRIH+AUSB/wFEgYACRIGCAomBAUOABLhEezY2GgCOAf/wAIAE0U5h2zYaAI4B/E4A", + "clear": "Cg==" + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 26, + "patch": 0, + "commitHash": "0d10b244" + } + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/IntcblockTest.clear.teal b/tests/contracts/artifacts/IntcblockTest.clear.teal new file mode 100644 index 000000000..e9f1d65b3 --- /dev/null +++ b/tests/contracts/artifacts/IntcblockTest.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/tests/contracts/artifacts/ItxnsTest.approval.teal b/tests/contracts/artifacts/ItxnsTest.approval.teal index c3bd35dcc..9b2dc65c6 100644 --- a/tests/contracts/artifacts/ItxnsTest.approval.teal +++ b/tests/contracts/artifacts/ItxnsTest.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 0 +bytecblock 0x6161616161616161616161616161616161616161616161616161616161616161 0x151f7c75 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -43,12 +45,12 @@ payment: // note: 'Hello World!', // }) itxn_begin - int pay + int 1 // pay itxn_field TypeEnum // tests/contracts/itxns.algo.ts:7 // amount: 100 - int 100 + pushint 100 itxn_field Amount // tests/contracts/itxns.algo.ts:8 @@ -73,7 +75,7 @@ payment: // tests/contracts/itxns.algo.ts:12 // note: 'Hello World!' - byte 0x48656c6c6f20576f726c6421 // "Hello World!" + pushbytes 0x48656c6c6f20576f726c6421 // "Hello World!" itxn_field Note // Fee field not set, defaulting to 0 @@ -115,17 +117,17 @@ assetCreation: // configAssetMetadataHash: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', // }); itxn_begin - int acfg + pushint 3 // acfg itxn_field TypeEnum // tests/contracts/itxns.algo.ts:18 // configAssetName: 'name' - byte 0x6e616d65 // "name" + pushbytes 0x6e616d65 // "name" itxn_field ConfigAssetName // tests/contracts/itxns.algo.ts:19 // configAssetUnitName: 'unit' - byte 0x756e6974 // "unit" + pushbytes 0x756e6974 // "unit" itxn_field ConfigAssetUnitName // tests/contracts/itxns.algo.ts:20 @@ -160,7 +162,7 @@ assetCreation: // tests/contracts/itxns.algo.ts:26 // configAssetURL: 'url' - byte 0x75726c // "url" + pushbytes 0x75726c // "url" itxn_field ConfigAssetURL // tests/contracts/itxns.algo.ts:27 @@ -204,7 +206,7 @@ appCall: // note: 'note', // }) itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum // tests/contracts/itxns.algo.ts:33 @@ -214,9 +216,9 @@ appCall: // tests/contracts/itxns.algo.ts:34 // applicationArgs: ['arg1', 'arg2'] - byte 0x61726731 // "arg1" + pushbytes 0x61726731 // "arg1" itxn_field ApplicationArgs - byte 0x61726732 // "arg2" + pushbytes 0x61726732 // "arg2" itxn_field ApplicationArgs // tests/contracts/itxns.algo.ts:35 @@ -231,7 +233,7 @@ appCall: // tests/contracts/itxns.algo.ts:37 // approvalProgram: 'approval' - byte 0x617070726f76616c // "approval" + pushbytes 0x617070726f76616c // "approval" itxn_field ApprovalProgram // tests/contracts/itxns.algo.ts:38 @@ -241,7 +243,7 @@ appCall: // tests/contracts/itxns.algo.ts:39 // clearStateProgram: 'clear' - byte 0x636c656172 // "clear" + pushbytes 0x636c656172 // "clear" itxn_field ClearStateProgram // tests/contracts/itxns.algo.ts:40 @@ -266,7 +268,7 @@ appCall: // tests/contracts/itxns.algo.ts:44 // note: 'note' - byte 0x6e6f7465 // "note" + pushbytes 0x6e6f7465 // "note" itxn_field Note // Fee field not set, defaulting to 0 @@ -297,7 +299,7 @@ assetConfig: // configAssetClawback: this.app.address, // }) itxn_begin - int acfg + pushint 3 // acfg itxn_field TypeEnum // tests/contracts/itxns.algo.ts:50 @@ -351,7 +353,7 @@ assetFreeze: // freezeAsset: AssetID.zeroIndex, // }) itxn_begin - int afrz + pushint 5 // afrz itxn_field TypeEnum // tests/contracts/itxns.algo.ts:60 @@ -397,7 +399,7 @@ assetTransfer: // xferAsset: AssetID.zeroIndex, // }) itxn_begin - int axfer + pushint 4 // axfer itxn_field TypeEnum // tests/contracts/itxns.algo.ts:68 @@ -456,9 +458,9 @@ methodCall: // methodArgs: [this.app, AssetID.zeroIndex], // }); itxn_begin - int appl + pushint 6 // appl itxn_field TypeEnum - method "method(uint64,uint64)uint64" + pushbytes 0xa66d559c // method "method(uint64,uint64)uint64" itxn_field ApplicationArgs // tests/contracts/itxns.algo.ts:79 @@ -466,7 +468,7 @@ methodCall: txna Applications 0 itob itxn_field ApplicationArgs - byte 0x0000000000000000 + pushbytes 0x0000000000000000 itxn_field ApplicationArgs // Fee field not set, defaulting to 0 @@ -504,7 +506,7 @@ onlineKeyRegistration: // votePK: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', // }) itxn_begin - int keyreg + pushint 2 // keyreg itxn_field TypeEnum // tests/contracts/itxns.algo.ts:85 @@ -559,7 +561,7 @@ offlineKeyRegistration: // tests/contracts/itxns.algo.ts:95 // sendOfflineKeyRegistration({}) itxn_begin - int keyreg + pushint 2 // keyreg itxn_field TypeEnum // Fee field not set, defaulting to 0 @@ -587,7 +589,7 @@ innerGeneric: // methodArgs: [{ configAssetTotal: 1 }], // }) itxn_begin - int acfg + pushint 3 // acfg itxn_field TypeEnum // tests/contracts/itxns.algo.ts:101 @@ -599,9 +601,9 @@ innerGeneric: int 0 itxn_field Fee itxn_next - int appl + pushint 6 // appl itxn_field TypeEnum - method "foo(txn)void" + pushbytes 0x090924e8 // method "foo(txn)void" itxn_field ApplicationArgs // tests/contracts/itxns.algo.ts:101 @@ -619,7 +621,7 @@ innerGeneric: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -627,16 +629,16 @@ innerGeneric: err *call_NoOp: - method "payment()void" - method "assetCreation()uint64" - method "appCall()void" - method "assetConfig()void" - method "assetFreeze()void" - method "assetTransfer()void" - method "methodCall()uint64" - method "onlineKeyRegistration()void" - method "offlineKeyRegistration()void" - method "innerGeneric()void" + pushbytes 0x7a2ecb1c // method "payment()void" + pushbytes 0xdf9b38ad // method "assetCreation()uint64" + pushbytes 0x690ce8b6 // method "appCall()void" + pushbytes 0x8f310534 // method "assetConfig()void" + pushbytes 0xf834bee8 // method "assetFreeze()void" + pushbytes 0x1f4418b7 // method "assetTransfer()void" + pushbytes 0x70adfa23 // method "methodCall()uint64" + pushbytes 0xe6ec46fc // method "onlineKeyRegistration()void" + pushbytes 0x1172301a // method "offlineKeyRegistration()void" + pushbytes 0x7a33897d // method "innerGeneric()void" txna ApplicationArgs 0 match *abi_route_payment *abi_route_assetCreation *abi_route_appCall *abi_route_assetConfig *abi_route_assetFreeze *abi_route_assetTransfer *abi_route_methodCall *abi_route_onlineKeyRegistration *abi_route_offlineKeyRegistration *abi_route_innerGeneric diff --git a/tests/contracts/artifacts/ItxnsTest.arc32.json b/tests/contracts/artifacts/ItxnsTest.arc32.json index fce5c278a..a4e32f088 100644 --- a/tests/contracts/artifacts/ItxnsTest.arc32.json +++ b/tests/contracts/artifacts/ItxnsTest.arc32.json @@ -84,7 +84,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwYXltZW50KCl2b2lkCiphYmlfcm91dGVfcGF5bWVudDoKCS8vIGV4ZWN1dGUgcGF5bWVudCgpdm9pZAoJY2FsbHN1YiBwYXltZW50CglpbnQgMQoJcmV0dXJuCgovLyBwYXltZW50KCk6IHZvaWQKcGF5bWVudDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIGFtb3VudDogMTAwLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjbG9zZVJlbWFpbmRlclRvOiBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgcmVrZXlUbzogZ2xvYmFscy56ZXJvQWRkcmVzcywKCS8vICAgICAgIG5vdGU6ICdIZWxsbyBXb3JsZCEnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NwoJLy8gYW1vdW50OiAxMDAKCWludCAxMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OQoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMAoJLy8gc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBTZW5kZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMQoJLy8gcmVrZXlUbzogZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglpdHhuX2ZpZWxkIFJla2V5VG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMgoJLy8gbm90ZTogJ0hlbGxvIFdvcmxkIScKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEgLy8gIkhlbGxvIFdvcmxkISIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYXNzZXRDcmVhdGlvbigpdWludDY0CiphYmlfcm91dGVfYXNzZXRDcmVhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhc3NldENyZWF0aW9uKCl1aW50NjQKCWNhbGxzdWIgYXNzZXRDcmVhdGlvbgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFzc2V0Q3JlYXRpb24oKTogQXNzZXRJRAphc3NldENyZWF0aW9uOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTcKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6ICduYW1lJywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICd1bml0JywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IDEsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldEZyZWV6ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldERlZmF1bHRGcm96ZW46IDAsCgkvLyAgICAgICBjb25maWdBc3NldFVSTDogJ3VybCcsCgkvLyAgICAgICBjb25maWdBc3NldE1ldGFkYXRhSGFzaDogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCWludCBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTgKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogJ25hbWUnCglieXRlIDB4NmU2MTZkNjUgLy8gIm5hbWUiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE5CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcKCWJ5dGUgMHg3NTZlNjk3NCAvLyAidW5pdCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjIwCgkvLyBjb25maWdBc3NldFRvdGFsOiAxCglpbnQgMQoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjIKCS8vIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjMKCS8vIGNvbmZpZ0Fzc2V0RnJlZXplOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldEZyZWV6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjI0CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjUKCS8vIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMAoJaW50IDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWZhdWx0RnJvemVuCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNvbmZpZ0Fzc2V0VVJMOiAndXJsJwoJYnl0ZSAweDc1NzI2YyAvLyAidXJsIgoJaXR4bl9maWVsZCBDb25maWdBc3NldFVSTAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjI3CgkvLyBjb25maWdBc3NldE1ldGFkYXRhSGFzaDogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBDb25maWdBc3NldE1ldGFkYXRhSGFzaAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gYXBwQ2FsbCgpdm9pZAoqYWJpX3JvdXRlX2FwcENhbGw6CgkvLyBleGVjdXRlIGFwcENhbGwoKXZvaWQKCWNhbGxzdWIgYXBwQ2FsbAoJaW50IDEKCXJldHVybgoKLy8gYXBwQ2FsbCgpOiB2b2lkCmFwcENhbGw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozMgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYWNjb3VudHM6IFt0aGlzLmFwcC5hZGRyZXNzXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydhcmcxJywgJ2FyZzInXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHRoaXMuYXBwLAoJLy8gICAgICAgYXBwbGljYXRpb25zOiBbdGhpcy5hcHBdLAoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiAnYXBwcm92YWwnLAoJLy8gICAgICAgYXNzZXRzOiBbQXNzZXRJRC56ZXJvSW5kZXhdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06ICdjbGVhcicsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IDEsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiAxLAoJLy8gICAgICAgbG9jYWxOdW1CeXRlU2xpY2U6IDEsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IDEsCgkvLyAgICAgICBub3RlOiAnbm90ZScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzMKCS8vIGFjY291bnRzOiBbdGhpcy5hcHAuYWRkcmVzc10KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFjY291bnRzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzQKCS8vIGFwcGxpY2F0aW9uQXJnczogWydhcmcxJywgJ2FyZzInXQoJYnl0ZSAweDYxNzI2NzMxIC8vICJhcmcxIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHg2MTcyNjczMiAvLyAiYXJnMiIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzUKCS8vIGFwcGxpY2F0aW9uSUQ6IHRoaXMuYXBwCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNgoJLy8gYXBwbGljYXRpb25zOiBbdGhpcy5hcHBdCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM3CgkvLyBhcHByb3ZhbFByb2dyYW06ICdhcHByb3ZhbCcKCWJ5dGUgMHg2MTcwNzA3MjZmNzY2MTZjIC8vICJhcHByb3ZhbCIKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzgKCS8vIGFzc2V0czogW0Fzc2V0SUQuemVyb0luZGV4XQoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzkKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiAnY2xlYXInCglieXRlIDB4NjM2YzY1NjE3MiAvLyAiY2xlYXIiCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogMQoJaW50IDEKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDEKCS8vIGdsb2JhbE51bVVpbnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo0MgoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IDEKCWludCAxCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDMKCS8vIGxvY2FsTnVtVWludDogMQoJaW50IDEKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDQKCS8vIG5vdGU6ICdub3RlJwoJYnl0ZSAweDZlNmY3NDY1IC8vICJub3RlIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldENvbmZpZygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0Q29uZmlnOgoJLy8gZXhlY3V0ZSBhc3NldENvbmZpZygpdm9pZAoJY2FsbHN1YiBhc3NldENvbmZpZwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRDb25maWcoKTogdm9pZAphc3NldENvbmZpZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBzZW5kQXNzZXRDb25maWcoewoJLy8gICAgICAgY29uZmlnQXNzZXQ6IEFzc2V0SUQuemVyb0luZGV4LAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjUwCgkvLyBjb25maWdBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgKCWludCAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTIKCS8vIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTMKCS8vIGNvbmZpZ0Fzc2V0RnJlZXplOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldEZyZWV6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjU0CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldEZyZWV6ZSgpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0RnJlZXplOgoJLy8gZXhlY3V0ZSBhc3NldEZyZWV6ZSgpdm9pZAoJY2FsbHN1YiBhc3NldEZyZWV6ZQoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcmVlemUoKTogdm9pZAphc3NldEZyZWV6ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjU5CgkvLyBzZW5kQXNzZXRGcmVlemUoewoJLy8gICAgICAgZnJlZXplQXNzZXRGcm96ZW46IHRydWUsCgkvLyAgICAgICBmcmVlemVBc3NldEFjY291bnQ6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBmcmVlemVBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhZnJ6CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjAKCS8vIGZyZWV6ZUFzc2V0RnJvemVuOiB0cnVlCglpbnQgMQoJaXR4bl9maWVsZCBGcmVlemVBc3NldEZyb3plbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYxCgkvLyBmcmVlemVBc3NldEFjY291bnQ6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0QWNjb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYyCgkvLyBmcmVlemVBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgKCWludCAwCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldFRyYW5zZmVyKCl2b2lkCiphYmlfcm91dGVfYXNzZXRUcmFuc2ZlcjoKCS8vIGV4ZWN1dGUgYXNzZXRUcmFuc2Zlcigpdm9pZAoJY2FsbHN1YiBhc3NldFRyYW5zZmVyCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldFRyYW5zZmVyKCk6IHZvaWQKYXNzZXRUcmFuc2ZlcjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgIGFzc2V0Q2xvc2VUbzogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhc3NldFNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY4CgkvLyBhc3NldEFtb3VudDogMQoJaW50IDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2OQoJLy8gYXNzZXRDbG9zZVRvOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3MAoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcxCgkvLyBhc3NldFNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRTZW5kZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3MgoJLy8geGZlckFzc2V0OiBBc3NldElELnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtZXRob2RDYWxsKCl1aW50NjQKKmFiaV9yb3V0ZV9tZXRob2RDYWxsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1ldGhvZENhbGwoKXVpbnQ2NAoJY2FsbHN1YiBtZXRob2RDYWxsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kQ2FsbCgpOiBBc3NldElECm1ldGhvZENhbGw6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3NwoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPFtBcHBJRCwgQXNzZXRJRF0sIEFzc2V0SUQ+KHsKCS8vICAgICAgIG5hbWU6ICdtZXRob2QnLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMuYXBwLCBBc3NldElELnplcm9JbmRleF0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJtZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjc5CgkvLyBtZXRob2RBcmdzOiBbdGhpcy5hcHAsIEFzc2V0SUQuemVyb0luZGV4XQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJcmV0c3ViCgovLyBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vbmxpbmVLZXlSZWdpc3RyYXRpb246CgkvLyBleGVjdXRlIG9ubGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZAoJY2FsbHN1YiBvbmxpbmVLZXlSZWdpc3RyYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9ubGluZUtleVJlZ2lzdHJhdGlvbigpOiB2b2lkCm9ubGluZUtleVJlZ2lzdHJhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg0CgkvLyBzZW5kT25saW5lS2V5UmVnaXN0cmF0aW9uKHsKCS8vICAgICAgIHNlbGVjdGlvblBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgICAgc3RhdGVQcm9vZlBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgICAgdm90ZUZpcnN0OiAxLAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiAxLAoJLy8gICAgICAgdm90ZUxhc3Q6IDEsCgkvLyAgICAgICB2b3RlUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBrZXlyZWcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NQoJLy8gc2VsZWN0aW9uUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgU2VsZWN0aW9uUEsKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NgoJLy8gc3RhdGVQcm9vZlBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFN0YXRlUHJvb2ZQSwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg3CgkvLyB2b3RlRmlyc3Q6IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVGaXJzdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg4CgkvLyB2b3RlS2V5RGlsdXRpb246IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg5CgkvLyB2b3RlTGFzdDogMQoJaW50IDEKCWl0eG5fZmllbGQgVm90ZUxhc3QKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5MAoJLy8gdm90ZVBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFZvdGVQSwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gb2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZAoqYWJpX3JvdXRlX29mZmxpbmVLZXlSZWdpc3RyYXRpb246CgkvLyBleGVjdXRlIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKCWNhbGxzdWIgb2ZmbGluZUtleVJlZ2lzdHJhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gb2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpOiB2b2lkCm9mZmxpbmVLZXlSZWdpc3RyYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5NQoJLy8gc2VuZE9mZmxpbmVLZXlSZWdpc3RyYXRpb24oe30pCglpdHhuX2JlZ2luCglpbnQga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBpbm5lckdlbmVyaWMoKXZvaWQKKmFiaV9yb3V0ZV9pbm5lckdlbmVyaWM6CgkvLyBleGVjdXRlIGlubmVyR2VuZXJpYygpdm9pZAoJY2FsbHN1YiBpbm5lckdlbmVyaWMKCWludCAxCglyZXR1cm4KCi8vIGlubmVyR2VuZXJpYygpOiB2b2lkCmlubmVyR2VuZXJpYzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjk5CgkvLyBzZW5kTWV0aG9kQ2FsbDxbSW5uZXJUeG48SW5uZXJBc3NldENyZWF0aW9uPl0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3sgY29uZmlnQXNzZXRUb3RhbDogMSB9XSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMDEKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZm9vKHR4bil2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMDEKCS8vIG1ldGhvZEFyZ3M6IFt7IGNvbmZpZ0Fzc2V0VG90YWw6IDEgfV0KCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInBheW1lbnQoKXZvaWQiCgltZXRob2QgImFzc2V0Q3JlYXRpb24oKXVpbnQ2NCIKCW1ldGhvZCAiYXBwQ2FsbCgpdm9pZCIKCW1ldGhvZCAiYXNzZXRDb25maWcoKXZvaWQiCgltZXRob2QgImFzc2V0RnJlZXplKCl2b2lkIgoJbWV0aG9kICJhc3NldFRyYW5zZmVyKCl2b2lkIgoJbWV0aG9kICJtZXRob2RDYWxsKCl1aW50NjQiCgltZXRob2QgIm9ubGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZCIKCW1ldGhvZCAib2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZCIKCW1ldGhvZCAiaW5uZXJHZW5lcmljKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wYXltZW50ICphYmlfcm91dGVfYXNzZXRDcmVhdGlvbiAqYWJpX3JvdXRlX2FwcENhbGwgKmFiaV9yb3V0ZV9hc3NldENvbmZpZyAqYWJpX3JvdXRlX2Fzc2V0RnJlZXplICphYmlfcm91dGVfYXNzZXRUcmFuc2ZlciAqYWJpX3JvdXRlX21ldGhvZENhbGwgKmFiaV9yb3V0ZV9vbmxpbmVLZXlSZWdpc3RyYXRpb24gKmFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uICphYmlfcm91dGVfaW5uZXJHZW5lcmljCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAKYnl0ZWNibG9jayAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHBheW1lbnQoKXZvaWQKKmFiaV9yb3V0ZV9wYXltZW50OgoJLy8gZXhlY3V0ZSBwYXltZW50KCl2b2lkCgljYWxsc3ViIHBheW1lbnQKCWludCAxCglyZXR1cm4KCi8vIHBheW1lbnQoKTogdm9pZApwYXltZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiAxMDAsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNsb3NlUmVtYWluZGVyVG86IGdsb2JhbHMuemVyb0FkZHJlc3MsCgkvLyAgICAgICBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICByZWtleVRvOiBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgbm90ZTogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcKCS8vIGFtb3VudDogMTAwCglwdXNoaW50IDEwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4CgkvLyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5CgkvLyBjbG9zZVJlbWFpbmRlclRvOiBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWl0eG5fZmllbGQgQ2xvc2VSZW1haW5kZXJUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjEwCgkvLyBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjExCgkvLyByZWtleVRvOiBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWl0eG5fZmllbGQgUmVrZXlUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjEyCgkvLyBub3RlOiAnSGVsbG8gV29ybGQhJwoJcHVzaGJ5dGVzIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0Q3JlYXRpb24oKXVpbnQ2NAoqYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXNzZXRDcmVhdGlvbigpdWludDY0CgljYWxsc3ViIGFzc2V0Q3JlYXRpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldENyZWF0aW9uKCk6IEFzc2V0SUQKYXNzZXRDcmVhdGlvbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE3CgkvLyByZXR1cm4gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgY29uZmlnQXNzZXROYW1lOiAnbmFtZScsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcsCgkvLyAgICAgICBjb25maWdBc3NldFRvdGFsOiAxLAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXREZWZhdWx0RnJvemVuOiAwLAoJLy8gICAgICAgY29uZmlnQXNzZXRVUkw6ICd1cmwnLAoJLy8gICAgICAgY29uZmlnQXNzZXRNZXRhZGF0YUhhc2g6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglwdXNoaW50IDMgLy8gYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE4CgkvLyBjb25maWdBc3NldE5hbWU6ICduYW1lJwoJcHVzaGJ5dGVzIDB4NmU2MTZkNjUgLy8gIm5hbWUiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE5CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcKCXB1c2hieXRlcyAweDc1NmU2OTc0IC8vICJ1bml0IgoJaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjAKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMwoJLy8gY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjQKCS8vIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNQoJLy8gY29uZmlnQXNzZXREZWZhdWx0RnJvemVuOiAwCglpbnQgMAoJaXR4bl9maWVsZCBDb25maWdBc3NldERlZmF1bHRGcm96ZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNgoJLy8gY29uZmlnQXNzZXRVUkw6ICd1cmwnCglwdXNoYnl0ZXMgMHg3NTcyNmMgLy8gInVybCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNwoJLy8gY29uZmlnQXNzZXRNZXRhZGF0YUhhc2g6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNZXRhZGF0YUhhc2gKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIENyZWF0ZWRBc3NldElECglyZXRzdWIKCi8vIGFwcENhbGwoKXZvaWQKKmFiaV9yb3V0ZV9hcHBDYWxsOgoJLy8gZXhlY3V0ZSBhcHBDYWxsKCl2b2lkCgljYWxsc3ViIGFwcENhbGwKCWludCAxCglyZXR1cm4KCi8vIGFwcENhbGwoKTogdm9pZAphcHBDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzIKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFjY291bnRzOiBbdGhpcy5hcHAuYWRkcmVzc10sCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnYXJnMScsICdhcmcyJ10sCgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiB0aGlzLmFwcCwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW3RoaXMuYXBwXSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJywKCS8vICAgICAgIGFzc2V0czogW0Fzc2V0SUQuemVyb0luZGV4XSwKCS8vICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiAnY2xlYXInLAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiAxLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogMSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiAxLAoJLy8gICAgICAgbG9jYWxOdW1VaW50OiAxLAoJLy8gICAgICAgbm90ZTogJ25vdGUnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjMzCgkvLyBhY2NvdW50czogW3RoaXMuYXBwLmFkZHJlc3NdCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBY2NvdW50cwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM0CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnYXJnMScsICdhcmcyJ10KCXB1c2hieXRlcyAweDYxNzI2NzMxIC8vICJhcmcxIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hieXRlcyAweDYxNzI2NzMyIC8vICJhcmcyIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNQoJLy8gYXBwbGljYXRpb25JRDogdGhpcy5hcHAKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM2CgkvLyBhcHBsaWNhdGlvbnM6IFt0aGlzLmFwcF0KCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJwoJcHVzaGJ5dGVzIDB4NjE3MDcwNzI2Zjc2NjE2YyAvLyAiYXBwcm92YWwiCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM4CgkvLyBhc3NldHM6IFtBc3NldElELnplcm9JbmRleF0KCWludCAwCglpdHhuX2ZpZWxkIEFzc2V0cwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM5CgkvLyBjbGVhclN0YXRlUHJvZ3JhbTogJ2NsZWFyJwoJcHVzaGJ5dGVzIDB4NjM2YzY1NjE3MiAvLyAiY2xlYXIiCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogMQoJaW50IDEKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDEKCS8vIGdsb2JhbE51bVVpbnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo0MgoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IDEKCWludCAxCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDMKCS8vIGxvY2FsTnVtVWludDogMQoJaW50IDEKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDQKCS8vIG5vdGU6ICdub3RlJwoJcHVzaGJ5dGVzIDB4NmU2Zjc0NjUgLy8gIm5vdGUiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0Q29uZmlnKCl2b2lkCiphYmlfcm91dGVfYXNzZXRDb25maWc6CgkvLyBleGVjdXRlIGFzc2V0Q29uZmlnKCl2b2lkCgljYWxsc3ViIGFzc2V0Q29uZmlnCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldENvbmZpZygpOiB2b2lkCmFzc2V0Q29uZmlnOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDkKCS8vIHNlbmRBc3NldENvbmZpZyh7CgkvLyAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldEZyZWV6ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgMyAvLyBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTAKCS8vIGNvbmZpZ0Fzc2V0OiBBc3NldElELnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MwoJLy8gY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTQKCS8vIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0RnJlZXplKCl2b2lkCiphYmlfcm91dGVfYXNzZXRGcmVlemU6CgkvLyBleGVjdXRlIGFzc2V0RnJlZXplKCl2b2lkCgljYWxsc3ViIGFzc2V0RnJlZXplCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEZyZWV6ZSgpOiB2b2lkCmFzc2V0RnJlZXplOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTkKCS8vIHNlbmRBc3NldEZyZWV6ZSh7CgkvLyAgICAgICBmcmVlemVBc3NldEZyb3plbjogdHJ1ZSwKCS8vICAgICAgIGZyZWV6ZUFzc2V0QWNjb3VudDogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGZyZWV6ZUFzc2V0OiBBc3NldElELnplcm9JbmRleCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA1IC8vIGFmcnoKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2MAoJLy8gZnJlZXplQXNzZXRGcm96ZW46IHRydWUKCWludCAxCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0RnJvemVuCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjEKCS8vIGZyZWV6ZUFzc2V0QWNjb3VudDogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgRnJlZXplQXNzZXRBY2NvdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjIKCS8vIGZyZWV6ZUFzc2V0OiBBc3NldElELnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgRnJlZXplQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0VHJhbnNmZXIoKXZvaWQKKmFiaV9yb3V0ZV9hc3NldFRyYW5zZmVyOgoJLy8gZXhlY3V0ZSBhc3NldFRyYW5zZmVyKCl2b2lkCgljYWxsc3ViIGFzc2V0VHJhbnNmZXIKCWludCAxCglyZXR1cm4KCi8vIGFzc2V0VHJhbnNmZXIoKTogdm9pZAphc3NldFRyYW5zZmVyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjcKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0QW1vdW50OiAxLAoJLy8gICAgICAgYXNzZXRDbG9zZVRvOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0U2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELnplcm9JbmRleCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjgKCS8vIGFzc2V0QW1vdW50OiAxCglpbnQgMQoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY5CgkvLyBhc3NldENsb3NlVG86IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcwCgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzEKCS8vIGFzc2V0U2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcyCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuemVyb0luZGV4CglpbnQgMAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG1ldGhvZENhbGwoKXVpbnQ2NAoqYWJpX3JvdXRlX21ldGhvZENhbGw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWV0aG9kQ2FsbCgpdWludDY0CgljYWxsc3ViIG1ldGhvZENhbGwKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RDYWxsKCk6IEFzc2V0SUQKbWV0aG9kQ2FsbDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjc3CgkvLyByZXR1cm4gc2VuZE1ldGhvZENhbGw8W0FwcElELCBBc3NldElEXSwgQXNzZXRJRD4oewoJLy8gICAgICAgbmFtZTogJ21ldGhvZCcsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy5hcHAsIEFzc2V0SUQuemVyb0luZGV4XSwKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhhNjZkNTU5YyAvLyBtZXRob2QgIm1ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzkKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLmFwcCwgQXNzZXRJRC56ZXJvSW5kZXhdCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCXJldHN1YgoKLy8gb25saW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCiphYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKCWNhbGxzdWIgb25saW5lS2V5UmVnaXN0cmF0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvbmxpbmVLZXlSZWdpc3RyYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NAoJLy8gc2VuZE9ubGluZUtleVJlZ2lzdHJhdGlvbih7CgkvLyAgICAgICBzZWxlY3Rpb25QSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICAgIHN0YXRlUHJvb2ZQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICAgIHZvdGVGaXJzdDogMSwKCS8vICAgICAgIHZvdGVLZXlEaWx1dGlvbjogMSwKCS8vICAgICAgIHZvdGVMYXN0OiAxLAoJLy8gICAgICAgdm90ZVBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDIgLy8ga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODUKCS8vIHNlbGVjdGlvblBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFNlbGVjdGlvblBLCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODYKCS8vIHN0YXRlUHJvb2ZQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NwoJLy8gdm90ZUZpcnN0OiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4OAoJLy8gdm90ZUtleURpbHV0aW9uOiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4OQoJLy8gdm90ZUxhc3Q6IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTAKCS8vIHZvdGVQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvZmZsaW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCgljYWxsc3ViIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTUKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJcHVzaGludCAyIC8vIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gaW5uZXJHZW5lcmljKCl2b2lkCiphYmlfcm91dGVfaW5uZXJHZW5lcmljOgoJLy8gZXhlY3V0ZSBpbm5lckdlbmVyaWMoKXZvaWQKCWNhbGxzdWIgaW5uZXJHZW5lcmljCglpbnQgMQoJcmV0dXJuCgovLyBpbm5lckdlbmVyaWMoKTogdm9pZAppbm5lckdlbmVyaWM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5OQoJLy8gc2VuZE1ldGhvZENhbGw8W0lubmVyVHhuPElubmVyQXNzZXRDcmVhdGlvbj5dLCB2b2lkPih7CgkvLyAgICAgICBuYW1lOiAnZm9vJywKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt7IGNvbmZpZ0Fzc2V0VG90YWw6IDEgfV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgMyAvLyBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTAxCgkvLyBjb25maWdBc3NldFRvdGFsOiAxCglpbnQgMQoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglpdHhuX25leHQKCXB1c2hpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHgwOTA5MjRlOCAvLyBtZXRob2QgImZvbyh0eG4pdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTAxCgkvLyBtZXRob2RBcmdzOiBbeyBjb25maWdBc3NldFRvdGFsOiAxIH1dCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4N2EyZWNiMWMgLy8gbWV0aG9kICJwYXltZW50KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGY5YjM4YWQgLy8gbWV0aG9kICJhc3NldENyZWF0aW9uKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg2OTBjZThiNiAvLyBtZXRob2QgImFwcENhbGwoKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZjMxMDUzNCAvLyBtZXRob2QgImFzc2V0Q29uZmlnKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjgzNGJlZTggLy8gbWV0aG9kICJhc3NldEZyZWV6ZSgpdm9pZCIKCXB1c2hieXRlcyAweDFmNDQxOGI3IC8vIG1ldGhvZCAiYXNzZXRUcmFuc2Zlcigpdm9pZCIKCXB1c2hieXRlcyAweDcwYWRmYTIzIC8vIG1ldGhvZCAibWV0aG9kQ2FsbCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZTZlYzQ2ZmMgLy8gbWV0aG9kICJvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQiCglwdXNoYnl0ZXMgMHgxMTcyMzAxYSAvLyBtZXRob2QgIm9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQiCglwdXNoYnl0ZXMgMHg3YTMzODk3ZCAvLyBtZXRob2QgImlubmVyR2VuZXJpYygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGF5bWVudCAqYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb24gKmFiaV9yb3V0ZV9hcHBDYWxsICphYmlfcm91dGVfYXNzZXRDb25maWcgKmFiaV9yb3V0ZV9hc3NldEZyZWV6ZSAqYWJpX3JvdXRlX2Fzc2V0VHJhbnNmZXIgKmFiaV9yb3V0ZV9tZXRob2RDYWxsICphYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uICphYmlfcm91dGVfb2ZmbGluZUtleVJlZ2lzdHJhdGlvbiAqYWJpX3JvdXRlX2lubmVyR2VuZXJpYwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/ItxnsTest.arc56_draft.json b/tests/contracts/artifacts/ItxnsTest.arc56_draft.json index f5eaf2997..b305bf604 100644 --- a/tests/contracts/artifacts/ItxnsTest.arc56_draft.json +++ b/tests/contracts/artifacts/ItxnsTest.arc56_draft.json @@ -178,2255 +178,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 48, - 49 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 50 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 51 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 52 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 53, - 54 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 55 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 82 - ] - }, - { - "teal": 28, - "source": 5, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 29, - "source": 5, - "pc": [ - 86 - ] - }, - { - "teal": 30, - "source": 5, - "pc": [ - 87 - ] - }, - { - "teal": 34, - "source": 5, - "pc": [ - 88, - 89, - 90 - ] - }, - { - "teal": 45, - "source": 6, - "pc": [ - 91 - ] - }, - { - "teal": 46, - "source": 6, - "pc": [ - 92 - ] - }, - { - "teal": 47, - "source": 6, - "pc": [ - 93, - 94 - ] - }, - { - "teal": 51, - "source": 7, - "pc": [ - 95, - 96 - ] - }, - { - "teal": 52, - "source": 7, - "pc": [ - 97, - 98 - ] - }, - { - "teal": 56, - "source": 8, - "pc": [ - 99, - 100 - ] - }, - { - "teal": 57, - "source": 8, - "pc": [ - 101, - 102 - ] - }, - { - "teal": 61, - "source": 9, - "pc": [ - 103, - 104 - ] - }, - { - "teal": 62, - "source": 9, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 66, - "source": 10, - "pc": [ - 107, - 108 - ] - }, - { - "teal": 67, - "source": 10, - "pc": [ - 109, - 110 - ] - }, - { - "teal": 71, - "source": 11, - "pc": [ - 111, - 112 - ] - }, - { - "teal": 72, - "source": 11, - "pc": [ - 113, - 114 - ] - }, - { - "teal": 76, - "source": 12, - "pc": [ - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128 - ] - }, - { - "teal": 77, - "source": 12, - "pc": [ - 129, - 130 - ] - }, - { - "teal": 80, - "source": 6, - "pc": [ - 131 - ] - }, - { - "teal": 81, - "source": 6, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 84, - "source": 6, - "pc": [ - 134 - ] - }, - { - "teal": 85, - "source": 5, - "pc": [ - 135 - ] - }, - { - "teal": 90, - "source": 16, - "pc": [ - 136 - ] - }, - { - "teal": 93, - "source": 16, - "pc": [ - 137, - 138, - 139 - ] - }, - { - "teal": 94, - "source": 16, - "pc": [ - 140 - ] - }, - { - "teal": 95, - "source": 16, - "pc": [ - 141 - ] - }, - { - "teal": 96, - "source": 16, - "pc": [ - 142 - ] - }, - { - "teal": 97, - "source": 16, - "pc": [ - 143 - ] - }, - { - "teal": 98, - "source": 16, - "pc": [ - 144 - ] - }, - { - "teal": 102, - "source": 16, - "pc": [ - 145, - 146, - 147 - ] - }, - { - "teal": 117, - "source": 17, - "pc": [ - 148 - ] - }, - { - "teal": 118, - "source": 17, - "pc": [ - 149 - ] - }, - { - "teal": 119, - "source": 17, - "pc": [ - 150, - 151 - ] - }, - { - "teal": 123, - "source": 18, - "pc": [ - 152, - 153, - 154, - 155, - 156, - 157 - ] - }, - { - "teal": 124, - "source": 18, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 128, - "source": 19, - "pc": [ - 160, - 161, - 162, - 163, - 164, - 165 - ] - }, - { - "teal": 129, - "source": 19, - "pc": [ - 166, - 167 - ] - }, - { - "teal": 133, - "source": 20, - "pc": [ - 168 - ] - }, - { - "teal": 134, - "source": 20, - "pc": [ - 169, - 170 - ] - }, - { - "teal": 138, - "source": 21, - "pc": [ - 171, - 172 - ] - }, - { - "teal": 139, - "source": 21, - "pc": [ - 173, - 174 - ] - }, - { - "teal": 143, - "source": 22, - "pc": [ - 175, - 176 - ] - }, - { - "teal": 144, - "source": 22, - "pc": [ - 177, - 178 - ] - }, - { - "teal": 148, - "source": 23, - "pc": [ - 179, - 180 - ] - }, - { - "teal": 149, - "source": 23, - "pc": [ - 181, - 182 - ] - }, - { - "teal": 153, - "source": 24, - "pc": [ - 183, - 184 - ] - }, - { - "teal": 154, - "source": 24, - "pc": [ - 185, - 186 - ] - }, - { - "teal": 158, - "source": 25, - "pc": [ - 187 - ] - }, - { - "teal": 159, - "source": 25, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 163, - "source": 26, - "pc": [ - 190, - 191, - 192, - 193, - 194 - ] - }, - { - "teal": 164, - "source": 26, - "pc": [ - 195, - 196 - ] - }, - { - "teal": 168, - "source": 27, - "pc": [ - 197 - ] - }, - { - "teal": 169, - "source": 27, - "pc": [ - 198, - 199 - ] - }, - { - "teal": 172, - "source": 17, - "pc": [ - 200 - ] - }, - { - "teal": 173, - "source": 17, - "pc": [ - 201, - 202 - ] - }, - { - "teal": 176, - "source": 17, - "pc": [ - 203 - ] - }, - { - "teal": 177, - "source": 17, - "pc": [ - 204, - 205 - ] - }, - { - "teal": 178, - "source": 16, - "pc": [ - 206 - ] - }, - { - "teal": 183, - "source": 31, - "pc": [ - 207, - 208, - 209 - ] - }, - { - "teal": 184, - "source": 31, - "pc": [ - 210 - ] - }, - { - "teal": 185, - "source": 31, - "pc": [ - 211 - ] - }, - { - "teal": 189, - "source": 31, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 206, - "source": 32, - "pc": [ - 215 - ] - }, - { - "teal": 207, - "source": 32, - "pc": [ - 216 - ] - }, - { - "teal": 208, - "source": 32, - "pc": [ - 217, - 218 - ] - }, - { - "teal": 212, - "source": 33, - "pc": [ - 219, - 220 - ] - }, - { - "teal": 213, - "source": 33, - "pc": [ - 221, - 222 - ] - }, - { - "teal": 217, - "source": 34, - "pc": [ - 223, - 224, - 225, - 226, - 227, - 228 - ] - }, - { - "teal": 218, - "source": 34, - "pc": [ - 229, - 230 - ] - }, - { - "teal": 219, - "source": 34, - "pc": [ - 231, - 232, - 233, - 234, - 235, - 236 - ] - }, - { - "teal": 220, - "source": 34, - "pc": [ - 237, - 238 - ] - }, - { - "teal": 224, - "source": 35, - "pc": [ - 239, - 240, - 241 - ] - }, - { - "teal": 225, - "source": 35, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 229, - "source": 36, - "pc": [ - 244, - 245, - 246 - ] - }, - { - "teal": 230, - "source": 36, - "pc": [ - 247, - 248 - ] - }, - { - "teal": 234, - "source": 37, - "pc": [ - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258 - ] - }, - { - "teal": 235, - "source": 37, - "pc": [ - 259, - 260 - ] - }, - { - "teal": 239, - "source": 38, - "pc": [ - 261 - ] - }, - { - "teal": 240, - "source": 38, - "pc": [ - 262, - 263 - ] - }, - { - "teal": 244, - "source": 39, - "pc": [ - 264, - 265, - 266, - 267, - 268, - 269, - 270 - ] - }, - { - "teal": 245, - "source": 39, - "pc": [ - 271, - 272 - ] - }, - { - "teal": 249, - "source": 40, - "pc": [ - 273 - ] - }, - { - "teal": 250, - "source": 40, - "pc": [ - 274, - 275 - ] - }, - { - "teal": 254, - "source": 41, - "pc": [ - 276 - ] - }, - { - "teal": 255, - "source": 41, - "pc": [ - 277, - 278 - ] - }, - { - "teal": 259, - "source": 42, - "pc": [ - 279 - ] - }, - { - "teal": 260, - "source": 42, - "pc": [ - 280, - 281 - ] - }, - { - "teal": 264, - "source": 43, - "pc": [ - 282 - ] - }, - { - "teal": 265, - "source": 43, - "pc": [ - 283, - 284 - ] - }, - { - "teal": 269, - "source": 44, - "pc": [ - 285, - 286, - 287, - 288, - 289, - 290 - ] - }, - { - "teal": 270, - "source": 44, - "pc": [ - 291, - 292 - ] - }, - { - "teal": 273, - "source": 32, - "pc": [ - 293 - ] - }, - { - "teal": 274, - "source": 32, - "pc": [ - 294, - 295 - ] - }, - { - "teal": 277, - "source": 32, - "pc": [ - 296 - ] - }, - { - "teal": 278, - "source": 31, - "pc": [ - 297 - ] - }, - { - "teal": 283, - "source": 48, - "pc": [ - 298, - 299, - 300 - ] - }, - { - "teal": 284, - "source": 48, - "pc": [ - 301 - ] - }, - { - "teal": 285, - "source": 48, - "pc": [ - 302 - ] - }, - { - "teal": 289, - "source": 48, - "pc": [ - 303, - 304, - 305 - ] - }, - { - "teal": 299, - "source": 49, - "pc": [ - 306 - ] - }, - { - "teal": 300, - "source": 49, - "pc": [ - 307 - ] - }, - { - "teal": 301, - "source": 49, - "pc": [ - 308, - 309 - ] - }, - { - "teal": 305, - "source": 50, - "pc": [ - 310 - ] - }, - { - "teal": 306, - "source": 50, - "pc": [ - 311, - 312 - ] - }, - { - "teal": 310, - "source": 51, - "pc": [ - 313, - 314 - ] - }, - { - "teal": 311, - "source": 51, - "pc": [ - 315, - 316 - ] - }, - { - "teal": 315, - "source": 52, - "pc": [ - 317, - 318 - ] - }, - { - "teal": 316, - "source": 52, - "pc": [ - 319, - 320 - ] - }, - { - "teal": 320, - "source": 53, - "pc": [ - 321, - 322 - ] - }, - { - "teal": 321, - "source": 53, - "pc": [ - 323, - 324 - ] - }, - { - "teal": 325, - "source": 54, - "pc": [ - 325, - 326 - ] - }, - { - "teal": 326, - "source": 54, - "pc": [ - 327, - 328 - ] - }, - { - "teal": 329, - "source": 49, - "pc": [ - 329 - ] - }, - { - "teal": 330, - "source": 49, - "pc": [ - 330, - 331 - ] - }, - { - "teal": 333, - "source": 49, - "pc": [ - 332 - ] - }, - { - "teal": 334, - "source": 48, - "pc": [ - 333 - ] - }, - { - "teal": 339, - "source": 58, - "pc": [ - 334, - 335, - 336 - ] - }, - { - "teal": 340, - "source": 58, - "pc": [ - 337 - ] - }, - { - "teal": 341, - "source": 58, - "pc": [ - 338 - ] - }, - { - "teal": 345, - "source": 58, - "pc": [ - 339, - 340, - 341 - ] - }, - { - "teal": 353, - "source": 59, - "pc": [ - 342 - ] - }, - { - "teal": 354, - "source": 59, - "pc": [ - 343, - 344 - ] - }, - { - "teal": 355, - "source": 59, - "pc": [ - 345, - 346 - ] - }, - { - "teal": 359, - "source": 60, - "pc": [ - 347 - ] - }, - { - "teal": 360, - "source": 60, - "pc": [ - 348, - 349 - ] - }, - { - "teal": 364, - "source": 61, - "pc": [ - 350, - 351 - ] - }, - { - "teal": 365, - "source": 61, - "pc": [ - 352, - 353 - ] - }, - { - "teal": 369, - "source": 62, - "pc": [ - 354 - ] - }, - { - "teal": 370, - "source": 62, - "pc": [ - 355, - 356 - ] - }, - { - "teal": 373, - "source": 59, - "pc": [ - 357 - ] - }, - { - "teal": 374, - "source": 59, - "pc": [ - 358, - 359 - ] - }, - { - "teal": 377, - "source": 59, - "pc": [ - 360 - ] - }, - { - "teal": 378, - "source": 58, - "pc": [ - 361 - ] - }, - { - "teal": 383, - "source": 66, - "pc": [ - 362, - 363, - 364 - ] - }, - { - "teal": 384, - "source": 66, - "pc": [ - 365 - ] - }, - { - "teal": 385, - "source": 66, - "pc": [ - 366 - ] - }, - { - "teal": 389, - "source": 66, - "pc": [ - 367, - 368, - 369 - ] - }, - { - "teal": 399, - "source": 67, - "pc": [ - 370 - ] - }, - { - "teal": 400, - "source": 67, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 401, - "source": 67, - "pc": [ - 373, - 374 - ] - }, - { - "teal": 405, - "source": 68, - "pc": [ - 375 - ] - }, - { - "teal": 406, - "source": 68, - "pc": [ - 376, - 377 - ] - }, - { - "teal": 410, - "source": 69, - "pc": [ - 378, - 379 - ] - }, - { - "teal": 411, - "source": 69, - "pc": [ - 380, - 381 - ] - }, - { - "teal": 415, - "source": 70, - "pc": [ - 382, - 383 - ] - }, - { - "teal": 416, - "source": 70, - "pc": [ - 384, - 385 - ] - }, - { - "teal": 420, - "source": 71, - "pc": [ - 386, - 387 - ] - }, - { - "teal": 421, - "source": 71, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 425, - "source": 72, - "pc": [ - 390 - ] - }, - { - "teal": 426, - "source": 72, - "pc": [ - 391, - 392 - ] - }, - { - "teal": 429, - "source": 67, - "pc": [ - 393 - ] - }, - { - "teal": 430, - "source": 67, - "pc": [ - 394, - 395 - ] - }, - { - "teal": 433, - "source": 67, - "pc": [ - 396 - ] - }, - { - "teal": 434, - "source": 66, - "pc": [ - 397 - ] - }, - { - "teal": 439, - "source": 76, - "pc": [ - 398 - ] - }, - { - "teal": 442, - "source": 76, - "pc": [ - 399, - 400, - 401 - ] - }, - { - "teal": 443, - "source": 76, - "pc": [ - 402 - ] - }, - { - "teal": 444, - "source": 76, - "pc": [ - 403 - ] - }, - { - "teal": 445, - "source": 76, - "pc": [ - 404 - ] - }, - { - "teal": 446, - "source": 76, - "pc": [ - 405 - ] - }, - { - "teal": 447, - "source": 76, - "pc": [ - 406 - ] - }, - { - "teal": 451, - "source": 76, - "pc": [ - 407, - 408, - 409 - ] - }, - { - "teal": 458, - "source": 77, - "pc": [ - 410 - ] - }, - { - "teal": 459, - "source": 77, - "pc": [ - 411 - ] - }, - { - "teal": 460, - "source": 77, - "pc": [ - 412, - 413 - ] - }, - { - "teal": 461, - "source": 78, - "pc": [ - 414, - 415, - 416, - 417, - 418, - 419 - ] - }, - { - "teal": 462, - "source": 78, - "pc": [ - 420, - 421 - ] - }, - { - "teal": 466, - "source": 79, - "pc": [ - 422, - 423, - 424 - ] - }, - { - "teal": 467, - "source": 79, - "pc": [ - 425 - ] - }, - { - "teal": 468, - "source": 79, - "pc": [ - 426, - 427 - ] - }, - { - "teal": 469, - "source": 79, - "pc": [ - 428, - 429, - 430, - 431, - 432, - 433, - 434, - 435, - 436, - 437 - ] - }, - { - "teal": 470, - "source": 79, - "pc": [ - 438, - 439 - ] - }, - { - "teal": 473, - "source": 77, - "pc": [ - 440 - ] - }, - { - "teal": 474, - "source": 77, - "pc": [ - 441, - 442 - ] - }, - { - "teal": 477, - "source": 77, - "pc": [ - 443 - ] - }, - { - "teal": 478, - "source": 77, - "pc": [ - 444, - 445 - ] - }, - { - "teal": 479, - "source": 77, - "pc": [ - 446 - ] - }, - { - "teal": 480, - "source": 77, - "pc": [ - 447 - ] - }, - { - "teal": 481, - "source": 77, - "pc": [ - 448, - 449 - ] - }, - { - "teal": 482, - "source": 77, - "pc": [ - 450, - 451, - 452 - ] - }, - { - "teal": 483, - "source": 77, - "pc": [ - 453 - ] - }, - { - "teal": 484, - "source": 76, - "pc": [ - 454 - ] - }, - { - "teal": 489, - "source": 83, - "pc": [ - 455, - 456, - 457 - ] - }, - { - "teal": 490, - "source": 83, - "pc": [ - 458 - ] - }, - { - "teal": 491, - "source": 83, - "pc": [ - 459 - ] - }, - { - "teal": 495, - "source": 83, - "pc": [ - 460, - 461, - 462 - ] - }, - { - "teal": 506, - "source": 84, - "pc": [ - 463 - ] - }, - { - "teal": 507, - "source": 84, - "pc": [ - 464, - 465 - ] - }, - { - "teal": 508, - "source": 84, - "pc": [ - 466, - 467 - ] - }, - { - "teal": 512, - "source": 85, - "pc": [ - 468 - ] - }, - { - "teal": 513, - "source": 85, - "pc": [ - 469, - 470 - ] - }, - { - "teal": 517, - "source": 86, - "pc": [ - 471 - ] - }, - { - "teal": 518, - "source": 86, - "pc": [ - 472, - 473 - ] - }, - { - "teal": 522, - "source": 87, - "pc": [ - 474 - ] - }, - { - "teal": 523, - "source": 87, - "pc": [ - 475, - 476 - ] - }, - { - "teal": 527, - "source": 88, - "pc": [ - 477 - ] - }, - { - "teal": 528, - "source": 88, - "pc": [ - 478, - 479 - ] - }, - { - "teal": 532, - "source": 89, - "pc": [ - 480 - ] - }, - { - "teal": 533, - "source": 89, - "pc": [ - 481, - 482 - ] - }, - { - "teal": 537, - "source": 90, - "pc": [ - 483 - ] - }, - { - "teal": 538, - "source": 90, - "pc": [ - 484, - 485 - ] - }, - { - "teal": 541, - "source": 84, - "pc": [ - 486 - ] - }, - { - "teal": 542, - "source": 84, - "pc": [ - 487, - 488 - ] - }, - { - "teal": 545, - "source": 84, - "pc": [ - 489 - ] - }, - { - "teal": 546, - "source": 83, - "pc": [ - 490 - ] - }, - { - "teal": 551, - "source": 94, - "pc": [ - 491, - 492, - 493 - ] - }, - { - "teal": 552, - "source": 94, - "pc": [ - 494 - ] - }, - { - "teal": 553, - "source": 94, - "pc": [ - 495 - ] - }, - { - "teal": 557, - "source": 94, - "pc": [ - 496, - 497, - 498 - ] - }, - { - "teal": 561, - "source": 95, - "pc": [ - 499 - ] - }, - { - "teal": 562, - "source": 95, - "pc": [ - 500, - 501 - ] - }, - { - "teal": 563, - "source": 95, - "pc": [ - 502, - 503 - ] - }, - { - "teal": 566, - "source": 95, - "pc": [ - 504 - ] - }, - { - "teal": 567, - "source": 95, - "pc": [ - 505, - 506 - ] - }, - { - "teal": 570, - "source": 95, - "pc": [ - 507 - ] - }, - { - "teal": 571, - "source": 94, - "pc": [ - 508 - ] - }, - { - "teal": 576, - "source": 98, - "pc": [ - 509, - 510, - 511 - ] - }, - { - "teal": 577, - "source": 98, - "pc": [ - 512 - ] - }, - { - "teal": 578, - "source": 98, - "pc": [ - 513 - ] - }, - { - "teal": 582, - "source": 98, - "pc": [ - 514, - 515, - 516 - ] - }, - { - "teal": 589, - "source": 101, - "pc": [ - 517 - ] - }, - { - "teal": 590, - "source": 101, - "pc": [ - 518 - ] - }, - { - "teal": 591, - "source": 101, - "pc": [ - 519, - 520 - ] - }, - { - "teal": 595, - "source": 101, - "pc": [ - 521 - ] - }, - { - "teal": 596, - "source": 101, - "pc": [ - 522, - 523 - ] - }, - { - "teal": 599, - "source": 101, - "pc": [ - 524 - ] - }, - { - "teal": 600, - "source": 101, - "pc": [ - 525, - 526 - ] - }, - { - "teal": 601, - "source": 99, - "pc": [ - 527 - ] - }, - { - "teal": 602, - "source": 99, - "pc": [ - 528 - ] - }, - { - "teal": 603, - "source": 99, - "pc": [ - 529, - 530 - ] - }, - { - "teal": 604, - "source": 100, - "pc": [ - 531, - 532, - 533, - 534, - 535, - 536 - ] - }, - { - "teal": 605, - "source": 100, - "pc": [ - 537, - 538 - ] - }, - { - "teal": 610, - "source": 99, - "pc": [ - 539 - ] - }, - { - "teal": 611, - "source": 99, - "pc": [ - 540, - 541 - ] - }, - { - "teal": 614, - "source": 99, - "pc": [ - 542 - ] - }, - { - "teal": 615, - "source": 98, - "pc": [ - 543 - ] - }, - { - "teal": 618, - "source": 4, - "pc": [ - 544 - ] - }, - { - "teal": 619, - "source": 4, - "pc": [ - 545 - ] - }, - { - "teal": 622, - "source": 4, - "pc": [ - 546, - 547, - 548, - 549, - 550, - 551 - ] - }, - { - "teal": 623, - "source": 4, - "pc": [ - 552, - 553, - 554 - ] - }, - { - "teal": 624, - "source": 4, - "pc": [ - 555, - 556, - 557, - 558 - ] - }, - { - "teal": 627, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 559 - ] - }, - { - "teal": 630, - "source": 4, - "pc": [ - 560, - 561, - 562, - 563, - 564, - 565 - ] - }, - { - "teal": 631, - "source": 4, - "pc": [ - 566, - 567, - 568, - 569, - 570, - 571 - ] - }, - { - "teal": 632, - "source": 4, - "pc": [ - 572, - 573, - 574, - 575, - 576, - 577 - ] - }, - { - "teal": 633, - "source": 4, - "pc": [ - 578, - 579, - 580, - 581, - 582, - 583 - ] - }, - { - "teal": 634, - "source": 4, - "pc": [ - 584, - 585, - 586, - 587, - 588, - 589 - ] - }, - { - "teal": 635, - "source": 4, - "pc": [ - 590, - 591, - 592, - 593, - 594, - 595 - ] - }, - { - "teal": 636, - "source": 4, - "pc": [ - 596, - 597, - 598, - 599, - 600, - 601 - ] - }, - { - "teal": 637, - "source": 4, - "pc": [ - 602, - 603, - 604, - 605, - 606, - 607 - ] - }, - { - "teal": 638, - "source": 4, - "pc": [ - 608, - 609, - 610, - 611, - 612, - 613 - ] - }, - { - "teal": 639, - "source": 4, - "pc": [ - 614, - 615, - 616, - 617, - 618, - 619 - ] - }, - { - "teal": 640, - "source": 4, - "pc": [ - 620, - 621, - 622 - ] - }, - { - "teal": 641, - "source": 4, - "pc": [ - 623, - 624, - 625, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 635, - 636, - 637, - 638, - 639, - 640, - 641, - 642, - 643, - 644 - ] - }, - { - "teal": 644, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 645 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 80 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 745 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 831 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwYXltZW50KCl2b2lkCiphYmlfcm91dGVfcGF5bWVudDoKCS8vIGV4ZWN1dGUgcGF5bWVudCgpdm9pZAoJY2FsbHN1YiBwYXltZW50CglpbnQgMQoJcmV0dXJuCgovLyBwYXltZW50KCk6IHZvaWQKcGF5bWVudDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYKCS8vIHNlbmRQYXltZW50KHsKCS8vICAgICAgIGFtb3VudDogMTAwLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjbG9zZVJlbWFpbmRlclRvOiBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgcmVrZXlUbzogZ2xvYmFscy56ZXJvQWRkcmVzcywKCS8vICAgICAgIG5vdGU6ICdIZWxsbyBXb3JsZCEnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgcGF5CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NwoJLy8gYW1vdW50OiAxMDAKCWludCAxMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OAoJLy8gcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OQoJLy8gY2xvc2VSZW1haW5kZXJUbzogZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMAoJLy8gc2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBTZW5kZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMQoJLy8gcmVrZXlUbzogZ2xvYmFscy56ZXJvQWRkcmVzcwoJZ2xvYmFsIFplcm9BZGRyZXNzCglpdHhuX2ZpZWxkIFJla2V5VG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMgoJLy8gbm90ZTogJ0hlbGxvIFdvcmxkIScKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0MjEgLy8gIkhlbGxvIFdvcmxkISIKCWl0eG5fZmllbGQgTm90ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gYXNzZXRDcmVhdGlvbigpdWludDY0CiphYmlfcm91dGVfYXNzZXRDcmVhdGlvbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhc3NldENyZWF0aW9uKCl1aW50NjQKCWNhbGxzdWIgYXNzZXRDcmVhdGlvbgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFzc2V0Q3JlYXRpb24oKTogQXNzZXRJRAphc3NldENyZWF0aW9uOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTcKCS8vIHJldHVybiBzZW5kQXNzZXRDcmVhdGlvbih7CgkvLyAgICAgICBjb25maWdBc3NldE5hbWU6ICduYW1lJywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICd1bml0JywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0VG90YWw6IDEsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldEZyZWV6ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldERlZmF1bHRGcm96ZW46IDAsCgkvLyAgICAgICBjb25maWdBc3NldFVSTDogJ3VybCcsCgkvLyAgICAgICBjb25maWdBc3NldE1ldGFkYXRhSGFzaDogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCWludCBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTgKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogJ25hbWUnCglieXRlIDB4NmU2MTZkNjUgLy8gIm5hbWUiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE5CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcKCWJ5dGUgMHg3NTZlNjk3NCAvLyAidW5pdCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjIwCgkvLyBjb25maWdBc3NldFRvdGFsOiAxCglpbnQgMQoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjIKCS8vIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjMKCS8vIGNvbmZpZ0Fzc2V0RnJlZXplOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldEZyZWV6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjI0CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjUKCS8vIGNvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbjogMAoJaW50IDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWZhdWx0RnJvemVuCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjYKCS8vIGNvbmZpZ0Fzc2V0VVJMOiAndXJsJwoJYnl0ZSAweDc1NzI2YyAvLyAidXJsIgoJaXR4bl9maWVsZCBDb25maWdBc3NldFVSTAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjI3CgkvLyBjb25maWdBc3NldE1ldGFkYXRhSGFzaDogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBDb25maWdBc3NldE1ldGFkYXRhSGFzaAoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKLy8gYXBwQ2FsbCgpdm9pZAoqYWJpX3JvdXRlX2FwcENhbGw6CgkvLyBleGVjdXRlIGFwcENhbGwoKXZvaWQKCWNhbGxzdWIgYXBwQ2FsbAoJaW50IDEKCXJldHVybgoKLy8gYXBwQ2FsbCgpOiB2b2lkCmFwcENhbGw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozMgoJLy8gc2VuZEFwcENhbGwoewoJLy8gICAgICAgYWNjb3VudHM6IFt0aGlzLmFwcC5hZGRyZXNzXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uQXJnczogWydhcmcxJywgJ2FyZzInXSwKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHRoaXMuYXBwLAoJLy8gICAgICAgYXBwbGljYXRpb25zOiBbdGhpcy5hcHBdLAoJLy8gICAgICAgYXBwcm92YWxQcm9ncmFtOiAnYXBwcm92YWwnLAoJLy8gICAgICAgYXNzZXRzOiBbQXNzZXRJRC56ZXJvSW5kZXhdLAoJLy8gICAgICAgY2xlYXJTdGF0ZVByb2dyYW06ICdjbGVhcicsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IDEsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiAxLAoJLy8gICAgICAgbG9jYWxOdW1CeXRlU2xpY2U6IDEsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IDEsCgkvLyAgICAgICBub3RlOiAnbm90ZScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzMKCS8vIGFjY291bnRzOiBbdGhpcy5hcHAuYWRkcmVzc10KCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFjY291bnRzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzQKCS8vIGFwcGxpY2F0aW9uQXJnczogWydhcmcxJywgJ2FyZzInXQoJYnl0ZSAweDYxNzI2NzMxIC8vICJhcmcxIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHg2MTcyNjczMiAvLyAiYXJnMiIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzUKCS8vIGFwcGxpY2F0aW9uSUQ6IHRoaXMuYXBwCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNgoJLy8gYXBwbGljYXRpb25zOiBbdGhpcy5hcHBdCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9ucwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM3CgkvLyBhcHByb3ZhbFByb2dyYW06ICdhcHByb3ZhbCcKCWJ5dGUgMHg2MTcwNzA3MjZmNzY2MTZjIC8vICJhcHByb3ZhbCIKCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzgKCS8vIGFzc2V0czogW0Fzc2V0SUQuemVyb0luZGV4XQoJaW50IDAKCWl0eG5fZmllbGQgQXNzZXRzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzkKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiAnY2xlYXInCglieXRlIDB4NjM2YzY1NjE3MiAvLyAiY2xlYXIiCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogMQoJaW50IDEKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDEKCS8vIGdsb2JhbE51bVVpbnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo0MgoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IDEKCWludCAxCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDMKCS8vIGxvY2FsTnVtVWludDogMQoJaW50IDEKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDQKCS8vIG5vdGU6ICdub3RlJwoJYnl0ZSAweDZlNmY3NDY1IC8vICJub3RlIgoJaXR4bl9maWVsZCBOb3RlCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldENvbmZpZygpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0Q29uZmlnOgoJLy8gZXhlY3V0ZSBhc3NldENvbmZpZygpdm9pZAoJY2FsbHN1YiBhc3NldENvbmZpZwoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRDb25maWcoKTogdm9pZAphc3NldENvbmZpZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjQ5CgkvLyBzZW5kQXNzZXRDb25maWcoewoJLy8gICAgICAgY29uZmlnQXNzZXQ6IEFzc2V0SUQuemVyb0luZGV4LAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjUwCgkvLyBjb25maWdBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgKCWludCAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTIKCS8vIGNvbmZpZ0Fzc2V0UmVzZXJ2ZTogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTMKCS8vIGNvbmZpZ0Fzc2V0RnJlZXplOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldEZyZWV6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjU0CgkvLyBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldENsYXdiYWNrCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldEZyZWV6ZSgpdm9pZAoqYWJpX3JvdXRlX2Fzc2V0RnJlZXplOgoJLy8gZXhlY3V0ZSBhc3NldEZyZWV6ZSgpdm9pZAoJY2FsbHN1YiBhc3NldEZyZWV6ZQoJaW50IDEKCXJldHVybgoKLy8gYXNzZXRGcmVlemUoKTogdm9pZAphc3NldEZyZWV6ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjU5CgkvLyBzZW5kQXNzZXRGcmVlemUoewoJLy8gICAgICAgZnJlZXplQXNzZXRGcm96ZW46IHRydWUsCgkvLyAgICAgICBmcmVlemVBc3NldEFjY291bnQ6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBmcmVlemVBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBhZnJ6CglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjAKCS8vIGZyZWV6ZUFzc2V0RnJvemVuOiB0cnVlCglpbnQgMQoJaXR4bl9maWVsZCBGcmVlemVBc3NldEZyb3plbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYxCgkvLyBmcmVlemVBc3NldEFjY291bnQ6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0QWNjb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjYyCgkvLyBmcmVlemVBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgKCWludCAwCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBhc3NldFRyYW5zZmVyKCl2b2lkCiphYmlfcm91dGVfYXNzZXRUcmFuc2ZlcjoKCS8vIGV4ZWN1dGUgYXNzZXRUcmFuc2Zlcigpdm9pZAoJY2FsbHN1YiBhc3NldFRyYW5zZmVyCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldFRyYW5zZmVyKCk6IHZvaWQKYXNzZXRUcmFuc2ZlcjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY3CgkvLyBzZW5kQXNzZXRUcmFuc2Zlcih7CgkvLyAgICAgICBhc3NldEFtb3VudDogMSwKCS8vICAgICAgIGFzc2V0Q2xvc2VUbzogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBhc3NldFNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBheGZlcgoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY4CgkvLyBhc3NldEFtb3VudDogMQoJaW50IDEKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2OQoJLy8gYXNzZXRDbG9zZVRvOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3MAoJLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcxCgkvLyBhc3NldFNlbmRlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQXNzZXRTZW5kZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3MgoJLy8geGZlckFzc2V0OiBBc3NldElELnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBtZXRob2RDYWxsKCl1aW50NjQKKmFiaV9yb3V0ZV9tZXRob2RDYWxsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1ldGhvZENhbGwoKXVpbnQ2NAoJY2FsbHN1YiBtZXRob2RDYWxsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbWV0aG9kQ2FsbCgpOiBBc3NldElECm1ldGhvZENhbGw6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo3NwoJLy8gcmV0dXJuIHNlbmRNZXRob2RDYWxsPFtBcHBJRCwgQXNzZXRJRF0sIEFzc2V0SUQ+KHsKCS8vICAgICAgIG5hbWU6ICdtZXRob2QnLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3RoaXMuYXBwLCBBc3NldElELnplcm9JbmRleF0sCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoJbWV0aG9kICJtZXRob2QodWludDY0LHVpbnQ2NCl1aW50NjQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjc5CgkvLyBtZXRob2RBcmdzOiBbdGhpcy5hcHAsIEFzc2V0SUQuemVyb0luZGV4XQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJaXRvYgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gTnVtTG9ncwoJaW50IDEKCS0KCWl0eG5hcyBMb2dzCglleHRyYWN0IDQgMAoJYnRvaQoJcmV0c3ViCgovLyBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vbmxpbmVLZXlSZWdpc3RyYXRpb246CgkvLyBleGVjdXRlIG9ubGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZAoJY2FsbHN1YiBvbmxpbmVLZXlSZWdpc3RyYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9ubGluZUtleVJlZ2lzdHJhdGlvbigpOiB2b2lkCm9ubGluZUtleVJlZ2lzdHJhdGlvbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg0CgkvLyBzZW5kT25saW5lS2V5UmVnaXN0cmF0aW9uKHsKCS8vICAgICAgIHNlbGVjdGlvblBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgICAgc3RhdGVQcm9vZlBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgICAgdm90ZUZpcnN0OiAxLAoJLy8gICAgICAgdm90ZUtleURpbHV0aW9uOiAxLAoJLy8gICAgICAgdm90ZUxhc3Q6IDEsCgkvLyAgICAgICB2b3RlUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBrZXlyZWcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NQoJLy8gc2VsZWN0aW9uUEs6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgU2VsZWN0aW9uUEsKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NgoJLy8gc3RhdGVQcm9vZlBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFN0YXRlUHJvb2ZQSwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg3CgkvLyB2b3RlRmlyc3Q6IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVGaXJzdAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg4CgkvLyB2b3RlS2V5RGlsdXRpb246IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVLZXlEaWx1dGlvbgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjg5CgkvLyB2b3RlTGFzdDogMQoJaW50IDEKCWl0eG5fZmllbGQgVm90ZUxhc3QKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5MAoJLy8gdm90ZVBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFZvdGVQSwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gb2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZAoqYWJpX3JvdXRlX29mZmxpbmVLZXlSZWdpc3RyYXRpb246CgkvLyBleGVjdXRlIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKCWNhbGxzdWIgb2ZmbGluZUtleVJlZ2lzdHJhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gb2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpOiB2b2lkCm9mZmxpbmVLZXlSZWdpc3RyYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5NQoJLy8gc2VuZE9mZmxpbmVLZXlSZWdpc3RyYXRpb24oe30pCglpdHhuX2JlZ2luCglpbnQga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBpbm5lckdlbmVyaWMoKXZvaWQKKmFiaV9yb3V0ZV9pbm5lckdlbmVyaWM6CgkvLyBleGVjdXRlIGlubmVyR2VuZXJpYygpdm9pZAoJY2FsbHN1YiBpbm5lckdlbmVyaWMKCWludCAxCglyZXR1cm4KCi8vIGlubmVyR2VuZXJpYygpOiB2b2lkCmlubmVyR2VuZXJpYzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjk5CgkvLyBzZW5kTWV0aG9kQ2FsbDxbSW5uZXJUeG48SW5uZXJBc3NldENyZWF0aW9uPl0sIHZvaWQ+KHsKCS8vICAgICAgIG5hbWU6ICdmb28nLAoJLy8gICAgICAgbWV0aG9kQXJnczogW3sgY29uZmlnQXNzZXRUb3RhbDogMSB9XSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMDEKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCWl0eG5fbmV4dAoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZm9vKHR4bil2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoxMDEKCS8vIG1ldGhvZEFyZ3M6IFt7IGNvbmZpZ0Fzc2V0VG90YWw6IDEgfV0KCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInBheW1lbnQoKXZvaWQiCgltZXRob2QgImFzc2V0Q3JlYXRpb24oKXVpbnQ2NCIKCW1ldGhvZCAiYXBwQ2FsbCgpdm9pZCIKCW1ldGhvZCAiYXNzZXRDb25maWcoKXZvaWQiCgltZXRob2QgImFzc2V0RnJlZXplKCl2b2lkIgoJbWV0aG9kICJhc3NldFRyYW5zZmVyKCl2b2lkIgoJbWV0aG9kICJtZXRob2RDYWxsKCl1aW50NjQiCgltZXRob2QgIm9ubGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZCIKCW1ldGhvZCAib2ZmbGluZUtleVJlZ2lzdHJhdGlvbigpdm9pZCIKCW1ldGhvZCAiaW5uZXJHZW5lcmljKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wYXltZW50ICphYmlfcm91dGVfYXNzZXRDcmVhdGlvbiAqYWJpX3JvdXRlX2FwcENhbGwgKmFiaV9yb3V0ZV9hc3NldENvbmZpZyAqYWJpX3JvdXRlX2Fzc2V0RnJlZXplICphYmlfcm91dGVfYXNzZXRUcmFuc2ZlciAqYWJpX3JvdXRlX21ldGhvZENhbGwgKmFiaV9yb3V0ZV9vbmxpbmVLZXlSZWdpc3RyYXRpb24gKmFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uICphYmlfcm91dGVfaW5uZXJHZW5lcmljCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAKYnl0ZWNibG9jayAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgMHgxNTFmN2M3NQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHBheW1lbnQoKXZvaWQKKmFiaV9yb3V0ZV9wYXltZW50OgoJLy8gZXhlY3V0ZSBwYXltZW50KCl2b2lkCgljYWxsc3ViIHBheW1lbnQKCWludCAxCglyZXR1cm4KCi8vIHBheW1lbnQoKTogdm9pZApwYXltZW50OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NgoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiAxMDAsCgkvLyAgICAgICByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNsb3NlUmVtYWluZGVyVG86IGdsb2JhbHMuemVyb0FkZHJlc3MsCgkvLyAgICAgICBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICByZWtleVRvOiBnbG9iYWxzLnplcm9BZGRyZXNzLAoJLy8gICAgICAgbm90ZTogJ0hlbGxvIFdvcmxkIScsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCAxIC8vIHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcKCS8vIGFtb3VudDogMTAwCglwdXNoaW50IDEwMAoJaXR4bl9maWVsZCBBbW91bnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4CgkvLyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgUmVjZWl2ZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5CgkvLyBjbG9zZVJlbWFpbmRlclRvOiBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWl0eG5fZmllbGQgQ2xvc2VSZW1haW5kZXJUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjEwCgkvLyBzZW5kZXI6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjExCgkvLyByZWtleVRvOiBnbG9iYWxzLnplcm9BZGRyZXNzCglnbG9iYWwgWmVyb0FkZHJlc3MKCWl0eG5fZmllbGQgUmVrZXlUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjEyCgkvLyBub3RlOiAnSGVsbG8gV29ybGQhJwoJcHVzaGJ5dGVzIDB4NDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NDIxIC8vICJIZWxsbyBXb3JsZCEiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0Q3JlYXRpb24oKXVpbnQ2NAoqYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb246CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYXNzZXRDcmVhdGlvbigpdWludDY0CgljYWxsc3ViIGFzc2V0Q3JlYXRpb24KCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldENyZWF0aW9uKCk6IEFzc2V0SUQKYXNzZXRDcmVhdGlvbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE3CgkvLyByZXR1cm4gc2VuZEFzc2V0Q3JlYXRpb24oewoJLy8gICAgICAgY29uZmlnQXNzZXROYW1lOiAnbmFtZScsCgkvLyAgICAgICBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcsCgkvLyAgICAgICBjb25maWdBc3NldFRvdGFsOiAxLAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldENsYXdiYWNrOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXREZWZhdWx0RnJvemVuOiAwLAoJLy8gICAgICAgY29uZmlnQXNzZXRVUkw6ICd1cmwnLAoJLy8gICAgICAgY29uZmlnQXNzZXRNZXRhZGF0YUhhc2g6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScsCgkvLyAgICAgfSk7CglpdHhuX2JlZ2luCglwdXNoaW50IDMgLy8gYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE4CgkvLyBjb25maWdBc3NldE5hbWU6ICduYW1lJwoJcHVzaGJ5dGVzIDB4NmU2MTZkNjUgLy8gIm5hbWUiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjE5CgkvLyBjb25maWdBc3NldFVuaXROYW1lOiAndW5pdCcKCXB1c2hieXRlcyAweDc1NmU2OTc0IC8vICJ1bml0IgoJaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjAKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyMwoJLy8gY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MjQKCS8vIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNQoJLy8gY29uZmlnQXNzZXREZWZhdWx0RnJvemVuOiAwCglpbnQgMAoJaXR4bl9maWVsZCBDb25maWdBc3NldERlZmF1bHRGcm96ZW4KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNgoJLy8gY29uZmlnQXNzZXRVUkw6ICd1cmwnCglwdXNoYnl0ZXMgMHg3NTcyNmMgLy8gInVybCIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czoyNwoJLy8gY29uZmlnQXNzZXRNZXRhZGF0YUhhc2g6ICdhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYScKCWJ5dGUgMHg2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxIC8vICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNZXRhZGF0YUhhc2gKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIENyZWF0ZWRBc3NldElECglyZXRzdWIKCi8vIGFwcENhbGwoKXZvaWQKKmFiaV9yb3V0ZV9hcHBDYWxsOgoJLy8gZXhlY3V0ZSBhcHBDYWxsKCl2b2lkCgljYWxsc3ViIGFwcENhbGwKCWludCAxCglyZXR1cm4KCi8vIGFwcENhbGwoKTogdm9pZAphcHBDYWxsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzIKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFjY291bnRzOiBbdGhpcy5hcHAuYWRkcmVzc10sCgkvLyAgICAgICBhcHBsaWNhdGlvbkFyZ3M6IFsnYXJnMScsICdhcmcyJ10sCgkvLyAgICAgICBhcHBsaWNhdGlvbklEOiB0aGlzLmFwcCwKCS8vICAgICAgIGFwcGxpY2F0aW9uczogW3RoaXMuYXBwXSwKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJywKCS8vICAgICAgIGFzc2V0czogW0Fzc2V0SUQuemVyb0luZGV4XSwKCS8vICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiAnY2xlYXInLAoJLy8gICAgICAgZ2xvYmFsTnVtQnl0ZVNsaWNlOiAxLAoJLy8gICAgICAgZ2xvYmFsTnVtVWludDogMSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiAxLAoJLy8gICAgICAgbG9jYWxOdW1VaW50OiAxLAoJLy8gICAgICAgbm90ZTogJ25vdGUnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDYgLy8gYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjMzCgkvLyBhY2NvdW50czogW3RoaXMuYXBwLmFkZHJlc3NdCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBY2NvdW50cwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM0CgkvLyBhcHBsaWNhdGlvbkFyZ3M6IFsnYXJnMScsICdhcmcyJ10KCXB1c2hieXRlcyAweDYxNzI2NzMxIC8vICJhcmcxIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCXB1c2hieXRlcyAweDYxNzI2NzMyIC8vICJhcmcyIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czozNQoJLy8gYXBwbGljYXRpb25JRDogdGhpcy5hcHAKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25JRAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM2CgkvLyBhcHBsaWNhdGlvbnM6IFt0aGlzLmFwcF0KCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0eG5fZmllbGQgQXBwbGljYXRpb25zCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MzcKCS8vIGFwcHJvdmFsUHJvZ3JhbTogJ2FwcHJvdmFsJwoJcHVzaGJ5dGVzIDB4NjE3MDcwNzI2Zjc2NjE2YyAvLyAiYXBwcm92YWwiCglpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM4CgkvLyBhc3NldHM6IFtBc3NldElELnplcm9JbmRleF0KCWludCAwCglpdHhuX2ZpZWxkIEFzc2V0cwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjM5CgkvLyBjbGVhclN0YXRlUHJvZ3JhbTogJ2NsZWFyJwoJcHVzaGJ5dGVzIDB4NjM2YzY1NjE3MiAvLyAiY2xlYXIiCglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDAKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogMQoJaW50IDEKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDEKCS8vIGdsb2JhbE51bVVpbnQ6IDEKCWludCAxCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo0MgoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IDEKCWludCAxCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDMKCS8vIGxvY2FsTnVtVWludDogMQoJaW50IDEKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDQKCS8vIG5vdGU6ICdub3RlJwoJcHVzaGJ5dGVzIDB4NmU2Zjc0NjUgLy8gIm5vdGUiCglpdHhuX2ZpZWxkIE5vdGUKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0Q29uZmlnKCl2b2lkCiphYmlfcm91dGVfYXNzZXRDb25maWc6CgkvLyBleGVjdXRlIGFzc2V0Q29uZmlnKCl2b2lkCgljYWxsc3ViIGFzc2V0Q29uZmlnCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldENvbmZpZygpOiB2b2lkCmFzc2V0Q29uZmlnOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NDkKCS8vIHNlbmRBc3NldENvbmZpZyh7CgkvLyAgICAgICBjb25maWdBc3NldDogQXNzZXRJRC56ZXJvSW5kZXgsCgkvLyAgICAgICBjb25maWdBc3NldE1hbmFnZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBjb25maWdBc3NldEZyZWV6ZTogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgMyAvLyBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTAKCS8vIGNvbmZpZ0Fzc2V0OiBBc3NldElELnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MQoJLy8gY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldE1hbmFnZXIKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MgoJLy8gY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBDb25maWdBc3NldFJlc2VydmUKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo1MwoJLy8gY29uZmlnQXNzZXRGcmVlemU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RnJlZXplCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTQKCS8vIGNvbmZpZ0Fzc2V0Q2xhd2JhY2s6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0Q2xhd2JhY2sKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0RnJlZXplKCl2b2lkCiphYmlfcm91dGVfYXNzZXRGcmVlemU6CgkvLyBleGVjdXRlIGFzc2V0RnJlZXplKCl2b2lkCgljYWxsc3ViIGFzc2V0RnJlZXplCglpbnQgMQoJcmV0dXJuCgovLyBhc3NldEZyZWV6ZSgpOiB2b2lkCmFzc2V0RnJlZXplOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NTkKCS8vIHNlbmRBc3NldEZyZWV6ZSh7CgkvLyAgICAgICBmcmVlemVBc3NldEZyb3plbjogdHJ1ZSwKCS8vICAgICAgIGZyZWV6ZUFzc2V0QWNjb3VudDogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGZyZWV6ZUFzc2V0OiBBc3NldElELnplcm9JbmRleCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA1IC8vIGFmcnoKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo2MAoJLy8gZnJlZXplQXNzZXRGcm96ZW46IHRydWUKCWludCAxCglpdHhuX2ZpZWxkIEZyZWV6ZUFzc2V0RnJvemVuCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjEKCS8vIGZyZWV6ZUFzc2V0QWNjb3VudDogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgRnJlZXplQXNzZXRBY2NvdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjIKCS8vIGZyZWV6ZUFzc2V0OiBBc3NldElELnplcm9JbmRleAoJaW50IDAKCWl0eG5fZmllbGQgRnJlZXplQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIGFzc2V0VHJhbnNmZXIoKXZvaWQKKmFiaV9yb3V0ZV9hc3NldFRyYW5zZmVyOgoJLy8gZXhlY3V0ZSBhc3NldFRyYW5zZmVyKCl2b2lkCgljYWxsc3ViIGFzc2V0VHJhbnNmZXIKCWludCAxCglyZXR1cm4KCi8vIGFzc2V0VHJhbnNmZXIoKTogdm9pZAphc3NldFRyYW5zZmVyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjcKCS8vIHNlbmRBc3NldFRyYW5zZmVyKHsKCS8vICAgICAgIGFzc2V0QW1vdW50OiAxLAoJLy8gICAgICAgYXNzZXRDbG9zZVRvOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIGFzc2V0U2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgeGZlckFzc2V0OiBBc3NldElELnplcm9JbmRleCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJcHVzaGludCA0IC8vIGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NjgKCS8vIGFzc2V0QW1vdW50OiAxCglpbnQgMQoJaXR4bl9maWVsZCBBc3NldEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjY5CgkvLyBhc3NldENsb3NlVG86IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIEFzc2V0Q2xvc2VUbwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcwCgkvLyBhc3NldFJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzEKCS8vIGFzc2V0U2VuZGVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBBc3NldFNlbmRlcgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjcyCgkvLyB4ZmVyQXNzZXQ6IEFzc2V0SUQuemVyb0luZGV4CglpbnQgMAoJaXR4bl9maWVsZCBYZmVyQXNzZXQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG1ldGhvZENhbGwoKXVpbnQ2NAoqYWJpX3JvdXRlX21ldGhvZENhbGw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWV0aG9kQ2FsbCgpdWludDY0CgljYWxsc3ViIG1ldGhvZENhbGwKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBtZXRob2RDYWxsKCk6IEFzc2V0SUQKbWV0aG9kQ2FsbDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pdHhucy5hbGdvLnRzOjc3CgkvLyByZXR1cm4gc2VuZE1ldGhvZENhbGw8W0FwcElELCBBc3NldElEXSwgQXNzZXRJRD4oewoJLy8gICAgICAgbmFtZTogJ21ldGhvZCcsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbdGhpcy5hcHAsIEFzc2V0SUQuemVyb0luZGV4XSwKCS8vICAgICB9KTsKCWl0eG5fYmVnaW4KCXB1c2hpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHhhNjZkNTU5YyAvLyBtZXRob2QgIm1ldGhvZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6NzkKCS8vIG1ldGhvZEFyZ3M6IFt0aGlzLmFwcCwgQXNzZXRJRC56ZXJvSW5kZXhdCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglpdG9iCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMAoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglpdHhuIE51bUxvZ3MKCWludCAxCgktCglpdHhuYXMgTG9ncwoJZXh0cmFjdCA0IDAKCWJ0b2kKCXJldHN1YgoKLy8gb25saW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCiphYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKCWNhbGxzdWIgb25saW5lS2V5UmVnaXN0cmF0aW9uCglpbnQgMQoJcmV0dXJuCgovLyBvbmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvbmxpbmVLZXlSZWdpc3RyYXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NAoJLy8gc2VuZE9ubGluZUtleVJlZ2lzdHJhdGlvbih7CgkvLyAgICAgICBzZWxlY3Rpb25QSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICAgIHN0YXRlUHJvb2ZQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJywKCS8vICAgICAgIHZvdGVGaXJzdDogMSwKCS8vICAgICAgIHZvdGVLZXlEaWx1dGlvbjogMSwKCS8vICAgICAgIHZvdGVMYXN0OiAxLAoJLy8gICAgICAgdm90ZVBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnLAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglwdXNoaW50IDIgLy8ga2V5cmVnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODUKCS8vIHNlbGVjdGlvblBLOiAnYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEnCglieXRlIDB4NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MSAvLyAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiCglpdHhuX2ZpZWxkIFNlbGVjdGlvblBLCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6ODYKCS8vIHN0YXRlUHJvb2ZQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBTdGF0ZVByb29mUEsKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4NwoJLy8gdm90ZUZpcnN0OiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlRmlyc3QKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4OAoJLy8gdm90ZUtleURpbHV0aW9uOiAxCglpbnQgMQoJaXR4bl9maWVsZCBWb3RlS2V5RGlsdXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo4OQoJLy8gdm90ZUxhc3Q6IDEKCWludCAxCglpdHhuX2ZpZWxkIFZvdGVMYXN0CgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTAKCS8vIHZvdGVQSzogJ2FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhJwoJYnl0ZSAweDYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjEgLy8gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIgoJaXR4bl9maWVsZCBWb3RlUEsKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQKKmFiaV9yb3V0ZV9vZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJLy8gZXhlY3V0ZSBvZmZsaW5lS2V5UmVnaXN0cmF0aW9uKCl2b2lkCgljYWxsc3ViIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24KCWludCAxCglyZXR1cm4KCi8vIG9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKTogdm9pZApvZmZsaW5lS2V5UmVnaXN0cmF0aW9uOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6OTUKCS8vIHNlbmRPZmZsaW5lS2V5UmVnaXN0cmF0aW9uKHt9KQoJaXR4bl9iZWdpbgoJcHVzaGludCAyIC8vIGtleXJlZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gaW5uZXJHZW5lcmljKCl2b2lkCiphYmlfcm91dGVfaW5uZXJHZW5lcmljOgoJLy8gZXhlY3V0ZSBpbm5lckdlbmVyaWMoKXZvaWQKCWNhbGxzdWIgaW5uZXJHZW5lcmljCglpbnQgMQoJcmV0dXJuCgovLyBpbm5lckdlbmVyaWMoKTogdm9pZAppbm5lckdlbmVyaWM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaXR4bnMuYWxnby50czo5OQoJLy8gc2VuZE1ldGhvZENhbGw8W0lubmVyVHhuPElubmVyQXNzZXRDcmVhdGlvbj5dLCB2b2lkPih7CgkvLyAgICAgICBuYW1lOiAnZm9vJywKCS8vICAgICAgIG1ldGhvZEFyZ3M6IFt7IGNvbmZpZ0Fzc2V0VG90YWw6IDEgfV0sCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCXB1c2hpbnQgMyAvLyBhY2ZnCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTAxCgkvLyBjb25maWdBc3NldFRvdGFsOiAxCglpbnQgMQoJaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCglpdHhuX25leHQKCXB1c2hpbnQgNiAvLyBhcHBsCglpdHhuX2ZpZWxkIFR5cGVFbnVtCglwdXNoYnl0ZXMgMHgwOTA5MjRlOCAvLyBtZXRob2QgImZvbyh0eG4pdm9pZCIKCWl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCgoJLy8gdGVzdHMvY29udHJhY3RzL2l0eG5zLmFsZ28udHM6MTAxCgkvLyBtZXRob2RBcmdzOiBbeyBjb25maWdBc3NldFRvdGFsOiAxIH1dCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4N2EyZWNiMWMgLy8gbWV0aG9kICJwYXltZW50KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZGY5YjM4YWQgLy8gbWV0aG9kICJhc3NldENyZWF0aW9uKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg2OTBjZThiNiAvLyBtZXRob2QgImFwcENhbGwoKXZvaWQiCglwdXNoYnl0ZXMgMHg4ZjMxMDUzNCAvLyBtZXRob2QgImFzc2V0Q29uZmlnKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZjgzNGJlZTggLy8gbWV0aG9kICJhc3NldEZyZWV6ZSgpdm9pZCIKCXB1c2hieXRlcyAweDFmNDQxOGI3IC8vIG1ldGhvZCAiYXNzZXRUcmFuc2Zlcigpdm9pZCIKCXB1c2hieXRlcyAweDcwYWRmYTIzIC8vIG1ldGhvZCAibWV0aG9kQ2FsbCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ZTZlYzQ2ZmMgLy8gbWV0aG9kICJvbmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQiCglwdXNoYnl0ZXMgMHgxMTcyMzAxYSAvLyBtZXRob2QgIm9mZmxpbmVLZXlSZWdpc3RyYXRpb24oKXZvaWQiCglwdXNoYnl0ZXMgMHg3YTMzODk3ZCAvLyBtZXRob2QgImlubmVyR2VuZXJpYygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfcGF5bWVudCAqYWJpX3JvdXRlX2Fzc2V0Q3JlYXRpb24gKmFiaV9yb3V0ZV9hcHBDYWxsICphYmlfcm91dGVfYXNzZXRDb25maWcgKmFiaV9yb3V0ZV9hc3NldEZyZWV6ZSAqYWJpX3JvdXRlX2Fzc2V0VHJhbnNmZXIgKmFiaV9yb3V0ZV9tZXRob2RDYWxsICphYmlfcm91dGVfb25saW5lS2V5UmVnaXN0cmF0aW9uICphYmlfcm91dGVfb2ZmbGluZUtleVJlZ2lzdHJhdGlvbiAqYWJpX3JvdXRlX2lubmVyR2VuZXJpYwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAFAQAGAwImAiBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQQVH3x1MRgUJAsxGQiNDAHeAAAAAAAAAAAAAAHQAAAAAAAAAAAAAACIAAIiQ4oAALEishCBZLIIMgqyBzIDsgkyCrIAMgOyIIAMSGVsbG8gV29ybGQhsgUjsgGziSmIAAUWULAiQ4oAAbElshCABG5hbWWyJoAEdW5pdLIlIrIiMgqyKTIKsioyCrIrMgqyLCOyJIADdXJssicosigjsgGztDyJiAACIkOKAACxJLIQMgqyHIAEYXJnMbIagARhcmcysho2MgCyGDYyALIygAhhcHByb3ZhbLIeI7IwgAVjbGVhcrIfIrI1IrI0IrI3IrI2gARub3RlsgUjsgGziYgAAiJDigAAsSWyECOyITIKsikyCrIqMgqyKzIKsiwjsgGziYgAAiJDigAAsYEFshAisi8yCrIuI7ItI7IBs4mIAAIiQ4oAALGBBLIQIrISMgqyFTIKshQyCrITI7IRI7IBs4kpiAAFFlCwIkOKAAGxJLIQgASmbVWcsho2MgAWshqACAAAAAAAAAAAshojsgGztDsiCcU6VwQAF4mIAAIiQ4oAALEhBLIQKLILKLI/IrIMIrIOIrINKLIKI7IBs4mIAAIiQ4oAALEhBLIQI7IBs4mIAAIiQ4oAALElshAisiIjsgG2JLIQgAQJCSToshojsgGziSJDgAS4RHs2NhoAjgH/8QCABHouyxyABN+bOK2ABGkM6LaABI8xBTSABPg0vuiABB9EGLeABHCt+iOABObsRvyABBFyMBqABHoziX02GgCOCv3O/gP+Sv6l/sn+5f8J/0L/Zv94AA==", + "approval": "CiACAQAmAiBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQQVH3x1MRgUgQYLMRkIjQwCmgAAAAAAAAAAAAACjAAAAAAAAAAAAAAAiAADgQFDigAAsYEBshCBZLIIMgqyBzIDsgkyCrIAMgOyIIAMSGVsbG8gV29ybGQhsgWBALIBs4mABBUffHWIAAYWULCBAUOKAAGxgQOyEIAEbmFtZbImgAR1bml0siWBAbIiMgqyKTIKsioyCrIrMgqyLIEAsiSAA3VybLIngCBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYbIogQCyAbO0PImIAAOBAUOKAACxgQayEDIKshyABGFyZzGyGoAEYXJnMrIaNjIAshg2MgCyMoAIYXBwcm92YWyyHoEAsjCABWNsZWFysh+BAbI1gQGyNIEBsjeBAbI2gARub3RlsgWBALIBs4mIAAOBAUOKAACxgQOyEIEAsiEyCrIpMgqyKjIKsisyCrIsgQCyAbOJiAADgQFDigAAsYEFshCBAbIvMgqyLoEAsi2BALIBs4mIAAOBAUOKAACxgQSyEIEBshIyCrIVMgqyFDIKshOBALIRgQCyAbOJgAQVH3x1iAAGFlCwgQFDigABsYEGshCABKZtVZyyGjYyABayGoAIAAAAAAAAAACyGoEAsgGztDuBAQnFOlcEABeJiAADgQFDigAAsYECshCAIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhsguAIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhsj+BAbIMgQGyDoEBsg2AIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhsgqBALIBs4mIAAOBAUOKAACxgQKyEIEAsgGziYgAA4EBQ4oAALGBA7IQgQGyIoEAsgG2gQayEIAECQkk6LIagQCyAbOJgQFDgAS4RHs2NhoAjgH/8ACABHouyxyABN+bOK2ABGkM6LaABI8xBTSABPg0vuiABB9EGLeABHCt+iOABObsRvyABBFyMBqABHoziX02GgCOCv0S/Ur9vP4f/kf+Z/6P/tH/Xf9xAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/LoopsTest.approval.teal b/tests/contracts/artifacts/LoopsTest.approval.teal index c593a8df2..fea3c6b2d 100644 --- a/tests/contracts/artifacts/LoopsTest.approval.teal +++ b/tests/contracts/artifacts/LoopsTest.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 0 10 +bytecblock 0x151f7c75 0x -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -239,7 +241,7 @@ breakWhileLoop: // tests/contracts/loops.algo.ts:41 // i === 5 frame_dig 0 // i: uint64 - int 5 + pushint 5 == bz *if0_end @@ -297,14 +299,14 @@ continueWhileLoop: // tests/contracts/loops.algo.ts:51 // i === 5 frame_dig 0 // i: uint64 - int 5 + pushint 5 == bz *if1_end // *if1_consequent // tests/contracts/loops.algo.ts:52 // i = 1337 - int 1337 + pushint 1337 frame_bury 0 // i: uint64 b *while_2_continue @@ -376,7 +378,7 @@ breakForLoop: // tests/contracts/loops.algo.ts:66 // i === 5 frame_dig 0 // i: uint64 - int 5 + pushint 5 == bz *if2_end @@ -449,14 +451,14 @@ continueForLoop: // tests/contracts/loops.algo.ts:76 // i === 5 frame_dig 0 // i: uint64 - int 5 + pushint 5 == bz *if3_end // *if3_consequent // tests/contracts/loops.algo.ts:77 // i = 1337 - int 1337 + pushint 1337 frame_bury 0 // i: uint64 b *for_2_continue @@ -526,7 +528,7 @@ breakDoWhileLoop: // tests/contracts/loops.algo.ts:91 // i === 5 frame_dig 0 // i: uint64 - int 5 + pushint 5 == bz *if4_end @@ -584,14 +586,14 @@ continueDoWhileLoop: // tests/contracts/loops.algo.ts:101 // i === 5 frame_dig 0 // i: uint64 - int 5 + pushint 5 == bz *if5_end // *if5_consequent // tests/contracts/loops.algo.ts:102 // i = 1337 - int 1337 + pushint 1337 frame_bury 0 // i: uint64 b *do_while_2_continue @@ -627,7 +629,7 @@ continueDoWhileLoop: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -635,15 +637,15 @@ continueDoWhileLoop: err *call_NoOp: - method "whileLoop()uint64" - method "forLoop()uint64" - method "doWhileLoop()uint64" - method "breakWhileLoop()uint64" - method "continueWhileLoop()uint64" - method "breakForLoop()uint64" - method "continueForLoop()uint64" - method "breakDoWhileLoop()uint64" - method "continueDoWhileLoop()uint64" + pushbytes 0xe164bbd9 // method "whileLoop()uint64" + pushbytes 0x5b3ed9f6 // method "forLoop()uint64" + pushbytes 0x1d861a3d // method "doWhileLoop()uint64" + pushbytes 0x821fe829 // method "breakWhileLoop()uint64" + pushbytes 0x8d15280a // method "continueWhileLoop()uint64" + pushbytes 0x6897cf5e // method "breakForLoop()uint64" + pushbytes 0x99cbacab // method "continueForLoop()uint64" + pushbytes 0x86d5edd3 // method "breakDoWhileLoop()uint64" + pushbytes 0xe01d9d42 // method "continueDoWhileLoop()uint64" txna ApplicationArgs 0 match *abi_route_whileLoop *abi_route_forLoop *abi_route_doWhileLoop *abi_route_breakWhileLoop *abi_route_continueWhileLoop *abi_route_breakForLoop *abi_route_continueForLoop *abi_route_breakDoWhileLoop *abi_route_continueDoWhileLoop diff --git a/tests/contracts/artifacts/LoopsTest.arc32.json b/tests/contracts/artifacts/LoopsTest.arc32.json index 5b8cf30f6..b356c6d09 100644 --- a/tests/contracts/artifacts/LoopsTest.arc32.json +++ b/tests/contracts/artifacts/LoopsTest.arc32.json @@ -79,7 +79,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB3aGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX3doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB3aGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiB3aGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB3aGlsZUxvb3AoKTogdWludDY0CndoaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgoqd2hpbGVfMDoKCip3aGlsZV8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OQoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYnogKndoaWxlXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMAoKKndoaWxlXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGZvckxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2Zvckxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGZvckxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBmb3JMb29wKCk6IHVpbnQ2NApmb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxOQoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCipmb3JfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE5CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoyMwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRvV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9kb1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGRvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZG9XaGlsZUxvb3AoKTogdWludDY0CmRvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoyNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMF9zdGF0ZW1lbnQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozMAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMDoKCipkb193aGlsZV8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzEKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJueiAqZG9fd2hpbGVfMF9zdGF0ZW1lbnQKCipkb193aGlsZV8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBicmVha1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfYnJlYWtXaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBicmVha1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyZWFrV2hpbGVMb29wKCk6IHVpbnQ2NApicmVha1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzE6Cgoqd2hpbGVfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjM5CgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqd2hpbGVfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0MAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKndoaWxlXzFfZW5kCgoqaWYwX2VuZDoKCWIgKndoaWxlXzEKCip3aGlsZV8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfY29udGludWVXaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVXaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZVdoaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlV2hpbGVMb29wKCk6IHVpbnQ2NApjb250aW51ZVdoaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDgKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzI6Cgoqd2hpbGVfMl9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjUwCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqd2hpbGVfMl9lbmQKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTIKCS8vIGkgPSAxMzM3CglpbnQgMTMzNwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMl9jb250aW51ZQoKKmlmMV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1NQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICp3aGlsZV8yCgoqd2hpbGVfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1OAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYnJlYWtGb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9icmVha0Zvckxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnJlYWtGb3JMb29wKCl1aW50NjQKCWNhbGxzdWIgYnJlYWtGb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtGb3JMb29wKCk6IHVpbnQ2NApicmVha0Zvckxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjIKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBmb3IgKGxldCBqID0gMDsgaiA8IDEwOyBqID0gaiArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjQKCS8vIGogPCAxMAoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMTAKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY2CgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCWIgKmZvcl8xX2VuZAoKKmlmMl9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NAoJLy8gaiA9IGogKyAxCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY5CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gY29udGludWVGb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9jb250aW51ZUZvckxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVGb3JMb29wKCl1aW50NjQKCWNhbGxzdWIgY29udGludWVGb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVGb3JMb29wKCk6IHVpbnQ2NApjb250aW51ZUZvckxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzMKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc1CgkvLyBmb3IgKGxldCBqID0gMDsgaiA8IDEwOyBqID0gaiArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGogPCAxMAoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMTAKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzYKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzcKCS8vIGkgPSAxMzM3CglpbnQgMTMzNwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzJfY29udGludWUKCippZjNfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo4MwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2JyZWFrRG9XaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnJlYWtEb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrRG9XaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmVha0RvV2hpbGVMb29wKCk6IHVpbnQ2NApicmVha0RvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo4NwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMV9zdGF0ZW1lbnQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2NvbnNlcXVlbnQKCWIgKmRvX3doaWxlXzFfZW5kCgoqaWY0X2VuZDoKCipkb193aGlsZV8xOgoKKmRvX3doaWxlXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MgoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56ICpkb193aGlsZV8xX3N0YXRlbWVudAoKKmRvX3doaWxlXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTQKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2NvbnRpbnVlRG9XaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVEb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlRG9XaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb250aW51ZURvV2hpbGVMb29wKCk6IHVpbnQ2NApjb250aW51ZURvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5OAoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMl9zdGF0ZW1lbnQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTAxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwMgoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpkb193aGlsZV8yX2NvbnRpbnVlCgoqaWY1X2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwNQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMjoKCipkb193aGlsZV8yX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTA2CgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogKmRvX3doaWxlXzJfc3RhdGVtZW50CgoqZG9fd2hpbGVfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDgKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ3aGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiZm9yTG9vcCgpdWludDY0IgoJbWV0aG9kICJkb1doaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha1doaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJjb250aW51ZVdoaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha0Zvckxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVGb3JMb29wKCl1aW50NjQiCgltZXRob2QgImJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVEb1doaWxlTG9vcCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV93aGlsZUxvb3AgKmFiaV9yb3V0ZV9mb3JMb29wICphYmlfcm91dGVfZG9XaGlsZUxvb3AgKmFiaV9yb3V0ZV9icmVha1doaWxlTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlV2hpbGVMb29wICphYmlfcm91dGVfYnJlYWtGb3JMb29wICphYmlfcm91dGVfY29udGludWVGb3JMb29wICphYmlfcm91dGVfYnJlYWtEb1doaWxlTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlRG9XaGlsZUxvb3AKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAgMTAKYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gd2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV93aGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgd2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgd2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gd2hpbGVMb29wKCk6IHVpbnQ2NAp3aGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzA6Cgoqd2hpbGVfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6ICp3aGlsZV8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKndoaWxlXzAKCip3aGlsZV8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBmb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBmb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yTG9vcCgpOiB1aW50NjQKZm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgoqZm9yXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxOQoJLy8gaiA8IDEwCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjIwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE5CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBkb1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfZG9XaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBkb1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGRvV2hpbGVMb29wKCk6IHVpbnQ2NApkb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzBfc3RhdGVtZW50OgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzA6CgoqZG9fd2hpbGVfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMxCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogKmRvX3doaWxlXzBfc3RhdGVtZW50CgoqZG9fd2hpbGVfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozMwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2JyZWFrV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrV2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgYnJlYWtXaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmVha1doaWxlTG9vcCgpOiB1aW50NjQKYnJlYWtXaGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjM3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCip3aGlsZV8xOgoKKndoaWxlXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozOQoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYnogKndoaWxlXzFfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJYiAqd2hpbGVfMV9lbmQKCippZjBfZW5kOgoJYiAqd2hpbGVfMQoKKndoaWxlXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDQKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvbnRpbnVlV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9jb250aW51ZVdoaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVXaGlsZUxvb3AoKTogdWludDY0CmNvbnRpbnVlV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0OAoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgoqd2hpbGVfMjoKCip3aGlsZV8yX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTAKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6ICp3aGlsZV8yX2VuZAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTIKCS8vIGkgPSAxMzM3CglwdXNoaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKndoaWxlXzJfY29udGludWUKCippZjFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMgoKKndoaWxlXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTgKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGJyZWFrRm9yTG9vcCgpdWludDY0CiphYmlfcm91dGVfYnJlYWtGb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrRm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrRm9yTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyZWFrRm9yTG9vcCgpOiB1aW50NjQKYnJlYWtGb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjYyCgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NAoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCipmb3JfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqZm9yXzFfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NgoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJYiAqZm9yXzFfZW5kCgoqaWYyX2VuZDoKCipmb3JfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjkKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBjb250aW51ZUZvckxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2NvbnRpbnVlRm9yTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZUZvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZUZvckxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb250aW51ZUZvckxvb3AoKTogdWludDY0CmNvbnRpbnVlRm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3MwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgoqZm9yXzI6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NQoJLy8gaiA8IDEwCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjNfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NgoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzcKCS8vIGkgPSAxMzM3CglwdXNoaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8yX2NvbnRpbnVlCgoqaWYzX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjgwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMl9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc1CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBicmVha0RvV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9icmVha0RvV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBicmVha0RvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtEb1doaWxlTG9vcCgpOiB1aW50NjQKYnJlYWtEb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzFfc3RhdGVtZW50OgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJYiAqZG9fd2hpbGVfMV9lbmQKCippZjRfZW5kOgoKKmRvX3doaWxlXzE6CgoqZG9fd2hpbGVfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkyCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogKmRvX3doaWxlXzFfc3RhdGVtZW50CgoqZG9fd2hpbGVfMV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5NAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29udGludWVEb1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfY29udGludWVEb1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZURvV2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgY29udGludWVEb1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlRG9XaGlsZUxvb3AoKTogdWludDY0CmNvbnRpbnVlRG9XaGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjk4CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipkb193aGlsZV8yX3N0YXRlbWVudDoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJcHVzaGludCA1Cgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwMgoJLy8gaSA9IDEzMzcKCXB1c2hpbnQgMTMzNwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZG9fd2hpbGVfMl9jb250aW51ZQoKKmlmNV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzI6CgoqZG9fd2hpbGVfMl9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwNgoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56ICpkb193aGlsZV8yX3N0YXRlbWVudAoKKmRvX3doaWxlXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTA4CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGUxNjRiYmQ5IC8vIG1ldGhvZCAid2hpbGVMb29wKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1YjNlZDlmNiAvLyBtZXRob2QgImZvckxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDFkODYxYTNkIC8vIG1ldGhvZCAiZG9XaGlsZUxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDgyMWZlODI5IC8vIG1ldGhvZCAiYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDhkMTUyODBhIC8vIG1ldGhvZCAiY29udGludWVXaGlsZUxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDY4OTdjZjVlIC8vIG1ldGhvZCAiYnJlYWtGb3JMb29wKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5OWNiYWNhYiAvLyBtZXRob2QgImNvbnRpbnVlRm9yTG9vcCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ODZkNWVkZDMgLy8gbWV0aG9kICJicmVha0RvV2hpbGVMb29wKCl1aW50NjQiCglwdXNoYnl0ZXMgMHhlMDFkOWQ0MiAvLyBtZXRob2QgImNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfd2hpbGVMb29wICphYmlfcm91dGVfZm9yTG9vcCAqYWJpX3JvdXRlX2RvV2hpbGVMb29wICphYmlfcm91dGVfYnJlYWtXaGlsZUxvb3AgKmFiaV9yb3V0ZV9jb250aW51ZVdoaWxlTG9vcCAqYWJpX3JvdXRlX2JyZWFrRm9yTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlRm9yTG9vcCAqYWJpX3JvdXRlX2JyZWFrRG9XaGlsZUxvb3AgKmFiaV9yb3V0ZV9jb250aW51ZURvV2hpbGVMb29wCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/LoopsTest.arc56_draft.json b/tests/contracts/artifacts/LoopsTest.arc56_draft.json index e842d099d..d4c5c9cc0 100644 --- a/tests/contracts/artifacts/LoopsTest.arc56_draft.json +++ b/tests/contracts/artifacts/LoopsTest.arc56_draft.json @@ -165,2344 +165,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 5, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ] - }, - { - "teal": 13, - "source": 5, - "pc": [ - 17, - 18 - ] - }, - { - "teal": 14, - "source": 5, - "pc": [ - 19 - ] - }, - { - "teal": 15, - "source": 5, - "pc": [ - 20, - 21 - ] - }, - { - "teal": 16, - "source": 5, - "pc": [ - 22 - ] - }, - { - "teal": 17, - "source": 5, - "pc": [ - 23, - 24 - ] - }, - { - "teal": 18, - "source": 5, - "pc": [ - 25 - ] - }, - { - "teal": 19, - "source": 5, - "pc": [ - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51 - ] - }, - { - "teal": 23, - "source": 5, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 52 - ] - }, - { - "teal": 28, - "source": 6, - "pc": [ - 53 - ] - }, - { - "teal": 31, - "source": 6, - "pc": [ - 54, - 55, - 56 - ] - }, - { - "teal": 32, - "source": 6, - "pc": [ - 57 - ] - }, - { - "teal": 33, - "source": 6, - "pc": [ - 58 - ] - }, - { - "teal": 34, - "source": 6, - "pc": [ - 59 - ] - }, - { - "teal": 35, - "source": 6, - "pc": [ - 60 - ] - }, - { - "teal": 36, - "source": 6, - "pc": [ - 61 - ] - }, - { - "teal": 40, - "source": 6, - "pc": [ - 62, - 63, - 64 - ] - }, - { - "teal": 43, - "source": 6, - "pc": [ - 65 - ] - }, - { - "teal": 47, - "source": 7, - "pc": [ - 66 - ] - }, - { - "teal": 48, - "source": 7, - "pc": [ - 67, - 68 - ] - }, - { - "teal": 55, - "source": 9, - "pc": [ - 69, - 70 - ] - }, - { - "teal": 56, - "source": 9, - "pc": [ - 71 - ] - }, - { - "teal": 57, - "source": 9, - "pc": [ - 72 - ] - }, - { - "teal": 58, - "source": 9, - "pc": [ - 73, - 74, - 75 - ] - }, - { - "teal": 62, - "source": 10, - "pc": [ - 76, - 77 - ] - }, - { - "teal": 63, - "source": 10, - "pc": [ - 78 - ] - }, - { - "teal": 64, - "source": 10, - "pc": [ - 79 - ] - }, - { - "teal": 65, - "source": 10, - "pc": [ - 80, - 81 - ] - }, - { - "teal": 66, - "source": 9, - "pc": [ - 82, - 83, - 84 - ] - }, - { - "teal": 71, - "source": 13, - "pc": [ - 85, - 86 - ] - }, - { - "teal": 74, - "source": 6, - "pc": [ - 87, - 88 - ] - }, - { - "teal": 75, - "source": 6, - "pc": [ - 89 - ] - }, - { - "teal": 80, - "source": 16, - "pc": [ - 90 - ] - }, - { - "teal": 83, - "source": 16, - "pc": [ - 91, - 92, - 93 - ] - }, - { - "teal": 84, - "source": 16, - "pc": [ - 94 - ] - }, - { - "teal": 85, - "source": 16, - "pc": [ - 95 - ] - }, - { - "teal": 86, - "source": 16, - "pc": [ - 96 - ] - }, - { - "teal": 87, - "source": 16, - "pc": [ - 97 - ] - }, - { - "teal": 88, - "source": 16, - "pc": [ - 98 - ] - }, - { - "teal": 92, - "source": 16, - "pc": [ - 99, - 100, - 101 - ] - }, - { - "teal": 95, - "source": 16, - "pc": [ - 102 - ] - }, - { - "teal": 96, - "source": 16, - "pc": [ - 103 - ] - }, - { - "teal": 100, - "source": 17, - "pc": [ - 104 - ] - }, - { - "teal": 101, - "source": 17, - "pc": [ - 105, - 106 - ] - }, - { - "teal": 105, - "source": 19, - "pc": [ - 107 - ] - }, - { - "teal": 106, - "source": 19, - "pc": [ - 108, - 109 - ] - }, - { - "teal": 111, - "source": 19, - "pc": [ - 110, - 111 - ] - }, - { - "teal": 112, - "source": 19, - "pc": [ - 112 - ] - }, - { - "teal": 113, - "source": 19, - "pc": [ - 113 - ] - }, - { - "teal": 114, - "source": 19, - "pc": [ - 114, - 115, - 116 - ] - }, - { - "teal": 118, - "source": 20, - "pc": [ - 117, - 118 - ] - }, - { - "teal": 119, - "source": 20, - "pc": [ - 119 - ] - }, - { - "teal": 120, - "source": 20, - "pc": [ - 120 - ] - }, - { - "teal": 121, - "source": 20, - "pc": [ - 121, - 122 - ] - }, - { - "teal": 126, - "source": 19, - "pc": [ - 123, - 124 - ] - }, - { - "teal": 127, - "source": 19, - "pc": [ - 125 - ] - }, - { - "teal": 128, - "source": 19, - "pc": [ - 126 - ] - }, - { - "teal": 129, - "source": 19, - "pc": [ - 127, - 128 - ] - }, - { - "teal": 130, - "source": 19, - "pc": [ - 129, - 130, - 131 - ] - }, - { - "teal": 135, - "source": 23, - "pc": [ - 132, - 133 - ] - }, - { - "teal": 138, - "source": 16, - "pc": [ - 134, - 135 - ] - }, - { - "teal": 141, - "source": 16, - "pc": [ - 136, - 137 - ] - }, - { - "teal": 142, - "source": 16, - "pc": [ - 138 - ] - }, - { - "teal": 147, - "source": 26, - "pc": [ - 139 - ] - }, - { - "teal": 150, - "source": 26, - "pc": [ - 140, - 141, - 142 - ] - }, - { - "teal": 151, - "source": 26, - "pc": [ - 143 - ] - }, - { - "teal": 152, - "source": 26, - "pc": [ - 144 - ] - }, - { - "teal": 153, - "source": 26, - "pc": [ - 145 - ] - }, - { - "teal": 154, - "source": 26, - "pc": [ - 146 - ] - }, - { - "teal": 155, - "source": 26, - "pc": [ - 147 - ] - }, - { - "teal": 159, - "source": 26, - "pc": [ - 148, - 149, - 150 - ] - }, - { - "teal": 162, - "source": 26, - "pc": [ - 151 - ] - }, - { - "teal": 166, - "source": 27, - "pc": [ - 152 - ] - }, - { - "teal": 167, - "source": 27, - "pc": [ - 153, - 154 - ] - }, - { - "teal": 172, - "source": 30, - "pc": [ - 155, - 156 - ] - }, - { - "teal": 173, - "source": 30, - "pc": [ - 157 - ] - }, - { - "teal": 174, - "source": 30, - "pc": [ - 158 - ] - }, - { - "teal": 175, - "source": 30, - "pc": [ - 159, - 160 - ] - }, - { - "teal": 182, - "source": 31, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 183, - "source": 31, - "pc": [ - 163 - ] - }, - { - "teal": 184, - "source": 31, - "pc": [ - 164 - ] - }, - { - "teal": 185, - "source": 29, - "pc": [ - 165, - 166, - 167 - ] - }, - { - "teal": 190, - "source": 33, - "pc": [ - 168, - 169 - ] - }, - { - "teal": 193, - "source": 26, - "pc": [ - 170, - 171 - ] - }, - { - "teal": 194, - "source": 26, - "pc": [ - 172 - ] - }, - { - "teal": 199, - "source": 36, - "pc": [ - 173 - ] - }, - { - "teal": 202, - "source": 36, - "pc": [ - 174, - 175, - 176 - ] - }, - { - "teal": 203, - "source": 36, - "pc": [ - 177 - ] - }, - { - "teal": 204, - "source": 36, - "pc": [ - 178 - ] - }, - { - "teal": 205, - "source": 36, - "pc": [ - 179 - ] - }, - { - "teal": 206, - "source": 36, - "pc": [ - 180 - ] - }, - { - "teal": 207, - "source": 36, - "pc": [ - 181 - ] - }, - { - "teal": 211, - "source": 36, - "pc": [ - 182, - 183, - 184 - ] - }, - { - "teal": 214, - "source": 36, - "pc": [ - 185 - ] - }, - { - "teal": 218, - "source": 37, - "pc": [ - 186 - ] - }, - { - "teal": 219, - "source": 37, - "pc": [ - 187, - 188 - ] - }, - { - "teal": 226, - "source": 39, - "pc": [ - 189, - 190 - ] - }, - { - "teal": 227, - "source": 39, - "pc": [ - 191 - ] - }, - { - "teal": 228, - "source": 39, - "pc": [ - 192 - ] - }, - { - "teal": 229, - "source": 39, - "pc": [ - 193, - 194, - 195 - ] - }, - { - "teal": 233, - "source": 40, - "pc": [ - 196, - 197 - ] - }, - { - "teal": 234, - "source": 40, - "pc": [ - 198 - ] - }, - { - "teal": 235, - "source": 40, - "pc": [ - 199 - ] - }, - { - "teal": 236, - "source": 40, - "pc": [ - 200, - 201 - ] - }, - { - "teal": 241, - "source": 41, - "pc": [ - 202, - 203 - ] - }, - { - "teal": 242, - "source": 41, - "pc": [ - 204 - ] - }, - { - "teal": 243, - "source": 41, - "pc": [ - 205 - ] - }, - { - "teal": 244, - "source": 41, - "pc": [ - 206, - 207, - 208 - ] - }, - { - "teal": 247, - "source": 41, - "pc": [ - 209, - 210, - 211 - ] - }, - { - "teal": 250, - "source": 39, - "pc": [ - 212, - 213, - 214 - ] - }, - { - "teal": 255, - "source": 44, - "pc": [ - 215, - 216 - ] - }, - { - "teal": 258, - "source": 36, - "pc": [ - 217, - 218 - ] - }, - { - "teal": 259, - "source": 36, - "pc": [ - 219 - ] - }, - { - "teal": 264, - "source": 47, - "pc": [ - 220 - ] - }, - { - "teal": 267, - "source": 47, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 268, - "source": 47, - "pc": [ - 224 - ] - }, - { - "teal": 269, - "source": 47, - "pc": [ - 225 - ] - }, - { - "teal": 270, - "source": 47, - "pc": [ - 226 - ] - }, - { - "teal": 271, - "source": 47, - "pc": [ - 227 - ] - }, - { - "teal": 272, - "source": 47, - "pc": [ - 228 - ] - }, - { - "teal": 276, - "source": 47, - "pc": [ - 229, - 230, - 231 - ] - }, - { - "teal": 279, - "source": 47, - "pc": [ - 232 - ] - }, - { - "teal": 283, - "source": 48, - "pc": [ - 233 - ] - }, - { - "teal": 284, - "source": 48, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 291, - "source": 50, - "pc": [ - 236, - 237 - ] - }, - { - "teal": 292, - "source": 50, - "pc": [ - 238 - ] - }, - { - "teal": 293, - "source": 50, - "pc": [ - 239 - ] - }, - { - "teal": 294, - "source": 50, - "pc": [ - 240, - 241, - 242 - ] - }, - { - "teal": 299, - "source": 51, - "pc": [ - 243, - 244 - ] - }, - { - "teal": 300, - "source": 51, - "pc": [ - 245 - ] - }, - { - "teal": 301, - "source": 51, - "pc": [ - 246 - ] - }, - { - "teal": 302, - "source": 51, - "pc": [ - 247, - 248, - 249 - ] - }, - { - "teal": 307, - "source": 52, - "pc": [ - 250, - 251 - ] - }, - { - "teal": 308, - "source": 52, - "pc": [ - 252, - 253 - ] - }, - { - "teal": 309, - "source": 53, - "pc": [ - 254, - 255, - 256 - ] - }, - { - "teal": 314, - "source": 55, - "pc": [ - 257, - 258 - ] - }, - { - "teal": 315, - "source": 55, - "pc": [ - 259 - ] - }, - { - "teal": 316, - "source": 55, - "pc": [ - 260 - ] - }, - { - "teal": 317, - "source": 55, - "pc": [ - 261, - 262 - ] - }, - { - "teal": 318, - "source": 50, - "pc": [ - 263, - 264, - 265 - ] - }, - { - "teal": 323, - "source": 58, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 326, - "source": 47, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 327, - "source": 47, - "pc": [ - 270 - ] - }, - { - "teal": 332, - "source": 61, - "pc": [ - 271 - ] - }, - { - "teal": 335, - "source": 61, - "pc": [ - 272, - 273, - 274 - ] - }, - { - "teal": 336, - "source": 61, - "pc": [ - 275 - ] - }, - { - "teal": 337, - "source": 61, - "pc": [ - 276 - ] - }, - { - "teal": 338, - "source": 61, - "pc": [ - 277 - ] - }, - { - "teal": 339, - "source": 61, - "pc": [ - 278 - ] - }, - { - "teal": 340, - "source": 61, - "pc": [ - 279 - ] - }, - { - "teal": 344, - "source": 61, - "pc": [ - 280, - 281, - 282 - ] - }, - { - "teal": 347, - "source": 61, - "pc": [ - 283 - ] - }, - { - "teal": 348, - "source": 61, - "pc": [ - 284 - ] - }, - { - "teal": 352, - "source": 62, - "pc": [ - 285 - ] - }, - { - "teal": 353, - "source": 62, - "pc": [ - 286, - 287 - ] - }, - { - "teal": 357, - "source": 64, - "pc": [ - 288 - ] - }, - { - "teal": 358, - "source": 64, - "pc": [ - 289, - 290 - ] - }, - { - "teal": 363, - "source": 64, - "pc": [ - 291, - 292 - ] - }, - { - "teal": 364, - "source": 64, - "pc": [ - 293 - ] - }, - { - "teal": 365, - "source": 64, - "pc": [ - 294 - ] - }, - { - "teal": 366, - "source": 64, - "pc": [ - 295, - 296, - 297 - ] - }, - { - "teal": 370, - "source": 65, - "pc": [ - 298, - 299 - ] - }, - { - "teal": 371, - "source": 65, - "pc": [ - 300 - ] - }, - { - "teal": 372, - "source": 65, - "pc": [ - 301 - ] - }, - { - "teal": 373, - "source": 65, - "pc": [ - 302, - 303 - ] - }, - { - "teal": 378, - "source": 66, - "pc": [ - 304, - 305 - ] - }, - { - "teal": 379, - "source": 66, - "pc": [ - 306 - ] - }, - { - "teal": 380, - "source": 66, - "pc": [ - 307 - ] - }, - { - "teal": 381, - "source": 66, - "pc": [ - 308, - 309, - 310 - ] - }, - { - "teal": 384, - "source": 66, - "pc": [ - 311, - 312, - 313 - ] - }, - { - "teal": 391, - "source": 64, - "pc": [ - 314, - 315 - ] - }, - { - "teal": 392, - "source": 64, - "pc": [ - 316 - ] - }, - { - "teal": 393, - "source": 64, - "pc": [ - 317 - ] - }, - { - "teal": 394, - "source": 64, - "pc": [ - 318, - 319 - ] - }, - { - "teal": 395, - "source": 64, - "pc": [ - 320, - 321, - 322 - ] - }, - { - "teal": 400, - "source": 69, - "pc": [ - 323, - 324 - ] - }, - { - "teal": 403, - "source": 61, - "pc": [ - 325, - 326 - ] - }, - { - "teal": 406, - "source": 61, - "pc": [ - 327, - 328 - ] - }, - { - "teal": 407, - "source": 61, - "pc": [ - 329 - ] - }, - { - "teal": 412, - "source": 72, - "pc": [ - 330 - ] - }, - { - "teal": 415, - "source": 72, - "pc": [ - 331, - 332, - 333 - ] - }, - { - "teal": 416, - "source": 72, - "pc": [ - 334 - ] - }, - { - "teal": 417, - "source": 72, - "pc": [ - 335 - ] - }, - { - "teal": 418, - "source": 72, - "pc": [ - 336 - ] - }, - { - "teal": 419, - "source": 72, - "pc": [ - 337 - ] - }, - { - "teal": 420, - "source": 72, - "pc": [ - 338 - ] - }, - { - "teal": 424, - "source": 72, - "pc": [ - 339, - 340, - 341 - ] - }, - { - "teal": 427, - "source": 72, - "pc": [ - 342 - ] - }, - { - "teal": 428, - "source": 72, - "pc": [ - 343 - ] - }, - { - "teal": 432, - "source": 73, - "pc": [ - 344 - ] - }, - { - "teal": 433, - "source": 73, - "pc": [ - 345, - 346 - ] - }, - { - "teal": 437, - "source": 75, - "pc": [ - 347 - ] - }, - { - "teal": 438, - "source": 75, - "pc": [ - 348, - 349 - ] - }, - { - "teal": 443, - "source": 75, - "pc": [ - 350, - 351 - ] - }, - { - "teal": 444, - "source": 75, - "pc": [ - 352 - ] - }, - { - "teal": 445, - "source": 75, - "pc": [ - 353 - ] - }, - { - "teal": 446, - "source": 75, - "pc": [ - 354, - 355, - 356 - ] - }, - { - "teal": 451, - "source": 76, - "pc": [ - 357, - 358 - ] - }, - { - "teal": 452, - "source": 76, - "pc": [ - 359 - ] - }, - { - "teal": 453, - "source": 76, - "pc": [ - 360 - ] - }, - { - "teal": 454, - "source": 76, - "pc": [ - 361, - 362, - 363 - ] - }, - { - "teal": 459, - "source": 77, - "pc": [ - 364, - 365 - ] - }, - { - "teal": 460, - "source": 77, - "pc": [ - 366, - 367 - ] - }, - { - "teal": 461, - "source": 78, - "pc": [ - 368, - 369, - 370 - ] - }, - { - "teal": 466, - "source": 80, - "pc": [ - 371, - 372 - ] - }, - { - "teal": 467, - "source": 80, - "pc": [ - 373 - ] - }, - { - "teal": 468, - "source": 80, - "pc": [ - 374 - ] - }, - { - "teal": 469, - "source": 80, - "pc": [ - 375, - 376 - ] - }, - { - "teal": 474, - "source": 75, - "pc": [ - 377, - 378 - ] - }, - { - "teal": 475, - "source": 75, - "pc": [ - 379 - ] - }, - { - "teal": 476, - "source": 75, - "pc": [ - 380 - ] - }, - { - "teal": 477, - "source": 75, - "pc": [ - 381, - 382 - ] - }, - { - "teal": 478, - "source": 75, - "pc": [ - 383, - 384, - 385 - ] - }, - { - "teal": 483, - "source": 83, - "pc": [ - 386, - 387 - ] - }, - { - "teal": 486, - "source": 72, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 489, - "source": 72, - "pc": [ - 390, - 391 - ] - }, - { - "teal": 490, - "source": 72, - "pc": [ - 392 - ] - }, - { - "teal": 495, - "source": 86, - "pc": [ - 393 - ] - }, - { - "teal": 498, - "source": 86, - "pc": [ - 394, - 395, - 396 - ] - }, - { - "teal": 499, - "source": 86, - "pc": [ - 397 - ] - }, - { - "teal": 500, - "source": 86, - "pc": [ - 398 - ] - }, - { - "teal": 501, - "source": 86, - "pc": [ - 399 - ] - }, - { - "teal": 502, - "source": 86, - "pc": [ - 400 - ] - }, - { - "teal": 503, - "source": 86, - "pc": [ - 401 - ] - }, - { - "teal": 507, - "source": 86, - "pc": [ - 402, - 403, - 404 - ] - }, - { - "teal": 510, - "source": 86, - "pc": [ - 405 - ] - }, - { - "teal": 514, - "source": 87, - "pc": [ - 406 - ] - }, - { - "teal": 515, - "source": 87, - "pc": [ - 407, - 408 - ] - }, - { - "teal": 520, - "source": 90, - "pc": [ - 409, - 410 - ] - }, - { - "teal": 521, - "source": 90, - "pc": [ - 411 - ] - }, - { - "teal": 522, - "source": 90, - "pc": [ - 412 - ] - }, - { - "teal": 523, - "source": 90, - "pc": [ - 413, - 414 - ] - }, - { - "teal": 528, - "source": 91, - "pc": [ - 415, - 416 - ] - }, - { - "teal": 529, - "source": 91, - "pc": [ - 417 - ] - }, - { - "teal": 530, - "source": 91, - "pc": [ - 418 - ] - }, - { - "teal": 531, - "source": 91, - "pc": [ - 419, - 420, - 421 - ] - }, - { - "teal": 534, - "source": 91, - "pc": [ - 422, - 423, - 424 - ] - }, - { - "teal": 543, - "source": 92, - "pc": [ - 425, - 426 - ] - }, - { - "teal": 544, - "source": 92, - "pc": [ - 427 - ] - }, - { - "teal": 545, - "source": 92, - "pc": [ - 428 - ] - }, - { - "teal": 546, - "source": 89, - "pc": [ - 429, - 430, - 431 - ] - }, - { - "teal": 551, - "source": 94, - "pc": [ - 432, - 433 - ] - }, - { - "teal": 554, - "source": 86, - "pc": [ - 434, - 435 - ] - }, - { - "teal": 555, - "source": 86, - "pc": [ - 436 - ] - }, - { - "teal": 560, - "source": 97, - "pc": [ - 437 - ] - }, - { - "teal": 563, - "source": 97, - "pc": [ - 438, - 439, - 440 - ] - }, - { - "teal": 564, - "source": 97, - "pc": [ - 441 - ] - }, - { - "teal": 565, - "source": 97, - "pc": [ - 442 - ] - }, - { - "teal": 566, - "source": 97, - "pc": [ - 443 - ] - }, - { - "teal": 567, - "source": 97, - "pc": [ - 444 - ] - }, - { - "teal": 568, - "source": 97, - "pc": [ - 445 - ] - }, - { - "teal": 572, - "source": 97, - "pc": [ - 446, - 447, - 448 - ] - }, - { - "teal": 575, - "source": 97, - "pc": [ - 449 - ] - }, - { - "teal": 579, - "source": 98, - "pc": [ - 450 - ] - }, - { - "teal": 580, - "source": 98, - "pc": [ - 451, - 452 - ] - }, - { - "teal": 586, - "source": 101, - "pc": [ - 453, - 454 - ] - }, - { - "teal": 587, - "source": 101, - "pc": [ - 455 - ] - }, - { - "teal": 588, - "source": 101, - "pc": [ - 456 - ] - }, - { - "teal": 589, - "source": 101, - "pc": [ - 457, - 458, - 459 - ] - }, - { - "teal": 594, - "source": 102, - "pc": [ - 460, - 461 - ] - }, - { - "teal": 595, - "source": 102, - "pc": [ - 462, - 463 - ] - }, - { - "teal": 596, - "source": 103, - "pc": [ - 464, - 465, - 466 - ] - }, - { - "teal": 601, - "source": 105, - "pc": [ - 467, - 468 - ] - }, - { - "teal": 602, - "source": 105, - "pc": [ - 469 - ] - }, - { - "teal": 603, - "source": 105, - "pc": [ - 470 - ] - }, - { - "teal": 604, - "source": 105, - "pc": [ - 471, - 472 - ] - }, - { - "teal": 611, - "source": 106, - "pc": [ - 473, - 474 - ] - }, - { - "teal": 612, - "source": 106, - "pc": [ - 475 - ] - }, - { - "teal": 613, - "source": 106, - "pc": [ - 476 - ] - }, - { - "teal": 614, - "source": 100, - "pc": [ - 477, - 478, - 479 - ] - }, - { - "teal": 619, - "source": 108, - "pc": [ - 480, - 481 - ] - }, - { - "teal": 622, - "source": 97, - "pc": [ - 482, - 483 - ] - }, - { - "teal": 623, - "source": 97, - "pc": [ - 484 - ] - }, - { - "teal": 626, - "source": 5, - "pc": [ - 485 - ] - }, - { - "teal": 627, - "source": 5, - "pc": [ - 486 - ] - }, - { - "teal": 630, - "source": 5, - "pc": [ - 487, - 488, - 489, - 490, - 491, - 492 - ] - }, - { - "teal": 631, - "source": 5, - "pc": [ - 493, - 494, - 495 - ] - }, - { - "teal": 632, - "source": 5, - "pc": [ - 496, - 497, - 498, - 499 - ] - }, - { - "teal": 635, - "source": 5, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 500 - ] - }, - { - "teal": 638, - "source": 5, - "pc": [ - 501, - 502, - 503, - 504, - 505, - 506 - ] - }, - { - "teal": 639, - "source": 5, - "pc": [ - 507, - 508, - 509, - 510, - 511, - 512 - ] - }, - { - "teal": 640, - "source": 5, - "pc": [ - 513, - 514, - 515, - 516, - 517, - 518 - ] - }, - { - "teal": 641, - "source": 5, - "pc": [ - 519, - 520, - 521, - 522, - 523, - 524 - ] - }, - { - "teal": 642, - "source": 5, - "pc": [ - 525, - 526, - 527, - 528, - 529, - 530 - ] - }, - { - "teal": 643, - "source": 5, - "pc": [ - 531, - 532, - 533, - 534, - 535, - 536 - ] - }, - { - "teal": 644, - "source": 5, - "pc": [ - 537, - 538, - 539, - 540, - 541, - 542 - ] - }, - { - "teal": 645, - "source": 5, - "pc": [ - 543, - 544, - 545, - 546, - 547, - 548 - ] - }, - { - "teal": 646, - "source": 5, - "pc": [ - 549, - 550, - 551, - 552, - 553, - 554 - ] - }, - { - "teal": 647, - "source": 5, - "pc": [ - 555, - 556, - 557 - ] - }, - { - "teal": 648, - "source": 5, - "pc": [ - 558, - 559, - 560, - 561, - 562, - 563, - 564, - 565, - 566, - 567, - 568, - 569, - 570, - 571, - 572, - 573, - 574, - 575, - 576, - 577 - ] - }, - { - "teal": 651, - "source": 5, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 578 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 49 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 603 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 681 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB3aGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX3doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB3aGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiB3aGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB3aGlsZUxvb3AoKTogdWludDY0CndoaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgoqd2hpbGVfMDoKCip3aGlsZV8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OQoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYnogKndoaWxlXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMAoKKndoaWxlXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGZvckxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2Zvckxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGZvckxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBmb3JMb29wKCk6IHVpbnQ2NApmb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxOQoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCipmb3JfMDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE5CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqZm9yXzBfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiAqZm9yXzAKCipmb3JfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoyMwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRvV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9kb1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBkb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGRvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZG9XaGlsZUxvb3AoKTogdWludDY0CmRvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoyNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMF9zdGF0ZW1lbnQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozMAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMDoKCipkb193aGlsZV8wX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzEKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJueiAqZG9fd2hpbGVfMF9zdGF0ZW1lbnQKCipkb193aGlsZV8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBicmVha1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfYnJlYWtXaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBicmVha1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyZWFrV2hpbGVMb29wKCk6IHVpbnQ2NApicmVha1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzE6Cgoqd2hpbGVfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjM5CgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqd2hpbGVfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0MAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmMF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmMF9lbmQKCgkvLyAqaWYwX2NvbnNlcXVlbnQKCWIgKndoaWxlXzFfZW5kCgoqaWYwX2VuZDoKCWIgKndoaWxlXzEKCip3aGlsZV8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfY29udGludWVXaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVXaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZVdoaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlV2hpbGVMb29wKCk6IHVpbnQ2NApjb250aW51ZVdoaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDgKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzI6Cgoqd2hpbGVfMl9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjUwCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqd2hpbGVfMl9lbmQKCgkvLyAqaWYxX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTIKCS8vIGkgPSAxMzM3CglpbnQgMTMzNwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMl9jb250aW51ZQoKKmlmMV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1NQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICp3aGlsZV8yCgoqd2hpbGVfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1OAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYnJlYWtGb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9icmVha0Zvckxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnJlYWtGb3JMb29wKCl1aW50NjQKCWNhbGxzdWIgYnJlYWtGb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtGb3JMb29wKCk6IHVpbnQ2NApicmVha0Zvckxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjIKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBmb3IgKGxldCBqID0gMDsgaiA8IDEwOyBqID0gaiArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoKKmZvcl8xOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjQKCS8vIGogPCAxMAoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMTAKCTwKCWJ6ICpmb3JfMV9lbmQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY2CgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmMl9lbmQKCgkvLyAqaWYyX2NvbnNlcXVlbnQKCWIgKmZvcl8xX2VuZAoKKmlmMl9lbmQ6CgoqZm9yXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NAoJLy8gaiA9IGogKyAxCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgliICpmb3JfMQoKKmZvcl8xX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY5CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gY29udGludWVGb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9jb250aW51ZUZvckxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVGb3JMb29wKCl1aW50NjQKCWNhbGxzdWIgY29udGludWVGb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVGb3JMb29wKCk6IHVpbnQ2NApjb250aW51ZUZvckxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzMKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc1CgkvLyBmb3IgKGxldCBqID0gMDsgaiA8IDEwOyBqID0gaiArIDEpCglpbnQgMAoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoKKmZvcl8yOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGogPCAxMAoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMTAKCTwKCWJ6ICpmb3JfMl9lbmQKCgkvLyAqaWYzX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzYKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDUKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzcKCS8vIGkgPSAxMzM3CglpbnQgMTMzNwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZm9yXzJfY29udGludWUKCippZjNfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmZvcl8yX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGogPSBqICsgMQoJZnJhbWVfZGlnIDEgLy8gajogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAxIC8vIGo6IHVpbnQ2NAoJYiAqZm9yXzIKCipmb3JfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo4MwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2JyZWFrRG9XaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYnJlYWtEb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrRG9XaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmVha0RvV2hpbGVMb29wKCk6IHVpbnQ2NApicmVha0RvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo4NwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMV9zdGF0ZW1lbnQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MAoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gKmlmNF9jb25kaXRpb24KCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmNF9lbmQKCgkvLyAqaWY0X2NvbnNlcXVlbnQKCWIgKmRvX3doaWxlXzFfZW5kCgoqaWY0X2VuZDoKCipkb193aGlsZV8xOgoKKmRvX3doaWxlXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MgoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56ICpkb193aGlsZV8xX3N0YXRlbWVudAoKKmRvX3doaWxlXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTQKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2NvbnRpbnVlRG9XaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgY29udGludWVEb1doaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlRG9XaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb250aW51ZURvV2hpbGVMb29wKCk6IHVpbnQ2NApjb250aW51ZURvV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5OAoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMl9zdGF0ZW1lbnQ6CgkvLyAqaWY1X2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTAxCgkvLyBpID09PSA1CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCA1Cgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwMgoJLy8gaSA9IDEzMzcKCWludCAxMzM3CglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgliICpkb193aGlsZV8yX2NvbnRpbnVlCgoqaWY1X2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwNQoJLy8gaSA9IGkgKyAxCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxCgkrCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoqZG9fd2hpbGVfMjoKCipkb193aGlsZV8yX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTA2CgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogKmRvX3doaWxlXzJfc3RhdGVtZW50CgoqZG9fd2hpbGVfMl9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDgKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ3aGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiZm9yTG9vcCgpdWludDY0IgoJbWV0aG9kICJkb1doaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha1doaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJjb250aW51ZVdoaWxlTG9vcCgpdWludDY0IgoJbWV0aG9kICJicmVha0Zvckxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVGb3JMb29wKCl1aW50NjQiCgltZXRob2QgImJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NCIKCW1ldGhvZCAiY29udGludWVEb1doaWxlTG9vcCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV93aGlsZUxvb3AgKmFiaV9yb3V0ZV9mb3JMb29wICphYmlfcm91dGVfZG9XaGlsZUxvb3AgKmFiaV9yb3V0ZV9icmVha1doaWxlTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlV2hpbGVMb29wICphYmlfcm91dGVfYnJlYWtGb3JMb29wICphYmlfcm91dGVfY29udGludWVGb3JMb29wICphYmlfcm91dGVfYnJlYWtEb1doaWxlTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlRG9XaGlsZUxvb3AKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDAgMTAKYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4CgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gd2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV93aGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgd2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgd2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gd2hpbGVMb29wKCk6IHVpbnQ2NAp3aGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKndoaWxlXzA6Cgoqd2hpbGVfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6ICp3aGlsZV8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKndoaWxlXzAKCip3aGlsZV8wX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEzCgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBmb3JMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9mb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGZvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBmb3JMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZm9yTG9vcCgpOiB1aW50NjQKZm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxNwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTkKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgoqZm9yXzA6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxOQoJLy8gaiA8IDEwCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxMAoJPAoJYnogKmZvcl8wX2VuZAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjIwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjE5CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgKmZvcl8wCgoqZm9yXzBfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBkb1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfZG9XaGlsZUxvb3A6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgZG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBkb1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGRvV2hpbGVMb29wKCk6IHVpbnQ2NApkb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MjcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzBfc3RhdGVtZW50OgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MzAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzA6CgoqZG9fd2hpbGVfMF9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjMxCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogKmRvX3doaWxlXzBfc3RhdGVtZW50CgoqZG9fd2hpbGVfMF9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozMwoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2JyZWFrV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrV2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgYnJlYWtXaGlsZUxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBicmVha1doaWxlTG9vcCgpOiB1aW50NjQKYnJlYWtXaGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjM3CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCip3aGlsZV8xOgoKKndoaWxlXzFfY29udGludWU6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czozOQoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYnogKndoaWxlXzFfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYwX2VuZAoKCS8vICppZjBfY29uc2VxdWVudAoJYiAqd2hpbGVfMV9lbmQKCippZjBfZW5kOgoJYiAqd2hpbGVfMQoKKndoaWxlXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NDQKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGNvbnRpbnVlV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9jb250aW51ZVdoaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZVdoaWxlTG9vcCgpdWludDY0CgljYWxsc3ViIGNvbnRpbnVlV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gY29udGludWVXaGlsZUxvb3AoKTogdWludDY0CmNvbnRpbnVlV2hpbGVMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo0OAoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0Cgoqd2hpbGVfMjoKCip3aGlsZV8yX2NvbnRpbnVlOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTAKCS8vIGkgPCAxMAoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMTAKCTwKCWJ6ICp3aGlsZV8yX2VuZAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo1MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYxX2VuZAoKCS8vICppZjFfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTIKCS8vIGkgPSAxMzM3CglwdXNoaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKndoaWxlXzJfY29udGludWUKCippZjFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqd2hpbGVfMgoKKndoaWxlXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NTgKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIGJyZWFrRm9yTG9vcCgpdWludDY0CiphYmlfcm91dGVfYnJlYWtGb3JMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrRm9yTG9vcCgpdWludDY0CgljYWxsc3ViIGJyZWFrRm9yTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJyZWFrRm9yTG9vcCgpOiB1aW50NjQKYnJlYWtGb3JMb29wOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjYyCgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NAoJLy8gZm9yIChsZXQgaiA9IDA7IGogPCAxMDsgaiA9IGogKyAxKQoJaW50IDAKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCipmb3JfMToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBqIDwgMTAKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEwCgk8CglieiAqZm9yXzFfZW5kCgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjJfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo2NgoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYyX2VuZAoKCS8vICppZjJfY29uc2VxdWVudAoJYiAqZm9yXzFfZW5kCgoqaWYyX2VuZDoKCipmb3JfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjY0CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgKmZvcl8xCgoqZm9yXzFfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NjkKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBjb250aW51ZUZvckxvb3AoKXVpbnQ2NAoqYWJpX3JvdXRlX2NvbnRpbnVlRm9yTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZUZvckxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBjb250aW51ZUZvckxvb3AKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBjb250aW51ZUZvckxvb3AoKTogdWludDY0CmNvbnRpbnVlRm9yTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3MwoJLy8gaSA9IDAKCWludCAwCglmcmFtZV9idXJ5IDAgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzUKCS8vIGZvciAobGV0IGogPSAwOyBqIDwgMTA7IGogPSBqICsgMSkKCWludCAwCglmcmFtZV9idXJ5IDEgLy8gajogdWludDY0CgoqZm9yXzI6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NQoJLy8gaiA8IDEwCglmcmFtZV9kaWcgMSAvLyBqOiB1aW50NjQKCWludCAxMAoJPAoJYnogKmZvcl8yX2VuZAoKCS8vICppZjNfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo3NgoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWYzX2VuZAoKCS8vICppZjNfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6NzcKCS8vIGkgPSAxMzM3CglwdXNoaW50IDEzMzcKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCWIgKmZvcl8yX2NvbnRpbnVlCgoqaWYzX2VuZDoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjgwCgkvLyBpID0gaSArIDEKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipmb3JfMl9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjc1CgkvLyBqID0gaiArIDEKCWZyYW1lX2RpZyAxIC8vIGo6IHVpbnQ2NAoJaW50IDEKCSsKCWZyYW1lX2J1cnkgMSAvLyBqOiB1aW50NjQKCWIgKmZvcl8yCgoqZm9yXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODMKCS8vIHJldHVybiBpOwoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBicmVha0RvV2hpbGVMb29wKCl1aW50NjQKKmFiaV9yb3V0ZV9icmVha0RvV2hpbGVMb29wOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJyZWFrRG9XaGlsZUxvb3AoKXVpbnQ2NAoJY2FsbHN1YiBicmVha0RvV2hpbGVMb29wCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYnJlYWtEb1doaWxlTG9vcCgpOiB1aW50NjQKYnJlYWtEb1doaWxlTG9vcDoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6ODcKCS8vIGkgPSAwCglpbnQgMAoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzFfc3RhdGVtZW50OgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6OTAKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKCS8vICppZjRfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5MQoJLy8gaSA9PT0gNQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglwdXNoaW50IDUKCT09CglieiAqaWY0X2VuZAoKCS8vICppZjRfY29uc2VxdWVudAoJYiAqZG9fd2hpbGVfMV9lbmQKCippZjRfZW5kOgoKKmRvX3doaWxlXzE6CgoqZG9fd2hpbGVfMV9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjkyCgkvLyBpIDwgMTAKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJaW50IDEwCgk8CglibnogKmRvX3doaWxlXzFfc3RhdGVtZW50CgoqZG9fd2hpbGVfMV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czo5NAoJLy8gcmV0dXJuIGk7CglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gY29udGludWVEb1doaWxlTG9vcCgpdWludDY0CiphYmlfcm91dGVfY29udGludWVEb1doaWxlTG9vcDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBjb250aW51ZURvV2hpbGVMb29wKCl1aW50NjQKCWNhbGxzdWIgY29udGludWVEb1doaWxlTG9vcAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGNvbnRpbnVlRG9XaGlsZUxvb3AoKTogdWludDY0CmNvbnRpbnVlRG9XaGlsZUxvb3A6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjk4CgkvLyBpID0gMAoJaW50IDAKCWZyYW1lX2J1cnkgMCAvLyBpOiB1aW50NjQKCipkb193aGlsZV8yX3N0YXRlbWVudDoKCS8vICppZjVfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDEKCS8vIGkgPT09IDUKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoJcHVzaGludCA1Cgk9PQoJYnogKmlmNV9lbmQKCgkvLyAqaWY1X2NvbnNlcXVlbnQKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwMgoJLy8gaSA9IDEzMzcKCXB1c2hpbnQgMTMzNwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoJYiAqZG9fd2hpbGVfMl9jb250aW51ZQoKKmlmNV9lbmQ6CgkvLyB0ZXN0cy9jb250cmFjdHMvbG9vcHMuYWxnby50czoxMDUKCS8vIGkgPSBpICsgMQoJZnJhbWVfZGlnIDAgLy8gaTogdWludDY0CglpbnQgMQoJKwoJZnJhbWVfYnVyeSAwIC8vIGk6IHVpbnQ2NAoKKmRvX3doaWxlXzI6CgoqZG9fd2hpbGVfMl9jb250aW51ZToKCS8vIHRlc3RzL2NvbnRyYWN0cy9sb29wcy5hbGdvLnRzOjEwNgoJLy8gaSA8IDEwCglmcmFtZV9kaWcgMCAvLyBpOiB1aW50NjQKCWludCAxMAoJPAoJYm56ICpkb193aGlsZV8yX3N0YXRlbWVudAoKKmRvX3doaWxlXzJfZW5kOgoJLy8gdGVzdHMvY29udHJhY3RzL2xvb3BzLmFsZ28udHM6MTA4CgkvLyByZXR1cm4gaTsKCWZyYW1lX2RpZyAwIC8vIGk6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweGUxNjRiYmQ5IC8vIG1ldGhvZCAid2hpbGVMb29wKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1YjNlZDlmNiAvLyBtZXRob2QgImZvckxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDFkODYxYTNkIC8vIG1ldGhvZCAiZG9XaGlsZUxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDgyMWZlODI5IC8vIG1ldGhvZCAiYnJlYWtXaGlsZUxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDhkMTUyODBhIC8vIG1ldGhvZCAiY29udGludWVXaGlsZUxvb3AoKXVpbnQ2NCIKCXB1c2hieXRlcyAweDY4OTdjZjVlIC8vIG1ldGhvZCAiYnJlYWtGb3JMb29wKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5OWNiYWNhYiAvLyBtZXRob2QgImNvbnRpbnVlRm9yTG9vcCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4ODZkNWVkZDMgLy8gbWV0aG9kICJicmVha0RvV2hpbGVMb29wKCl1aW50NjQiCglwdXNoYnl0ZXMgMHhlMDFkOWQ0MiAvLyBtZXRob2QgImNvbnRpbnVlRG9XaGlsZUxvb3AoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfd2hpbGVMb29wICphYmlfcm91dGVfZm9yTG9vcCAqYWJpX3JvdXRlX2RvV2hpbGVMb29wICphYmlfcm91dGVfYnJlYWtXaGlsZUxvb3AgKmFiaV9yb3V0ZV9jb250aW51ZVdoaWxlTG9vcCAqYWJpX3JvdXRlX2JyZWFrRm9yTG9vcCAqYWJpX3JvdXRlX2NvbnRpbnVlRm9yTG9vcCAqYWJpX3JvdXRlX2JyZWFrRG9XaGlsZUxvb3AgKmFiaV9yb3V0ZV9jb250aW51ZURvV2hpbGVMb29wCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAFAQAKBbkKJgIEFR98dQAxGBSBBgsxGQiNDAHBAAAAAAAAAAAAAAGzAAAAAAAAAAAAAAAoiAAFFlCwIkOKAAEpI4wAiwAkDEEACYsAIgiMAEL/8IsAjACJKIgABRZQsCJDigABKUkjjAAjjAGLASQMQQAPiwAiCIwAiwEiCIwBQv/qiwCMAEYBiSiIAAUWULAiQ4oAASkjjACLACIIjACLACQMQP/ziwCMAIkoiAAFFlCwIkOKAAEpI4wAiwAkDEEAE4sAIgiMAIsAJRJBAANCAANC/+aLAIwAiSiIAAUWULAiQ4oAASkjjACLACQMQQAXiwAlEkEAByEEjABC/+uLACIIjABC/+KLAIwAiSiIAAUWULAiQ4oAASlJI4wAI4wBiwEkDEEAGYsAIgiMAIsAJRJBAANCAAmLASIIjAFC/+CLAIwARgGJKIgABRZQsCJDigABKUkjjAAjjAGLASQMQQAdiwAlEkEAByEEjABCAAaLACIIjACLASIIjAFC/9yLAIwARgGJKIgABRZQsCJDigABKSOMAIsAIgiMAIsAJRJBAANCAAeLACQMQP/piwCMAIkoiAAFFlCwIkOKAAEpI4wAiwAlEkEAByEEjABCAAaLACIIjACLACQMQP/liwCMAIkiQ4AEuER7NjYaAI4B//EAgAThZLvZgARbPtn2gAQdhho9gASCH+gpgASNFSgKgARol89egASZy6yrgASG1e3TgATgHZ1CNhoAjgn98/4Y/kn+a/6a/s3/CP9H/3MA", + "approval": "CiADAQAKJgIEFR98dQAxGBSBBgsxGQiNDAIrAAAAAAAAAAAAAAIdAAAAAAAAAAAAAACABBUffHWIAAYWULCBAUOKAAGAAIEAjACLAIEKDEEACosAgQEIjABC/+6LAIwAiYAEFR98dYgABhZQsIEBQ4oAAYAASYEAjACBAIwBiwGBCgxBABGLAIEBCIwAiwGBAQiMAUL/54sAjABGAYmABBUffHWIAAYWULCBAUOKAAGAAIEAjACLAIEBCIwAiwCBCgxA//GLAIwAiYAEFR98dYgABhZQsIEBQ4oAAYAAgQCMAIsAgQoMQQAViwCBAQiMAIsAgQUSQQADQgADQv/jiwCMAImABBUffHWIAAYWULCBAUOKAAGAAIEAjACLAIEKDEEAGosAgQUSQQAIgbkKjABC/+iLAIEBCIwAQv/eiwCMAImABBUffHWIAAYWULCBAUOKAAGAAEmBAIwAgQCMAYsBgQoMQQAciwCBAQiMAIsAgQUSQQADQgAKiwGBAQiMAUL/3IsAjABGAYmABBUffHWIAAYWULCBAUOKAAGAAEmBAIwAgQCMAYsBgQoMQQAhiwCBBRJBAAiBuQqMAEIAB4sAgQEIjACLAYEBCIwBQv/XiwCMAEYBiYAEFR98dYgABhZQsIEBQ4oAAYAAgQCMAIsAgQEIjACLAIEFEkEAA0IACIsAgQoMQP/miwCMAImABBUffHWIAAYWULCBAUOKAAGAAIEAjACLAIEFEkEACIG5CowAQgAHiwCBAQiMAIsAgQoMQP/hiwCMAImBAUOABLhEezY2GgCOAf/wAIAE4WS72YAEWz7Z9oAEHYYaPYAEgh/oKYAEjRUoCoAEaJfPXoAEmcusq4AEhtXt04AE4B2dQjYaAI4J/Yn9uP31/iH+W/6a/uL/L/9mAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/LsigWithArgs.lsig.teal b/tests/contracts/artifacts/LsigWithArgs.lsig.teal index b989be2ba..3cc7bfc07 100644 --- a/tests/contracts/artifacts/LsigWithArgs.lsig.teal +++ b/tests/contracts/artifacts/LsigWithArgs.lsig.teal @@ -1,28 +1,28 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript -// The address of this logic signature is W6DDEFBKZB2HZYJ6WYJ3S3RSK57IRNV4LACOOLBGVDEWJ524RQWF5EBMTU +// The address of this logic signature is HTZL6FOAXBW7MXZ354G5XRU3U2B6YKXKJ2U3FW5QKPEBNG2QPLBCDKEEFA b *route_logic // logic(uint64,uint64[])void *route_logic: // b: uint64[] - int 1 + pushint 1 args extract 2 0 // a: uint64 - int 0 + pushint 0 args btoi // execute logic(uint64,uint64[])void callsub logic - int 1 + pushint 1 return // logic(a: AssetID, b: uint64[]): void diff --git a/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal b/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal index 016217310..92d466a7a 100644 --- a/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal +++ b/tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal @@ -1,10 +1,10 @@ #pragma version 10 //#pragma mode logicsig -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript -// The address of this logic signature is 2G7X6ZCAOFJOVGTOAGVL2ZKKJSLUSV2XFG4SKH3JRUIZ7EY7JWY3T7EQGI +// The address of this logic signature is XHCDBSJV2RSI57VXF3Q6RVCZAEQ53K5EMO3ORFRYM2FVX3OLCNYWYWJ3YA b *route_logic @@ -14,14 +14,14 @@ privateMethod: // tests/contracts/lsig.algo.ts:21 // return true; - int 1 + pushint 1 retsub // logic()void *route_logic: // execute logic()void callsub logic - int 1 + pushint 1 return // logic(): void diff --git a/tests/contracts/artifacts/MathTest.approval.teal b/tests/contracts/artifacts/MathTest.approval.teal index a66bc9fd5..612b21d83 100644 --- a/tests/contracts/artifacts/MathTest.approval.teal +++ b/tests/contracts/artifacts/MathTest.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 32 256 18446744073709551615 +bytecblock 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x151f7c75 0x0000000000000000000000000000000000000000000000000000000000000001 0x00000000000000000000000000000000000000000000000000000000000003e8 0x626f784b6579 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0x 0x674b6579 0xFFFFFFFFFFFFFFFF -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -520,7 +522,7 @@ exponent: itob dup bitlen - int 16 + pushint 16 <= // variableTypeHint return value overflowed 16 bits @@ -585,7 +587,7 @@ variableTypeHint: itob dup bitlen - int 8 + pushint 8 <= // uint8plus return value overflowed 8 bits @@ -639,7 +641,7 @@ uint8plus: itob dup bitlen - int 8 + pushint 8 <= // uint8exp return value overflowed 8 bits @@ -973,21 +975,21 @@ uint256ComparisonType: // tests/contracts/math.algo.ts:102 // senderBalanceAfter > 0 frame_dig 0 // senderBalanceAfter: unsafe uint256 - byte 0x0000000000000000000000000000000000000000000000000000000000000000 + pushbytes 0x0000000000000000000000000000000000000000000000000000000000000000 b> bz *if0_else // *if0_consequent // tests/contracts/math.algo.ts:103 // log('nonZero') - byte 0x6e6f6e5a65726f // "nonZero" + pushbytes 0x6e6f6e5a65726f // "nonZero" log b *if0_end *if0_else: // tests/contracts/math.algo.ts:105 // log('zero') - byte 0x7a65726f // "zero" + pushbytes 0x7a65726f // "zero" log *if0_end: @@ -1103,8 +1105,8 @@ squareRoot64: // execute addressToBigInt(address)bool callsub addressToBigInt - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit concat @@ -1145,7 +1147,7 @@ u8Tou64: // tests/contracts/math.algo.ts:122 // x: uint8 = 7 - int 7 + pushint 7 frame_bury 0 // x: uint8 // tests/contracts/math.algo.ts:123 @@ -1191,11 +1193,11 @@ funcName: // tests/contracts/math.algo.ts:131 // this.privateFuncName(x, 1337) - int 1337 + pushint 1337 frame_dig -1 // x: uint256 dup bitlen - int 8 + pushint 8 <= // x overflowed 8 bits @@ -1253,7 +1255,7 @@ bigintPlus: b+ dup bitlen - int 64 + pushint 64 <= // (btobigint(x) + btobigint(y)) as uint64 overflowed 64 bits @@ -1263,7 +1265,7 @@ bigintPlus: dup len dup - int 8 + pushint 8 - swap substring3 @@ -1795,7 +1797,7 @@ divw: // tests/contracts/math.algo.ts:197 // return divw(0, a, b); - int 0 + pushint 0 frame_dig -1 // a: uint64 frame_dig -2 // b: uint64 divw @@ -1832,9 +1834,9 @@ divmodw: // tests/contracts/math.algo.ts:201 // p = divmodw(0, a, 0, b) - int 0 + pushint 0 frame_dig -1 // a: uint64 - int 0 + pushint 0 frame_dig -2 // b: uint64 divmodw frame_bury 0 // p remainderLow: uint64 @@ -1876,7 +1878,7 @@ unsafeVariables: // tests/contracts/math.algo.ts:209 // A = 250000000 - byte 0x000000000000000000000000000000000000000000000000000000000ee6b280 + pushbytes 0x000000000000000000000000000000000000000000000000000000000ee6b280 frame_bury 0 // A: unsafe uint256 // tests/contracts/math.algo.ts:210 @@ -1896,7 +1898,7 @@ unsafeVariables: frame_dig 0 // A: unsafe uint256 dup bitlen - int 64 + pushint 64 <= // A as uint64 overflowed 64 bits @@ -1906,7 +1908,7 @@ unsafeVariables: dup len dup - int 8 + pushint 8 - swap substring3 @@ -1933,7 +1935,7 @@ unsafeVariables: txna ApplicationArgs 1 dup len - int 16 + pushint 16 == // argument 0 (x) for foobar must be a uint128 @@ -1943,7 +1945,7 @@ unsafeVariables: callsub foobar dup bitlen - int 128 + pushint 128 <= // foobar return value overflowed 128 bits @@ -1953,7 +1955,7 @@ unsafeVariables: dup len dup - int 16 + pushint 16 - swap substring3 @@ -1972,11 +1974,11 @@ foobar: // tests/contracts/math.algo.ts:220 // avgStake: uint128 = x / (30000 as uint128) frame_dig -1 // x: uint128 - byte 0x00000000000000000000000000007530 + pushbytes 0x00000000000000000000000000007530 b/ dup bitlen - int 128 + pushint 128 <= // x / (30000 as uint128) overflowed 128 bits @@ -1986,7 +1988,7 @@ foobar: dup len dup - int 16 + pushint 16 - swap substring3 @@ -2034,7 +2036,7 @@ uintFromHex: // tests/contracts/math.algo.ts:226 // return Uint<256>('0xFF'); - byte 0x00000000000000000000000000000000000000000000000000000000000000ff + pushbytes 0x00000000000000000000000000000000000000000000000000000000000000ff retsub *abi_route_createApplication: @@ -2042,7 +2044,7 @@ uintFromHex: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -2050,47 +2052,47 @@ uintFromHex: err *call_NoOp: - method "u64plus(uint64,uint64)uint64" - method "u64minus(uint64,uint64)uint64" - method "u64mul(uint64,uint64)uint64" - method "u64div(uint64,uint64)uint64" - method "u256plus(uint256,uint256)uint256" - method "u256minus(uint256,uint256)uint256" - method "u256mul(uint256,uint256)uint256" - method "u256div(uint256,uint256)uint256" - method "u64Return256(uint64,uint64)uint256" - method "maxU64()uint64" - method "exponent(uint64,uint64)uint64" - method "variableTypeHint(uint8,uint8)uint16" - method "uint8plus(uint8,uint8)uint8" - method "uint8exp(uint8,uint8)uint8" - method "plusEquals(uint64,uint64)uint64" - method "plusEqualsFromGlobal(uint64,uint64)uint64" - method "boxTest()uint256" - method "unsafeMethodArgs(uint256,uint256)uint256" - method "uint256ComparisonType(uint256,uint256)void" - method "squareRoot256(uint256,uint256)uint256" - method "squareRoot64(uint64,uint64)uint64" - method "addressToBigInt(address)bool" - method "u8Tou64()uint64" - method "funcName(uint256)void" - method "bigintPlus(uint64,uint64)uint64" - method "bitwiseOr(uint64,uint64)uint64" - method "bitwiseAnd(uint64,uint64)uint64" - method "bitwiseXor(uint64,uint64)uint64" - method "bitwiseOrU256(uint256,uint256)uint256" - method "bitwiseAndU256(uint256,uint256)uint256" - method "bitwiseXorU256(uint256,uint256)uint256" - method "bitwiseNot(uint64)uint64" - method "bitwiseNotU256(uint256)uint256" - method "mulw(uint64,uint64)uint64" - method "addw(uint64,uint64)uint64" - method "expw(uint64,uint64)uint64" - method "divw(uint64,uint64)uint64" - method "divmodw(uint64,uint64)uint64" - method "unsafeVariables()uint64" - method "foobar(uint128)uint128" - method "uintFromHex()uint256" + pushbytes 0x3ce6f1af // method "u64plus(uint64,uint64)uint64" + pushbytes 0x0031a186 // method "u64minus(uint64,uint64)uint64" + pushbytes 0xe52e4394 // method "u64mul(uint64,uint64)uint64" + pushbytes 0x950d4789 // method "u64div(uint64,uint64)uint64" + pushbytes 0x65bdda6e // method "u256plus(uint256,uint256)uint256" + pushbytes 0x0a6ad284 // method "u256minus(uint256,uint256)uint256" + pushbytes 0xf044bf24 // method "u256mul(uint256,uint256)uint256" + pushbytes 0xc48f8c05 // method "u256div(uint256,uint256)uint256" + pushbytes 0xf2e1d632 // method "u64Return256(uint64,uint64)uint256" + pushbytes 0x38b1a39e // method "maxU64()uint64" + pushbytes 0x6c136f1d // method "exponent(uint64,uint64)uint64" + pushbytes 0x22da2502 // method "variableTypeHint(uint8,uint8)uint16" + pushbytes 0xa2fead6c // method "uint8plus(uint8,uint8)uint8" + pushbytes 0xd2256f7a // method "uint8exp(uint8,uint8)uint8" + pushbytes 0xc17d624e // method "plusEquals(uint64,uint64)uint64" + pushbytes 0x5cab0438 // method "plusEqualsFromGlobal(uint64,uint64)uint64" + pushbytes 0x58989ccd // method "boxTest()uint256" + pushbytes 0x4830b4de // method "unsafeMethodArgs(uint256,uint256)uint256" + pushbytes 0xe1c55ce5 // method "uint256ComparisonType(uint256,uint256)void" + pushbytes 0x7d1d426e // method "squareRoot256(uint256,uint256)uint256" + pushbytes 0x1c2981f1 // method "squareRoot64(uint64,uint64)uint64" + pushbytes 0xb7ca04b9 // method "addressToBigInt(address)bool" + pushbytes 0xbb952338 // method "u8Tou64()uint64" + pushbytes 0x0128e27b // method "funcName(uint256)void" + pushbytes 0xf916cdb3 // method "bigintPlus(uint64,uint64)uint64" + pushbytes 0x52737545 // method "bitwiseOr(uint64,uint64)uint64" + pushbytes 0x79c1adc0 // method "bitwiseAnd(uint64,uint64)uint64" + pushbytes 0x22474abc // method "bitwiseXor(uint64,uint64)uint64" + pushbytes 0x0593fdf8 // method "bitwiseOrU256(uint256,uint256)uint256" + pushbytes 0x06fb9337 // method "bitwiseAndU256(uint256,uint256)uint256" + pushbytes 0x26493d78 // method "bitwiseXorU256(uint256,uint256)uint256" + pushbytes 0xe9c22eea // method "bitwiseNot(uint64)uint64" + pushbytes 0xede3e9bc // method "bitwiseNotU256(uint256)uint256" + pushbytes 0x2e4a2164 // method "mulw(uint64,uint64)uint64" + pushbytes 0x50134b5a // method "addw(uint64,uint64)uint64" + pushbytes 0xf53aff9b // method "expw(uint64,uint64)uint64" + pushbytes 0xcaf7110d // method "divw(uint64,uint64)uint64" + pushbytes 0xbed0e386 // method "divmodw(uint64,uint64)uint64" + pushbytes 0x274d7705 // method "unsafeVariables()uint64" + pushbytes 0x92465d08 // method "foobar(uint128)uint128" + pushbytes 0xf01facce // method "uintFromHex()uint256" txna ApplicationArgs 0 match *abi_route_u64plus *abi_route_u64minus *abi_route_u64mul *abi_route_u64div *abi_route_u256plus *abi_route_u256minus *abi_route_u256mul *abi_route_u256div *abi_route_u64Return256 *abi_route_maxU64 *abi_route_exponent *abi_route_variableTypeHint *abi_route_uint8plus *abi_route_uint8exp *abi_route_plusEquals *abi_route_plusEqualsFromGlobal *abi_route_boxTest *abi_route_unsafeMethodArgs *abi_route_uint256ComparisonType *abi_route_squareRoot256 *abi_route_squareRoot64 *abi_route_addressToBigInt *abi_route_u8Tou64 *abi_route_funcName *abi_route_bigintPlus *abi_route_bitwiseOr *abi_route_bitwiseAnd *abi_route_bitwiseXor *abi_route_bitwiseOrU256 *abi_route_bitwiseAndU256 *abi_route_bitwiseXorU256 *abi_route_bitwiseNot *abi_route_bitwiseNotU256 *abi_route_mulw *abi_route_addw *abi_route_expw *abi_route_divw *abi_route_divmodw *abi_route_unsafeVariables *abi_route_foobar *abi_route_uintFromHex diff --git a/tests/contracts/artifacts/MathTest.arc32.json b/tests/contracts/artifacts/MathTest.arc32.json index ecbd467ae..7b2626ef6 100644 --- a/tests/contracts/artifacts/MathTest.arc32.json +++ b/tests/contracts/artifacts/MathTest.arc32.json @@ -244,7 +244,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfdTY0cGx1czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NHBsdXMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRwbHVzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NHBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjgKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCXJldHN1YgoKLy8gdTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRtaW51czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiB1NjRtaW51cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG1pbnVzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NG1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMgoJLy8gcmV0dXJuIGEgLSBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLQoJcmV0c3ViCgovLyB1NjRtdWwodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRtdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NG11bAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG11bChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAp1NjRtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2CgkvLyByZXR1cm4gYSAqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkqCglyZXRzdWIKCi8vIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NGRpdjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRkaXYodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0ZGl2CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0ZGl2KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NGRpdjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjAKCS8vIHJldHVybiBhIC8gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCS8KCXJldHN1YgoKLy8gdTI1NnBsdXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2cGx1czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1NnBsdXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHUyNTZwbHVzIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHUyNTZwbHVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZwbHVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1MjU2cGx1cyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHUyNTZwbHVzKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZwbHVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyNAoJLy8gcmV0dXJuIDx1aW50MjU2PihhICsgYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIrCglyZXRzdWIKCi8vIHUyNTZtaW51cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZtaW51czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1Nm1pbnVzIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciB1MjU2bWludXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZtaW51cwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdTI1Nm1pbnVzIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1Nm1pbnVzKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZtaW51czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjgKCS8vIHJldHVybiA8dWludDI1Nj4oYSAtIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJcmV0c3ViCgovLyB1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdTI1Nm11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1Nm11bCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdTI1Nm11bCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZtdWwKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHUyNTZtdWwgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bXVsKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjMyCgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKiBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYioKCXJldHN1YgoKLy8gdTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZkaXY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHUyNTZkaXYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHUyNTZkaXYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1MjU2ZGl2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1MjU2ZGl2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1NmRpdihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1Ngp1MjU2ZGl2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czozNgoJLy8gcmV0dXJuIDx1aW50MjU2PihhIC8gYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIvCglyZXRzdWIKCi8vIHU2NFJldHVybjI1Nih1aW50NjQsdWludDY0KXVpbnQyNTYKKmFiaV9yb3V0ZV91NjRSZXR1cm4yNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0UmV0dXJuMjU2KHVpbnQ2NCx1aW50NjQpdWludDI1NgoJY2FsbHN1YiB1NjRSZXR1cm4yNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHU2NFJldHVybjI1NiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NFJldHVybjI1NihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQyNTYKdTY0UmV0dXJuMjU2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0MAoJLy8gcmV0dXJuIDx1aW50MjU2PihhICsgYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglpdG9iCglyZXRzdWIKCi8vIG1heFU2NCgpdWludDY0CiphYmlfcm91dGVfbWF4VTY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1heFU2NCgpdWludDY0CgljYWxsc3ViIG1heFU2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG1heFU2NCgpOiB1aW50NjQKbWF4VTY0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0NAoJLy8gcmV0dXJuIFVpbnQ8NjQ+KCcxODQ0Njc0NDA3MzcwOTU1MTYxNScpOwoJaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1CglyZXRzdWIKCi8vIGV4cG9uZW50KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZXhwb25lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZXhwb25lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHBvbmVudChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApleHBvbmVudDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NDgKCS8vIHJldHVybiBhICoqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglleHAKCXJldHN1YgoKLy8gdmFyaWFibGVUeXBlSGludCh1aW50OCx1aW50OCl1aW50MTYKKmFiaV9yb3V0ZV92YXJpYWJsZVR5cGVIaW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB5OiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHkpIGZvciB2YXJpYWJsZVR5cGVIaW50IG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8geDogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxICh4KSBmb3IgdmFyaWFibGVUeXBlSGludCBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdmFyaWFibGVUeXBlSGludCh1aW50OCx1aW50OCl1aW50MTYKCWNhbGxzdWIgdmFyaWFibGVUeXBlSGludAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyB2YXJpYWJsZVR5cGVIaW50IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB2YXJpYWJsZVR5cGVIaW50KHg6IHVpbnQ8OD4sIHk6IHVpbnQ8OD4pOiB1aW50MTYKdmFyaWFibGVUeXBlSGludDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo1MgoJLy8geiA9IDx1aW50MTY+KHggKyB5KQoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50PDg+CgkrCglmcmFtZV9idXJ5IDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTQKCS8vIHJldHVybiB6OwoJZnJhbWVfZGlnIDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyB1aW50OHBsdXModWludDgsdWludDgpdWludDgKKmFiaV9yb3V0ZV91aW50OHBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4cGx1cwoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoKCS8vIHVpbnQ4cGx1cyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50OHBsdXMoYTogdWludDw4PiwgYjogdWludDw4Pik6IHVpbnQ8OD4KdWludDhwbHVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo1OAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50PDg+CgkrCglyZXRzdWIKCi8vIHVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4CiphYmlfcm91dGVfdWludDhleHA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQ4ZXhwIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gYTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdWludDhleHAgbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4ZXhwCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDgKCTw9CgoJLy8gdWludDhleHAgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDhleHAoYTogdWludDw4PiwgYjogdWludDw4Pik6IHVpbnQ8OD4KdWludDhleHA6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjYyCgkvLyByZXR1cm4gYSAqKiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50PDg+CglleHAKCXJldHN1YgoKLy8gcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3BsdXNFcXVhbHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFscyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApwbHVzRXF1YWxzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjY2CgkvLyB4ID0gYQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjgKCS8vIHggKz0gYgoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3MAoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzRnJvbUdsb2JhbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzRnJvbUdsb2JhbAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNGcm9tR2xvYmFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnBsdXNFcXVhbHNGcm9tR2xvYmFsOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3NAoJLy8gdGhpcy5nS2V5LnZhbHVlID0gYQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc2CgkvLyB0aGlzLmdLZXkudmFsdWUgKz0gYgoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3OAoJLy8gcmV0dXJuIHRoaXMuZ0tleS52YWx1ZTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGJveFRlc3QoKXVpbnQyNTYKKmFiaV9yb3V0ZV9ib3hUZXN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveFRlc3QoKXVpbnQyNTYKCWNhbGxzdWIgYm94VGVzdAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYm94VGVzdCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveFRlc3QoKTogdWludDI1Ngpib3hUZXN0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NAoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSA8dWludDI1Nj4xCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODUKCS8vIHRoaXMuYm94S2V5LnZhbHVlICs9IDEKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94S2V5LnZhbHVlCglhc3NlcnQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgliKwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdGhpcy5ib3hLZXkudmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJc3dhcAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODcKCS8vIHJldHVybiB0aGlzLmJveEtleS52YWx1ZTsKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94S2V5LnZhbHVlCglhc3NlcnQKCXJldHN1YgoKLy8gZm9vKHg6IHVpbnQyNTYpOiB1aW50MjU2CmZvbzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTEKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCXJldHN1YgoKLy8gdW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3Vuc2FmZU1ldGhvZEFyZ3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVuc2FmZU1ldGhvZEFyZ3MgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVuc2FmZU1ldGhvZEFyZ3MgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1bnNhZmVNZXRob2RBcmdzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1bnNhZmVNZXRob2RBcmdzIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdW5zYWZlTWV0aG9kQXJncyhhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1Ngp1bnNhZmVNZXRob2RBcmdzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjk1CgkvLyBjID0gYSArIGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCWZyYW1lX2J1cnkgMCAvLyBjOiB1bnNhZmUgdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTcKCS8vIHJldHVybiB0aGlzLmZvbyhjKTsKCWZyYW1lX2RpZyAwIC8vIGM6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBjIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNhbGxzdWIgZm9vCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnQyNTZDb21wYXJpc29uVHlwZSh1aW50MjU2LHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJpc29uVHlwZToKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQyNTZDb21wYXJpc29uVHlwZSBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdWludDI1NkNvbXBhcmlzb25UeXBlIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVpbnQyNTZDb21wYXJpc29uVHlwZSh1aW50MjU2LHVpbnQyNTYpdm9pZAoJY2FsbHN1YiB1aW50MjU2Q29tcGFyaXNvblR5cGUKCWludCAxCglyZXR1cm4KCi8vIHVpbnQyNTZDb21wYXJpc29uVHlwZShhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdm9pZAp1aW50MjU2Q29tcGFyaXNvblR5cGU6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTAxCgkvLyBzZW5kZXJCYWxhbmNlQWZ0ZXIgPSBhIC0gYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJZnJhbWVfYnVyeSAwIC8vIHNlbmRlckJhbGFuY2VBZnRlcjogdW5zYWZlIHVpbnQyNTYKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDIKCS8vIHNlbmRlckJhbGFuY2VBZnRlciA+IDx1aW50MjU2PjAKCWZyYW1lX2RpZyAwIC8vIHNlbmRlckJhbGFuY2VBZnRlcjogdW5zYWZlIHVpbnQyNTYKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliPgoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwMwoJLy8gbG9nKCdub25aZXJvJykKCWJ5dGUgMHg2ZTZmNmU1YTY1NzI2ZiAvLyAibm9uWmVybyIKCWxvZwoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDUKCS8vIGxvZygnemVybycpCglieXRlIDB4N2E2NTcyNmYgLy8gInplcm8iCglsb2cKCippZjBfZW5kOgoJcmV0c3ViCgovLyBzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfc3F1YXJlUm9vdDI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3Igc3F1YXJlUm9vdDI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3Igc3F1YXJlUm9vdDI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHNxdWFyZVJvb3QyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHNxdWFyZVJvb3QyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcXVhcmVSb290MjU2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnNxdWFyZVJvb3QyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExMAoJLy8gcmV0dXJuIHNxcnQoYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKgoJYnNxcnQKCXJldHN1YgoKLy8gc3F1YXJlUm9vdDY0KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfc3F1YXJlUm9vdDY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHNxdWFyZVJvb3Q2NCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBzcXVhcmVSb290NjQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcXVhcmVSb290NjQoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKc3F1YXJlUm9vdDY0OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTQKCS8vIHJldHVybiBzcXJ0KGEgKiBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbAoqYWJpX3JvdXRlX2FkZHJlc3NUb0JpZ0ludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYWRkcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyKSBmb3IgYWRkcmVzc1RvQmlnSW50IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZHJlc3NUb0JpZ0ludChhZGRyZXNzKWJvb2wKCWNhbGxzdWIgYWRkcmVzc1RvQmlnSW50CglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZHJlc3NUb0JpZ0ludChhZGRyOiBBZGRyZXNzKTogYm9vbGVhbgphZGRyZXNzVG9CaWdJbnQ6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExOAoJLy8gcmV0dXJuIGJ0b2JpZ2ludChhZGRyKSA+IGJ0b2JpZ2ludCh0aGlzLnR4bi5zZW5kZXIpOwoJZnJhbWVfZGlnIC0xIC8vIGFkZHI6IEFkZHJlc3MKCXR4biBTZW5kZXIKCWI+CglyZXRzdWIKCi8vIHU4VG91NjQoKXVpbnQ2NAoqYWJpX3JvdXRlX3U4VG91NjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdThUb3U2NCgpdWludDY0CgljYWxsc3ViIHU4VG91NjQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1OFRvdTY0KCk6IHVpbnQ2NAp1OFRvdTY0OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEyMgoJLy8geDogdWludDggPSA3CglpbnQgNwoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjMKCS8vIHJldHVybiA8dWludDY0Png7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBwcml2YXRlRnVuY05hbWUoeDogdWludDgsIHk6IHVpbnQ2NCk6IHZvaWQKcHJpdmF0ZUZ1bmNOYW1lOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjcKCS8vIGFzc2VydCg8dWludDg+eSA+IHgpCglmcmFtZV9kaWcgLTIgLy8geTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8geDogdWludDgKCT4KCWFzc2VydAoJcmV0c3ViCgovLyBmdW5jTmFtZSh1aW50MjU2KXZvaWQKKmFiaV9yb3V0ZV9mdW5jTmFtZToKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoeCkgZm9yIGZ1bmNOYW1lIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGZ1bmNOYW1lKHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBmdW5jTmFtZQoJaW50IDEKCXJldHVybgoKLy8gZnVuY05hbWUoeDogdWludDI1Nik6IHZvaWQKZnVuY05hbWU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzMQoJLy8gdGhpcy5wcml2YXRlRnVuY05hbWUoPHVpbnQ4PngsIDEzMzcpCglpbnQgMTMzNwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyA8dWludDg+eCBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDMxIDEKCWJ0b2kKCWNhbGxzdWIgcHJpdmF0ZUZ1bmNOYW1lCglyZXRzdWIKCi8vIGJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaWdpbnRQbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYmlnaW50UGx1cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpZ2ludFBsdXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYmlnaW50UGx1czoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNQoJLy8geCA9IGl0b2IoYSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMCAvLyB4OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNgoJLy8geSA9IGl0b2IoYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMSAvLyB5OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNwoJLy8gcmV0dXJuIChidG9iaWdpbnQoeCkgKyBidG9iaWdpbnQoeSkpIGFzIHVpbnQ2NDsKCWZyYW1lX2RpZyAwIC8vIHg6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8geTogYnl0ZVtdCgliKwoJZHVwCgliaXRsZW4KCWludCA2NAoJPD0KCgkvLyAoYnRvYmlnaW50KHgpICsgYnRvYmlnaW50KHkpKSBhcyB1aW50NjQgb3ZlcmZsb3dlZCA2NCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGJpdHdpc2VPcih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpdHdpc2VPcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZU9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VPcjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQxCgkvLyByZXR1cm4gYSB8IGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgl8CglyZXRzdWIKCi8vIGJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlQW5kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZUFuZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZUFuZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQ1CgkvLyByZXR1cm4gYSAmIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkmCglyZXRzdWIKCi8vIGJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlWG9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZVhvcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VYb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZVhvcjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQ5CgkvLyByZXR1cm4gYSBeIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgleCglyZXRzdWIKCi8vIGJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9iaXR3aXNlT3JVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBiaXR3aXNlT3JVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBiaXR3aXNlT3JVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZU9yVTI1NiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VPclUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZU9yVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTUzCgkvLyByZXR1cm4gYSB8IGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWJ8CglyZXRzdWIKCi8vIGJpdHdpc2VBbmRVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZUFuZFUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIGJpdHdpc2VBbmRVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBiaXR3aXNlQW5kVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlQW5kVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlQW5kVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZUFuZFUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlQW5kVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlQW5kVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTU3CgkvLyByZXR1cm4gYSAmIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWImCglyZXRzdWIKCi8vIGJpdHdpc2VYb3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZVhvclUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIGJpdHdpc2VYb3JVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBiaXR3aXNlWG9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlWG9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZVhvclUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlWG9yVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlWG9yVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTYxCgkvLyByZXR1cm4gYSBeIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWJeCglyZXRzdWIKCi8vIGJpdHdpc2VOb3QodWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpdHdpc2VOb3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZU5vdCh1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VOb3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlTm90KGE6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlTm90OgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNjUKCS8vIHJldHVybiB+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCX4KCXJldHN1YgoKLy8gYml0d2lzZU5vdFUyNTYodWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZU5vdFUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGJpdHdpc2VOb3RVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlTm90VTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZU5vdFUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlTm90VTI1NihhOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlTm90VTI1NjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTY5CgkvLyByZXR1cm4gfmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJYn4KCXJldHN1YgoKLy8gbXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX211bHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBtdWx3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbXVsdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAptdWx3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTczCgkvLyBwID0gbXVsdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfYnVyeSAwIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTc3CgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDAgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2FkZHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBhZGR3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAphZGR3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTgxCgkvLyBwID0gYWRkdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJYWRkdwoJZnJhbWVfYnVyeSAwIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTg1CgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDAgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZXhwdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2V4cHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXhwdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBleHB3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZXhwdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApleHB3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTg5CgkvLyBwID0gZXhwdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZXhwdwoJZnJhbWVfYnVyeSAwIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTkzCgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDAgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2Rpdnc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBkaXZ3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGl2dyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApkaXZ3OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxOTcKCS8vIHJldHVybiBkaXZ3KDAsIGEsIGIpOwoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWRpdncKCXJldHN1YgoKLy8gZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2Rpdm1vZHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBkaXZtb2R3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGl2bW9kdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApkaXZtb2R3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjAxCgkvLyBwID0gZGl2bW9kdygwLCBhLCAwLCBiKQoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglkaXZtb2R3CglmcmFtZV9idXJ5IDAgLy8gcCByZW1haW5kZXJMb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIHAgcmVtYWluZGVySGlnaDogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gcCBxdW90aWVudExvdzogdWludDY0CglmcmFtZV9idXJ5IDMgLy8gcCBxdW90aWVudEhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjA1CgkvLyByZXR1cm4gcDIucXVvdGllbnRMb3c7CglmcmFtZV9kaWcgMiAvLyBwIHF1b3RpZW50TG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCi8vIHVuc2FmZVZhcmlhYmxlcygpdWludDY0CiphYmlfcm91dGVfdW5zYWZlVmFyaWFibGVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVuc2FmZVZhcmlhYmxlcygpdWludDY0CgljYWxsc3ViIHVuc2FmZVZhcmlhYmxlcwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVuc2FmZVZhcmlhYmxlcygpOiB1aW50NjQKdW5zYWZlVmFyaWFibGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjA5CgkvLyBBID0gPHVpbnQyNTY+MjUwMDAwMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZWU2YjI4MAoJZnJhbWVfYnVyeSAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTAKCS8vIEIgPSA8dWludDI1Nj4xMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNlOAoJZnJhbWVfYnVyeSAxIC8vIEI6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxMgoJLy8gQSA9IEEgLyBCCglmcmFtZV9kaWcgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZTggLy8gQjogdWludDI1NgoJYi8KCWZyYW1lX2J1cnkgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjE0CgkvLyBjID0gQSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJaW50IDY0Cgk8PQoKCS8vIEEgYXMgdWludDY0IG92ZXJmbG93ZWQgNjQgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCglmcmFtZV9idXJ5IDIgLy8gYzogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTYKCS8vIHJldHVybiBjOwoJZnJhbWVfZGlnIDIgLy8gYzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBmb29iYXIodWludDEyOCl1aW50MTI4CiphYmlfcm91dGVfZm9vYmFyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB4OiB1aW50MTI4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDE2Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBmb29iYXIgbXVzdCBiZSBhIHVpbnQxMjgKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vYmFyKHVpbnQxMjgpdWludDEyOAoJY2FsbHN1YiBmb29iYXIKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIGZvb2JhciByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBmb29iYXIoeDogdWludDEyOCk6IHVpbnQxMjgKZm9vYmFyOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIyMAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB4IC8gKDMwMDAwIGFzIHVpbnQxMjgpCglmcmFtZV9kaWcgLTEgLy8geDogdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NTMwCgliLwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8geCAvICgzMDAwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjIKCS8vIHJldHVybiBhdmdTdGFrZTsKCWZyYW1lX2RpZyAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnRGcm9tSGV4KCl1aW50MjU2CiphYmlfcm91dGVfdWludEZyb21IZXg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWludEZyb21IZXgoKXVpbnQyNTYKCWNhbGxzdWIgdWludEZyb21IZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHVpbnRGcm9tSGV4IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludEZyb21IZXgoKTogdWludDI1Ngp1aW50RnJvbUhleDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjI2CgkvLyByZXR1cm4gVWludDwyNTY+KCcweEZGJyk7CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmZgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidTY0cGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInU2NG11bCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTY0ZGl2KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJ1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1NjRSZXR1cm4yNTYodWludDY0LHVpbnQ2NCl1aW50MjU2IgoJbWV0aG9kICJtYXhVNjQoKXVpbnQ2NCIKCW1ldGhvZCAiZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInZhcmlhYmxlVHlwZUhpbnQodWludDgsdWludDgpdWludDE2IgoJbWV0aG9kICJ1aW50OHBsdXModWludDgsdWludDgpdWludDgiCgltZXRob2QgInVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4IgoJbWV0aG9kICJwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiYm94VGVzdCgpdWludDI1NiIKCW1ldGhvZCAidW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkIgoJbWV0aG9kICJzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImFkZHJlc3NUb0JpZ0ludChhZGRyZXNzKWJvb2wiCgltZXRob2QgInU4VG91NjQoKXVpbnQ2NCIKCW1ldGhvZCAiZnVuY05hbWUodWludDI1Nil2b2lkIgoJbWV0aG9kICJiaWdpbnRQbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgImJpdHdpc2VBbmRVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAiYml0d2lzZU5vdCh1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlTm90VTI1Nih1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgIm11bHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRpdncodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRpdm1vZHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInVuc2FmZVZhcmlhYmxlcygpdWludDY0IgoJbWV0aG9kICJmb29iYXIodWludDEyOCl1aW50MTI4IgoJbWV0aG9kICJ1aW50RnJvbUhleCgpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdTY0cGx1cyAqYWJpX3JvdXRlX3U2NG1pbnVzICphYmlfcm91dGVfdTY0bXVsICphYmlfcm91dGVfdTY0ZGl2ICphYmlfcm91dGVfdTI1NnBsdXMgKmFiaV9yb3V0ZV91MjU2bWludXMgKmFiaV9yb3V0ZV91MjU2bXVsICphYmlfcm91dGVfdTI1NmRpdiAqYWJpX3JvdXRlX3U2NFJldHVybjI1NiAqYWJpX3JvdXRlX21heFU2NCAqYWJpX3JvdXRlX2V4cG9uZW50ICphYmlfcm91dGVfdmFyaWFibGVUeXBlSGludCAqYWJpX3JvdXRlX3VpbnQ4cGx1cyAqYWJpX3JvdXRlX3VpbnQ4ZXhwICphYmlfcm91dGVfcGx1c0VxdWFscyAqYWJpX3JvdXRlX3BsdXNFcXVhbHNGcm9tR2xvYmFsICphYmlfcm91dGVfYm94VGVzdCAqYWJpX3JvdXRlX3Vuc2FmZU1ldGhvZEFyZ3MgKmFiaV9yb3V0ZV91aW50MjU2Q29tcGFyaXNvblR5cGUgKmFiaV9yb3V0ZV9zcXVhcmVSb290MjU2ICphYmlfcm91dGVfc3F1YXJlUm9vdDY0ICphYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50ICphYmlfcm91dGVfdThUb3U2NCAqYWJpX3JvdXRlX2Z1bmNOYW1lICphYmlfcm91dGVfYmlnaW50UGx1cyAqYWJpX3JvdXRlX2JpdHdpc2VPciAqYWJpX3JvdXRlX2JpdHdpc2VBbmQgKmFiaV9yb3V0ZV9iaXR3aXNlWG9yICphYmlfcm91dGVfYml0d2lzZU9yVTI1NiAqYWJpX3JvdXRlX2JpdHdpc2VBbmRVMjU2ICphYmlfcm91dGVfYml0d2lzZVhvclUyNTYgKmFiaV9yb3V0ZV9iaXR3aXNlTm90ICphYmlfcm91dGVfYml0d2lzZU5vdFUyNTYgKmFiaV9yb3V0ZV9tdWx3ICphYmlfcm91dGVfYWRkdyAqYWJpX3JvdXRlX2V4cHcgKmFiaV9yb3V0ZV9kaXZ3ICphYmlfcm91dGVfZGl2bW9kdyAqYWJpX3JvdXRlX3Vuc2FmZVZhcmlhYmxlcyAqYWJpX3JvdXRlX2Zvb2JhciAqYWJpX3JvdXRlX3VpbnRGcm9tSGV4CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDMyIDI1NiAxODQ0Njc0NDA3MzcwOTU1MTYxNQpieXRlY2Jsb2NrIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAweDE1MWY3Yzc1IDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZTggMHg2MjZmNzg0YjY1NzkgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAweCAweDY3NGI2NTc5IDB4RkZGRkZGRkZGRkZGRkZGRgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHU2NHBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRwbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NHBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0cGx1cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NHBsdXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyB1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NG1pbnVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NG1pbnVzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NG1pbnVzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0bWludXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0bWludXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gYSAtIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgktCglyZXRzdWIKCi8vIHU2NG11bCh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NG11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRtdWwodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0bXVsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0bXVsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NG11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTYKCS8vIHJldHVybiBhICogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSoKCXJldHN1YgoKLy8gdTY0ZGl2KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfdTY0ZGl2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiB1NjRkaXYKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRkaXYoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0ZGl2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMAoJLy8gcmV0dXJuIGEgLyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLwoJcmV0c3ViCgovLyB1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZwbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1MjU2cGx1cyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdTI1NnBsdXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1NnBsdXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1NnBsdXMKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHUyNTZwbHVzIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1NnBsdXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1NnBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjI0CgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCXJldHN1YgoKLy8gdTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdTI1Nm1pbnVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1MjU2bWludXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHUyNTZtaW51cyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1Nm1pbnVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1MjU2bWludXMgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bWludXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyOAoJLy8gcmV0dXJuIDx1aW50MjU2PihhIC0gYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglyZXRzdWIKCi8vIHUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2bXVsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1MjU2bXVsIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciB1MjU2bXVsIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1Nm11bAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdTI1Nm11bCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHUyNTZtdWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MzIKCS8vIHJldHVybiA8dWludDI1Nj4oYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKgoJcmV0c3ViCgovLyB1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdTI1NmRpdjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1NmRpdiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdTI1NmRpdiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZkaXYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHUyNTZkaXYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2ZGl2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZkaXY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjM2CgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgLyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYi8KCXJldHN1YgoKLy8gdTY0UmV0dXJuMjU2KHVpbnQ2NCx1aW50NjQpdWludDI1NgoqYWJpX3JvdXRlX3U2NFJldHVybjI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRSZXR1cm4yNTYodWludDY0LHVpbnQ2NCl1aW50MjU2CgljYWxsc3ViIHU2NFJldHVybjI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdTY0UmV0dXJuMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0UmV0dXJuMjU2KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDI1Ngp1NjRSZXR1cm4yNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjQwCgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCWl0b2IKCXJldHN1YgoKLy8gbWF4VTY0KCl1aW50NjQKKmFiaV9yb3V0ZV9tYXhVNjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VTY0KCl1aW50NjQKCWNhbGxzdWIgbWF4VTY0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbWF4VTY0KCk6IHVpbnQ2NAptYXhVNjQ6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gVWludDw2ND4oJzE4NDQ2NzQ0MDczNzA5NTUxNjE1Jyk7CglpbnQgMTg0NDY3NDQwNzM3MDk1NTE2MTUKCXJldHN1YgoKLy8gZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9leHBvbmVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBleHBvbmVudCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBleHBvbmVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4cG9uZW50KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4cG9uZW50OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0OAoJLy8gcmV0dXJuIGEgKiogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWV4cAoJcmV0c3ViCgovLyB2YXJpYWJsZVR5cGVIaW50KHVpbnQ4LHVpbnQ4KXVpbnQxNgoqYWJpX3JvdXRlX3ZhcmlhYmxlVHlwZUhpbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoeSkgZm9yIHZhcmlhYmxlVHlwZUhpbnQgbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyB4OiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKHgpIGZvciB2YXJpYWJsZVR5cGVIaW50IG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB2YXJpYWJsZVR5cGVIaW50KHVpbnQ4LHVpbnQ4KXVpbnQxNgoJY2FsbHN1YiB2YXJpYWJsZVR5cGVIaW50CglpdG9iCglkdXAKCWJpdGxlbgoJcHVzaGludCAxNgoJPD0KCgkvLyB2YXJpYWJsZVR5cGVIaW50IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB2YXJpYWJsZVR5cGVIaW50KHg6IHVpbnQ8OD4sIHk6IHVpbnQ8OD4pOiB1aW50MTYKdmFyaWFibGVUeXBlSGludDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo1MgoJLy8geiA9IDx1aW50MTY+KHggKyB5KQoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50PDg+CgkrCglmcmFtZV9idXJ5IDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTQKCS8vIHJldHVybiB6OwoJZnJhbWVfZGlnIDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyB1aW50OHBsdXModWludDgsdWludDgpdWludDgKKmFiaV9yb3V0ZV91aW50OHBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4cGx1cwoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyB1aW50OHBsdXMgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDhwbHVzKGE6IHVpbnQ8OD4sIGI6IHVpbnQ8OD4pOiB1aW50PDg+CnVpbnQ4cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTgKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50PDg+CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDw4PgoJKwoJcmV0c3ViCgovLyB1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OAoqYWJpX3JvdXRlX3VpbnQ4ZXhwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1aW50OGV4cCBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQ4ZXhwIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OAoJY2FsbHN1YiB1aW50OGV4cAoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyB1aW50OGV4cCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50OGV4cChhOiB1aW50PDg+LCBiOiB1aW50PDg+KTogdWludDw4Pgp1aW50OGV4cDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjIKCS8vIHJldHVybiBhICoqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDw4PgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ8OD4KCWV4cAoJcmV0c3ViCgovLyBwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfcGx1c0VxdWFsczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHBsdXNFcXVhbHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnBsdXNFcXVhbHM6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjYKCS8vIHggPSBhCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo2OAoJLy8geCArPSBiCglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjcwCgkvLyByZXR1cm4geDsKCWZyYW1lX2RpZyAwIC8vIHg6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3BsdXNFcXVhbHNGcm9tR2xvYmFsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHBsdXNFcXVhbHNGcm9tR2xvYmFsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHBsdXNFcXVhbHNGcm9tR2xvYmFsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKcGx1c0VxdWFsc0Zyb21HbG9iYWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc0CgkvLyB0aGlzLmdLZXkudmFsdWUgPSBhCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NzYKCS8vIHRoaXMuZ0tleS52YWx1ZSArPSBiCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc4CgkvLyByZXR1cm4gdGhpcy5nS2V5LnZhbHVlOwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYm94VGVzdCgpdWludDI1NgoqYWJpX3JvdXRlX2JveFRlc3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm94VGVzdCgpdWludDI1NgoJY2FsbHN1YiBib3hUZXN0CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBib3hUZXN0IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94VGVzdCgpOiB1aW50MjU2CmJveFRlc3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjg0CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9IDx1aW50MjU2PjEKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NQoJLy8gdGhpcy5ib3hLZXkudmFsdWUgKz0gMQoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkudmFsdWUKCWFzc2VydAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCWIrCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB0aGlzLmJveEtleS52YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCglzd2FwCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NwoJLy8gcmV0dXJuIHRoaXMuYm94S2V5LnZhbHVlOwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkudmFsdWUKCWFzc2VydAoJcmV0c3ViCgovLyBmb28oeDogdWludDI1Nik6IHVpbnQyNTYKZm9vOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo5MQoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgLTEgLy8geDogdWludDI1NgoJcmV0c3ViCgovLyB1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdW5zYWZlTWV0aG9kQXJnczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdW5zYWZlTWV0aG9kQXJncyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdW5zYWZlTWV0aG9kQXJncyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHVuc2FmZU1ldGhvZEFyZ3MKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHVuc2FmZU1ldGhvZEFyZ3MgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1bnNhZmVNZXRob2RBcmdzKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnVuc2FmZU1ldGhvZEFyZ3M6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTUKCS8vIGMgPSBhICsgYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJZnJhbWVfYnVyeSAwIC8vIGM6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo5NwoJLy8gcmV0dXJuIHRoaXMuZm9vKGMpOwoJZnJhbWVfZGlnIDAgLy8gYzogdW5zYWZlIHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGMgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY2FsbHN1YiBmb28KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gdWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcmlzb25UeXBlOgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdWludDI1NkNvbXBhcmlzb25UeXBlIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciB1aW50MjU2Q29tcGFyaXNvblR5cGUgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJpc29uVHlwZQoJaW50IDEKCXJldHVybgoKLy8gdWludDI1NkNvbXBhcmlzb25UeXBlKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB2b2lkCnVpbnQyNTZDb21wYXJpc29uVHlwZToKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDEKCS8vIHNlbmRlckJhbGFuY2VBZnRlciA9IGEgLSBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglmcmFtZV9idXJ5IDAgLy8gc2VuZGVyQmFsYW5jZUFmdGVyOiB1bnNhZmUgdWludDI1NgoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwMgoJLy8gc2VuZGVyQmFsYW5jZUFmdGVyID4gPHVpbnQyNTY+MAoJZnJhbWVfZGlnIDAgLy8gc2VuZGVyQmFsYW5jZUFmdGVyOiB1bnNhZmUgdWludDI1NgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYj4KCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDMKCS8vIGxvZygnbm9uWmVybycpCglwdXNoYnl0ZXMgMHg2ZTZmNmU1YTY1NzI2ZiAvLyAibm9uWmVybyIKCWxvZwoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDUKCS8vIGxvZygnemVybycpCglwdXNoYnl0ZXMgMHg3YTY1NzI2ZiAvLyAiemVybyIKCWxvZwoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIHNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9zcXVhcmVSb290MjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBzcXVhcmVSb290MjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBzcXVhcmVSb290MjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgc3F1YXJlUm9vdDI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gc3F1YXJlUm9vdDI1NiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3QyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKc3F1YXJlUm9vdDI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTEwCgkvLyByZXR1cm4gc3FydChhICogYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIqCglic3FydAoJcmV0c3ViCgovLyBzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9zcXVhcmVSb290NjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc3F1YXJlUm9vdDY0KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHNxdWFyZVJvb3Q2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3Q2NChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApzcXVhcmVSb290NjQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExNAoJLy8gcmV0dXJuIHNxcnQoYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKgoJc3FydAoJcmV0c3ViCgovLyBhZGRyZXNzVG9CaWdJbnQoYWRkcmVzcylib29sCiphYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHIpIGZvciBhZGRyZXNzVG9CaWdJbnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBhZGRyZXNzVG9CaWdJbnQKCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkcmVzc1RvQmlnSW50KGFkZHI6IEFkZHJlc3MpOiBib29sZWFuCmFkZHJlc3NUb0JpZ0ludDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTE4CgkvLyByZXR1cm4gYnRvYmlnaW50KGFkZHIpID4gYnRvYmlnaW50KHRoaXMudHhuLnNlbmRlcik7CglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJYj4KCXJldHN1YgoKLy8gdThUb3U2NCgpdWludDY0CiphYmlfcm91dGVfdThUb3U2NDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1OFRvdTY0KCl1aW50NjQKCWNhbGxzdWIgdThUb3U2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU4VG91NjQoKTogdWludDY0CnU4VG91NjQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTIyCgkvLyB4OiB1aW50OCA9IDcKCXB1c2hpbnQgNwoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjMKCS8vIHJldHVybiA8dWludDY0Png7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBwcml2YXRlRnVuY05hbWUoeDogdWludDgsIHk6IHVpbnQ2NCk6IHZvaWQKcHJpdmF0ZUZ1bmNOYW1lOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjcKCS8vIGFzc2VydCg8dWludDg+eSA+IHgpCglmcmFtZV9kaWcgLTIgLy8geTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8geDogdWludDgKCT4KCWFzc2VydAoJcmV0c3ViCgovLyBmdW5jTmFtZSh1aW50MjU2KXZvaWQKKmFiaV9yb3V0ZV9mdW5jTmFtZToKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoeCkgZm9yIGZ1bmNOYW1lIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGZ1bmNOYW1lKHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBmdW5jTmFtZQoJaW50IDEKCXJldHVybgoKLy8gZnVuY05hbWUoeDogdWludDI1Nik6IHZvaWQKZnVuY05hbWU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzMQoJLy8gdGhpcy5wcml2YXRlRnVuY05hbWUoPHVpbnQ4PngsIDEzMzcpCglwdXNoaW50IDEzMzcKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50MjU2CglkdXAKCWJpdGxlbgoJcHVzaGludCA4Cgk8PQoKCS8vIDx1aW50OD54IG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgMzEgMQoJYnRvaQoJY2FsbHN1YiBwcml2YXRlRnVuY05hbWUKCXJldHN1YgoKLy8gYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpZ2ludFBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaWdpbnRQbHVzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYmlnaW50UGx1cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaWdpbnRQbHVzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM1CgkvLyB4ID0gaXRvYihhKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIHg6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM2CgkvLyB5ID0gaXRvYihiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAxIC8vIHk6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM3CgkvLyByZXR1cm4gKGJ0b2JpZ2ludCh4KSArIGJ0b2JpZ2ludCh5KSkgYXMgdWludDY0OwoJZnJhbWVfZGlnIDAgLy8geDogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyB5OiBieXRlW10KCWIrCglkdXAKCWJpdGxlbgoJcHVzaGludCA2NAoJPD0KCgkvLyAoYnRvYmlnaW50KHgpICsgYnRvYmlnaW50KHkpKSBhcyB1aW50NjQgb3ZlcmZsb3dlZCA2NCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJcHVzaGludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZU9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VPcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VPcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlT3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE0MQoJLy8gcmV0dXJuIGEgfCBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJcmV0c3ViCgovLyBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYml0d2lzZUFuZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VBbmQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlQW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VBbmQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE0NQoJLy8gcmV0dXJuIGEgJiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJcmV0c3ViCgovLyBiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYml0d2lzZVhvcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VYb3IKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlWG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VYb3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE0OQoJLy8gcmV0dXJuIGEgXiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJXgoJcmV0c3ViCgovLyBiaXR3aXNlT3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZU9yVTI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgYml0d2lzZU9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgYml0d2lzZU9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlT3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGJpdHdpc2VPclUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VPclUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlT3JVMjU2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmJpdHdpc2VPclUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1MwoJLy8gcmV0dXJuIGEgfCBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CglifAoJcmV0c3ViCgovLyBiaXR3aXNlQW5kVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VBbmRVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBiaXR3aXNlQW5kVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgYml0d2lzZUFuZFUyNTYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZUFuZFUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VBbmRVMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZUFuZFUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZUFuZFUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIGEgJiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliJgoJcmV0c3ViCgovLyBiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VYb3JVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBiaXR3aXNlWG9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgYml0d2lzZVhvclUyNTYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYml0d2lzZVhvclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZVhvclUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VYb3JVMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZVhvclUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZVhvclUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2MQoJLy8gcmV0dXJuIGEgXiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliXgoJcmV0c3ViCgovLyBiaXR3aXNlTm90KHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlTm90OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3QodWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaXR3aXNlTm90CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdChhOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZU5vdDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTY1CgkvLyByZXR1cm4gfmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0Cgl+CglyZXRzdWIKCi8vIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VOb3RVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBiaXR3aXNlTm90VTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlTm90VTI1Nih1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU5vdFUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VOb3RVMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdFUyNTYoYTogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZU5vdFUyNTY6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2OQoJLy8gcmV0dXJuIH5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWJ+CglyZXRzdWIKCi8vIG11bHcodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9tdWx3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG11bHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgbXVsdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG11bHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKbXVsdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE3MwoJLy8gcCA9IG11bHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCW11bHcKCWZyYW1lX2J1cnkgMCAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE3NwoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAwIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9hZGR3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYWRkdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYWRkdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4MQoJLy8gcCA9IGFkZHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWFkZHcKCWZyYW1lX2J1cnkgMCAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4NQoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAwIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9leHB3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZXhwdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4cHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKZXhwdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4OQoJLy8gcCA9IGV4cHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWV4cHcKCWZyYW1lX2J1cnkgMCAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE5MwoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAwIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRpdncodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9kaXZ3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRpdncodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZGl2dwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGRpdncoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKZGl2dzoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTk3CgkvLyByZXR1cm4gZGl2dygwLCBhLCBiKTsKCXB1c2hpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZGl2dwoJcmV0c3ViCgovLyBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZGl2bW9kdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGRpdm1vZHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkaXZtb2R3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmRpdm1vZHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDEKCS8vIHAgPSBkaXZtb2R3KDAsIGEsIDAsIGIpCglwdXNoaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCXB1c2hpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZGl2bW9kdwoJZnJhbWVfYnVyeSAwIC8vIHAgcmVtYWluZGVyTG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIHJlbWFpbmRlckhpZ2g6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIHAgcXVvdGllbnRMb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIHAgcXVvdGllbnRIaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIwNQoJLy8gcmV0dXJuIHAyLnF1b3RpZW50TG93OwoJZnJhbWVfZGlnIDIgLy8gcCBxdW90aWVudExvdzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB1bnNhZmVWYXJpYWJsZXMoKXVpbnQ2NAoqYWJpX3JvdXRlX3Vuc2FmZVZhcmlhYmxlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1bnNhZmVWYXJpYWJsZXMoKXVpbnQ2NAoJY2FsbHN1YiB1bnNhZmVWYXJpYWJsZXMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1bnNhZmVWYXJpYWJsZXMoKTogdWludDY0CnVuc2FmZVZhcmlhYmxlczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIwOQoJLy8gQSA9IDx1aW50MjU2PjI1MDAwMDAwMAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZWU2YjI4MAoJZnJhbWVfYnVyeSAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTAKCS8vIEIgPSA8dWludDI1Nj4xMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNlOAoJZnJhbWVfYnVyeSAxIC8vIEI6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxMgoJLy8gQSA9IEEgLyBCCglmcmFtZV9kaWcgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZTggLy8gQjogdWludDI1NgoJYi8KCWZyYW1lX2J1cnkgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjE0CgkvLyBjID0gQSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJcHVzaGludCA2NAoJPD0KCgkvLyBBIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglwdXNoaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBjOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxNgoJLy8gcmV0dXJuIGM7CglmcmFtZV9kaWcgMiAvLyBjOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGZvb2Jhcih1aW50MTI4KXVpbnQxMjgKKmFiaV9yb3V0ZV9mb29iYXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHg6IHVpbnQxMjgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDE2Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBmb29iYXIgbXVzdCBiZSBhIHVpbnQxMjgKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vYmFyKHVpbnQxMjgpdWludDEyOAoJY2FsbHN1YiBmb29iYXIKCWR1cAoJYml0bGVuCglwdXNoaW50IDEyOAoJPD0KCgkvLyBmb29iYXIgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJcHVzaGludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGZvb2Jhcih4OiB1aW50MTI4KTogdWludDEyOApmb29iYXI6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjIwCgkvLyBhdmdTdGFrZTogdWludDEyOCA9IHggLyAoMzAwMDAgYXMgdWludDEyOCkKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUzMAoJYi8KCWR1cAoJYml0bGVuCglwdXNoaW50IDEyOAoJPD0KCgkvLyB4IC8gKDMwMDAwIGFzIHVpbnQxMjgpIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJcHVzaGludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjIKCS8vIHJldHVybiBhdmdTdGFrZTsKCWZyYW1lX2RpZyAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnRGcm9tSGV4KCl1aW50MjU2CiphYmlfcm91dGVfdWludEZyb21IZXg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWludEZyb21IZXgoKXVpbnQyNTYKCWNhbGxzdWIgdWludEZyb21IZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHVpbnRGcm9tSGV4IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludEZyb21IZXgoKTogdWludDI1Ngp1aW50RnJvbUhleDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjI2CgkvLyByZXR1cm4gVWludDwyNTY+KCcweEZGJyk7CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGZmCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4M2NlNmYxYWYgLy8gbWV0aG9kICJ1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4MDAzMWExODYgLy8gbWV0aG9kICJ1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGU1MmU0Mzk0IC8vIG1ldGhvZCAidTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4OTUwZDQ3ODkgLy8gbWV0aG9kICJ1NjRkaXYodWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg2NWJkZGE2ZSAvLyBtZXRob2QgInUyNTZwbHVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJcHVzaGJ5dGVzIDB4MGE2YWQyODQgLy8gbWV0aG9kICJ1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHhmMDQ0YmYyNCAvLyBtZXRob2QgInUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHhjNDhmOGMwNSAvLyBtZXRob2QgInUyNTZkaXYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHhmMmUxZDYzMiAvLyBtZXRob2QgInU2NFJldHVybjI1Nih1aW50NjQsdWludDY0KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHgzOGIxYTM5ZSAvLyBtZXRob2QgIm1heFU2NCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4NmMxMzZmMWQgLy8gbWV0aG9kICJleHBvbmVudCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDIyZGEyNTAyIC8vIG1ldGhvZCAidmFyaWFibGVUeXBlSGludCh1aW50OCx1aW50OCl1aW50MTYiCglwdXNoYnl0ZXMgMHhhMmZlYWQ2YyAvLyBtZXRob2QgInVpbnQ4cGx1cyh1aW50OCx1aW50OCl1aW50OCIKCXB1c2hieXRlcyAweGQyMjU2ZjdhIC8vIG1ldGhvZCAidWludDhleHAodWludDgsdWludDgpdWludDgiCglwdXNoYnl0ZXMgMHhjMTdkNjI0ZSAvLyBtZXRob2QgInBsdXNFcXVhbHModWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1Y2FiMDQzOCAvLyBtZXRob2QgInBsdXNFcXVhbHNGcm9tR2xvYmFsKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4NTg5ODljY2QgLy8gbWV0aG9kICJib3hUZXN0KCl1aW50MjU2IgoJcHVzaGJ5dGVzIDB4NDgzMGI0ZGUgLy8gbWV0aG9kICJ1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJcHVzaGJ5dGVzIDB4ZTFjNTVjZTUgLy8gbWV0aG9kICJ1aW50MjU2Q29tcGFyaXNvblR5cGUodWludDI1Nix1aW50MjU2KXZvaWQiCglwdXNoYnl0ZXMgMHg3ZDFkNDI2ZSAvLyBtZXRob2QgInNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHgxYzI5ODFmMSAvLyBtZXRob2QgInNxdWFyZVJvb3Q2NCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGI3Y2EwNGI5IC8vIG1ldGhvZCAiYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbCIKCXB1c2hieXRlcyAweGJiOTUyMzM4IC8vIG1ldGhvZCAidThUb3U2NCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4MDEyOGUyN2IgLy8gbWV0aG9kICJmdW5jTmFtZSh1aW50MjU2KXZvaWQiCglwdXNoYnl0ZXMgMHhmOTE2Y2RiMyAvLyBtZXRob2QgImJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1MjczNzU0NSAvLyBtZXRob2QgImJpdHdpc2VPcih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDc5YzFhZGMwIC8vIG1ldGhvZCAiYml0d2lzZUFuZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDIyNDc0YWJjIC8vIG1ldGhvZCAiYml0d2lzZVhvcih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDA1OTNmZGY4IC8vIG1ldGhvZCAiYml0d2lzZU9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCXB1c2hieXRlcyAweDA2ZmI5MzM3IC8vIG1ldGhvZCAiYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHgyNjQ5M2Q3OCAvLyBtZXRob2QgImJpdHdpc2VYb3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJcHVzaGJ5dGVzIDB4ZTljMjJlZWEgLy8gbWV0aG9kICJiaXR3aXNlTm90KHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHhlZGUzZTliYyAvLyBtZXRob2QgImJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NiIKCXB1c2hieXRlcyAweDJlNGEyMTY0IC8vIG1ldGhvZCAibXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDUwMTM0YjVhIC8vIG1ldGhvZCAiYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGY1M2FmZjliIC8vIG1ldGhvZCAiZXhwdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGNhZjcxMTBkIC8vIG1ldGhvZCAiZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGJlZDBlMzg2IC8vIG1ldGhvZCAiZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDI3NGQ3NzA1IC8vIG1ldGhvZCAidW5zYWZlVmFyaWFibGVzKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5MjQ2NWQwOCAvLyBtZXRob2QgImZvb2Jhcih1aW50MTI4KXVpbnQxMjgiCglwdXNoYnl0ZXMgMHhmMDFmYWNjZSAvLyBtZXRob2QgInVpbnRGcm9tSGV4KCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91NjRwbHVzICphYmlfcm91dGVfdTY0bWludXMgKmFiaV9yb3V0ZV91NjRtdWwgKmFiaV9yb3V0ZV91NjRkaXYgKmFiaV9yb3V0ZV91MjU2cGx1cyAqYWJpX3JvdXRlX3UyNTZtaW51cyAqYWJpX3JvdXRlX3UyNTZtdWwgKmFiaV9yb3V0ZV91MjU2ZGl2ICphYmlfcm91dGVfdTY0UmV0dXJuMjU2ICphYmlfcm91dGVfbWF4VTY0ICphYmlfcm91dGVfZXhwb25lbnQgKmFiaV9yb3V0ZV92YXJpYWJsZVR5cGVIaW50ICphYmlfcm91dGVfdWludDhwbHVzICphYmlfcm91dGVfdWludDhleHAgKmFiaV9yb3V0ZV9wbHVzRXF1YWxzICphYmlfcm91dGVfcGx1c0VxdWFsc0Zyb21HbG9iYWwgKmFiaV9yb3V0ZV9ib3hUZXN0ICphYmlfcm91dGVfdW5zYWZlTWV0aG9kQXJncyAqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJpc29uVHlwZSAqYWJpX3JvdXRlX3NxdWFyZVJvb3QyNTYgKmFiaV9yb3V0ZV9zcXVhcmVSb290NjQgKmFiaV9yb3V0ZV9hZGRyZXNzVG9CaWdJbnQgKmFiaV9yb3V0ZV91OFRvdTY0ICphYmlfcm91dGVfZnVuY05hbWUgKmFiaV9yb3V0ZV9iaWdpbnRQbHVzICphYmlfcm91dGVfYml0d2lzZU9yICphYmlfcm91dGVfYml0d2lzZUFuZCAqYWJpX3JvdXRlX2JpdHdpc2VYb3IgKmFiaV9yb3V0ZV9iaXR3aXNlT3JVMjU2ICphYmlfcm91dGVfYml0d2lzZUFuZFUyNTYgKmFiaV9yb3V0ZV9iaXR3aXNlWG9yVTI1NiAqYWJpX3JvdXRlX2JpdHdpc2VOb3QgKmFiaV9yb3V0ZV9iaXR3aXNlTm90VTI1NiAqYWJpX3JvdXRlX211bHcgKmFiaV9yb3V0ZV9hZGR3ICphYmlfcm91dGVfZXhwdyAqYWJpX3JvdXRlX2RpdncgKmFiaV9yb3V0ZV9kaXZtb2R3ICphYmlfcm91dGVfdW5zYWZlVmFyaWFibGVzICphYmlfcm91dGVfZm9vYmFyICphYmlfcm91dGVfdWludEZyb21IZXgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/MathTest.arc56_draft.json b/tests/contracts/artifacts/MathTest.arc56_draft.json index 363a6e12a..2a3cad1be 100644 --- a/tests/contracts/artifacts/MathTest.arc56_draft.json +++ b/tests/contracts/artifacts/MathTest.arc56_draft.json @@ -897,9561 +897,370 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 158, - 159 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 160 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 161, - 162 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 163 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 164, - 165 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 166 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 193 - ] - }, - { - "teal": 28, - "source": 7, - "pc": [ - 194 - ] - }, - { - "teal": 31, - "source": 7, - "pc": [ - 195, - 196, - 197 - ] - }, - { - "teal": 32, - "source": 7, - "pc": [ - 198 - ] - }, - { - "teal": 35, - "source": 7, - "pc": [ - 199, - 200, - 201 - ] - }, - { - "teal": 36, - "source": 7, - "pc": [ - 202 - ] - }, - { - "teal": 39, - "source": 7, - "pc": [ - 203, - 204, - 205 - ] - }, - { - "teal": 40, - "source": 7, - "pc": [ - 206 - ] - }, - { - "teal": 41, - "source": 7, - "pc": [ - 207 - ] - }, - { - "teal": 42, - "source": 7, - "pc": [ - 208 - ] - }, - { - "teal": 43, - "source": 7, - "pc": [ - 209 - ] - }, - { - "teal": 44, - "source": 7, - "pc": [ - 210 - ] - }, - { - "teal": 48, - "source": 7, - "pc": [ - 211, - 212, - 213 - ] - }, - { - "teal": 52, - "source": 8, - "pc": [ - 214, - 215 - ] - }, - { - "teal": 53, - "source": 8, - "pc": [ - 216, - 217 - ] - }, - { - "teal": 54, - "source": 8, - "pc": [ - 218 - ] - }, - { - "teal": 55, - "source": 7, - "pc": [ - 219 - ] - }, - { - "teal": 60, - "source": 11, - "pc": [ - 220 - ] - }, - { - "teal": 63, - "source": 11, - "pc": [ - 221, - 222, - 223 - ] - }, - { - "teal": 64, - "source": 11, - "pc": [ - 224 - ] - }, - { - "teal": 67, - "source": 11, - "pc": [ - 225, - 226, - 227 - ] - }, - { - "teal": 68, - "source": 11, - "pc": [ - 228 - ] - }, - { - "teal": 71, - "source": 11, - "pc": [ - 229, - 230, - 231 - ] - }, - { - "teal": 72, - "source": 11, - "pc": [ - 232 - ] - }, - { - "teal": 73, - "source": 11, - "pc": [ - 233 - ] - }, - { - "teal": 74, - "source": 11, - "pc": [ - 234 - ] - }, - { - "teal": 75, - "source": 11, - "pc": [ - 235 - ] - }, - { - "teal": 76, - "source": 11, - "pc": [ - 236 - ] - }, - { - "teal": 80, - "source": 11, - "pc": [ - 237, - 238, - 239 - ] - }, - { - "teal": 84, - "source": 12, - "pc": [ - 240, - 241 - ] - }, - { - "teal": 85, - "source": 12, - "pc": [ - 242, - 243 - ] - }, - { - "teal": 86, - "source": 12, - "pc": [ - 244 - ] - }, - { - "teal": 87, - "source": 11, - "pc": [ - 245 - ] - }, - { - "teal": 92, - "source": 15, - "pc": [ - 246 - ] - }, - { - "teal": 95, - "source": 15, - "pc": [ - 247, - 248, - 249 - ] - }, - { - "teal": 96, - "source": 15, - "pc": [ - 250 - ] - }, - { - "teal": 99, - "source": 15, - "pc": [ - 251, - 252, - 253 - ] - }, - { - "teal": 100, - "source": 15, - "pc": [ - 254 - ] - }, - { - "teal": 103, - "source": 15, - "pc": [ - 255, - 256, - 257 - ] - }, - { - "teal": 104, - "source": 15, - "pc": [ - 258 - ] - }, - { - "teal": 105, - "source": 15, - "pc": [ - 259 - ] - }, - { - "teal": 106, - "source": 15, - "pc": [ - 260 - ] - }, - { - "teal": 107, - "source": 15, - "pc": [ - 261 - ] - }, - { - "teal": 108, - "source": 15, - "pc": [ - 262 - ] - }, - { - "teal": 112, - "source": 15, - "pc": [ - 263, - 264, - 265 - ] - }, - { - "teal": 116, - "source": 16, - "pc": [ - 266, - 267 - ] - }, - { - "teal": 117, - "source": 16, - "pc": [ - 268, - 269 - ] - }, - { - "teal": 118, - "source": 16, - "pc": [ - 270 - ] - }, - { - "teal": 119, - "source": 15, - "pc": [ - 271 - ] - }, - { - "teal": 124, - "source": 19, - "pc": [ - 272 - ] - }, - { - "teal": 127, - "source": 19, - "pc": [ - 273, - 274, - 275 - ] - }, - { - "teal": 128, - "source": 19, - "pc": [ - 276 - ] - }, - { - "teal": 131, - "source": 19, - "pc": [ - 277, - 278, - 279 - ] - }, - { - "teal": 132, - "source": 19, - "pc": [ - 280 - ] - }, - { - "teal": 135, - "source": 19, - "pc": [ - 281, - 282, - 283 - ] - }, - { - "teal": 136, - "source": 19, - "pc": [ - 284 - ] - }, - { - "teal": 137, - "source": 19, - "pc": [ - 285 - ] - }, - { - "teal": 138, - "source": 19, - "pc": [ - 286 - ] - }, - { - "teal": 139, - "source": 19, - "pc": [ - 287 - ] - }, - { - "teal": 140, - "source": 19, - "pc": [ - 288 - ] - }, - { - "teal": 144, - "source": 19, - "pc": [ - 289, - 290, - 291 - ] - }, - { - "teal": 148, - "source": 20, - "pc": [ - 292, - 293 - ] - }, - { - "teal": 149, - "source": 20, - "pc": [ - 294, - 295 - ] - }, - { - "teal": 150, - "source": 20, - "pc": [ - 296 - ] - }, - { - "teal": 151, - "source": 19, - "pc": [ - 297 - ] - }, - { - "teal": 156, - "source": 23, - "pc": [ - 298 - ] - }, - { - "teal": 159, - "source": 23, - "pc": [ - 299, - 300, - 301 - ] - }, - { - "teal": 160, - "source": 23, - "pc": [ - 302 - ] - }, - { - "teal": 161, - "source": 23, - "pc": [ - 303 - ] - }, - { - "teal": 162, - "source": 23, - "pc": [ - 304 - ] - }, - { - "teal": 163, - "source": 23, - "pc": [ - 305 - ] - }, - { - "teal": 166, - "source": 23, - "errorMessage": "argument 0 (b) for u256plus must be a uint256", - "pc": [ - 306 - ] - }, - { - "teal": 169, - "source": 23, - "pc": [ - 307, - 308, - 309 - ] - }, - { - "teal": 170, - "source": 23, - "pc": [ - 310 - ] - }, - { - "teal": 171, - "source": 23, - "pc": [ - 311 - ] - }, - { - "teal": 172, - "source": 23, - "pc": [ - 312 - ] - }, - { - "teal": 173, - "source": 23, - "pc": [ - 313 - ] - }, - { - "teal": 176, - "source": 23, - "errorMessage": "argument 1 (a) for u256plus must be a uint256", - "pc": [ - 314 - ] - }, - { - "teal": 179, - "source": 23, - "pc": [ - 315, - 316, - 317 - ] - }, - { - "teal": 180, - "source": 23, - "pc": [ - 318 - ] - }, - { - "teal": 181, - "source": 23, - "pc": [ - 319 - ] - }, - { - "teal": 182, - "source": 23, - "pc": [ - 320 - ] - }, - { - "teal": 183, - "source": 23, - "pc": [ - 321 - ] - }, - { - "teal": 186, - "source": 23, - "errorMessage": "u256plus return value overflowed 256 bits", - "pc": [ - 322 - ] - }, - { - "teal": 187, - "source": 23, - "pc": [ - 323 - ] - }, - { - "teal": 188, - "source": 23, - "pc": [ - 324 - ] - }, - { - "teal": 189, - "source": 23, - "pc": [ - 325 - ] - }, - { - "teal": 190, - "source": 23, - "pc": [ - 326 - ] - }, - { - "teal": 191, - "source": 23, - "pc": [ - 327 - ] - }, - { - "teal": 192, - "source": 23, - "pc": [ - 328 - ] - }, - { - "teal": 193, - "source": 23, - "pc": [ - 329 - ] - }, - { - "teal": 194, - "source": 23, - "pc": [ - 330 - ] - }, - { - "teal": 195, - "source": 23, - "pc": [ - 331 - ] - }, - { - "teal": 196, - "source": 23, - "pc": [ - 332 - ] - }, - { - "teal": 197, - "source": 23, - "pc": [ - 333 - ] - }, - { - "teal": 198, - "source": 23, - "pc": [ - 334 - ] - }, - { - "teal": 199, - "source": 23, - "pc": [ - 335 - ] - }, - { - "teal": 203, - "source": 23, - "pc": [ - 336, - 337, - 338 - ] - }, - { - "teal": 207, - "source": 24, - "pc": [ - 339, - 340 - ] - }, - { - "teal": 208, - "source": 24, - "pc": [ - 341, - 342 - ] - }, - { - "teal": 209, - "source": 24, - "pc": [ - 343 - ] - }, - { - "teal": 210, - "source": 23, - "pc": [ - 344 - ] - }, - { - "teal": 215, - "source": 27, - "pc": [ - 345 - ] - }, - { - "teal": 218, - "source": 27, - "pc": [ - 346, - 347, - 348 - ] - }, - { - "teal": 219, - "source": 27, - "pc": [ - 349 - ] - }, - { - "teal": 220, - "source": 27, - "pc": [ - 350 - ] - }, - { - "teal": 221, - "source": 27, - "pc": [ - 351 - ] - }, - { - "teal": 222, - "source": 27, - "pc": [ - 352 - ] - }, - { - "teal": 225, - "source": 27, - "errorMessage": "argument 0 (b) for u256minus must be a uint256", - "pc": [ - 353 - ] - }, - { - "teal": 228, - "source": 27, - "pc": [ - 354, - 355, - 356 - ] - }, - { - "teal": 229, - "source": 27, - "pc": [ - 357 - ] - }, - { - "teal": 230, - "source": 27, - "pc": [ - 358 - ] - }, - { - "teal": 231, - "source": 27, - "pc": [ - 359 - ] - }, - { - "teal": 232, - "source": 27, - "pc": [ - 360 - ] - }, - { - "teal": 235, - "source": 27, - "errorMessage": "argument 1 (a) for u256minus must be a uint256", - "pc": [ - 361 - ] - }, - { - "teal": 238, - "source": 27, - "pc": [ - 362, - 363, - 364 - ] - }, - { - "teal": 239, - "source": 27, - "pc": [ - 365 - ] - }, - { - "teal": 240, - "source": 27, - "pc": [ - 366 - ] - }, - { - "teal": 241, - "source": 27, - "pc": [ - 367 - ] - }, - { - "teal": 242, - "source": 27, - "pc": [ - 368 - ] - }, - { - "teal": 245, - "source": 27, - "errorMessage": "u256minus return value overflowed 256 bits", - "pc": [ - 369 - ] - }, - { - "teal": 246, - "source": 27, - "pc": [ - 370 - ] - }, - { - "teal": 247, - "source": 27, - "pc": [ - 371 - ] - }, - { - "teal": 248, - "source": 27, - "pc": [ - 372 - ] - }, - { - "teal": 249, - "source": 27, - "pc": [ - 373 - ] - }, - { - "teal": 250, - "source": 27, - "pc": [ - 374 - ] - }, - { - "teal": 251, - "source": 27, - "pc": [ - 375 - ] - }, - { - "teal": 252, - "source": 27, - "pc": [ - 376 - ] - }, - { - "teal": 253, - "source": 27, - "pc": [ - 377 - ] - }, - { - "teal": 254, - "source": 27, - "pc": [ - 378 - ] - }, - { - "teal": 255, - "source": 27, - "pc": [ - 379 - ] - }, - { - "teal": 256, - "source": 27, - "pc": [ - 380 - ] - }, - { - "teal": 257, - "source": 27, - "pc": [ - 381 - ] - }, - { - "teal": 258, - "source": 27, - "pc": [ - 382 - ] - }, - { - "teal": 262, - "source": 27, - "pc": [ - 383, - 384, - 385 - ] - }, - { - "teal": 266, - "source": 28, - "pc": [ - 386, - 387 - ] - }, - { - "teal": 267, - "source": 28, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 268, - "source": 28, - "pc": [ - 390 - ] - }, - { - "teal": 269, - "source": 27, - "pc": [ - 391 - ] - }, - { - "teal": 274, - "source": 31, - "pc": [ - 392 - ] - }, - { - "teal": 277, - "source": 31, - "pc": [ - 393, - 394, - 395 - ] - }, - { - "teal": 278, - "source": 31, - "pc": [ - 396 - ] - }, - { - "teal": 279, - "source": 31, - "pc": [ - 397 - ] - }, - { - "teal": 280, - "source": 31, - "pc": [ - 398 - ] - }, - { - "teal": 281, - "source": 31, - "pc": [ - 399 - ] - }, - { - "teal": 284, - "source": 31, - "errorMessage": "argument 0 (b) for u256mul must be a uint256", - "pc": [ - 400 - ] - }, - { - "teal": 287, - "source": 31, - "pc": [ - 401, - 402, - 403 - ] - }, - { - "teal": 288, - "source": 31, - "pc": [ - 404 - ] - }, - { - "teal": 289, - "source": 31, - "pc": [ - 405 - ] - }, - { - "teal": 290, - "source": 31, - "pc": [ - 406 - ] - }, - { - "teal": 291, - "source": 31, - "pc": [ - 407 - ] - }, - { - "teal": 294, - "source": 31, - "errorMessage": "argument 1 (a) for u256mul must be a uint256", - "pc": [ - 408 - ] - }, - { - "teal": 297, - "source": 31, - "pc": [ - 409, - 410, - 411 - ] - }, - { - "teal": 298, - "source": 31, - "pc": [ - 412 - ] - }, - { - "teal": 299, - "source": 31, - "pc": [ - 413 - ] - }, - { - "teal": 300, - "source": 31, - "pc": [ - 414 - ] - }, - { - "teal": 301, - "source": 31, - "pc": [ - 415 - ] - }, - { - "teal": 304, - "source": 31, - "errorMessage": "u256mul return value overflowed 256 bits", - "pc": [ - 416 - ] - }, - { - "teal": 305, - "source": 31, - "pc": [ - 417 - ] - }, - { - "teal": 306, - "source": 31, - "pc": [ - 418 - ] - }, - { - "teal": 307, - "source": 31, - "pc": [ - 419 - ] - }, - { - "teal": 308, - "source": 31, - "pc": [ - 420 - ] - }, - { - "teal": 309, - "source": 31, - "pc": [ - 421 - ] - }, - { - "teal": 310, - "source": 31, - "pc": [ - 422 - ] - }, - { - "teal": 311, - "source": 31, - "pc": [ - 423 - ] - }, - { - "teal": 312, - "source": 31, - "pc": [ - 424 - ] - }, - { - "teal": 313, - "source": 31, - "pc": [ - 425 - ] - }, - { - "teal": 314, - "source": 31, - "pc": [ - 426 - ] - }, - { - "teal": 315, - "source": 31, - "pc": [ - 427 - ] - }, - { - "teal": 316, - "source": 31, - "pc": [ - 428 - ] - }, - { - "teal": 317, - "source": 31, - "pc": [ - 429 - ] - }, - { - "teal": 321, - "source": 31, - "pc": [ - 430, - 431, - 432 - ] - }, - { - "teal": 325, - "source": 32, - "pc": [ - 433, - 434 - ] - }, - { - "teal": 326, - "source": 32, - "pc": [ - 435, - 436 - ] - }, - { - "teal": 327, - "source": 32, - "pc": [ - 437 - ] - }, - { - "teal": 328, - "source": 31, - "pc": [ - 438 - ] - }, - { - "teal": 333, - "source": 35, - "pc": [ - 439 - ] - }, - { - "teal": 336, - "source": 35, - "pc": [ - 440, - 441, - 442 - ] - }, - { - "teal": 337, - "source": 35, - "pc": [ - 443 - ] - }, - { - "teal": 338, - "source": 35, - "pc": [ - 444 - ] - }, - { - "teal": 339, - "source": 35, - "pc": [ - 445 - ] - }, - { - "teal": 340, - "source": 35, - "pc": [ - 446 - ] - }, - { - "teal": 343, - "source": 35, - "errorMessage": "argument 0 (b) for u256div must be a uint256", - "pc": [ - 447 - ] - }, - { - "teal": 346, - "source": 35, - "pc": [ - 448, - 449, - 450 - ] - }, - { - "teal": 347, - "source": 35, - "pc": [ - 451 - ] - }, - { - "teal": 348, - "source": 35, - "pc": [ - 452 - ] - }, - { - "teal": 349, - "source": 35, - "pc": [ - 453 - ] - }, - { - "teal": 350, - "source": 35, - "pc": [ - 454 - ] - }, - { - "teal": 353, - "source": 35, - "errorMessage": "argument 1 (a) for u256div must be a uint256", - "pc": [ - 455 - ] - }, - { - "teal": 356, - "source": 35, - "pc": [ - 456, - 457, - 458 - ] - }, - { - "teal": 357, - "source": 35, - "pc": [ - 459 - ] - }, - { - "teal": 358, - "source": 35, - "pc": [ - 460 - ] - }, - { - "teal": 359, - "source": 35, - "pc": [ - 461 - ] - }, - { - "teal": 360, - "source": 35, - "pc": [ - 462 - ] - }, - { - "teal": 363, - "source": 35, - "errorMessage": "u256div return value overflowed 256 bits", - "pc": [ - 463 - ] - }, - { - "teal": 364, - "source": 35, - "pc": [ - 464 - ] - }, - { - "teal": 365, - "source": 35, - "pc": [ - 465 - ] - }, - { - "teal": 366, - "source": 35, - "pc": [ - 466 - ] - }, - { - "teal": 367, - "source": 35, - "pc": [ - 467 - ] - }, - { - "teal": 368, - "source": 35, - "pc": [ - 468 - ] - }, - { - "teal": 369, - "source": 35, - "pc": [ - 469 - ] - }, - { - "teal": 370, - "source": 35, - "pc": [ - 470 - ] - }, - { - "teal": 371, - "source": 35, - "pc": [ - 471 - ] - }, - { - "teal": 372, - "source": 35, - "pc": [ - 472 - ] - }, - { - "teal": 373, - "source": 35, - "pc": [ - 473 - ] - }, - { - "teal": 374, - "source": 35, - "pc": [ - 474 - ] - }, - { - "teal": 375, - "source": 35, - "pc": [ - 475 - ] - }, - { - "teal": 376, - "source": 35, - "pc": [ - 476 - ] - }, - { - "teal": 380, - "source": 35, - "pc": [ - 477, - 478, - 479 - ] - }, - { - "teal": 384, - "source": 36, - "pc": [ - 480, - 481 - ] - }, - { - "teal": 385, - "source": 36, - "pc": [ - 482, - 483 - ] - }, - { - "teal": 386, - "source": 36, - "pc": [ - 484 - ] - }, - { - "teal": 387, - "source": 35, - "pc": [ - 485 - ] - }, - { - "teal": 392, - "source": 39, - "pc": [ - 486 - ] - }, - { - "teal": 395, - "source": 39, - "pc": [ - 487, - 488, - 489 - ] - }, - { - "teal": 396, - "source": 39, - "pc": [ - 490 - ] - }, - { - "teal": 399, - "source": 39, - "pc": [ - 491, - 492, - 493 - ] - }, - { - "teal": 400, - "source": 39, - "pc": [ - 494 - ] - }, - { - "teal": 403, - "source": 39, - "pc": [ - 495, - 496, - 497 - ] - }, - { - "teal": 404, - "source": 39, - "pc": [ - 498 - ] - }, - { - "teal": 405, - "source": 39, - "pc": [ - 499 - ] - }, - { - "teal": 406, - "source": 39, - "pc": [ - 500 - ] - }, - { - "teal": 407, - "source": 39, - "pc": [ - 501 - ] - }, - { - "teal": 410, - "source": 39, - "errorMessage": "u64Return256 return value overflowed 256 bits", - "pc": [ - 502 - ] - }, - { - "teal": 411, - "source": 39, - "pc": [ - 503 - ] - }, - { - "teal": 412, - "source": 39, - "pc": [ - 504 - ] - }, - { - "teal": 413, - "source": 39, - "pc": [ - 505 - ] - }, - { - "teal": 414, - "source": 39, - "pc": [ - 506 - ] - }, - { - "teal": 415, - "source": 39, - "pc": [ - 507 - ] - }, - { - "teal": 416, - "source": 39, - "pc": [ - 508 - ] - }, - { - "teal": 417, - "source": 39, - "pc": [ - 509 - ] - }, - { - "teal": 418, - "source": 39, - "pc": [ - 510 - ] - }, - { - "teal": 419, - "source": 39, - "pc": [ - 511 - ] - }, - { - "teal": 420, - "source": 39, - "pc": [ - 512 - ] - }, - { - "teal": 421, - "source": 39, - "pc": [ - 513 - ] - }, - { - "teal": 422, - "source": 39, - "pc": [ - 514 - ] - }, - { - "teal": 423, - "source": 39, - "pc": [ - 515 - ] - }, - { - "teal": 427, - "source": 39, - "pc": [ - 516, - 517, - 518 - ] - }, - { - "teal": 431, - "source": 40, - "pc": [ - 519, - 520 - ] - }, - { - "teal": 432, - "source": 40, - "pc": [ - 521, - 522 - ] - }, - { - "teal": 433, - "source": 40, - "pc": [ - 523 - ] - }, - { - "teal": 434, - "source": 40, - "pc": [ - 524 - ] - }, - { - "teal": 435, - "source": 39, - "pc": [ - 525 - ] - }, - { - "teal": 440, - "source": 43, - "pc": [ - 526 - ] - }, - { - "teal": 443, - "source": 43, - "pc": [ - 527, - 528, - 529 - ] - }, - { - "teal": 444, - "source": 43, - "pc": [ - 530 - ] - }, - { - "teal": 445, - "source": 43, - "pc": [ - 531 - ] - }, - { - "teal": 446, - "source": 43, - "pc": [ - 532 - ] - }, - { - "teal": 447, - "source": 43, - "pc": [ - 533 - ] - }, - { - "teal": 448, - "source": 43, - "pc": [ - 534 - ] - }, - { - "teal": 452, - "source": 43, - "pc": [ - 535, - 536, - 537 - ] - }, - { - "teal": 456, - "source": 44, - "pc": [ - 538, - 539, - 540, - 541, - 542, - 543, - 544, - 545, - 546, - 547, - 548 - ] - }, - { - "teal": 457, - "source": 43, - "pc": [ - 549 - ] - }, - { - "teal": 462, - "source": 47, - "pc": [ - 550 - ] - }, - { - "teal": 465, - "source": 47, - "pc": [ - 551, - 552, - 553 - ] - }, - { - "teal": 466, - "source": 47, - "pc": [ - 554 - ] - }, - { - "teal": 469, - "source": 47, - "pc": [ - 555, - 556, - 557 - ] - }, - { - "teal": 470, - "source": 47, - "pc": [ - 558 - ] - }, - { - "teal": 473, - "source": 47, - "pc": [ - 559, - 560, - 561 - ] - }, - { - "teal": 474, - "source": 47, - "pc": [ - 562 - ] - }, - { - "teal": 475, - "source": 47, - "pc": [ - 563 - ] - }, - { - "teal": 476, - "source": 47, - "pc": [ - 564 - ] - }, - { - "teal": 477, - "source": 47, - "pc": [ - 565 - ] - }, - { - "teal": 478, - "source": 47, - "pc": [ - 566 - ] - }, - { - "teal": 482, - "source": 47, - "pc": [ - 567, - 568, - 569 - ] - }, - { - "teal": 486, - "source": 48, - "pc": [ - 570, - 571 - ] - }, - { - "teal": 487, - "source": 48, - "pc": [ - 572, - 573 - ] - }, - { - "teal": 488, - "source": 48, - "pc": [ - 574 - ] - }, - { - "teal": 489, - "source": 47, - "pc": [ - 575 - ] - }, - { - "teal": 494, - "source": 51, - "pc": [ - 576 - ] - }, - { - "teal": 497, - "source": 51, - "pc": [ - 577, - 578, - 579 - ] - }, - { - "teal": 498, - "source": 51, - "pc": [ - 580 - ] - }, - { - "teal": 499, - "source": 51, - "pc": [ - 581 - ] - }, - { - "teal": 500, - "source": 51, - "pc": [ - 582 - ] - }, - { - "teal": 501, - "source": 51, - "pc": [ - 583 - ] - }, - { - "teal": 504, - "source": 51, - "errorMessage": "argument 0 (y) for variableTypeHint must be a uint8", - "pc": [ - 584 - ] - }, - { - "teal": 505, - "source": 51, - "pc": [ - 585 - ] - }, - { - "teal": 508, - "source": 51, - "pc": [ - 586, - 587, - 588 - ] - }, - { - "teal": 509, - "source": 51, - "pc": [ - 589 - ] - }, - { - "teal": 510, - "source": 51, - "pc": [ - 590 - ] - }, - { - "teal": 511, - "source": 51, - "pc": [ - 591 - ] - }, - { - "teal": 512, - "source": 51, - "pc": [ - 592 - ] - }, - { - "teal": 515, - "source": 51, - "errorMessage": "argument 1 (x) for variableTypeHint must be a uint8", - "pc": [ - 593 - ] - }, - { - "teal": 516, - "source": 51, - "pc": [ - 594 - ] - }, - { - "teal": 519, - "source": 51, - "pc": [ - 595, - 596, - 597 - ] - }, - { - "teal": 520, - "source": 51, - "pc": [ - 598 - ] - }, - { - "teal": 521, - "source": 51, - "pc": [ - 599 - ] - }, - { - "teal": 522, - "source": 51, - "pc": [ - 600 - ] - }, - { - "teal": 523, - "source": 51, - "pc": [ - 601, - 602 - ] - }, - { - "teal": 524, - "source": 51, - "pc": [ - 603 - ] - }, - { - "teal": 527, - "source": 51, - "errorMessage": "variableTypeHint return value overflowed 16 bits", - "pc": [ - 604 - ] - }, - { - "teal": 528, - "source": 51, - "pc": [ - 605, - 606, - 607 - ] - }, - { - "teal": 529, - "source": 51, - "pc": [ - 608 - ] - }, - { - "teal": 530, - "source": 51, - "pc": [ - 609 - ] - }, - { - "teal": 531, - "source": 51, - "pc": [ - 610 - ] - }, - { - "teal": 532, - "source": 51, - "pc": [ - 611 - ] - }, - { - "teal": 536, - "source": 51, - "pc": [ - 612, - 613, - 614 - ] - }, - { - "teal": 539, - "source": 51, - "pc": [ - 615 - ] - }, - { - "teal": 543, - "source": 52, - "pc": [ - 616, - 617 - ] - }, - { - "teal": 544, - "source": 52, - "pc": [ - 618, - 619 - ] - }, - { - "teal": 545, - "source": 52, - "pc": [ - 620 - ] - }, - { - "teal": 546, - "source": 52, - "pc": [ - 621, - 622 - ] - }, - { - "teal": 550, - "source": 54, - "pc": [ - 623, - 624 - ] - }, - { - "teal": 553, - "source": 51, - "pc": [ - 625, - 626 - ] - }, - { - "teal": 554, - "source": 51, - "pc": [ - 627 - ] - }, - { - "teal": 559, - "source": 57, - "pc": [ - 628 - ] - }, - { - "teal": 562, - "source": 57, - "pc": [ - 629, - 630, - 631 - ] - }, - { - "teal": 563, - "source": 57, - "pc": [ - 632 - ] - }, - { - "teal": 564, - "source": 57, - "pc": [ - 633 - ] - }, - { - "teal": 565, - "source": 57, - "pc": [ - 634 - ] - }, - { - "teal": 566, - "source": 57, - "pc": [ - 635 - ] - }, - { - "teal": 569, - "source": 57, - "errorMessage": "argument 0 (b) for uint8plus must be a uint8", - "pc": [ - 636 - ] - }, - { - "teal": 570, - "source": 57, - "pc": [ - 637 - ] - }, - { - "teal": 573, - "source": 57, - "pc": [ - 638, - 639, - 640 - ] - }, - { - "teal": 574, - "source": 57, - "pc": [ - 641 - ] - }, - { - "teal": 575, - "source": 57, - "pc": [ - 642 - ] - }, - { - "teal": 576, - "source": 57, - "pc": [ - 643 - ] - }, - { - "teal": 577, - "source": 57, - "pc": [ - 644 - ] - }, - { - "teal": 580, - "source": 57, - "errorMessage": "argument 1 (a) for uint8plus must be a uint8", - "pc": [ - 645 - ] - }, - { - "teal": 581, - "source": 57, - "pc": [ - 646 - ] - }, - { - "teal": 584, - "source": 57, - "pc": [ - 647, - 648, - 649 - ] - }, - { - "teal": 585, - "source": 57, - "pc": [ - 650 - ] - }, - { - "teal": 586, - "source": 57, - "pc": [ - 651 - ] - }, - { - "teal": 587, - "source": 57, - "pc": [ - 652 - ] - }, - { - "teal": 588, - "source": 57, - "pc": [ - 653 - ] - }, - { - "teal": 589, - "source": 57, - "pc": [ - 654 - ] - }, - { - "teal": 592, - "source": 57, - "errorMessage": "uint8plus return value overflowed 8 bits", - "pc": [ - 655 - ] - }, - { - "teal": 593, - "source": 57, - "pc": [ - 656, - 657, - 658 - ] - }, - { - "teal": 594, - "source": 57, - "pc": [ - 659 - ] - }, - { - "teal": 595, - "source": 57, - "pc": [ - 660 - ] - }, - { - "teal": 596, - "source": 57, - "pc": [ - 661 - ] - }, - { - "teal": 597, - "source": 57, - "pc": [ - 662 - ] - }, - { - "teal": 601, - "source": 57, - "pc": [ - 663, - 664, - 665 - ] - }, - { - "teal": 605, - "source": 58, - "pc": [ - 666, - 667 - ] - }, - { - "teal": 606, - "source": 58, - "pc": [ - 668, - 669 - ] - }, - { - "teal": 607, - "source": 58, - "pc": [ - 670 - ] - }, - { - "teal": 608, - "source": 57, - "pc": [ - 671 - ] - }, - { - "teal": 613, - "source": 61, - "pc": [ - 672 - ] - }, - { - "teal": 616, - "source": 61, - "pc": [ - 673, - 674, - 675 - ] - }, - { - "teal": 617, - "source": 61, - "pc": [ - 676 - ] - }, - { - "teal": 618, - "source": 61, - "pc": [ - 677 - ] - }, - { - "teal": 619, - "source": 61, - "pc": [ - 678 - ] - }, - { - "teal": 620, - "source": 61, - "pc": [ - 679 - ] - }, - { - "teal": 623, - "source": 61, - "errorMessage": "argument 0 (b) for uint8exp must be a uint8", - "pc": [ - 680 - ] - }, - { - "teal": 624, - "source": 61, - "pc": [ - 681 - ] - }, - { - "teal": 627, - "source": 61, - "pc": [ - 682, - 683, - 684 - ] - }, - { - "teal": 628, - "source": 61, - "pc": [ - 685 - ] - }, - { - "teal": 629, - "source": 61, - "pc": [ - 686 - ] - }, - { - "teal": 630, - "source": 61, - "pc": [ - 687 - ] - }, - { - "teal": 631, - "source": 61, - "pc": [ - 688 - ] - }, - { - "teal": 634, - "source": 61, - "errorMessage": "argument 1 (a) for uint8exp must be a uint8", - "pc": [ - 689 - ] - }, - { - "teal": 635, - "source": 61, - "pc": [ - 690 - ] - }, - { - "teal": 638, - "source": 61, - "pc": [ - 691, - 692, - 693 - ] - }, - { - "teal": 639, - "source": 61, - "pc": [ - 694 - ] - }, - { - "teal": 640, - "source": 61, - "pc": [ - 695 - ] - }, - { - "teal": 641, - "source": 61, - "pc": [ - 696 - ] - }, - { - "teal": 642, - "source": 61, - "pc": [ - 697 - ] - }, - { - "teal": 643, - "source": 61, - "pc": [ - 698 - ] - }, - { - "teal": 646, - "source": 61, - "errorMessage": "uint8exp return value overflowed 8 bits", - "pc": [ - 699 - ] - }, - { - "teal": 647, - "source": 61, - "pc": [ - 700, - 701, - 702 - ] - }, - { - "teal": 648, - "source": 61, - "pc": [ - 703 - ] - }, - { - "teal": 649, - "source": 61, - "pc": [ - 704 - ] - }, - { - "teal": 650, - "source": 61, - "pc": [ - 705 - ] - }, - { - "teal": 651, - "source": 61, - "pc": [ - 706 - ] - }, - { - "teal": 655, - "source": 61, - "pc": [ - 707, - 708, - 709 - ] - }, - { - "teal": 659, - "source": 62, - "pc": [ - 710, - 711 - ] - }, - { - "teal": 660, - "source": 62, - "pc": [ - 712, - 713 - ] - }, - { - "teal": 661, - "source": 62, - "pc": [ - 714 - ] - }, - { - "teal": 662, - "source": 61, - "pc": [ - 715 - ] - }, - { - "teal": 667, - "source": 65, - "pc": [ - 716 - ] - }, - { - "teal": 670, - "source": 65, - "pc": [ - 717, - 718, - 719 - ] - }, - { - "teal": 671, - "source": 65, - "pc": [ - 720 - ] - }, - { - "teal": 674, - "source": 65, - "pc": [ - 721, - 722, - 723 - ] - }, - { - "teal": 675, - "source": 65, - "pc": [ - 724 - ] - }, - { - "teal": 678, - "source": 65, - "pc": [ - 725, - 726, - 727 - ] - }, - { - "teal": 679, - "source": 65, - "pc": [ - 728 - ] - }, - { - "teal": 680, - "source": 65, - "pc": [ - 729 - ] - }, - { - "teal": 681, - "source": 65, - "pc": [ - 730 - ] - }, - { - "teal": 682, - "source": 65, - "pc": [ - 731 - ] - }, - { - "teal": 683, - "source": 65, - "pc": [ - 732 - ] - }, - { - "teal": 687, - "source": 65, - "pc": [ - 733, - 734, - 735 - ] - }, - { - "teal": 690, - "source": 65, - "pc": [ - 736 - ] - }, - { - "teal": 694, - "source": 66, - "pc": [ - 737, - 738 - ] - }, - { - "teal": 695, - "source": 66, - "pc": [ - 739, - 740 - ] - }, - { - "teal": 699, - "source": 68, - "pc": [ - 741, - 742 - ] - }, - { - "teal": 700, - "source": 68, - "pc": [ - 743, - 744 - ] - }, - { - "teal": 701, - "source": 68, - "pc": [ - 745 - ] - }, - { - "teal": 702, - "source": 68, - "pc": [ - 746, - 747 - ] - }, - { - "teal": 706, - "source": 70, - "pc": [ - 748, - 749 - ] - }, - { - "teal": 709, - "source": 65, - "pc": [ - 750, - 751 - ] - }, - { - "teal": 710, - "source": 65, - "pc": [ - 752 - ] - }, - { - "teal": 715, - "source": 73, - "pc": [ - 753 - ] - }, - { - "teal": 718, - "source": 73, - "pc": [ - 754, - 755, - 756 - ] - }, - { - "teal": 719, - "source": 73, - "pc": [ - 757 - ] - }, - { - "teal": 722, - "source": 73, - "pc": [ - 758, - 759, - 760 - ] - }, - { - "teal": 723, - "source": 73, - "pc": [ - 761 - ] - }, - { - "teal": 726, - "source": 73, - "pc": [ - 762, - 763, - 764 - ] - }, - { - "teal": 727, - "source": 73, - "pc": [ - 765 - ] - }, - { - "teal": 728, - "source": 73, - "pc": [ - 766 - ] - }, - { - "teal": 729, - "source": 73, - "pc": [ - 767 - ] - }, - { - "teal": 730, - "source": 73, - "pc": [ - 768 - ] - }, - { - "teal": 731, - "source": 73, - "pc": [ - 769 - ] - }, - { - "teal": 735, - "source": 73, - "pc": [ - 770, - 771, - 772 - ] - }, - { - "teal": 739, - "source": 74, - "pc": [ - 773 - ] - }, - { - "teal": 740, - "source": 74, - "pc": [ - 774, - 775 - ] - }, - { - "teal": 741, - "source": 74, - "pc": [ - 776 - ] - }, - { - "teal": 745, - "source": 76, - "pc": [ - 777 - ] - }, - { - "teal": 746, - "source": 76, - "pc": [ - 778 - ] - }, - { - "teal": 747, - "source": 76, - "pc": [ - 779, - 780 - ] - }, - { - "teal": 748, - "source": 76, - "pc": [ - 781 - ] - }, - { - "teal": 749, - "source": 76, - "pc": [ - 782 - ] - }, - { - "teal": 750, - "source": 76, - "pc": [ - 783 - ] - }, - { - "teal": 751, - "source": 76, - "pc": [ - 784 - ] - }, - { - "teal": 755, - "source": 78, - "pc": [ - 785 - ] - }, - { - "teal": 756, - "source": 78, - "pc": [ - 786 - ] - }, - { - "teal": 757, - "source": 73, - "pc": [ - 787 - ] - }, - { - "teal": 762, - "source": 83, - "pc": [ - 788 - ] - }, - { - "teal": 765, - "source": 83, - "pc": [ - 789, - 790, - 791 - ] - }, - { - "teal": 766, - "source": 83, - "pc": [ - 792 - ] - }, - { - "teal": 767, - "source": 83, - "pc": [ - 793 - ] - }, - { - "teal": 768, - "source": 83, - "pc": [ - 794 - ] - }, - { - "teal": 769, - "source": 83, - "pc": [ - 795 - ] - }, - { - "teal": 772, - "source": 83, - "errorMessage": "boxTest return value overflowed 256 bits", - "pc": [ - 796 - ] - }, - { - "teal": 773, - "source": 83, - "pc": [ - 797 - ] - }, - { - "teal": 774, - "source": 83, - "pc": [ - 798 - ] - }, - { - "teal": 775, - "source": 83, - "pc": [ - 799 - ] - }, - { - "teal": 776, - "source": 83, - "pc": [ - 800 - ] - }, - { - "teal": 777, - "source": 83, - "pc": [ - 801 - ] - }, - { - "teal": 778, - "source": 83, - "pc": [ - 802 - ] - }, - { - "teal": 779, - "source": 83, - "pc": [ - 803 - ] - }, - { - "teal": 780, - "source": 83, - "pc": [ - 804 - ] - }, - { - "teal": 781, - "source": 83, - "pc": [ - 805 - ] - }, - { - "teal": 782, - "source": 83, - "pc": [ - 806 - ] - }, - { - "teal": 783, - "source": 83, - "pc": [ - 807 - ] - }, - { - "teal": 784, - "source": 83, - "pc": [ - 808 - ] - }, - { - "teal": 785, - "source": 83, - "pc": [ - 809 - ] - }, - { - "teal": 789, - "source": 83, - "pc": [ - 810, - 811, - 812 - ] - }, - { - "teal": 793, - "source": 84, - "pc": [ - 813, - 814 - ] - }, - { - "teal": 794, - "source": 84, - "pc": [ - 815, - 816 - ] - }, - { - "teal": 795, - "source": 84, - "pc": [ - 817 - ] - }, - { - "teal": 799, - "source": 85, - "pc": [ - 818, - 819 - ] - }, - { - "teal": 800, - "source": 85, - "pc": [ - 820 - ] - }, - { - "teal": 803, - "source": 85, - "errorMessage": "box value does not exist: this.boxKey.value", - "pc": [ - 821 - ] - }, - { - "teal": 804, - "source": 85, - "pc": [ - 822, - 823 - ] - }, - { - "teal": 805, - "source": 85, - "pc": [ - 824 - ] - }, - { - "teal": 806, - "source": 85, - "pc": [ - 825, - 826 - ] - }, - { - "teal": 807, - "source": 85, - "pc": [ - 827 - ] - }, - { - "teal": 808, - "source": 85, - "pc": [ - 828 - ] - }, - { - "teal": 809, - "source": 85, - "pc": [ - 829 - ] - }, - { - "teal": 810, - "source": 85, - "pc": [ - 830 - ] - }, - { - "teal": 813, - "source": 85, - "errorMessage": "this.boxKey.value overflowed 256 bits", - "pc": [ - 831 - ] - }, - { - "teal": 814, - "source": 85, - "pc": [ - 832 - ] - }, - { - "teal": 815, - "source": 85, - "pc": [ - 833 - ] - }, - { - "teal": 816, - "source": 85, - "pc": [ - 834 - ] - }, - { - "teal": 817, - "source": 85, - "pc": [ - 835 - ] - }, - { - "teal": 818, - "source": 85, - "pc": [ - 836 - ] - }, - { - "teal": 819, - "source": 85, - "pc": [ - 837 - ] - }, - { - "teal": 820, - "source": 85, - "pc": [ - 838 - ] - }, - { - "teal": 821, - "source": 85, - "pc": [ - 839 - ] - }, - { - "teal": 822, - "source": 85, - "pc": [ - 840 - ] - }, - { - "teal": 823, - "source": 85, - "pc": [ - 841 - ] - }, - { - "teal": 824, - "source": 85, - "pc": [ - 842 - ] - }, - { - "teal": 828, - "source": 87, - "pc": [ - 843, - 844 - ] - }, - { - "teal": 829, - "source": 87, - "pc": [ - 845 - ] - }, - { - "teal": 832, - "source": 87, - "errorMessage": "box value does not exist: this.boxKey.value", - "pc": [ - 846 - ] - }, - { - "teal": 833, - "source": 83, - "pc": [ - 847 - ] - }, - { - "teal": 837, - "source": 90, - "pc": [ - 848, - 849, - 850 - ] - }, - { - "teal": 841, - "source": 91, - "pc": [ - 851, - 852 - ] - }, - { - "teal": 842, - "source": 90, - "pc": [ - 853 - ] - }, - { - "teal": 847, - "source": 94, - "pc": [ - 854 - ] - }, - { - "teal": 850, - "source": 94, - "pc": [ - 855, - 856, - 857 - ] - }, - { - "teal": 851, - "source": 94, - "pc": [ - 858 - ] - }, - { - "teal": 852, - "source": 94, - "pc": [ - 859 - ] - }, - { - "teal": 853, - "source": 94, - "pc": [ - 860 - ] - }, - { - "teal": 854, - "source": 94, - "pc": [ - 861 - ] - }, - { - "teal": 857, - "source": 94, - "errorMessage": "argument 0 (b) for unsafeMethodArgs must be a uint256", - "pc": [ - 862 - ] - }, - { - "teal": 860, - "source": 94, - "pc": [ - 863, - 864, - 865 - ] - }, - { - "teal": 861, - "source": 94, - "pc": [ - 866 - ] - }, - { - "teal": 862, - "source": 94, - "pc": [ - 867 - ] - }, - { - "teal": 863, - "source": 94, - "pc": [ - 868 - ] - }, - { - "teal": 864, - "source": 94, - "pc": [ - 869 - ] - }, - { - "teal": 867, - "source": 94, - "errorMessage": "argument 1 (a) for unsafeMethodArgs must be a uint256", - "pc": [ - 870 - ] - }, - { - "teal": 870, - "source": 94, - "pc": [ - 871, - 872, - 873 - ] - }, - { - "teal": 871, - "source": 94, - "pc": [ - 874 - ] - }, - { - "teal": 872, - "source": 94, - "pc": [ - 875 - ] - }, - { - "teal": 873, - "source": 94, - "pc": [ - 876 - ] - }, - { - "teal": 874, - "source": 94, - "pc": [ - 877 - ] - }, - { - "teal": 877, - "source": 94, - "errorMessage": "unsafeMethodArgs return value overflowed 256 bits", - "pc": [ - 878 - ] - }, - { - "teal": 878, - "source": 94, - "pc": [ - 879 - ] - }, - { - "teal": 879, - "source": 94, - "pc": [ - 880 - ] - }, - { - "teal": 880, - "source": 94, - "pc": [ - 881 - ] - }, - { - "teal": 881, - "source": 94, - "pc": [ - 882 - ] - }, - { - "teal": 882, - "source": 94, - "pc": [ - 883 - ] - }, - { - "teal": 883, - "source": 94, - "pc": [ - 884 - ] - }, - { - "teal": 884, - "source": 94, - "pc": [ - 885 - ] - }, - { - "teal": 885, - "source": 94, - "pc": [ - 886 - ] - }, - { - "teal": 886, - "source": 94, - "pc": [ - 887 - ] - }, - { - "teal": 887, - "source": 94, - "pc": [ - 888 - ] - }, - { - "teal": 888, - "source": 94, - "pc": [ - 889 - ] - }, - { - "teal": 889, - "source": 94, - "pc": [ - 890 - ] - }, - { - "teal": 890, - "source": 94, - "pc": [ - 891 - ] - }, - { - "teal": 894, - "source": 94, - "pc": [ - 892, - 893, - 894 - ] - }, - { - "teal": 897, - "source": 94, - "pc": [ - 895 - ] - }, - { - "teal": 901, - "source": 95, - "pc": [ - 896, - 897 - ] - }, - { - "teal": 902, - "source": 95, - "pc": [ - 898, - 899 - ] - }, - { - "teal": 903, - "source": 95, - "pc": [ - 900 - ] - }, - { - "teal": 904, - "source": 95, - "pc": [ - 901, - 902 - ] - }, - { - "teal": 908, - "source": 97, - "pc": [ - 903, - 904 - ] - }, - { - "teal": 909, - "source": 97, - "pc": [ - 905 - ] - }, - { - "teal": 910, - "source": 97, - "pc": [ - 906 - ] - }, - { - "teal": 911, - "source": 97, - "pc": [ - 907 - ] - }, - { - "teal": 912, - "source": 97, - "pc": [ - 908 - ] - }, - { - "teal": 915, - "source": 97, - "errorMessage": "c overflowed 256 bits", - "pc": [ - 909 - ] - }, - { - "teal": 916, - "source": 97, - "pc": [ - 910 - ] - }, - { - "teal": 917, - "source": 97, - "pc": [ - 911 - ] - }, - { - "teal": 918, - "source": 97, - "pc": [ - 912 - ] - }, - { - "teal": 919, - "source": 97, - "pc": [ - 913 - ] - }, - { - "teal": 920, - "source": 97, - "pc": [ - 914 - ] - }, - { - "teal": 921, - "source": 97, - "pc": [ - 915 - ] - }, - { - "teal": 922, - "source": 97, - "pc": [ - 916 - ] - }, - { - "teal": 923, - "source": 97, - "pc": [ - 917 - ] - }, - { - "teal": 924, - "source": 97, - "pc": [ - 918 - ] - }, - { - "teal": 925, - "source": 97, - "pc": [ - 919, - 920, - 921 - ] - }, - { - "teal": 928, - "source": 94, - "pc": [ - 922, - 923 - ] - }, - { - "teal": 929, - "source": 94, - "pc": [ - 924 - ] - }, - { - "teal": 934, - "source": 100, - "pc": [ - 925, - 926, - 927 - ] - }, - { - "teal": 935, - "source": 100, - "pc": [ - 928 - ] - }, - { - "teal": 936, - "source": 100, - "pc": [ - 929 - ] - }, - { - "teal": 937, - "source": 100, - "pc": [ - 930 - ] - }, - { - "teal": 938, - "source": 100, - "pc": [ - 931 - ] - }, - { - "teal": 941, - "source": 100, - "errorMessage": "argument 0 (b) for uint256ComparisonType must be a uint256", - "pc": [ - 932 - ] - }, - { - "teal": 944, - "source": 100, - "pc": [ - 933, - 934, - 935 - ] - }, - { - "teal": 945, - "source": 100, - "pc": [ - 936 - ] - }, - { - "teal": 946, - "source": 100, - "pc": [ - 937 - ] - }, - { - "teal": 947, - "source": 100, - "pc": [ - 938 - ] - }, - { - "teal": 948, - "source": 100, - "pc": [ - 939 - ] - }, - { - "teal": 951, - "source": 100, - "errorMessage": "argument 1 (a) for uint256ComparisonType must be a uint256", - "pc": [ - 940 - ] - }, - { - "teal": 954, - "source": 100, - "pc": [ - 941, - 942, - 943 - ] - }, - { - "teal": 955, - "source": 100, - "pc": [ - 944 - ] - }, - { - "teal": 956, - "source": 100, - "pc": [ - 945 - ] - }, - { - "teal": 960, - "source": 100, - "pc": [ - 946, - 947, - 948 - ] - }, - { - "teal": 963, - "source": 100, - "pc": [ - 949 - ] - }, - { - "teal": 967, - "source": 101, - "pc": [ - 950, - 951 - ] - }, - { - "teal": 968, - "source": 101, - "pc": [ - 952, - 953 - ] - }, - { - "teal": 969, - "source": 101, - "pc": [ - 954 - ] - }, - { - "teal": 970, - "source": 101, - "pc": [ - 955, - 956 - ] - }, - { - "teal": 975, - "source": 102, - "pc": [ - 957, - 958 - ] - }, - { - "teal": 976, - "source": 102, - "pc": [ - 959, - 960, - 961, - 962, - 963, - 964, - 965, - 966, - 967, - 968, - 969, - 970, - 971, - 972, - 973, - 974, - 975, - 976, - 977, - 978, - 979, - 980, - 981, - 982, - 983, - 984, - 985, - 986, - 987, - 988, - 989, - 990, - 991, - 992 - ] - }, - { - "teal": 977, - "source": 102, - "pc": [ - 993 - ] - }, - { - "teal": 978, - "source": 102, - "pc": [ - 994, - 995, - 996 - ] - }, - { - "teal": 983, - "source": 103, - "pc": [ - 997, - 998, - 999, - 1000, - 1001, - 1002, - 1003, - 1004, - 1005 - ] - }, - { - "teal": 984, - "source": 103, - "pc": [ - 1006 - ] - }, - { - "teal": 985, - "source": 102, - "pc": [ - 1007, - 1008, - 1009 - ] - }, - { - "teal": 990, - "source": 105, - "pc": [ - 1010, - 1011, - 1012, - 1013, - 1014, - 1015 - ] - }, - { - "teal": 991, - "source": 105, - "pc": [ - 1016 - ] - }, - { - "teal": 994, - "source": 100, - "pc": [ - 1017 - ] - }, - { - "teal": 999, - "source": 109, - "pc": [ - 1018 - ] - }, - { - "teal": 1002, - "source": 109, - "pc": [ - 1019, - 1020, - 1021 - ] - }, - { - "teal": 1003, - "source": 109, - "pc": [ - 1022 - ] - }, - { - "teal": 1004, - "source": 109, - "pc": [ - 1023 - ] - }, - { - "teal": 1005, - "source": 109, - "pc": [ - 1024 - ] - }, - { - "teal": 1006, - "source": 109, - "pc": [ - 1025 - ] - }, - { - "teal": 1009, - "source": 109, - "errorMessage": "argument 0 (b) for squareRoot256 must be a uint256", - "pc": [ - 1026 - ] - }, - { - "teal": 1012, - "source": 109, - "pc": [ - 1027, - 1028, - 1029 - ] - }, - { - "teal": 1013, - "source": 109, - "pc": [ - 1030 - ] - }, - { - "teal": 1014, - "source": 109, - "pc": [ - 1031 - ] - }, - { - "teal": 1015, - "source": 109, - "pc": [ - 1032 - ] - }, - { - "teal": 1016, - "source": 109, - "pc": [ - 1033 - ] - }, - { - "teal": 1019, - "source": 109, - "errorMessage": "argument 1 (a) for squareRoot256 must be a uint256", - "pc": [ - 1034 - ] - }, - { - "teal": 1022, - "source": 109, - "pc": [ - 1035, - 1036, - 1037 - ] - }, - { - "teal": 1023, - "source": 109, - "pc": [ - 1038 - ] - }, - { - "teal": 1024, - "source": 109, - "pc": [ - 1039 - ] - }, - { - "teal": 1025, - "source": 109, - "pc": [ - 1040 - ] - }, - { - "teal": 1026, - "source": 109, - "pc": [ - 1041 - ] - }, - { - "teal": 1029, - "source": 109, - "errorMessage": "squareRoot256 return value overflowed 256 bits", - "pc": [ - 1042 - ] - }, - { - "teal": 1030, - "source": 109, - "pc": [ - 1043 - ] - }, - { - "teal": 1031, - "source": 109, - "pc": [ - 1044 - ] - }, - { - "teal": 1032, - "source": 109, - "pc": [ - 1045 - ] - }, - { - "teal": 1033, - "source": 109, - "pc": [ - 1046 - ] - }, - { - "teal": 1034, - "source": 109, - "pc": [ - 1047 - ] - }, - { - "teal": 1035, - "source": 109, - "pc": [ - 1048 - ] - }, - { - "teal": 1036, - "source": 109, - "pc": [ - 1049 - ] - }, - { - "teal": 1037, - "source": 109, - "pc": [ - 1050 - ] - }, - { - "teal": 1038, - "source": 109, - "pc": [ - 1051 - ] - }, - { - "teal": 1039, - "source": 109, - "pc": [ - 1052 - ] - }, - { - "teal": 1040, - "source": 109, - "pc": [ - 1053 - ] - }, - { - "teal": 1041, - "source": 109, - "pc": [ - 1054 - ] - }, - { - "teal": 1042, - "source": 109, - "pc": [ - 1055 - ] - }, - { - "teal": 1046, - "source": 109, - "pc": [ - 1056, - 1057, - 1058 - ] - }, - { - "teal": 1050, - "source": 110, - "pc": [ - 1059, - 1060 - ] - }, - { - "teal": 1051, - "source": 110, - "pc": [ - 1061, - 1062 - ] - }, - { - "teal": 1052, - "source": 110, - "pc": [ - 1063 - ] - }, - { - "teal": 1053, - "source": 110, - "pc": [ - 1064 - ] - }, - { - "teal": 1054, - "source": 109, - "pc": [ - 1065 - ] - }, - { - "teal": 1059, - "source": 113, - "pc": [ - 1066 - ] - }, - { - "teal": 1062, - "source": 113, - "pc": [ - 1067, - 1068, - 1069 - ] - }, - { - "teal": 1063, - "source": 113, - "pc": [ - 1070 - ] - }, - { - "teal": 1066, - "source": 113, - "pc": [ - 1071, - 1072, - 1073 - ] - }, - { - "teal": 1067, - "source": 113, - "pc": [ - 1074 - ] - }, - { - "teal": 1070, - "source": 113, - "pc": [ - 1075, - 1076, - 1077 - ] - }, - { - "teal": 1071, - "source": 113, - "pc": [ - 1078 - ] - }, - { - "teal": 1072, - "source": 113, - "pc": [ - 1079 - ] - }, - { - "teal": 1073, - "source": 113, - "pc": [ - 1080 - ] - }, - { - "teal": 1074, - "source": 113, - "pc": [ - 1081 - ] - }, - { - "teal": 1075, - "source": 113, - "pc": [ - 1082 - ] - }, - { - "teal": 1079, - "source": 113, - "pc": [ - 1083, - 1084, - 1085 - ] - }, - { - "teal": 1083, - "source": 114, - "pc": [ - 1086, - 1087 - ] - }, - { - "teal": 1084, - "source": 114, - "pc": [ - 1088, - 1089 - ] - }, - { - "teal": 1085, - "source": 114, - "pc": [ - 1090 - ] - }, - { - "teal": 1086, - "source": 114, - "pc": [ - 1091 - ] - }, - { - "teal": 1087, - "source": 113, - "pc": [ - 1092 - ] - }, - { - "teal": 1092, - "source": 117, - "pc": [ - 1093 - ] - }, - { - "teal": 1095, - "source": 117, - "pc": [ - 1094, - 1095, - 1096 - ] - }, - { - "teal": 1096, - "source": 117, - "pc": [ - 1097 - ] - }, - { - "teal": 1097, - "source": 117, - "pc": [ - 1098 - ] - }, - { - "teal": 1098, - "source": 117, - "pc": [ - 1099 - ] - }, - { - "teal": 1099, - "source": 117, - "pc": [ - 1100 - ] - }, - { - "teal": 1102, - "source": 117, - "errorMessage": "argument 0 (addr) for addressToBigInt must be a address", - "pc": [ - 1101 - ] - }, - { - "teal": 1105, - "source": 117, - "pc": [ - 1102, - 1103, - 1104 - ] - }, - { - "teal": 1106, - "source": 117, - "pc": [ - 1105, - 1106, - 1107 - ] - }, - { - "teal": 1107, - "source": 117, - "pc": [ - 1108, - 1109 - ] - }, - { - "teal": 1108, - "source": 117, - "pc": [ - 1110, - 1111 - ] - }, - { - "teal": 1109, - "source": 117, - "pc": [ - 1112 - ] - }, - { - "teal": 1110, - "source": 117, - "pc": [ - 1113 - ] - }, - { - "teal": 1111, - "source": 117, - "pc": [ - 1114 - ] - }, - { - "teal": 1112, - "source": 117, - "pc": [ - 1115 - ] - }, - { - "teal": 1113, - "source": 117, - "pc": [ - 1116 - ] - }, - { - "teal": 1117, - "source": 117, - "pc": [ - 1117, - 1118, - 1119 - ] - }, - { - "teal": 1121, - "source": 118, - "pc": [ - 1120, - 1121 - ] - }, - { - "teal": 1122, - "source": 118, - "pc": [ - 1122, - 1123 - ] - }, - { - "teal": 1123, - "source": 118, - "pc": [ - 1124 - ] - }, - { - "teal": 1124, - "source": 117, - "pc": [ - 1125 - ] - }, - { - "teal": 1129, - "source": 121, - "pc": [ - 1126 - ] - }, - { - "teal": 1132, - "source": 121, - "pc": [ - 1127, - 1128, - 1129 - ] - }, - { - "teal": 1133, - "source": 121, - "pc": [ - 1130 - ] - }, - { - "teal": 1134, - "source": 121, - "pc": [ - 1131 - ] - }, - { - "teal": 1135, - "source": 121, - "pc": [ - 1132 - ] - }, - { - "teal": 1136, - "source": 121, - "pc": [ - 1133 - ] - }, - { - "teal": 1137, - "source": 121, - "pc": [ - 1134 - ] - }, - { - "teal": 1141, - "source": 121, - "pc": [ - 1135, - 1136, - 1137 - ] - }, - { - "teal": 1144, - "source": 121, - "pc": [ - 1138 - ] - }, - { - "teal": 1148, - "source": 122, - "pc": [ - 1139, - 1140 - ] - }, - { - "teal": 1149, - "source": 122, - "pc": [ - 1141, - 1142 - ] - }, - { - "teal": 1153, - "source": 123, - "pc": [ - 1143, - 1144 - ] - }, - { - "teal": 1156, - "source": 121, - "pc": [ - 1145, - 1146 - ] - }, - { - "teal": 1157, - "source": 121, - "pc": [ - 1147 - ] - }, - { - "teal": 1161, - "source": 126, - "pc": [ - 1148, - 1149, - 1150 - ] - }, - { - "teal": 1165, - "source": 127, - "pc": [ - 1151, - 1152 - ] - }, - { - "teal": 1166, - "source": 127, - "pc": [ - 1153, - 1154 - ] - }, - { - "teal": 1167, - "source": 127, - "pc": [ - 1155 - ] - }, - { - "teal": 1168, - "source": 127, - "pc": [ - 1156 - ] - }, - { - "teal": 1169, - "source": 126, - "pc": [ - 1157 - ] - }, - { - "teal": 1174, - "source": 130, - "pc": [ - 1158, - 1159, - 1160 - ] - }, - { - "teal": 1175, - "source": 130, - "pc": [ - 1161 - ] - }, - { - "teal": 1176, - "source": 130, - "pc": [ - 1162 - ] - }, - { - "teal": 1177, - "source": 130, - "pc": [ - 1163 - ] - }, - { - "teal": 1178, - "source": 130, - "pc": [ - 1164 - ] - }, - { - "teal": 1181, - "source": 130, - "errorMessage": "argument 0 (x) for funcName must be a uint256", - "pc": [ - 1165 - ] - }, - { - "teal": 1184, - "source": 130, - "pc": [ - 1166, - 1167, - 1168 - ] - }, - { - "teal": 1185, - "source": 130, - "pc": [ - 1169 - ] - }, - { - "teal": 1186, - "source": 130, - "pc": [ - 1170 - ] - }, - { - "teal": 1190, - "source": 130, - "pc": [ - 1171, - 1172, - 1173 - ] - }, - { - "teal": 1194, - "source": 131, - "pc": [ - 1174, - 1175, - 1176 - ] - }, - { - "teal": 1195, - "source": 131, - "pc": [ - 1177, - 1178 - ] - }, - { - "teal": 1196, - "source": 131, - "pc": [ - 1179 - ] - }, - { - "teal": 1197, - "source": 131, - "pc": [ - 1180 - ] - }, - { - "teal": 1198, - "source": 131, - "pc": [ - 1181 - ] - }, - { - "teal": 1199, - "source": 131, - "pc": [ - 1182 - ] - }, - { - "teal": 1202, - "source": 131, - "errorMessage": "x overflowed 8 bits", - "pc": [ - 1183 - ] - }, - { - "teal": 1203, - "source": 131, - "pc": [ - 1184, - 1185, - 1186 - ] - }, - { - "teal": 1204, - "source": 131, - "pc": [ - 1187 - ] - }, - { - "teal": 1205, - "source": 131, - "pc": [ - 1188, - 1189, - 1190 - ] - }, - { - "teal": 1206, - "source": 130, - "pc": [ - 1191 - ] - }, - { - "teal": 1211, - "source": 134, - "pc": [ - 1192 - ] - }, - { - "teal": 1214, - "source": 134, - "pc": [ - 1193, - 1194, - 1195 - ] - }, - { - "teal": 1215, - "source": 134, - "pc": [ - 1196 - ] - }, - { - "teal": 1218, - "source": 134, - "pc": [ - 1197, - 1198, - 1199 - ] - }, - { - "teal": 1219, - "source": 134, - "pc": [ - 1200 - ] - }, - { - "teal": 1222, - "source": 134, - "pc": [ - 1201, - 1202, - 1203 - ] - }, - { - "teal": 1223, - "source": 134, - "pc": [ - 1204 - ] - }, - { - "teal": 1224, - "source": 134, - "pc": [ - 1205 - ] - }, - { - "teal": 1225, - "source": 134, - "pc": [ - 1206 - ] - }, - { - "teal": 1226, - "source": 134, - "pc": [ - 1207 - ] - }, - { - "teal": 1227, - "source": 134, - "pc": [ - 1208 - ] - }, - { - "teal": 1231, - "source": 134, - "pc": [ - 1209, - 1210, - 1211 - ] - }, - { - "teal": 1234, - "source": 134, - "pc": [ - 1212 - ] - }, - { - "teal": 1235, - "source": 134, - "pc": [ - 1213 - ] - }, - { - "teal": 1239, - "source": 135, - "pc": [ - 1214, - 1215 - ] - }, - { - "teal": 1240, - "source": 135, - "pc": [ - 1216 - ] - }, - { - "teal": 1241, - "source": 135, - "pc": [ - 1217, - 1218 - ] - }, - { - "teal": 1245, - "source": 136, - "pc": [ - 1219, - 1220 - ] - }, - { - "teal": 1246, - "source": 136, - "pc": [ - 1221 - ] - }, - { - "teal": 1247, - "source": 136, - "pc": [ - 1222, - 1223 - ] - }, - { - "teal": 1251, - "source": 137, - "pc": [ - 1224, - 1225 - ] - }, - { - "teal": 1252, - "source": 137, - "pc": [ - 1226, - 1227 - ] - }, - { - "teal": 1253, - "source": 137, - "pc": [ - 1228 - ] - }, - { - "teal": 1254, - "source": 137, - "pc": [ - 1229 - ] - }, - { - "teal": 1255, - "source": 137, - "pc": [ - 1230 - ] - }, - { - "teal": 1256, - "source": 137, - "pc": [ - 1231, - 1232 - ] - }, - { - "teal": 1257, - "source": 137, - "pc": [ - 1233 - ] - }, - { - "teal": 1260, - "source": 137, - "errorMessage": "(btobigint(x) + btobigint(y)) as uint64 overflowed 64 bits", - "pc": [ - 1234 - ] - }, - { - "teal": 1261, - "source": 137, - "pc": [ - 1235, - 1236 - ] - }, - { - "teal": 1262, - "source": 137, - "pc": [ - 1237 - ] - }, - { - "teal": 1263, - "source": 137, - "pc": [ - 1238 - ] - }, - { - "teal": 1264, - "source": 137, - "pc": [ - 1239 - ] - }, - { - "teal": 1265, - "source": 137, - "pc": [ - 1240 - ] - }, - { - "teal": 1266, - "source": 137, - "pc": [ - 1241 - ] - }, - { - "teal": 1267, - "source": 137, - "pc": [ - 1242 - ] - }, - { - "teal": 1268, - "source": 137, - "pc": [ - 1243 - ] - }, - { - "teal": 1269, - "source": 137, - "pc": [ - 1244 - ] - }, - { - "teal": 1270, - "source": 137, - "pc": [ - 1245 - ] - }, - { - "teal": 1273, - "source": 134, - "pc": [ - 1246, - 1247 - ] - }, - { - "teal": 1276, - "source": 134, - "pc": [ - 1248, - 1249 - ] - }, - { - "teal": 1277, - "source": 134, - "pc": [ - 1250 - ] - }, - { - "teal": 1282, - "source": 140, - "pc": [ - 1251 - ] - }, - { - "teal": 1285, - "source": 140, - "pc": [ - 1252, - 1253, - 1254 - ] - }, - { - "teal": 1286, - "source": 140, - "pc": [ - 1255 - ] - }, - { - "teal": 1289, - "source": 140, - "pc": [ - 1256, - 1257, - 1258 - ] - }, - { - "teal": 1290, - "source": 140, - "pc": [ - 1259 - ] - }, - { - "teal": 1293, - "source": 140, - "pc": [ - 1260, - 1261, - 1262 - ] - }, - { - "teal": 1294, - "source": 140, - "pc": [ - 1263 - ] - }, - { - "teal": 1295, - "source": 140, - "pc": [ - 1264 - ] - }, - { - "teal": 1296, - "source": 140, - "pc": [ - 1265 - ] - }, - { - "teal": 1297, - "source": 140, - "pc": [ - 1266 - ] - }, - { - "teal": 1298, - "source": 140, - "pc": [ - 1267 - ] - }, - { - "teal": 1302, - "source": 140, - "pc": [ - 1268, - 1269, - 1270 - ] - }, - { - "teal": 1306, - "source": 141, - "pc": [ - 1271, - 1272 - ] - }, - { - "teal": 1307, - "source": 141, - "pc": [ - 1273, - 1274 - ] - }, - { - "teal": 1308, - "source": 141, - "pc": [ - 1275 - ] - }, - { - "teal": 1309, - "source": 140, - "pc": [ - 1276 - ] - }, - { - "teal": 1314, - "source": 144, - "pc": [ - 1277 - ] - }, - { - "teal": 1317, - "source": 144, - "pc": [ - 1278, - 1279, - 1280 - ] - }, - { - "teal": 1318, - "source": 144, - "pc": [ - 1281 - ] - }, - { - "teal": 1321, - "source": 144, - "pc": [ - 1282, - 1283, - 1284 - ] - }, - { - "teal": 1322, - "source": 144, - "pc": [ - 1285 - ] - }, - { - "teal": 1325, - "source": 144, - "pc": [ - 1286, - 1287, - 1288 - ] - }, - { - "teal": 1326, - "source": 144, - "pc": [ - 1289 - ] - }, - { - "teal": 1327, - "source": 144, - "pc": [ - 1290 - ] - }, - { - "teal": 1328, - "source": 144, - "pc": [ - 1291 - ] - }, - { - "teal": 1329, - "source": 144, - "pc": [ - 1292 - ] - }, - { - "teal": 1330, - "source": 144, - "pc": [ - 1293 - ] - }, - { - "teal": 1334, - "source": 144, - "pc": [ - 1294, - 1295, - 1296 - ] - }, - { - "teal": 1338, - "source": 145, - "pc": [ - 1297, - 1298 - ] - }, - { - "teal": 1339, - "source": 145, - "pc": [ - 1299, - 1300 - ] - }, - { - "teal": 1340, - "source": 145, - "pc": [ - 1301 - ] - }, - { - "teal": 1341, - "source": 144, - "pc": [ - 1302 - ] - }, - { - "teal": 1346, - "source": 148, - "pc": [ - 1303 - ] - }, - { - "teal": 1349, - "source": 148, - "pc": [ - 1304, - 1305, - 1306 - ] - }, - { - "teal": 1350, - "source": 148, - "pc": [ - 1307 - ] - }, - { - "teal": 1353, - "source": 148, - "pc": [ - 1308, - 1309, - 1310 - ] - }, - { - "teal": 1354, - "source": 148, - "pc": [ - 1311 - ] - }, - { - "teal": 1357, - "source": 148, - "pc": [ - 1312, - 1313, - 1314 - ] - }, - { - "teal": 1358, - "source": 148, - "pc": [ - 1315 - ] - }, - { - "teal": 1359, - "source": 148, - "pc": [ - 1316 - ] - }, - { - "teal": 1360, - "source": 148, - "pc": [ - 1317 - ] - }, - { - "teal": 1361, - "source": 148, - "pc": [ - 1318 - ] - }, - { - "teal": 1362, - "source": 148, - "pc": [ - 1319 - ] - }, - { - "teal": 1366, - "source": 148, - "pc": [ - 1320, - 1321, - 1322 - ] - }, - { - "teal": 1370, - "source": 149, - "pc": [ - 1323, - 1324 - ] - }, - { - "teal": 1371, - "source": 149, - "pc": [ - 1325, - 1326 - ] - }, - { - "teal": 1372, - "source": 149, - "pc": [ - 1327 - ] - }, - { - "teal": 1373, - "source": 148, - "pc": [ - 1328 - ] - }, - { - "teal": 1378, - "source": 152, - "pc": [ - 1329 - ] - }, - { - "teal": 1381, - "source": 152, - "pc": [ - 1330, - 1331, - 1332 - ] - }, - { - "teal": 1382, - "source": 152, - "pc": [ - 1333 - ] - }, - { - "teal": 1383, - "source": 152, - "pc": [ - 1334 - ] - }, - { - "teal": 1384, - "source": 152, - "pc": [ - 1335 - ] - }, - { - "teal": 1385, - "source": 152, - "pc": [ - 1336 - ] - }, - { - "teal": 1388, - "source": 152, - "errorMessage": "argument 0 (b) for bitwiseOrU256 must be a uint256", - "pc": [ - 1337 - ] - }, - { - "teal": 1391, - "source": 152, - "pc": [ - 1338, - 1339, - 1340 - ] - }, - { - "teal": 1392, - "source": 152, - "pc": [ - 1341 - ] - }, - { - "teal": 1393, - "source": 152, - "pc": [ - 1342 - ] - }, - { - "teal": 1394, - "source": 152, - "pc": [ - 1343 - ] - }, - { - "teal": 1395, - "source": 152, - "pc": [ - 1344 - ] - }, - { - "teal": 1398, - "source": 152, - "errorMessage": "argument 1 (a) for bitwiseOrU256 must be a uint256", - "pc": [ - 1345 - ] - }, - { - "teal": 1401, - "source": 152, - "pc": [ - 1346, - 1347, - 1348 - ] - }, - { - "teal": 1402, - "source": 152, - "pc": [ - 1349 - ] - }, - { - "teal": 1403, - "source": 152, - "pc": [ - 1350 - ] - }, - { - "teal": 1404, - "source": 152, - "pc": [ - 1351 - ] - }, - { - "teal": 1405, - "source": 152, - "pc": [ - 1352 - ] - }, - { - "teal": 1408, - "source": 152, - "errorMessage": "bitwiseOrU256 return value overflowed 256 bits", - "pc": [ - 1353 - ] - }, - { - "teal": 1409, - "source": 152, - "pc": [ - 1354 - ] - }, - { - "teal": 1410, - "source": 152, - "pc": [ - 1355 - ] - }, - { - "teal": 1411, - "source": 152, - "pc": [ - 1356 - ] - }, - { - "teal": 1412, - "source": 152, - "pc": [ - 1357 - ] - }, - { - "teal": 1413, - "source": 152, - "pc": [ - 1358 - ] - }, - { - "teal": 1414, - "source": 152, - "pc": [ - 1359 - ] - }, - { - "teal": 1415, - "source": 152, - "pc": [ - 1360 - ] - }, - { - "teal": 1416, - "source": 152, - "pc": [ - 1361 - ] - }, - { - "teal": 1417, - "source": 152, - "pc": [ - 1362 - ] - }, - { - "teal": 1418, - "source": 152, - "pc": [ - 1363 - ] - }, - { - "teal": 1419, - "source": 152, - "pc": [ - 1364 - ] - }, - { - "teal": 1420, - "source": 152, - "pc": [ - 1365 - ] - }, - { - "teal": 1421, - "source": 152, - "pc": [ - 1366 - ] - }, - { - "teal": 1425, - "source": 152, - "pc": [ - 1367, - 1368, - 1369 - ] - }, - { - "teal": 1429, - "source": 153, - "pc": [ - 1370, - 1371 - ] - }, - { - "teal": 1430, - "source": 153, - "pc": [ - 1372, - 1373 - ] - }, - { - "teal": 1431, - "source": 153, - "pc": [ - 1374 - ] - }, - { - "teal": 1432, - "source": 152, - "pc": [ - 1375 - ] - }, - { - "teal": 1437, - "source": 156, - "pc": [ - 1376 - ] - }, - { - "teal": 1440, - "source": 156, - "pc": [ - 1377, - 1378, - 1379 - ] - }, - { - "teal": 1441, - "source": 156, - "pc": [ - 1380 - ] - }, - { - "teal": 1442, - "source": 156, - "pc": [ - 1381 - ] - }, - { - "teal": 1443, - "source": 156, - "pc": [ - 1382 - ] - }, - { - "teal": 1444, - "source": 156, - "pc": [ - 1383 - ] - }, - { - "teal": 1447, - "source": 156, - "errorMessage": "argument 0 (b) for bitwiseAndU256 must be a uint256", - "pc": [ - 1384 - ] - }, - { - "teal": 1450, - "source": 156, - "pc": [ - 1385, - 1386, - 1387 - ] - }, - { - "teal": 1451, - "source": 156, - "pc": [ - 1388 - ] - }, - { - "teal": 1452, - "source": 156, - "pc": [ - 1389 - ] - }, - { - "teal": 1453, - "source": 156, - "pc": [ - 1390 - ] - }, - { - "teal": 1454, - "source": 156, - "pc": [ - 1391 - ] - }, - { - "teal": 1457, - "source": 156, - "errorMessage": "argument 1 (a) for bitwiseAndU256 must be a uint256", - "pc": [ - 1392 - ] - }, - { - "teal": 1460, - "source": 156, - "pc": [ - 1393, - 1394, - 1395 - ] - }, - { - "teal": 1461, - "source": 156, - "pc": [ - 1396 - ] - }, - { - "teal": 1462, - "source": 156, - "pc": [ - 1397 - ] - }, - { - "teal": 1463, - "source": 156, - "pc": [ - 1398 - ] - }, - { - "teal": 1464, - "source": 156, - "pc": [ - 1399 - ] - }, - { - "teal": 1467, - "source": 156, - "errorMessage": "bitwiseAndU256 return value overflowed 256 bits", - "pc": [ - 1400 - ] - }, - { - "teal": 1468, - "source": 156, - "pc": [ - 1401 - ] - }, - { - "teal": 1469, - "source": 156, - "pc": [ - 1402 - ] - }, - { - "teal": 1470, - "source": 156, - "pc": [ - 1403 - ] - }, - { - "teal": 1471, - "source": 156, - "pc": [ - 1404 - ] - }, - { - "teal": 1472, - "source": 156, - "pc": [ - 1405 - ] - }, - { - "teal": 1473, - "source": 156, - "pc": [ - 1406 - ] - }, - { - "teal": 1474, - "source": 156, - "pc": [ - 1407 - ] - }, - { - "teal": 1475, - "source": 156, - "pc": [ - 1408 - ] - }, - { - "teal": 1476, - "source": 156, - "pc": [ - 1409 - ] - }, - { - "teal": 1477, - "source": 156, - "pc": [ - 1410 - ] - }, - { - "teal": 1478, - "source": 156, - "pc": [ - 1411 - ] - }, - { - "teal": 1479, - "source": 156, - "pc": [ - 1412 - ] - }, - { - "teal": 1480, - "source": 156, - "pc": [ - 1413 - ] - }, - { - "teal": 1484, - "source": 156, - "pc": [ - 1414, - 1415, - 1416 - ] - }, - { - "teal": 1488, - "source": 157, - "pc": [ - 1417, - 1418 - ] - }, - { - "teal": 1489, - "source": 157, - "pc": [ - 1419, - 1420 - ] - }, - { - "teal": 1490, - "source": 157, - "pc": [ - 1421 - ] - }, - { - "teal": 1491, - "source": 156, - "pc": [ - 1422 - ] - }, - { - "teal": 1496, - "source": 160, - "pc": [ - 1423 - ] - }, - { - "teal": 1499, - "source": 160, - "pc": [ - 1424, - 1425, - 1426 - ] - }, - { - "teal": 1500, - "source": 160, - "pc": [ - 1427 - ] - }, - { - "teal": 1501, - "source": 160, - "pc": [ - 1428 - ] - }, - { - "teal": 1502, - "source": 160, - "pc": [ - 1429 - ] - }, - { - "teal": 1503, - "source": 160, - "pc": [ - 1430 - ] - }, - { - "teal": 1506, - "source": 160, - "errorMessage": "argument 0 (b) for bitwiseXorU256 must be a uint256", - "pc": [ - 1431 - ] - }, - { - "teal": 1509, - "source": 160, - "pc": [ - 1432, - 1433, - 1434 - ] - }, - { - "teal": 1510, - "source": 160, - "pc": [ - 1435 - ] - }, - { - "teal": 1511, - "source": 160, - "pc": [ - 1436 - ] - }, - { - "teal": 1512, - "source": 160, - "pc": [ - 1437 - ] - }, - { - "teal": 1513, - "source": 160, - "pc": [ - 1438 - ] - }, - { - "teal": 1516, - "source": 160, - "errorMessage": "argument 1 (a) for bitwiseXorU256 must be a uint256", - "pc": [ - 1439 - ] - }, - { - "teal": 1519, - "source": 160, - "pc": [ - 1440, - 1441, - 1442 - ] - }, - { - "teal": 1520, - "source": 160, - "pc": [ - 1443 - ] - }, - { - "teal": 1521, - "source": 160, - "pc": [ - 1444 - ] - }, - { - "teal": 1522, - "source": 160, - "pc": [ - 1445 - ] - }, - { - "teal": 1523, - "source": 160, - "pc": [ - 1446 - ] - }, - { - "teal": 1526, - "source": 160, - "errorMessage": "bitwiseXorU256 return value overflowed 256 bits", - "pc": [ - 1447 - ] - }, - { - "teal": 1527, - "source": 160, - "pc": [ - 1448 - ] - }, - { - "teal": 1528, - "source": 160, - "pc": [ - 1449 - ] - }, - { - "teal": 1529, - "source": 160, - "pc": [ - 1450 - ] - }, - { - "teal": 1530, - "source": 160, - "pc": [ - 1451 - ] - }, - { - "teal": 1531, - "source": 160, - "pc": [ - 1452 - ] - }, - { - "teal": 1532, - "source": 160, - "pc": [ - 1453 - ] - }, - { - "teal": 1533, - "source": 160, - "pc": [ - 1454 - ] - }, - { - "teal": 1534, - "source": 160, - "pc": [ - 1455 - ] - }, - { - "teal": 1535, - "source": 160, - "pc": [ - 1456 - ] - }, - { - "teal": 1536, - "source": 160, - "pc": [ - 1457 - ] - }, - { - "teal": 1537, - "source": 160, - "pc": [ - 1458 - ] - }, - { - "teal": 1538, - "source": 160, - "pc": [ - 1459 - ] - }, - { - "teal": 1539, - "source": 160, - "pc": [ - 1460 - ] - }, - { - "teal": 1543, - "source": 160, - "pc": [ - 1461, - 1462, - 1463 - ] - }, - { - "teal": 1547, - "source": 161, - "pc": [ - 1464, - 1465 - ] - }, - { - "teal": 1548, - "source": 161, - "pc": [ - 1466, - 1467 - ] - }, - { - "teal": 1549, - "source": 161, - "pc": [ - 1468 - ] - }, - { - "teal": 1550, - "source": 160, - "pc": [ - 1469 - ] - }, - { - "teal": 1555, - "source": 164, - "pc": [ - 1470 - ] - }, - { - "teal": 1558, - "source": 164, - "pc": [ - 1471, - 1472, - 1473 - ] - }, - { - "teal": 1559, - "source": 164, - "pc": [ - 1474 - ] - }, - { - "teal": 1562, - "source": 164, - "pc": [ - 1475, - 1476, - 1477 - ] - }, - { - "teal": 1563, - "source": 164, - "pc": [ - 1478 - ] - }, - { - "teal": 1564, - "source": 164, - "pc": [ - 1479 - ] - }, - { - "teal": 1565, - "source": 164, - "pc": [ - 1480 - ] - }, - { - "teal": 1566, - "source": 164, - "pc": [ - 1481 - ] - }, - { - "teal": 1567, - "source": 164, - "pc": [ - 1482 - ] - }, - { - "teal": 1571, - "source": 164, - "pc": [ - 1483, - 1484, - 1485 - ] - }, - { - "teal": 1575, - "source": 165, - "pc": [ - 1486, - 1487 - ] - }, - { - "teal": 1576, - "source": 165, - "pc": [ - 1488 - ] - }, - { - "teal": 1577, - "source": 164, - "pc": [ - 1489 - ] - }, - { - "teal": 1582, - "source": 168, - "pc": [ - 1490 - ] - }, - { - "teal": 1585, - "source": 168, - "pc": [ - 1491, - 1492, - 1493 - ] - }, - { - "teal": 1586, - "source": 168, - "pc": [ - 1494 - ] - }, - { - "teal": 1587, - "source": 168, - "pc": [ - 1495 - ] - }, - { - "teal": 1588, - "source": 168, - "pc": [ - 1496 - ] - }, - { - "teal": 1589, - "source": 168, - "pc": [ - 1497 - ] - }, - { - "teal": 1592, - "source": 168, - "errorMessage": "argument 0 (a) for bitwiseNotU256 must be a uint256", - "pc": [ - 1498 - ] - }, - { - "teal": 1595, - "source": 168, - "pc": [ - 1499, - 1500, - 1501 - ] - }, - { - "teal": 1596, - "source": 168, - "pc": [ - 1502 - ] - }, - { - "teal": 1597, - "source": 168, - "pc": [ - 1503 - ] - }, - { - "teal": 1598, - "source": 168, - "pc": [ - 1504 - ] - }, - { - "teal": 1599, - "source": 168, - "pc": [ - 1505 - ] - }, - { - "teal": 1602, - "source": 168, - "errorMessage": "bitwiseNotU256 return value overflowed 256 bits", - "pc": [ - 1506 - ] - }, - { - "teal": 1603, - "source": 168, - "pc": [ - 1507 - ] - }, - { - "teal": 1604, - "source": 168, - "pc": [ - 1508 - ] - }, - { - "teal": 1605, - "source": 168, - "pc": [ - 1509 - ] - }, - { - "teal": 1606, - "source": 168, - "pc": [ - 1510 - ] - }, - { - "teal": 1607, - "source": 168, - "pc": [ - 1511 - ] - }, - { - "teal": 1608, - "source": 168, - "pc": [ - 1512 - ] - }, - { - "teal": 1609, - "source": 168, - "pc": [ - 1513 - ] - }, - { - "teal": 1610, - "source": 168, - "pc": [ - 1514 - ] - }, - { - "teal": 1611, - "source": 168, - "pc": [ - 1515 - ] - }, - { - "teal": 1612, - "source": 168, - "pc": [ - 1516 - ] - }, - { - "teal": 1613, - "source": 168, - "pc": [ - 1517 - ] - }, - { - "teal": 1614, - "source": 168, - "pc": [ - 1518 - ] - }, - { - "teal": 1615, - "source": 168, - "pc": [ - 1519 - ] - }, - { - "teal": 1619, - "source": 168, - "pc": [ - 1520, - 1521, - 1522 - ] - }, - { - "teal": 1623, - "source": 169, - "pc": [ - 1523, - 1524 - ] - }, - { - "teal": 1624, - "source": 169, - "pc": [ - 1525 - ] - }, - { - "teal": 1625, - "source": 168, - "pc": [ - 1526 - ] - }, - { - "teal": 1630, - "source": 172, - "pc": [ - 1527 - ] - }, - { - "teal": 1633, - "source": 172, - "pc": [ - 1528, - 1529, - 1530 - ] - }, - { - "teal": 1634, - "source": 172, - "pc": [ - 1531 - ] - }, - { - "teal": 1637, - "source": 172, - "pc": [ - 1532, - 1533, - 1534 - ] - }, - { - "teal": 1638, - "source": 172, - "pc": [ - 1535 - ] - }, - { - "teal": 1641, - "source": 172, - "pc": [ - 1536, - 1537, - 1538 - ] - }, - { - "teal": 1642, - "source": 172, - "pc": [ - 1539 - ] - }, - { - "teal": 1643, - "source": 172, - "pc": [ - 1540 - ] - }, - { - "teal": 1644, - "source": 172, - "pc": [ - 1541 - ] - }, - { - "teal": 1645, - "source": 172, - "pc": [ - 1542 - ] - }, - { - "teal": 1646, - "source": 172, - "pc": [ - 1543 - ] - }, - { - "teal": 1650, - "source": 172, - "pc": [ - 1544, - 1545, - 1546 - ] - }, - { - "teal": 1653, - "source": 172, - "pc": [ - 1547 - ] - }, - { - "teal": 1654, - "source": 172, - "pc": [ - 1548 - ] - }, - { - "teal": 1658, - "source": 173, - "pc": [ - 1549, - 1550 - ] - }, - { - "teal": 1659, - "source": 173, - "pc": [ - 1551, - 1552 - ] - }, - { - "teal": 1660, - "source": 173, - "pc": [ - 1553 - ] - }, - { - "teal": 1661, - "source": 173, - "pc": [ - 1554, - 1555 - ] - }, - { - "teal": 1662, - "source": 173, - "pc": [ - 1556, - 1557 - ] - }, - { - "teal": 1666, - "source": 177, - "pc": [ - 1558, - 1559 - ] - }, - { - "teal": 1669, - "source": 172, - "pc": [ - 1560, - 1561 - ] - }, - { - "teal": 1672, - "source": 172, - "pc": [ - 1562, - 1563 - ] - }, - { - "teal": 1673, - "source": 172, - "pc": [ - 1564 - ] - }, - { - "teal": 1678, - "source": 180, - "pc": [ - 1565 - ] - }, - { - "teal": 1681, - "source": 180, - "pc": [ - 1566, - 1567, - 1568 - ] - }, - { - "teal": 1682, - "source": 180, - "pc": [ - 1569 - ] - }, - { - "teal": 1685, - "source": 180, - "pc": [ - 1570, - 1571, - 1572 - ] - }, - { - "teal": 1686, - "source": 180, - "pc": [ - 1573 - ] - }, - { - "teal": 1689, - "source": 180, - "pc": [ - 1574, - 1575, - 1576 - ] - }, - { - "teal": 1690, - "source": 180, - "pc": [ - 1577 - ] - }, - { - "teal": 1691, - "source": 180, - "pc": [ - 1578 - ] - }, - { - "teal": 1692, - "source": 180, - "pc": [ - 1579 - ] - }, - { - "teal": 1693, - "source": 180, - "pc": [ - 1580 - ] - }, - { - "teal": 1694, - "source": 180, - "pc": [ - 1581 - ] - }, - { - "teal": 1698, - "source": 180, - "pc": [ - 1582, - 1583, - 1584 - ] - }, - { - "teal": 1701, - "source": 180, - "pc": [ - 1585 - ] - }, - { - "teal": 1702, - "source": 180, - "pc": [ - 1586 - ] - }, - { - "teal": 1706, - "source": 181, - "pc": [ - 1587, - 1588 - ] - }, - { - "teal": 1707, - "source": 181, - "pc": [ - 1589, - 1590 - ] - }, - { - "teal": 1708, - "source": 181, - "pc": [ - 1591 - ] - }, - { - "teal": 1709, - "source": 181, - "pc": [ - 1592, - 1593 - ] - }, - { - "teal": 1710, - "source": 181, - "pc": [ - 1594, - 1595 - ] - }, - { - "teal": 1714, - "source": 185, - "pc": [ - 1596, - 1597 - ] - }, - { - "teal": 1717, - "source": 180, - "pc": [ - 1598, - 1599 - ] - }, - { - "teal": 1720, - "source": 180, - "pc": [ - 1600, - 1601 - ] - }, - { - "teal": 1721, - "source": 180, - "pc": [ - 1602 - ] - }, - { - "teal": 1726, - "source": 188, - "pc": [ - 1603 - ] - }, - { - "teal": 1729, - "source": 188, - "pc": [ - 1604, - 1605, - 1606 - ] - }, - { - "teal": 1730, - "source": 188, - "pc": [ - 1607 - ] - }, - { - "teal": 1733, - "source": 188, - "pc": [ - 1608, - 1609, - 1610 - ] - }, - { - "teal": 1734, - "source": 188, - "pc": [ - 1611 - ] - }, - { - "teal": 1737, - "source": 188, - "pc": [ - 1612, - 1613, - 1614 - ] - }, - { - "teal": 1738, - "source": 188, - "pc": [ - 1615 - ] - }, - { - "teal": 1739, - "source": 188, - "pc": [ - 1616 - ] - }, - { - "teal": 1740, - "source": 188, - "pc": [ - 1617 - ] - }, - { - "teal": 1741, - "source": 188, - "pc": [ - 1618 - ] - }, - { - "teal": 1742, - "source": 188, - "pc": [ - 1619 - ] - }, - { - "teal": 1746, - "source": 188, - "pc": [ - 1620, - 1621, - 1622 - ] - }, - { - "teal": 1749, - "source": 188, - "pc": [ - 1623 - ] - }, - { - "teal": 1750, - "source": 188, - "pc": [ - 1624 - ] - }, - { - "teal": 1754, - "source": 189, - "pc": [ - 1625, - 1626 - ] - }, - { - "teal": 1755, - "source": 189, - "pc": [ - 1627, - 1628 - ] - }, - { - "teal": 1756, - "source": 189, - "pc": [ - 1629 - ] - }, - { - "teal": 1757, - "source": 189, - "pc": [ - 1630, - 1631 - ] - }, - { - "teal": 1758, - "source": 189, - "pc": [ - 1632, - 1633 - ] - }, - { - "teal": 1762, - "source": 193, - "pc": [ - 1634, - 1635 - ] - }, - { - "teal": 1765, - "source": 188, - "pc": [ - 1636, - 1637 - ] - }, - { - "teal": 1768, - "source": 188, - "pc": [ - 1638, - 1639 - ] - }, - { - "teal": 1769, - "source": 188, - "pc": [ - 1640 - ] - }, - { - "teal": 1774, - "source": 196, - "pc": [ - 1641 - ] - }, - { - "teal": 1777, - "source": 196, - "pc": [ - 1642, - 1643, - 1644 - ] - }, - { - "teal": 1778, - "source": 196, - "pc": [ - 1645 - ] - }, - { - "teal": 1781, - "source": 196, - "pc": [ - 1646, - 1647, - 1648 - ] - }, - { - "teal": 1782, - "source": 196, - "pc": [ - 1649 - ] - }, - { - "teal": 1785, - "source": 196, - "pc": [ - 1650, - 1651, - 1652 - ] - }, - { - "teal": 1786, - "source": 196, - "pc": [ - 1653 - ] - }, - { - "teal": 1787, - "source": 196, - "pc": [ - 1654 - ] - }, - { - "teal": 1788, - "source": 196, - "pc": [ - 1655 - ] - }, - { - "teal": 1789, - "source": 196, - "pc": [ - 1656 - ] - }, - { - "teal": 1790, - "source": 196, - "pc": [ - 1657 - ] - }, - { - "teal": 1794, - "source": 196, - "pc": [ - 1658, - 1659, - 1660 - ] - }, - { - "teal": 1798, - "source": 197, - "pc": [ - 1661, - 1662 - ] - }, - { - "teal": 1799, - "source": 197, - "pc": [ - 1663, - 1664 - ] - }, - { - "teal": 1800, - "source": 197, - "pc": [ - 1665, - 1666 - ] - }, - { - "teal": 1801, - "source": 197, - "pc": [ - 1667 - ] - }, - { - "teal": 1802, - "source": 196, - "pc": [ - 1668 - ] - }, - { - "teal": 1807, - "source": 200, - "pc": [ - 1669 - ] - }, - { - "teal": 1810, - "source": 200, - "pc": [ - 1670, - 1671, - 1672 - ] - }, - { - "teal": 1811, - "source": 200, - "pc": [ - 1673 - ] - }, - { - "teal": 1814, - "source": 200, - "pc": [ - 1674, - 1675, - 1676 - ] - }, - { - "teal": 1815, - "source": 200, - "pc": [ - 1677 - ] - }, - { - "teal": 1818, - "source": 200, - "pc": [ - 1678, - 1679, - 1680 - ] - }, - { - "teal": 1819, - "source": 200, - "pc": [ - 1681 - ] - }, - { - "teal": 1820, - "source": 200, - "pc": [ - 1682 - ] - }, - { - "teal": 1821, - "source": 200, - "pc": [ - 1683 - ] - }, - { - "teal": 1822, - "source": 200, - "pc": [ - 1684 - ] - }, - { - "teal": 1823, - "source": 200, - "pc": [ - 1685 - ] - }, - { - "teal": 1827, - "source": 200, - "pc": [ - 1686, - 1687, - 1688 - ] - }, - { - "teal": 1830, - "source": 200, - "pc": [ - 1689 - ] - }, - { - "teal": 1831, - "source": 200, - "pc": [ - 1690, - 1691 - ] - }, - { - "teal": 1835, - "source": 201, - "pc": [ - 1692, - 1693 - ] - }, - { - "teal": 1836, - "source": 201, - "pc": [ - 1694, - 1695 - ] - }, - { - "teal": 1837, - "source": 201, - "pc": [ - 1696, - 1697 - ] - }, - { - "teal": 1838, - "source": 201, - "pc": [ - 1698, - 1699 - ] - }, - { - "teal": 1839, - "source": 201, - "pc": [ - 1700 - ] - }, - { - "teal": 1840, - "source": 201, - "pc": [ - 1701, - 1702 - ] - }, - { - "teal": 1841, - "source": 201, - "pc": [ - 1703, - 1704 - ] - }, - { - "teal": 1842, - "source": 201, - "pc": [ - 1705, - 1706 - ] - }, - { - "teal": 1843, - "source": 201, - "pc": [ - 1707, - 1708 - ] - }, - { - "teal": 1847, - "source": 205, - "pc": [ - 1709, - 1710 - ] - }, - { - "teal": 1850, - "source": 200, - "pc": [ - 1711, - 1712 - ] - }, - { - "teal": 1853, - "source": 200, - "pc": [ - 1713, - 1714 - ] - }, - { - "teal": 1854, - "source": 200, - "pc": [ - 1715 - ] - }, - { - "teal": 1859, - "source": 208, - "pc": [ - 1716 - ] - }, - { - "teal": 1862, - "source": 208, - "pc": [ - 1717, - 1718, - 1719 - ] - }, - { - "teal": 1863, - "source": 208, - "pc": [ - 1720 - ] - }, - { - "teal": 1864, - "source": 208, - "pc": [ - 1721 - ] - }, - { - "teal": 1865, - "source": 208, - "pc": [ - 1722 - ] - }, - { - "teal": 1866, - "source": 208, - "pc": [ - 1723 - ] - }, - { - "teal": 1867, - "source": 208, - "pc": [ - 1724 - ] - }, - { - "teal": 1871, - "source": 208, - "pc": [ - 1725, - 1726, - 1727 - ] - }, - { - "teal": 1874, - "source": 208, - "pc": [ - 1728 - ] - }, - { - "teal": 1875, - "source": 208, - "pc": [ - 1729, - 1730 - ] - }, - { - "teal": 1879, - "source": 209, - "pc": [ - 1731, - 1732, - 1733, - 1734, - 1735, - 1736, - 1737, - 1738, - 1739, - 1740, - 1741, - 1742, - 1743, - 1744, - 1745, - 1746, - 1747, - 1748, - 1749, - 1750, - 1751, - 1752, - 1753, - 1754, - 1755, - 1756, - 1757, - 1758, - 1759, - 1760, - 1761, - 1762, - 1763, - 1764 - ] - }, - { - "teal": 1880, - "source": 209, - "pc": [ - 1765, - 1766 - ] - }, - { - "teal": 1884, - "source": 210, - "pc": [ - 1767, - 1768 - ] - }, - { - "teal": 1885, - "source": 210, - "pc": [ - 1769, - 1770 - ] - }, - { - "teal": 1889, - "source": 212, - "pc": [ - 1771, - 1772 - ] - }, - { - "teal": 1890, - "source": 212, - "pc": [ - 1773, - 1774 - ] - }, - { - "teal": 1891, - "source": 212, - "pc": [ - 1775 - ] - }, - { - "teal": 1892, - "source": 212, - "pc": [ - 1776, - 1777 - ] - }, - { - "teal": 1896, - "source": 214, - "pc": [ - 1778, - 1779 - ] - }, - { - "teal": 1897, - "source": 214, - "pc": [ - 1780 - ] - }, - { - "teal": 1898, - "source": 214, - "pc": [ - 1781 - ] - }, - { - "teal": 1899, - "source": 214, - "pc": [ - 1782, - 1783 - ] - }, - { - "teal": 1900, - "source": 214, - "pc": [ - 1784 - ] - }, - { - "teal": 1903, - "source": 214, - "errorMessage": "A as uint64 overflowed 64 bits", - "pc": [ - 1785 - ] - }, - { - "teal": 1904, - "source": 214, - "pc": [ - 1786, - 1787 - ] - }, - { - "teal": 1905, - "source": 214, - "pc": [ - 1788 - ] - }, - { - "teal": 1906, - "source": 214, - "pc": [ - 1789 - ] - }, - { - "teal": 1907, - "source": 214, - "pc": [ - 1790 - ] - }, - { - "teal": 1908, - "source": 214, - "pc": [ - 1791 - ] - }, - { - "teal": 1909, - "source": 214, - "pc": [ - 1792 - ] - }, - { - "teal": 1910, - "source": 214, - "pc": [ - 1793 - ] - }, - { - "teal": 1911, - "source": 214, - "pc": [ - 1794 - ] - }, - { - "teal": 1912, - "source": 214, - "pc": [ - 1795 - ] - }, - { - "teal": 1913, - "source": 214, - "pc": [ - 1796 - ] - }, - { - "teal": 1914, - "source": 214, - "pc": [ - 1797, - 1798 - ] - }, - { - "teal": 1918, - "source": 216, - "pc": [ - 1799, - 1800 - ] - }, - { - "teal": 1921, - "source": 208, - "pc": [ - 1801, - 1802 - ] - }, - { - "teal": 1924, - "source": 208, - "pc": [ - 1803, - 1804 - ] - }, - { - "teal": 1925, - "source": 208, - "pc": [ - 1805 - ] - }, - { - "teal": 1930, - "source": 219, - "pc": [ - 1806 - ] - }, - { - "teal": 1933, - "source": 219, - "pc": [ - 1807, - 1808, - 1809 - ] - }, - { - "teal": 1934, - "source": 219, - "pc": [ - 1810 - ] - }, - { - "teal": 1935, - "source": 219, - "pc": [ - 1811 - ] - }, - { - "teal": 1936, - "source": 219, - "pc": [ - 1812, - 1813 - ] - }, - { - "teal": 1937, - "source": 219, - "pc": [ - 1814 - ] - }, - { - "teal": 1940, - "source": 219, - "errorMessage": "argument 0 (x) for foobar must be a uint128", - "pc": [ - 1815 - ] - }, - { - "teal": 1943, - "source": 219, - "pc": [ - 1816, - 1817, - 1818 - ] - }, - { - "teal": 1944, - "source": 219, - "pc": [ - 1819 - ] - }, - { - "teal": 1945, - "source": 219, - "pc": [ - 1820 - ] - }, - { - "teal": 1946, - "source": 219, - "pc": [ - 1821, - 1822 - ] - }, - { - "teal": 1947, - "source": 219, - "pc": [ - 1823 - ] - }, - { - "teal": 1950, - "source": 219, - "errorMessage": "foobar return value overflowed 128 bits", - "pc": [ - 1824 - ] - }, - { - "teal": 1951, - "source": 219, - "pc": [ - 1825, - 1826 - ] - }, - { - "teal": 1952, - "source": 219, - "pc": [ - 1827 - ] - }, - { - "teal": 1953, - "source": 219, - "pc": [ - 1828 - ] - }, - { - "teal": 1954, - "source": 219, - "pc": [ - 1829 - ] - }, - { - "teal": 1955, - "source": 219, - "pc": [ - 1830 - ] - }, - { - "teal": 1956, - "source": 219, - "pc": [ - 1831, - 1832 - ] - }, - { - "teal": 1957, - "source": 219, - "pc": [ - 1833 - ] - }, - { - "teal": 1958, - "source": 219, - "pc": [ - 1834 - ] - }, - { - "teal": 1959, - "source": 219, - "pc": [ - 1835 - ] - }, - { - "teal": 1960, - "source": 219, - "pc": [ - 1836 - ] - }, - { - "teal": 1961, - "source": 219, - "pc": [ - 1837 - ] - }, - { - "teal": 1962, - "source": 219, - "pc": [ - 1838 - ] - }, - { - "teal": 1963, - "source": 219, - "pc": [ - 1839 - ] - }, - { - "teal": 1967, - "source": 219, - "pc": [ - 1840, - 1841, - 1842 - ] - }, - { - "teal": 1970, - "source": 219, - "pc": [ - 1843 - ] - }, - { - "teal": 1974, - "source": 220, - "pc": [ - 1844, - 1845 - ] - }, - { - "teal": 1975, - "source": 220, - "pc": [ - 1846, - 1847, - 1848, - 1849, - 1850, - 1851, - 1852, - 1853, - 1854, - 1855, - 1856, - 1857, - 1858, - 1859, - 1860, - 1861, - 1862, - 1863 - ] - }, - { - "teal": 1976, - "source": 220, - "pc": [ - 1864 - ] - }, - { - "teal": 1977, - "source": 220, - "pc": [ - 1865 - ] - }, - { - "teal": 1978, - "source": 220, - "pc": [ - 1866 - ] - }, - { - "teal": 1979, - "source": 220, - "pc": [ - 1867, - 1868 - ] - }, - { - "teal": 1980, - "source": 220, - "pc": [ - 1869 - ] - }, - { - "teal": 1983, - "source": 220, - "errorMessage": "x / (30000 as uint128) overflowed 128 bits", - "pc": [ - 1870 - ] - }, - { - "teal": 1984, - "source": 220, - "pc": [ - 1871, - 1872 - ] - }, - { - "teal": 1985, - "source": 220, - "pc": [ - 1873 - ] - }, - { - "teal": 1986, - "source": 220, - "pc": [ - 1874 - ] - }, - { - "teal": 1987, - "source": 220, - "pc": [ - 1875 - ] - }, - { - "teal": 1988, - "source": 220, - "pc": [ - 1876 - ] - }, - { - "teal": 1989, - "source": 220, - "pc": [ - 1877, - 1878 - ] - }, - { - "teal": 1990, - "source": 220, - "pc": [ - 1879 - ] - }, - { - "teal": 1991, - "source": 220, - "pc": [ - 1880 - ] - }, - { - "teal": 1992, - "source": 220, - "pc": [ - 1881 - ] - }, - { - "teal": 1993, - "source": 220, - "pc": [ - 1882, - 1883 - ] - }, - { - "teal": 1997, - "source": 222, - "pc": [ - 1884, - 1885 - ] - }, - { - "teal": 2000, - "source": 219, - "pc": [ - 1886, - 1887 - ] - }, - { - "teal": 2001, - "source": 219, - "pc": [ - 1888 - ] - }, - { - "teal": 2006, - "source": 225, - "pc": [ - 1889 - ] - }, - { - "teal": 2009, - "source": 225, - "pc": [ - 1890, - 1891, - 1892 - ] - }, - { - "teal": 2010, - "source": 225, - "pc": [ - 1893 - ] - }, - { - "teal": 2011, - "source": 225, - "pc": [ - 1894 - ] - }, - { - "teal": 2012, - "source": 225, - "pc": [ - 1895 - ] - }, - { - "teal": 2013, - "source": 225, - "pc": [ - 1896 - ] - }, - { - "teal": 2016, - "source": 225, - "errorMessage": "uintFromHex return value overflowed 256 bits", - "pc": [ - 1897 - ] - }, - { - "teal": 2017, - "source": 225, - "pc": [ - 1898 - ] - }, - { - "teal": 2018, - "source": 225, - "pc": [ - 1899 - ] - }, - { - "teal": 2019, - "source": 225, - "pc": [ - 1900 - ] - }, - { - "teal": 2020, - "source": 225, - "pc": [ - 1901 - ] - }, - { - "teal": 2021, - "source": 225, - "pc": [ - 1902 - ] - }, - { - "teal": 2022, - "source": 225, - "pc": [ - 1903 - ] - }, - { - "teal": 2023, - "source": 225, - "pc": [ - 1904 - ] - }, - { - "teal": 2024, - "source": 225, - "pc": [ - 1905 - ] - }, - { - "teal": 2025, - "source": 225, - "pc": [ - 1906 - ] - }, - { - "teal": 2026, - "source": 225, - "pc": [ - 1907 - ] - }, - { - "teal": 2027, - "source": 225, - "pc": [ - 1908 - ] - }, - { - "teal": 2028, - "source": 225, - "pc": [ - 1909 - ] - }, - { - "teal": 2029, - "source": 225, - "pc": [ - 1910 - ] - }, - { - "teal": 2033, - "source": 225, - "pc": [ - 1911, - 1912, - 1913 - ] - }, - { - "teal": 2037, - "source": 226, - "pc": [ - 1914, - 1915, - 1916, - 1917, - 1918, - 1919, - 1920, - 1921, - 1922, - 1923, - 1924, - 1925, - 1926, - 1927, - 1928, - 1929, - 1930, - 1931, - 1932, - 1933, - 1934, - 1935, - 1936, - 1937, - 1938, - 1939, - 1940, - 1941, - 1942, - 1943, - 1944, - 1945, - 1946, - 1947 - ] - }, - { - "teal": 2038, - "source": 225, - "pc": [ - 1948 - ] - }, - { - "teal": 2041, - "source": 4, - "pc": [ - 1949 - ] - }, - { - "teal": 2042, - "source": 4, - "pc": [ - 1950 - ] - }, - { - "teal": 2045, - "source": 4, - "pc": [ - 1951, - 1952, - 1953, - 1954, - 1955, - 1956 - ] - }, - { - "teal": 2046, - "source": 4, - "pc": [ - 1957, - 1958, - 1959 - ] - }, - { - "teal": 2047, - "source": 4, - "pc": [ - 1960, - 1961, - 1962, - 1963 - ] - }, - { - "teal": 2050, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 1964 - ] - }, - { - "teal": 2053, - "source": 4, - "pc": [ - 1965, - 1966, - 1967, - 1968, - 1969, - 1970 - ] - }, - { - "teal": 2054, - "source": 4, - "pc": [ - 1971, - 1972, - 1973, - 1974, - 1975, - 1976 - ] - }, - { - "teal": 2055, - "source": 4, - "pc": [ - 1977, - 1978, - 1979, - 1980, - 1981, - 1982 - ] - }, - { - "teal": 2056, - "source": 4, - "pc": [ - 1983, - 1984, - 1985, - 1986, - 1987, - 1988 - ] - }, - { - "teal": 2057, - "source": 4, - "pc": [ - 1989, - 1990, - 1991, - 1992, - 1993, - 1994 - ] - }, - { - "teal": 2058, - "source": 4, - "pc": [ - 1995, - 1996, - 1997, - 1998, - 1999, - 2000 - ] - }, - { - "teal": 2059, - "source": 4, - "pc": [ - 2001, - 2002, - 2003, - 2004, - 2005, - 2006 - ] - }, - { - "teal": 2060, - "source": 4, - "pc": [ - 2007, - 2008, - 2009, - 2010, - 2011, - 2012 - ] - }, - { - "teal": 2061, - "source": 4, - "pc": [ - 2013, - 2014, - 2015, - 2016, - 2017, - 2018 - ] - }, - { - "teal": 2062, - "source": 4, - "pc": [ - 2019, - 2020, - 2021, - 2022, - 2023, - 2024 - ] - }, - { - "teal": 2063, - "source": 4, - "pc": [ - 2025, - 2026, - 2027, - 2028, - 2029, - 2030 - ] - }, - { - "teal": 2064, - "source": 4, - "pc": [ - 2031, - 2032, - 2033, - 2034, - 2035, - 2036 - ] - }, - { - "teal": 2065, - "source": 4, - "pc": [ - 2037, - 2038, - 2039, - 2040, - 2041, - 2042 - ] - }, - { - "teal": 2066, - "source": 4, - "pc": [ - 2043, - 2044, - 2045, - 2046, - 2047, - 2048 - ] - }, - { - "teal": 2067, - "source": 4, - "pc": [ - 2049, - 2050, - 2051, - 2052, - 2053, - 2054 - ] - }, - { - "teal": 2068, - "source": 4, - "pc": [ - 2055, - 2056, - 2057, - 2058, - 2059, - 2060 - ] - }, - { - "teal": 2069, - "source": 4, - "pc": [ - 2061, - 2062, - 2063, - 2064, - 2065, - 2066 - ] - }, - { - "teal": 2070, - "source": 4, - "pc": [ - 2067, - 2068, - 2069, - 2070, - 2071, - 2072 - ] - }, - { - "teal": 2071, - "source": 4, - "pc": [ - 2073, - 2074, - 2075, - 2076, - 2077, - 2078 - ] - }, - { - "teal": 2072, - "source": 4, - "pc": [ - 2079, - 2080, - 2081, - 2082, - 2083, - 2084 - ] - }, - { - "teal": 2073, - "source": 4, - "pc": [ - 2085, - 2086, - 2087, - 2088, - 2089, - 2090 - ] - }, - { - "teal": 2074, - "source": 4, - "pc": [ - 2091, - 2092, - 2093, - 2094, - 2095, - 2096 - ] - }, - { - "teal": 2075, - "source": 4, - "pc": [ - 2097, - 2098, - 2099, - 2100, - 2101, - 2102 - ] - }, - { - "teal": 2076, - "source": 4, - "pc": [ - 2103, - 2104, - 2105, - 2106, - 2107, - 2108 - ] - }, - { - "teal": 2077, - "source": 4, - "pc": [ - 2109, - 2110, - 2111, - 2112, - 2113, - 2114 - ] - }, - { - "teal": 2078, - "source": 4, - "pc": [ - 2115, - 2116, - 2117, - 2118, - 2119, - 2120 - ] - }, - { - "teal": 2079, - "source": 4, - "pc": [ - 2121, - 2122, - 2123, - 2124, - 2125, - 2126 - ] - }, - { - "teal": 2080, - "source": 4, - "pc": [ - 2127, - 2128, - 2129, - 2130, - 2131, - 2132 - ] - }, - { - "teal": 2081, - "source": 4, - "pc": [ - 2133, - 2134, - 2135, - 2136, - 2137, - 2138 - ] - }, - { - "teal": 2082, - "source": 4, - "pc": [ - 2139, - 2140, - 2141, - 2142, - 2143, - 2144 - ] - }, - { - "teal": 2083, - "source": 4, - "pc": [ - 2145, - 2146, - 2147, - 2148, - 2149, - 2150 - ] - }, - { - "teal": 2084, - "source": 4, - "pc": [ - 2151, - 2152, - 2153, - 2154, - 2155, - 2156 - ] - }, - { - "teal": 2085, - "source": 4, - "pc": [ - 2157, - 2158, - 2159, - 2160, - 2161, - 2162 - ] - }, - { - "teal": 2086, - "source": 4, - "pc": [ - 2163, - 2164, - 2165, - 2166, - 2167, - 2168 - ] - }, - { - "teal": 2087, - "source": 4, - "pc": [ - 2169, - 2170, - 2171, - 2172, - 2173, - 2174 - ] - }, - { - "teal": 2088, - "source": 4, - "pc": [ - 2175, - 2176, - 2177, - 2178, - 2179, - 2180 - ] - }, - { - "teal": 2089, - "source": 4, - "pc": [ - 2181, - 2182, - 2183, - 2184, - 2185, - 2186 - ] - }, - { - "teal": 2090, - "source": 4, - "pc": [ - 2187, - 2188, - 2189, - 2190, - 2191, - 2192 - ] - }, - { - "teal": 2091, - "source": 4, - "pc": [ - 2193, - 2194, - 2195, - 2196, - 2197, - 2198 - ] - }, - { - "teal": 2092, - "source": 4, - "pc": [ - 2199, - 2200, - 2201, - 2202, - 2203, - 2204 - ] - }, - { - "teal": 2093, - "source": 4, - "pc": [ - 2205, - 2206, - 2207, - 2208, - 2209, - 2210 - ] - }, - { - "teal": 2094, - "source": 4, - "pc": [ - 2211, - 2212, - 2213 - ] - }, - { - "teal": 2095, - "source": 4, - "pc": [ - 2214, - 2215, - 2216, - 2217, - 2218, - 2219, - 2220, - 2221, - 2222, - 2223, - 2224, - 2225, - 2226, - 2227, - 2228, - 2229, - 2230, - 2231, - 2232, - 2233, - 2234, - 2235, - 2236, - 2237, - 2238, - 2239, - 2240, - 2241, - 2242, - 2243, - 2244, - 2245, - 2246, - 2247, - 2248, - 2249, - 2250, - 2251, - 2252, - 2253, - 2254, - 2255, - 2256, - 2257, - 2258, - 2259, - 2260, - 2261, - 2262, - 2263, - 2264, - 2265, - 2266, - 2267, - 2268, - 2269, - 2270, - 2271, - 2272, - 2273, - 2274, - 2275, - 2276, - 2277, - 2278, - 2279, - 2280, - 2281, - 2282, - 2283, - 2284, - 2285, - 2286, - 2287, - 2288, - 2289, - 2290, - 2291, - 2292, - 2293, - 2294, - 2295, - 2296, - 2297 - ] - }, - { - "teal": 2098, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 2298 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 197 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 340 + ], + "errorMessage": "argument 0 (b) for u256plus must be a uint256" + }, + { + "pc": [ + 349 + ], + "errorMessage": "argument 1 (a) for u256plus must be a uint256" + }, + { + "pc": [ + 359 + ], + "errorMessage": "u256plus return value overflowed 256 bits" + }, + { + "pc": [ + 431 + ], + "errorMessage": "argument 0 (b) for u256minus must be a uint256" + }, + { + "pc": [ + 440 + ], + "errorMessage": "argument 1 (a) for u256minus must be a uint256" + }, + { + "pc": [ + 450 + ], + "errorMessage": "u256minus return value overflowed 256 bits" + }, + { + "pc": [ + 522 + ], + "errorMessage": "argument 0 (b) for u256mul must be a uint256" + }, + { + "pc": [ + 531 + ], + "errorMessage": "argument 1 (a) for u256mul must be a uint256" + }, + { + "pc": [ + 541 + ], + "errorMessage": "u256mul return value overflowed 256 bits" + }, + { + "pc": [ + 613 + ], + "errorMessage": "argument 0 (b) for u256div must be a uint256" + }, + { + "pc": [ + 622 + ], + "errorMessage": "argument 1 (a) for u256div must be a uint256" + }, + { + "pc": [ + 632 + ], + "errorMessage": "u256div return value overflowed 256 bits" + }, + { + "pc": [ + 713 + ], + "errorMessage": "u64Return256 return value overflowed 256 bits" + }, + { + "pc": [ + 848 + ], + "errorMessage": "argument 0 (y) for variableTypeHint must be a uint8" + }, + { + "pc": [ + 858 + ], + "errorMessage": "argument 1 (x) for variableTypeHint must be a uint8" + }, + { + "pc": [ + 869 + ], + "errorMessage": "variableTypeHint return value overflowed 16 bits" + }, + { + "pc": [ + 909 + ], + "errorMessage": "argument 0 (b) for uint8plus must be a uint8" + }, + { + "pc": [ + 919 + ], + "errorMessage": "argument 1 (a) for uint8plus must be a uint8" + }, + { + "pc": [ + 930 + ], + "errorMessage": "uint8plus return value overflowed 8 bits" + }, + { + "pc": [ + 962 + ], + "errorMessage": "argument 0 (b) for uint8exp must be a uint8" + }, + { + "pc": [ + 972 + ], + "errorMessage": "argument 1 (a) for uint8exp must be a uint8" + }, + { + "pc": [ + 983 + ], + "errorMessage": "uint8exp return value overflowed 8 bits" + }, + { + "pc": [ + 1121 + ], + "errorMessage": "boxTest return value overflowed 256 bits" + }, + { + "pc": [ + 1225 + ], + "errorMessage": "box value does not exist: this.boxKey.value" + }, + { + "pc": [ + 1275 + ], + "errorMessage": "this.boxKey.value overflowed 256 bits" + }, + { + "pc": [ + 1330 + ], + "errorMessage": "box value does not exist: this.boxKey.value" + }, + { + "pc": [ + 1352 + ], + "errorMessage": "argument 0 (b) for unsafeMethodArgs must be a uint256" + }, + { + "pc": [ + 1361 + ], + "errorMessage": "argument 1 (a) for unsafeMethodArgs must be a uint256" + }, + { + "pc": [ + 1371 + ], + "errorMessage": "unsafeMethodArgs return value overflowed 256 bits" + }, + { + "pc": [ + 1440 + ], + "errorMessage": "c overflowed 256 bits" + }, + { + "pc": [ + 1498 + ], + "errorMessage": "argument 0 (b) for uint256ComparisonType must be a uint256" + }, + { + "pc": [ + 1507 + ], + "errorMessage": "argument 1 (a) for uint256ComparisonType must be a uint256" + }, + { + "pc": [ + 1601 + ], + "errorMessage": "argument 0 (b) for squareRoot256 must be a uint256" + }, + { + "pc": [ + 1610 + ], + "errorMessage": "argument 1 (a) for squareRoot256 must be a uint256" + }, + { + "pc": [ + 1620 + ], + "errorMessage": "squareRoot256 return value overflowed 256 bits" + }, + { + "pc": [ + 1726 + ], + "errorMessage": "argument 0 (addr) for addressToBigInt must be a address" + }, + { + "pc": [ + 1799 + ], + "errorMessage": "argument 0 (x) for funcName must be a uint256" + }, + { + "pc": [ + 1819 + ], + "errorMessage": "x overflowed 8 bits" + }, + { + "pc": [ + 1877 + ], + "errorMessage": "(btobigint(x) + btobigint(y)) as uint64 overflowed 64 bits" + }, + { + "pc": [ + 2013 + ], + "errorMessage": "argument 0 (b) for bitwiseOrU256 must be a uint256" + }, + { + "pc": [ + 2022 + ], + "errorMessage": "argument 1 (a) for bitwiseOrU256 must be a uint256" + }, + { + "pc": [ + 2032 + ], + "errorMessage": "bitwiseOrU256 return value overflowed 256 bits" + }, + { + "pc": [ + 2104 + ], + "errorMessage": "argument 0 (b) for bitwiseAndU256 must be a uint256" + }, + { + "pc": [ + 2113 + ], + "errorMessage": "argument 1 (a) for bitwiseAndU256 must be a uint256" + }, + { + "pc": [ + 2123 + ], + "errorMessage": "bitwiseAndU256 return value overflowed 256 bits" + }, + { + "pc": [ + 2195 + ], + "errorMessage": "argument 0 (b) for bitwiseXorU256 must be a uint256" + }, + { + "pc": [ + 2204 + ], + "errorMessage": "argument 1 (a) for bitwiseXorU256 must be a uint256" + }, + { + "pc": [ + 2214 + ], + "errorMessage": "bitwiseXorU256 return value overflowed 256 bits" + }, + { + "pc": [ + 2312 + ], + "errorMessage": "argument 0 (a) for bitwiseNotU256 must be a uint256" + }, + { + "pc": [ + 2322 + ], + "errorMessage": "bitwiseNotU256 return value overflowed 256 bits" + }, + { + "pc": [ + 2741 + ], + "errorMessage": "A as uint64 overflowed 64 bits" + }, + { + "pc": [ + 2785 + ], + "errorMessage": "argument 0 (x) for foobar must be a uint128" + }, + { + "pc": [ + 2795 + ], + "errorMessage": "foobar return value overflowed 128 bits" + }, + { + "pc": [ + 2860 + ], + "errorMessage": "x / (30000 as uint128) overflowed 128 bits" + }, + { + "pc": [ + 2910 + ], + "errorMessage": "uintFromHex return value overflowed 256 bits" + }, + { + "pc": [ + 3013 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 3347 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfdTY0cGx1czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NHBsdXMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRwbHVzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NHBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjgKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCXJldHN1YgoKLy8gdTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRtaW51czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiB1NjRtaW51cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG1pbnVzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NG1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMgoJLy8gcmV0dXJuIGEgLSBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLQoJcmV0c3ViCgovLyB1NjRtdWwodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRtdWw6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NG11bAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NG11bChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAp1NjRtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2CgkvLyByZXR1cm4gYSAqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkqCglyZXRzdWIKCi8vIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NGRpdjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRkaXYodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0ZGl2CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0ZGl2KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NGRpdjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjAKCS8vIHJldHVybiBhIC8gYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCS8KCXJldHN1YgoKLy8gdTI1NnBsdXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2cGx1czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1NnBsdXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHUyNTZwbHVzIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHUyNTZwbHVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZwbHVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1MjU2cGx1cyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHUyNTZwbHVzKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZwbHVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyNAoJLy8gcmV0dXJuIDx1aW50MjU2PihhICsgYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIrCglyZXRzdWIKCi8vIHUyNTZtaW51cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZtaW51czoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1Nm1pbnVzIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciB1MjU2bWludXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZtaW51cwoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdTI1Nm1pbnVzIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1Nm1pbnVzKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZtaW51czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjgKCS8vIHJldHVybiA8dWludDI1Nj4oYSAtIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJcmV0c3ViCgovLyB1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdTI1Nm11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1Nm11bCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdTI1Nm11bCBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZtdWwKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHUyNTZtdWwgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bXVsKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZtdWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjMyCgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKiBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYioKCXJldHN1YgoKLy8gdTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZkaXY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHUyNTZkaXYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHUyNTZkaXYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1NmRpdih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1MjU2ZGl2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1MjU2ZGl2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1NmRpdihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1Ngp1MjU2ZGl2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czozNgoJLy8gcmV0dXJuIDx1aW50MjU2PihhIC8gYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIvCglyZXRzdWIKCi8vIHU2NFJldHVybjI1Nih1aW50NjQsdWludDY0KXVpbnQyNTYKKmFiaV9yb3V0ZV91NjRSZXR1cm4yNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgdTY0UmV0dXJuMjU2KHVpbnQ2NCx1aW50NjQpdWludDI1NgoJY2FsbHN1YiB1NjRSZXR1cm4yNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHU2NFJldHVybjI1NiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NFJldHVybjI1NihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQyNTYKdTY0UmV0dXJuMjU2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0MAoJLy8gcmV0dXJuIDx1aW50MjU2PihhICsgYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglpdG9iCglyZXRzdWIKCi8vIG1heFU2NCgpdWludDY0CiphYmlfcm91dGVfbWF4VTY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIG1heFU2NCgpdWludDY0CgljYWxsc3ViIG1heFU2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG1heFU2NCgpOiB1aW50NjQKbWF4VTY0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0NAoJLy8gcmV0dXJuIFVpbnQ8NjQ+KCcxODQ0Njc0NDA3MzcwOTU1MTYxNScpOwoJaW50IDE4NDQ2NzQ0MDczNzA5NTUxNjE1CglyZXRzdWIKCi8vIGV4cG9uZW50KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZXhwb25lbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZXhwb25lbnQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBleHBvbmVudChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApleHBvbmVudDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NDgKCS8vIHJldHVybiBhICoqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglleHAKCXJldHN1YgoKLy8gdmFyaWFibGVUeXBlSGludCh1aW50OCx1aW50OCl1aW50MTYKKmFiaV9yb3V0ZV92YXJpYWJsZVR5cGVIaW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB5OiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHkpIGZvciB2YXJpYWJsZVR5cGVIaW50IG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8geDogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxICh4KSBmb3IgdmFyaWFibGVUeXBlSGludCBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdmFyaWFibGVUeXBlSGludCh1aW50OCx1aW50OCl1aW50MTYKCWNhbGxzdWIgdmFyaWFibGVUeXBlSGludAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyB2YXJpYWJsZVR5cGVIaW50IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB2YXJpYWJsZVR5cGVIaW50KHg6IHVpbnQ8OD4sIHk6IHVpbnQ8OD4pOiB1aW50MTYKdmFyaWFibGVUeXBlSGludDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo1MgoJLy8geiA9IDx1aW50MTY+KHggKyB5KQoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50PDg+CgkrCglmcmFtZV9idXJ5IDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTQKCS8vIHJldHVybiB6OwoJZnJhbWVfZGlnIDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyB1aW50OHBsdXModWludDgsdWludDgpdWludDgKKmFiaV9yb3V0ZV91aW50OHBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4cGx1cwoJaXRvYgoJZHVwCgliaXRsZW4KCWludCA4Cgk8PQoKCS8vIHVpbnQ4cGx1cyByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50OHBsdXMoYTogdWludDw4PiwgYjogdWludDw4Pik6IHVpbnQ8OD4KdWludDhwbHVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo1OAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50PDg+CgkrCglyZXRzdWIKCi8vIHVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4CiphYmlfcm91dGVfdWludDhleHA6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQ4ZXhwIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gYTogdWludDgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdWludDhleHAgbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyBleGVjdXRlIHVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4ZXhwCglpdG9iCglkdXAKCWJpdGxlbgoJaW50IDgKCTw9CgoJLy8gdWludDhleHAgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDhleHAoYTogdWludDw4PiwgYjogdWludDw4Pik6IHVpbnQ8OD4KdWludDhleHA6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjYyCgkvLyByZXR1cm4gYSAqKiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50PDg+CglleHAKCXJldHN1YgoKLy8gcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3BsdXNFcXVhbHM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgcGx1c0VxdWFscyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFscyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApwbHVzRXF1YWxzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjY2CgkvLyB4ID0gYQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjgKCS8vIHggKz0gYgoJZnJhbWVfZGlnIDAgLy8geDogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkrCglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3MAoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9wbHVzRXF1YWxzRnJvbUdsb2JhbDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBwbHVzRXF1YWxzRnJvbUdsb2JhbAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHBsdXNFcXVhbHNGcm9tR2xvYmFsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnBsdXNFcXVhbHNGcm9tR2xvYmFsOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3NAoJLy8gdGhpcy5nS2V5LnZhbHVlID0gYQoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc2CgkvLyB0aGlzLmdLZXkudmFsdWUgKz0gYgoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo3OAoJLy8gcmV0dXJuIHRoaXMuZ0tleS52YWx1ZTsKCWJ5dGUgMHg2NzRiNjU3OSAvLyAiZ0tleSIKCWFwcF9nbG9iYWxfZ2V0CglyZXRzdWIKCi8vIGJveFRlc3QoKXVpbnQyNTYKKmFiaV9yb3V0ZV9ib3hUZXN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveFRlc3QoKXVpbnQyNTYKCWNhbGxzdWIgYm94VGVzdAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYm94VGVzdCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveFRlc3QoKTogdWludDI1Ngpib3hUZXN0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NAoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSA8dWludDI1Nj4xCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODUKCS8vIHRoaXMuYm94S2V5LnZhbHVlICs9IDEKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94S2V5LnZhbHVlCglhc3NlcnQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCgliKwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdGhpcy5ib3hLZXkudmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJc3dhcAoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6ODcKCS8vIHJldHVybiB0aGlzLmJveEtleS52YWx1ZTsKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94S2V5LnZhbHVlCglhc3NlcnQKCXJldHN1YgoKLy8gZm9vKHg6IHVpbnQyNTYpOiB1aW50MjU2CmZvbzoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTEKCS8vIHJldHVybiB4OwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCXJldHN1YgoKLy8gdW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3Vuc2FmZU1ldGhvZEFyZ3M6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVuc2FmZU1ldGhvZEFyZ3MgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVuc2FmZU1ldGhvZEFyZ3MgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiB1bnNhZmVNZXRob2RBcmdzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1bnNhZmVNZXRob2RBcmdzIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdW5zYWZlTWV0aG9kQXJncyhhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1Ngp1bnNhZmVNZXRob2RBcmdzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjk1CgkvLyBjID0gYSArIGIKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCWZyYW1lX2J1cnkgMCAvLyBjOiB1bnNhZmUgdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTcKCS8vIHJldHVybiB0aGlzLmZvbyhjKTsKCWZyYW1lX2RpZyAwIC8vIGM6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBjIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNhbGxzdWIgZm9vCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnQyNTZDb21wYXJpc29uVHlwZSh1aW50MjU2LHVpbnQyNTYpdm9pZAoqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJpc29uVHlwZToKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQyNTZDb21wYXJpc29uVHlwZSBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdWludDI1NkNvbXBhcmlzb25UeXBlIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVpbnQyNTZDb21wYXJpc29uVHlwZSh1aW50MjU2LHVpbnQyNTYpdm9pZAoJY2FsbHN1YiB1aW50MjU2Q29tcGFyaXNvblR5cGUKCWludCAxCglyZXR1cm4KCi8vIHVpbnQyNTZDb21wYXJpc29uVHlwZShhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdm9pZAp1aW50MjU2Q29tcGFyaXNvblR5cGU6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTAxCgkvLyBzZW5kZXJCYWxhbmNlQWZ0ZXIgPSBhIC0gYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliLQoJZnJhbWVfYnVyeSAwIC8vIHNlbmRlckJhbGFuY2VBZnRlcjogdW5zYWZlIHVpbnQyNTYKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDIKCS8vIHNlbmRlckJhbGFuY2VBZnRlciA+IDx1aW50MjU2PjAKCWZyYW1lX2RpZyAwIC8vIHNlbmRlckJhbGFuY2VBZnRlcjogdW5zYWZlIHVpbnQyNTYKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgliPgoJYnogKmlmMF9lbHNlCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwMwoJLy8gbG9nKCdub25aZXJvJykKCWJ5dGUgMHg2ZTZmNmU1YTY1NzI2ZiAvLyAibm9uWmVybyIKCWxvZwoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDUKCS8vIGxvZygnemVybycpCglieXRlIDB4N2E2NTcyNmYgLy8gInplcm8iCglsb2cKCippZjBfZW5kOgoJcmV0c3ViCgovLyBzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfc3F1YXJlUm9vdDI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3Igc3F1YXJlUm9vdDI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3Igc3F1YXJlUm9vdDI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHNxdWFyZVJvb3QyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHNxdWFyZVJvb3QyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcXVhcmVSb290MjU2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnNxdWFyZVJvb3QyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExMAoJLy8gcmV0dXJuIHNxcnQoYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKgoJYnNxcnQKCXJldHN1YgoKLy8gc3F1YXJlUm9vdDY0KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfc3F1YXJlUm9vdDY0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHNxdWFyZVJvb3Q2NCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBzcXVhcmVSb290NjQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBzcXVhcmVSb290NjQoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKc3F1YXJlUm9vdDY0OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMTQKCS8vIHJldHVybiBzcXJ0KGEgKiBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSoKCXNxcnQKCXJldHN1YgoKLy8gYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbAoqYWJpX3JvdXRlX2FkZHJlc3NUb0JpZ0ludDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYWRkcjogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhZGRyKSBmb3IgYWRkcmVzc1RvQmlnSW50IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGFkZHJlc3NUb0JpZ0ludChhZGRyZXNzKWJvb2wKCWNhbGxzdWIgYWRkcmVzc1RvQmlnSW50CglieXRlIDB4MDAKCWludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZHJlc3NUb0JpZ0ludChhZGRyOiBBZGRyZXNzKTogYm9vbGVhbgphZGRyZXNzVG9CaWdJbnQ6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExOAoJLy8gcmV0dXJuIGJ0b2JpZ2ludChhZGRyKSA+IGJ0b2JpZ2ludCh0aGlzLnR4bi5zZW5kZXIpOwoJZnJhbWVfZGlnIC0xIC8vIGFkZHI6IEFkZHJlc3MKCXR4biBTZW5kZXIKCWI+CglyZXRzdWIKCi8vIHU4VG91NjQoKXVpbnQ2NAoqYWJpX3JvdXRlX3U4VG91NjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdThUb3U2NCgpdWludDY0CgljYWxsc3ViIHU4VG91NjQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1OFRvdTY0KCk6IHVpbnQ2NAp1OFRvdTY0OgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEyMgoJLy8geDogdWludDggPSA3CglpbnQgNwoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjMKCS8vIHJldHVybiA8dWludDY0Png7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBwcml2YXRlRnVuY05hbWUoeDogdWludDgsIHk6IHVpbnQ2NCk6IHZvaWQKcHJpdmF0ZUZ1bmNOYW1lOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjcKCS8vIGFzc2VydCg8dWludDg+eSA+IHgpCglmcmFtZV9kaWcgLTIgLy8geTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8geDogdWludDgKCT4KCWFzc2VydAoJcmV0c3ViCgovLyBmdW5jTmFtZSh1aW50MjU2KXZvaWQKKmFiaV9yb3V0ZV9mdW5jTmFtZToKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoeCkgZm9yIGZ1bmNOYW1lIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGZ1bmNOYW1lKHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBmdW5jTmFtZQoJaW50IDEKCXJldHVybgoKLy8gZnVuY05hbWUoeDogdWludDI1Nik6IHZvaWQKZnVuY05hbWU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzMQoJLy8gdGhpcy5wcml2YXRlRnVuY05hbWUoPHVpbnQ4PngsIDEzMzcpCglpbnQgMTMzNwoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgOAoJPD0KCgkvLyA8dWludDg+eCBvdmVyZmxvd2VkIDggYml0cwoJYXNzZXJ0CglleHRyYWN0IDMxIDEKCWJ0b2kKCWNhbGxzdWIgcHJpdmF0ZUZ1bmNOYW1lCglyZXRzdWIKCi8vIGJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaWdpbnRQbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYmlnaW50UGx1cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpZ2ludFBsdXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYmlnaW50UGx1czoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNQoJLy8geCA9IGl0b2IoYSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMCAvLyB4OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNgoJLy8geSA9IGl0b2IoYikKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWl0b2IKCWZyYW1lX2J1cnkgMSAvLyB5OiBieXRlW10KCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzNwoJLy8gcmV0dXJuIChidG9iaWdpbnQoeCkgKyBidG9iaWdpbnQoeSkpIGFzIHVpbnQ2NDsKCWZyYW1lX2RpZyAwIC8vIHg6IGJ5dGVbXQoJZnJhbWVfZGlnIDEgLy8geTogYnl0ZVtdCgliKwoJZHVwCgliaXRsZW4KCWludCA2NAoJPD0KCgkvLyAoYnRvYmlnaW50KHgpICsgYnRvYmlnaW50KHkpKSBhcyB1aW50NjQgb3ZlcmZsb3dlZCA2NCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWJ0b2kKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGJpdHdpc2VPcih1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpdHdpc2VPcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZU9yCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VPcjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQxCgkvLyByZXR1cm4gYSB8IGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0Cgl8CglyZXRzdWIKCi8vIGJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlQW5kOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZUFuZAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VBbmQoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZUFuZDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQ1CgkvLyByZXR1cm4gYSAmIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgkmCglyZXRzdWIKCi8vIGJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlWG9yOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYml0d2lzZVhvcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VYb3IoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZVhvcjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTQ5CgkvLyByZXR1cm4gYSBeIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgleCglyZXRzdWIKCi8vIGJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9iaXR3aXNlT3JVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBiaXR3aXNlT3JVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBiaXR3aXNlT3JVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZU9yVTI1NiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VPclUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZU9yVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTUzCgkvLyByZXR1cm4gYSB8IGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWJ8CglyZXRzdWIKCi8vIGJpdHdpc2VBbmRVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZUFuZFUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIGJpdHdpc2VBbmRVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBiaXR3aXNlQW5kVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlQW5kVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlQW5kVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZUFuZFUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlQW5kVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlQW5kVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTU3CgkvLyByZXR1cm4gYSAmIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWImCglyZXRzdWIKCi8vIGJpdHdpc2VYb3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZVhvclUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIGJpdHdpc2VYb3JVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBiaXR3aXNlWG9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlWG9yVTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZVhvclUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlWG9yVTI1NihhOiB1aW50MjU2LCBiOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlWG9yVTI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTYxCgkvLyByZXR1cm4gYSBeIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWJeCglyZXRzdWIKCi8vIGJpdHdpc2VOb3QodWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpdHdpc2VOb3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZU5vdCh1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VOb3QKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlTm90KGE6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlTm90OgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxNjUKCS8vIHJldHVybiB+YTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCX4KCXJldHN1YgoKLy8gYml0d2lzZU5vdFUyNTYodWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZU5vdFUyNTY6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGJpdHdpc2VOb3RVMjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgoJY2FsbHN1YiBiaXR3aXNlTm90VTI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gYml0d2lzZU5vdFUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlTm90VTI1NihhOiB1aW50MjU2KTogdWludDI1NgpiaXR3aXNlTm90VTI1NjoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTY5CgkvLyByZXR1cm4gfmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJYn4KCXJldHN1YgoKLy8gbXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX211bHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgbXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBtdWx3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbXVsdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAptdWx3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTczCgkvLyBwID0gbXVsdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfYnVyeSAwIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTc3CgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDAgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2FkZHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBhZGR3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NAphZGR3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTgxCgkvLyBwID0gYWRkdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJYWRkdwoJZnJhbWVfYnVyeSAwIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTg1CgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDAgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZXhwdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2V4cHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZXhwdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBleHB3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZXhwdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApleHB3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTg5CgkvLyBwID0gZXhwdyhhLCBiKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZXhwdwoJZnJhbWVfYnVyeSAwIC8vIHAgbG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIGhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTkzCgkvLyByZXR1cm4gcDIubG93OwoJZnJhbWVfZGlnIDAgLy8gcCBsb3c6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoKCS8vIHBvcCBhbGwgbG9jYWwgdmFyaWFibGVzIGZyb20gdGhlIHN0YWNrCglwb3BuIDEKCXJldHN1YgoKLy8gZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2Rpdnc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBkaXZ3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGl2dyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApkaXZ3OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxOTcKCS8vIHJldHVybiBkaXZ3KDAsIGEsIGIpOwoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWRpdncKCXJldHN1YgoKLy8gZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2Rpdm1vZHc6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBkaXZtb2R3CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gZGl2bW9kdyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApkaXZtb2R3OgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjAxCgkvLyBwID0gZGl2bW9kdygwLCBhLCAwLCBiKQoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CglkaXZtb2R3CglmcmFtZV9idXJ5IDAgLy8gcCByZW1haW5kZXJMb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAxIC8vIHAgcmVtYWluZGVySGlnaDogdWludDY0CglmcmFtZV9idXJ5IDIgLy8gcCBxdW90aWVudExvdzogdWludDY0CglmcmFtZV9idXJ5IDMgLy8gcCBxdW90aWVudEhpZ2g6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjA1CgkvLyByZXR1cm4gcDIucXVvdGllbnRMb3c7CglmcmFtZV9kaWcgMiAvLyBwIHF1b3RpZW50TG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAzCglyZXRzdWIKCi8vIHVuc2FmZVZhcmlhYmxlcygpdWludDY0CiphYmlfcm91dGVfdW5zYWZlVmFyaWFibGVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIHVuc2FmZVZhcmlhYmxlcygpdWludDY0CgljYWxsc3ViIHVuc2FmZVZhcmlhYmxlcwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHVuc2FmZVZhcmlhYmxlcygpOiB1aW50NjQKdW5zYWZlVmFyaWFibGVzOgoJcHJvdG8gMCAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cG4gMgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjA5CgkvLyBBID0gPHVpbnQyNTY+MjUwMDAwMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZWU2YjI4MAoJZnJhbWVfYnVyeSAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTAKCS8vIEIgPSA8dWludDI1Nj4xMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNlOAoJZnJhbWVfYnVyeSAxIC8vIEI6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxMgoJLy8gQSA9IEEgLyBCCglmcmFtZV9kaWcgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZTggLy8gQjogdWludDI1NgoJYi8KCWZyYW1lX2J1cnkgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjE0CgkvLyBjID0gQSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJaW50IDY0Cgk8PQoKCS8vIEEgYXMgdWludDY0IG92ZXJmbG93ZWQgNjQgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCglmcmFtZV9idXJ5IDIgLy8gYzogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTYKCS8vIHJldHVybiBjOwoJZnJhbWVfZGlnIDIgLy8gYzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMgoJcmV0c3ViCgovLyBmb29iYXIodWludDEyOCl1aW50MTI4CiphYmlfcm91dGVfZm9vYmFyOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyB4OiB1aW50MTI4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDE2Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBmb29iYXIgbXVzdCBiZSBhIHVpbnQxMjgKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vYmFyKHVpbnQxMjgpdWludDEyOAoJY2FsbHN1YiBmb29iYXIKCWR1cAoJYml0bGVuCglpbnQgMTI4Cgk8PQoKCS8vIGZvb2JhciByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAxMjggYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMTYKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBmb29iYXIoeDogdWludDEyOCk6IHVpbnQxMjgKZm9vYmFyOgoJcHJvdG8gMSAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIyMAoJLy8gYXZnU3Rha2U6IHVpbnQxMjggPSB4IC8gKDMwMDAwIGFzIHVpbnQxMjgpCglmcmFtZV9kaWcgLTEgLy8geDogdWludDEyOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NTMwCgliLwoJZHVwCgliaXRsZW4KCWludCAxMjgKCTw9CgoJLy8geCAvICgzMDAwMCBhcyB1aW50MTI4KSBvdmVyZmxvd2VkIDEyOCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjIKCS8vIHJldHVybiBhdmdTdGFrZTsKCWZyYW1lX2RpZyAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnRGcm9tSGV4KCl1aW50MjU2CiphYmlfcm91dGVfdWludEZyb21IZXg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWludEZyb21IZXgoKXVpbnQyNTYKCWNhbGxzdWIgdWludEZyb21IZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHVpbnRGcm9tSGV4IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludEZyb21IZXgoKTogdWludDI1Ngp1aW50RnJvbUhleDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjI2CgkvLyByZXR1cm4gVWludDwyNTY+KCcweEZGJyk7CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmZgoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAidTY0cGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTY0bWludXModWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInU2NG11bCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAidTY0ZGl2KHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJ1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1MjU2bXVsKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJ1NjRSZXR1cm4yNTYodWludDY0LHVpbnQ2NCl1aW50MjU2IgoJbWV0aG9kICJtYXhVNjQoKXVpbnQ2NCIKCW1ldGhvZCAiZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInZhcmlhYmxlVHlwZUhpbnQodWludDgsdWludDgpdWludDE2IgoJbWV0aG9kICJ1aW50OHBsdXModWludDgsdWludDgpdWludDgiCgltZXRob2QgInVpbnQ4ZXhwKHVpbnQ4LHVpbnQ4KXVpbnQ4IgoJbWV0aG9kICJwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCW1ldGhvZCAiYm94VGVzdCgpdWludDI1NiIKCW1ldGhvZCAidW5zYWZlTWV0aG9kQXJncyh1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAidWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkIgoJbWV0aG9kICJzcXVhcmVSb290MjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImFkZHJlc3NUb0JpZ0ludChhZGRyZXNzKWJvb2wiCgltZXRob2QgInU4VG91NjQoKXVpbnQ2NCIKCW1ldGhvZCAiZnVuY05hbWUodWludDI1Nil2b2lkIgoJbWV0aG9kICJiaWdpbnRQbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VBbmQodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VYb3IodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImJpdHdpc2VPclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgImJpdHdpc2VBbmRVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJbWV0aG9kICJiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCW1ldGhvZCAiYml0d2lzZU5vdCh1aW50NjQpdWludDY0IgoJbWV0aG9kICJiaXR3aXNlTm90VTI1Nih1aW50MjU2KXVpbnQyNTYiCgltZXRob2QgIm11bHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRpdncodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgImRpdm1vZHcodWludDY0LHVpbnQ2NCl1aW50NjQiCgltZXRob2QgInVuc2FmZVZhcmlhYmxlcygpdWludDY0IgoJbWV0aG9kICJmb29iYXIodWludDEyOCl1aW50MTI4IgoJbWV0aG9kICJ1aW50RnJvbUhleCgpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdTY0cGx1cyAqYWJpX3JvdXRlX3U2NG1pbnVzICphYmlfcm91dGVfdTY0bXVsICphYmlfcm91dGVfdTY0ZGl2ICphYmlfcm91dGVfdTI1NnBsdXMgKmFiaV9yb3V0ZV91MjU2bWludXMgKmFiaV9yb3V0ZV91MjU2bXVsICphYmlfcm91dGVfdTI1NmRpdiAqYWJpX3JvdXRlX3U2NFJldHVybjI1NiAqYWJpX3JvdXRlX21heFU2NCAqYWJpX3JvdXRlX2V4cG9uZW50ICphYmlfcm91dGVfdmFyaWFibGVUeXBlSGludCAqYWJpX3JvdXRlX3VpbnQ4cGx1cyAqYWJpX3JvdXRlX3VpbnQ4ZXhwICphYmlfcm91dGVfcGx1c0VxdWFscyAqYWJpX3JvdXRlX3BsdXNFcXVhbHNGcm9tR2xvYmFsICphYmlfcm91dGVfYm94VGVzdCAqYWJpX3JvdXRlX3Vuc2FmZU1ldGhvZEFyZ3MgKmFiaV9yb3V0ZV91aW50MjU2Q29tcGFyaXNvblR5cGUgKmFiaV9yb3V0ZV9zcXVhcmVSb290MjU2ICphYmlfcm91dGVfc3F1YXJlUm9vdDY0ICphYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50ICphYmlfcm91dGVfdThUb3U2NCAqYWJpX3JvdXRlX2Z1bmNOYW1lICphYmlfcm91dGVfYmlnaW50UGx1cyAqYWJpX3JvdXRlX2JpdHdpc2VPciAqYWJpX3JvdXRlX2JpdHdpc2VBbmQgKmFiaV9yb3V0ZV9iaXR3aXNlWG9yICphYmlfcm91dGVfYml0d2lzZU9yVTI1NiAqYWJpX3JvdXRlX2JpdHdpc2VBbmRVMjU2ICphYmlfcm91dGVfYml0d2lzZVhvclUyNTYgKmFiaV9yb3V0ZV9iaXR3aXNlTm90ICphYmlfcm91dGVfYml0d2lzZU5vdFUyNTYgKmFiaV9yb3V0ZV9tdWx3ICphYmlfcm91dGVfYWRkdyAqYWJpX3JvdXRlX2V4cHcgKmFiaV9yb3V0ZV9kaXZ3ICphYmlfcm91dGVfZGl2bW9kdyAqYWJpX3JvdXRlX3Vuc2FmZVZhcmlhYmxlcyAqYWJpX3JvdXRlX2Zvb2JhciAqYWJpX3JvdXRlX3VpbnRGcm9tSGV4CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDMyIDI1NiAxODQ0Njc0NDA3MzcwOTU1MTYxNQpieXRlY2Jsb2NrIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAweDE1MWY3Yzc1IDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZTggMHg2MjZmNzg0YjY1NzkgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiAweCAweDY3NGI2NTc5IDB4RkZGRkZGRkZGRkZGRkZGRgoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHU2NHBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV91NjRwbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NHBsdXModWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0cGx1cwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU2NHBsdXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OAoJLy8gcmV0dXJuIGEgKyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJcmV0c3ViCgovLyB1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NG1pbnVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NG1pbnVzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHU2NG1pbnVzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0bWludXMoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0bWludXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEyCgkvLyByZXR1cm4gYSAtIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDY0CgktCglyZXRzdWIKCi8vIHU2NG11bCh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3U2NG11bDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRtdWwodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgdTY0bXVsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0bXVsKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnU2NG11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTYKCS8vIHJldHVybiBhICogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSoKCXJldHN1YgoKLy8gdTY0ZGl2KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfdTY0ZGl2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHU2NGRpdih1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiB1NjRkaXYKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1NjRkaXYoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKdTY0ZGl2OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMAoJLy8gcmV0dXJuIGEgLyBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJLwoJcmV0c3ViCgovLyB1MjU2cGx1cyh1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX3UyNTZwbHVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1MjU2cGx1cyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdTI1NnBsdXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdTI1NnBsdXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1NnBsdXMKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHUyNTZwbHVzIHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTI1NnBsdXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1NnBsdXM6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjI0CgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYisKCXJldHN1YgoKLy8gdTI1Nm1pbnVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdTI1Nm1pbnVzOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1MjU2bWludXMgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGE6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHUyNTZtaW51cyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1Nm1pbnVzCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB1MjU2bWludXMgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2bWludXMoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm1pbnVzOgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyOAoJLy8gcmV0dXJuIDx1aW50MjU2PihhIC0gYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglyZXRzdWIKCi8vIHUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV91MjU2bXVsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1MjU2bXVsIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciB1MjU2bXVsIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgdTI1Nm11bAoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdTI1Nm11bCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHUyNTZtdWwoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKdTI1Nm11bDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MzIKCS8vIHJldHVybiA8dWludDI1Nj4oYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKgoJcmV0c3ViCgovLyB1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdTI1NmRpdjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdTI1NmRpdiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdTI1NmRpdiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1MjU2ZGl2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHUyNTZkaXYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHUyNTZkaXYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1MjU2ZGl2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnUyNTZkaXY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjM2CgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgLyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50MjU2CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDI1NgoJYi8KCXJldHN1YgoKLy8gdTY0UmV0dXJuMjU2KHVpbnQ2NCx1aW50NjQpdWludDI1NgoqYWJpX3JvdXRlX3U2NFJldHVybjI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSB1NjRSZXR1cm4yNTYodWludDY0LHVpbnQ2NCl1aW50MjU2CgljYWxsc3ViIHU2NFJldHVybjI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gdTY0UmV0dXJuMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdTY0UmV0dXJuMjU2KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDI1Ngp1NjRSZXR1cm4yNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjQwCgkvLyByZXR1cm4gPHVpbnQyNTY+KGEgKyBiKTsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCWl0b2IKCXJldHN1YgoKLy8gbWF4VTY0KCl1aW50NjQKKmFiaV9yb3V0ZV9tYXhVNjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgbWF4VTY0KCl1aW50NjQKCWNhbGxzdWIgbWF4VTY0CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gbWF4VTY0KCk6IHVpbnQ2NAptYXhVNjQ6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjQ0CgkvLyByZXR1cm4gVWludDw2ND4oJzE4NDQ2NzQ0MDczNzA5NTUxNjE1Jyk7CglpbnQgMTg0NDY3NDQwNzM3MDk1NTE2MTUKCXJldHN1YgoKLy8gZXhwb25lbnQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9leHBvbmVudDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBleHBvbmVudCh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBleHBvbmVudAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4cG9uZW50KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmV4cG9uZW50OgoJcHJvdG8gMiAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo0OAoJLy8gcmV0dXJuIGEgKiogYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWV4cAoJcmV0c3ViCgovLyB2YXJpYWJsZVR5cGVIaW50KHVpbnQ4LHVpbnQ4KXVpbnQxNgoqYWJpX3JvdXRlX3ZhcmlhYmxlVHlwZUhpbnQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHk6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoeSkgZm9yIHZhcmlhYmxlVHlwZUhpbnQgbXVzdCBiZSBhIHVpbnQ4Cglhc3NlcnQKCWJ0b2kKCgkvLyB4OiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDEgKHgpIGZvciB2YXJpYWJsZVR5cGVIaW50IG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB2YXJpYWJsZVR5cGVIaW50KHVpbnQ4LHVpbnQ4KXVpbnQxNgoJY2FsbHN1YiB2YXJpYWJsZVR5cGVIaW50CglpdG9iCglkdXAKCWJpdGxlbgoJcHVzaGludCAxNgoJPD0KCgkvLyB2YXJpYWJsZVR5cGVIaW50IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB2YXJpYWJsZVR5cGVIaW50KHg6IHVpbnQ8OD4sIHk6IHVpbnQ8OD4pOiB1aW50MTYKdmFyaWFibGVUeXBlSGludDoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo1MgoJLy8geiA9IDx1aW50MTY+KHggKyB5KQoJZnJhbWVfZGlnIC0xIC8vIHg6IHVpbnQ8OD4KCWZyYW1lX2RpZyAtMiAvLyB5OiB1aW50PDg+CgkrCglmcmFtZV9idXJ5IDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTQKCS8vIHJldHVybiB6OwoJZnJhbWVfZGlnIDAgLy8gejogdW5zYWZlIHVpbnQxNgoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyB1aW50OHBsdXModWludDgsdWludDgpdWludDgKKmFiaV9yb3V0ZV91aW50OHBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMCAoYikgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQ4cGx1cyBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGV4ZWN1dGUgdWludDhwbHVzKHVpbnQ4LHVpbnQ4KXVpbnQ4CgljYWxsc3ViIHVpbnQ4cGx1cwoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyB1aW50OHBsdXMgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgNyAxCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludDhwbHVzKGE6IHVpbnQ8OD4sIGI6IHVpbnQ8OD4pOiB1aW50PDg+CnVpbnQ4cGx1czoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NTgKCS8vIHJldHVybiBhICsgYjsKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50PDg+CglmcmFtZV9kaWcgLTIgLy8gYjogdWludDw4PgoJKwoJcmV0c3ViCgovLyB1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OAoqYWJpX3JvdXRlX3VpbnQ4ZXhwOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50OAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAxCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciB1aW50OGV4cCBtdXN0IGJlIGEgdWludDgKCWFzc2VydAoJYnRvaQoKCS8vIGE6IHVpbnQ4Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDEKCT09CgoJLy8gYXJndW1lbnQgMSAoYSkgZm9yIHVpbnQ4ZXhwIG11c3QgYmUgYSB1aW50OAoJYXNzZXJ0CglidG9pCgoJLy8gZXhlY3V0ZSB1aW50OGV4cCh1aW50OCx1aW50OCl1aW50OAoJY2FsbHN1YiB1aW50OGV4cAoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgOAoJPD0KCgkvLyB1aW50OGV4cCByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCA4IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA3IDEKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1aW50OGV4cChhOiB1aW50PDg+LCBiOiB1aW50PDg+KTogdWludDw4Pgp1aW50OGV4cDoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjIKCS8vIHJldHVybiBhICoqIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDw4PgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ8OD4KCWV4cAoJcmV0c3ViCgovLyBwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfcGx1c0VxdWFsczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBwbHVzRXF1YWxzKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHBsdXNFcXVhbHMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBwbHVzRXF1YWxzKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CnBsdXNFcXVhbHM6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NjYKCS8vIHggPSBhCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglmcmFtZV9idXJ5IDAgLy8geDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo2OAoJLy8geCArPSBiCglmcmFtZV9kaWcgMCAvLyB4OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCSsKCWZyYW1lX2J1cnkgMCAvLyB4OiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjcwCgkvLyByZXR1cm4geDsKCWZyYW1lX2RpZyAwIC8vIHg6IHVpbnQ2NAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBwbHVzRXF1YWxzRnJvbUdsb2JhbCh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX3BsdXNFcXVhbHNGcm9tR2xvYmFsOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIHBsdXNFcXVhbHNGcm9tR2xvYmFsKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHBsdXNFcXVhbHNGcm9tR2xvYmFsCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gcGx1c0VxdWFsc0Zyb21HbG9iYWwoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKcGx1c0VxdWFsc0Zyb21HbG9iYWw6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc0CgkvLyB0aGlzLmdLZXkudmFsdWUgPSBhCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6NzYKCS8vIHRoaXMuZ0tleS52YWx1ZSArPSBiCglieXRlIDB4Njc0YjY1NzkgLy8gImdLZXkiCglhcHBfZ2xvYmFsX2dldAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJc3dhcAoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjc4CgkvLyByZXR1cm4gdGhpcy5nS2V5LnZhbHVlOwoJYnl0ZSAweDY3NGI2NTc5IC8vICJnS2V5IgoJYXBwX2dsb2JhbF9nZXQKCXJldHN1YgoKLy8gYm94VGVzdCgpdWludDI1NgoqYWJpX3JvdXRlX2JveFRlc3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm94VGVzdCgpdWludDI1NgoJY2FsbHN1YiBib3hUZXN0CglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyBib3hUZXN0IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94VGVzdCgpOiB1aW50MjU2CmJveFRlc3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjg0CgkvLyB0aGlzLmJveEtleS52YWx1ZSA9IDx1aW50MjU2PjEKCWJ5dGUgMHg2MjZmNzg0YjY1NzkgLy8gImJveEtleSIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NQoJLy8gdGhpcy5ib3hLZXkudmFsdWUgKz0gMQoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkudmFsdWUKCWFzc2VydAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKCWIrCglieXRlIDB4NjI2Zjc4NGI2NTc5IC8vICJib3hLZXkiCglkdXAKCWJpdGxlbgoJaW50IDI1NgoJPD0KCgkvLyB0aGlzLmJveEtleS52YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCglzd2FwCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo4NwoJLy8gcmV0dXJuIHRoaXMuYm94S2V5LnZhbHVlOwoJYnl0ZSAweDYyNmY3ODRiNjU3OSAvLyAiYm94S2V5IgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkudmFsdWUKCWFzc2VydAoJcmV0c3ViCgovLyBmb28oeDogdWludDI1Nik6IHVpbnQyNTYKZm9vOgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo5MQoJLy8gcmV0dXJuIHg7CglmcmFtZV9kaWcgLTEgLy8geDogdWludDI1NgoJcmV0c3ViCgovLyB1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfdW5zYWZlTWV0aG9kQXJnczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdW5zYWZlTWV0aG9kQXJncyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgdW5zYWZlTWV0aG9kQXJncyBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIHVuc2FmZU1ldGhvZEFyZ3MKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHVuc2FmZU1ldGhvZEFyZ3MgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1bnNhZmVNZXRob2RBcmdzKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CnVuc2FmZU1ldGhvZEFyZ3M6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6OTUKCS8vIGMgPSBhICsgYgoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliKwoJZnJhbWVfYnVyeSAwIC8vIGM6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czo5NwoJLy8gcmV0dXJuIHRoaXMuZm9vKGMpOwoJZnJhbWVfZGlnIDAgLy8gYzogdW5zYWZlIHVpbnQyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGMgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY2FsbHN1YiBmb28KCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCXJldHN1YgoKLy8gdWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkCiphYmlfcm91dGVfdWludDI1NkNvbXBhcmlzb25UeXBlOgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgdWludDI1NkNvbXBhcmlzb25UeXBlIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciB1aW50MjU2Q29tcGFyaXNvblR5cGUgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdWludDI1NkNvbXBhcmlzb25UeXBlKHVpbnQyNTYsdWludDI1Nil2b2lkCgljYWxsc3ViIHVpbnQyNTZDb21wYXJpc29uVHlwZQoJaW50IDEKCXJldHVybgoKLy8gdWludDI1NkNvbXBhcmlzb25UeXBlKGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB2b2lkCnVpbnQyNTZDb21wYXJpc29uVHlwZToKCXByb3RvIDIgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDEKCS8vIHNlbmRlckJhbGFuY2VBZnRlciA9IGEgLSBiCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWItCglmcmFtZV9idXJ5IDAgLy8gc2VuZGVyQmFsYW5jZUFmdGVyOiB1bnNhZmUgdWludDI1NgoKCS8vICppZjBfY29uZGl0aW9uCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEwMgoJLy8gc2VuZGVyQmFsYW5jZUFmdGVyID4gPHVpbnQyNTY+MAoJZnJhbWVfZGlnIDAgLy8gc2VuZGVyQmFsYW5jZUFmdGVyOiB1bnNhZmUgdWludDI1NgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJYj4KCWJ6ICppZjBfZWxzZQoKCS8vICppZjBfY29uc2VxdWVudAoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDMKCS8vIGxvZygnbm9uWmVybycpCglwdXNoYnl0ZXMgMHg2ZTZmNmU1YTY1NzI2ZiAvLyAibm9uWmVybyIKCWxvZwoJYiAqaWYwX2VuZAoKKmlmMF9lbHNlOgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMDUKCS8vIGxvZygnemVybycpCglwdXNoYnl0ZXMgMHg3YTY1NzI2ZiAvLyAiemVybyIKCWxvZwoKKmlmMF9lbmQ6CglyZXRzdWIKCi8vIHNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKKmFiaV9yb3V0ZV9zcXVhcmVSb290MjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBzcXVhcmVSb290MjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDEgKGEpIGZvciBzcXVhcmVSb290MjU2IG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIHNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgc3F1YXJlUm9vdDI1NgoJZHVwCgliaXRsZW4KCWludCAyNTYKCTw9CgoJLy8gc3F1YXJlUm9vdDI1NiByZXR1cm4gdmFsdWUgb3ZlcmZsb3dlZCAyNTYgYml0cwoJYXNzZXJ0CglieXRlIDB4RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgoJYiYKCWR1cAoJbGVuCglkdXAKCWludCAzMgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3QyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKc3F1YXJlUm9vdDI1NjoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTEwCgkvLyByZXR1cm4gc3FydChhICogYik7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDI1NgoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQyNTYKCWIqCglic3FydAoJcmV0c3ViCgovLyBzcXVhcmVSb290NjQodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9zcXVhcmVSb290NjQ6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgc3F1YXJlUm9vdDY0KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIHNxdWFyZVJvb3Q2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHNxdWFyZVJvb3Q2NChhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApzcXVhcmVSb290NjQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjExNAoJLy8gcmV0dXJuIHNxcnQoYSAqIGIpOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJKgoJc3FydAoJcmV0c3ViCgovLyBhZGRyZXNzVG9CaWdJbnQoYWRkcmVzcylib29sCiphYmlfcm91dGVfYWRkcmVzc1RvQmlnSW50OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhZGRyOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGFkZHIpIGZvciBhZGRyZXNzVG9CaWdJbnQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbAoJY2FsbHN1YiBhZGRyZXNzVG9CaWdJbnQKCXB1c2hieXRlcyAweDAwCglwdXNoaW50IDAKCXVuY292ZXIgMgoJc2V0Yml0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYWRkcmVzc1RvQmlnSW50KGFkZHI6IEFkZHJlc3MpOiBib29sZWFuCmFkZHJlc3NUb0JpZ0ludDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTE4CgkvLyByZXR1cm4gYnRvYmlnaW50KGFkZHIpID4gYnRvYmlnaW50KHRoaXMudHhuLnNlbmRlcik7CglmcmFtZV9kaWcgLTEgLy8gYWRkcjogQWRkcmVzcwoJdHhuIFNlbmRlcgoJYj4KCXJldHN1YgoKLy8gdThUb3U2NCgpdWludDY0CiphYmlfcm91dGVfdThUb3U2NDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1OFRvdTY0KCl1aW50NjQKCWNhbGxzdWIgdThUb3U2NAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIHU4VG91NjQoKTogdWludDY0CnU4VG91NjQ6Cglwcm90byAwIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTIyCgkvLyB4OiB1aW50OCA9IDcKCXB1c2hpbnQgNwoJZnJhbWVfYnVyeSAwIC8vIHg6IHVpbnQ4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjMKCS8vIHJldHVybiA8dWludDY0Png7CglmcmFtZV9kaWcgMCAvLyB4OiB1aW50OAoKCS8vIHNldCB0aGUgc3Vicm91dGluZSByZXR1cm4gdmFsdWUKCWZyYW1lX2J1cnkgMAoJcmV0c3ViCgovLyBwcml2YXRlRnVuY05hbWUoeDogdWludDgsIHk6IHVpbnQ2NCk6IHZvaWQKcHJpdmF0ZUZ1bmNOYW1lOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoxMjcKCS8vIGFzc2VydCg8dWludDg+eSA+IHgpCglmcmFtZV9kaWcgLTIgLy8geTogdWludDY0CglmcmFtZV9kaWcgLTEgLy8geDogdWludDgKCT4KCWFzc2VydAoJcmV0c3ViCgovLyBmdW5jTmFtZSh1aW50MjU2KXZvaWQKKmFiaV9yb3V0ZV9mdW5jTmFtZToKCS8vIHg6IHVpbnQyNTYKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoeCkgZm9yIGZ1bmNOYW1lIG11c3QgYmUgYSB1aW50MjU2Cglhc3NlcnQKCgkvLyBleGVjdXRlIGZ1bmNOYW1lKHVpbnQyNTYpdm9pZAoJY2FsbHN1YiBmdW5jTmFtZQoJaW50IDEKCXJldHVybgoKLy8gZnVuY05hbWUoeDogdWludDI1Nik6IHZvaWQKZnVuY05hbWU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjEzMQoJLy8gdGhpcy5wcml2YXRlRnVuY05hbWUoPHVpbnQ4PngsIDEzMzcpCglwdXNoaW50IDEzMzcKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50MjU2CglkdXAKCWJpdGxlbgoJcHVzaGludCA4Cgk8PQoKCS8vIDx1aW50OD54IG92ZXJmbG93ZWQgOCBiaXRzCglhc3NlcnQKCWV4dHJhY3QgMzEgMQoJYnRvaQoJY2FsbHN1YiBwcml2YXRlRnVuY05hbWUKCXJldHN1YgoKLy8gYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NAoqYWJpX3JvdXRlX2JpZ2ludFBsdXM6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYmlnaW50UGx1cyh1aW50NjQsdWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaWdpbnRQbHVzCglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYmlnaW50UGx1cyhhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaWdpbnRQbHVzOgoJcHJvdG8gMiAxCgoJLy8gUHVzaCBlbXB0eSBieXRlcyBhZnRlciB0aGUgZnJhbWUgcG9pbnRlciB0byByZXNlcnZlIHNwYWNlIGZvciBsb2NhbCB2YXJpYWJsZXMKCWJ5dGUgMHgKCWR1cAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM1CgkvLyB4ID0gaXRvYihhKQoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAwIC8vIHg6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM2CgkvLyB5ID0gaXRvYihiKQoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfYnVyeSAxIC8vIHk6IGJ5dGVbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTM3CgkvLyByZXR1cm4gKGJ0b2JpZ2ludCh4KSArIGJ0b2JpZ2ludCh5KSkgYXMgdWludDY0OwoJZnJhbWVfZGlnIDAgLy8geDogYnl0ZVtdCglmcmFtZV9kaWcgMSAvLyB5OiBieXRlW10KCWIrCglkdXAKCWJpdGxlbgoJcHVzaGludCA2NAoJPD0KCgkvLyAoYnRvYmlnaW50KHgpICsgYnRvYmlnaW50KHkpKSBhcyB1aW50NjQgb3ZlcmZsb3dlZCA2NCBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJcHVzaGludCA4CgktCglzd2FwCglzdWJzdHJpbmczCglidG9pCgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMQoJcmV0c3ViCgovLyBiaXR3aXNlT3IodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlT3I6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGI6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIGE6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgYml0d2lzZU9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VPcgoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJpdHdpc2VPcihhOiB1aW50NjQsIGI6IHVpbnQ2NCk6IHVpbnQ2NApiaXR3aXNlT3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE0MQoJLy8gcmV0dXJuIGEgfCBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJfAoJcmV0c3ViCgovLyBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYml0d2lzZUFuZDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlQW5kKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VBbmQKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlQW5kKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VBbmQ6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE0NQoJLy8gcmV0dXJuIGEgJiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJJgoJcmV0c3ViCgovLyBiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfYml0d2lzZVhvcjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBiaXR3aXNlWG9yKHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGJpdHdpc2VYb3IKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlWG9yKGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmJpdHdpc2VYb3I6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE0OQoJLy8gcmV0dXJuIGEgXiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJXgoJcmV0c3ViCgovLyBiaXR3aXNlT3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CiphYmlfcm91dGVfYml0d2lzZU9yVTI1NjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChiKSBmb3IgYml0d2lzZU9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgYml0d2lzZU9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlT3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2CgljYWxsc3ViIGJpdHdpc2VPclUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VPclUyNTYgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMjU2IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglpbnQgMzIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBiaXR3aXNlT3JVMjU2KGE6IHVpbnQyNTYsIGI6IHVpbnQyNTYpOiB1aW50MjU2CmJpdHdpc2VPclUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1MwoJLy8gcmV0dXJuIGEgfCBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CglifAoJcmV0c3ViCgovLyBiaXR3aXNlQW5kVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VBbmRVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBiaXR3aXNlQW5kVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgYml0d2lzZUFuZFUyNTYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZUFuZFUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VBbmRVMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZUFuZFUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZUFuZFUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIGEgJiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliJgoJcmV0c3ViCgovLyBiaXR3aXNlWG9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VYb3JVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGIpIGZvciBiaXR3aXNlWG9yVTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gYTogdWludDI1NgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChhKSBmb3IgYml0d2lzZVhvclUyNTYgbXVzdCBiZSBhIHVpbnQyNTYKCWFzc2VydAoKCS8vIGV4ZWN1dGUgYml0d2lzZVhvclUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZVhvclUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VYb3JVMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZVhvclUyNTYoYTogdWludDI1NiwgYjogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZVhvclUyNTY6Cglwcm90byAyIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2MQoJLy8gcmV0dXJuIGEgXiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50MjU2CgliXgoJcmV0c3ViCgovLyBiaXR3aXNlTm90KHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9iaXR3aXNlTm90OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGJpdHdpc2VOb3QodWludDY0KXVpbnQ2NAoJY2FsbHN1YiBiaXR3aXNlTm90CglpdG9iCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdChhOiB1aW50NjQpOiB1aW50NjQKYml0d2lzZU5vdDoKCXByb3RvIDEgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTY1CgkvLyByZXR1cm4gfmE7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0Cgl+CglyZXRzdWIKCi8vIGJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NgoqYWJpX3JvdXRlX2JpdHdpc2VOb3RVMjU2OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBhOiB1aW50MjU2Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBiaXR3aXNlTm90VTI1NiBtdXN0IGJlIGEgdWludDI1NgoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBiaXR3aXNlTm90VTI1Nih1aW50MjU2KXVpbnQyNTYKCWNhbGxzdWIgYml0d2lzZU5vdFUyNTYKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIGJpdHdpc2VOb3RVMjU2IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYml0d2lzZU5vdFUyNTYoYTogdWludDI1Nik6IHVpbnQyNTYKYml0d2lzZU5vdFUyNTY6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE2OQoJLy8gcmV0dXJuIH5hOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQyNTYKCWJ+CglyZXRzdWIKCi8vIG11bHcodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9tdWx3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIG11bHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgbXVsdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIG11bHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKbXVsdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE3MwoJLy8gcCA9IG11bHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCW11bHcKCWZyYW1lX2J1cnkgMCAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE3NwoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAwIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9hZGR3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGFkZHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgYWRkdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGFkZHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKYWRkdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4MQoJLy8gcCA9IGFkZHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWFkZHcKCWZyYW1lX2J1cnkgMCAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4NQoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAwIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9leHB3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGV4cHcodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZXhwdwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGV4cHcoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKZXhwdzoKCXByb3RvIDIgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXAKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE4OQoJLy8gcCA9IGV4cHcoYSwgYikKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBiOiB1aW50NjQKCWV4cHcKCWZyYW1lX2J1cnkgMCAvLyBwIGxvdzogdWludDY0CglmcmFtZV9idXJ5IDEgLy8gcCBoaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjE5MwoJLy8gcmV0dXJuIHAyLmxvdzsKCWZyYW1lX2RpZyAwIC8vIHAgbG93OiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAxCglyZXRzdWIKCi8vIGRpdncodWludDY0LHVpbnQ2NCl1aW50NjQKKmFiaV9yb3V0ZV9kaXZ3OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBiOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBhOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCgkvLyBleGVjdXRlIGRpdncodWludDY0LHVpbnQ2NCl1aW50NjQKCWNhbGxzdWIgZGl2dwoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGRpdncoYTogdWludDY0LCBiOiB1aW50NjQpOiB1aW50NjQKZGl2dzoKCXByb3RvIDIgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MTk3CgkvLyByZXR1cm4gZGl2dygwLCBhLCBiKTsKCXB1c2hpbnQgMAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZGl2dwoJcmV0c3ViCgovLyBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CiphYmlfcm91dGVfZGl2bW9kdzoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gYjogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gYTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkaXZtb2R3KHVpbnQ2NCx1aW50NjQpdWludDY0CgljYWxsc3ViIGRpdm1vZHcKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkaXZtb2R3KGE6IHVpbnQ2NCwgYjogdWludDY0KTogdWludDY0CmRpdm1vZHc6Cglwcm90byAyIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwbiAzCgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMDEKCS8vIHAgPSBkaXZtb2R3KDAsIGEsIDAsIGIpCglwdXNoaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjQKCXB1c2hpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGI6IHVpbnQ2NAoJZGl2bW9kdwoJZnJhbWVfYnVyeSAwIC8vIHAgcmVtYWluZGVyTG93OiB1aW50NjQKCWZyYW1lX2J1cnkgMSAvLyBwIHJlbWFpbmRlckhpZ2g6IHVpbnQ2NAoJZnJhbWVfYnVyeSAyIC8vIHAgcXVvdGllbnRMb3c6IHVpbnQ2NAoJZnJhbWVfYnVyeSAzIC8vIHAgcXVvdGllbnRIaWdoOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIwNQoJLy8gcmV0dXJuIHAyLnF1b3RpZW50TG93OwoJZnJhbWVfZGlnIDIgLy8gcCBxdW90aWVudExvdzogdWludDY0CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCgoJLy8gcG9wIGFsbCBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGUgc3RhY2sKCXBvcG4gMwoJcmV0c3ViCgovLyB1bnNhZmVWYXJpYWJsZXMoKXVpbnQ2NAoqYWJpX3JvdXRlX3Vuc2FmZVZhcmlhYmxlczoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSB1bnNhZmVWYXJpYWJsZXMoKXVpbnQ2NAoJY2FsbHN1YiB1bnNhZmVWYXJpYWJsZXMKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyB1bnNhZmVWYXJpYWJsZXMoKTogdWludDY0CnVuc2FmZVZhcmlhYmxlczoKCXByb3RvIDAgMQoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIwOQoJLy8gQSA9IDx1aW50MjU2PjI1MDAwMDAwMAoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZWU2YjI4MAoJZnJhbWVfYnVyeSAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMTAKCS8vIEIgPSA8dWludDI1Nj4xMDAwCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNlOAoJZnJhbWVfYnVyeSAxIC8vIEI6IHVpbnQyNTYKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxMgoJLy8gQSA9IEEgLyBCCglmcmFtZV9kaWcgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZTggLy8gQjogdWludDI1NgoJYi8KCWZyYW1lX2J1cnkgMCAvLyBBOiB1bnNhZmUgdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjE0CgkvLyBjID0gQSBhcyB1aW50NjQKCWZyYW1lX2RpZyAwIC8vIEE6IHVuc2FmZSB1aW50MjU2CglkdXAKCWJpdGxlbgoJcHVzaGludCA2NAoJPD0KCgkvLyBBIGFzIHVpbnQ2NCBvdmVyZmxvd2VkIDY0IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkYKCWImCglkdXAKCWxlbgoJZHVwCglwdXNoaW50IDgKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWJ0b2kKCWZyYW1lX2J1cnkgMiAvLyBjOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvbWF0aC5hbGdvLnRzOjIxNgoJLy8gcmV0dXJuIGM7CglmcmFtZV9kaWcgMiAvLyBjOiB1aW50NjQKCgkvLyBzZXQgdGhlIHN1YnJvdXRpbmUgcmV0dXJuIHZhbHVlCglmcmFtZV9idXJ5IDAKCgkvLyBwb3AgYWxsIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBzdGFjawoJcG9wbiAyCglyZXRzdWIKCi8vIGZvb2Jhcih1aW50MTI4KXVpbnQxMjgKKmFiaV9yb3V0ZV9mb29iYXI6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIHg6IHVpbnQxMjgKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglwdXNoaW50IDE2Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKHgpIGZvciBmb29iYXIgbXVzdCBiZSBhIHVpbnQxMjgKCWFzc2VydAoKCS8vIGV4ZWN1dGUgZm9vYmFyKHVpbnQxMjgpdWludDEyOAoJY2FsbHN1YiBmb29iYXIKCWR1cAoJYml0bGVuCglwdXNoaW50IDEyOAoJPD0KCgkvLyBmb29iYXIgcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJcHVzaGludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGZvb2Jhcih4OiB1aW50MTI4KTogdWludDEyOApmb29iYXI6Cglwcm90byAxIDEKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjIwCgkvLyBhdmdTdGFrZTogdWludDEyOCA9IHggLyAoMzAwMDAgYXMgdWludDEyOCkKCWZyYW1lX2RpZyAtMSAvLyB4OiB1aW50MTI4CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUzMAoJYi8KCWR1cAoJYml0bGVuCglwdXNoaW50IDEyOAoJPD0KCgkvLyB4IC8gKDMwMDAwIGFzIHVpbnQxMjgpIG92ZXJmbG93ZWQgMTI4IGJpdHMKCWFzc2VydAoJYnl0ZSAweEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJcHVzaGludCAxNgoJLQoJc3dhcAoJc3Vic3RyaW5nMwoJZnJhbWVfYnVyeSAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gdGVzdHMvY29udHJhY3RzL21hdGguYWxnby50czoyMjIKCS8vIHJldHVybiBhdmdTdGFrZTsKCWZyYW1lX2RpZyAwIC8vIGF2Z1N0YWtlOiB1aW50MTI4CgoJLy8gc2V0IHRoZSBzdWJyb3V0aW5lIHJldHVybiB2YWx1ZQoJZnJhbWVfYnVyeSAwCglyZXRzdWIKCi8vIHVpbnRGcm9tSGV4KCl1aW50MjU2CiphYmlfcm91dGVfdWludEZyb21IZXg6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgdWludEZyb21IZXgoKXVpbnQyNTYKCWNhbGxzdWIgdWludEZyb21IZXgKCWR1cAoJYml0bGVuCglpbnQgMjU2Cgk8PQoKCS8vIHVpbnRGcm9tSGV4IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDI1NiBiaXRzCglhc3NlcnQKCWJ5dGUgMHhGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCgliJgoJZHVwCglsZW4KCWR1cAoJaW50IDMyCgktCglzd2FwCglzdWJzdHJpbmczCgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gdWludEZyb21IZXgoKTogdWludDI1Ngp1aW50RnJvbUhleDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9tYXRoLmFsZ28udHM6MjI2CgkvLyByZXR1cm4gVWludDwyNTY+KCcweEZGJyk7CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGZmCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4M2NlNmYxYWYgLy8gbWV0aG9kICJ1NjRwbHVzKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4MDAzMWExODYgLy8gbWV0aG9kICJ1NjRtaW51cyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGU1MmU0Mzk0IC8vIG1ldGhvZCAidTY0bXVsKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4OTUwZDQ3ODkgLy8gbWV0aG9kICJ1NjRkaXYodWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg2NWJkZGE2ZSAvLyBtZXRob2QgInUyNTZwbHVzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJcHVzaGJ5dGVzIDB4MGE2YWQyODQgLy8gbWV0aG9kICJ1MjU2bWludXModWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHhmMDQ0YmYyNCAvLyBtZXRob2QgInUyNTZtdWwodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHhjNDhmOGMwNSAvLyBtZXRob2QgInUyNTZkaXYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHhmMmUxZDYzMiAvLyBtZXRob2QgInU2NFJldHVybjI1Nih1aW50NjQsdWludDY0KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHgzOGIxYTM5ZSAvLyBtZXRob2QgIm1heFU2NCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4NmMxMzZmMWQgLy8gbWV0aG9kICJleHBvbmVudCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDIyZGEyNTAyIC8vIG1ldGhvZCAidmFyaWFibGVUeXBlSGludCh1aW50OCx1aW50OCl1aW50MTYiCglwdXNoYnl0ZXMgMHhhMmZlYWQ2YyAvLyBtZXRob2QgInVpbnQ4cGx1cyh1aW50OCx1aW50OCl1aW50OCIKCXB1c2hieXRlcyAweGQyMjU2ZjdhIC8vIG1ldGhvZCAidWludDhleHAodWludDgsdWludDgpdWludDgiCglwdXNoYnl0ZXMgMHhjMTdkNjI0ZSAvLyBtZXRob2QgInBsdXNFcXVhbHModWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1Y2FiMDQzOCAvLyBtZXRob2QgInBsdXNFcXVhbHNGcm9tR2xvYmFsKHVpbnQ2NCx1aW50NjQpdWludDY0IgoJcHVzaGJ5dGVzIDB4NTg5ODljY2QgLy8gbWV0aG9kICJib3hUZXN0KCl1aW50MjU2IgoJcHVzaGJ5dGVzIDB4NDgzMGI0ZGUgLy8gbWV0aG9kICJ1bnNhZmVNZXRob2RBcmdzKHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJcHVzaGJ5dGVzIDB4ZTFjNTVjZTUgLy8gbWV0aG9kICJ1aW50MjU2Q29tcGFyaXNvblR5cGUodWludDI1Nix1aW50MjU2KXZvaWQiCglwdXNoYnl0ZXMgMHg3ZDFkNDI2ZSAvLyBtZXRob2QgInNxdWFyZVJvb3QyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHgxYzI5ODFmMSAvLyBtZXRob2QgInNxdWFyZVJvb3Q2NCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGI3Y2EwNGI5IC8vIG1ldGhvZCAiYWRkcmVzc1RvQmlnSW50KGFkZHJlc3MpYm9vbCIKCXB1c2hieXRlcyAweGJiOTUyMzM4IC8vIG1ldGhvZCAidThUb3U2NCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4MDEyOGUyN2IgLy8gbWV0aG9kICJmdW5jTmFtZSh1aW50MjU2KXZvaWQiCglwdXNoYnl0ZXMgMHhmOTE2Y2RiMyAvLyBtZXRob2QgImJpZ2ludFBsdXModWludDY0LHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1MjczNzU0NSAvLyBtZXRob2QgImJpdHdpc2VPcih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDc5YzFhZGMwIC8vIG1ldGhvZCAiYml0d2lzZUFuZCh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDIyNDc0YWJjIC8vIG1ldGhvZCAiYml0d2lzZVhvcih1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDA1OTNmZGY4IC8vIG1ldGhvZCAiYml0d2lzZU9yVTI1Nih1aW50MjU2LHVpbnQyNTYpdWludDI1NiIKCXB1c2hieXRlcyAweDA2ZmI5MzM3IC8vIG1ldGhvZCAiYml0d2lzZUFuZFUyNTYodWludDI1Nix1aW50MjU2KXVpbnQyNTYiCglwdXNoYnl0ZXMgMHgyNjQ5M2Q3OCAvLyBtZXRob2QgImJpdHdpc2VYb3JVMjU2KHVpbnQyNTYsdWludDI1Nil1aW50MjU2IgoJcHVzaGJ5dGVzIDB4ZTljMjJlZWEgLy8gbWV0aG9kICJiaXR3aXNlTm90KHVpbnQ2NCl1aW50NjQiCglwdXNoYnl0ZXMgMHhlZGUzZTliYyAvLyBtZXRob2QgImJpdHdpc2VOb3RVMjU2KHVpbnQyNTYpdWludDI1NiIKCXB1c2hieXRlcyAweDJlNGEyMTY0IC8vIG1ldGhvZCAibXVsdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDUwMTM0YjVhIC8vIG1ldGhvZCAiYWRkdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGY1M2FmZjliIC8vIG1ldGhvZCAiZXhwdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGNhZjcxMTBkIC8vIG1ldGhvZCAiZGl2dyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweGJlZDBlMzg2IC8vIG1ldGhvZCAiZGl2bW9kdyh1aW50NjQsdWludDY0KXVpbnQ2NCIKCXB1c2hieXRlcyAweDI3NGQ3NzA1IC8vIG1ldGhvZCAidW5zYWZlVmFyaWFibGVzKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg5MjQ2NWQwOCAvLyBtZXRob2QgImZvb2Jhcih1aW50MTI4KXVpbnQxMjgiCglwdXNoYnl0ZXMgMHhmMDFmYWNjZSAvLyBtZXRob2QgInVpbnRGcm9tSGV4KCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV91NjRwbHVzICphYmlfcm91dGVfdTY0bWludXMgKmFiaV9yb3V0ZV91NjRtdWwgKmFiaV9yb3V0ZV91NjRkaXYgKmFiaV9yb3V0ZV91MjU2cGx1cyAqYWJpX3JvdXRlX3UyNTZtaW51cyAqYWJpX3JvdXRlX3UyNTZtdWwgKmFiaV9yb3V0ZV91MjU2ZGl2ICphYmlfcm91dGVfdTY0UmV0dXJuMjU2ICphYmlfcm91dGVfbWF4VTY0ICphYmlfcm91dGVfZXhwb25lbnQgKmFiaV9yb3V0ZV92YXJpYWJsZVR5cGVIaW50ICphYmlfcm91dGVfdWludDhwbHVzICphYmlfcm91dGVfdWludDhleHAgKmFiaV9yb3V0ZV9wbHVzRXF1YWxzICphYmlfcm91dGVfcGx1c0VxdWFsc0Zyb21HbG9iYWwgKmFiaV9yb3V0ZV9ib3hUZXN0ICphYmlfcm91dGVfdW5zYWZlTWV0aG9kQXJncyAqYWJpX3JvdXRlX3VpbnQyNTZDb21wYXJpc29uVHlwZSAqYWJpX3JvdXRlX3NxdWFyZVJvb3QyNTYgKmFiaV9yb3V0ZV9zcXVhcmVSb290NjQgKmFiaV9yb3V0ZV9hZGRyZXNzVG9CaWdJbnQgKmFiaV9yb3V0ZV91OFRvdTY0ICphYmlfcm91dGVfZnVuY05hbWUgKmFiaV9yb3V0ZV9iaWdpbnRQbHVzICphYmlfcm91dGVfYml0d2lzZU9yICphYmlfcm91dGVfYml0d2lzZUFuZCAqYWJpX3JvdXRlX2JpdHdpc2VYb3IgKmFiaV9yb3V0ZV9iaXR3aXNlT3JVMjU2ICphYmlfcm91dGVfYml0d2lzZUFuZFUyNTYgKmFiaV9yb3V0ZV9iaXR3aXNlWG9yVTI1NiAqYWJpX3JvdXRlX2JpdHdpc2VOb3QgKmFiaV9yb3V0ZV9iaXR3aXNlTm90VTI1NiAqYWJpX3JvdXRlX211bHcgKmFiaV9yb3V0ZV9hZGR3ICphYmlfcm91dGVfZXhwdyAqYWJpX3JvdXRlX2RpdncgKmFiaV9yb3V0ZV9kaXZtb2R3ICphYmlfcm91dGVfdW5zYWZlVmFyaWFibGVzICphYmlfcm91dGVfZm9vYmFyICphYmlfcm91dGVfdWludEZyb21IZXgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAIASCAAggQAECAASYJBBUffHUg//////////////////////////////////////////8ABGdLZXkGYm94S2V5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCP//////////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoEP////////////////////8xGBSBBgsxGQiNDAbsAAAAAAAAAAAAAAbeAAAAAAAAAAAAAAAoNhoCFzYaAReIAAUWULAiQ4oCAYv/i/4IiSg2GgIXNhoBF4gABRZQsCJDigIBi/+L/gmJKDYaAhc2GgEXiAAFFlCwIkOKAgGL/4v+C4koNhoCFzYaAReIAAUWULAiQ4oCAYv/i/4KiSg2GgJJFSMSRDYaAUkVIxJEiAASSZMkDkQprEkVSSMJTFJQsCJDigIBi/+L/qCJKDYaAkkVIxJENhoBSRUjEkSIABJJkyQORCmsSRVJIwlMUlCwIkOKAgGL/4v+oYkoNhoCSRUjEkQ2GgFJFSMSRIgAEkmTJA5EKaxJFUkjCUxSULAiQ4oCAYv/i/6jiSg2GgJJFSMSRDYaAUkVIxJEiAASSZMkDkQprEkVSSMJTFJQsCJDigIBi/+L/qKJKDYaAhc2GgEXiAASSZMkDkQprEkVSSMJTFJQsCJDigIBi/+L/ggWiSiIAAUWULAiQ4oAAYH///////////8BiSg2GgIXNhoBF4gABRZQsCJDigIBi/+L/pSJKDYaAkkVIhJEFzYaAUkVIhJEF4gADhZJkyEEDkRXBgJQsCJDigIBKov/i/4IjACLAIwAiSg2GgJJFSISRBc2GgFJFSISRBeIAA0WSZMlDkRXBwFQsCJDigIBi/+L/giJKDYaAkkVIhJEFzYaAUkVIhJEF4gADRZJkyUORFcHAVCwIkOKAgGL/4v+lIkoNhoCFzYaAReIAAUWULAiQ4oCASqL/4wAiwCL/giMAIsAjACJKDYaAhc2GgEXiAAFFlCwIkOKAgEri/9nK2SL/ggrTGcrZIkoiAASSZMkDkQprEkVSSMJTFJQsCJDigABJwQnBb8nBL5EJwWgJwRJkyQORCmsSRVJIwlMUky/JwS+RImKAQGL/4koNhoCSRUjEkQ2GgFJFSMSRIgAEkmTJA5EKaxJFUkjCUxSULAiQ4oCASqL/4v+oIwAiwBJkyQORCmsSRVJIwlMUoj/towAiTYaAkkVIxJENhoBSRUjEkSIAAIiQ4oCACqL/4v+oYwAiwCAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApUEADYAHbm9uWmVyb7BCAAeABHplcm+wiSg2GgJJFSMSRDYaAUkVIxJEiAASSZMkDkQprEkVSSMJTFJQsCJDigIBi/+L/qOWiSg2GgIXNhoBF4gABRZQsCJDigIBi/+L/guSiSg2GgFJFSMSRIgADIABACEFTwJUULAiQ4oBAYv/MQCliSiIAAUWULAiQ4oAASqBB4wAiwCMAImKAgCL/ov/DUSJNhoBSRUjEkSIAAIiQ4oBAIG5Cov/SZMlDkRXHwEXiP/ViSg2GgIXNhoBF4gABRZQsCJDigIBKkmL/xaMAIv+FowBiwCLAaBJkyEGDkQnBqxJFUklCUxSF4wARgGJKDYaAhc2GgEXiAAFFlCwIkOKAgGL/4v+GYkoNhoCFzYaAReIAAUWULAiQ4oCAYv/i/4aiSg2GgIXNhoBF4gABRZQsCJDigIBi/+L/huJKDYaAkkVIxJENhoBSRUjEkSIABJJkyQORCmsSRVJIwlMUlCwIkOKAgGL/4v+q4koNhoCSRUjEkQ2GgFJFSMSRIgAEkmTJA5EKaxJFUkjCUxSULAiQ4oCAYv/i/6siSg2GgJJFSMSRDYaAUkVIxJEiAASSZMkDkQprEkVSSMJTFJQsCJDigIBi/+L/q2JKDYaAReIAAUWULAiQ4oBAYv/HIkoNhoBSRUjEkSIABJJkyQORCmsSRVJIwlMUlCwIkOKAQGL/66JKDYaAhc2GgEXiAAFFlCwIkOKAgEqSYv/i/4djACMAYsAjABGAYkoNhoCFzYaAReIAAUWULAiQ4oCASpJi/+L/h6MAIwBiwCMAEYBiSg2GgIXNhoBF4gABRZQsCJDigIBKkmL/4v+lYwAjAGLAIwARgGJKDYaAhc2GgEXiAAFFlCwIkOKAgEhBYv/i/6XiSg2GgIXNhoBF4gABRZQsCJDigIBKkcDIQWL/yEFi/4fjACMAYwCjAOLAowARgOJKIgABRZQsCJDigABKkcCgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuaygIwAJweMAYsAJweijACLAEmTIQYORCcGrEkVSSUJTFIXjAKLAowARgKJKDYaAUkVIQQSRIgAFUmTIQcORCcIrEkVSSEECUxSULAiQ4oBASqL/4AQAAAAAAAAAAAAAAAAAAB1MKJJkyEHDkQnCKxJFUkhBAlMUowAiwCMAIkoiAASSZMkDkQprEkVSSMJTFJQsCJDigABgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4kiQ4AEuER7NjYaAI4B//EAgAQ85vGvgAQAMaGGgATlLkOUgASVDUeJgARlvdpugAQKatKEgATwRL8kgATEj4wFgATy4dYygAQ4saOegARsE28dgAQi2iUCgASi/q1sgATSJW96gATBfWJOgARcqwQ4gARYmJzNgARIMLTegAThxVzlgAR9HUJugAQcKYHxgAS3ygS5gAS7lSM4gAQBKOJ7gAT5Fs2zgARSc3VFgAR5wa3AgAQiR0q8gAQFk/34gAQG+5M3gAQmST14gATpwi7qgATt4+m8gAQuSiFkgARQE0tagAT1Ov+bgATK9xENgAS+0OOGgAQnTXcFgASSRl0IgATwH6zONhoAjin3yPfi9/z4Fvgw+F/4jvi9+Oz5FPks+Ub5evmm+dL59/oa+lz6o/sA+zD7S/ts+4z7rvvp/AP8Hfw3/Gb8lfzE/Nj8/f0j/Un9b/2L/br+FP5nAA==", + "approval": "CiAEASCAAv///////////wEmCSD//////////////////////////////////////////wQVH3x1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPoBmJveEtleRD/////////////////////AARnS2V5CP//////////MRgUgQYLMRkIjQwLAQAAAAAAAAAAAAAK8wAAAAAAAAAAAAAAgAQVH3x1NhoCFzYaAReIAAYWULCBAUOKAgGL/4v+CImABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYv/i/4JiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBi/+L/guJgAQVH3x1NhoCFzYaAReIAAYWULCBAUOKAgGL/4v+ComABBUffHU2GgJJFYEgEkQ2GgFJFYEgEkSIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigIBi/+L/qCJgAQVH3x1NhoCSRWBIBJENhoBSRWBIBJEiAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oCAYv/i/6hiYAEFR98dTYaAkkVgSASRDYaAUkVgSASRIgAN0mTgYACDkSAIP//////////////////////////////////////////rEkVSYEgCUxSULCBAUOKAgGL/4v+o4mABBUffHU2GgJJFYEgEkQ2GgFJFYEgEkSIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigIBi/+L/qKJgAQVH3x1NhoCFzYaAReIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigIBi/+L/ggWiYAEFR98dYgABhZQsIEBQ4oAAYH///////////8BiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBi/+L/pSJgAQVH3x1NhoCSRWBARJEFzYaAUkVgQESRBeIAA8WSZOBEA5EVwYCULCBAUOKAgGAAIv/i/4IjACLAIwAiYAEFR98dTYaAkkVgQESRBc2GgFJFYEBEkQXiAAPFkmTgQgORFcHAVCwgQFDigIBi/+L/giJgAQVH3x1NhoCSRWBARJEFzYaAUkVgQESRBeIAA8WSZOBCA5EVwcBULCBAUOKAgGL/4v+lImABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYAAi/+MAIsAi/4IjACLAIwAiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBgARnS2V5i/9ngARnS2V5ZIv+CIAEZ0tleUxngARnS2V5ZImABBUffHWIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigABgAZib3hLZXmAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv4AGYm94S2V5vkSAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoIAGYm94S2V5SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJMv4AGYm94S2V5vkSJigEBi/+JgAQVH3x1NhoCSRWBIBJENhoBSRWBIBJEiAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oCAYAAi/+L/qCMAIsASZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFKI/2WMAIk2GgJJFYEgEkQ2GgFJFYEgEkSIAAOBAUOKAgCAAIv/i/6hjACLAIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClQQANgAdub25aZXJvsEIAB4AEemVyb7CJgAQVH3x1NhoCSRWBIBJENhoBSRWBIBJEiAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oCAYv/i/6jlomABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYv/i/4LkomABBUffHU2GgFJFYEgEkSIAA2AAQCBAE8CVFCwgQFDigEBi/8xAKWJgAQVH3x1iAAGFlCwgQFDigABgACBB4wAiwCMAImKAgCL/ov/DUSJNhoBSRWBIBJEiAADgQFDigEAgbkKi/9Jk4EIDkRXHwEXiP/SiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBgABJi/8WjACL/haMAYsAiwGgSZOBQA5EgAj//////////6xJFUmBCAlMUheMAEYBiYAEFR98dTYaAhc2GgEXiAAGFlCwgQFDigIBi/+L/hmJgAQVH3x1NhoCFzYaAReIAAYWULCBAUOKAgGL/4v+GomABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYv/i/4biYAEFR98dTYaAkkVgSASRDYaAUkVgSASRIgAN0mTgYACDkSAIP//////////////////////////////////////////rEkVSYEgCUxSULCBAUOKAgGL/4v+q4mABBUffHU2GgJJFYEgEkQ2GgFJFYEgEkSIADdJk4GAAg5EgCD//////////////////////////////////////////6xJFUmBIAlMUlCwgQFDigIBi/+L/qyJgAQVH3x1NhoCSRWBIBJENhoBSRWBIBJEiAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oCAYv/i/6tiYAEFR98dTYaAReIAAYWULCBAUOKAQGL/xyJgAQVH3x1NhoBSRWBIBJEiAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oBAYv/romABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYAASYv/i/4djACMAYsAjABGAYmABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYAASYv/i/4ejACMAYsAjABGAYmABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYAASYv/i/6VjACMAYsAjABGAYmABBUffHU2GgIXNhoBF4gABhZQsIEBQ4oCAYEAi/+L/peJgAQVH3x1NhoCFzYaAReIAAYWULCBAUOKAgGAAEcDgQCL/4EAi/4fjACMAYwCjAOLAowARgOJgAQVH3x1iAAGFlCwgQFDigABgABHAoAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7msoCMAIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+iMAYsAgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6KKMAIsASZOBQA5EgAj//////////6xJFUmBCAlMUheMAosCjABGAomABBUffHU2GgFJFYEQEkSIACdJk4GAAQ5EgBD/////////////////////rEkVSYEQCUxSULCBAUOKAQGAAIv/gBAAAAAAAAAAAAAAAAAAAHUwokmTgYABDkSAEP////////////////////+sSRVJgRAJTFKMAIsAjACJgAQVH3x1iAA3SZOBgAIORIAg//////////////////////////////////////////+sSRVJgSAJTFJQsIEBQ4oAAYAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+JgQFDgAS4RHs2NhoAjgH/8ACABDzm8a+ABAAxoYaABOUuQ5SABJUNR4mABGW92m6ABApq0oSABPBEvySABMSPjAWABPLh1jKABDixo56ABGwTbx2ABCLaJQKABKL+rWyABNIlb3qABMF9Yk6ABFyrBDiABFiYnM2ABEgwtN6ABOHFXOWABH0dQm6ABBwpgfGABLfKBLmABLuVIziABAEo4nuABPkWzbOABFJzdUWABHnBrcCABCJHSryABAWT/fiABAb7kzeABCZJPXiABOnCLuqABO3j6byABC5KIWSABFATS1qABPU6/5uABMr3EQ2ABL7Q44aABCdNdwWABJJGXQiABPAfrM42GgCOKfOz89Pz8/QT9DP0jvTp9UT1n/Xx9g/2L/Zs9qH21vcC9z/4J/i/+SD5fPmd+cX57PoR+lz6fPqc+rz7F/ty+8375/w3/GT8kfy+/OD9Fv3A/jwA", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/MultiInheritance.approval.teal b/tests/contracts/artifacts/MultiInheritance.approval.teal index d72ebeaaa..91bcc7480 100644 --- a/tests/contracts/artifacts/MultiInheritance.approval.teal +++ b/tests/contracts/artifacts/MultiInheritance.approval.teal @@ -1,6 +1,7 @@ #pragma version 10 +bytecblock 0x61 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +13,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +27,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_a: // execute a()void callsub a - int 1 + pushint 1 return // a(): void @@ -36,7 +37,7 @@ a: // tests/contracts/inheritance.algo.ts:16 // this.aKey.value = 1337 byte 0x61 // "a" - int 1337 + pushint 1337 app_global_put retsub @@ -44,7 +45,7 @@ a: *abi_route_b: // execute b()void callsub b - int 1 + pushint 1 return // b(): void @@ -55,14 +56,14 @@ b: // assert(this.aKey.value === 1337) byte 0x61 // "a" app_global_get - int 1337 + pushint 1337 == assert // tests/contracts/inheritance.algo.ts:25 // this.bKey.value = 42 - byte 0x62 // "b" - int 42 + pushbytes 0x62 // "b" + pushint 42 app_global_put retsub @@ -70,7 +71,7 @@ b: *abi_route_b2: // execute b2()void callsub b2 - int 1 + pushint 1 return // b2(): void @@ -79,7 +80,7 @@ b2: // tests/contracts/inheritance.algo.ts:88 // log('b2') - byte 0x6232 // "b2" + pushbytes 0x6232 // "b2" log retsub @@ -87,7 +88,7 @@ b2: *abi_route_foo: // execute foo()void callsub foo - int 1 + pushint 1 return // foo(): void @@ -96,16 +97,16 @@ foo: // tests/contracts/inheritance.algo.ts:94 // log(B2.approvalProgram()) - byte b64 CiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIgAAiJDigAAgAFhgbkKZ4mIAAIiQ4oAAIACYjKwiSJDgAS4RHs2NhoAjgH/8QCABB56rRyABEQ7Mxk2GgCOAv+9/80A + pushbytes 0x0a31181481060b3119088d0c003200000000000000000000002400000000000000000000008800038101438a000080016181b90a67898800038101438a000080026232b0898101438004b8447b36361a008e01fff00080041e7aad1c8004443b3319361a008e02ffbaffcb00 log retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -113,10 +114,10 @@ foo: err *call_NoOp: - method "a()void" - method "b()void" - method "b2()void" - method "foo()void" + pushbytes 0x1e7aad1c // method "a()void" + pushbytes 0x3ac90b08 // method "b()void" + pushbytes 0x443b3319 // method "b2()void" + pushbytes 0x84467aff // method "foo()void" txna ApplicationArgs 0 match *abi_route_a *abi_route_b *abi_route_b2 *abi_route_foo diff --git a/tests/contracts/artifacts/MultiInheritance.arc32.json b/tests/contracts/artifacts/MultiInheritance.arc32.json index a2a02824c..b6edaf6fc 100644 --- a/tests/contracts/artifacts/MultiInheritance.arc32.json +++ b/tests/contracts/artifacts/MultiInheritance.arc32.json @@ -63,7 +63,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJaW50IDEKCXJldHVybgoKLy8gYjIoKTogdm9pZApiMjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjg4CgkvLyBsb2coJ2IyJykKCWJ5dGUgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgovLyBmb28oKXZvaWQKKmFiaV9yb3V0ZV9mb286CgkvLyBleGVjdXRlIGZvbygpdm9pZAoJY2FsbHN1YiBmb28KCWludCAxCglyZXR1cm4KCi8vIGZvbygpOiB2b2lkCmZvbzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjk0CgkvLyBsb2coQjIuYXBwcm92YWxQcm9ncmFtKCkpCglieXRlIGI2NCBDaUFCQVRFWUZJRUdDekVaQ0kwTUFDOEFBQUFBQUFBQUFBQUFBQ0VBQUFBQUFBQUFBQUFBQUlnQUFpSkRpZ0FBZ0FGaGdia0taNG1JQUFJaVE0b0FBSUFDWWpLd2lTSkRnQVM0UkhzMk5ob0FqZ0gvOFFDQUJCNTZyUnlBQkVRN014azJHZ0NPQXYrOS84MEEKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCW1ldGhvZCAiYjIoKXZvaWQiCgltZXRob2QgImZvbygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IgKmFiaV9yb3V0ZV9iMiAqYWJpX3JvdXRlX2ZvbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGEoKXZvaWQKKmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglwdXNoaW50IDEzMzcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGIoKXZvaWQKKmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBiKCk6IHZvaWQKYjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI0CgkvLyBhc3NlcnQodGhpcy5hS2V5LnZhbHVlID09PSAxMzM3KQoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXB1c2hpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJcHVzaGJ5dGVzIDB4NjIgLy8gImIiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglwdXNoYnl0ZXMgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgovLyBmb28oKXZvaWQKKmFiaV9yb3V0ZV9mb286CgkvLyBleGVjdXRlIGZvbygpdm9pZAoJY2FsbHN1YiBmb28KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBmb28oKTogdm9pZApmb286Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo5NAoJLy8gbG9nKEIyLmFwcHJvdmFsUHJvZ3JhbSgpKQoJcHVzaGJ5dGVzIDB4MGEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDAzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODAwMDM4MTAxNDM4YTAwMDA4MDAxNjE4MWI5MGE2Nzg5ODgwMDAzODEwMTQzOGEwMDAwODAwMjYyMzJiMDg5ODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMDgwMDQxZTdhYWQxYzgwMDQ0NDNiMzMxOTM2MWEwMDhlMDJmZmJhZmZjYjAwCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MWU3YWFkMWMgLy8gbWV0aG9kICJhKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2FjOTBiMDggLy8gbWV0aG9kICJiKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDQzYjMzMTkgLy8gbWV0aG9kICJiMigpdm9pZCIKCXB1c2hieXRlcyAweDg0NDY3YWZmIC8vIG1ldGhvZCAiZm9vKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYiAqYWJpX3JvdXRlX2IyICphYmlfcm91dGVfZm9vCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/MultiInheritance.arc56_draft.json b/tests/contracts/artifacts/MultiInheritance.arc56_draft.json index 0316fa261..b39f5faea 100644 --- a/tests/contracts/artifacts/MultiInheritance.arc56_draft.json +++ b/tests/contracts/artifacts/MultiInheritance.arc56_draft.json @@ -111,627 +111,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 92, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ] - }, - { - "teal": 13, - "source": 92, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 14, - "source": 92, - "pc": [ - 12 - ] - }, - { - "teal": 15, - "source": 92, - "pc": [ - 13, - 14 - ] - }, - { - "teal": 16, - "source": 92, - "pc": [ - 15 - ] - }, - { - "teal": 17, - "source": 92, - "pc": [ - 16, - 17 - ] - }, - { - "teal": 18, - "source": 92, - "pc": [ - 18 - ] - }, - { - "teal": 19, - "source": 92, - "pc": [ - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44 - ] - }, - { - "teal": 23, - "source": 92, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 45 - ] - }, - { - "teal": 28, - "source": 15, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 29, - "source": 15, - "pc": [ - 49 - ] - }, - { - "teal": 30, - "source": 15, - "pc": [ - 50 - ] - }, - { - "teal": 34, - "source": 15, - "pc": [ - 51, - 52, - 53 - ] - }, - { - "teal": 38, - "source": 16, - "pc": [ - 54 - ] - }, - { - "teal": 39, - "source": 16, - "pc": [ - 55 - ] - }, - { - "teal": 40, - "source": 16, - "pc": [ - 56 - ] - }, - { - "teal": 41, - "source": 15, - "pc": [ - 57 - ] - }, - { - "teal": 46, - "source": 23, - "pc": [ - 58, - 59, - 60 - ] - }, - { - "teal": 47, - "source": 23, - "pc": [ - 61 - ] - }, - { - "teal": 48, - "source": 23, - "pc": [ - 62 - ] - }, - { - "teal": 52, - "source": 23, - "pc": [ - 63, - 64, - 65 - ] - }, - { - "teal": 56, - "source": 24, - "pc": [ - 66 - ] - }, - { - "teal": 57, - "source": 24, - "pc": [ - 67 - ] - }, - { - "teal": 58, - "source": 24, - "pc": [ - 68 - ] - }, - { - "teal": 59, - "source": 24, - "pc": [ - 69 - ] - }, - { - "teal": 60, - "source": 24, - "pc": [ - 70 - ] - }, - { - "teal": 64, - "source": 25, - "pc": [ - 71, - 72, - 73 - ] - }, - { - "teal": 65, - "source": 25, - "pc": [ - 74, - 75 - ] - }, - { - "teal": 66, - "source": 25, - "pc": [ - 76 - ] - }, - { - "teal": 67, - "source": 23, - "pc": [ - 77 - ] - }, - { - "teal": 72, - "source": 87, - "pc": [ - 78, - 79, - 80 - ] - }, - { - "teal": 73, - "source": 87, - "pc": [ - 81 - ] - }, - { - "teal": 74, - "source": 87, - "pc": [ - 82 - ] - }, - { - "teal": 78, - "source": 87, - "pc": [ - 83, - 84, - 85 - ] - }, - { - "teal": 82, - "source": 88, - "pc": [ - 86, - 87, - 88, - 89 - ] - }, - { - "teal": 83, - "source": 88, - "pc": [ - 90 - ] - }, - { - "teal": 84, - "source": 87, - "pc": [ - 91 - ] - }, - { - "teal": 89, - "source": 93, - "pc": [ - 92, - 93, - 94 - ] - }, - { - "teal": 90, - "source": 93, - "pc": [ - 95 - ] - }, - { - "teal": 91, - "source": 93, - "pc": [ - 96 - ] - }, - { - "teal": 95, - "source": 93, - "pc": [ - 97, - 98, - 99 - ] - }, - { - "teal": 99, - "source": 94, - "pc": [ - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209 - ] - }, - { - "teal": 100, - "source": 94, - "pc": [ - 210 - ] - }, - { - "teal": 101, - "source": 93, - "pc": [ - 211 - ] - }, - { - "teal": 104, - "source": 92, - "pc": [ - 212 - ] - }, - { - "teal": 105, - "source": 92, - "pc": [ - 213 - ] - }, - { - "teal": 108, - "source": 92, - "pc": [ - 214, - 215, - 216, - 217, - 218, - 219 - ] - }, - { - "teal": 109, - "source": 92, - "pc": [ - 220, - 221, - 222 - ] - }, - { - "teal": 110, - "source": 92, - "pc": [ - 223, - 224, - 225, - 226 - ] - }, - { - "teal": 113, - "source": 92, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 227 - ] - }, - { - "teal": 116, - "source": 92, - "pc": [ - 228, - 229, - 230, - 231, - 232, - 233 - ] - }, - { - "teal": 117, - "source": 92, - "pc": [ - 234, - 235, - 236, - 237, - 238, - 239 - ] - }, - { - "teal": 118, - "source": 92, - "pc": [ - 240, - 241, - 242, - 243, - 244, - 245 - ] - }, - { - "teal": 119, - "source": 92, - "pc": [ - 246, - 247, - 248, - 249, - 250, - 251 - ] - }, - { - "teal": 120, - "source": 92, - "pc": [ - 252, - 253, - 254 - ] - }, - { - "teal": 121, - "source": 92, - "pc": [ - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264 - ] - }, - { - "teal": 124, - "source": 92, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 265 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 40 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 235 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 273 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBhKCl2b2lkCiphYmlfcm91dGVfYToKCS8vIGV4ZWN1dGUgYSgpdm9pZAoJY2FsbHN1YiBhCglpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglpbnQgMTMzNwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYigpdm9pZAoqYWJpX3JvdXRlX2I6CgkvLyBleGVjdXRlIGIoKXZvaWQKCWNhbGxzdWIgYgoJaW50IDEKCXJldHVybgoKLy8gYigpOiB2b2lkCmI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czoyNAoJLy8gYXNzZXJ0KHRoaXMuYUtleS52YWx1ZSA9PT0gMTMzNykKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0CglpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJYnl0ZSAweDYyIC8vICJiIgoJaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJaW50IDEKCXJldHVybgoKLy8gYjIoKTogdm9pZApiMjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjg4CgkvLyBsb2coJ2IyJykKCWJ5dGUgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgovLyBmb28oKXZvaWQKKmFiaV9yb3V0ZV9mb286CgkvLyBleGVjdXRlIGZvbygpdm9pZAoJY2FsbHN1YiBmb28KCWludCAxCglyZXR1cm4KCi8vIGZvbygpOiB2b2lkCmZvbzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjk0CgkvLyBsb2coQjIuYXBwcm92YWxQcm9ncmFtKCkpCglieXRlIGI2NCBDaUFCQVRFWUZJRUdDekVaQ0kwTUFDOEFBQUFBQUFBQUFBQUFBQ0VBQUFBQUFBQUFBQUFBQUlnQUFpSkRpZ0FBZ0FGaGdia0taNG1JQUFJaVE0b0FBSUFDWWpLd2lTSkRnQVM0UkhzMk5ob0FqZ0gvOFFDQUJCNTZyUnlBQkVRN014azJHZ0NPQXYrOS84MEEKCWxvZwoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCW1ldGhvZCAiYSgpdm9pZCIKCW1ldGhvZCAiYigpdm9pZCIKCW1ldGhvZCAiYjIoKXZvaWQiCgltZXRob2QgImZvbygpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfYSAqYWJpX3JvdXRlX2IgKmFiaV9yb3V0ZV9iMiAqYWJpX3JvdXRlX2ZvbwoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmJ5dGVjYmxvY2sgMHg2MQoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGEoKXZvaWQKKmFiaV9yb3V0ZV9hOgoJLy8gZXhlY3V0ZSBhKCl2b2lkCgljYWxsc3ViIGEKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBhKCk6IHZvaWQKYToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjE2CgkvLyB0aGlzLmFLZXkudmFsdWUgPSAxMzM3CglieXRlIDB4NjEgLy8gImEiCglwdXNoaW50IDEzMzcKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGIoKXZvaWQKKmFiaV9yb3V0ZV9iOgoJLy8gZXhlY3V0ZSBiKCl2b2lkCgljYWxsc3ViIGIKCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBiKCk6IHZvaWQKYjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI0CgkvLyBhc3NlcnQodGhpcy5hS2V5LnZhbHVlID09PSAxMzM3KQoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCXB1c2hpbnQgMTMzNwoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjI1CgkvLyB0aGlzLmJLZXkudmFsdWUgPSA0MgoJcHVzaGJ5dGVzIDB4NjIgLy8gImIiCglwdXNoaW50IDQyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBiMigpdm9pZAoqYWJpX3JvdXRlX2IyOgoJLy8gZXhlY3V0ZSBiMigpdm9pZAoJY2FsbHN1YiBiMgoJcHVzaGludCAxCglyZXR1cm4KCi8vIGIyKCk6IHZvaWQKYjI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo4OAoJLy8gbG9nKCdiMicpCglwdXNoYnl0ZXMgMHg2MjMyIC8vICJiMiIKCWxvZwoJcmV0c3ViCgovLyBmb28oKXZvaWQKKmFiaV9yb3V0ZV9mb286CgkvLyBleGVjdXRlIGZvbygpdm9pZAoJY2FsbHN1YiBmb28KCXB1c2hpbnQgMQoJcmV0dXJuCgovLyBmb28oKTogdm9pZApmb286Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvaW5oZXJpdGFuY2UuYWxnby50czo5NAoJLy8gbG9nKEIyLmFwcHJvdmFsUHJvZ3JhbSgpKQoJcHVzaGJ5dGVzIDB4MGEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDAzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODAwMDM4MTAxNDM4YTAwMDA4MDAxNjE4MWI5MGE2Nzg5ODgwMDAzODEwMTQzOGEwMDAwODAwMjYyMzJiMDg5ODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMDgwMDQxZTdhYWQxYzgwMDQ0NDNiMzMxOTM2MWEwMDhlMDJmZmJhZmZjYjAwCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4MWU3YWFkMWMgLy8gbWV0aG9kICJhKCl2b2lkIgoJcHVzaGJ5dGVzIDB4M2FjOTBiMDggLy8gbWV0aG9kICJiKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDQzYjMzMTkgLy8gbWV0aG9kICJiMigpdm9pZCIKCXB1c2hieXRlcyAweDg0NDY3YWZmIC8vIG1ldGhvZCAiZm9vKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9hICphYmlfcm91dGVfYiAqYWJpX3JvdXRlX2IyICphYmlfcm91dGVfZm9vCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiACAbkKJgEBYTEYFIEGCzEZCI0MALcAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAIgAAiJDigAAKCNniYgAAiJDigAAKGQjEkSAAWKBKmeJiAACIkOKAACAAmIysImIAAIiQ4oAAIBsCiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIgAAiJDigAAgAFhgbkKZ4mIAAIiQ4oAAIACYjKwiSJDgAS4RHs2NhoAjgH/8QCABB56rRyABEQ7Mxk2GgCOAv+9/80AsIkiQ4AEuER7NjYaAI4B//EAgAQeeq0cgAQ6yQsIgAREOzMZgASERnr/NhoAjgT/Jf8x/0X/UwA=", + "approval": "CiYBAWExGBSBBgsxGQiNDADEAAAAAAAAAAAAAAC2AAAAAAAAAAAAAACIAAOBAUOKAACAAWGBuQpniYgAA4EBQ4oAAIABYWSBuQoSRIABYoEqZ4mIAAOBAUOKAACAAmIysImIAAOBAUOKAACAbAoxGBSBBgsxGQiNDAAyAAAAAAAAAAAAAAAkAAAAAAAAAAAAAACIAAOBAUOKAACAAWGBuQpniYgAA4EBQ4oAAIACYjKwiYEBQ4AEuER7NjYaAI4B//AAgAQeeq0cgAREOzMZNhoAjgL/uv/LALCJgQFDgAS4RHs2NhoAjgH/8ACABB56rRyABDrJCwiABEQ7MxmABIRGev82GgCOBP8Y/yn/Qv9RAA==", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal b/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal index 5cf894f24..b1adf8571 100644 --- a/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal +++ b/tests/contracts/artifacts/MultiInheritanceProgram.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -26,7 +26,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_prog: // execute prog()void callsub prog - int 1 + pushint 1 return // prog(): void @@ -35,16 +35,16 @@ prog: // tests/contracts/inheritance.algo.ts:100 // log(MultiInheritance.approvalProgram()) - byte b64 CiACAbkKJgEBYTEYFIEGCzEZCI0MALcAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAIgAAiJDigAAKCNniYgAAiJDigAAKGQjEkSAAWKBKmeJiAACIkOKAACAAmIysImIAAIiQ4oAAIBsCiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIgAAiJDigAAgAFhgbkKZ4mIAAIiQ4oAAIACYjKwiSJDgAS4RHs2NhoAjgH/8QCABB56rRyABEQ7Mxk2GgCOAv+9/80AsIkiQ4AEuER7NjYaAI4B//EAgAQeeq0cgAQ6yQsIgAREOzMZgASERnr/NhoAjgT/Jf8x/0X/UwA= + pushbytes 0x0a2601016131181481060b3119088d0c00c40000000000000000000000b600000000000000000000008800038101438a000080016181b90a67898800038101438a00008001616481b90a1244800162812a67898800038101438a000080026232b0898800038101438a0000806c0a31181481060b3119088d0c003200000000000000000000002400000000000000000000008800038101438a000080016181b90a67898800038101438a000080026232b0898101438004b8447b36361a008e01fff00080041e7aad1c8004443b3319361a008e02ffbaffcb00b0898101438004b8447b36361a008e01fff00080041e7aad1c80043ac90b088004443b3319800484467aff361a008e04ff18ff29ff42ff5100 log retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -52,7 +52,7 @@ prog: err *call_NoOp: - method "prog()void" + pushbytes 0x81d79bef // method "prog()void" txna ApplicationArgs 0 match *abi_route_prog diff --git a/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json b/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json index 63d3867ec..811bef3f8 100644 --- a/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json +++ b/tests/contracts/artifacts/MultiInheritanceProgram.arc32.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwcm9nKCl2b2lkCiphYmlfcm91dGVfcHJvZzoKCS8vIGV4ZWN1dGUgcHJvZygpdm9pZAoJY2FsbHN1YiBwcm9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm9nKCk6IHZvaWQKcHJvZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjEwMAoJLy8gbG9nKE11bHRpSW5oZXJpdGFuY2UuYXBwcm92YWxQcm9ncmFtKCkpCglieXRlIGI2NCBDaUFDQWJrS0pnRUJZVEVZRklFR0N6RVpDSTBNQUxjQUFBQUFBQUFBQUFBQUFLa0FBQUFBQUFBQUFBQUFBSWdBQWlKRGlnQUFLQ05uaVlnQUFpSkRpZ0FBS0dRakVrU0FBV0tCS21lSmlBQUNJa09LQUFDQUFtSXlzSW1JQUFJaVE0b0FBSUJzQ2lBQkFURVlGSUVHQ3pFWkNJME1BQzhBQUFBQUFBQUFBQUFBQUNFQUFBQUFBQUFBQUFBQUFJZ0FBaUpEaWdBQWdBRmhnYmtLWjRtSUFBSWlRNG9BQUlBQ1lqS3dpU0pEZ0FTNFJIczJOaG9BamdILzhRQ0FCQjU2clJ5QUJFUTdNeGsyR2dDT0F2KzkvODBBc0lraVE0QUV1RVI3TmpZYUFJNEIvL0VBZ0FRZWVxMGNnQVE2eVFzSWdBUkVPek1aZ0FTRVJuci9OaG9BamdUL0pmOHgvMFgvVXdBPQoJbG9nCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwcm9nKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcm9nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcHJvZygpdm9pZAoqYWJpX3JvdXRlX3Byb2c6CgkvLyBleGVjdXRlIHByb2coKXZvaWQKCWNhbGxzdWIgcHJvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHByb2coKTogdm9pZApwcm9nOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTAwCgkvLyBsb2coTXVsdGlJbmhlcml0YW5jZS5hcHByb3ZhbFByb2dyYW0oKSkKCXB1c2hieXRlcyAweDBhMjYwMTAxNjEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDBjNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODAwMDM4MTAxNDM4YTAwMDA4MDAxNjE4MWI5MGE2Nzg5ODgwMDAzODEwMTQzOGEwMDAwODAwMTYxNjQ4MWI5MGExMjQ0ODAwMTYyODEyYTY3ODk4ODAwMDM4MTAxNDM4YTAwMDA4MDAyNjIzMmIwODk4ODAwMDM4MTAxNDM4YTAwMDA4MDZjMGEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDAzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODAwMDM4MTAxNDM4YTAwMDA4MDAxNjE4MWI5MGE2Nzg5ODgwMDAzODEwMTQzOGEwMDAwODAwMjYyMzJiMDg5ODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMDgwMDQxZTdhYWQxYzgwMDQ0NDNiMzMxOTM2MWEwMDhlMDJmZmJhZmZjYjAwYjA4OTgxMDE0MzgwMDRiODQ0N2IzNjM2MWEwMDhlMDFmZmYwMDA4MDA0MWU3YWFkMWM4MDA0M2FjOTBiMDg4MDA0NDQzYjMzMTk4MDA0ODQ0NjdhZmYzNjFhMDA4ZTA0ZmYxOGZmMjlmZjQyZmY1MTAwCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ODFkNzliZWYgLy8gbWV0aG9kICJwcm9nKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcm9nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/MultiInheritanceProgram.arc56_draft.json b/tests/contracts/artifacts/MultiInheritanceProgram.arc56_draft.json index f805aee7a..6211dcbe6 100644 --- a/tests/contracts/artifacts/MultiInheritanceProgram.arc56_draft.json +++ b/tests/contracts/artifacts/MultiInheritanceProgram.arc56_draft.json @@ -61,524 +61,40 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 98, - "pc": [ - 0, - 1, - 2, - 3 - ] - }, - { - "teal": 13, - "source": 98, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 14, - "source": 98, - "pc": [ - 6 - ] - }, - { - "teal": 15, - "source": 98, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 16, - "source": 98, - "pc": [ - 9 - ] - }, - { - "teal": 17, - "source": 98, - "pc": [ - 10, - 11 - ] - }, - { - "teal": 18, - "source": 98, - "pc": [ - 12 - ] - }, - { - "teal": 19, - "source": 98, - "pc": [ - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38 - ] - }, - { - "teal": 23, - "source": 98, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 39 - ] - }, - { - "teal": 28, - "source": 99, - "pc": [ - 40, - 41, - 42 - ] - }, - { - "teal": 29, - "source": 99, - "pc": [ - 43 - ] - }, - { - "teal": 30, - "source": 99, - "pc": [ - 44 - ] - }, - { - "teal": 34, - "source": 99, - "pc": [ - 45, - 46, - 47 - ] - }, - { - "teal": 38, - "source": 100, - "pc": [ - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223, - 224, - 225, - 226, - 227, - 228, - 229, - 230, - 231, - 232, - 233, - 234, - 235, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 244, - 245, - 246, - 247, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271, - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295, - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316 - ] - }, - { - "teal": 39, - "source": 100, - "pc": [ - 317 - ] - }, - { - "teal": 40, - "source": 99, - "pc": [ - 318 - ] - }, - { - "teal": 43, - "source": 98, - "pc": [ - 319 - ] - }, - { - "teal": 44, - "source": 98, - "pc": [ - 320 - ] - }, - { - "teal": 47, - "source": 98, - "pc": [ - 321, - 322, - 323, - 324, - 325, - 326 - ] - }, - { - "teal": 48, - "source": 98, - "pc": [ - 327, - 328, - 329 - ] - }, - { - "teal": 49, - "source": 98, - "pc": [ - 330, - 331, - 332, - 333 - ] - }, - { - "teal": 52, - "source": 98, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 334 - ] - }, - { - "teal": 55, - "source": 98, - "pc": [ - 335, - 336, - 337, - 338, - 339, - 340 - ] - }, - { - "teal": 56, - "source": 98, - "pc": [ - 341, - 342, - 343 - ] - }, - { - "teal": 57, - "source": 98, - "pc": [ - 344, - 345, - 346, - 347 - ] - }, - { - "teal": 60, - "source": 98, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 348 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 341 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 355 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwcm9nKCl2b2lkCiphYmlfcm91dGVfcHJvZzoKCS8vIGV4ZWN1dGUgcHJvZygpdm9pZAoJY2FsbHN1YiBwcm9nCglpbnQgMQoJcmV0dXJuCgovLyBwcm9nKCk6IHZvaWQKcHJvZzoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9pbmhlcml0YW5jZS5hbGdvLnRzOjEwMAoJLy8gbG9nKE11bHRpSW5oZXJpdGFuY2UuYXBwcm92YWxQcm9ncmFtKCkpCglieXRlIGI2NCBDaUFDQWJrS0pnRUJZVEVZRklFR0N6RVpDSTBNQUxjQUFBQUFBQUFBQUFBQUFLa0FBQUFBQUFBQUFBQUFBSWdBQWlKRGlnQUFLQ05uaVlnQUFpSkRpZ0FBS0dRakVrU0FBV0tCS21lSmlBQUNJa09LQUFDQUFtSXlzSW1JQUFJaVE0b0FBSUJzQ2lBQkFURVlGSUVHQ3pFWkNJME1BQzhBQUFBQUFBQUFBQUFBQUNFQUFBQUFBQUFBQUFBQUFJZ0FBaUpEaWdBQWdBRmhnYmtLWjRtSUFBSWlRNG9BQUlBQ1lqS3dpU0pEZ0FTNFJIczJOaG9BamdILzhRQ0FCQjU2clJ5QUJFUTdNeGsyR2dDT0F2KzkvODBBc0lraVE0QUV1RVI3TmpZYUFJNEIvL0VBZ0FRZWVxMGNnQVE2eVFzSWdBUkVPek1aZ0FTRVJuci9OaG9BamdUL0pmOHgvMFgvVXdBPQoJbG9nCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJwcm9nKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcm9nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gcHJvZygpdm9pZAoqYWJpX3JvdXRlX3Byb2c6CgkvLyBleGVjdXRlIHByb2coKXZvaWQKCWNhbGxzdWIgcHJvZwoJcHVzaGludCAxCglyZXR1cm4KCi8vIHByb2coKTogdm9pZApwcm9nOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2luaGVyaXRhbmNlLmFsZ28udHM6MTAwCgkvLyBsb2coTXVsdGlJbmhlcml0YW5jZS5hcHByb3ZhbFByb2dyYW0oKSkKCXB1c2hieXRlcyAweDBhMjYwMTAxNjEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDBjNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODAwMDM4MTAxNDM4YTAwMDA4MDAxNjE4MWI5MGE2Nzg5ODgwMDAzODEwMTQzOGEwMDAwODAwMTYxNjQ4MWI5MGExMjQ0ODAwMTYyODEyYTY3ODk4ODAwMDM4MTAxNDM4YTAwMDA4MDAyNjIzMmIwODk4ODAwMDM4MTAxNDM4YTAwMDA4MDZjMGEzMTE4MTQ4MTA2MGIzMTE5MDg4ZDBjMDAzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODAwMDM4MTAxNDM4YTAwMDA4MDAxNjE4MWI5MGE2Nzg5ODgwMDAzODEwMTQzOGEwMDAwODAwMjYyMzJiMDg5ODEwMTQzODAwNGI4NDQ3YjM2MzYxYTAwOGUwMWZmZjAwMDgwMDQxZTdhYWQxYzgwMDQ0NDNiMzMxOTM2MWEwMDhlMDJmZmJhZmZjYjAwYjA4OTgxMDE0MzgwMDRiODQ0N2IzNjM2MWEwMDhlMDFmZmYwMDA4MDA0MWU3YWFkMWM4MDA0M2FjOTBiMDg4MDA0NDQzYjMzMTk4MDA0ODQ0NjdhZmYzNjFhMDA4ZTA0ZmYxOGZmMjlmZjQyZmY1MTAwCglsb2cKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJcHVzaGJ5dGVzIDB4ODFkNzliZWYgLy8gbWV0aG9kICJwcm9nKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcm9nCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiABATEYFIEGCzEZCI0MASgAAAAAAAAAAAAAARoAAAAAAAAAAAAAAIgAAiJDigAAgIoCCiACAbkKJgEBYTEYFIEGCzEZCI0MALcAAAAAAAAAAAAAAKkAAAAAAAAAAAAAAIgAAiJDigAAKCNniYgAAiJDigAAKGQjEkSAAWKBKmeJiAACIkOKAACAAmIysImIAAIiQ4oAAIBsCiABATEYFIEGCzEZCI0MAC8AAAAAAAAAAAAAACEAAAAAAAAAAAAAAIgAAiJDigAAgAFhgbkKZ4mIAAIiQ4oAAIACYjKwiSJDgAS4RHs2NhoAjgH/8QCABB56rRyABEQ7Mxk2GgCOAv+9/80AsIkiQ4AEuER7NjYaAI4B//EAgAQeeq0cgAQ6yQsIgAREOzMZgASERnr/NhoAjgT/Jf8x/0X/UwCwiSJDgAS4RHs2NhoAjgH/8QCABIHXm+82GgCOAf7MAA==", + "approval": "CjEYFIEGCzEZCI0MATIAAAAAAAAAAAAAASQAAAAAAAAAAAAAAIgAA4EBQ4oAAICSAgomAQFhMRgUgQYLMRkIjQwAxAAAAAAAAAAAAAAAtgAAAAAAAAAAAAAAiAADgQFDigAAgAFhgbkKZ4mIAAOBAUOKAACAAWFkgbkKEkSAAWKBKmeJiAADgQFDigAAgAJiMrCJiAADgQFDigAAgGwKMRgUgQYLMRkIjQwAMgAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAiAADgQFDigAAgAFhgbkKZ4mIAAOBAUOKAACAAmIysImBAUOABLhEezY2GgCOAf/wAIAEHnqtHIAERDszGTYaAI4C/7r/ywCwiYEBQ4AEuER7NjYaAI4B//AAgAQeeq0cgAQ6yQsIgAREOzMZgASERnr/NhoAjgT/GP8p/0L/UQCwiYEBQ4AEuER7NjYaAI4B//AAgASB15vvNhoAjgH+wgA=", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/ProgramVersion.approval.teal b/tests/contracts/artifacts/ProgramVersion.approval.teal index 857370e2d..5614e4974 100644 --- a/tests/contracts/artifacts/ProgramVersion.approval.teal +++ b/tests/contracts/artifacts/ProgramVersion.approval.teal @@ -1,6 +1,6 @@ #pragma version 8 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -23,11 +23,11 @@ switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_ err *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication diff --git a/tests/contracts/artifacts/ProgramVersion.arc32.json b/tests/contracts/artifacts/ProgramVersion.arc32.json index cffc2a82f..f2541d360 100644 --- a/tests/contracts/artifacts/ProgramVersion.arc32.json +++ b/tests/contracts/artifacts/ProgramVersion.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTAzLjIKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDg=" }, "contract": { diff --git a/tests/contracts/artifacts/ProgramVersion.arc56_draft.json b/tests/contracts/artifacts/ProgramVersion.arc56_draft.json index c0478d9da..6427f71b2 100644 --- a/tests/contracts/artifacts/ProgramVersion.arc56_draft.json +++ b/tests/contracts/artifacts/ProgramVersion.arc56_draft.json @@ -48,158 +48,30 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 44, - "pc": [ - 0 - ] - }, - { - "teal": 13, - "source": 44, - "pc": [ - 1, - 2 - ] - }, - { - "teal": 14, - "source": 44, - "pc": [ - 3 - ] - }, - { - "teal": 15, - "source": 44, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 16, - "source": 44, - "pc": [ - 6 - ] - }, - { - "teal": 17, - "source": 44, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 18, - "source": 44, - "pc": [ - 9 - ] - }, - { - "teal": 19, - "source": 44, - "pc": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "teal": 23, - "source": 44, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 36 - ] - }, - { - "teal": 26, - "source": 44, - "pc": [ - 37, - 38 - ] - }, - { - "teal": 27, - "source": 44, - "pc": [ - 39 - ] - }, - { - "teal": 30, - "source": 44, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 44, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 44, - "pc": [ - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 44, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 53 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 53 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTAzLjIKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDgKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCnB1c2hpbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJcHVzaGludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCXB1c2hieXRlcyAweGI4NDQ3YjM2IC8vIG1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDg=" }, "byteCode": { diff --git a/tests/contracts/artifacts/SchemaContract.approval.teal b/tests/contracts/artifacts/SchemaContract.approval.teal index d89d9563d..da4fbac83 100644 --- a/tests/contracts/artifacts/SchemaContract.approval.teal +++ b/tests/contracts/artifacts/SchemaContract.approval.teal @@ -1,6 +1,6 @@ #pragma version 10 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +12,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -23,11 +23,11 @@ switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_ err *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication diff --git a/tests/contracts/artifacts/SchemaContract.arc32.json b/tests/contracts/artifacts/SchemaContract.arc32.json index 9490cd663..1e1989ad6 100644 --- a/tests/contracts/artifacts/SchemaContract.arc32.json +++ b/tests/contracts/artifacts/SchemaContract.arc32.json @@ -34,7 +34,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/SchemaContract.arc56_draft.json b/tests/contracts/artifacts/SchemaContract.arc56_draft.json index cba5203a4..5208d1da9 100644 --- a/tests/contracts/artifacts/SchemaContract.arc56_draft.json +++ b/tests/contracts/artifacts/SchemaContract.arc56_draft.json @@ -66,158 +66,30 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 13, - "pc": [ - 0 - ] - }, - { - "teal": 13, - "source": 13, - "pc": [ - 1, - 2 - ] - }, - { - "teal": 14, - "source": 13, - "pc": [ - 3 - ] - }, - { - "teal": 15, - "source": 13, - "pc": [ - 4, - 5 - ] - }, - { - "teal": 16, - "source": 13, - "pc": [ - 6 - ] - }, - { - "teal": 17, - "source": 13, - "pc": [ - 7, - 8 - ] - }, - { - "teal": 18, - "source": 13, - "pc": [ - 9 - ] - }, - { - "teal": 19, - "source": 13, - "pc": [ - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35 - ] - }, - { - "teal": 23, - "source": 13, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 36 - ] - }, - { - "teal": 26, - "source": 13, - "pc": [ - 37, - 38 - ] - }, - { - "teal": 27, - "source": 13, - "pc": [ - 39 - ] - }, - { - "teal": 30, - "source": 13, - "pc": [ - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "teal": 31, - "source": 13, - "pc": [ - 46, - 47, - 48 - ] - }, - { - "teal": 32, - "source": 13, - "pc": [ - 49, - 50, - 51, - 52 - ] - }, - { - "teal": 35, - "source": 13, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 53 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 36 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 53 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwNC4wCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCXB1c2hpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CglwdXNoYnl0ZXMgMHhiODQ0N2IzNiAvLyBtZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { diff --git a/tests/contracts/artifacts/StorageTest.approval.teal b/tests/contracts/artifacts/StorageTest.approval.teal index 805ff0896..afb1fefeb 100644 --- a/tests/contracts/artifacts/StorageTest.approval.teal +++ b/tests/contracts/artifacts/StorageTest.approval.teal @@ -1,6 +1,8 @@ #pragma version 10 +intcblock 1 32 1024 +bytecblock 0x666f6f 0x6c617267655374617469634172726179496e426f78 0x626172 0x151f7c75 0x616263 0x01c8 -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -12,7 +14,7 @@ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -708,7 +710,7 @@ boxKeyReplace: // tests/contracts/storage.algo.ts:144 // this.boxKey.replace(0, 'abc') byte 0x666f6f // "foo" - int 0 + pushint 0 byte 0x616263 // "abc" box_replace retsub @@ -727,7 +729,7 @@ boxMapReplace: // tests/contracts/storage.algo.ts:148 // this.boxMap('bar').replace(0, 'abc') byte 0x626172 // "bar" - int 0 + pushint 0 byte 0x616263 // "abc" box_replace retsub @@ -757,8 +759,8 @@ boxKeyExtract: // tests/contracts/storage.algo.ts:152 // return this.boxKey.extract(0, 3); byte 0x666f6f // "foo" - int 0 - int 3 + pushint 0 + pushint 3 box_extract retsub @@ -787,8 +789,8 @@ boxMapExtract: // tests/contracts/storage.algo.ts:156 // return this.boxMap('bar').extract(0, 3); byte 0x626172 // "bar" - int 0 - int 3 + pushint 0 + pushint 3 box_extract retsub @@ -799,8 +801,8 @@ boxMapExtract: // execute isOptedIn()bool callsub isOptedIn - byte 0x00 - int 0 + pushbytes 0x00 + pushint 0 uncover 2 setbit concat @@ -874,7 +876,7 @@ exLocal: itob dup bitlen - int 16 + pushint 16 <= // accessStaticValueInLargeBox return value overflowed 16 bits @@ -892,22 +894,22 @@ accessStaticValueInLargeBox: // tests/contracts/storage.algo.ts:172 // this.largeStaticArrayInBox.create() byte 0x6c617267655374617469634172726179496e426f78 // "largeStaticArrayInBox" - int 8000 + pushint 8000 box_create pop // tests/contracts/storage.algo.ts:173 // this.largeStaticArrayInBox.value[123] = 456 byte 0x6c617267655374617469634172726179496e426f78 // "largeStaticArrayInBox" - int 246 + pushint 246 byte 0x01c8 box_replace // tests/contracts/storage.algo.ts:175 // return this.largeStaticArrayInBox.value[123]; byte 0x6c617267655374617469634172726179496e426f78 // "largeStaticArrayInBox" - int 246 - int 2 + pushint 246 + pushint 2 box_extract btoi retsub @@ -926,7 +928,7 @@ accessStaticValueInLargeBox: itob dup bitlen - int 16 + pushint 16 <= // dynamicAccessStaticValueInLargeBox return value overflowed 16 bits @@ -944,14 +946,14 @@ dynamicAccessStaticValueInLargeBox: // tests/contracts/storage.algo.ts:179 // this.largeStaticArrayInBox.create() byte 0x6c617267655374617469634172726179496e426f78 // "largeStaticArrayInBox" - int 8000 + pushint 8000 box_create pop // tests/contracts/storage.algo.ts:180 // this.largeStaticArrayInBox.value[i] = 456 frame_dig -1 // i: uint64 - int 2 + pushint 2 * // acc * typeLength byte 0x01c8 byte 0x6c617267655374617469634172726179496e426f78 // "largeStaticArrayInBox" @@ -961,9 +963,9 @@ dynamicAccessStaticValueInLargeBox: // tests/contracts/storage.algo.ts:184 // return a[i]; frame_dig -1 // i: uint64 - int 2 + pushint 2 * // acc * typeLength - int 2 + pushint 2 byte 0x6c617267655374617469634172726179496e426f78 // "largeStaticArrayInBox" cover 2 box_extract @@ -1008,7 +1010,7 @@ boxSplice: // tests/contracts/storage.algo.ts:193 // this.boxKey.splice(0, 1, 'abc') byte 0x666f6f // "foo" - int 0 + pushint 0 int 1 byte 0x616263 // "abc" box_splice @@ -1016,7 +1018,7 @@ boxSplice: // tests/contracts/storage.algo.ts:194 // this.boxMap('bar').splice(0, 1, 'abc') byte 0x626172 // "bar" - int 0 + pushint 0 int 1 byte 0x616263 // "abc" box_splice @@ -1058,7 +1060,7 @@ exStateExists: return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -1066,47 +1068,47 @@ exStateExists: err *call_NoOp: - method "prefix()void" - method "globalKeyPut()void" - method "globalKeyGet()void" - method "globalKeyDelete()void" - method "globalKeyExists()void" - method "localKeyPut(address)void" - method "localKeyGet(address)void" - method "localKeyDelete(address)void" - method "localKeyExists(address)void" - method "boxKeyPut()void" - method "boxKeyGet()void" - method "boxKeyDelete()void" - method "boxKeyExists()void" - method "globalMapPut()void" - method "globalMapGet()void" - method "globalMapDelete()void" - method "globalMapExists()void" - method "localMapPut(address)void" - method "localMapGet(address)void" - method "localMapDelete(address)void" - method "localMapExists(address)void" - method "boxMapPut()void" - method "boxMapGet()void" - method "boxMapDelete()void" - method "boxMapExists()void" - method "boxKeyCreate()void" - method "boxMapCreate()void" - method "boxKeyLength()uint64" - method "boxMapLength()uint64" - method "boxKeyReplace()void" - method "boxMapReplace()void" - method "boxKeyExtract()string" - method "boxMapExtract()string" - method "isOptedIn()bool" - method "exGlobal()void" - method "exLocal()void" - method "accessStaticValueInLargeBox()uint16" - method "dynamicAccessStaticValueInLargeBox(uint64)uint16" - method "boxResize()void" - method "boxSplice()void" - method "exStateExists()void" + pushbytes 0x5b02ba87 // method "prefix()void" + pushbytes 0x47826307 // method "globalKeyPut()void" + pushbytes 0xd387cd2c // method "globalKeyGet()void" + pushbytes 0x2f78db03 // method "globalKeyDelete()void" + pushbytes 0xd8181a9a // method "globalKeyExists()void" + pushbytes 0xecb06998 // method "localKeyPut(address)void" + pushbytes 0x56dace1d // method "localKeyGet(address)void" + pushbytes 0x768c8c68 // method "localKeyDelete(address)void" + pushbytes 0xbc0ea6bb // method "localKeyExists(address)void" + pushbytes 0xcf48ae4d // method "boxKeyPut()void" + pushbytes 0xe9dab493 // method "boxKeyGet()void" + pushbytes 0x090fdfd6 // method "boxKeyDelete()void" + pushbytes 0x5ff9d0dd // method "boxKeyExists()void" + pushbytes 0x17c8206a // method "globalMapPut()void" + pushbytes 0xcd868bf2 // method "globalMapGet()void" + pushbytes 0xb55de20c // method "globalMapDelete()void" + pushbytes 0xc97d8d24 // method "globalMapExists()void" + pushbytes 0xfc83803c // method "localMapPut(address)void" + pushbytes 0x9875355d // method "localMapGet(address)void" + pushbytes 0x742a6e83 // method "localMapDelete(address)void" + pushbytes 0x88235265 // method "localMapExists(address)void" + pushbytes 0x84e5681c // method "boxMapPut()void" + pushbytes 0xae3ce7ee // method "boxMapGet()void" + pushbytes 0xb9e0ed3d // method "boxMapDelete()void" + pushbytes 0x652bd5d6 // method "boxMapExists()void" + pushbytes 0xd36ee315 // method "boxKeyCreate()void" + pushbytes 0x1029bd07 // method "boxMapCreate()void" + pushbytes 0xa747b62f // method "boxKeyLength()uint64" + pushbytes 0x5a1eefbe // method "boxMapLength()uint64" + pushbytes 0x1337dd60 // method "boxKeyReplace()void" + pushbytes 0x424ef95a // method "boxMapReplace()void" + pushbytes 0x88c1c309 // method "boxKeyExtract()string" + pushbytes 0x43635643 // method "boxMapExtract()string" + pushbytes 0xab42554e // method "isOptedIn()bool" + pushbytes 0x0167b7a2 // method "exGlobal()void" + pushbytes 0xaad51755 // method "exLocal()void" + pushbytes 0x1b41ce22 // method "accessStaticValueInLargeBox()uint16" + pushbytes 0xf5da1a55 // method "dynamicAccessStaticValueInLargeBox(uint64)uint16" + pushbytes 0xbc5c18fd // method "boxResize()void" + pushbytes 0x25a92329 // method "boxSplice()void" + pushbytes 0x4ed8699b // method "exStateExists()void" txna ApplicationArgs 0 match *abi_route_prefix *abi_route_globalKeyPut *abi_route_globalKeyGet *abi_route_globalKeyDelete *abi_route_globalKeyExists *abi_route_localKeyPut *abi_route_localKeyGet *abi_route_localKeyDelete *abi_route_localKeyExists *abi_route_boxKeyPut *abi_route_boxKeyGet *abi_route_boxKeyDelete *abi_route_boxKeyExists *abi_route_globalMapPut *abi_route_globalMapGet *abi_route_globalMapDelete *abi_route_globalMapExists *abi_route_localMapPut *abi_route_localMapGet *abi_route_localMapDelete *abi_route_localMapExists *abi_route_boxMapPut *abi_route_boxMapGet *abi_route_boxMapDelete *abi_route_boxMapExists *abi_route_boxKeyCreate *abi_route_boxMapCreate *abi_route_boxKeyLength *abi_route_boxMapLength *abi_route_boxKeyReplace *abi_route_boxMapReplace *abi_route_boxKeyExtract *abi_route_boxMapExtract *abi_route_isOptedIn *abi_route_exGlobal *abi_route_exLocal *abi_route_accessStaticValueInLargeBox *abi_route_dynamicAccessStaticValueInLargeBox *abi_route_boxResize *abi_route_boxSplice *abi_route_exStateExists diff --git a/tests/contracts/artifacts/StorageTest.arc32.json b/tests/contracts/artifacts/StorageTest.arc32.json index a069af019..5b23e2ddb 100644 --- a/tests/contracts/artifacts/StorageTest.arc32.json +++ b/tests/contracts/artifacts/StorageTest.arc32.json @@ -249,7 +249,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwcmVmaXgoKXZvaWQKKmFiaV9yb3V0ZV9wcmVmaXg6CgkvLyBleGVjdXRlIHByZWZpeCgpdm9pZAoJY2FsbHN1YiBwcmVmaXgKCWludCAxCglyZXR1cm4KCi8vIHByZWZpeCgpOiB2b2lkCnByZWZpeDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjYKCS8vIHRoaXMuYm94TWFwV2l0aFByZWZpeCgnb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjcKCS8vIHRoaXMuZ2xvYmFsTWFwV2l0aFByZWZpeCgnb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjgKCS8vIHRoaXMubG9jYWxNYXBXaXRoUHJlZml4KHRoaXMudHhuLnNlbmRlciwgJ29vJykudmFsdWUgPSAnYmFyJwoJdHhuIFNlbmRlcgoJYnl0ZSAweDY2NmY2ZgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBnbG9iYWxLZXlQdXQoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxLZXlQdXQ6CgkvLyBleGVjdXRlIGdsb2JhbEtleVB1dCgpdm9pZAoJY2FsbHN1YiBnbG9iYWxLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbEtleVB1dCgpOiB2b2lkCmdsb2JhbEtleVB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MzIKCS8vIHRoaXMuZ2xvYmFsS2V5LnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbEtleUdldCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleUdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5R2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5R2V0KCk6IHZvaWQKZ2xvYmFsS2V5R2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czozNgoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbEtleURlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleURlbGV0ZToKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5RGVsZXRlKCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleURlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5RGVsZXRlKCk6IHZvaWQKZ2xvYmFsS2V5RGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0MAoJLy8gdGhpcy5nbG9iYWxLZXkuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZGVsCglyZXRzdWIKCi8vIGdsb2JhbEtleUV4aXN0cygpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleUV4aXN0czoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5RXhpc3RzKCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5RXhpc3RzKCk6IHZvaWQKZ2xvYmFsS2V5RXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LmV4aXN0cykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbEtleVB1dChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbEtleVB1dDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsS2V5UHV0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsS2V5UHV0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbEtleVB1dAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxLZXlQdXQoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxLZXlQdXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQ4CgkvLyB0aGlzLmxvY2FsS2V5KGEpLnZhbHVlID0gJ2JhcicKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGxvY2FsS2V5R2V0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5R2V0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlHZXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlHZXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5R2V0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleUdldChhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleUdldDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NTIKCS8vIGFzc2VydCh0aGlzLmxvY2FsS2V5KGEpLnZhbHVlID09PSAnYmFyJykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsS2V5RGVsZXRlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5RGVsZXRlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlEZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlEZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleURlbGV0ZShhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleURlbGV0ZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NTYKCS8vIHRoaXMubG9jYWxLZXkoYSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZGVsCglyZXRzdWIKCi8vIGxvY2FsS2V5RXhpc3RzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5RXhpc3RzOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlFeGlzdHMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlFeGlzdHMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleUV4aXN0cyhhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleUV4aXN0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjAKCS8vIGFzc2VydCh0aGlzLmxvY2FsS2V5KGEpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlQdXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlQdXQ6CgkvLyBleGVjdXRlIGJveEtleVB1dCgpdm9pZAoJY2FsbHN1YiBib3hLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGJveEtleVB1dCgpOiB2b2lkCmJveEtleVB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjQKCS8vIHRoaXMuYm94S2V5LnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9wdXQKCXJldHN1YgoKLy8gYm94S2V5R2V0KCl2b2lkCiphYmlfcm91dGVfYm94S2V5R2V0OgoJLy8gZXhlY3V0ZSBib3hLZXlHZXQoKXZvaWQKCWNhbGxzdWIgYm94S2V5R2V0CglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlHZXQoKTogdm9pZApib3hLZXlHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjY4CgkvLyBhc3NlcnQodGhpcy5ib3hLZXkudmFsdWUgPT09ICdiYXInKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkudmFsdWUKCWFzc2VydAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlEZWxldGU6CgkvLyBleGVjdXRlIGJveEtleURlbGV0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleURlbGV0ZSgpOiB2b2lkCmJveEtleURlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NzIKCS8vIHRoaXMuYm94S2V5LmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZGVsCglyZXRzdWIKCi8vIGJveEtleUV4aXN0cygpdm9pZAoqYWJpX3JvdXRlX2JveEtleUV4aXN0czoKCS8vIGV4ZWN1dGUgYm94S2V5RXhpc3RzKCl2b2lkCgljYWxsc3ViIGJveEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RXhpc3RzKCk6IHZvaWQKYm94S2V5RXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo3NgoJLy8gYXNzZXJ0KHRoaXMuYm94S2V5LmV4aXN0cykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbE1hcFB1dCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcFB1dDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwUHV0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcFB1dAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwUHV0KCk6IHZvaWQKZ2xvYmFsTWFwUHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4MAoJLy8gdGhpcy5nbG9iYWxNYXAoJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbE1hcEdldCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcEdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwR2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwR2V0KCk6IHZvaWQKZ2xvYmFsTWFwR2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBnbG9iYWxNYXBEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxNYXBEZWxldGU6CgkvLyBleGVjdXRlIGdsb2JhbE1hcERlbGV0ZSgpdm9pZAoJY2FsbHN1YiBnbG9iYWxNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1hcERlbGV0ZSgpOiB2b2lkCmdsb2JhbE1hcERlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6ODgKCS8vIHRoaXMuZ2xvYmFsTWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9kZWwKCXJldHN1YgoKLy8gZ2xvYmFsTWFwRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwRXhpc3RzOgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBFeGlzdHMoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBFeGlzdHMoKTogdm9pZApnbG9iYWxNYXBFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjkyCgkvLyBhc3NlcnQodGhpcy5nbG9iYWxNYXAoJ2ZvbycpLmV4aXN0cykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbE1hcFB1dChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcFB1dDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsTWFwUHV0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsTWFwUHV0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcFB1dAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBQdXQoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxNYXBQdXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjk2CgkvLyB0aGlzLmxvY2FsTWFwKGEsICdmb28nKS52YWx1ZSA9ICdiYXInCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBsb2NhbE1hcEdldChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcEdldDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsTWFwR2V0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsTWFwR2V0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBHZXQoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxNYXBHZXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEwMAoJLy8gYXNzZXJ0KHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsTWFwRGVsZXRlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsTWFwRGVsZXRlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxNYXBEZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBEZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsTWFwRGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcERlbGV0ZShhOiBBZGRyZXNzKTogdm9pZApsb2NhbE1hcERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTA0CgkvLyB0aGlzLmxvY2FsTWFwKGEsICdmb28nKS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9kZWwKCXJldHN1YgoKLy8gbG9jYWxNYXBFeGlzdHMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBFeGlzdHM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbE1hcEV4aXN0cyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbE1hcEV4aXN0cyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwRXhpc3RzKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsTWFwRXhpc3RzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMDgKCS8vIGFzc2VydCh0aGlzLmxvY2FsTWFwKGEsICdmb28nKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYm94TWFwUHV0KCl2b2lkCiphYmlfcm91dGVfYm94TWFwUHV0OgoJLy8gZXhlY3V0ZSBib3hNYXBQdXQoKXZvaWQKCWNhbGxzdWIgYm94TWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBQdXQoKTogdm9pZApib3hNYXBQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjExMgoJLy8gdGhpcy5ib3hNYXAoJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9wdXQKCXJldHN1YgoKLy8gYm94TWFwR2V0KCl2b2lkCiphYmlfcm91dGVfYm94TWFwR2V0OgoJLy8gZXhlY3V0ZSBib3hNYXBHZXQoKXZvaWQKCWNhbGxzdWIgYm94TWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBHZXQoKTogdm9pZApib3hNYXBHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjExNgoJLy8gYXNzZXJ0KHRoaXMuYm94TWFwKCdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveE1hcCgnZm9vJykudmFsdWUKCWFzc2VydAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBEZWxldGU6CgkvLyBleGVjdXRlIGJveE1hcERlbGV0ZSgpdm9pZAoJY2FsbHN1YiBib3hNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcERlbGV0ZSgpOiB2b2lkCmJveE1hcERlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTIwCgkvLyB0aGlzLmJveE1hcCgnZm9vJykuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9kZWwKCXJldHN1YgoKLy8gYm94TWFwRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfYm94TWFwRXhpc3RzOgoJLy8gZXhlY3V0ZSBib3hNYXBFeGlzdHMoKXZvaWQKCWNhbGxzdWIgYm94TWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBFeGlzdHMoKTogdm9pZApib3hNYXBFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEyNAoJLy8gYXNzZXJ0KHRoaXMuYm94TWFwKCdmb28nKS5leGlzdHMpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfbGVuCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlDcmVhdGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlDcmVhdGU6CgkvLyBleGVjdXRlIGJveEtleUNyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUNyZWF0ZSgpOiB2b2lkCmJveEtleUNyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTI4CgkvLyB0aGlzLmJveEtleS5jcmVhdGUoMTAyNCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAxMDI0Cglib3hfY3JlYXRlCglwb3AKCXJldHN1YgoKLy8gYm94TWFwQ3JlYXRlKCl2b2lkCiphYmlfcm91dGVfYm94TWFwQ3JlYXRlOgoJLy8gZXhlY3V0ZSBib3hNYXBDcmVhdGUoKXZvaWQKCWNhbGxzdWIgYm94TWFwQ3JlYXRlCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBDcmVhdGUoKTogdm9pZApib3hNYXBDcmVhdGU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEzMgoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLmNyZWF0ZSgxMDI0KQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDEwMjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBib3hLZXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2JveEtleUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hLZXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBib3hLZXlMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlMZW5ndGgoKTogdWludDY0CmJveEtleUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTM2CgkvLyByZXR1cm4gdGhpcy5ib3hLZXkuc2l6ZTsKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94S2V5LnNpemUKCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2JveE1hcExlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hNYXBMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBib3hNYXBMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBMZW5ndGgoKTogdWludDY0CmJveE1hcExlbmd0aDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTQwCgkvLyByZXR1cm4gdGhpcy5ib3hNYXAoJ2JhcicpLnNpemU7CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveE1hcCgnYmFyJykuc2l6ZQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleVJlcGxhY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlSZXBsYWNlOgoJLy8gZXhlY3V0ZSBib3hLZXlSZXBsYWNlKCl2b2lkCgljYWxsc3ViIGJveEtleVJlcGxhY2UKCWludCAxCglyZXR1cm4KCi8vIGJveEtleVJlcGxhY2UoKTogdm9pZApib3hLZXlSZXBsYWNlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNDQKCS8vIHRoaXMuYm94S2V5LnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94TWFwUmVwbGFjZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2U6CgkvLyBleGVjdXRlIGJveE1hcFJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94TWFwUmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwUmVwbGFjZSgpOiB2b2lkCmJveE1hcFJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94S2V5RXh0cmFjdCgpc3RyaW5nCiphYmlfcm91dGVfYm94S2V5RXh0cmFjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hLZXlFeHRyYWN0KClzdHJpbmcKCWNhbGxzdWIgYm94S2V5RXh0cmFjdAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlFeHRyYWN0KCk6IHN0cmluZwpib3hLZXlFeHRyYWN0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNTIKCS8vIHJldHVybiB0aGlzLmJveEtleS5leHRyYWN0KDAsIDMpOwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAzCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBib3hNYXBFeHRyYWN0KClzdHJpbmcKKmFiaV9yb3V0ZV9ib3hNYXBFeHRyYWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcEV4dHJhY3QoKXN0cmluZwoJY2FsbHN1YiBib3hNYXBFeHRyYWN0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4dHJhY3QoKTogc3RyaW5nCmJveE1hcEV4dHJhY3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gcmV0dXJuIHRoaXMuYm94TWFwKCdiYXInKS5leHRyYWN0KDAsIDMpOwoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDAKCWludCAzCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBpc09wdGVkSW4oKWJvb2wKKmFiaV9yb3V0ZV9pc09wdGVkSW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgaXNPcHRlZEluKClib29sCgljYWxsc3ViIGlzT3B0ZWRJbgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpc09wdGVkSW4oKTogYm9vbGVhbgppc09wdGVkSW46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2MAoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlci5pc09wdGVkSW5Ub0FwcCh0aGlzLmFwcCk7Cgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglhcHBfb3B0ZWRfaW4KCXJldHN1YgoKLy8gZXhHbG9iYWwoKXZvaWQKKmFiaV9yb3V0ZV9leEdsb2JhbDoKCS8vIGV4ZWN1dGUgZXhHbG9iYWwoKXZvaWQKCWNhbGxzdWIgZXhHbG9iYWwKCWludCAxCglyZXR1cm4KCi8vIGV4R2xvYmFsKCk6IHZvaWQKZXhHbG9iYWw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2NAoJLy8gbG9nKHRoaXMuYXBwLmdsb2JhbFN0YXRlKCdmb28nKSBhcyBieXRlcykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFwcC5nbG9iYWxTdGF0ZSgnZm9vJykKCWFzc2VydAoJbG9nCglyZXRzdWIKCi8vIGV4TG9jYWwoKXZvaWQKKmFiaV9yb3V0ZV9leExvY2FsOgoJLy8gZXhlY3V0ZSBleExvY2FsKCl2b2lkCgljYWxsc3ViIGV4TG9jYWwKCWludCAxCglyZXR1cm4KCi8vIGV4TG9jYWwoKTogdm9pZApleExvY2FsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNjgKCS8vIGxvZyh0aGlzLmFwcC5sb2NhbFN0YXRlKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpIGFzIGJ5dGVzKQoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoKCS8vIGxvY2FsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFwcC5sb2NhbFN0YXRlKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpCglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgoqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgoJY2FsbHN1YiBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3gKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9CgoJLy8gYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKTogdWludDE2CmFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTcyCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC5jcmVhdGUoKQoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJaW50IDgwMDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTczCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC52YWx1ZVsxMjNdID0gNDU2CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgMjQ2CglieXRlIDB4MDFjOAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3NQoJLy8gcmV0dXJuIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlWzEyM107CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgMjQ2CglpbnQgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2CiphYmlfcm91dGVfZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KHVpbnQ2NCl1aW50MTYKCWNhbGxzdWIgZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KGk6IHVpbnQ2NCk6IHVpbnQxNgpkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94OgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNzkKCS8vIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LmNyZWF0ZSgpCglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgODAwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODAKCS8vIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlW2ldID0gNDU2CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMgoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglieXRlIDB4MDFjOAoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4NAoJLy8gcmV0dXJuIGFbaV07CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMgoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gYm94UmVzaXplKCl2b2lkCiphYmlfcm91dGVfYm94UmVzaXplOgoJLy8gZXhlY3V0ZSBib3hSZXNpemUoKXZvaWQKCWNhbGxzdWIgYm94UmVzaXplCglpbnQgMQoJcmV0dXJuCgovLyBib3hSZXNpemUoKTogdm9pZApib3hSZXNpemU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4OAoJLy8gdGhpcy5ib3hLZXkucmVzaXplKDEwMjQpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTg5CgkvLyB0aGlzLmJveE1hcCgnYmFyJykucmVzaXplKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoJcmV0c3ViCgovLyBib3hTcGxpY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hTcGxpY2U6CgkvLyBleGVjdXRlIGJveFNwbGljZSgpdm9pZAoJY2FsbHN1YiBib3hTcGxpY2UKCWludCAxCglyZXR1cm4KCi8vIGJveFNwbGljZSgpOiB2b2lkCmJveFNwbGljZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTkzCgkvLyB0aGlzLmJveEtleS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9zcGxpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnNwbGljZSgwLCAxLCAnYWJjJykKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWludCAwCglpbnQgMQoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3NwbGljZQoJcmV0c3ViCgovLyBleFN0YXRlRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZXhTdGF0ZUV4aXN0czoKCS8vIGV4ZWN1dGUgZXhTdGF0ZUV4aXN0cygpdm9pZAoJY2FsbHN1YiBleFN0YXRlRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBleFN0YXRlRXhpc3RzKCk6IHZvaWQKZXhTdGF0ZUV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTk4CgkvLyBhc3NlcnQodGhpcy5hcHAuZ2xvYmFsU3RhdGVFeGlzdHMoJ2ZvbycpKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTkKCS8vIGFzc2VydCh0aGlzLmFwcC5sb2NhbFN0YXRlRXhpc3RzKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpKQoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInByZWZpeCgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5UHV0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxLZXlHZXQoKXZvaWQiCgltZXRob2QgImdsb2JhbEtleURlbGV0ZSgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5RXhpc3RzKCl2b2lkIgoJbWV0aG9kICJsb2NhbEtleVB1dChhZGRyZXNzKXZvaWQiCgltZXRob2QgImxvY2FsS2V5R2V0KGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAibG9jYWxLZXlEZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJsb2NhbEtleUV4aXN0cyhhZGRyZXNzKXZvaWQiCgltZXRob2QgImJveEtleVB1dCgpdm9pZCIKCW1ldGhvZCAiYm94S2V5R2V0KCl2b2lkIgoJbWV0aG9kICJib3hLZXlEZWxldGUoKXZvaWQiCgltZXRob2QgImJveEtleUV4aXN0cygpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwUHV0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxNYXBHZXQoKXZvaWQiCgltZXRob2QgImdsb2JhbE1hcERlbGV0ZSgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwRXhpc3RzKCl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcFB1dChhZGRyZXNzKXZvaWQiCgltZXRob2QgImxvY2FsTWFwR2V0KGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAibG9jYWxNYXBEZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcEV4aXN0cyhhZGRyZXNzKXZvaWQiCgltZXRob2QgImJveE1hcFB1dCgpdm9pZCIKCW1ldGhvZCAiYm94TWFwR2V0KCl2b2lkIgoJbWV0aG9kICJib3hNYXBEZWxldGUoKXZvaWQiCgltZXRob2QgImJveE1hcEV4aXN0cygpdm9pZCIKCW1ldGhvZCAiYm94S2V5Q3JlYXRlKCl2b2lkIgoJbWV0aG9kICJib3hNYXBDcmVhdGUoKXZvaWQiCgltZXRob2QgImJveEtleUxlbmd0aCgpdWludDY0IgoJbWV0aG9kICJib3hNYXBMZW5ndGgoKXVpbnQ2NCIKCW1ldGhvZCAiYm94S2V5UmVwbGFjZSgpdm9pZCIKCW1ldGhvZCAiYm94TWFwUmVwbGFjZSgpdm9pZCIKCW1ldGhvZCAiYm94S2V5RXh0cmFjdCgpc3RyaW5nIgoJbWV0aG9kICJib3hNYXBFeHRyYWN0KClzdHJpbmciCgltZXRob2QgImlzT3B0ZWRJbigpYm9vbCIKCW1ldGhvZCAiZXhHbG9iYWwoKXZvaWQiCgltZXRob2QgImV4TG9jYWwoKXZvaWQiCgltZXRob2QgImFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2IgoJbWV0aG9kICJkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KHVpbnQ2NCl1aW50MTYiCgltZXRob2QgImJveFJlc2l6ZSgpdm9pZCIKCW1ldGhvZCAiYm94U3BsaWNlKCl2b2lkIgoJbWV0aG9kICJleFN0YXRlRXhpc3RzKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcmVmaXggKmFiaV9yb3V0ZV9nbG9iYWxLZXlQdXQgKmFiaV9yb3V0ZV9nbG9iYWxLZXlHZXQgKmFiaV9yb3V0ZV9nbG9iYWxLZXlEZWxldGUgKmFiaV9yb3V0ZV9nbG9iYWxLZXlFeGlzdHMgKmFiaV9yb3V0ZV9sb2NhbEtleVB1dCAqYWJpX3JvdXRlX2xvY2FsS2V5R2V0ICphYmlfcm91dGVfbG9jYWxLZXlEZWxldGUgKmFiaV9yb3V0ZV9sb2NhbEtleUV4aXN0cyAqYWJpX3JvdXRlX2JveEtleVB1dCAqYWJpX3JvdXRlX2JveEtleUdldCAqYWJpX3JvdXRlX2JveEtleURlbGV0ZSAqYWJpX3JvdXRlX2JveEtleUV4aXN0cyAqYWJpX3JvdXRlX2dsb2JhbE1hcFB1dCAqYWJpX3JvdXRlX2dsb2JhbE1hcEdldCAqYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZSAqYWJpX3JvdXRlX2dsb2JhbE1hcEV4aXN0cyAqYWJpX3JvdXRlX2xvY2FsTWFwUHV0ICphYmlfcm91dGVfbG9jYWxNYXBHZXQgKmFiaV9yb3V0ZV9sb2NhbE1hcERlbGV0ZSAqYWJpX3JvdXRlX2xvY2FsTWFwRXhpc3RzICphYmlfcm91dGVfYm94TWFwUHV0ICphYmlfcm91dGVfYm94TWFwR2V0ICphYmlfcm91dGVfYm94TWFwRGVsZXRlICphYmlfcm91dGVfYm94TWFwRXhpc3RzICphYmlfcm91dGVfYm94S2V5Q3JlYXRlICphYmlfcm91dGVfYm94TWFwQ3JlYXRlICphYmlfcm91dGVfYm94S2V5TGVuZ3RoICphYmlfcm91dGVfYm94TWFwTGVuZ3RoICphYmlfcm91dGVfYm94S2V5UmVwbGFjZSAqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2UgKmFiaV9yb3V0ZV9ib3hLZXlFeHRyYWN0ICphYmlfcm91dGVfYm94TWFwRXh0cmFjdCAqYWJpX3JvdXRlX2lzT3B0ZWRJbiAqYWJpX3JvdXRlX2V4R2xvYmFsICphYmlfcm91dGVfZXhMb2NhbCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCAqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3ggKmFiaV9yb3V0ZV9ib3hSZXNpemUgKmFiaV9yb3V0ZV9ib3hTcGxpY2UgKmFiaV9yb3V0ZV9leFN0YXRlRXhpc3RzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDMyIDEwMjQKYnl0ZWNibG9jayAweDY2NmY2ZiAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAweDYyNjE3MiAweDE1MWY3Yzc1IDB4NjE2MjYzIDB4MDFjOAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHByZWZpeCgpdm9pZAoqYWJpX3JvdXRlX3ByZWZpeDoKCS8vIGV4ZWN1dGUgcHJlZml4KCl2b2lkCgljYWxsc3ViIHByZWZpeAoJaW50IDEKCXJldHVybgoKLy8gcHJlZml4KCk6IHZvaWQKcHJlZml4OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyNgoJLy8gdGhpcy5ib3hNYXBXaXRoUHJlZml4KCdvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyNwoJLy8gdGhpcy5nbG9iYWxNYXBXaXRoUHJlZml4KCdvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyOAoJLy8gdGhpcy5sb2NhbE1hcFdpdGhQcmVmaXgodGhpcy50eG4uc2VuZGVyLCAnb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglieXRlIDB4NjY2ZjZmCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbEtleVB1dCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleVB1dDoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5UHV0KCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleVB1dAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5UHV0KCk6IHZvaWQKZ2xvYmFsS2V5UHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czozMgoJLy8gdGhpcy5nbG9iYWxLZXkudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2xvYmFsS2V5R2V0KCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsS2V5R2V0OgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlHZXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5R2V0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlHZXQoKTogdm9pZApnbG9iYWxLZXlHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjM2CgkvLyBhc3NlcnQodGhpcy5nbG9iYWxLZXkudmFsdWUgPT09ICdiYXInKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZ2xvYmFsS2V5RGVsZXRlKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsS2V5RGVsZXRlOgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlEZWxldGUoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlEZWxldGUoKTogdm9pZApnbG9iYWxLZXlEZWxldGU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQwCgkvLyB0aGlzLmdsb2JhbEtleS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9kZWwKCXJldHN1YgoKLy8gZ2xvYmFsS2V5RXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsS2V5RXhpc3RzOgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlFeGlzdHMoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlFeGlzdHMoKTogdm9pZApnbG9iYWxLZXlFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQ0CgkvLyBhc3NlcnQodGhpcy5nbG9iYWxLZXkuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsS2V5UHV0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5UHV0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlQdXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlQdXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5UHV0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleVB1dChhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleVB1dDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NDgKCS8vIHRoaXMubG9jYWxLZXkoYSkudmFsdWUgPSAnYmFyJwoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gbG9jYWxLZXlHZXQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlHZXQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbEtleUdldCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbEtleUdldChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlHZXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5R2V0KGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsS2V5R2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo1MgoJLy8gYXNzZXJ0KHRoaXMubG9jYWxLZXkoYSkudmFsdWUgPT09ICdiYXInKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxLZXlEZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlEZWxldGU6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbEtleURlbGV0ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbEtleURlbGV0ZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5RGVsZXRlKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsS2V5RGVsZXRlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo1NgoJLy8gdGhpcy5sb2NhbEtleShhKS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9kZWwKCXJldHN1YgoKLy8gbG9jYWxLZXlFeGlzdHMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlFeGlzdHM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbEtleUV4aXN0cyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbEtleUV4aXN0cyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5RXhpc3RzKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsS2V5RXhpc3RzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo2MAoJLy8gYXNzZXJ0KHRoaXMubG9jYWxLZXkoYSkuZXhpc3RzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleVB1dCgpdm9pZAoqYWJpX3JvdXRlX2JveEtleVB1dDoKCS8vIGV4ZWN1dGUgYm94S2V5UHV0KCl2b2lkCgljYWxsc3ViIGJveEtleVB1dAoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5UHV0KCk6IHZvaWQKYm94S2V5UHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo2NAoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoJcmV0c3ViCgovLyBib3hLZXlHZXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlHZXQ6CgkvLyBleGVjdXRlIGJveEtleUdldCgpdm9pZAoJY2FsbHN1YiBib3hLZXlHZXQKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUdldCgpOiB2b2lkCmJveEtleUdldDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjgKCS8vIGFzc2VydCh0aGlzLmJveEtleS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveEtleS52YWx1ZQoJYXNzZXJ0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleURlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleURlbGV0ZToKCS8vIGV4ZWN1dGUgYm94S2V5RGVsZXRlKCl2b2lkCgljYWxsc3ViIGJveEtleURlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RGVsZXRlKCk6IHZvaWQKYm94S2V5RGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo3MgoJLy8gdGhpcy5ib3hLZXkuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9kZWwKCXJldHN1YgoKLy8gYm94S2V5RXhpc3RzKCl2b2lkCiphYmlfcm91dGVfYm94S2V5RXhpc3RzOgoJLy8gZXhlY3V0ZSBib3hLZXlFeGlzdHMoKXZvaWQKCWNhbGxzdWIgYm94S2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlFeGlzdHMoKTogdm9pZApib3hLZXlFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyBhc3NlcnQodGhpcy5ib3hLZXkuZXhpc3RzKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gZ2xvYmFsTWFwUHV0KCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwUHV0OgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBQdXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBQdXQoKTogdm9pZApnbG9iYWxNYXBQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjgwCgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2xvYmFsTWFwR2V0KCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwR2V0OgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBHZXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBHZXQoKTogdm9pZApnbG9iYWxNYXBHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjg0CgkvLyBhc3NlcnQodGhpcy5nbG9iYWxNYXAoJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbE1hcERlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwRGVsZXRlKCk6IHZvaWQKZ2xvYmFsTWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4OAoJLy8gdGhpcy5nbG9iYWxNYXAoJ2ZvbycpLmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2RlbAoJcmV0c3ViCgovLyBnbG9iYWxNYXBFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxNYXBFeGlzdHM6CgkvLyBleGVjdXRlIGdsb2JhbE1hcEV4aXN0cygpdm9pZAoJY2FsbHN1YiBnbG9iYWxNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1hcEV4aXN0cygpOiB2b2lkCmdsb2JhbE1hcEV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6OTIKCS8vIGFzc2VydCh0aGlzLmdsb2JhbE1hcCgnZm9vJykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsTWFwUHV0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsTWFwUHV0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxNYXBQdXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBQdXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsTWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcFB1dChhOiBBZGRyZXNzKTogdm9pZApsb2NhbE1hcFB1dDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6OTYKCS8vIHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGxvY2FsTWFwR2V0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsTWFwR2V0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxNYXBHZXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBHZXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsTWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcEdldChhOiBBZGRyZXNzKTogdm9pZApsb2NhbE1hcEdldDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTAwCgkvLyBhc3NlcnQodGhpcy5sb2NhbE1hcChhLCAnZm9vJykudmFsdWUgPT09ICdiYXInKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxNYXBEZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBEZWxldGU6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbE1hcERlbGV0ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbE1hcERlbGV0ZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwRGVsZXRlKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsTWFwRGVsZXRlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMDQKCS8vIHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2RlbAoJcmV0c3ViCgovLyBsb2NhbE1hcEV4aXN0cyhhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcEV4aXN0czoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsTWFwRXhpc3RzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsTWFwRXhpc3RzKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcEV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBFeGlzdHMoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxNYXBFeGlzdHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEwOAoJLy8gYXNzZXJ0KHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBQdXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBQdXQ6CgkvLyBleGVjdXRlIGJveE1hcFB1dCgpdm9pZAoJY2FsbHN1YiBib3hNYXBQdXQKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcFB1dCgpOiB2b2lkCmJveE1hcFB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTEyCgkvLyB0aGlzLmJveE1hcCgnZm9vJykudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoJcmV0c3ViCgovLyBib3hNYXBHZXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBHZXQ6CgkvLyBleGVjdXRlIGJveE1hcEdldCgpdm9pZAoJY2FsbHN1YiBib3hNYXBHZXQKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEdldCgpOiB2b2lkCmJveE1hcEdldDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQodGhpcy5ib3hNYXAoJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94TWFwKCdmb28nKS52YWx1ZQoJYXNzZXJ0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcERlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgYm94TWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGJveE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwRGVsZXRlKCk6IHZvaWQKYm94TWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMuYm94TWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2RlbAoJcmV0c3ViCgovLyBib3hNYXBFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBFeGlzdHM6CgkvLyBleGVjdXRlIGJveE1hcEV4aXN0cygpdm9pZAoJY2FsbHN1YiBib3hNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4aXN0cygpOiB2b2lkCmJveE1hcEV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTI0CgkvLyBhc3NlcnQodGhpcy5ib3hNYXAoJ2ZvbycpLmV4aXN0cykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleUNyZWF0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleUNyZWF0ZToKCS8vIGV4ZWN1dGUgYm94S2V5Q3JlYXRlKCl2b2lkCgljYWxsc3ViIGJveEtleUNyZWF0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5Q3JlYXRlKCk6IHZvaWQKYm94S2V5Q3JlYXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjgKCS8vIHRoaXMuYm94S2V5LmNyZWF0ZSgxMDI0KQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDEwMjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBib3hNYXBDcmVhdGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBDcmVhdGU6CgkvLyBleGVjdXRlIGJveE1hcENyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hNYXBDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcENyZWF0ZSgpOiB2b2lkCmJveE1hcENyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTMyCgkvLyB0aGlzLmJveE1hcCgnYmFyJykuY3JlYXRlKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X2NyZWF0ZQoJcG9wCglyZXRzdWIKCi8vIGJveEtleUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYm94S2V5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveEtleUxlbmd0aCgpdWludDY0CgljYWxsc3ViIGJveEtleUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUxlbmd0aCgpOiB1aW50NjQKYm94S2V5TGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMzYKCS8vIHJldHVybiB0aGlzLmJveEtleS5zaXplOwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkuc2l6ZQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcExlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYm94TWFwTGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcExlbmd0aCgpdWludDY0CgljYWxsc3ViIGJveE1hcExlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcExlbmd0aCgpOiB1aW50NjQKYm94TWFwTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNDAKCS8vIHJldHVybiB0aGlzLmJveE1hcCgnYmFyJykuc2l6ZTsKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94TWFwKCdiYXInKS5zaXplCglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5UmVwbGFjZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleVJlcGxhY2U6CgkvLyBleGVjdXRlIGJveEtleVJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94S2V5UmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5UmVwbGFjZSgpOiB2b2lkCmJveEtleVJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0NAoJLy8gdGhpcy5ib3hLZXkucmVwbGFjZSgwLCAnYWJjJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCXB1c2hpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94TWFwUmVwbGFjZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2U6CgkvLyBleGVjdXRlIGJveE1hcFJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94TWFwUmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwUmVwbGFjZSgpOiB2b2lkCmJveE1hcFJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglwdXNoaW50IDAKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGJveEtleUV4dHJhY3QoKXN0cmluZwoqYWJpX3JvdXRlX2JveEtleUV4dHJhY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm94S2V5RXh0cmFjdCgpc3RyaW5nCgljYWxsc3ViIGJveEtleUV4dHJhY3QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RXh0cmFjdCgpOiBzdHJpbmcKYm94S2V5RXh0cmFjdDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTUyCgkvLyByZXR1cm4gdGhpcy5ib3hLZXkuZXh0cmFjdCgwLCAzKTsKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCXB1c2hpbnQgMAoJcHVzaGludCAzCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBib3hNYXBFeHRyYWN0KClzdHJpbmcKKmFiaV9yb3V0ZV9ib3hNYXBFeHRyYWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcEV4dHJhY3QoKXN0cmluZwoJY2FsbHN1YiBib3hNYXBFeHRyYWN0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4dHJhY3QoKTogc3RyaW5nCmJveE1hcEV4dHJhY3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gcmV0dXJuIHRoaXMuYm94TWFwKCdiYXInKS5leHRyYWN0KDAsIDMpOwoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJcHVzaGludCAwCglwdXNoaW50IDMKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGlzT3B0ZWRJbigpYm9vbAoqYWJpX3JvdXRlX2lzT3B0ZWRJbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpc09wdGVkSW4oKWJvb2wKCWNhbGxzdWIgaXNPcHRlZEluCglwdXNoYnl0ZXMgMHgwMAoJcHVzaGludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlzT3B0ZWRJbigpOiBib29sZWFuCmlzT3B0ZWRJbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTYwCgkvLyByZXR1cm4gdGhpcy50eG4uc2VuZGVyLmlzT3B0ZWRJblRvQXBwKHRoaXMuYXBwKTsKCXR4biBTZW5kZXIKCXR4bmEgQXBwbGljYXRpb25zIDAKCWFwcF9vcHRlZF9pbgoJcmV0c3ViCgovLyBleEdsb2JhbCgpdm9pZAoqYWJpX3JvdXRlX2V4R2xvYmFsOgoJLy8gZXhlY3V0ZSBleEdsb2JhbCgpdm9pZAoJY2FsbHN1YiBleEdsb2JhbAoJaW50IDEKCXJldHVybgoKLy8gZXhHbG9iYWwoKTogdm9pZApleEdsb2JhbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTY0CgkvLyBsb2codGhpcy5hcHAuZ2xvYmFsU3RhdGUoJ2ZvbycpIGFzIGJ5dGVzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYXBwLmdsb2JhbFN0YXRlKCdmb28nKQoJYXNzZXJ0Cglsb2cKCXJldHN1YgoKLy8gZXhMb2NhbCgpdm9pZAoqYWJpX3JvdXRlX2V4TG9jYWw6CgkvLyBleGVjdXRlIGV4TG9jYWwoKXZvaWQKCWNhbGxzdWIgZXhMb2NhbAoJaW50IDEKCXJldHVybgoKLy8gZXhMb2NhbCgpOiB2b2lkCmV4TG9jYWw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2OAoJLy8gbG9nKHRoaXMuYXBwLmxvY2FsU3RhdGUodGhpcy50eG4uc2VuZGVyLCAnZm9vJykgYXMgYnl0ZXMpCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4CgoJLy8gbG9jYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYXBwLmxvY2FsU3RhdGUodGhpcy50eG4uc2VuZGVyLCAnZm9vJykKCWFzc2VydAoJbG9nCglyZXRzdWIKCi8vIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2CiphYmlfcm91dGVfYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2CgljYWxsc3ViIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveAoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMTYKCTw9CgoJLy8gYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKTogdWludDE2CmFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTcyCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC5jcmVhdGUoKQoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJcHVzaGludCA4MDAwCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3MwoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3gudmFsdWVbMTIzXSA9IDQ1NgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJcHVzaGludCAyNDYKCWJ5dGUgMHgwMWM4Cglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTc1CgkvLyByZXR1cm4gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3gudmFsdWVbMTIzXTsKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCXB1c2hpbnQgMjQ2CglwdXNoaW50IDIKCWJveF9leHRyYWN0CglidG9pCglyZXRzdWIKCi8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3godWludDY0KXVpbnQxNgoqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2CgljYWxsc3ViIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3gKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3ggcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goaTogdWludDY0KTogdWludDE2CmR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3guY3JlYXRlKCkKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCXB1c2hpbnQgODAwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODAKCS8vIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlW2ldID0gNDU2CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglwdXNoaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJYnl0ZSAweDAxYzgKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODQKCS8vIHJldHVybiBhW2ldOwoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJcHVzaGludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCXB1c2hpbnQgMgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gYm94UmVzaXplKCl2b2lkCiphYmlfcm91dGVfYm94UmVzaXplOgoJLy8gZXhlY3V0ZSBib3hSZXNpemUoKXZvaWQKCWNhbGxzdWIgYm94UmVzaXplCglpbnQgMQoJcmV0dXJuCgovLyBib3hSZXNpemUoKTogdm9pZApib3hSZXNpemU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4OAoJLy8gdGhpcy5ib3hLZXkucmVzaXplKDEwMjQpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTg5CgkvLyB0aGlzLmJveE1hcCgnYmFyJykucmVzaXplKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoJcmV0c3ViCgovLyBib3hTcGxpY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hTcGxpY2U6CgkvLyBleGVjdXRlIGJveFNwbGljZSgpdm9pZAoJY2FsbHN1YiBib3hTcGxpY2UKCWludCAxCglyZXR1cm4KCi8vIGJveFNwbGljZSgpOiB2b2lkCmJveFNwbGljZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTkzCgkvLyB0aGlzLmJveEtleS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglwdXNoaW50IDAKCWludCAxCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglib3hfc3BsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTQKCS8vIHRoaXMuYm94TWFwKCdiYXInKS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglwdXNoaW50IDAKCWludCAxCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglib3hfc3BsaWNlCglyZXRzdWIKCi8vIGV4U3RhdGVFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9leFN0YXRlRXhpc3RzOgoJLy8gZXhlY3V0ZSBleFN0YXRlRXhpc3RzKCl2b2lkCgljYWxsc3ViIGV4U3RhdGVFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGV4U3RhdGVFeGlzdHMoKTogdm9pZApleFN0YXRlRXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTgKCS8vIGFzc2VydCh0aGlzLmFwcC5nbG9iYWxTdGF0ZUV4aXN0cygnZm9vJykpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE5OQoJLy8gYXNzZXJ0KHRoaXMuYXBwLmxvY2FsU3RhdGVFeGlzdHModGhpcy50eG4uc2VuZGVyLCAnZm9vJykpCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDViMDJiYTg3IC8vIG1ldGhvZCAicHJlZml4KCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDc4MjYzMDcgLy8gbWV0aG9kICJnbG9iYWxLZXlQdXQoKXZvaWQiCglwdXNoYnl0ZXMgMHhkMzg3Y2QyYyAvLyBtZXRob2QgImdsb2JhbEtleUdldCgpdm9pZCIKCXB1c2hieXRlcyAweDJmNzhkYjAzIC8vIG1ldGhvZCAiZ2xvYmFsS2V5RGVsZXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDgxODFhOWEgLy8gbWV0aG9kICJnbG9iYWxLZXlFeGlzdHMoKXZvaWQiCglwdXNoYnl0ZXMgMHhlY2IwNjk5OCAvLyBtZXRob2QgImxvY2FsS2V5UHV0KGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDU2ZGFjZTFkIC8vIG1ldGhvZCAibG9jYWxLZXlHZXQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NzY4YzhjNjggLy8gbWV0aG9kICJsb2NhbEtleURlbGV0ZShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhiYzBlYTZiYiAvLyBtZXRob2QgImxvY2FsS2V5RXhpc3RzKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGNmNDhhZTRkIC8vIG1ldGhvZCAiYm94S2V5UHV0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTlkYWI0OTMgLy8gbWV0aG9kICJib3hLZXlHZXQoKXZvaWQiCglwdXNoYnl0ZXMgMHgwOTBmZGZkNiAvLyBtZXRob2QgImJveEtleURlbGV0ZSgpdm9pZCIKCXB1c2hieXRlcyAweDVmZjlkMGRkIC8vIG1ldGhvZCAiYm94S2V5RXhpc3RzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4MTdjODIwNmEgLy8gbWV0aG9kICJnbG9iYWxNYXBQdXQoKXZvaWQiCglwdXNoYnl0ZXMgMHhjZDg2OGJmMiAvLyBtZXRob2QgImdsb2JhbE1hcEdldCgpdm9pZCIKCXB1c2hieXRlcyAweGI1NWRlMjBjIC8vIG1ldGhvZCAiZ2xvYmFsTWFwRGVsZXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4Yzk3ZDhkMjQgLy8gbWV0aG9kICJnbG9iYWxNYXBFeGlzdHMoKXZvaWQiCglwdXNoYnl0ZXMgMHhmYzgzODAzYyAvLyBtZXRob2QgImxvY2FsTWFwUHV0KGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDk4NzUzNTVkIC8vIG1ldGhvZCAibG9jYWxNYXBHZXQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NzQyYTZlODMgLy8gbWV0aG9kICJsb2NhbE1hcERlbGV0ZShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg4ODIzNTI2NSAvLyBtZXRob2QgImxvY2FsTWFwRXhpc3RzKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDg0ZTU2ODFjIC8vIG1ldGhvZCAiYm94TWFwUHV0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4YWUzY2U3ZWUgLy8gbWV0aG9kICJib3hNYXBHZXQoKXZvaWQiCglwdXNoYnl0ZXMgMHhiOWUwZWQzZCAvLyBtZXRob2QgImJveE1hcERlbGV0ZSgpdm9pZCIKCXB1c2hieXRlcyAweDY1MmJkNWQ2IC8vIG1ldGhvZCAiYm94TWFwRXhpc3RzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDM2ZWUzMTUgLy8gbWV0aG9kICJib3hLZXlDcmVhdGUoKXZvaWQiCglwdXNoYnl0ZXMgMHgxMDI5YmQwNyAvLyBtZXRob2QgImJveE1hcENyZWF0ZSgpdm9pZCIKCXB1c2hieXRlcyAweGE3NDdiNjJmIC8vIG1ldGhvZCAiYm94S2V5TGVuZ3RoKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1YTFlZWZiZSAvLyBtZXRob2QgImJveE1hcExlbmd0aCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4MTMzN2RkNjAgLy8gbWV0aG9kICJib3hLZXlSZXBsYWNlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDI0ZWY5NWEgLy8gbWV0aG9kICJib3hNYXBSZXBsYWNlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODhjMWMzMDkgLy8gbWV0aG9kICJib3hLZXlFeHRyYWN0KClzdHJpbmciCglwdXNoYnl0ZXMgMHg0MzYzNTY0MyAvLyBtZXRob2QgImJveE1hcEV4dHJhY3QoKXN0cmluZyIKCXB1c2hieXRlcyAweGFiNDI1NTRlIC8vIG1ldGhvZCAiaXNPcHRlZEluKClib29sIgoJcHVzaGJ5dGVzIDB4MDE2N2I3YTIgLy8gbWV0aG9kICJleEdsb2JhbCgpdm9pZCIKCXB1c2hieXRlcyAweGFhZDUxNzU1IC8vIG1ldGhvZCAiZXhMb2NhbCgpdm9pZCIKCXB1c2hieXRlcyAweDFiNDFjZTIyIC8vIG1ldGhvZCAiYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KCl1aW50MTYiCglwdXNoYnl0ZXMgMHhmNWRhMWE1NSAvLyBtZXRob2QgImR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3godWludDY0KXVpbnQxNiIKCXB1c2hieXRlcyAweGJjNWMxOGZkIC8vIG1ldGhvZCAiYm94UmVzaXplKCl2b2lkIgoJcHVzaGJ5dGVzIDB4MjVhOTIzMjkgLy8gbWV0aG9kICJib3hTcGxpY2UoKXZvaWQiCglwdXNoYnl0ZXMgMHg0ZWQ4Njk5YiAvLyBtZXRob2QgImV4U3RhdGVFeGlzdHMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ByZWZpeCAqYWJpX3JvdXRlX2dsb2JhbEtleVB1dCAqYWJpX3JvdXRlX2dsb2JhbEtleUdldCAqYWJpX3JvdXRlX2dsb2JhbEtleURlbGV0ZSAqYWJpX3JvdXRlX2dsb2JhbEtleUV4aXN0cyAqYWJpX3JvdXRlX2xvY2FsS2V5UHV0ICphYmlfcm91dGVfbG9jYWxLZXlHZXQgKmFiaV9yb3V0ZV9sb2NhbEtleURlbGV0ZSAqYWJpX3JvdXRlX2xvY2FsS2V5RXhpc3RzICphYmlfcm91dGVfYm94S2V5UHV0ICphYmlfcm91dGVfYm94S2V5R2V0ICphYmlfcm91dGVfYm94S2V5RGVsZXRlICphYmlfcm91dGVfYm94S2V5RXhpc3RzICphYmlfcm91dGVfZ2xvYmFsTWFwUHV0ICphYmlfcm91dGVfZ2xvYmFsTWFwR2V0ICphYmlfcm91dGVfZ2xvYmFsTWFwRGVsZXRlICphYmlfcm91dGVfZ2xvYmFsTWFwRXhpc3RzICphYmlfcm91dGVfbG9jYWxNYXBQdXQgKmFiaV9yb3V0ZV9sb2NhbE1hcEdldCAqYWJpX3JvdXRlX2xvY2FsTWFwRGVsZXRlICphYmlfcm91dGVfbG9jYWxNYXBFeGlzdHMgKmFiaV9yb3V0ZV9ib3hNYXBQdXQgKmFiaV9yb3V0ZV9ib3hNYXBHZXQgKmFiaV9yb3V0ZV9ib3hNYXBEZWxldGUgKmFiaV9yb3V0ZV9ib3hNYXBFeGlzdHMgKmFiaV9yb3V0ZV9ib3hLZXlDcmVhdGUgKmFiaV9yb3V0ZV9ib3hNYXBDcmVhdGUgKmFiaV9yb3V0ZV9ib3hLZXlMZW5ndGggKmFiaV9yb3V0ZV9ib3hNYXBMZW5ndGggKmFiaV9yb3V0ZV9ib3hLZXlSZXBsYWNlICphYmlfcm91dGVfYm94TWFwUmVwbGFjZSAqYWJpX3JvdXRlX2JveEtleUV4dHJhY3QgKmFiaV9yb3V0ZV9ib3hNYXBFeHRyYWN0ICphYmlfcm91dGVfaXNPcHRlZEluICphYmlfcm91dGVfZXhHbG9iYWwgKmFiaV9yb3V0ZV9leExvY2FsICphYmlfcm91dGVfYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94ICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCAqYWJpX3JvdXRlX2JveFJlc2l6ZSAqYWJpX3JvdXRlX2JveFNwbGljZSAqYWJpX3JvdXRlX2V4U3RhdGVFeGlzdHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { diff --git a/tests/contracts/artifacts/StorageTest.arc56_draft.json b/tests/contracts/artifacts/StorageTest.arc56_draft.json index c1eaa0d8b..596a6fed1 100644 --- a/tests/contracts/artifacts/StorageTest.arc56_draft.json +++ b/tests/contracts/artifacts/StorageTest.arc56_draft.json @@ -679,4789 +679,136 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 4, - "pc": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58 - ] - }, - { - "teal": 13, - "source": 4, - "pc": [ - 59, - 60 - ] - }, - { - "teal": 14, - "source": 4, - "pc": [ - 61 - ] - }, - { - "teal": 15, - "source": 4, - "pc": [ - 62, - 63 - ] - }, - { - "teal": 16, - "source": 4, - "pc": [ - 64 - ] - }, - { - "teal": 17, - "source": 4, - "pc": [ - 65, - 66 - ] - }, - { - "teal": 18, - "source": 4, - "pc": [ - 67 - ] - }, - { - "teal": 19, - "source": 4, - "pc": [ - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93 - ] - }, - { - "teal": 23, - "source": 4, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "pc": [ - 94 - ] - }, - { - "teal": 28, - "source": 25, - "pc": [ - 95, - 96, - 97 - ] - }, - { - "teal": 29, - "source": 25, - "pc": [ - 98 - ] - }, - { - "teal": 30, - "source": 25, - "pc": [ - 99 - ] - }, - { - "teal": 34, - "source": 25, - "pc": [ - 100, - 101, - 102 - ] - }, - { - "teal": 38, - "source": 26, - "pc": [ - 103 - ] - }, - { - "teal": 39, - "source": 26, - "pc": [ - 104 - ] - }, - { - "teal": 40, - "source": 26, - "pc": [ - 105 - ] - }, - { - "teal": 41, - "source": 26, - "pc": [ - 106 - ] - }, - { - "teal": 42, - "source": 26, - "pc": [ - 107 - ] - }, - { - "teal": 43, - "source": 26, - "pc": [ - 108 - ] - }, - { - "teal": 47, - "source": 27, - "pc": [ - 109 - ] - }, - { - "teal": 48, - "source": 27, - "pc": [ - 110 - ] - }, - { - "teal": 49, - "source": 27, - "pc": [ - 111 - ] - }, - { - "teal": 53, - "source": 28, - "pc": [ - 112, - 113 - ] - }, - { - "teal": 54, - "source": 28, - "pc": [ - 114 - ] - }, - { - "teal": 55, - "source": 28, - "pc": [ - 115 - ] - }, - { - "teal": 56, - "source": 28, - "pc": [ - 116 - ] - }, - { - "teal": 57, - "source": 25, - "pc": [ - 117 - ] - }, - { - "teal": 62, - "source": 31, - "pc": [ - 118, - 119, - 120 - ] - }, - { - "teal": 63, - "source": 31, - "pc": [ - 121 - ] - }, - { - "teal": 64, - "source": 31, - "pc": [ - 122 - ] - }, - { - "teal": 68, - "source": 31, - "pc": [ - 123, - 124, - 125 - ] - }, - { - "teal": 72, - "source": 32, - "pc": [ - 126 - ] - }, - { - "teal": 73, - "source": 32, - "pc": [ - 127 - ] - }, - { - "teal": 74, - "source": 32, - "pc": [ - 128 - ] - }, - { - "teal": 75, - "source": 31, - "pc": [ - 129 - ] - }, - { - "teal": 80, - "source": 35, - "pc": [ - 130, - 131, - 132 - ] - }, - { - "teal": 81, - "source": 35, - "pc": [ - 133 - ] - }, - { - "teal": 82, - "source": 35, - "pc": [ - 134 - ] - }, - { - "teal": 86, - "source": 35, - "pc": [ - 135, - 136, - 137 - ] - }, - { - "teal": 90, - "source": 36, - "pc": [ - 138 - ] - }, - { - "teal": 91, - "source": 36, - "pc": [ - 139 - ] - }, - { - "teal": 92, - "source": 36, - "pc": [ - 140 - ] - }, - { - "teal": 93, - "source": 36, - "pc": [ - 141 - ] - }, - { - "teal": 94, - "source": 36, - "pc": [ - 142 - ] - }, - { - "teal": 95, - "source": 35, - "pc": [ - 143 - ] - }, - { - "teal": 100, - "source": 39, - "pc": [ - 144, - 145, - 146 - ] - }, - { - "teal": 101, - "source": 39, - "pc": [ - 147 - ] - }, - { - "teal": 102, - "source": 39, - "pc": [ - 148 - ] - }, - { - "teal": 106, - "source": 39, - "pc": [ - 149, - 150, - 151 - ] - }, - { - "teal": 110, - "source": 40, - "pc": [ - 152 - ] - }, - { - "teal": 111, - "source": 40, - "pc": [ - 153 - ] - }, - { - "teal": 112, - "source": 39, - "pc": [ - 154 - ] - }, - { - "teal": 117, - "source": 43, - "pc": [ - 155, - 156, - 157 - ] - }, - { - "teal": 118, - "source": 43, - "pc": [ - 158 - ] - }, - { - "teal": 119, - "source": 43, - "pc": [ - 159 - ] - }, - { - "teal": 123, - "source": 43, - "pc": [ - 160, - 161, - 162 - ] - }, - { - "teal": 127, - "source": 44, - "pc": [ - 163, - 164, - 165 - ] - }, - { - "teal": 128, - "source": 44, - "pc": [ - 166 - ] - }, - { - "teal": 129, - "source": 44, - "pc": [ - 167 - ] - }, - { - "teal": 130, - "source": 44, - "pc": [ - 168 - ] - }, - { - "teal": 131, - "source": 44, - "pc": [ - 169 - ] - }, - { - "teal": 132, - "source": 44, - "pc": [ - 170 - ] - }, - { - "teal": 133, - "source": 43, - "pc": [ - 171 - ] - }, - { - "teal": 138, - "source": 47, - "pc": [ - 172, - 173, - 174 - ] - }, - { - "teal": 139, - "source": 47, - "pc": [ - 175 - ] - }, - { - "teal": 140, - "source": 47, - "pc": [ - 176 - ] - }, - { - "teal": 141, - "source": 47, - "pc": [ - 177 - ] - }, - { - "teal": 142, - "source": 47, - "pc": [ - 178 - ] - }, - { - "teal": 145, - "source": 47, - "errorMessage": "argument 0 (a) for localKeyPut must be a address", - "pc": [ - 179 - ] - }, - { - "teal": 148, - "source": 47, - "pc": [ - 180, - 181, - 182 - ] - }, - { - "teal": 149, - "source": 47, - "pc": [ - 183 - ] - }, - { - "teal": 150, - "source": 47, - "pc": [ - 184 - ] - }, - { - "teal": 154, - "source": 47, - "pc": [ - 185, - 186, - 187 - ] - }, - { - "teal": 158, - "source": 48, - "pc": [ - 188, - 189 - ] - }, - { - "teal": 159, - "source": 48, - "pc": [ - 190 - ] - }, - { - "teal": 160, - "source": 48, - "pc": [ - 191 - ] - }, - { - "teal": 161, - "source": 48, - "pc": [ - 192 - ] - }, - { - "teal": 162, - "source": 47, - "pc": [ - 193 - ] - }, - { - "teal": 167, - "source": 51, - "pc": [ - 194, - 195, - 196 - ] - }, - { - "teal": 168, - "source": 51, - "pc": [ - 197 - ] - }, - { - "teal": 169, - "source": 51, - "pc": [ - 198 - ] - }, - { - "teal": 170, - "source": 51, - "pc": [ - 199 - ] - }, - { - "teal": 171, - "source": 51, - "pc": [ - 200 - ] - }, - { - "teal": 174, - "source": 51, - "errorMessage": "argument 0 (a) for localKeyGet must be a address", - "pc": [ - 201 - ] - }, - { - "teal": 177, - "source": 51, - "pc": [ - 202, - 203, - 204 - ] - }, - { - "teal": 178, - "source": 51, - "pc": [ - 205 - ] - }, - { - "teal": 179, - "source": 51, - "pc": [ - 206 - ] - }, - { - "teal": 183, - "source": 51, - "pc": [ - 207, - 208, - 209 - ] - }, - { - "teal": 187, - "source": 52, - "pc": [ - 210, - 211 - ] - }, - { - "teal": 188, - "source": 52, - "pc": [ - 212 - ] - }, - { - "teal": 189, - "source": 52, - "pc": [ - 213 - ] - }, - { - "teal": 190, - "source": 52, - "pc": [ - 214 - ] - }, - { - "teal": 191, - "source": 52, - "pc": [ - 215 - ] - }, - { - "teal": 192, - "source": 52, - "pc": [ - 216 - ] - }, - { - "teal": 193, - "source": 51, - "pc": [ - 217 - ] - }, - { - "teal": 198, - "source": 55, - "pc": [ - 218, - 219, - 220 - ] - }, - { - "teal": 199, - "source": 55, - "pc": [ - 221 - ] - }, - { - "teal": 200, - "source": 55, - "pc": [ - 222 - ] - }, - { - "teal": 201, - "source": 55, - "pc": [ - 223 - ] - }, - { - "teal": 202, - "source": 55, - "pc": [ - 224 - ] - }, - { - "teal": 205, - "source": 55, - "errorMessage": "argument 0 (a) for localKeyDelete must be a address", - "pc": [ - 225 - ] - }, - { - "teal": 208, - "source": 55, - "pc": [ - 226, - 227, - 228 - ] - }, - { - "teal": 209, - "source": 55, - "pc": [ - 229 - ] - }, - { - "teal": 210, - "source": 55, - "pc": [ - 230 - ] - }, - { - "teal": 214, - "source": 55, - "pc": [ - 231, - 232, - 233 - ] - }, - { - "teal": 218, - "source": 56, - "pc": [ - 234, - 235 - ] - }, - { - "teal": 219, - "source": 56, - "pc": [ - 236 - ] - }, - { - "teal": 220, - "source": 56, - "pc": [ - 237 - ] - }, - { - "teal": 221, - "source": 55, - "pc": [ - 238 - ] - }, - { - "teal": 226, - "source": 59, - "pc": [ - 239, - 240, - 241 - ] - }, - { - "teal": 227, - "source": 59, - "pc": [ - 242 - ] - }, - { - "teal": 228, - "source": 59, - "pc": [ - 243 - ] - }, - { - "teal": 229, - "source": 59, - "pc": [ - 244 - ] - }, - { - "teal": 230, - "source": 59, - "pc": [ - 245 - ] - }, - { - "teal": 233, - "source": 59, - "errorMessage": "argument 0 (a) for localKeyExists must be a address", - "pc": [ - 246 - ] - }, - { - "teal": 236, - "source": 59, - "pc": [ - 247, - 248, - 249 - ] - }, - { - "teal": 237, - "source": 59, - "pc": [ - 250 - ] - }, - { - "teal": 238, - "source": 59, - "pc": [ - 251 - ] - }, - { - "teal": 242, - "source": 59, - "pc": [ - 252, - 253, - 254 - ] - }, - { - "teal": 246, - "source": 60, - "pc": [ - 255, - 256 - ] - }, - { - "teal": 247, - "source": 60, - "pc": [ - 257, - 258, - 259 - ] - }, - { - "teal": 248, - "source": 60, - "pc": [ - 260 - ] - }, - { - "teal": 249, - "source": 60, - "pc": [ - 261 - ] - }, - { - "teal": 250, - "source": 60, - "pc": [ - 262 - ] - }, - { - "teal": 251, - "source": 60, - "pc": [ - 263 - ] - }, - { - "teal": 252, - "source": 60, - "pc": [ - 264 - ] - }, - { - "teal": 253, - "source": 59, - "pc": [ - 265 - ] - }, - { - "teal": 258, - "source": 63, - "pc": [ - 266, - 267, - 268 - ] - }, - { - "teal": 259, - "source": 63, - "pc": [ - 269 - ] - }, - { - "teal": 260, - "source": 63, - "pc": [ - 270 - ] - }, - { - "teal": 264, - "source": 63, - "pc": [ - 271, - 272, - 273 - ] - }, - { - "teal": 268, - "source": 64, - "pc": [ - 274 - ] - }, - { - "teal": 269, - "source": 64, - "pc": [ - 275 - ] - }, - { - "teal": 270, - "source": 64, - "pc": [ - 276 - ] - }, - { - "teal": 271, - "source": 63, - "pc": [ - 277 - ] - }, - { - "teal": 276, - "source": 67, - "pc": [ - 278, - 279, - 280 - ] - }, - { - "teal": 277, - "source": 67, - "pc": [ - 281 - ] - }, - { - "teal": 278, - "source": 67, - "pc": [ - 282 - ] - }, - { - "teal": 282, - "source": 67, - "pc": [ - 283, - 284, - 285 - ] - }, - { - "teal": 286, - "source": 68, - "pc": [ - 286 - ] - }, - { - "teal": 287, - "source": 68, - "pc": [ - 287 - ] - }, - { - "teal": 290, - "source": 68, - "errorMessage": "box value does not exist: this.boxKey.value", - "pc": [ - 288 - ] - }, - { - "teal": 291, - "source": 68, - "pc": [ - 289 - ] - }, - { - "teal": 292, - "source": 68, - "pc": [ - 290 - ] - }, - { - "teal": 293, - "source": 68, - "pc": [ - 291 - ] - }, - { - "teal": 294, - "source": 67, - "pc": [ - 292 - ] - }, - { - "teal": 299, - "source": 71, - "pc": [ - 293, - 294, - 295 - ] - }, - { - "teal": 300, - "source": 71, - "pc": [ - 296 - ] - }, - { - "teal": 301, - "source": 71, - "pc": [ - 297 - ] - }, - { - "teal": 305, - "source": 71, - "pc": [ - 298, - 299, - 300 - ] - }, - { - "teal": 309, - "source": 72, - "pc": [ - 301 - ] - }, - { - "teal": 310, - "source": 72, - "pc": [ - 302 - ] - }, - { - "teal": 311, - "source": 71, - "pc": [ - 303 - ] - }, - { - "teal": 316, - "source": 75, - "pc": [ - 304, - 305, - 306 - ] - }, - { - "teal": 317, - "source": 75, - "pc": [ - 307 - ] - }, - { - "teal": 318, - "source": 75, - "pc": [ - 308 - ] - }, - { - "teal": 322, - "source": 75, - "pc": [ - 309, - 310, - 311 - ] - }, - { - "teal": 326, - "source": 76, - "pc": [ - 312 - ] - }, - { - "teal": 327, - "source": 76, - "pc": [ - 313 - ] - }, - { - "teal": 328, - "source": 76, - "pc": [ - 314 - ] - }, - { - "teal": 329, - "source": 76, - "pc": [ - 315 - ] - }, - { - "teal": 330, - "source": 76, - "pc": [ - 316 - ] - }, - { - "teal": 331, - "source": 75, - "pc": [ - 317 - ] - }, - { - "teal": 336, - "source": 79, - "pc": [ - 318, - 319, - 320 - ] - }, - { - "teal": 337, - "source": 79, - "pc": [ - 321 - ] - }, - { - "teal": 338, - "source": 79, - "pc": [ - 322 - ] - }, - { - "teal": 342, - "source": 79, - "pc": [ - 323, - 324, - 325 - ] - }, - { - "teal": 346, - "source": 80, - "pc": [ - 326 - ] - }, - { - "teal": 347, - "source": 80, - "pc": [ - 327 - ] - }, - { - "teal": 348, - "source": 80, - "pc": [ - 328 - ] - }, - { - "teal": 349, - "source": 79, - "pc": [ - 329 - ] - }, - { - "teal": 354, - "source": 83, - "pc": [ - 330, - 331, - 332 - ] - }, - { - "teal": 355, - "source": 83, - "pc": [ - 333 - ] - }, - { - "teal": 356, - "source": 83, - "pc": [ - 334 - ] - }, - { - "teal": 360, - "source": 83, - "pc": [ - 335, - 336, - 337 - ] - }, - { - "teal": 364, - "source": 84, - "pc": [ - 338 - ] - }, - { - "teal": 365, - "source": 84, - "pc": [ - 339 - ] - }, - { - "teal": 366, - "source": 84, - "pc": [ - 340 - ] - }, - { - "teal": 367, - "source": 84, - "pc": [ - 341 - ] - }, - { - "teal": 368, - "source": 84, - "pc": [ - 342 - ] - }, - { - "teal": 369, - "source": 83, - "pc": [ - 343 - ] - }, - { - "teal": 374, - "source": 87, - "pc": [ - 344, - 345, - 346 - ] - }, - { - "teal": 375, - "source": 87, - "pc": [ - 347 - ] - }, - { - "teal": 376, - "source": 87, - "pc": [ - 348 - ] - }, - { - "teal": 380, - "source": 87, - "pc": [ - 349, - 350, - 351 - ] - }, - { - "teal": 384, - "source": 88, - "pc": [ - 352 - ] - }, - { - "teal": 385, - "source": 88, - "pc": [ - 353 - ] - }, - { - "teal": 386, - "source": 87, - "pc": [ - 354 - ] - }, - { - "teal": 391, - "source": 91, - "pc": [ - 355, - 356, - 357 - ] - }, - { - "teal": 392, - "source": 91, - "pc": [ - 358 - ] - }, - { - "teal": 393, - "source": 91, - "pc": [ - 359 - ] - }, - { - "teal": 397, - "source": 91, - "pc": [ - 360, - 361, - 362 - ] - }, - { - "teal": 401, - "source": 92, - "pc": [ - 363, - 364, - 365 - ] - }, - { - "teal": 402, - "source": 92, - "pc": [ - 366 - ] - }, - { - "teal": 403, - "source": 92, - "pc": [ - 367 - ] - }, - { - "teal": 404, - "source": 92, - "pc": [ - 368 - ] - }, - { - "teal": 405, - "source": 92, - "pc": [ - 369 - ] - }, - { - "teal": 406, - "source": 92, - "pc": [ - 370 - ] - }, - { - "teal": 407, - "source": 91, - "pc": [ - 371 - ] - }, - { - "teal": 412, - "source": 95, - "pc": [ - 372, - 373, - 374 - ] - }, - { - "teal": 413, - "source": 95, - "pc": [ - 375 - ] - }, - { - "teal": 414, - "source": 95, - "pc": [ - 376 - ] - }, - { - "teal": 415, - "source": 95, - "pc": [ - 377 - ] - }, - { - "teal": 416, - "source": 95, - "pc": [ - 378 - ] - }, - { - "teal": 419, - "source": 95, - "errorMessage": "argument 0 (a) for localMapPut must be a address", - "pc": [ - 379 - ] - }, - { - "teal": 422, - "source": 95, - "pc": [ - 380, - 381, - 382 - ] - }, - { - "teal": 423, - "source": 95, - "pc": [ - 383 - ] - }, - { - "teal": 424, - "source": 95, - "pc": [ - 384 - ] - }, - { - "teal": 428, - "source": 95, - "pc": [ - 385, - 386, - 387 - ] - }, - { - "teal": 432, - "source": 96, - "pc": [ - 388, - 389 - ] - }, - { - "teal": 433, - "source": 96, - "pc": [ - 390 - ] - }, - { - "teal": 434, - "source": 96, - "pc": [ - 391 - ] - }, - { - "teal": 435, - "source": 96, - "pc": [ - 392 - ] - }, - { - "teal": 436, - "source": 95, - "pc": [ - 393 - ] - }, - { - "teal": 441, - "source": 99, - "pc": [ - 394, - 395, - 396 - ] - }, - { - "teal": 442, - "source": 99, - "pc": [ - 397 - ] - }, - { - "teal": 443, - "source": 99, - "pc": [ - 398 - ] - }, - { - "teal": 444, - "source": 99, - "pc": [ - 399 - ] - }, - { - "teal": 445, - "source": 99, - "pc": [ - 400 - ] - }, - { - "teal": 448, - "source": 99, - "errorMessage": "argument 0 (a) for localMapGet must be a address", - "pc": [ - 401 - ] - }, - { - "teal": 451, - "source": 99, - "pc": [ - 402, - 403, - 404 - ] - }, - { - "teal": 452, - "source": 99, - "pc": [ - 405 - ] - }, - { - "teal": 453, - "source": 99, - "pc": [ - 406 - ] - }, - { - "teal": 457, - "source": 99, - "pc": [ - 407, - 408, - 409 - ] - }, - { - "teal": 461, - "source": 100, - "pc": [ - 410, - 411 - ] - }, - { - "teal": 462, - "source": 100, - "pc": [ - 412 - ] - }, - { - "teal": 463, - "source": 100, - "pc": [ - 413 - ] - }, - { - "teal": 464, - "source": 100, - "pc": [ - 414 - ] - }, - { - "teal": 465, - "source": 100, - "pc": [ - 415 - ] - }, - { - "teal": 466, - "source": 100, - "pc": [ - 416 - ] - }, - { - "teal": 467, - "source": 99, - "pc": [ - 417 - ] - }, - { - "teal": 472, - "source": 103, - "pc": [ - 418, - 419, - 420 - ] - }, - { - "teal": 473, - "source": 103, - "pc": [ - 421 - ] - }, - { - "teal": 474, - "source": 103, - "pc": [ - 422 - ] - }, - { - "teal": 475, - "source": 103, - "pc": [ - 423 - ] - }, - { - "teal": 476, - "source": 103, - "pc": [ - 424 - ] - }, - { - "teal": 479, - "source": 103, - "errorMessage": "argument 0 (a) for localMapDelete must be a address", - "pc": [ - 425 - ] - }, - { - "teal": 482, - "source": 103, - "pc": [ - 426, - 427, - 428 - ] - }, - { - "teal": 483, - "source": 103, - "pc": [ - 429 - ] - }, - { - "teal": 484, - "source": 103, - "pc": [ - 430 - ] - }, - { - "teal": 488, - "source": 103, - "pc": [ - 431, - 432, - 433 - ] - }, - { - "teal": 492, - "source": 104, - "pc": [ - 434, - 435 - ] - }, - { - "teal": 493, - "source": 104, - "pc": [ - 436 - ] - }, - { - "teal": 494, - "source": 104, - "pc": [ - 437 - ] - }, - { - "teal": 495, - "source": 103, - "pc": [ - 438 - ] - }, - { - "teal": 500, - "source": 107, - "pc": [ - 439, - 440, - 441 - ] - }, - { - "teal": 501, - "source": 107, - "pc": [ - 442 - ] - }, - { - "teal": 502, - "source": 107, - "pc": [ - 443 - ] - }, - { - "teal": 503, - "source": 107, - "pc": [ - 444 - ] - }, - { - "teal": 504, - "source": 107, - "pc": [ - 445 - ] - }, - { - "teal": 507, - "source": 107, - "errorMessage": "argument 0 (a) for localMapExists must be a address", - "pc": [ - 446 - ] - }, - { - "teal": 510, - "source": 107, - "pc": [ - 447, - 448, - 449 - ] - }, - { - "teal": 511, - "source": 107, - "pc": [ - 450 - ] - }, - { - "teal": 512, - "source": 107, - "pc": [ - 451 - ] - }, - { - "teal": 516, - "source": 107, - "pc": [ - 452, - 453, - 454 - ] - }, - { - "teal": 520, - "source": 108, - "pc": [ - 455, - 456 - ] - }, - { - "teal": 521, - "source": 108, - "pc": [ - 457, - 458, - 459 - ] - }, - { - "teal": 522, - "source": 108, - "pc": [ - 460 - ] - }, - { - "teal": 523, - "source": 108, - "pc": [ - 461 - ] - }, - { - "teal": 524, - "source": 108, - "pc": [ - 462 - ] - }, - { - "teal": 525, - "source": 108, - "pc": [ - 463 - ] - }, - { - "teal": 526, - "source": 108, - "pc": [ - 464 - ] - }, - { - "teal": 527, - "source": 107, - "pc": [ - 465 - ] - }, - { - "teal": 532, - "source": 111, - "pc": [ - 466, - 467, - 468 - ] - }, - { - "teal": 533, - "source": 111, - "pc": [ - 469 - ] - }, - { - "teal": 534, - "source": 111, - "pc": [ - 470 - ] - }, - { - "teal": 538, - "source": 111, - "pc": [ - 471, - 472, - 473 - ] - }, - { - "teal": 542, - "source": 112, - "pc": [ - 474 - ] - }, - { - "teal": 543, - "source": 112, - "pc": [ - 475 - ] - }, - { - "teal": 544, - "source": 112, - "pc": [ - 476 - ] - }, - { - "teal": 545, - "source": 111, - "pc": [ - 477 - ] - }, - { - "teal": 550, - "source": 115, - "pc": [ - 478, - 479, - 480 - ] - }, - { - "teal": 551, - "source": 115, - "pc": [ - 481 - ] - }, - { - "teal": 552, - "source": 115, - "pc": [ - 482 - ] - }, - { - "teal": 556, - "source": 115, - "pc": [ - 483, - 484, - 485 - ] - }, - { - "teal": 560, - "source": 116, - "pc": [ - 486 - ] - }, - { - "teal": 561, - "source": 116, - "pc": [ - 487 - ] - }, - { - "teal": 564, - "source": 116, - "errorMessage": "box value does not exist: this.boxMap('foo').value", - "pc": [ - 488 - ] - }, - { - "teal": 565, - "source": 116, - "pc": [ - 489 - ] - }, - { - "teal": 566, - "source": 116, - "pc": [ - 490 - ] - }, - { - "teal": 567, - "source": 116, - "pc": [ - 491 - ] - }, - { - "teal": 568, - "source": 115, - "pc": [ - 492 - ] - }, - { - "teal": 573, - "source": 119, - "pc": [ - 493, - 494, - 495 - ] - }, - { - "teal": 574, - "source": 119, - "pc": [ - 496 - ] - }, - { - "teal": 575, - "source": 119, - "pc": [ - 497 - ] - }, - { - "teal": 579, - "source": 119, - "pc": [ - 498, - 499, - 500 - ] - }, - { - "teal": 583, - "source": 120, - "pc": [ - 501 - ] - }, - { - "teal": 584, - "source": 120, - "pc": [ - 502 - ] - }, - { - "teal": 585, - "source": 119, - "pc": [ - 503 - ] - }, - { - "teal": 590, - "source": 123, - "pc": [ - 504, - 505, - 506 - ] - }, - { - "teal": 591, - "source": 123, - "pc": [ - 507 - ] - }, - { - "teal": 592, - "source": 123, - "pc": [ - 508 - ] - }, - { - "teal": 596, - "source": 123, - "pc": [ - 509, - 510, - 511 - ] - }, - { - "teal": 600, - "source": 124, - "pc": [ - 512 - ] - }, - { - "teal": 601, - "source": 124, - "pc": [ - 513 - ] - }, - { - "teal": 602, - "source": 124, - "pc": [ - 514 - ] - }, - { - "teal": 603, - "source": 124, - "pc": [ - 515 - ] - }, - { - "teal": 604, - "source": 124, - "pc": [ - 516 - ] - }, - { - "teal": 605, - "source": 123, - "pc": [ - 517 - ] - }, - { - "teal": 610, - "source": 127, - "pc": [ - 518, - 519, - 520 - ] - }, - { - "teal": 611, - "source": 127, - "pc": [ - 521 - ] - }, - { - "teal": 612, - "source": 127, - "pc": [ - 522 - ] - }, - { - "teal": 616, - "source": 127, - "pc": [ - 523, - 524, - 525 - ] - }, - { - "teal": 620, - "source": 128, - "pc": [ - 526 - ] - }, - { - "teal": 621, - "source": 128, - "pc": [ - 527 - ] - }, - { - "teal": 622, - "source": 128, - "pc": [ - 528 - ] - }, - { - "teal": 623, - "source": 128, - "pc": [ - 529 - ] - }, - { - "teal": 624, - "source": 127, - "pc": [ - 530 - ] - }, - { - "teal": 629, - "source": 131, - "pc": [ - 531, - 532, - 533 - ] - }, - { - "teal": 630, - "source": 131, - "pc": [ - 534 - ] - }, - { - "teal": 631, - "source": 131, - "pc": [ - 535 - ] - }, - { - "teal": 635, - "source": 131, - "pc": [ - 536, - 537, - 538 - ] - }, - { - "teal": 639, - "source": 132, - "pc": [ - 539 - ] - }, - { - "teal": 640, - "source": 132, - "pc": [ - 540 - ] - }, - { - "teal": 641, - "source": 132, - "pc": [ - 541 - ] - }, - { - "teal": 642, - "source": 132, - "pc": [ - 542 - ] - }, - { - "teal": 643, - "source": 131, - "pc": [ - 543 - ] - }, - { - "teal": 648, - "source": 135, - "pc": [ - 544 - ] - }, - { - "teal": 651, - "source": 135, - "pc": [ - 545, - 546, - 547 - ] - }, - { - "teal": 652, - "source": 135, - "pc": [ - 548 - ] - }, - { - "teal": 653, - "source": 135, - "pc": [ - 549 - ] - }, - { - "teal": 654, - "source": 135, - "pc": [ - 550 - ] - }, - { - "teal": 655, - "source": 135, - "pc": [ - 551 - ] - }, - { - "teal": 656, - "source": 135, - "pc": [ - 552 - ] - }, - { - "teal": 660, - "source": 135, - "pc": [ - 553, - 554, - 555 - ] - }, - { - "teal": 664, - "source": 136, - "pc": [ - 556 - ] - }, - { - "teal": 665, - "source": 136, - "pc": [ - 557 - ] - }, - { - "teal": 668, - "source": 136, - "errorMessage": "box value does not exist: this.boxKey.size", - "pc": [ - 558 - ] - }, - { - "teal": 669, - "source": 135, - "pc": [ - 559 - ] - }, - { - "teal": 674, - "source": 139, - "pc": [ - 560 - ] - }, - { - "teal": 677, - "source": 139, - "pc": [ - 561, - 562, - 563 - ] - }, - { - "teal": 678, - "source": 139, - "pc": [ - 564 - ] - }, - { - "teal": 679, - "source": 139, - "pc": [ - 565 - ] - }, - { - "teal": 680, - "source": 139, - "pc": [ - 566 - ] - }, - { - "teal": 681, - "source": 139, - "pc": [ - 567 - ] - }, - { - "teal": 682, - "source": 139, - "pc": [ - 568 - ] - }, - { - "teal": 686, - "source": 139, - "pc": [ - 569, - 570, - 571 - ] - }, - { - "teal": 690, - "source": 140, - "pc": [ - 572 - ] - }, - { - "teal": 691, - "source": 140, - "pc": [ - 573 - ] - }, - { - "teal": 694, - "source": 140, - "errorMessage": "box value does not exist: this.boxMap('bar').size", - "pc": [ - 574 - ] - }, - { - "teal": 695, - "source": 139, - "pc": [ - 575 - ] - }, - { - "teal": 700, - "source": 143, - "pc": [ - 576, - 577, - 578 - ] - }, - { - "teal": 701, - "source": 143, - "pc": [ - 579 - ] - }, - { - "teal": 702, - "source": 143, - "pc": [ - 580 - ] - }, - { - "teal": 706, - "source": 143, - "pc": [ - 581, - 582, - 583 - ] - }, - { - "teal": 710, - "source": 144, - "pc": [ - 584 - ] - }, - { - "teal": 711, - "source": 144, - "pc": [ - 585 - ] - }, - { - "teal": 712, - "source": 144, - "pc": [ - 586, - 587 - ] - }, - { - "teal": 713, - "source": 144, - "pc": [ - 588 - ] - }, - { - "teal": 714, - "source": 143, - "pc": [ - 589 - ] - }, - { - "teal": 719, - "source": 147, - "pc": [ - 590, - 591, - 592 - ] - }, - { - "teal": 720, - "source": 147, - "pc": [ - 593 - ] - }, - { - "teal": 721, - "source": 147, - "pc": [ - 594 - ] - }, - { - "teal": 725, - "source": 147, - "pc": [ - 595, - 596, - 597 - ] - }, - { - "teal": 729, - "source": 148, - "pc": [ - 598 - ] - }, - { - "teal": 730, - "source": 148, - "pc": [ - 599 - ] - }, - { - "teal": 731, - "source": 148, - "pc": [ - 600, - 601 - ] - }, - { - "teal": 732, - "source": 148, - "pc": [ - 602 - ] - }, - { - "teal": 733, - "source": 147, - "pc": [ - 603 - ] - }, - { - "teal": 738, - "source": 151, - "pc": [ - 604 - ] - }, - { - "teal": 741, - "source": 151, - "pc": [ - 605, - 606, - 607 - ] - }, - { - "teal": 742, - "source": 151, - "pc": [ - 608 - ] - }, - { - "teal": 743, - "source": 151, - "pc": [ - 609 - ] - }, - { - "teal": 744, - "source": 151, - "pc": [ - 610 - ] - }, - { - "teal": 745, - "source": 151, - "pc": [ - 611, - 612, - 613 - ] - }, - { - "teal": 746, - "source": 151, - "pc": [ - 614 - ] - }, - { - "teal": 747, - "source": 151, - "pc": [ - 615 - ] - }, - { - "teal": 748, - "source": 151, - "pc": [ - 616 - ] - }, - { - "teal": 749, - "source": 151, - "pc": [ - 617 - ] - }, - { - "teal": 750, - "source": 151, - "pc": [ - 618 - ] - }, - { - "teal": 751, - "source": 151, - "pc": [ - 619 - ] - }, - { - "teal": 755, - "source": 151, - "pc": [ - 620, - 621, - 622 - ] - }, - { - "teal": 759, - "source": 152, - "pc": [ - 623 - ] - }, - { - "teal": 760, - "source": 152, - "pc": [ - 624 - ] - }, - { - "teal": 761, - "source": 152, - "pc": [ - 625, - 626 - ] - }, - { - "teal": 762, - "source": 152, - "pc": [ - 627 - ] - }, - { - "teal": 763, - "source": 151, - "pc": [ - 628 - ] - }, - { - "teal": 768, - "source": 155, - "pc": [ - 629 - ] - }, - { - "teal": 771, - "source": 155, - "pc": [ - 630, - 631, - 632 - ] - }, - { - "teal": 772, - "source": 155, - "pc": [ - 633 - ] - }, - { - "teal": 773, - "source": 155, - "pc": [ - 634 - ] - }, - { - "teal": 774, - "source": 155, - "pc": [ - 635 - ] - }, - { - "teal": 775, - "source": 155, - "pc": [ - 636, - 637, - 638 - ] - }, - { - "teal": 776, - "source": 155, - "pc": [ - 639 - ] - }, - { - "teal": 777, - "source": 155, - "pc": [ - 640 - ] - }, - { - "teal": 778, - "source": 155, - "pc": [ - 641 - ] - }, - { - "teal": 779, - "source": 155, - "pc": [ - 642 - ] - }, - { - "teal": 780, - "source": 155, - "pc": [ - 643 - ] - }, - { - "teal": 781, - "source": 155, - "pc": [ - 644 - ] - }, - { - "teal": 785, - "source": 155, - "pc": [ - 645, - 646, - 647 - ] - }, - { - "teal": 789, - "source": 156, - "pc": [ - 648 - ] - }, - { - "teal": 790, - "source": 156, - "pc": [ - 649 - ] - }, - { - "teal": 791, - "source": 156, - "pc": [ - 650, - 651 - ] - }, - { - "teal": 792, - "source": 156, - "pc": [ - 652 - ] - }, - { - "teal": 793, - "source": 155, - "pc": [ - 653 - ] - }, - { - "teal": 798, - "source": 159, - "pc": [ - 654 - ] - }, - { - "teal": 801, - "source": 159, - "pc": [ - 655, - 656, - 657 - ] - }, - { - "teal": 802, - "source": 159, - "pc": [ - 658, - 659, - 660 - ] - }, - { - "teal": 803, - "source": 159, - "pc": [ - 661 - ] - }, - { - "teal": 804, - "source": 159, - "pc": [ - 662, - 663 - ] - }, - { - "teal": 805, - "source": 159, - "pc": [ - 664 - ] - }, - { - "teal": 806, - "source": 159, - "pc": [ - 665 - ] - }, - { - "teal": 807, - "source": 159, - "pc": [ - 666 - ] - }, - { - "teal": 808, - "source": 159, - "pc": [ - 667 - ] - }, - { - "teal": 809, - "source": 159, - "pc": [ - 668 - ] - }, - { - "teal": 813, - "source": 159, - "pc": [ - 669, - 670, - 671 - ] - }, - { - "teal": 817, - "source": 160, - "pc": [ - 672, - 673 - ] - }, - { - "teal": 818, - "source": 160, - "pc": [ - 674, - 675, - 676 - ] - }, - { - "teal": 819, - "source": 160, - "pc": [ - 677 - ] - }, - { - "teal": 820, - "source": 159, - "pc": [ - 678 - ] - }, - { - "teal": 825, - "source": 163, - "pc": [ - 679, - 680, - 681 - ] - }, - { - "teal": 826, - "source": 163, - "pc": [ - 682 - ] - }, - { - "teal": 827, - "source": 163, - "pc": [ - 683 - ] - }, - { - "teal": 831, - "source": 163, - "pc": [ - 684, - 685, - 686 - ] - }, - { - "teal": 835, - "source": 164, - "pc": [ - 687, - 688, - 689 - ] - }, - { - "teal": 836, - "source": 164, - "pc": [ - 690 - ] - }, - { - "teal": 837, - "source": 164, - "pc": [ - 691 - ] - }, - { - "teal": 840, - "source": 164, - "errorMessage": "global state value does not exist: this.app.globalState('foo')", - "pc": [ - 692 - ] - }, - { - "teal": 841, - "source": 164, - "pc": [ - 693 - ] - }, - { - "teal": 842, - "source": 163, - "pc": [ - 694 - ] - }, - { - "teal": 847, - "source": 167, - "pc": [ - 695, - 696, - 697 - ] - }, - { - "teal": 848, - "source": 167, - "pc": [ - 698 - ] - }, - { - "teal": 849, - "source": 167, - "pc": [ - 699 - ] - }, - { - "teal": 853, - "source": 167, - "pc": [ - 700, - 701, - 702 - ] - }, - { - "teal": 857, - "source": 168, - "pc": [ - 703, - 704 - ] - }, - { - "teal": 858, - "source": 168, - "pc": [ - 705, - 706, - 707 - ] - }, - { - "teal": 859, - "source": 168, - "pc": [ - 708 - ] - }, - { - "teal": 860, - "source": 168, - "pc": [ - 709 - ] - }, - { - "teal": 863, - "source": 168, - "errorMessage": "local state value does not exist: this.app.localState(this.txn.sender, 'foo')", - "pc": [ - 710 - ] - }, - { - "teal": 864, - "source": 168, - "pc": [ - 711 - ] - }, - { - "teal": 865, - "source": 167, - "pc": [ - 712 - ] - }, - { - "teal": 870, - "source": 171, - "pc": [ - 713 - ] - }, - { - "teal": 873, - "source": 171, - "pc": [ - 714, - 715, - 716 - ] - }, - { - "teal": 874, - "source": 171, - "pc": [ - 717 - ] - }, - { - "teal": 875, - "source": 171, - "pc": [ - 718 - ] - }, - { - "teal": 876, - "source": 171, - "pc": [ - 719 - ] - }, - { - "teal": 877, - "source": 171, - "pc": [ - 720, - 721 - ] - }, - { - "teal": 878, - "source": 171, - "pc": [ - 722 - ] - }, - { - "teal": 881, - "source": 171, - "errorMessage": "accessStaticValueInLargeBox return value overflowed 16 bits", - "pc": [ - 723 - ] - }, - { - "teal": 882, - "source": 171, - "pc": [ - 724, - 725, - 726 - ] - }, - { - "teal": 883, - "source": 171, - "pc": [ - 727 - ] - }, - { - "teal": 884, - "source": 171, - "pc": [ - 728 - ] - }, - { - "teal": 885, - "source": 171, - "pc": [ - 729 - ] - }, - { - "teal": 886, - "source": 171, - "pc": [ - 730 - ] - }, - { - "teal": 890, - "source": 171, - "pc": [ - 731, - 732, - 733 - ] - }, - { - "teal": 894, - "source": 172, - "pc": [ - 734 - ] - }, - { - "teal": 895, - "source": 172, - "pc": [ - 735, - 736 - ] - }, - { - "teal": 896, - "source": 172, - "pc": [ - 737 - ] - }, - { - "teal": 897, - "source": 172, - "pc": [ - 738 - ] - }, - { - "teal": 901, - "source": 173, - "pc": [ - 739 - ] - }, - { - "teal": 902, - "source": 173, - "pc": [ - 740, - 741 - ] - }, - { - "teal": 903, - "source": 173, - "pc": [ - 742, - 743 - ] - }, - { - "teal": 904, - "source": 173, - "pc": [ - 744 - ] - }, - { - "teal": 908, - "source": 175, - "pc": [ - 745 - ] - }, - { - "teal": 909, - "source": 175, - "pc": [ - 746, - 747 - ] - }, - { - "teal": 910, - "source": 175, - "pc": [ - 748, - 749 - ] - }, - { - "teal": 911, - "source": 175, - "pc": [ - 750 - ] - }, - { - "teal": 912, - "source": 175, - "pc": [ - 751 - ] - }, - { - "teal": 913, - "source": 171, - "pc": [ - 752 - ] - }, - { - "teal": 918, - "source": 178, - "pc": [ - 753 - ] - }, - { - "teal": 921, - "source": 178, - "pc": [ - 754, - 755, - 756 - ] - }, - { - "teal": 922, - "source": 178, - "pc": [ - 757 - ] - }, - { - "teal": 925, - "source": 178, - "pc": [ - 758, - 759, - 760 - ] - }, - { - "teal": 926, - "source": 178, - "pc": [ - 761 - ] - }, - { - "teal": 927, - "source": 178, - "pc": [ - 762 - ] - }, - { - "teal": 928, - "source": 178, - "pc": [ - 763 - ] - }, - { - "teal": 929, - "source": 178, - "pc": [ - 764, - 765 - ] - }, - { - "teal": 930, - "source": 178, - "pc": [ - 766 - ] - }, - { - "teal": 933, - "source": 178, - "errorMessage": "dynamicAccessStaticValueInLargeBox return value overflowed 16 bits", - "pc": [ - 767 - ] - }, - { - "teal": 934, - "source": 178, - "pc": [ - 768, - 769, - 770 - ] - }, - { - "teal": 935, - "source": 178, - "pc": [ - 771 - ] - }, - { - "teal": 936, - "source": 178, - "pc": [ - 772 - ] - }, - { - "teal": 937, - "source": 178, - "pc": [ - 773 - ] - }, - { - "teal": 938, - "source": 178, - "pc": [ - 774 - ] - }, - { - "teal": 942, - "source": 178, - "pc": [ - 775, - 776, - 777 - ] - }, - { - "teal": 946, - "source": 179, - "pc": [ - 778 - ] - }, - { - "teal": 947, - "source": 179, - "pc": [ - 779, - 780 - ] - }, - { - "teal": 948, - "source": 179, - "pc": [ - 781 - ] - }, - { - "teal": 949, - "source": 179, - "pc": [ - 782 - ] - }, - { - "teal": 953, - "source": 180, - "pc": [ - 783, - 784 - ] - }, - { - "teal": 954, - "source": 180, - "pc": [ - 785, - 786 - ] - }, - { - "teal": 955, - "source": 180, - "pc": [ - 787 - ] - }, - { - "teal": 956, - "source": 180, - "pc": [ - 788, - 789 - ] - }, - { - "teal": 957, - "source": 180, - "pc": [ - 790 - ] - }, - { - "teal": 958, - "source": 180, - "pc": [ - 791, - 792 - ] - }, - { - "teal": 959, - "source": 180, - "pc": [ - 793 - ] - }, - { - "teal": 963, - "source": 184, - "pc": [ - 794, - 795 - ] - }, - { - "teal": 964, - "source": 184, - "pc": [ - 796, - 797 - ] - }, - { - "teal": 965, - "source": 184, - "pc": [ - 798 - ] - }, - { - "teal": 966, - "source": 184, - "pc": [ - 799, - 800 - ] - }, - { - "teal": 967, - "source": 182, - "pc": [ - 801 - ] - }, - { - "teal": 968, - "source": 182, - "pc": [ - 802, - 803 - ] - }, - { - "teal": 969, - "source": 182, - "pc": [ - 804 - ] - }, - { - "teal": 970, - "source": 184, - "pc": [ - 805 - ] - }, - { - "teal": 971, - "source": 178, - "pc": [ - 806 - ] - }, - { - "teal": 976, - "source": 187, - "pc": [ - 807, - 808, - 809 - ] - }, - { - "teal": 977, - "source": 187, - "pc": [ - 810 - ] - }, - { - "teal": 978, - "source": 187, - "pc": [ - 811 - ] - }, - { - "teal": 982, - "source": 187, - "pc": [ - 812, - 813, - 814 - ] - }, - { - "teal": 986, - "source": 188, - "pc": [ - 815 - ] - }, - { - "teal": 987, - "source": 188, - "pc": [ - 816 - ] - }, - { - "teal": 988, - "source": 188, - "pc": [ - 817 - ] - }, - { - "teal": 992, - "source": 189, - "pc": [ - 818 - ] - }, - { - "teal": 993, - "source": 189, - "pc": [ - 819 - ] - }, - { - "teal": 994, - "source": 189, - "pc": [ - 820 - ] - }, - { - "teal": 995, - "source": 187, - "pc": [ - 821 - ] - }, - { - "teal": 1000, - "source": 192, - "pc": [ - 822, - 823, - 824 - ] - }, - { - "teal": 1001, - "source": 192, - "pc": [ - 825 - ] - }, - { - "teal": 1002, - "source": 192, - "pc": [ - 826 - ] - }, - { - "teal": 1006, - "source": 192, - "pc": [ - 827, - 828, - 829 - ] - }, - { - "teal": 1010, - "source": 193, - "pc": [ - 830 - ] - }, - { - "teal": 1011, - "source": 193, - "pc": [ - 831 - ] - }, - { - "teal": 1012, - "source": 193, - "pc": [ - 832 - ] - }, - { - "teal": 1013, - "source": 193, - "pc": [ - 833, - 834 - ] - }, - { - "teal": 1014, - "source": 193, - "pc": [ - 835 - ] - }, - { - "teal": 1018, - "source": 194, - "pc": [ - 836 - ] - }, - { - "teal": 1019, - "source": 194, - "pc": [ - 837 - ] - }, - { - "teal": 1020, - "source": 194, - "pc": [ - 838 - ] - }, - { - "teal": 1021, - "source": 194, - "pc": [ - 839, - 840 - ] - }, - { - "teal": 1022, - "source": 194, - "pc": [ - 841 - ] - }, - { - "teal": 1023, - "source": 192, - "pc": [ - 842 - ] - }, - { - "teal": 1028, - "source": 197, - "pc": [ - 843, - 844, - 845 - ] - }, - { - "teal": 1029, - "source": 197, - "pc": [ - 846 - ] - }, - { - "teal": 1030, - "source": 197, - "pc": [ - 847 - ] - }, - { - "teal": 1034, - "source": 197, - "pc": [ - 848, - 849, - 850 - ] - }, - { - "teal": 1038, - "source": 198, - "pc": [ - 851, - 852, - 853 - ] - }, - { - "teal": 1039, - "source": 198, - "pc": [ - 854 - ] - }, - { - "teal": 1040, - "source": 198, - "pc": [ - 855 - ] - }, - { - "teal": 1041, - "source": 198, - "pc": [ - 856 - ] - }, - { - "teal": 1042, - "source": 198, - "pc": [ - 857 - ] - }, - { - "teal": 1043, - "source": 198, - "pc": [ - 858 - ] - }, - { - "teal": 1047, - "source": 199, - "pc": [ - 859, - 860 - ] - }, - { - "teal": 1048, - "source": 199, - "pc": [ - 861, - 862, - 863 - ] - }, - { - "teal": 1049, - "source": 199, - "pc": [ - 864 - ] - }, - { - "teal": 1050, - "source": 199, - "pc": [ - 865 - ] - }, - { - "teal": 1051, - "source": 199, - "pc": [ - 866 - ] - }, - { - "teal": 1052, - "source": 199, - "pc": [ - 867 - ] - }, - { - "teal": 1053, - "source": 199, - "pc": [ - 868 - ] - }, - { - "teal": 1054, - "source": 197, - "pc": [ - 869 - ] - }, - { - "teal": 1057, - "source": 4, - "pc": [ - 870 - ] - }, - { - "teal": 1058, - "source": 4, - "pc": [ - 871 - ] - }, - { - "teal": 1061, - "source": 4, - "pc": [ - 872, - 873, - 874, - 875, - 876, - 877 - ] - }, - { - "teal": 1062, - "source": 4, - "pc": [ - 878, - 879, - 880 - ] - }, - { - "teal": 1063, - "source": 4, - "pc": [ - 881, - 882, - 883, - 884 - ] - }, - { - "teal": 1066, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "pc": [ - 885 - ] - }, - { - "teal": 1069, - "source": 4, - "pc": [ - 886, - 887, - 888, - 889, - 890, - 891 - ] - }, - { - "teal": 1070, - "source": 4, - "pc": [ - 892, - 893, - 894, - 895, - 896, - 897 - ] - }, - { - "teal": 1071, - "source": 4, - "pc": [ - 898, - 899, - 900, - 901, - 902, - 903 - ] - }, - { - "teal": 1072, - "source": 4, - "pc": [ - 904, - 905, - 906, - 907, - 908, - 909 - ] - }, - { - "teal": 1073, - "source": 4, - "pc": [ - 910, - 911, - 912, - 913, - 914, - 915 - ] - }, - { - "teal": 1074, - "source": 4, - "pc": [ - 916, - 917, - 918, - 919, - 920, - 921 - ] - }, - { - "teal": 1075, - "source": 4, - "pc": [ - 922, - 923, - 924, - 925, - 926, - 927 - ] - }, - { - "teal": 1076, - "source": 4, - "pc": [ - 928, - 929, - 930, - 931, - 932, - 933 - ] - }, - { - "teal": 1077, - "source": 4, - "pc": [ - 934, - 935, - 936, - 937, - 938, - 939 - ] - }, - { - "teal": 1078, - "source": 4, - "pc": [ - 940, - 941, - 942, - 943, - 944, - 945 - ] - }, - { - "teal": 1079, - "source": 4, - "pc": [ - 946, - 947, - 948, - 949, - 950, - 951 - ] - }, - { - "teal": 1080, - "source": 4, - "pc": [ - 952, - 953, - 954, - 955, - 956, - 957 - ] - }, - { - "teal": 1081, - "source": 4, - "pc": [ - 958, - 959, - 960, - 961, - 962, - 963 - ] - }, - { - "teal": 1082, - "source": 4, - "pc": [ - 964, - 965, - 966, - 967, - 968, - 969 - ] - }, - { - "teal": 1083, - "source": 4, - "pc": [ - 970, - 971, - 972, - 973, - 974, - 975 - ] - }, - { - "teal": 1084, - "source": 4, - "pc": [ - 976, - 977, - 978, - 979, - 980, - 981 - ] - }, - { - "teal": 1085, - "source": 4, - "pc": [ - 982, - 983, - 984, - 985, - 986, - 987 - ] - }, - { - "teal": 1086, - "source": 4, - "pc": [ - 988, - 989, - 990, - 991, - 992, - 993 - ] - }, - { - "teal": 1087, - "source": 4, - "pc": [ - 994, - 995, - 996, - 997, - 998, - 999 - ] - }, - { - "teal": 1088, - "source": 4, - "pc": [ - 1000, - 1001, - 1002, - 1003, - 1004, - 1005 - ] - }, - { - "teal": 1089, - "source": 4, - "pc": [ - 1006, - 1007, - 1008, - 1009, - 1010, - 1011 - ] - }, - { - "teal": 1090, - "source": 4, - "pc": [ - 1012, - 1013, - 1014, - 1015, - 1016, - 1017 - ] - }, - { - "teal": 1091, - "source": 4, - "pc": [ - 1018, - 1019, - 1020, - 1021, - 1022, - 1023 - ] - }, - { - "teal": 1092, - "source": 4, - "pc": [ - 1024, - 1025, - 1026, - 1027, - 1028, - 1029 - ] - }, - { - "teal": 1093, - "source": 4, - "pc": [ - 1030, - 1031, - 1032, - 1033, - 1034, - 1035 - ] - }, - { - "teal": 1094, - "source": 4, - "pc": [ - 1036, - 1037, - 1038, - 1039, - 1040, - 1041 - ] - }, - { - "teal": 1095, - "source": 4, - "pc": [ - 1042, - 1043, - 1044, - 1045, - 1046, - 1047 - ] - }, - { - "teal": 1096, - "source": 4, - "pc": [ - 1048, - 1049, - 1050, - 1051, - 1052, - 1053 - ] - }, - { - "teal": 1097, - "source": 4, - "pc": [ - 1054, - 1055, - 1056, - 1057, - 1058, - 1059 - ] - }, - { - "teal": 1098, - "source": 4, - "pc": [ - 1060, - 1061, - 1062, - 1063, - 1064, - 1065 - ] - }, - { - "teal": 1099, - "source": 4, - "pc": [ - 1066, - 1067, - 1068, - 1069, - 1070, - 1071 - ] - }, - { - "teal": 1100, - "source": 4, - "pc": [ - 1072, - 1073, - 1074, - 1075, - 1076, - 1077 - ] - }, - { - "teal": 1101, - "source": 4, - "pc": [ - 1078, - 1079, - 1080, - 1081, - 1082, - 1083 - ] - }, - { - "teal": 1102, - "source": 4, - "pc": [ - 1084, - 1085, - 1086, - 1087, - 1088, - 1089 - ] - }, - { - "teal": 1103, - "source": 4, - "pc": [ - 1090, - 1091, - 1092, - 1093, - 1094, - 1095 - ] - }, - { - "teal": 1104, - "source": 4, - "pc": [ - 1096, - 1097, - 1098, - 1099, - 1100, - 1101 - ] - }, - { - "teal": 1105, - "source": 4, - "pc": [ - 1102, - 1103, - 1104, - 1105, - 1106, - 1107 - ] - }, - { - "teal": 1106, - "source": 4, - "pc": [ - 1108, - 1109, - 1110, - 1111, - 1112, - 1113 - ] - }, - { - "teal": 1107, - "source": 4, - "pc": [ - 1114, - 1115, - 1116, - 1117, - 1118, - 1119 - ] - }, - { - "teal": 1108, - "source": 4, - "pc": [ - 1120, - 1121, - 1122, - 1123, - 1124, - 1125 - ] - }, - { - "teal": 1109, - "source": 4, - "pc": [ - 1126, - 1127, - 1128, - 1129, - 1130, - 1131 - ] - }, - { - "teal": 1110, - "source": 4, - "pc": [ - 1132, - 1133, - 1134 - ] - }, - { - "teal": 1111, - "source": 4, - "pc": [ - 1135, - 1136, - 1137, - 1138, - 1139, - 1140, - 1141, - 1142, - 1143, - 1144, - 1145, - 1146, - 1147, - 1148, - 1149, - 1150, - 1151, - 1152, - 1153, - 1154, - 1155, - 1156, - 1157, - 1158, - 1159, - 1160, - 1161, - 1162, - 1163, - 1164, - 1165, - 1166, - 1167, - 1168, - 1169, - 1170, - 1171, - 1172, - 1173, - 1174, - 1175, - 1176, - 1177, - 1178, - 1179, - 1180, - 1181, - 1182, - 1183, - 1184, - 1185, - 1186, - 1187, - 1188, - 1189, - 1190, - 1191, - 1192, - 1193, - 1194, - 1195, - 1196, - 1197, - 1198, - 1199, - 1200, - 1201, - 1202, - 1203, - 1204, - 1205, - 1206, - 1207, - 1208, - 1209, - 1210, - 1211, - 1212, - 1213, - 1214, - 1215, - 1216, - 1217, - 1218 - ] - }, - { - "teal": 1114, - "source": 4, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "pc": [ - 1219 - ] - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 86 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 225 + ], + "errorMessage": "argument 0 (a) for localKeyPut must be a address" + }, + { + "pc": [ + 257 + ], + "errorMessage": "argument 0 (a) for localKeyGet must be a address" + }, + { + "pc": [ + 291 + ], + "errorMessage": "argument 0 (a) for localKeyDelete must be a address" + }, + { + "pc": [ + 318 + ], + "errorMessage": "argument 0 (a) for localKeyExists must be a address" + }, + { + "pc": [ + 379 + ], + "errorMessage": "box value does not exist: this.boxKey.value" + }, + { + "pc": [ + 513 + ], + "errorMessage": "argument 0 (a) for localMapPut must be a address" + }, + { + "pc": [ + 545 + ], + "errorMessage": "argument 0 (a) for localMapGet must be a address" + }, + { + "pc": [ + 579 + ], + "errorMessage": "argument 0 (a) for localMapDelete must be a address" + }, + { + "pc": [ + 606 + ], + "errorMessage": "argument 0 (a) for localMapExists must be a address" + }, + { + "pc": [ + 667 + ], + "errorMessage": "box value does not exist: this.boxMap('foo').value" + }, + { + "pc": [ + 775 + ], + "errorMessage": "box value does not exist: this.boxKey.size" + }, + { + "pc": [ + 801 + ], + "errorMessage": "box value does not exist: this.boxMap('bar').size" + }, + { + "pc": [ + 971 + ], + "errorMessage": "global state value does not exist: this.app.globalState('foo')" + }, + { + "pc": [ + 994 + ], + "errorMessage": "local state value does not exist: this.app.localState(this.txn.sender, 'foo')" + }, + { + "pc": [ + 1012 + ], + "errorMessage": "accessStaticValueInLargeBox return value overflowed 16 bits" + }, + { + "pc": [ + 1133 + ], + "errorMessage": "dynamicAccessStaticValueInLargeBox return value overflowed 16 bits" + }, + { + "pc": [ + 1363 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 1697 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQppbnQgNgoqCnR4biBPbkNvbXBsZXRpb24KKwpzd2l0Y2ggKmNhbGxfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBwcmVmaXgoKXZvaWQKKmFiaV9yb3V0ZV9wcmVmaXg6CgkvLyBleGVjdXRlIHByZWZpeCgpdm9pZAoJY2FsbHN1YiBwcmVmaXgKCWludCAxCglyZXR1cm4KCi8vIHByZWZpeCgpOiB2b2lkCnByZWZpeDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjYKCS8vIHRoaXMuYm94TWFwV2l0aFByZWZpeCgnb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmCglkdXAKCWJveF9kZWwKCXBvcAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjcKCS8vIHRoaXMuZ2xvYmFsTWFwV2l0aFByZWZpeCgnb28nKS52YWx1ZSA9ICdiYXInCglieXRlIDB4NjY2ZjZmCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MjgKCS8vIHRoaXMubG9jYWxNYXBXaXRoUHJlZml4KHRoaXMudHhuLnNlbmRlciwgJ29vJykudmFsdWUgPSAnYmFyJwoJdHhuIFNlbmRlcgoJYnl0ZSAweDY2NmY2ZgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBnbG9iYWxLZXlQdXQoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxLZXlQdXQ6CgkvLyBleGVjdXRlIGdsb2JhbEtleVB1dCgpdm9pZAoJY2FsbHN1YiBnbG9iYWxLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbEtleVB1dCgpOiB2b2lkCmdsb2JhbEtleVB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MzIKCS8vIHRoaXMuZ2xvYmFsS2V5LnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbEtleUdldCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleUdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5R2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5R2V0KCk6IHZvaWQKZ2xvYmFsS2V5R2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czozNgoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbEtleURlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleURlbGV0ZToKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5RGVsZXRlKCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleURlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5RGVsZXRlKCk6IHZvaWQKZ2xvYmFsS2V5RGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0MAoJLy8gdGhpcy5nbG9iYWxLZXkuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZGVsCglyZXRzdWIKCi8vIGdsb2JhbEtleUV4aXN0cygpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleUV4aXN0czoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5RXhpc3RzKCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5RXhpc3RzKCk6IHZvaWQKZ2xvYmFsS2V5RXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo0NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsS2V5LmV4aXN0cykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbEtleVB1dChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbEtleVB1dDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsS2V5UHV0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsS2V5UHV0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbEtleVB1dAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxLZXlQdXQoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxLZXlQdXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQ4CgkvLyB0aGlzLmxvY2FsS2V5KGEpLnZhbHVlID0gJ2JhcicKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGxvY2FsS2V5R2V0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5R2V0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlHZXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlHZXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5R2V0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleUdldChhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleUdldDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NTIKCS8vIGFzc2VydCh0aGlzLmxvY2FsS2V5KGEpLnZhbHVlID09PSAnYmFyJykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsS2V5RGVsZXRlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5RGVsZXRlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlEZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlEZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleURlbGV0ZShhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleURlbGV0ZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NTYKCS8vIHRoaXMubG9jYWxLZXkoYSkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZGVsCglyZXRzdWIKCi8vIGxvY2FsS2V5RXhpc3RzKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5RXhpc3RzOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlFeGlzdHMgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlFeGlzdHMoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleUV4aXN0cyhhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleUV4aXN0czoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjAKCS8vIGFzc2VydCh0aGlzLmxvY2FsS2V5KGEpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlQdXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlQdXQ6CgkvLyBleGVjdXRlIGJveEtleVB1dCgpdm9pZAoJY2FsbHN1YiBib3hLZXlQdXQKCWludCAxCglyZXR1cm4KCi8vIGJveEtleVB1dCgpOiB2b2lkCmJveEtleVB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjQKCS8vIHRoaXMuYm94S2V5LnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9wdXQKCXJldHN1YgoKLy8gYm94S2V5R2V0KCl2b2lkCiphYmlfcm91dGVfYm94S2V5R2V0OgoJLy8gZXhlY3V0ZSBib3hLZXlHZXQoKXZvaWQKCWNhbGxzdWIgYm94S2V5R2V0CglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlHZXQoKTogdm9pZApib3hLZXlHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjY4CgkvLyBhc3NlcnQodGhpcy5ib3hLZXkudmFsdWUgPT09ICdiYXInKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2dldAoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkudmFsdWUKCWFzc2VydAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlEZWxldGU6CgkvLyBleGVjdXRlIGJveEtleURlbGV0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleURlbGV0ZSgpOiB2b2lkCmJveEtleURlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NzIKCS8vIHRoaXMuYm94S2V5LmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZGVsCglyZXRzdWIKCi8vIGJveEtleUV4aXN0cygpdm9pZAoqYWJpX3JvdXRlX2JveEtleUV4aXN0czoKCS8vIGV4ZWN1dGUgYm94S2V5RXhpc3RzKCl2b2lkCgljYWxsc3ViIGJveEtleUV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RXhpc3RzKCk6IHZvaWQKYm94S2V5RXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo3NgoJLy8gYXNzZXJ0KHRoaXMuYm94S2V5LmV4aXN0cykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbE1hcFB1dCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcFB1dDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwUHV0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcFB1dAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwUHV0KCk6IHZvaWQKZ2xvYmFsTWFwUHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4MAoJLy8gdGhpcy5nbG9iYWxNYXAoJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbE1hcEdldCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcEdldDoKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwR2V0KCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwR2V0KCk6IHZvaWQKZ2xvYmFsTWFwR2V0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4NAoJLy8gYXNzZXJ0KHRoaXMuZ2xvYmFsTWFwKCdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBnbG9iYWxNYXBEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxNYXBEZWxldGU6CgkvLyBleGVjdXRlIGdsb2JhbE1hcERlbGV0ZSgpdm9pZAoJY2FsbHN1YiBnbG9iYWxNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1hcERlbGV0ZSgpOiB2b2lkCmdsb2JhbE1hcERlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6ODgKCS8vIHRoaXMuZ2xvYmFsTWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9kZWwKCXJldHN1YgoKLy8gZ2xvYmFsTWFwRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwRXhpc3RzOgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBFeGlzdHMoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBFeGlzdHMoKTogdm9pZApnbG9iYWxNYXBFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjkyCgkvLyBhc3NlcnQodGhpcy5nbG9iYWxNYXAoJ2ZvbycpLmV4aXN0cykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBsb2NhbE1hcFB1dChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcFB1dDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsTWFwUHV0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsTWFwUHV0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcFB1dAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBQdXQoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxNYXBQdXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjk2CgkvLyB0aGlzLmxvY2FsTWFwKGEsICdmb28nKS52YWx1ZSA9ICdiYXInCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2xvY2FsX3B1dAoJcmV0c3ViCgovLyBsb2NhbE1hcEdldChhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcEdldDoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsTWFwR2V0IG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsTWFwR2V0KGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcEdldAoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBHZXQoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxNYXBHZXQ6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEwMAoJLy8gYXNzZXJ0KHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsTWFwRGVsZXRlKGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsTWFwRGVsZXRlOgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxNYXBEZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBEZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsTWFwRGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcERlbGV0ZShhOiBBZGRyZXNzKTogdm9pZApsb2NhbE1hcERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTA0CgkvLyB0aGlzLmxvY2FsTWFwKGEsICdmb28nKS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9kZWwKCXJldHN1YgoKLy8gbG9jYWxNYXBFeGlzdHMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBFeGlzdHM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbE1hcEV4aXN0cyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbE1hcEV4aXN0cyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwRXhpc3RzKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsTWFwRXhpc3RzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMDgKCS8vIGFzc2VydCh0aGlzLmxvY2FsTWFwKGEsICdmb28nKS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gYm94TWFwUHV0KCl2b2lkCiphYmlfcm91dGVfYm94TWFwUHV0OgoJLy8gZXhlY3V0ZSBib3hNYXBQdXQoKXZvaWQKCWNhbGxzdWIgYm94TWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBQdXQoKTogdm9pZApib3hNYXBQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjExMgoJLy8gdGhpcy5ib3hNYXAoJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9wdXQKCXJldHN1YgoKLy8gYm94TWFwR2V0KCl2b2lkCiphYmlfcm91dGVfYm94TWFwR2V0OgoJLy8gZXhlY3V0ZSBib3hNYXBHZXQoKXZvaWQKCWNhbGxzdWIgYm94TWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBHZXQoKTogdm9pZApib3hNYXBHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjExNgoJLy8gYXNzZXJ0KHRoaXMuYm94TWFwKCdmb28nKS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveE1hcCgnZm9vJykudmFsdWUKCWFzc2VydAoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBEZWxldGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBEZWxldGU6CgkvLyBleGVjdXRlIGJveE1hcERlbGV0ZSgpdm9pZAoJY2FsbHN1YiBib3hNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcERlbGV0ZSgpOiB2b2lkCmJveE1hcERlbGV0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTIwCgkvLyB0aGlzLmJveE1hcCgnZm9vJykuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9kZWwKCXJldHN1YgoKLy8gYm94TWFwRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfYm94TWFwRXhpc3RzOgoJLy8gZXhlY3V0ZSBib3hNYXBFeGlzdHMoKXZvaWQKCWNhbGxzdWIgYm94TWFwRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBFeGlzdHMoKTogdm9pZApib3hNYXBFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEyNAoJLy8gYXNzZXJ0KHRoaXMuYm94TWFwKCdmb28nKS5leGlzdHMpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfbGVuCglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBib3hLZXlDcmVhdGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlDcmVhdGU6CgkvLyBleGVjdXRlIGJveEtleUNyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hLZXlDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUNyZWF0ZSgpOiB2b2lkCmJveEtleUNyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTI4CgkvLyB0aGlzLmJveEtleS5jcmVhdGUoMTAyNCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWludCAxMDI0Cglib3hfY3JlYXRlCglwb3AKCXJldHN1YgoKLy8gYm94TWFwQ3JlYXRlKCl2b2lkCiphYmlfcm91dGVfYm94TWFwQ3JlYXRlOgoJLy8gZXhlY3V0ZSBib3hNYXBDcmVhdGUoKXZvaWQKCWNhbGxzdWIgYm94TWFwQ3JlYXRlCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBDcmVhdGUoKTogdm9pZApib3hNYXBDcmVhdGU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEzMgoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLmNyZWF0ZSgxMDI0KQoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDEwMjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBib3hLZXlMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2JveEtleUxlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hLZXlMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBib3hLZXlMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlMZW5ndGgoKTogdWludDY0CmJveEtleUxlbmd0aDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTM2CgkvLyByZXR1cm4gdGhpcy5ib3hLZXkuc2l6ZTsKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94S2V5LnNpemUKCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBMZW5ndGgoKXVpbnQ2NAoqYWJpX3JvdXRlX2JveE1hcExlbmd0aDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hNYXBMZW5ndGgoKXVpbnQ2NAoJY2FsbHN1YiBib3hNYXBMZW5ndGgKCWl0b2IKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hNYXBMZW5ndGgoKTogdWludDY0CmJveE1hcExlbmd0aDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTQwCgkvLyByZXR1cm4gdGhpcy5ib3hNYXAoJ2JhcicpLnNpemU7CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfbGVuCgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveE1hcCgnYmFyJykuc2l6ZQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleVJlcGxhY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlSZXBsYWNlOgoJLy8gZXhlY3V0ZSBib3hLZXlSZXBsYWNlKCl2b2lkCgljYWxsc3ViIGJveEtleVJlcGxhY2UKCWludCAxCglyZXR1cm4KCi8vIGJveEtleVJlcGxhY2UoKTogdm9pZApib3hLZXlSZXBsYWNlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNDQKCS8vIHRoaXMuYm94S2V5LnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94TWFwUmVwbGFjZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2U6CgkvLyBleGVjdXRlIGJveE1hcFJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94TWFwUmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwUmVwbGFjZSgpOiB2b2lkCmJveE1hcFJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94S2V5RXh0cmFjdCgpc3RyaW5nCiphYmlfcm91dGVfYm94S2V5RXh0cmFjdDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBib3hLZXlFeHRyYWN0KClzdHJpbmcKCWNhbGxzdWIgYm94S2V5RXh0cmFjdAoJZHVwCglsZW4KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlFeHRyYWN0KCk6IHN0cmluZwpib3hLZXlFeHRyYWN0OgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNTIKCS8vIHJldHVybiB0aGlzLmJveEtleS5leHRyYWN0KDAsIDMpOwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDAKCWludCAzCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBib3hNYXBFeHRyYWN0KClzdHJpbmcKKmFiaV9yb3V0ZV9ib3hNYXBFeHRyYWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcEV4dHJhY3QoKXN0cmluZwoJY2FsbHN1YiBib3hNYXBFeHRyYWN0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4dHJhY3QoKTogc3RyaW5nCmJveE1hcEV4dHJhY3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gcmV0dXJuIHRoaXMuYm94TWFwKCdiYXInKS5leHRyYWN0KDAsIDMpOwoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJaW50IDAKCWludCAzCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBpc09wdGVkSW4oKWJvb2wKKmFiaV9yb3V0ZV9pc09wdGVkSW46CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgaXNPcHRlZEluKClib29sCgljYWxsc3ViIGlzT3B0ZWRJbgoJYnl0ZSAweDAwCglpbnQgMAoJdW5jb3ZlciAyCglzZXRiaXQKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBpc09wdGVkSW4oKTogYm9vbGVhbgppc09wdGVkSW46Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2MAoJLy8gcmV0dXJuIHRoaXMudHhuLnNlbmRlci5pc09wdGVkSW5Ub0FwcCh0aGlzLmFwcCk7Cgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglhcHBfb3B0ZWRfaW4KCXJldHN1YgoKLy8gZXhHbG9iYWwoKXZvaWQKKmFiaV9yb3V0ZV9leEdsb2JhbDoKCS8vIGV4ZWN1dGUgZXhHbG9iYWwoKXZvaWQKCWNhbGxzdWIgZXhHbG9iYWwKCWludCAxCglyZXR1cm4KCi8vIGV4R2xvYmFsKCk6IHZvaWQKZXhHbG9iYWw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2NAoJLy8gbG9nKHRoaXMuYXBwLmdsb2JhbFN0YXRlKCdmb28nKSBhcyBieXRlcykKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0X2V4CgoJLy8gZ2xvYmFsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFwcC5nbG9iYWxTdGF0ZSgnZm9vJykKCWFzc2VydAoJbG9nCglyZXRzdWIKCi8vIGV4TG9jYWwoKXZvaWQKKmFiaV9yb3V0ZV9leExvY2FsOgoJLy8gZXhlY3V0ZSBleExvY2FsKCl2b2lkCgljYWxsc3ViIGV4TG9jYWwKCWludCAxCglyZXR1cm4KCi8vIGV4TG9jYWwoKTogdm9pZApleExvY2FsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNjgKCS8vIGxvZyh0aGlzLmFwcC5sb2NhbFN0YXRlKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpIGFzIGJ5dGVzKQoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoKCS8vIGxvY2FsIHN0YXRlIHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmFwcC5sb2NhbFN0YXRlKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpCglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgoqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKXVpbnQxNgoJY2FsbHN1YiBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3gKCWl0b2IKCWR1cAoJYml0bGVuCglpbnQgMTYKCTw9CgoJLy8gYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKTogdWludDE2CmFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTcyCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC5jcmVhdGUoKQoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJaW50IDgwMDAKCWJveF9jcmVhdGUKCXBvcAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTczCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC52YWx1ZVsxMjNdID0gNDU2CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgMjQ2CglieXRlIDB4MDFjOAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3NQoJLy8gcmV0dXJuIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlWzEyM107CglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgMjQ2CglpbnQgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2CiphYmlfcm91dGVfZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gaTogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KHVpbnQ2NCl1aW50MTYKCWNhbGxzdWIgZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveAoJaXRvYgoJZHVwCgliaXRsZW4KCWludCAxNgoJPD0KCgkvLyBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KGk6IHVpbnQ2NCk6IHVpbnQxNgpkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94OgoJcHJvdG8gMSAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNzkKCS8vIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LmNyZWF0ZSgpCglieXRlIDB4NmM2MTcyNjc2NTUzNzQ2MTc0Njk2MzQxNzI3MjYxNzk0OTZlNDI2Zjc4IC8vICJsYXJnZVN0YXRpY0FycmF5SW5Cb3giCglpbnQgODAwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODAKCS8vIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlW2ldID0gNDU2CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMgoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglieXRlIDB4MDFjOAoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJY292ZXIgMgoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4NAoJLy8gcmV0dXJuIGFbaV07CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMgoJKiAvLyBhY2MgKiB0eXBlTGVuZ3RoCglpbnQgMgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gYm94UmVzaXplKCl2b2lkCiphYmlfcm91dGVfYm94UmVzaXplOgoJLy8gZXhlY3V0ZSBib3hSZXNpemUoKXZvaWQKCWNhbGxzdWIgYm94UmVzaXplCglpbnQgMQoJcmV0dXJuCgovLyBib3hSZXNpemUoKTogdm9pZApib3hSZXNpemU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4OAoJLy8gdGhpcy5ib3hLZXkucmVzaXplKDEwMjQpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTg5CgkvLyB0aGlzLmJveE1hcCgnYmFyJykucmVzaXplKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoJcmV0c3ViCgovLyBib3hTcGxpY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hTcGxpY2U6CgkvLyBleGVjdXRlIGJveFNwbGljZSgpdm9pZAoJY2FsbHN1YiBib3hTcGxpY2UKCWludCAxCglyZXR1cm4KCi8vIGJveFNwbGljZSgpOiB2b2lkCmJveFNwbGljZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTkzCgkvLyB0aGlzLmJveEtleS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMAoJaW50IDEKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9zcGxpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE5NAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnNwbGljZSgwLCAxLCAnYWJjJykKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWludCAwCglpbnQgMQoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3NwbGljZQoJcmV0c3ViCgovLyBleFN0YXRlRXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZXhTdGF0ZUV4aXN0czoKCS8vIGV4ZWN1dGUgZXhTdGF0ZUV4aXN0cygpdm9pZAoJY2FsbHN1YiBleFN0YXRlRXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBleFN0YXRlRXhpc3RzKCk6IHZvaWQKZXhTdGF0ZUV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTk4CgkvLyBhc3NlcnQodGhpcy5hcHAuZ2xvYmFsU3RhdGVFeGlzdHMoJ2ZvbycpKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTkKCS8vIGFzc2VydCh0aGlzLmFwcC5sb2NhbFN0YXRlRXhpc3RzKHRoaXMudHhuLnNlbmRlciwgJ2ZvbycpKQoJdHhuIFNlbmRlcgoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInByZWZpeCgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5UHV0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxLZXlHZXQoKXZvaWQiCgltZXRob2QgImdsb2JhbEtleURlbGV0ZSgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsS2V5RXhpc3RzKCl2b2lkIgoJbWV0aG9kICJsb2NhbEtleVB1dChhZGRyZXNzKXZvaWQiCgltZXRob2QgImxvY2FsS2V5R2V0KGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAibG9jYWxLZXlEZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJsb2NhbEtleUV4aXN0cyhhZGRyZXNzKXZvaWQiCgltZXRob2QgImJveEtleVB1dCgpdm9pZCIKCW1ldGhvZCAiYm94S2V5R2V0KCl2b2lkIgoJbWV0aG9kICJib3hLZXlEZWxldGUoKXZvaWQiCgltZXRob2QgImJveEtleUV4aXN0cygpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwUHV0KCl2b2lkIgoJbWV0aG9kICJnbG9iYWxNYXBHZXQoKXZvaWQiCgltZXRob2QgImdsb2JhbE1hcERlbGV0ZSgpdm9pZCIKCW1ldGhvZCAiZ2xvYmFsTWFwRXhpc3RzKCl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcFB1dChhZGRyZXNzKXZvaWQiCgltZXRob2QgImxvY2FsTWFwR2V0KGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAibG9jYWxNYXBEZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJsb2NhbE1hcEV4aXN0cyhhZGRyZXNzKXZvaWQiCgltZXRob2QgImJveE1hcFB1dCgpdm9pZCIKCW1ldGhvZCAiYm94TWFwR2V0KCl2b2lkIgoJbWV0aG9kICJib3hNYXBEZWxldGUoKXZvaWQiCgltZXRob2QgImJveE1hcEV4aXN0cygpdm9pZCIKCW1ldGhvZCAiYm94S2V5Q3JlYXRlKCl2b2lkIgoJbWV0aG9kICJib3hNYXBDcmVhdGUoKXZvaWQiCgltZXRob2QgImJveEtleUxlbmd0aCgpdWludDY0IgoJbWV0aG9kICJib3hNYXBMZW5ndGgoKXVpbnQ2NCIKCW1ldGhvZCAiYm94S2V5UmVwbGFjZSgpdm9pZCIKCW1ldGhvZCAiYm94TWFwUmVwbGFjZSgpdm9pZCIKCW1ldGhvZCAiYm94S2V5RXh0cmFjdCgpc3RyaW5nIgoJbWV0aG9kICJib3hNYXBFeHRyYWN0KClzdHJpbmciCgltZXRob2QgImlzT3B0ZWRJbigpYm9vbCIKCW1ldGhvZCAiZXhHbG9iYWwoKXZvaWQiCgltZXRob2QgImV4TG9jYWwoKXZvaWQiCgltZXRob2QgImFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2IgoJbWV0aG9kICJkeW5hbWljQWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KHVpbnQ2NCl1aW50MTYiCgltZXRob2QgImJveFJlc2l6ZSgpdm9pZCIKCW1ldGhvZCAiYm94U3BsaWNlKCl2b2lkIgoJbWV0aG9kICJleFN0YXRlRXhpc3RzKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9wcmVmaXggKmFiaV9yb3V0ZV9nbG9iYWxLZXlQdXQgKmFiaV9yb3V0ZV9nbG9iYWxLZXlHZXQgKmFiaV9yb3V0ZV9nbG9iYWxLZXlEZWxldGUgKmFiaV9yb3V0ZV9nbG9iYWxLZXlFeGlzdHMgKmFiaV9yb3V0ZV9sb2NhbEtleVB1dCAqYWJpX3JvdXRlX2xvY2FsS2V5R2V0ICphYmlfcm91dGVfbG9jYWxLZXlEZWxldGUgKmFiaV9yb3V0ZV9sb2NhbEtleUV4aXN0cyAqYWJpX3JvdXRlX2JveEtleVB1dCAqYWJpX3JvdXRlX2JveEtleUdldCAqYWJpX3JvdXRlX2JveEtleURlbGV0ZSAqYWJpX3JvdXRlX2JveEtleUV4aXN0cyAqYWJpX3JvdXRlX2dsb2JhbE1hcFB1dCAqYWJpX3JvdXRlX2dsb2JhbE1hcEdldCAqYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZSAqYWJpX3JvdXRlX2dsb2JhbE1hcEV4aXN0cyAqYWJpX3JvdXRlX2xvY2FsTWFwUHV0ICphYmlfcm91dGVfbG9jYWxNYXBHZXQgKmFiaV9yb3V0ZV9sb2NhbE1hcERlbGV0ZSAqYWJpX3JvdXRlX2xvY2FsTWFwRXhpc3RzICphYmlfcm91dGVfYm94TWFwUHV0ICphYmlfcm91dGVfYm94TWFwR2V0ICphYmlfcm91dGVfYm94TWFwRGVsZXRlICphYmlfcm91dGVfYm94TWFwRXhpc3RzICphYmlfcm91dGVfYm94S2V5Q3JlYXRlICphYmlfcm91dGVfYm94TWFwQ3JlYXRlICphYmlfcm91dGVfYm94S2V5TGVuZ3RoICphYmlfcm91dGVfYm94TWFwTGVuZ3RoICphYmlfcm91dGVfYm94S2V5UmVwbGFjZSAqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2UgKmFiaV9yb3V0ZV9ib3hLZXlFeHRyYWN0ICphYmlfcm91dGVfYm94TWFwRXh0cmFjdCAqYWJpX3JvdXRlX2lzT3B0ZWRJbiAqYWJpX3JvdXRlX2V4R2xvYmFsICphYmlfcm91dGVfZXhMb2NhbCAqYWJpX3JvdXRlX2FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCAqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3ggKmFiaV9yb3V0ZV9ib3hSZXNpemUgKmFiaV9yb3V0ZV9ib3hTcGxpY2UgKmFiaV9yb3V0ZV9leFN0YXRlRXhpc3RzCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAxIDMyIDEwMjQKYnl0ZWNibG9jayAweDY2NmY2ZiAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAweDYyNjE3MiAweDE1MWY3Yzc1IDB4NjE2MjYzIDB4MDFjOAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDQuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIHByZWZpeCgpdm9pZAoqYWJpX3JvdXRlX3ByZWZpeDoKCS8vIGV4ZWN1dGUgcHJlZml4KCl2b2lkCgljYWxsc3ViIHByZWZpeAoJaW50IDEKCXJldHVybgoKLy8gcHJlZml4KCk6IHZvaWQKcHJlZml4OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyNgoJLy8gdGhpcy5ib3hNYXBXaXRoUHJlZml4KCdvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYKCWR1cAoJYm94X2RlbAoJcG9wCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyNwoJLy8gdGhpcy5nbG9iYWxNYXBXaXRoUHJlZml4KCdvbycpLnZhbHVlID0gJ2JhcicKCWJ5dGUgMHg2NjZmNmYKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoyOAoJLy8gdGhpcy5sb2NhbE1hcFdpdGhQcmVmaXgodGhpcy50eG4uc2VuZGVyLCAnb28nKS52YWx1ZSA9ICdiYXInCgl0eG4gU2VuZGVyCglieXRlIDB4NjY2ZjZmCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGdsb2JhbEtleVB1dCgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbEtleVB1dDoKCS8vIGV4ZWN1dGUgZ2xvYmFsS2V5UHV0KCl2b2lkCgljYWxsc3ViIGdsb2JhbEtleVB1dAoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsS2V5UHV0KCk6IHZvaWQKZ2xvYmFsS2V5UHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czozMgoJLy8gdGhpcy5nbG9iYWxLZXkudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2xvYmFsS2V5R2V0KCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsS2V5R2V0OgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlHZXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5R2V0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlHZXQoKTogdm9pZApnbG9iYWxLZXlHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjM2CgkvLyBhc3NlcnQodGhpcy5nbG9iYWxLZXkudmFsdWUgPT09ICdiYXInKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZ2xvYmFsS2V5RGVsZXRlKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsS2V5RGVsZXRlOgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlEZWxldGUoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlEZWxldGUoKTogdm9pZApnbG9iYWxLZXlEZWxldGU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQwCgkvLyB0aGlzLmdsb2JhbEtleS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9kZWwKCXJldHN1YgoKLy8gZ2xvYmFsS2V5RXhpc3RzKCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsS2V5RXhpc3RzOgoJLy8gZXhlY3V0ZSBnbG9iYWxLZXlFeGlzdHMoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsS2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxLZXlFeGlzdHMoKTogdm9pZApnbG9iYWxLZXlFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjQ0CgkvLyBhc3NlcnQodGhpcy5nbG9iYWxLZXkuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsS2V5UHV0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsS2V5UHV0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxLZXlQdXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxLZXlQdXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsS2V5UHV0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbEtleVB1dChhOiBBZGRyZXNzKTogdm9pZApsb2NhbEtleVB1dDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NDgKCS8vIHRoaXMubG9jYWxLZXkoYSkudmFsdWUgPSAnYmFyJwoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWFwcF9sb2NhbF9wdXQKCXJldHN1YgoKLy8gbG9jYWxLZXlHZXQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlHZXQ6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbEtleUdldCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbEtleUdldChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlHZXQKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5R2V0KGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsS2V5R2V0OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo1MgoJLy8gYXNzZXJ0KHRoaXMubG9jYWxLZXkoYSkudmFsdWUgPT09ICdiYXInKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxLZXlEZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlEZWxldGU6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbEtleURlbGV0ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbEtleURlbGV0ZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5RGVsZXRlKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsS2V5RGVsZXRlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo1NgoJLy8gdGhpcy5sb2NhbEtleShhKS5kZWxldGUoKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9kZWwKCXJldHN1YgoKLy8gbG9jYWxLZXlFeGlzdHMoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxLZXlFeGlzdHM6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbEtleUV4aXN0cyBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbEtleUV4aXN0cyhhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxLZXlFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsS2V5RXhpc3RzKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsS2V5RXhpc3RzOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo2MAoJLy8gYXNzZXJ0KHRoaXMubG9jYWxLZXkoYSkuZXhpc3RzKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25zIDAKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleVB1dCgpdm9pZAoqYWJpX3JvdXRlX2JveEtleVB1dDoKCS8vIGV4ZWN1dGUgYm94S2V5UHV0KCl2b2lkCgljYWxsc3ViIGJveEtleVB1dAoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5UHV0KCk6IHZvaWQKYm94S2V5UHV0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo2NAoJLy8gdGhpcy5ib3hLZXkudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoJcmV0c3ViCgovLyBib3hLZXlHZXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hLZXlHZXQ6CgkvLyBleGVjdXRlIGJveEtleUdldCgpdm9pZAoJY2FsbHN1YiBib3hLZXlHZXQKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUdldCgpOiB2b2lkCmJveEtleUdldDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6NjgKCS8vIGFzc2VydCh0aGlzLmJveEtleS52YWx1ZSA9PT0gJ2JhcicpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglib3hfZ2V0CgoJLy8gYm94IHZhbHVlIGRvZXMgbm90IGV4aXN0OiB0aGlzLmJveEtleS52YWx1ZQoJYXNzZXJ0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleURlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleURlbGV0ZToKCS8vIGV4ZWN1dGUgYm94S2V5RGVsZXRlKCl2b2lkCgljYWxsc3ViIGJveEtleURlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RGVsZXRlKCk6IHZvaWQKYm94S2V5RGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo3MgoJLy8gdGhpcy5ib3hLZXkuZGVsZXRlKCkKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9kZWwKCXJldHN1YgoKLy8gYm94S2V5RXhpc3RzKCl2b2lkCiphYmlfcm91dGVfYm94S2V5RXhpc3RzOgoJLy8gZXhlY3V0ZSBib3hLZXlFeGlzdHMoKXZvaWQKCWNhbGxzdWIgYm94S2V5RXhpc3RzCglpbnQgMQoJcmV0dXJuCgovLyBib3hLZXlFeGlzdHMoKTogdm9pZApib3hLZXlFeGlzdHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyBhc3NlcnQodGhpcy5ib3hLZXkuZXhpc3RzKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoJc3dhcAoJcG9wCglhc3NlcnQKCXJldHN1YgoKLy8gZ2xvYmFsTWFwUHV0KCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwUHV0OgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBQdXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBQdXQoKTogdm9pZApnbG9iYWxNYXBQdXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjgwCgkvLyB0aGlzLmdsb2JhbE1hcCgnZm9vJykudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gZ2xvYmFsTWFwR2V0KCl2b2lkCiphYmlfcm91dGVfZ2xvYmFsTWFwR2V0OgoJLy8gZXhlY3V0ZSBnbG9iYWxNYXBHZXQoKXZvaWQKCWNhbGxzdWIgZ2xvYmFsTWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBnbG9iYWxNYXBHZXQoKTogdm9pZApnbG9iYWxNYXBHZXQ6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjg0CgkvLyBhc3NlcnQodGhpcy5nbG9iYWxNYXAoJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9nbG9iYWxfZ2V0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGdsb2JhbE1hcERlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2dsb2JhbE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgZ2xvYmFsTWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGdsb2JhbE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gZ2xvYmFsTWFwRGVsZXRlKCk6IHZvaWQKZ2xvYmFsTWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czo4OAoJLy8gdGhpcy5nbG9iYWxNYXAoJ2ZvbycpLmRlbGV0ZSgpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2RlbAoJcmV0c3ViCgovLyBnbG9iYWxNYXBFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9nbG9iYWxNYXBFeGlzdHM6CgkvLyBleGVjdXRlIGdsb2JhbE1hcEV4aXN0cygpdm9pZAoJY2FsbHN1YiBnbG9iYWxNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGdsb2JhbE1hcEV4aXN0cygpOiB2b2lkCmdsb2JhbE1hcEV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6OTIKCS8vIGFzc2VydCh0aGlzLmdsb2JhbE1hcCgnZm9vJykuZXhpc3RzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGxvY2FsTWFwUHV0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsTWFwUHV0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxNYXBQdXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBQdXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsTWFwUHV0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcFB1dChhOiBBZGRyZXNzKTogdm9pZApsb2NhbE1hcFB1dDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6OTYKCS8vIHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLnZhbHVlID0gJ2JhcicKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglhcHBfbG9jYWxfcHV0CglyZXRzdWIKCi8vIGxvY2FsTWFwR2V0KGFkZHJlc3Mpdm9pZAoqYWJpX3JvdXRlX2xvY2FsTWFwR2V0OgoJLy8gYTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAwIChhKSBmb3IgbG9jYWxNYXBHZXQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgbG9jYWxNYXBHZXQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGxvY2FsTWFwR2V0CglpbnQgMQoJcmV0dXJuCgovLyBsb2NhbE1hcEdldChhOiBBZGRyZXNzKTogdm9pZApsb2NhbE1hcEdldDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTAwCgkvLyBhc3NlcnQodGhpcy5sb2NhbE1hcChhLCAnZm9vJykudmFsdWUgPT09ICdiYXInKQoJZnJhbWVfZGlnIC0xIC8vIGE6IEFkZHJlc3MKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbG9jYWxNYXBEZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfbG9jYWxNYXBEZWxldGU6CgkvLyBhOiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKGEpIGZvciBsb2NhbE1hcERlbGV0ZSBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBsb2NhbE1hcERlbGV0ZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgbG9jYWxNYXBEZWxldGUKCWludCAxCglyZXR1cm4KCi8vIGxvY2FsTWFwRGVsZXRlKGE6IEFkZHJlc3MpOiB2b2lkCmxvY2FsTWFwRGVsZXRlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMDQKCS8vIHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gYTogQWRkcmVzcwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2xvY2FsX2RlbAoJcmV0c3ViCgovLyBsb2NhbE1hcEV4aXN0cyhhZGRyZXNzKXZvaWQKKmFiaV9yb3V0ZV9sb2NhbE1hcEV4aXN0czoKCS8vIGE6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAoYSkgZm9yIGxvY2FsTWFwRXhpc3RzIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGxvY2FsTWFwRXhpc3RzKGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiBsb2NhbE1hcEV4aXN0cwoJaW50IDEKCXJldHVybgoKLy8gbG9jYWxNYXBFeGlzdHMoYTogQWRkcmVzcyk6IHZvaWQKbG9jYWxNYXBFeGlzdHM6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjEwOAoJLy8gYXNzZXJ0KHRoaXMubG9jYWxNYXAoYSwgJ2ZvbycpLmV4aXN0cykKCWZyYW1lX2RpZyAtMSAvLyBhOiBBZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgovLyBib3hNYXBQdXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBQdXQ6CgkvLyBleGVjdXRlIGJveE1hcFB1dCgpdm9pZAoJY2FsbHN1YiBib3hNYXBQdXQKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcFB1dCgpOiB2b2lkCmJveE1hcFB1dDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTEyCgkvLyB0aGlzLmJveE1hcCgnZm9vJykudmFsdWUgPSAnYmFyJwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJYm94X3B1dAoJcmV0c3ViCgovLyBib3hNYXBHZXQoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBHZXQ6CgkvLyBleGVjdXRlIGJveE1hcEdldCgpdm9pZAoJY2FsbHN1YiBib3hNYXBHZXQKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEdldCgpOiB2b2lkCmJveE1hcEdldDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTE2CgkvLyBhc3NlcnQodGhpcy5ib3hNYXAoJ2ZvbycpLnZhbHVlID09PSAnYmFyJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9nZXQKCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94TWFwKCdmb28nKS52YWx1ZQoJYXNzZXJ0CglieXRlIDB4NjI2MTcyIC8vICJiYXIiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcERlbGV0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcERlbGV0ZToKCS8vIGV4ZWN1dGUgYm94TWFwRGVsZXRlKCl2b2lkCgljYWxsc3ViIGJveE1hcERlbGV0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwRGVsZXRlKCk6IHZvaWQKYm94TWFwRGVsZXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMuYm94TWFwKCdmb28nKS5kZWxldGUoKQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2RlbAoJcmV0c3ViCgovLyBib3hNYXBFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBFeGlzdHM6CgkvLyBleGVjdXRlIGJveE1hcEV4aXN0cygpdm9pZAoJY2FsbHN1YiBib3hNYXBFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4aXN0cygpOiB2b2lkCmJveE1hcEV4aXN0czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTI0CgkvLyBhc3NlcnQodGhpcy5ib3hNYXAoJ2ZvbycpLmV4aXN0cykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCWJveF9sZW4KCXN3YXAKCXBvcAoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveEtleUNyZWF0ZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleUNyZWF0ZToKCS8vIGV4ZWN1dGUgYm94S2V5Q3JlYXRlKCl2b2lkCgljYWxsc3ViIGJveEtleUNyZWF0ZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5Q3JlYXRlKCk6IHZvaWQKYm94S2V5Q3JlYXRlOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMjgKCS8vIHRoaXMuYm94S2V5LmNyZWF0ZSgxMDI0KQoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJaW50IDEwMjQKCWJveF9jcmVhdGUKCXBvcAoJcmV0c3ViCgovLyBib3hNYXBDcmVhdGUoKXZvaWQKKmFiaV9yb3V0ZV9ib3hNYXBDcmVhdGU6CgkvLyBleGVjdXRlIGJveE1hcENyZWF0ZSgpdm9pZAoJY2FsbHN1YiBib3hNYXBDcmVhdGUKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcENyZWF0ZSgpOiB2b2lkCmJveE1hcENyZWF0ZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTMyCgkvLyB0aGlzLmJveE1hcCgnYmFyJykuY3JlYXRlKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X2NyZWF0ZQoJcG9wCglyZXRzdWIKCi8vIGJveEtleUxlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYm94S2V5TGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveEtleUxlbmd0aCgpdWludDY0CgljYWxsc3ViIGJveEtleUxlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveEtleUxlbmd0aCgpOiB1aW50NjQKYm94S2V5TGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxMzYKCS8vIHJldHVybiB0aGlzLmJveEtleS5zaXplOwoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYm94X2xlbgoKCS8vIGJveCB2YWx1ZSBkb2VzIG5vdCBleGlzdDogdGhpcy5ib3hLZXkuc2l6ZQoJYXNzZXJ0CglyZXRzdWIKCi8vIGJveE1hcExlbmd0aCgpdWludDY0CiphYmlfcm91dGVfYm94TWFwTGVuZ3RoOgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcExlbmd0aCgpdWludDY0CgljYWxsc3ViIGJveE1hcExlbmd0aAoJaXRvYgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcExlbmd0aCgpOiB1aW50NjQKYm94TWFwTGVuZ3RoOgoJcHJvdG8gMCAxCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxNDAKCS8vIHJldHVybiB0aGlzLmJveE1hcCgnYmFyJykuc2l6ZTsKCWJ5dGUgMHg2MjYxNzIgLy8gImJhciIKCWJveF9sZW4KCgkvLyBib3ggdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYm94TWFwKCdiYXInKS5zaXplCglhc3NlcnQKCXJldHN1YgoKLy8gYm94S2V5UmVwbGFjZSgpdm9pZAoqYWJpX3JvdXRlX2JveEtleVJlcGxhY2U6CgkvLyBleGVjdXRlIGJveEtleVJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94S2V5UmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5UmVwbGFjZSgpOiB2b2lkCmJveEtleVJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0NAoJLy8gdGhpcy5ib3hLZXkucmVwbGFjZSgwLCAnYWJjJykKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCXB1c2hpbnQgMAoJYnl0ZSAweDYxNjI2MyAvLyAiYWJjIgoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gYm94TWFwUmVwbGFjZSgpdm9pZAoqYWJpX3JvdXRlX2JveE1hcFJlcGxhY2U6CgkvLyBleGVjdXRlIGJveE1hcFJlcGxhY2UoKXZvaWQKCWNhbGxzdWIgYm94TWFwUmVwbGFjZQoJaW50IDEKCXJldHVybgoKLy8gYm94TWFwUmVwbGFjZSgpOiB2b2lkCmJveE1hcFJlcGxhY2U6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5ib3hNYXAoJ2JhcicpLnJlcGxhY2UoMCwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglwdXNoaW50IDAKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIGJveEtleUV4dHJhY3QoKXN0cmluZwoqYWJpX3JvdXRlX2JveEtleUV4dHJhY3Q6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGV4ZWN1dGUgYm94S2V5RXh0cmFjdCgpc3RyaW5nCgljYWxsc3ViIGJveEtleUV4dHJhY3QKCWR1cAoJbGVuCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0Cgljb25jYXQKCWxvZwoJaW50IDEKCXJldHVybgoKLy8gYm94S2V5RXh0cmFjdCgpOiBzdHJpbmcKYm94S2V5RXh0cmFjdDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTUyCgkvLyByZXR1cm4gdGhpcy5ib3hLZXkuZXh0cmFjdCgwLCAzKTsKCWJ5dGUgMHg2NjZmNmYgLy8gImZvbyIKCXB1c2hpbnQgMAoJcHVzaGludCAzCglib3hfZXh0cmFjdAoJcmV0c3ViCgovLyBib3hNYXBFeHRyYWN0KClzdHJpbmcKKmFiaV9yb3V0ZV9ib3hNYXBFeHRyYWN0OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGJveE1hcEV4dHJhY3QoKXN0cmluZwoJY2FsbHN1YiBib3hNYXBFeHRyYWN0CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGJveE1hcEV4dHJhY3QoKTogc3RyaW5nCmJveE1hcEV4dHJhY3Q6Cglwcm90byAwIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gcmV0dXJuIHRoaXMuYm94TWFwKCdiYXInKS5leHRyYWN0KDAsIDMpOwoJYnl0ZSAweDYyNjE3MiAvLyAiYmFyIgoJcHVzaGludCAwCglwdXNoaW50IDMKCWJveF9leHRyYWN0CglyZXRzdWIKCi8vIGlzT3B0ZWRJbigpYm9vbAoqYWJpX3JvdXRlX2lzT3B0ZWRJbjoKCS8vIFRoZSBBQkkgcmV0dXJuIHByZWZpeAoJYnl0ZSAweDE1MWY3Yzc1CgoJLy8gZXhlY3V0ZSBpc09wdGVkSW4oKWJvb2wKCWNhbGxzdWIgaXNPcHRlZEluCglwdXNoYnl0ZXMgMHgwMAoJcHVzaGludCAwCgl1bmNvdmVyIDIKCXNldGJpdAoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGlzT3B0ZWRJbigpOiBib29sZWFuCmlzT3B0ZWRJbjoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTYwCgkvLyByZXR1cm4gdGhpcy50eG4uc2VuZGVyLmlzT3B0ZWRJblRvQXBwKHRoaXMuYXBwKTsKCXR4biBTZW5kZXIKCXR4bmEgQXBwbGljYXRpb25zIDAKCWFwcF9vcHRlZF9pbgoJcmV0c3ViCgovLyBleEdsb2JhbCgpdm9pZAoqYWJpX3JvdXRlX2V4R2xvYmFsOgoJLy8gZXhlY3V0ZSBleEdsb2JhbCgpdm9pZAoJY2FsbHN1YiBleEdsb2JhbAoJaW50IDEKCXJldHVybgoKLy8gZXhHbG9iYWwoKTogdm9pZApleEdsb2JhbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTY0CgkvLyBsb2codGhpcy5hcHAuZ2xvYmFsU3RhdGUoJ2ZvbycpIGFzIGJ5dGVzKQoJdHhuYSBBcHBsaWNhdGlvbnMgMAoJYnl0ZSAweDY2NmY2ZiAvLyAiZm9vIgoJYXBwX2dsb2JhbF9nZXRfZXgKCgkvLyBnbG9iYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYXBwLmdsb2JhbFN0YXRlKCdmb28nKQoJYXNzZXJ0Cglsb2cKCXJldHN1YgoKLy8gZXhMb2NhbCgpdm9pZAoqYWJpX3JvdXRlX2V4TG9jYWw6CgkvLyBleGVjdXRlIGV4TG9jYWwoKXZvaWQKCWNhbGxzdWIgZXhMb2NhbAoJaW50IDEKCXJldHVybgoKLy8gZXhMb2NhbCgpOiB2b2lkCmV4TG9jYWw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE2OAoJLy8gbG9nKHRoaXMuYXBwLmxvY2FsU3RhdGUodGhpcy50eG4uc2VuZGVyLCAnZm9vJykgYXMgYnl0ZXMpCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4CgoJLy8gbG9jYWwgc3RhdGUgdmFsdWUgZG9lcyBub3QgZXhpc3Q6IHRoaXMuYXBwLmxvY2FsU3RhdGUodGhpcy50eG4uc2VuZGVyLCAnZm9vJykKCWFzc2VydAoJbG9nCglyZXRzdWIKCi8vIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2CiphYmlfcm91dGVfYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94OgoJLy8gVGhlIEFCSSByZXR1cm4gcHJlZml4CglieXRlIDB4MTUxZjdjNzUKCgkvLyBleGVjdXRlIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCgpdWludDE2CgljYWxsc3ViIGFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveAoJaXRvYgoJZHVwCgliaXRsZW4KCXB1c2hpbnQgMTYKCTw9CgoJLy8gYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94IHJldHVybiB2YWx1ZSBvdmVyZmxvd2VkIDE2IGJpdHMKCWFzc2VydAoJZXh0cmFjdCA2IDIKCWNvbmNhdAoJbG9nCglpbnQgMQoJcmV0dXJuCgovLyBhY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goKTogdWludDE2CmFjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveDoKCXByb3RvIDAgMQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTcyCgkvLyB0aGlzLmxhcmdlU3RhdGljQXJyYXlJbkJveC5jcmVhdGUoKQoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJcHVzaGludCA4MDAwCglib3hfY3JlYXRlCglwb3AKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3MwoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3gudmFsdWVbMTIzXSA9IDQ1NgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJcHVzaGludCAyNDYKCWJ5dGUgMHgwMWM4Cglib3hfcmVwbGFjZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTc1CgkvLyByZXR1cm4gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3gudmFsdWVbMTIzXTsKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCXB1c2hpbnQgMjQ2CglwdXNoaW50IDIKCWJveF9leHRyYWN0CglidG9pCglyZXRzdWIKCi8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3godWludDY0KXVpbnQxNgoqYWJpX3JvdXRlX2R5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6CgkvLyBUaGUgQUJJIHJldHVybiBwcmVmaXgKCWJ5dGUgMHgxNTFmN2M3NQoKCS8vIGk6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCh1aW50NjQpdWludDE2CgljYWxsc3ViIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3gKCWl0b2IKCWR1cAoJYml0bGVuCglwdXNoaW50IDE2Cgk8PQoKCS8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3ggcmV0dXJuIHZhbHVlIG92ZXJmbG93ZWQgMTYgYml0cwoJYXNzZXJ0CglleHRyYWN0IDYgMgoJY29uY2F0Cglsb2cKCWludCAxCglyZXR1cm4KCi8vIGR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3goaTogdWludDY0KTogdWludDE2CmR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3g6Cglwcm90byAxIDEKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sYXJnZVN0YXRpY0FycmF5SW5Cb3guY3JlYXRlKCkKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCXB1c2hpbnQgODAwMAoJYm94X2NyZWF0ZQoJcG9wCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODAKCS8vIHRoaXMubGFyZ2VTdGF0aWNBcnJheUluQm94LnZhbHVlW2ldID0gNDU2CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglwdXNoaW50IDIKCSogLy8gYWNjICogdHlwZUxlbmd0aAoJYnl0ZSAweDAxYzgKCWJ5dGUgMHg2YzYxNzI2NzY1NTM3NDYxNzQ2OTYzNDE3MjcyNjE3OTQ5NmU0MjZmNzggLy8gImxhcmdlU3RhdGljQXJyYXlJbkJveCIKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxODQKCS8vIHJldHVybiBhW2ldOwoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJcHVzaGludCAyCgkqIC8vIGFjYyAqIHR5cGVMZW5ndGgKCXB1c2hpbnQgMgoJYnl0ZSAweDZjNjE3MjY3NjU1Mzc0NjE3NDY5NjM0MTcyNzI2MTc5NDk2ZTQyNmY3OCAvLyAibGFyZ2VTdGF0aWNBcnJheUluQm94IgoJY292ZXIgMgoJYm94X2V4dHJhY3QKCWJ0b2kKCXJldHN1YgoKLy8gYm94UmVzaXplKCl2b2lkCiphYmlfcm91dGVfYm94UmVzaXplOgoJLy8gZXhlY3V0ZSBib3hSZXNpemUoKXZvaWQKCWNhbGxzdWIgYm94UmVzaXplCglpbnQgMQoJcmV0dXJuCgovLyBib3hSZXNpemUoKTogdm9pZApib3hSZXNpemU6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE4OAoJLy8gdGhpcy5ib3hLZXkucmVzaXplKDEwMjQpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTg5CgkvLyB0aGlzLmJveE1hcCgnYmFyJykucmVzaXplKDEwMjQpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglpbnQgMTAyNAoJYm94X3Jlc2l6ZQoJcmV0c3ViCgovLyBib3hTcGxpY2UoKXZvaWQKKmFiaV9yb3V0ZV9ib3hTcGxpY2U6CgkvLyBleGVjdXRlIGJveFNwbGljZSgpdm9pZAoJY2FsbHN1YiBib3hTcGxpY2UKCWludCAxCglyZXR1cm4KCi8vIGJveFNwbGljZSgpOiB2b2lkCmJveFNwbGljZToKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9zdG9yYWdlLmFsZ28udHM6MTkzCgkvLyB0aGlzLmJveEtleS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglwdXNoaW50IDAKCWludCAxCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglib3hfc3BsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTQKCS8vIHRoaXMuYm94TWFwKCdiYXInKS5zcGxpY2UoMCwgMSwgJ2FiYycpCglieXRlIDB4NjI2MTcyIC8vICJiYXIiCglwdXNoaW50IDAKCWludCAxCglieXRlIDB4NjE2MjYzIC8vICJhYmMiCglib3hfc3BsaWNlCglyZXRzdWIKCi8vIGV4U3RhdGVFeGlzdHMoKXZvaWQKKmFiaV9yb3V0ZV9leFN0YXRlRXhpc3RzOgoJLy8gZXhlY3V0ZSBleFN0YXRlRXhpc3RzKCl2b2lkCgljYWxsc3ViIGV4U3RhdGVFeGlzdHMKCWludCAxCglyZXR1cm4KCi8vIGV4U3RhdGVFeGlzdHMoKTogdm9pZApleFN0YXRlRXhpc3RzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL3N0b3JhZ2UuYWxnby50czoxOTgKCS8vIGFzc2VydCh0aGlzLmFwcC5nbG9iYWxTdGF0ZUV4aXN0cygnZm9vJykpCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfZ2xvYmFsX2dldF9leAoJc3dhcAoJcG9wCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvc3RvcmFnZS5hbGdvLnRzOjE5OQoJLy8gYXNzZXJ0KHRoaXMuYXBwLmxvY2FsU3RhdGVFeGlzdHModGhpcy50eG4uc2VuZGVyLCAnZm9vJykpCgl0eG4gU2VuZGVyCgl0eG5hIEFwcGxpY2F0aW9ucyAwCglieXRlIDB4NjY2ZjZmIC8vICJmb28iCglhcHBfbG9jYWxfZ2V0X2V4Cglzd2FwCglwb3AKCWFzc2VydAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDViMDJiYTg3IC8vIG1ldGhvZCAicHJlZml4KCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDc4MjYzMDcgLy8gbWV0aG9kICJnbG9iYWxLZXlQdXQoKXZvaWQiCglwdXNoYnl0ZXMgMHhkMzg3Y2QyYyAvLyBtZXRob2QgImdsb2JhbEtleUdldCgpdm9pZCIKCXB1c2hieXRlcyAweDJmNzhkYjAzIC8vIG1ldGhvZCAiZ2xvYmFsS2V5RGVsZXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDgxODFhOWEgLy8gbWV0aG9kICJnbG9iYWxLZXlFeGlzdHMoKXZvaWQiCglwdXNoYnl0ZXMgMHhlY2IwNjk5OCAvLyBtZXRob2QgImxvY2FsS2V5UHV0KGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDU2ZGFjZTFkIC8vIG1ldGhvZCAibG9jYWxLZXlHZXQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NzY4YzhjNjggLy8gbWV0aG9kICJsb2NhbEtleURlbGV0ZShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHhiYzBlYTZiYiAvLyBtZXRob2QgImxvY2FsS2V5RXhpc3RzKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweGNmNDhhZTRkIC8vIG1ldGhvZCAiYm94S2V5UHV0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZTlkYWI0OTMgLy8gbWV0aG9kICJib3hLZXlHZXQoKXZvaWQiCglwdXNoYnl0ZXMgMHgwOTBmZGZkNiAvLyBtZXRob2QgImJveEtleURlbGV0ZSgpdm9pZCIKCXB1c2hieXRlcyAweDVmZjlkMGRkIC8vIG1ldGhvZCAiYm94S2V5RXhpc3RzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4MTdjODIwNmEgLy8gbWV0aG9kICJnbG9iYWxNYXBQdXQoKXZvaWQiCglwdXNoYnl0ZXMgMHhjZDg2OGJmMiAvLyBtZXRob2QgImdsb2JhbE1hcEdldCgpdm9pZCIKCXB1c2hieXRlcyAweGI1NWRlMjBjIC8vIG1ldGhvZCAiZ2xvYmFsTWFwRGVsZXRlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4Yzk3ZDhkMjQgLy8gbWV0aG9kICJnbG9iYWxNYXBFeGlzdHMoKXZvaWQiCglwdXNoYnl0ZXMgMHhmYzgzODAzYyAvLyBtZXRob2QgImxvY2FsTWFwUHV0KGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDk4NzUzNTVkIC8vIG1ldGhvZCAibG9jYWxNYXBHZXQoYWRkcmVzcyl2b2lkIgoJcHVzaGJ5dGVzIDB4NzQyYTZlODMgLy8gbWV0aG9kICJsb2NhbE1hcERlbGV0ZShhZGRyZXNzKXZvaWQiCglwdXNoYnl0ZXMgMHg4ODIzNTI2NSAvLyBtZXRob2QgImxvY2FsTWFwRXhpc3RzKGFkZHJlc3Mpdm9pZCIKCXB1c2hieXRlcyAweDg0ZTU2ODFjIC8vIG1ldGhvZCAiYm94TWFwUHV0KCl2b2lkIgoJcHVzaGJ5dGVzIDB4YWUzY2U3ZWUgLy8gbWV0aG9kICJib3hNYXBHZXQoKXZvaWQiCglwdXNoYnl0ZXMgMHhiOWUwZWQzZCAvLyBtZXRob2QgImJveE1hcERlbGV0ZSgpdm9pZCIKCXB1c2hieXRlcyAweDY1MmJkNWQ2IC8vIG1ldGhvZCAiYm94TWFwRXhpc3RzKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ZDM2ZWUzMTUgLy8gbWV0aG9kICJib3hLZXlDcmVhdGUoKXZvaWQiCglwdXNoYnl0ZXMgMHgxMDI5YmQwNyAvLyBtZXRob2QgImJveE1hcENyZWF0ZSgpdm9pZCIKCXB1c2hieXRlcyAweGE3NDdiNjJmIC8vIG1ldGhvZCAiYm94S2V5TGVuZ3RoKCl1aW50NjQiCglwdXNoYnl0ZXMgMHg1YTFlZWZiZSAvLyBtZXRob2QgImJveE1hcExlbmd0aCgpdWludDY0IgoJcHVzaGJ5dGVzIDB4MTMzN2RkNjAgLy8gbWV0aG9kICJib3hLZXlSZXBsYWNlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4NDI0ZWY5NWEgLy8gbWV0aG9kICJib3hNYXBSZXBsYWNlKCl2b2lkIgoJcHVzaGJ5dGVzIDB4ODhjMWMzMDkgLy8gbWV0aG9kICJib3hLZXlFeHRyYWN0KClzdHJpbmciCglwdXNoYnl0ZXMgMHg0MzYzNTY0MyAvLyBtZXRob2QgImJveE1hcEV4dHJhY3QoKXN0cmluZyIKCXB1c2hieXRlcyAweGFiNDI1NTRlIC8vIG1ldGhvZCAiaXNPcHRlZEluKClib29sIgoJcHVzaGJ5dGVzIDB4MDE2N2I3YTIgLy8gbWV0aG9kICJleEdsb2JhbCgpdm9pZCIKCXB1c2hieXRlcyAweGFhZDUxNzU1IC8vIG1ldGhvZCAiZXhMb2NhbCgpdm9pZCIKCXB1c2hieXRlcyAweDFiNDFjZTIyIC8vIG1ldGhvZCAiYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94KCl1aW50MTYiCglwdXNoYnl0ZXMgMHhmNWRhMWE1NSAvLyBtZXRob2QgImR5bmFtaWNBY2Nlc3NTdGF0aWNWYWx1ZUluTGFyZ2VCb3godWludDY0KXVpbnQxNiIKCXB1c2hieXRlcyAweGJjNWMxOGZkIC8vIG1ldGhvZCAiYm94UmVzaXplKCl2b2lkIgoJcHVzaGJ5dGVzIDB4MjVhOTIzMjkgLy8gbWV0aG9kICJib3hTcGxpY2UoKXZvaWQiCglwdXNoYnl0ZXMgMHg0ZWQ4Njk5YiAvLyBtZXRob2QgImV4U3RhdGVFeGlzdHMoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3ByZWZpeCAqYWJpX3JvdXRlX2dsb2JhbEtleVB1dCAqYWJpX3JvdXRlX2dsb2JhbEtleUdldCAqYWJpX3JvdXRlX2dsb2JhbEtleURlbGV0ZSAqYWJpX3JvdXRlX2dsb2JhbEtleUV4aXN0cyAqYWJpX3JvdXRlX2xvY2FsS2V5UHV0ICphYmlfcm91dGVfbG9jYWxLZXlHZXQgKmFiaV9yb3V0ZV9sb2NhbEtleURlbGV0ZSAqYWJpX3JvdXRlX2xvY2FsS2V5RXhpc3RzICphYmlfcm91dGVfYm94S2V5UHV0ICphYmlfcm91dGVfYm94S2V5R2V0ICphYmlfcm91dGVfYm94S2V5RGVsZXRlICphYmlfcm91dGVfYm94S2V5RXhpc3RzICphYmlfcm91dGVfZ2xvYmFsTWFwUHV0ICphYmlfcm91dGVfZ2xvYmFsTWFwR2V0ICphYmlfcm91dGVfZ2xvYmFsTWFwRGVsZXRlICphYmlfcm91dGVfZ2xvYmFsTWFwRXhpc3RzICphYmlfcm91dGVfbG9jYWxNYXBQdXQgKmFiaV9yb3V0ZV9sb2NhbE1hcEdldCAqYWJpX3JvdXRlX2xvY2FsTWFwRGVsZXRlICphYmlfcm91dGVfbG9jYWxNYXBFeGlzdHMgKmFiaV9yb3V0ZV9ib3hNYXBQdXQgKmFiaV9yb3V0ZV9ib3hNYXBHZXQgKmFiaV9yb3V0ZV9ib3hNYXBEZWxldGUgKmFiaV9yb3V0ZV9ib3hNYXBFeGlzdHMgKmFiaV9yb3V0ZV9ib3hLZXlDcmVhdGUgKmFiaV9yb3V0ZV9ib3hNYXBDcmVhdGUgKmFiaV9yb3V0ZV9ib3hLZXlMZW5ndGggKmFiaV9yb3V0ZV9ib3hNYXBMZW5ndGggKmFiaV9yb3V0ZV9ib3hLZXlSZXBsYWNlICphYmlfcm91dGVfYm94TWFwUmVwbGFjZSAqYWJpX3JvdXRlX2JveEtleUV4dHJhY3QgKmFiaV9yb3V0ZV9ib3hNYXBFeHRyYWN0ICphYmlfcm91dGVfaXNPcHRlZEluICphYmlfcm91dGVfZXhHbG9iYWwgKmFiaV9yb3V0ZV9leExvY2FsICphYmlfcm91dGVfYWNjZXNzU3RhdGljVmFsdWVJbkxhcmdlQm94ICphYmlfcm91dGVfZHluYW1pY0FjY2Vzc1N0YXRpY1ZhbHVlSW5MYXJnZUJveCAqYWJpX3JvdXRlX2JveFJlc2l6ZSAqYWJpX3JvdXRlX2JveFNwbGljZSAqYWJpX3JvdXRlX2V4U3RhdGVFeGlzdHMKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "byteCode": { - "approval": "CiAJASAAgAgCAxDAPvYBJgYDZm9vA2JhcgQVH3x1FWxhcmdlU3RhdGljQXJyYXlJbkJveANhYmMCAcgxGBSBBgsxGQiNDAMYAAAAAAAAAAAAAAMKAAAAAAAAAAAAAACIAAIiQ4oAAChJvEgpvygpZzEAKClmiYgAAiJDigAAKClniYgAAiJDigAAKGQpEkSJiAACIkOKAAAoaYmIAAIiQ4oAADYyAChlTEhEiTYaAUkVIxJEiAACIkOKAQCL/ygpZok2GgFJFSMSRIgAAiJDigEAi/8oYikSRIk2GgFJFSMSRIgAAiJDigEAi/8oaIk2GgFJFSMSRIgAAiJDigEAi/82MgAoY0xIRImIAAIiQ4oAACgpv4mIAAIiQ4oAACi+RCkSRImIAAIiQ4oAACi8iYgAAiJDigAAKL1MSESJiAACIkOKAAAoKWeJiAACIkOKAAAoZCkSRImIAAIiQ4oAAChpiYgAAiJDigAANjIAKGVMSESJNhoBSRUjEkSIAAIiQ4oBAIv/KClmiTYaAUkVIxJEiAACIkOKAQCL/yhiKRJEiTYaAUkVIxJEiAACIkOKAQCL/yhoiTYaAUkVIxJEiAACIkOKAQCL/zYyAChjTEhEiYgAAiJDigAAKCm/iYgAAiJDigAAKL5EKRJEiYgAAiJDigAAKLyJiAACIkOKAAAovUxIRImIAAIiQ4oAACgluUiJiAACIkOKAAApJblIiSqIAAUWULAiQ4oAASi9RIkqiAAFFlCwIkOKAAEpvUSJiAACIkOKAAAoJCcEu4mIAAIiQ4oAACkkJwS7iSqIAAxJFRZXBgJMUFCwIkOKAAEoJCEFuokqiAAMSRUWVwYCTFBQsCJDigABKSQhBbqJKogAC4ABACRPAlRQsCJDigABMQA2MgBhiYgAAiJDigAANjIAKGVEsImIAAIiQ4oAADEANjIAKGNEsIkqiAAOFkmTIQYORFcGAlCwIkOKAAErIQe5SCshCCcFuyshCCEEuheJKjYaAReIAA4WSZMhBg5EVwYCULAiQ4oBASshB7lIi/8hBAsnBStOAruL/yEECyEEK04CuheJiAACIkOKAAAoJdMpJdOJiAACIkOKAAAoJCInBNIpJCInBNKJiAACIkOKAAA2MgAoZUxIRDEANjIAKGNMSESJIkOABLhEezY2GgCOAf/xAIAEWwK6h4AER4JjB4AE04fNLIAEL3jbA4AE2BgamoAE7LBpmIAEVtrOHYAEdoyMaIAEvA6mu4AEz0iuTYAE6dq0k4AECQ/f1oAEX/nQ3YAEF8ggaoAEzYaL8oAEtV3iDIAEyX2NJIAE/IOAPIAEmHU1XYAEdCpug4AEiCNSZYAEhOVoHIAErjzn7oAEueDtPYAEZSvV1oAE027jFYAEECm9B4AEp0e2L4AEWh7vvoAEEzfdYIAEQk75WoAEiMHDCYAEQ2NWQ4AEq0JVToAEAWe3ooAEqtUXVYAEG0HOIoAE9doaVYAEvFwY/YAEJakjKYAETthpmzYaAI4p+5z7s/u/+8372Pvp+//8F/ws/Ef8U/xi/G38e/yH/JX8oPyx/Mf83/z0/Q/9G/0q/TX9Q/1Q/V39bf19/Yv9mf2y/cv95P30/gb+Lv5k/nP+iAA=", + "approval": "CiADASCACCYGA2ZvbxVsYXJnZVN0YXRpY0FycmF5SW5Cb3gDYmFyBBUffHUDYWJjAgHIMRgUgQYLMRkIjQwE/gAAAAAAAAAAAAAE8AAAAAAAAAAAAAAAiAADgQFDigAAgANmb29JvEiAA2Jhcr+AA2Zvb4ADYmFyZzEAgANmb2+AA2JhcmaJiAADgQFDigAAgANmb2+AA2JhcmeJiAADgQFDigAAgANmb29kgANiYXISRImIAAOBAUOKAACAA2Zvb2mJiAADgQFDigAANjIAgANmb29lTEhEiTYaAUkVgSASRIgAA4EBQ4oBAIv/gANmb2+AA2JhcmaJNhoBSRWBIBJEiAADgQFDigEAi/+AA2Zvb2KAA2JhchJEiTYaAUkVgSASRIgAA4EBQ4oBAIv/gANmb29oiTYaAUkVgSASRIgAA4EBQ4oBAIv/NjIAgANmb29jTEhEiYgAA4EBQ4oAAIADZm9vgANiYXK/iYgAA4EBQ4oAAIADZm9vvkSAA2JhchJEiYgAA4EBQ4oAAIADZm9vvImIAAOBAUOKAACAA2Zvb71MSESJiAADgQFDigAAgANmb2+AA2JhcmeJiAADgQFDigAAgANmb29kgANiYXISRImIAAOBAUOKAACAA2Zvb2mJiAADgQFDigAANjIAgANmb29lTEhEiTYaAUkVgSASRIgAA4EBQ4oBAIv/gANmb2+AA2JhcmaJNhoBSRWBIBJEiAADgQFDigEAi/+AA2Zvb2KAA2JhchJEiTYaAUkVgSASRIgAA4EBQ4oBAIv/gANmb29oiTYaAUkVgSASRIgAA4EBQ4oBAIv/NjIAgANmb29jTEhEiYgAA4EBQ4oAAIADZm9vgANiYXK/iYgAA4EBQ4oAAIADZm9vvkSAA2JhchJEiYgAA4EBQ4oAAIADZm9vvImIAAOBAUOKAACAA2Zvb71MSESJiAADgQFDigAAgANmb2+BgAi5SImIAAOBAUOKAACAA2JhcoGACLlIiYAEFR98dYgABhZQsIEBQ4oAAYADZm9vvUSJgAQVH3x1iAAGFlCwgQFDigABgANiYXK9RImIAAOBAUOKAACAA2Zvb4EAgANhYmO7iYgAA4EBQ4oAAIADYmFygQCAA2FiY7uJgAQVH3x1iAANSRUWVwYCTFBQsIEBQ4oAAYADZm9vgQCBA7qJgAQVH3x1iAANSRUWVwYCTFBQsIEBQ4oAAYADYmFygQCBA7qJgAQVH3x1iAANgAEAgQBPAlRQsIEBQ4oAATEANjIAYYmIAAOBAUOKAAA2MgCAA2Zvb2VEsImIAAOBAUOKAAAxADYyAIADZm9vY0SwiYAEFR98dYgADxZJk4EQDkRXBgJQsIEBQ4oAAYAVbGFyZ2VTdGF0aWNBcnJheUluQm94gcA+uUiAFWxhcmdlU3RhdGljQXJyYXlJbkJveIH2AYACAci7gBVsYXJnZVN0YXRpY0FycmF5SW5Cb3iB9gGBAroXiYAEFR98dTYaAReIAA8WSZOBEA5EVwYCULCBAUOKAQGAFWxhcmdlU3RhdGljQXJyYXlJbkJveIHAPrlIi/+BAguAAgHIgBVsYXJnZVN0YXRpY0FycmF5SW5Cb3hOAruL/4ECC4ECgBVsYXJnZVN0YXRpY0FycmF5SW5Cb3hOAroXiYgAA4EBQ4oAAIADZm9vgYAI04ADYmFygYAI04mIAAOBAUOKAACAA2Zvb4EAgQGAA2FiY9KAA2JhcoEAgQGAA2FiY9KJiAADgQFDigAANjIAgANmb29lTEhEMQA2MgCAA2Zvb2NMSESJgQFDgAS4RHs2NhoAjgH/8ACABFsCuoeABEeCYweABNOHzSyABC942wOABNgYGpqABOywaZiABFbazh2ABHaMjGiABLwOpruABM9Irk2ABOnatJOABAkP39aABF/50N2ABBfIIGqABM2Gi/KABLVd4gyABMl9jSSABPyDgDyABJh1NV2ABHQqboOABIgjUmWABITlaByABK485+6ABLng7T2ABGUr1daABNNu4xWABBApvQeABKdHti+ABFoe776ABBM33WCABEJO+VqABIjBwwmABENjVkOABKtCVU6ABAFnt6KABKrVF1WABBtBziKABPXaGlWABLxcGP2ABCWpIymABE7YaZs2GgCOKfm2+eb5+/oS+iL6OPpY+nr6lfq2+sv64/rz+wb7G/sy+0L7WPt4+5r7tfvW++v8A/wT/Cb8OvxO/Gj8gvyZ/LD81Pz4/Rj9Lf1E/bn+Ov5W/n4A", "clear": "Cg==" }, "compilerInfo": { diff --git a/tests/contracts/artifacts/Templates.approval.teal b/tests/contracts/artifacts/Templates.approval.teal index bdc2349e0..abd435671 100644 --- a/tests/contracts/artifacts/Templates.approval.teal +++ b/tests/contracts/artifacts/Templates.approval.teal @@ -1,20 +1,17 @@ #pragma version 10 +intcblock TMPL_uint64TmplVar +bytecblock TMPL_bytes64TmplVar TMPL_bytes32TmplVar TMPL_bytesTmplVar -// This TEAL was generated by TEALScript v0.103.2 +// This TEAL was generated by TEALScript v0.104.0 // https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] // The following lines of TEAL are used to initialize template variables in scratch slots -pushbytes TMPL_bytes64TmplVar -store 203 -pushbytes TMPL_bytes32TmplVar -store 202 -pushbytes TMPL_uint64TmplVar -btoi -store 201 -pushbytes TMPL_bytesTmplVar -store 200 +bytec 0 // TMPL_bytes64TmplVar +bytec 1 // TMPL_bytes32TmplVar +intc 0 // TMPL_uint64TmplVar +bytec 2 // TMPL_bytesTmplVar // The following ten lines of TEAL handle initial program flow // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed @@ -23,7 +20,7 @@ store 200 // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -37,7 +34,7 @@ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEM *abi_route_tmpl: // execute tmpl()void callsub tmpl - int 1 + pushint 1 return // tmpl(): void @@ -46,12 +43,12 @@ tmpl: // tests/contracts/general.algo.ts:34 // log(this.bytesTmplVar) - load 200 // TMPL_bytesTmplVar + bytec 2 // TMPL_bytesTmplVar log // tests/contracts/general.algo.ts:35 // assert(this.uint64TmplVar) - load 201 // TMPL_uint64TmplVar + intc 0 // TMPL_uint64TmplVar assert retsub @@ -59,7 +56,7 @@ tmpl: *abi_route_specificLengthTemplateVar: // execute specificLengthTemplateVar()void callsub specificLengthTemplateVar - int 1 + pushint 1 return // specificLengthTemplateVar(): void @@ -68,18 +65,33 @@ specificLengthTemplateVar: // tests/contracts/general.algo.ts:39 // ed25519VerifyBare(this.bytesTmplVar, this.bytes64TmplVar, this.bytes32TmplVar) - load 200 // TMPL_bytesTmplVar - load 203 // TMPL_bytes64TmplVar - load 202 // TMPL_bytes32TmplVar + bytec 2 // TMPL_bytesTmplVar + bytec 0 // TMPL_bytes64TmplVar + bytec 1 // TMPL_bytes32TmplVar ed25519verify_bare retsub +// throwError()void +*abi_route_throwError: + // execute throwError()void + callsub throwError + pushint 1 + return + +// throwError(): void +throwError: + proto 0 0 + + // this is an error + err + retsub + *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -87,10 +99,11 @@ specificLengthTemplateVar: err *call_NoOp: - method "tmpl()void" - method "specificLengthTemplateVar()void" + pushbytes 0x9a71d2b4 // method "tmpl()void" + pushbytes 0xdf4d5c3b // method "specificLengthTemplateVar()void" + pushbytes 0x3d870d87 // method "throwError()void" txna ApplicationArgs 0 - match *abi_route_tmpl *abi_route_specificLengthTemplateVar + match *abi_route_tmpl *abi_route_specificLengthTemplateVar *abi_route_throwError // this contract does not implement the given ABI method for call NoOp err \ No newline at end of file diff --git a/tests/contracts/artifacts/Templates.arc32.json b/tests/contracts/artifacts/Templates.arc32.json index 654fd759b..ac19e47ea 100644 --- a/tests/contracts/artifacts/Templates.arc32.json +++ b/tests/contracts/artifacts/Templates.arc32.json @@ -10,6 +10,11 @@ "no_op": "CALL" } }, + "throwError()void": { + "call_config": { + "no_op": "CALL" + } + }, "createApplication()void": { "call_config": { "no_op": "CREATE" @@ -44,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9ieXRlczY0VG1wbFZhcgpzdG9yZSAyMDMKcHVzaGJ5dGVzIFRNUExfYnl0ZXMzMlRtcGxWYXIKc3RvcmUgMjAyCnB1c2hieXRlcyBUTVBMX3VpbnQ2NFRtcGxWYXIKYnRvaQpzdG9yZSAyMDEKcHVzaGJ5dGVzIFRNUExfYnl0ZXNUbXBsVmFyCnN0b3JlIDIwMAoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdG1wbCgpdm9pZAoqYWJpX3JvdXRlX3RtcGw6CgkvLyBleGVjdXRlIHRtcGwoKXZvaWQKCWNhbGxzdWIgdG1wbAoJaW50IDEKCXJldHVybgoKLy8gdG1wbCgpOiB2b2lkCnRtcGw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0CgkvLyBsb2codGhpcy5ieXRlc1RtcGxWYXIpCglsb2FkIDIwMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCWxvYWQgMjAxIC8vIFRNUExfdWludDY0VG1wbFZhcgoJYXNzZXJ0CglyZXRzdWIKCi8vIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKXZvaWQKKmFiaV9yb3V0ZV9zcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyOgoJLy8gZXhlY3V0ZSBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkCgljYWxsc3ViIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIKCWludCAxCglyZXR1cm4KCi8vIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKTogdm9pZApzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOQoJLy8gZWQyNTUxOVZlcmlmeUJhcmUodGhpcy5ieXRlc1RtcGxWYXIsIHRoaXMuYnl0ZXM2NFRtcGxWYXIsIHRoaXMuYnl0ZXMzMlRtcGxWYXIpCglsb2FkIDIwMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9hZCAyMDMgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgoJbG9hZCAyMDIgLy8gVE1QTF9ieXRlczMyVG1wbFZhcgoJZWQyNTUxOXZlcmlmeV9iYXJlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0bXBsKCl2b2lkIgoJbWV0aG9kICJzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90bXBsICphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX3VpbnQ2NFRtcGxWYXIKYnl0ZWNibG9jayBUTVBMX2J5dGVzNjRUbXBsVmFyIFRNUExfYnl0ZXMzMlRtcGxWYXIgVE1QTF9ieXRlc1RtcGxWYXIKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgbGluZXMgb2YgVEVBTCBhcmUgdXNlZCB0byBpbml0aWFsaXplIHRlbXBsYXRlIHZhcmlhYmxlcyBpbiBzY3JhdGNoIHNsb3RzCmJ5dGVjIDAgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgpieXRlYyAxIC8vIFRNUExfYnl0ZXMzMlRtcGxWYXIKaW50YyAwIC8vIFRNUExfdWludDY0VG1wbFZhcgpieXRlYyAyIC8vIFRNUExfYnl0ZXNUbXBsVmFyCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdG1wbCgpdm9pZAoqYWJpX3JvdXRlX3RtcGw6CgkvLyBleGVjdXRlIHRtcGwoKXZvaWQKCWNhbGxzdWIgdG1wbAoJcHVzaGludCAxCglyZXR1cm4KCi8vIHRtcGwoKTogdm9pZAp0bXBsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNAoJLy8gbG9nKHRoaXMuYnl0ZXNUbXBsVmFyKQoJYnl0ZWMgMiAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCWludGMgMCAvLyBUTVBMX3VpbnQ2NFRtcGxWYXIKCWFzc2VydAoJcmV0c3ViCgovLyBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkCiphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcjoKCS8vIGV4ZWN1dGUgc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZAoJY2FsbHN1YiBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpOiB2b2lkCnNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM5CgkvLyBlZDI1NTE5VmVyaWZ5QmFyZSh0aGlzLmJ5dGVzVG1wbFZhciwgdGhpcy5ieXRlczY0VG1wbFZhciwgdGhpcy5ieXRlczMyVG1wbFZhcikKCWJ5dGVjIDIgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCWJ5dGVjIDAgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgoJYnl0ZWMgMSAvLyBUTVBMX2J5dGVzMzJUbXBsVmFyCgllZDI1NTE5dmVyaWZ5X2JhcmUKCXJldHN1YgoKLy8gdGhyb3dFcnJvcigpdm9pZAoqYWJpX3JvdXRlX3Rocm93RXJyb3I6CgkvLyBleGVjdXRlIHRocm93RXJyb3IoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvcgoJcHVzaGludCAxCglyZXR1cm4KCi8vIHRocm93RXJyb3IoKTogdm9pZAp0aHJvd0Vycm9yOgoJcHJvdG8gMCAwCgoJLy8gdGhpcyBpcyBhbiBlcnJvcgoJZXJyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDlhNzFkMmI0IC8vIG1ldGhvZCAidG1wbCgpdm9pZCIKCXB1c2hieXRlcyAweGRmNGQ1YzNiIC8vIG1ldGhvZCAic3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZCIKCXB1c2hieXRlcyAweDNkODcwZDg3IC8vIG1ldGhvZCAidGhyb3dFcnJvcigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdG1wbCAqYWJpX3JvdXRlX3NwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIgKmFiaV9yb3V0ZV90aHJvd0Vycm9yCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "contract": { @@ -65,6 +70,13 @@ "type": "void" } }, + { + "name": "throwError", + "args": [], + "returns": { + "type": "void" + } + }, { "name": "createApplication", "args": [], diff --git a/tests/contracts/artifacts/Templates.arc4.json b/tests/contracts/artifacts/Templates.arc4.json index 573db7fab..54388010d 100644 --- a/tests/contracts/artifacts/Templates.arc4.json +++ b/tests/contracts/artifacts/Templates.arc4.json @@ -16,6 +16,13 @@ "type": "void" } }, + { + "name": "throwError", + "args": [], + "returns": { + "type": "void" + } + }, { "name": "createApplication", "args": [], diff --git a/tests/contracts/artifacts/Templates.arc56_draft.json b/tests/contracts/artifacts/Templates.arc56_draft.json index 56233c636..dfdf4f142 100644 --- a/tests/contracts/artifacts/Templates.arc56_draft.json +++ b/tests/contracts/artifacts/Templates.arc56_draft.json @@ -28,6 +28,19 @@ ] } }, + { + "name": "throwError", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, { "name": "createApplication", "args": [], @@ -74,250 +87,42 @@ "call": [] }, "sourceInfo": { - "approval": [ - { - "teal": 1, - "source": 24, - "disassembledTeal": 1 - }, - { - "teal": 9, - "source": 24, - "disassembledTeal": 2 - }, - { - "teal": 10, - "source": 24, - "disassembledTeal": 3 - }, - { - "teal": 11, - "source": 24, - "disassembledTeal": 4 - }, - { - "teal": 12, - "source": 24, - "disassembledTeal": 5 - }, - { - "teal": 13, - "source": 24, - "disassembledTeal": 6 - }, - { - "teal": 14, - "source": 24, - "disassembledTeal": 7 - }, - { - "teal": 15, - "source": 24, - "disassembledTeal": 8 - }, - { - "teal": 16, - "source": 24, - "disassembledTeal": 9 - }, - { - "teal": 17, - "source": 24, - "disassembledTeal": 10 - }, - { - "teal": 24, - "source": 24, - "disassembledTeal": 11 - }, - { - "teal": 25, - "source": 24, - "disassembledTeal": 12 - }, - { - "teal": 26, - "source": 24, - "disassembledTeal": 13 - }, - { - "teal": 27, - "source": 24, - "disassembledTeal": 14 - }, - { - "teal": 28, - "source": 24, - "disassembledTeal": 15 - }, - { - "teal": 29, - "source": 24, - "disassembledTeal": 16 - }, - { - "teal": 30, - "source": 24, - "disassembledTeal": 17 - }, - { - "teal": 34, - "source": 24, - "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", - "disassembledTeal": 19 - }, - { - "teal": 39, - "source": 33, - "disassembledTeal": 21 - }, - { - "teal": 40, - "source": 33, - "disassembledTeal": 22 - }, - { - "teal": 41, - "source": 33, - "disassembledTeal": 23 - }, - { - "teal": 45, - "source": 33, - "disassembledTeal": 25 - }, - { - "teal": 49, - "source": 34, - "disassembledTeal": 26 - }, - { - "teal": 50, - "source": 34, - "disassembledTeal": 27 - }, - { - "teal": 54, - "source": 35, - "disassembledTeal": 28 - }, - { - "teal": 55, - "source": 35, - "disassembledTeal": 29 - }, - { - "teal": 56, - "source": 33, - "disassembledTeal": 30 - }, - { - "teal": 61, - "source": 38, - "disassembledTeal": 32 - }, - { - "teal": 62, - "source": 38, - "disassembledTeal": 33 - }, - { - "teal": 63, - "source": 38, - "disassembledTeal": 34 - }, - { - "teal": 67, - "source": 38, - "disassembledTeal": 36 - }, - { - "teal": 71, - "source": 39, - "disassembledTeal": 37 - }, - { - "teal": 72, - "source": 39, - "disassembledTeal": 38 - }, - { - "teal": 73, - "source": 39, - "disassembledTeal": 39 - }, - { - "teal": 74, - "source": 39, - "disassembledTeal": 40 - }, - { - "teal": 75, - "source": 38, - "disassembledTeal": 41 - }, - { - "teal": 78, - "source": 24, - "disassembledTeal": 43 - }, - { - "teal": 79, - "source": 24, - "disassembledTeal": 44 - }, - { - "teal": 82, - "source": 24, - "disassembledTeal": 46 - }, - { - "teal": 83, - "source": 24, - "disassembledTeal": 47 - }, - { - "teal": 84, - "source": 24, - "disassembledTeal": 48 - }, - { - "teal": 87, - "source": 24, - "errorMessage": "this contract does not implement the given ABI method for create NoOp", - "disassembledTeal": 49 - }, - { - "teal": 90, - "source": 24, - "disassembledTeal": 51 - }, - { - "teal": 91, - "source": 24, - "disassembledTeal": 52 - }, - { - "teal": 92, - "source": 24, - "disassembledTeal": 53 - }, - { - "teal": 93, - "source": 24, - "disassembledTeal": 54 - }, - { - "teal": 96, - "source": 24, - "errorMessage": "this contract does not implement the given ABI method for call NoOp", - "disassembledTeal": 55 - } - ], - "clear": [] + "approval": { + "sourceInfo": [ + { + "pc": [ + 40 + ], + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?" + }, + { + "pc": [ + 78 + ], + "errorMessage": "this is an error" + }, + { + "pc": [ + 96 + ], + "errorMessage": "this contract does not implement the given ABI method for create NoOp" + }, + { + "pc": [ + 126 + ], + "errorMessage": "this contract does not implement the given ABI method for call NoOp" + } + ], + "pcOffsetMethod": "cblocks" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjEwMy4yCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZGZvdW5kYXRpb24vVEVBTFNjcmlwdAoKLy8gVGhpcyBjb250cmFjdCBpcyBjb21wbGlhbnQgd2l0aCBhbmQvb3IgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIEFSQ3M6IFsgQVJDNCBdCgovLyBUaGUgZm9sbG93aW5nIGxpbmVzIG9mIFRFQUwgYXJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0ZW1wbGF0ZSB2YXJpYWJsZXMgaW4gc2NyYXRjaCBzbG90cwpwdXNoYnl0ZXMgVE1QTF9ieXRlczY0VG1wbFZhcgpzdG9yZSAyMDMKcHVzaGJ5dGVzIFRNUExfYnl0ZXMzMlRtcGxWYXIKc3RvcmUgMjAyCnB1c2hieXRlcyBUTVBMX3VpbnQ2NFRtcGxWYXIKYnRvaQpzdG9yZSAyMDEKcHVzaGJ5dGVzIFRNUExfYnl0ZXNUbXBsVmFyCnN0b3JlIDIwMAoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdG1wbCgpdm9pZAoqYWJpX3JvdXRlX3RtcGw6CgkvLyBleGVjdXRlIHRtcGwoKXZvaWQKCWNhbGxzdWIgdG1wbAoJaW50IDEKCXJldHVybgoKLy8gdG1wbCgpOiB2b2lkCnRtcGw6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM0CgkvLyBsb2codGhpcy5ieXRlc1RtcGxWYXIpCglsb2FkIDIwMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCWxvYWQgMjAxIC8vIFRNUExfdWludDY0VG1wbFZhcgoJYXNzZXJ0CglyZXRzdWIKCi8vIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKXZvaWQKKmFiaV9yb3V0ZV9zcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyOgoJLy8gZXhlY3V0ZSBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkCgljYWxsc3ViIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIKCWludCAxCglyZXR1cm4KCi8vIHNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIoKTogdm9pZApzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOQoJLy8gZWQyNTUxOVZlcmlmeUJhcmUodGhpcy5ieXRlc1RtcGxWYXIsIHRoaXMuYnl0ZXM2NFRtcGxWYXIsIHRoaXMuYnl0ZXMzMlRtcGxWYXIpCglsb2FkIDIwMCAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9hZCAyMDMgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgoJbG9hZCAyMDIgLy8gVE1QTF9ieXRlczMyVG1wbFZhcgoJZWQyNTUxOXZlcmlmeV9iYXJlCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgoqY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjcmVhdGUgTm9PcAoJZXJyCgoqY2FsbF9Ob09wOgoJbWV0aG9kICJ0bXBsKCl2b2lkIgoJbWV0aG9kICJzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV90bXBsICphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcgoKCS8vIHRoaXMgY29udHJhY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBnaXZlbiBBQkkgbWV0aG9kIGZvciBjYWxsIE5vT3AKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayBUTVBMX3VpbnQ2NFRtcGxWYXIKYnl0ZWNibG9jayBUTVBMX2J5dGVzNjRUbXBsVmFyIFRNUExfYnl0ZXMzMlRtcGxWYXIgVE1QTF9ieXRlc1RtcGxWYXIKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuMTA0LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgbGluZXMgb2YgVEVBTCBhcmUgdXNlZCB0byBpbml0aWFsaXplIHRlbXBsYXRlIHZhcmlhYmxlcyBpbiBzY3JhdGNoIHNsb3RzCmJ5dGVjIDAgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgpieXRlYyAxIC8vIFRNUExfYnl0ZXMzMlRtcGxWYXIKaW50YyAwIC8vIFRNUExfdWludDY0VG1wbFZhcgpieXRlYyAyIC8vIFRNUExfYnl0ZXNUbXBsVmFyCgovLyBUaGUgZm9sbG93aW5nIHRlbiBsaW5lcyBvZiBURUFMIGhhbmRsZSBpbml0aWFsIHByb2dyYW0gZmxvdwovLyBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0byBtYWtlIGl0IGVhc3kgZm9yIGFueW9uZSB0byBwYXJzZSB0aGUgc3RhcnQgb2YgdGhlIHByb2dyYW0gYW5kIGRldGVybWluZSBpZiBhIHNwZWNpZmljIGFjdGlvbiBpcyBhbGxvd2VkCi8vIEhlcmUsIGFjdGlvbiByZWZlcnMgdG8gdGhlIE9uQ29tcGxldGUgaW4gY29tYmluYXRpb24gd2l0aCB3aGV0aGVyIHRoZSBhcHAgaXMgYmVpbmcgY3JlYXRlZCBvciBjYWxsZWQKLy8gRXZlcnkgcG9zc2libGUgYWN0aW9uIGZvciB0aGlzIGNvbnRyYWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBzd2l0Y2ggc3RhdGVtZW50Ci8vIElmIHRoZSBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlc3BlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIipOT1RfSU1QTEVNRU5URUQiIHdoaWNoIGp1c3QgY29udGFpbnMgImVyciIKdHhuIEFwcGxpY2F0aW9uSUQKIQpwdXNoaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoICpjYWxsX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjcmVhdGVfTm9PcCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQKCipOT1RfSU1QTEVNRU5URUQ6CgkvLyBUaGUgcmVxdWVzdGVkIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBjb250cmFjdC4gQXJlIHlvdSB1c2luZyB0aGUgY29ycmVjdCBPbkNvbXBsZXRlPyBEaWQgeW91IHNldCB5b3VyIGFwcCBJRD8KCWVycgoKLy8gdG1wbCgpdm9pZAoqYWJpX3JvdXRlX3RtcGw6CgkvLyBleGVjdXRlIHRtcGwoKXZvaWQKCWNhbGxzdWIgdG1wbAoJcHVzaGludCAxCglyZXR1cm4KCi8vIHRtcGwoKTogdm9pZAp0bXBsOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNAoJLy8gbG9nKHRoaXMuYnl0ZXNUbXBsVmFyKQoJYnl0ZWMgMiAvLyBUTVBMX2J5dGVzVG1wbFZhcgoJbG9nCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudWludDY0VG1wbFZhcikKCWludGMgMCAvLyBUTVBMX3VpbnQ2NFRtcGxWYXIKCWFzc2VydAoJcmV0c3ViCgovLyBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyKCl2b2lkCiphYmlfcm91dGVfc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcjoKCS8vIGV4ZWN1dGUgc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZAoJY2FsbHN1YiBzcGVjaWZpY0xlbmd0aFRlbXBsYXRlVmFyCglwdXNoaW50IDEKCXJldHVybgoKLy8gc3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpOiB2b2lkCnNwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXI6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjM5CgkvLyBlZDI1NTE5VmVyaWZ5QmFyZSh0aGlzLmJ5dGVzVG1wbFZhciwgdGhpcy5ieXRlczY0VG1wbFZhciwgdGhpcy5ieXRlczMyVG1wbFZhcikKCWJ5dGVjIDIgLy8gVE1QTF9ieXRlc1RtcGxWYXIKCWJ5dGVjIDAgLy8gVE1QTF9ieXRlczY0VG1wbFZhcgoJYnl0ZWMgMSAvLyBUTVBMX2J5dGVzMzJUbXBsVmFyCgllZDI1NTE5dmVyaWZ5X2JhcmUKCXJldHN1YgoKLy8gdGhyb3dFcnJvcigpdm9pZAoqYWJpX3JvdXRlX3Rocm93RXJyb3I6CgkvLyBleGVjdXRlIHRocm93RXJyb3IoKXZvaWQKCWNhbGxzdWIgdGhyb3dFcnJvcgoJcHVzaGludCAxCglyZXR1cm4KCi8vIHRocm93RXJyb3IoKTogdm9pZAp0aHJvd0Vycm9yOgoJcHJvdG8gMCAwCgoJLy8gdGhpcyBpcyBhbiBlcnJvcgoJZXJyCglyZXRzdWIKCiphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglwdXNoaW50IDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDlhNzFkMmI0IC8vIG1ldGhvZCAidG1wbCgpdm9pZCIKCXB1c2hieXRlcyAweGRmNGQ1YzNiIC8vIG1ldGhvZCAic3BlY2lmaWNMZW5ndGhUZW1wbGF0ZVZhcigpdm9pZCIKCXB1c2hieXRlcyAweDNkODcwZDg3IC8vIG1ldGhvZCAidGhyb3dFcnJvcigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfdG1wbCAqYWJpX3JvdXRlX3NwZWNpZmljTGVuZ3RoVGVtcGxhdGVWYXIgKmFiaV9yb3V0ZV90aHJvd0Vycm9yCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" }, "templateVariables": { diff --git a/tests/contracts/cblocks.algo.ts b/tests/contracts/cblocks.algo.ts new file mode 100644 index 000000000..861a81ea2 --- /dev/null +++ b/tests/contracts/cblocks.algo.ts @@ -0,0 +1,537 @@ +/* eslint-disable class-methods-use-this */ +import { Contract } from '../../src/lib'; + +export class IntcblockTest extends Contract { + intValue = GlobalStateKey(); + + largeIntcblock(): uint64 { + const a = 1; + assert(2); + assert(3); + assert(4); + assert(5); + assert(6); + assert(7); + assert(8); + assert(9); + assert(10); + assert(11); + assert(12); + assert(13); + assert(14); + assert(15); + assert(16); + assert(17); + assert(18); + assert(19); + assert(20); + assert(21); + assert(22); + assert(23); + assert(24); + assert(25); + assert(26); + assert(27); + assert(28); + assert(29); + assert(30); + assert(31); + assert(32); + assert(33); + assert(34); + assert(35); + assert(36); + assert(37); + assert(38); + assert(39); + assert(40); + assert(41); + assert(42); + assert(43); + assert(44); + assert(45); + assert(46); + assert(47); + assert(48); + assert(49); + assert(50); + assert(51); + assert(52); + assert(53); + assert(54); + assert(55); + assert(56); + assert(57); + assert(58); + assert(59); + assert(60); + assert(61); + assert(62); + assert(63); + assert(64); + assert(65); + assert(66); + assert(67); + assert(68); + assert(69); + assert(70); + assert(71); + assert(72); + assert(73); + assert(74); + assert(75); + assert(76); + assert(77); + assert(78); + assert(79); + assert(80); + assert(81); + assert(82); + assert(83); + assert(84); + assert(85); + assert(86); + assert(87); + assert(88); + assert(89); + assert(90); + assert(91); + assert(92); + assert(93); + assert(94); + assert(95); + assert(96); + assert(97); + assert(98); + assert(99); + assert(100); + assert(101); + assert(102); + assert(103); + assert(104); + assert(105); + assert(106); + assert(107); + assert(108); + assert(109); + assert(110); + assert(111); + assert(112); + assert(113); + assert(114); + assert(115); + assert(116); + assert(117); + assert(118); + assert(119); + assert(120); + assert(121); + assert(122); + assert(123); + assert(124); + assert(125); + assert(126); + assert(127); + assert(128); + assert(129); + assert(130); + assert(131); + assert(132); + assert(133); + assert(134); + assert(135); + assert(136); + assert(137); + assert(138); + assert(139); + assert(140); + assert(141); + assert(142); + assert(143); + assert(144); + assert(145); + assert(146); + assert(147); + assert(148); + assert(149); + assert(150); + assert(151); + assert(152); + assert(153); + assert(154); + assert(155); + assert(156); + assert(157); + assert(158); + assert(159); + assert(160); + assert(161); + assert(162); + assert(163); + assert(164); + assert(165); + assert(166); + assert(167); + assert(168); + assert(169); + assert(170); + assert(171); + assert(172); + assert(173); + assert(174); + assert(175); + assert(176); + assert(177); + assert(178); + assert(179); + assert(180); + assert(181); + assert(182); + assert(183); + assert(184); + assert(185); + assert(186); + assert(187); + assert(188); + assert(189); + assert(190); + assert(191); + assert(192); + assert(193); + assert(194); + assert(195); + assert(196); + assert(197); + assert(198); + assert(199); + assert(200); + assert(201); + assert(202); + assert(203); + assert(204); + assert(205); + assert(206); + assert(207); + assert(208); + assert(209); + assert(210); + assert(211); + assert(212); + assert(213); + assert(214); + assert(215); + assert(216); + assert(217); + assert(218); + assert(219); + assert(220); + assert(221); + assert(222); + assert(223); + assert(224); + assert(225); + assert(226); + assert(227); + assert(228); + assert(229); + assert(230); + assert(231); + assert(232); + assert(233); + assert(234); + assert(235); + assert(236); + assert(237); + assert(238); + assert(239); + assert(240); + assert(241); + assert(242); + assert(243); + assert(244); + assert(245); + assert(246); + assert(247); + assert(248); + assert(249); + assert(250); + assert(251); + assert(252); + assert(253); + assert(254); + assert(255); + assert(256); + const b = 257; + + return a + b; + } +} + +export class BytecblockTest extends Contract { + byteValue = GlobalStateKey(); + + largeBytecblock(): string { + increaseOpcodeBudget(); + const a = '1'; + this.byteValue.value = '2'; + this.byteValue.value = '3'; + this.byteValue.value = '4'; + this.byteValue.value = '5'; + this.byteValue.value = '6'; + this.byteValue.value = '7'; + this.byteValue.value = '8'; + this.byteValue.value = '9'; + this.byteValue.value = '10'; + this.byteValue.value = '11'; + this.byteValue.value = '12'; + this.byteValue.value = '13'; + this.byteValue.value = '14'; + this.byteValue.value = '15'; + this.byteValue.value = '16'; + this.byteValue.value = '17'; + this.byteValue.value = '18'; + this.byteValue.value = '19'; + this.byteValue.value = '20'; + this.byteValue.value = '21'; + this.byteValue.value = '22'; + this.byteValue.value = '23'; + this.byteValue.value = '24'; + this.byteValue.value = '25'; + this.byteValue.value = '26'; + this.byteValue.value = '27'; + this.byteValue.value = '28'; + this.byteValue.value = '29'; + this.byteValue.value = '30'; + this.byteValue.value = '31'; + this.byteValue.value = '32'; + this.byteValue.value = '33'; + this.byteValue.value = '34'; + this.byteValue.value = '35'; + this.byteValue.value = '36'; + this.byteValue.value = '37'; + this.byteValue.value = '38'; + this.byteValue.value = '39'; + this.byteValue.value = '40'; + this.byteValue.value = '41'; + this.byteValue.value = '42'; + this.byteValue.value = '43'; + this.byteValue.value = '44'; + this.byteValue.value = '45'; + this.byteValue.value = '46'; + this.byteValue.value = '47'; + this.byteValue.value = '48'; + this.byteValue.value = '49'; + this.byteValue.value = '50'; + this.byteValue.value = '51'; + this.byteValue.value = '52'; + this.byteValue.value = '53'; + this.byteValue.value = '54'; + this.byteValue.value = '55'; + this.byteValue.value = '56'; + this.byteValue.value = '57'; + this.byteValue.value = '58'; + this.byteValue.value = '59'; + this.byteValue.value = '60'; + this.byteValue.value = '61'; + this.byteValue.value = '62'; + this.byteValue.value = '63'; + this.byteValue.value = '64'; + this.byteValue.value = '65'; + this.byteValue.value = '66'; + this.byteValue.value = '67'; + this.byteValue.value = '68'; + this.byteValue.value = '69'; + this.byteValue.value = '70'; + this.byteValue.value = '71'; + this.byteValue.value = '72'; + this.byteValue.value = '73'; + this.byteValue.value = '74'; + this.byteValue.value = '75'; + this.byteValue.value = '76'; + this.byteValue.value = '77'; + this.byteValue.value = '78'; + this.byteValue.value = '79'; + this.byteValue.value = '80'; + this.byteValue.value = '81'; + this.byteValue.value = '82'; + this.byteValue.value = '83'; + this.byteValue.value = '84'; + this.byteValue.value = '85'; + this.byteValue.value = '86'; + this.byteValue.value = '87'; + this.byteValue.value = '88'; + this.byteValue.value = '89'; + this.byteValue.value = '90'; + this.byteValue.value = '91'; + this.byteValue.value = '92'; + this.byteValue.value = '93'; + this.byteValue.value = '94'; + this.byteValue.value = '95'; + this.byteValue.value = '96'; + this.byteValue.value = '97'; + this.byteValue.value = '98'; + this.byteValue.value = '99'; + this.byteValue.value = '100'; + this.byteValue.value = '101'; + this.byteValue.value = '102'; + this.byteValue.value = '103'; + this.byteValue.value = '104'; + this.byteValue.value = '105'; + this.byteValue.value = '106'; + this.byteValue.value = '107'; + this.byteValue.value = '108'; + this.byteValue.value = '109'; + this.byteValue.value = '110'; + this.byteValue.value = '111'; + this.byteValue.value = '112'; + this.byteValue.value = '113'; + this.byteValue.value = '114'; + this.byteValue.value = '115'; + this.byteValue.value = '116'; + this.byteValue.value = '117'; + this.byteValue.value = '118'; + this.byteValue.value = '119'; + this.byteValue.value = '120'; + this.byteValue.value = '121'; + this.byteValue.value = '122'; + this.byteValue.value = '123'; + this.byteValue.value = '124'; + this.byteValue.value = '125'; + this.byteValue.value = '126'; + this.byteValue.value = '127'; + this.byteValue.value = '128'; + this.byteValue.value = '129'; + this.byteValue.value = '130'; + this.byteValue.value = '131'; + this.byteValue.value = '132'; + this.byteValue.value = '133'; + this.byteValue.value = '134'; + this.byteValue.value = '135'; + this.byteValue.value = '136'; + this.byteValue.value = '137'; + this.byteValue.value = '138'; + this.byteValue.value = '139'; + this.byteValue.value = '140'; + this.byteValue.value = '141'; + this.byteValue.value = '142'; + this.byteValue.value = '143'; + this.byteValue.value = '144'; + this.byteValue.value = '145'; + this.byteValue.value = '146'; + this.byteValue.value = '147'; + this.byteValue.value = '148'; + this.byteValue.value = '149'; + this.byteValue.value = '150'; + this.byteValue.value = '151'; + this.byteValue.value = '152'; + this.byteValue.value = '153'; + this.byteValue.value = '154'; + this.byteValue.value = '155'; + this.byteValue.value = '156'; + this.byteValue.value = '157'; + this.byteValue.value = '158'; + this.byteValue.value = '159'; + this.byteValue.value = '160'; + this.byteValue.value = '161'; + this.byteValue.value = '162'; + this.byteValue.value = '163'; + this.byteValue.value = '164'; + this.byteValue.value = '165'; + this.byteValue.value = '166'; + this.byteValue.value = '167'; + this.byteValue.value = '168'; + this.byteValue.value = '169'; + this.byteValue.value = '170'; + this.byteValue.value = '171'; + this.byteValue.value = '172'; + this.byteValue.value = '173'; + this.byteValue.value = '174'; + this.byteValue.value = '175'; + this.byteValue.value = '176'; + this.byteValue.value = '177'; + this.byteValue.value = '178'; + this.byteValue.value = '179'; + this.byteValue.value = '180'; + this.byteValue.value = '181'; + this.byteValue.value = '182'; + this.byteValue.value = '183'; + this.byteValue.value = '184'; + this.byteValue.value = '185'; + this.byteValue.value = '186'; + this.byteValue.value = '187'; + this.byteValue.value = '188'; + this.byteValue.value = '189'; + this.byteValue.value = '190'; + this.byteValue.value = '191'; + this.byteValue.value = '192'; + this.byteValue.value = '193'; + this.byteValue.value = '194'; + this.byteValue.value = '195'; + this.byteValue.value = '196'; + this.byteValue.value = '197'; + this.byteValue.value = '198'; + this.byteValue.value = '199'; + this.byteValue.value = '200'; + this.byteValue.value = '201'; + this.byteValue.value = '202'; + this.byteValue.value = '203'; + this.byteValue.value = '204'; + this.byteValue.value = '205'; + this.byteValue.value = '206'; + this.byteValue.value = '207'; + this.byteValue.value = '208'; + this.byteValue.value = '209'; + this.byteValue.value = '210'; + this.byteValue.value = '211'; + this.byteValue.value = '212'; + this.byteValue.value = '213'; + this.byteValue.value = '214'; + this.byteValue.value = '215'; + this.byteValue.value = '216'; + this.byteValue.value = '217'; + this.byteValue.value = '218'; + this.byteValue.value = '219'; + this.byteValue.value = '220'; + this.byteValue.value = '221'; + this.byteValue.value = '222'; + this.byteValue.value = '223'; + this.byteValue.value = '224'; + this.byteValue.value = '225'; + this.byteValue.value = '226'; + this.byteValue.value = '227'; + this.byteValue.value = '228'; + this.byteValue.value = '229'; + this.byteValue.value = '230'; + this.byteValue.value = '231'; + this.byteValue.value = '232'; + this.byteValue.value = '233'; + this.byteValue.value = '234'; + this.byteValue.value = '235'; + this.byteValue.value = '236'; + this.byteValue.value = '237'; + this.byteValue.value = '238'; + this.byteValue.value = '239'; + this.byteValue.value = '240'; + this.byteValue.value = '241'; + this.byteValue.value = '242'; + this.byteValue.value = '243'; + this.byteValue.value = '244'; + this.byteValue.value = '245'; + this.byteValue.value = '246'; + this.byteValue.value = '247'; + this.byteValue.value = '248'; + this.byteValue.value = '249'; + this.byteValue.value = '250'; + this.byteValue.value = '251'; + this.byteValue.value = '252'; + this.byteValue.value = '253'; + this.byteValue.value = '254'; + this.byteValue.value = '255'; + this.byteValue.value = '256'; + const b = '257'; + this.byteValue.value = + 'This is a fairly long byteslice that should be put in the consant block because it is so long'; + + return a + b; + } +} diff --git a/tests/contracts/general.algo.ts b/tests/contracts/general.algo.ts index 83464b158..3a0d6fb73 100644 --- a/tests/contracts/general.algo.ts +++ b/tests/contracts/general.algo.ts @@ -38,6 +38,10 @@ class Templates extends Contract { specificLengthTemplateVar(): void { ed25519VerifyBare(this.bytesTmplVar, this.bytes64TmplVar, this.bytes32TmplVar); } + + throwError(): void { + throw Error('this is an error'); + } } // eslint-disable-next-line no-unused-vars diff --git a/tests/templates.test.ts b/tests/templates.test.ts new file mode 100644 index 000000000..77f348505 --- /dev/null +++ b/tests/templates.test.ts @@ -0,0 +1,85 @@ +/* eslint-disable no-plusplus */ +/* eslint-disable no-empty */ +/* eslint-disable no-bitwise */ +/* eslint-disable func-names */ +/* eslint-disable prefer-arrow-callback */ + +import * as algokit from '@algorandfoundation/algokit-utils'; +import { describe, test, expect } from '@jest/globals'; +import { artifactsTest, compileAndCreate, runMethod, algodClient, kmdClient } from './common'; +import arc56 from './contracts/artifacts/Templates.arc56_draft.json'; + +const NAME = 'Templates'; +const PATH = 'tests/contracts/general.algo.ts'; +const ARTIFACTS_DIR = 'tests/contracts/artifacts/'; + +const BYTE_CBLOCK = 38; +const INT_CBLOCK = 32; + +function getConstantBlockOffsets(bytes: number[]) { + const programSize = bytes.length; + bytes.shift(); // remove version + const offsets: { bytecblockOffset?: number; intcblockOffset?: number; cblocksOffset: number } = { cblocksOffset: 0 }; + + while (bytes.length > 0) { + const byte = bytes.shift()!; + + if (byte === BYTE_CBLOCK || byte === INT_CBLOCK) { + const isBytecblock = byte === BYTE_CBLOCK; + const valuesRemaining = bytes.shift()!; + + for (let i = 0; i < valuesRemaining; i++) { + if (isBytecblock) { + // byte is the length of the next element + bytes.splice(0, bytes.shift()!); + } else { + // intcblock is a uvarint, so we need to keep reading until we find the end (MSB is not set) + while ((bytes.shift()! & 0x80) !== 0) {} + } + } + + offsets[isBytecblock ? 'bytecblock' : 'intcblock'] = programSize - bytes.length - 1; + + if (bytes[0] !== BYTE_CBLOCK && bytes[0] !== INT_CBLOCK) { + // if the next opcode isn't a constant block, we're done + break; + } + } + } + + offsets.cblocksOffset = Math.max(...Object.values(offsets)); + return offsets; +} + +describe('Template Variables', function () { + artifactsTest(PATH, ARTIFACTS_DIR, NAME); + + describe('E2E', function () { + const sender = algokit.getLocalNetDispenserAccount(algodClient, kmdClient); + + test('error source mapping', async function () { + const { appClient, appId } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME, { + bytes64TmplVar: '0'.repeat(64), + uint64TmplVar: 123, + bytes32TmplVar: '0'.repeat(32), + bytesTmplVar: 'foo', + }); + let pc = 0; + try { + await runMethod({ appClient, method: 'throwError' }); + } catch (error) { + pc = Number(String(error).match(/pc=(\d+)/)?.[1]); + } + + const appInfo = await algodClient.getApplicationByID(Number(appId)).do(); + const b64Program = appInfo.params['approval-program']; + const program = Buffer.from(b64Program, 'base64'); + const { cblocksOffset } = getConstantBlockOffsets([...program]); + + const offsetPc = pc - cblocksOffset; + + const sourceInfo = arc56.sourceInfo.approval.sourceInfo.find((s) => s.pc?.includes(offsetPc)); + expect(sourceInfo?.errorMessage).toBe('this is an error'); + }); + }); +}); diff --git a/tests/web/goldfile.ts b/tests/web/goldfile.ts index 3043bfcb4..e68df3ff6 100644 --- a/tests/web/goldfile.ts +++ b/tests/web/goldfile.ts @@ -14,7 +14,7 @@ export const TEAL = `#pragma version 10 // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID ! -int 6 +pushint 6 * txn OnCompletion + @@ -73,7 +73,7 @@ getDifference: // doMath(uint64,uint64,string)uint64 *abi_route_doMath: // The ABI return prefix - byte 0x151f7c75 + pushbytes 0x151f7c75 // operation: string txna ApplicationArgs 3 @@ -92,7 +92,7 @@ getDifference: itob concat log - int 1 + pushint 1 return // doMath(a: uint64, b: uint64, operation: string): uint64 @@ -108,13 +108,13 @@ doMath: proto 3 1 // Push empty bytes after the frame pointer to reserve space for local variables - byte 0x + pushbytes 0x // *if0_condition // examples/calculator/calculator.algo.ts:39 // operation === 'sum' frame_dig -3 // operation: string - byte 0x73756d // "sum" + pushbytes 0x73756d // "sum" == bz *if0_elseif1_condition @@ -131,7 +131,7 @@ doMath: // examples/calculator/calculator.algo.ts:41 // operation === 'difference' frame_dig -3 // operation: string - byte 0x646966666572656e6365 // "difference" + pushbytes 0x646966666572656e6365 // "difference" == bz *if0_else @@ -158,11 +158,11 @@ doMath: retsub *abi_route_createApplication: - int 1 + pushint 1 return *create_NoOp: - method "createApplication()void" + pushbytes 0xb8447b36 // method "createApplication()void" txna ApplicationArgs 0 match *abi_route_createApplication @@ -170,7 +170,7 @@ doMath: err *call_NoOp: - method "doMath(uint64,uint64,string)uint64" + pushbytes 0x76a7ef33 // method "doMath(uint64,uint64,string)uint64" txna ApplicationArgs 0 match *abi_route_doMath